public void Initialize(SoundIOSharp.SoundIODevice device, AudioFormat format) { InitSynthesizer(device, format); MidiOscillator = new Oscillator(Wave.CurrentState, 0, OscillatorVolume); Recorder = new RecordFilter(Synthesizer); if (DebugPrint) { Console.WriteLine($"Initialized : {device.Name}, {format.SampleRate}Hz, {Output.ActualLatency.TotalMilliseconds}ms"); } }
private void InitSynthesizer(SoundIOSharp.SoundIODevice device, AudioFormat format) { if (Output == null) { Output = new SoundioOutput(); } Output.DesiredLatency = TimeSpan.FromMilliseconds(100); Output.Initialize(device, format); Output.Buffer += OutputOnBuffer; Synthesizer = new Synthesizer(format.SampleRate, 50); }
public void InitializeMidi(MidiFile midi, SoundIOSharp.SoundIODevice device, AudioFormat format) { InitSynthesizer(device, format); MidiOscillator = new Oscillator(Wave.CurrentState, 0, OscillatorVolume); MidiPlayer = new MidiPlayer(format.SampleRate, Synthesizer); MidiPlayer.OscillatorConfigs.Add(MidiOscillator); MidiPlayer.Open(midi); if (DebugPrint) { Console.WriteLine($"Initialized : {device.Name}, {format.SampleRate}Hz, {Output.ActualLatency.TotalMilliseconds}ms"); } }