private void InitializeBASSMIDIStream() { // Init stream ChangePreviewButtonText("Initializing stream...", false); ChangeWindowTitle("Initializing stream..."); hStream = BassMidi.BASS_MIDI_StreamCreateFile(MIDIPreview, 0L, 0L, BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_SAMPLE_SOFTWARE | (Convert.ToBoolean(Program.SynthSettings.GetValue("EnableSFX", 0)) ? BASSFlag.BASS_DEFAULT : BASSFlag.BASS_MIDI_NOFX) | (LoopYesNo.Checked ? BASSFlag.BASS_SAMPLE_LOOP : BASSFlag.BASS_DEFAULT), 0); Bass.BASS_ChannelSetAttribute(hStream, BASSAttribute.BASS_ATTRIB_MIDI_CPU, (int)(Convert.ToInt32(Program.SynthSettings.GetValue("MaxRenderingTime", 75)) / 100)); System.Threading.Thread.Sleep(50); // Init SoundFont ChangePreviewButtonText("Loading SoundFont...", false); ChangeWindowTitle("Loading SoundFont..."); BASS_MIDI_FONTEX[] fonts = new BASS_MIDI_FONTEX[1]; if (OriginalSF.ToLower().IndexOf('=') != -1) { var matches = System.Text.RegularExpressions.Regex.Matches(OriginalSF, "[0-9]+"); string sf = OriginalSF.Substring(OriginalSF.LastIndexOf('|') + 1); fonts[0].font = BassMidi.BASS_MIDI_FontInit(sf); fonts[0].spreset = Convert.ToInt32(matches[0].ToString()); fonts[0].sbank = Convert.ToInt32(matches[1].ToString()); fonts[0].dpreset = Convert.ToInt32(matches[2].ToString()); fonts[0].dbank = Convert.ToInt32(matches[3].ToString()); } else { fonts[0].font = BassMidi.BASS_MIDI_FontInit(OriginalSF); fonts[0].spreset = -1; fonts[0].sbank = -1; fonts[0].dpreset = -1; fonts[0].dbank = 0; } BassMidi.BASS_MIDI_FontSetVolume(fonts[0].font, 1.0f); BassMidi.BASS_MIDI_StreamSetFonts(hStream, fonts, 1); BassMidi.BASS_MIDI_StreamLoadSamples(hStream); }
private void InitializeBASSMIDIStream() { // Init stream ChangePreviewButtonText("Initializing stream...", false); ChangeWindowTitle("Initializing stream..."); hStream = BassMidi.BASS_MIDI_StreamCreateFile(MIDIPreview, 0L, 0L, BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_SAMPLE_SOFTWARE, 0); Bass.BASS_ChannelSetAttribute(hStream, BASSAttribute.BASS_ATTRIB_MIDI_CPU, (int)(KeppySynthConfiguratorMain.Delegate.MaxCPU.Value / 100)); System.Threading.Thread.Sleep(50); // Init SoundFont ChangePreviewButtonText("Loading SoundFont...", false); ChangeWindowTitle("Loading SoundFont..."); BASS_MIDI_FONTEX[] fonts = new BASS_MIDI_FONTEX[1]; List <int> termsList = new List <int>(); termsList.Reverse(); if (OriginalSF.ToLower().IndexOf('=') != -1) { var matches = System.Text.RegularExpressions.Regex.Matches(OriginalSF, "[0-9]+"); string sf = OriginalSF.Substring(OriginalSF.LastIndexOf('|') + 1); fonts[0].font = BassMidi.BASS_MIDI_FontInit(sf); fonts[0].spreset = Convert.ToInt32(matches[0].ToString()); fonts[0].sbank = Convert.ToInt32(matches[1].ToString()); fonts[0].dpreset = Convert.ToInt32(matches[2].ToString()); fonts[0].dbank = Convert.ToInt32(matches[3].ToString()); BassMidi.BASS_MIDI_FontSetVolume(fonts[0].font, 1.0f); BassMidi.BASS_MIDI_StreamSetFonts(hStream, fonts, 1); } else { fonts[0].font = BassMidi.BASS_MIDI_FontInit(OriginalSF); fonts[0].spreset = -1; fonts[0].sbank = -1; fonts[0].dpreset = -1; fonts[0].dbank = 0; BassMidi.BASS_MIDI_StreamSetFonts(hStream, fonts, 1); } BassMidi.BASS_MIDI_StreamLoadSamples(hStream); }