public static void EffectSample(int ID, AudioEffectChain Chain) { if (UsedLibrary == AudioLibrary.NAudio) { if (Samples[ID] is WaveChannel16To32) { ((WaveChannel16To32)Samples[ID]).Chain = Chain; if (Chain != null) Chain.SampleRate = ((WaveChannel16To32)Samples[ID]).WaveFormat.SampleRate; } else if (Samples[ID] is WaveChannel24To32) { ((WaveChannel24To32)Samples[ID]).Chain = Chain; if(Chain!=null) Chain.SampleRate = ((WaveChannel24To32)Samples[ID]).WaveFormat.SampleRate; } else if (Samples[ID] is WaveChannel32To32) { ((WaveChannel32To32)Samples[ID]).Chain = Chain; if (Chain != null) Chain.SampleRate = ((WaveChannel32To32)Samples[ID]).WaveFormat.SampleRate; } //else if (Samples[ID] is WaveChannel32) ((WaveChannel32)Samples[ID]).Chain = Chain; //============================================= } }
//private static MidiOut midiOut = null; //============================================= public static bool OpenAudio(AudioLibrary AL,AudioEffectChain General) { if (UsedLibrary != AudioLibrary.Null ||(playbackDevice != null && playbackDevice.PlaybackState == PlaybackState.Playing)) return false; UsedLibrary = AL; if (UsedLibrary == AudioLibrary.NAudio) { //if (midiOut != null) midiOut.Close(); //NAUDIO Mixer32 = new RecordableMixerStream32(); Mixer32.Chain = General; Mixer32.AutoStop = false; playbackDevice = new AsioOut(0);//new WaveOut();// if (playbackDevice == null) playbackDevice = new WaveOut(); if (playbackDevice == null) return false; playbackDevice.Init(Mixer32); //============================================= } return true; }