Пример #1
0
    void InicilizarSintetizador()
    {
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);
    }
Пример #2
0
        void Awake()
        {
            midiStreamSynthesizer = new StreamSynthesizer(samplerate, 2, bufferSize, _polyCount);
            sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

            midiStreamSynthesizer.LoadBank(bankFilePath);

            midiSequencer         = new MidiSequencer(midiStreamSynthesizer);
            midiSequencer.Looping = true;
            midiSequencer.OnLoop += AddLoopOffset;

            _shouldPlayFile = false;

            _menuManager              = FindObjectOfType <MenuManager>();
            _menuManager.OnStartGame += StartMetronome;
            _menuManager.OnGameOver  += StopMetronome;

            _metronome = FindObjectOfType <Metronome>();
            _metronome.BeatSubscribe(DoBeep);
            _metronome.BeatEvent += Play;

            _gridSystem = GetComponent <GridSystem>();

            _infGrid = (InfiniteHexGrid)_gridSystem.Grid;

#if UNITY_WEBGL
            AudioSettings.outputSampleRate = samplerate;
            var aud = GetComponent <AudioSource>();
            aud.clip = AudioClip.Create("Proc", midiStreamSynthesizer.BufferSize, 1, samplerate, true, Reader, SetAudioPosition);
            aud.Play();
#endif
        }
Пример #3
0
    // Awake is called when the script instance
    // is being loaded.
    void Awake()
    {
#if UNITY_ANDROID && !UNITY_EDITOR
        midiStreamSynthesizer = new StreamSynthesizer(44100, 1, bufferSize, 40);
#else
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
#endif
        sampleBuffer = new float[midiStreamSynthesizer.BufferSize];
        midiStreamSynthesizer.LoadBank(bankFilePath);

        if (midiSource == MidiSource.File)
        {
            midiSequencer            = new MidiSequencer(midiStreamSynthesizer);
            midiSequencer.TempoScale = tempoScale;

            //These will be fired by the midiSequencer when a song plays
            midiSequencer.NoteOnEvent  += new MidiSequencer.NoteOnEventHandler(MidiNoteOnHandler);
            midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler(MidiNoteOffHandler);
        }
        else if (midiSource == MidiSource.MidiIn)
        {
            midiUdpListener          = new MidiUdpListener();
            midiUdpListener.NoteOn  += MidiInNoteOn;
            midiUdpListener.NoteOff += MidiInNoteOff;
            noteEvents = new int[0];
        }
    }
Пример #4
0
    void Awake()
    {
        if (!instance)
        {
            instance = this;
        }

        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];
        midiStreamSynthesizer.LoadBank(bankFilePath);
        midiSequencer = new MidiSequencer(midiStreamSynthesizer);

        // Arduino
        //sp.Open();
        //sp.ReadTimeout=1;

        for (i = 0; i < 128; i++)
        {
            currentNote[i] = 0;
            pressed[i]     = 0;
        }

        //Debug.Log(Kbd_UserInput.kbd_num);

        //These will be fired by the midiSequencer when a song plays
        midiSequencer.NoteOnEvent  += new MidiSequencer.NoteOnEventHandler(MidiNoteOnHandler);
        midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler(MidiNoteOffHandler);
    }
// Awake is called when the script instance
// is being loaded.
    void Awake()
    {
        MidiFile midiFile = new MidiFile(midiFilePath);

        foreach (var VARIABLE in midiFile.Tracks)
        {
            Debug.Log(VARIABLE);
        }

        Debug.Log("\n\n");

        Debug.Log(midiFile.BeatsPerMinute);
        Debug.Log(midiFile.BeatsPerMinute);
        Debug.Log(midiFile.MidiHeader.MidiFormat);
        foreach (var VARIABLE in midiFile.Tracks[0].MidiEvents)
        {
            Debug.Log(VARIABLE);
        }

        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);

        midiSequencer = new MidiSequencer(midiStreamSynthesizer);

        //These will be fired by the midiSequencer when a song plays. Check the console for messages if you uncomment these
        midiSequencer.NoteOnEvent += new MidiSequencer.NoteOnEventHandler(MidiNoteOnHandler);
        // midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler (MidiNoteOffHandler);

        Nuotti = GameObject.Find("Nuotti").GetComponent <Text>();
    }
Пример #6
0
 public void Dispose()
 {
     Stop(true);
     //Set anything that may become a circular reference to null...
     synth     = null;
     _MidiFile = null;
     seqEvt    = null;
 }
Пример #7
0
 //--Public Methods
 public MidiSequencer(StreamSynthesizer synth)
 {
     currentPrograms = new int[16]; //16 channels
     this.synth      = synth;
     this.synth.setSequencer(this);
     blockList = new List <byte>();
     seqEvt    = new MidiSequencerEvent();
 }
Пример #8
0
    // Awake is called when the script instance
    // is being loaded.
    void Awake()
    {
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);

        midiSequencer = new MidiSequencer(midiStreamSynthesizer);
    }
Пример #9
0
        public Sound(string bank, string midifile)
        {
            midiStreamSynthesizer = new StreamSynthesizer(StreamSynthesizer.SampleRateType.High);
            sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];
            midiStreamSynthesizer.LoadBank(bank);

            midiSequencer = new MidiSequencer(midiStreamSynthesizer);
            midiSequencer.LoadMidi(midifile, false);
            midiSequencer.Play();
        }
Пример #10
0
        protected override void OpenMediaAsync()
        {
            System.Diagnostics.Debug.WriteLine("OpenMediaAsync");
            Dictionary <MediaStreamAttributeKeys, string>  streamAttributes = new Dictionary <MediaStreamAttributeKeys, string>();
            Dictionary <MediaSourceAttributesKeys, string> sourceAttributes = new Dictionary <MediaSourceAttributesKeys, string>();
            List <MediaStreamDescription> availableStreams = new List <MediaStreamDescription>();
            string codec = "";

            codec += ToLittleEndianString(string.Format("{0:X4}", 1));
            codec += ToLittleEndianString(string.Format("{0:X4}", 1));
            codec += ToLittleEndianString(string.Format("{0:X8}", SamplesPerSec));
            codec += ToLittleEndianString(string.Format("{0:X8}", AvgBytesPerSec));
            codec += ToLittleEndianString(string.Format("{0:X4}", BlockAlign));
            codec += ToLittleEndianString(string.Format("{0:X4}", BitsPerSample));
            codec += ToLittleEndianString(string.Format("{0:X4}", 0));

            streamAttributes[MediaStreamAttributeKeys.CodecPrivateData] = codec;
            sourceAttributes[MediaSourceAttributesKeys.Duration]        = "0";
            sourceAttributes[MediaSourceAttributesKeys.CanSeek]         = "false";

            MediaStreamDescription msd = new MediaStreamDescription(MediaStreamType.Audio, streamAttributes);

            _audioDesc = msd;
            availableStreams.Add(_audioDesc);


            String bankName = "SoundBanks/GMBank/gmpiano.txt";
            var    file     = Application.GetResourceStream(new Uri(bankName, UriKind.Relative));
            String result   = "";

            using (var reader = new StreamReader(file.Stream))
            {
                result += reader.ReadToEnd();
            }
            synth = new StreamSynthesizer(44100, 1, 1000, 2);

            CSharpSynth.Banks.BankManager.addBank(new InstrumentBank(44100, bankName));
            int bankfile = BankManager.Count - 1;

            synth.SwitchBank(bankfile);


            byte[] buffer = new byte[synth.BufferSize];

            midiSeq = new MidiSequencer(synth);
            midiSeq.LoadMidi("temp.mid", false);
            //System.Diagnostics.Debug.WriteLine("midi file is ");
            //System.Diagnostics.Debug.WriteLine(midifile.OriginalString);
            //midiSeq.LoadMidi(midifile.OriginalString, false);
            midiSeq.Looping = true;
            midiSeq.Play();
            startTime = DateTime.Now;
            ReportOpenMediaCompleted(sourceAttributes, availableStreams);
        }
Пример #11
0
 //--Public Methods
 /// <summary>
 /// A simple echo effect.
 /// </summary>
 /// <param name="synth">A constructed synthesizer instance.</param>
 /// <param name="delaytime">Echo delay in seconds.</param>
 /// <param name="decay">Controls the volume of the echo.</param>
 public Echo(StreamSynthesizer synth, float delaytime, float decay)
     : base()
 {
     if (delaytime <= 0.0f)
     {
         throw new ArgumentException("delay time must be positive non-zero for echo effect.");
     }
     this.decay         = SynthHelper.Clamp(decay, 0.0f, 1.0f);
     this.EffectBuffer  = new float[synth.Channels, SynthHelper.getSampleFromTime(synth.SampleRate, delaytime)];
     channels           = this.EffectBuffer.GetLength(0);
     secondarybufferlen = this.EffectBuffer.GetLength(1);
 }
Пример #12
0
        void Awake()
        {
            midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
            sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

            midiStreamSynthesizer.LoadBank(bankFilePath);

            midiSequencer = new MidiSequencer(midiStreamSynthesizer);

            _metronome = FindObjectOfType <Metronome>();
            _metronome.BeatSubscribe(DoBeep);
            _metronome.BeatEvent += Play;
        }
Пример #13
0
    // Awake is called when the script instance
    // is being loaded.
    void Awake()
    {
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);

        midiSequencer = new MidiSequencer(midiStreamSynthesizer);

        //These will be fired by the midiSequencer when a song plays. Check the console for messages if you uncomment these
        //midiSequencer.NoteOnEvent += new MidiSequencer.NoteOnEventHandler (MidiNoteOnHandler);
        //midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler (MidiNoteOffHandler);
    }
Пример #14
0
    //bool[] curNoteOff = new bool[130];



    void Awake()
    {
        if (!instance)
        {
            instance = this;
        }

        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);

        midiSequencer = new MidiSequencer(midiStreamSynthesizer);

        // Arduino
        //sp.Open();
        //sp.ReadTimeout=1;

        for (i = 0; i < 130; i++)
        {
            tempval[i]     = "0";
            sensorInput[i] = 0;
            inputFlag[i]   = 0;
            strokeFlag[i]  = 0;
            curNoteOn[i]   = false;
            //curNoteOff[i] = false;
        }

        for (i = 1; i < 7; i++)
        {
            defGtr_isEmpty[i] = true;
        }

        defGtrLine[1] = 40;
        defGtrLine[2] = 45;
        defGtrLine[3] = 50;
        defGtrLine[4] = 55;
        defGtrLine[5] = 59;
        defGtrLine[6] = 64;

        sensorInput[40] = 1;
        sensorInput[45] = 1;
        sensorInput[50] = 1;
        sensorInput[55] = 1;
        sensorInput[59] = 1;
        sensorInput[64] = 1;

        //These will be fired by the midiSequencer when a song plays. Check the console for messages if you uncomment these
        midiSequencer.NoteOnEvent  += new MidiSequencer.NoteOnEventHandler(MidiNoteOnHandler);
        midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler(MidiNoteOffHandler);
    }
Пример #15
0
    // Awake is called when the script instance
    // is being loaded.

    public void PlayMusic(byte[] midi)
    {
        loadedMidi            = midi;
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);

        LoadSong(midi);
        playing = true;
        //These will be fired by the midiSequencer when a song plays. Check the console for messages if you uncomment these
        //midiSequencer.NoteOnEvent += new MidiSequencer.NoteOnEventHandler (MidiNoteOnHandler);
        //midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler (MidiNoteOffHandler);
    }
Пример #16
0
    private void InitIfNotDoneYet()
    {
        if (isInitialized)
        {
            return;
        }

        midiStreamSynthesizer = new StreamSynthesizer(midiStreamSampleRateHz, 2, bufferSize, 16);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);
        midiSequencer = new MidiSequencer(midiStreamSynthesizer);

        isInitialized = true;
    }
Пример #17
0
    void Awake()
    {
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);

        midiSequencer = new MidiSequencer(midiStreamSynthesizer);

        instrumentSelect = GameObject.Find("Instrument Select").GetComponent <TMPro.TMP_Dropdown>();

        //These will be fired by the midiSequencer when a song plays. Check the console for messages if you uncomment these
        //midiSequencer.NoteOnEvent += new MidiSequencer.NoteOnEventHandler (MidiNoteOnHandler);
        //midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler (MidiNoteOffHandler);
    }
Пример #18
0
    // Awake is called when the script instance
    // is being loaded.
    void Awake()
    {
        midiFilePath          = Application.persistentDataPath + "/Midis/" + ButtonPrefab.nameOfSong + ".txt";
        txtPath.text          = midiFilePath;
        midiStreamSynthesizer = new StreamSynthesizer(44100, 1, bufferSize, 40);

        sampleBuffer = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);

        midiSequencer = new MidiSequencer(midiStreamSynthesizer);
        //These will be fired by the midiSequencer when a song plays. Check the console for messages if you uncomment these
        //midiSequencer.NoteOnEvent += new MidiSequencer.NoteOnEventHandler(MidiNoteOnHandler);
        //midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler (MidiNoteOffHandler);
    }
Пример #19
0
    public void InitIfNotDoneYet()
    {
        if (isInitialized)
        {
            return;
        }

        midiStreamSynthesizer = new StreamSynthesizer(midiStreamSampleRateHz, 1, bufferSize, 16, 1);
        newSampleBuffer       = new float[midiStreamSynthesizer.BufferSize];
        availableSamplesSynthesizerSampleRate = new CircularBuffer <float>(midiStreamSampleRateHz / 10);
        availableSamplesOutputSampleRate      = new CircularBuffer <float>(outputSampleRateHz / 10);

        midiStreamSynthesizer.LoadBank(bankFilePath);
        midiSequencer = new MidiSequencer(midiStreamSynthesizer);

        isInitialized = true;
    }
Пример #20
0
    void Awake()
    {
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);

        midiSequencer               = new MidiSequencer(midiStreamSynthesizer);
        midiSequencer.NoteOnEvent  += new MidiSequencer.NoteOnEventHandler(MidiNoteOnHandler);
        midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler(MidiNoteOffHandler);
        ChangeSong(0);

        fc = GameObject.Find("FinalScenario").GetComponent <FinalScenario>();

        if (useRandomSong)
        {
            PlayRandomSong();
        }
    }
Пример #21
0
    // Awake is called when the script instance
    // is being loaded.
    void Awake()
    {
#if UNITY_ANDROID && !UNITY_EDITOR
        midiStreamSynthesizer = new StreamSynthesizer(44100, 1, bufferSize, 40);
#else
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
#endif
        sampleBuffer = new float[midiStreamSynthesizer.BufferSize];
        midiStreamSynthesizer.LoadBank(bankFilePath);
        midiSequencer            = new MidiSequencer(midiStreamSynthesizer);
        midiSequencer.TempoScale = 1.0f;

        //These will be fired by the midiSequencer when a song plays
        midiSequencer.NoteOnEvent  += new MidiSequencer.NoteOnEventHandler(MidiNoteOnHandler);
        midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler(MidiNoteOffHandler);

        // Set Default tuning adjustment to about -1 halftone
        //midiStreamSynthesizer.TuningAdjustment = -1.0f + AppProperties.TuningAdjustment;
    }
Пример #22
0
    void Awake()
    {
        // For now, imitating the behavior of UnitySynthTest.cs with two goals:
        // 1. Understand how UnitySynth loads and plays midi files
        // 2. Figure out where in that process to get the data for the markov chain

        // copied straight from UnitySynthTest.cs, almost
        midiStreamSynthesizer = new StreamSynthesizer(44100, 2, bufferSize, 40);
        sampleBuffer          = new float[midiStreamSynthesizer.BufferSize];

        midiStreamSynthesizer.LoadBank(bankFilePath);
        midiSequencer = new MidiSequencer(midiStreamSynthesizer);
        midiSequencer.LoadMidi(testMidiFile, false);

        midiSequencer.NoteOnEvent  += new MidiSequencer.NoteOnEventHandler(MidiNoteOnHandler);
        midiSequencer.NoteOffEvent += new MidiSequencer.NoteOffEventHandler(MidiNoteOffHandler);

        initializeMatrix(16, 128 * 128, 128);
    }
Пример #23
0
 //--Public Methods
 public SincFilter(StreamSynthesizer synth, int filtersize, double cornerfreq)
     : base()
 {
     sfilter = new SincLowPass(synth.Channels, filtersize, cornerfreq);
 }
Пример #24
0
 private void Start()
 {
     this.midiStreamSynthesizer = new StreamSynthesizer(44100, 2, 1024, 40);
     this.sampleBuffer          = new float[this.midiStreamSynthesizer.BufferSize];
     this.midiStreamSynthesizer.LoadBank("GM Bank/gm");
 }