Exemple #1
0
        public Sender(string dlsPath)
        {
            uint fileSize = 0;

            mpWaveTable = waveout_LoadWaveTable(Marshal.StringToHGlobalAuto(dlsPath), out fileSize);
            mpInstList  = (INST_LIST *)Marshal.AllocHGlobal(Marshal.SizeOf <INST_LIST>());
            var dls = new DLS.DLS(mpWaveTable, fileSize);

            dls.GetInstList(mpInstList);
            //var sf2 = new SF2.SF2(dlsPath, mpWaveTable, fileSize);
            //sf2.GetInstList(mpInstList);
            waveout_SystemValues(SampleRate, 16, 220, 50, CHANNEL_COUNT, SAMPLER_COUNT);
            mppChannels = waveout_GetChannelPtr();
            mppSamplers = waveout_GetSamplerPtr();
            mppNotes    = waveout_GetNotePtr();
            midi_CreateChannels(mpInstList, mppSamplers, mppNotes, mppChannels, SAMPLER_COUNT);
            mppChParam = midi_GetChannelParamPtr();
            waveout_Open();
        }
Exemple #2
0
 private static extern void midi_CreateChannels(INST_LIST *list, IntPtr ppSmpl, NOTE **ppNote, IntPtr ppCh, int samplerCount);