public void startPlayingMidi() { ChromaticScale.ChromaticScale scale = new ChromaticScale.ChromaticScale(); for (int i = 0; i <= 128; i++) { Console.WriteLine("Adding {0} - freq {1} name {2} to mixer", i, scale.getMidiFreqFromKeyNum(i), scale.getMidNoteNameFromKeyNum(i)); WaveGenerator generator = new WaveGenerator(WaveGenerator.WaveType.SquareWave, scale.getMidiFreqFromKeyNum(i), 1.0, 0.0); VolumeSource vol; ISampleSource source = generator.ToWaveSource() .AppendSource(x => new DmoChannelResampler(x, monoToStereoChannelMatrix, sampleRate)) .AppendSource(x => new VolumeSource(x.ToSampleSource()), out vol); //mixer.AddSource( // source // ); //mixer.setSourceVolume(i, 0.0f); midiKeys.Add(new MidiKeyPlaying { freq = scale.getMidiFreqFromKeyNum(i), name = scale.getMidNoteNameFromKeyNum(i), vol = 0.0f, vol_vel = 0.0f, source = source }); } soundOut.Initialize(mixer.ToWaveSource()); soundOut.Play(); }
public void startPlaying() { soundOut.Initialize(mixer.ToWaveSource()); soundOut.Play(); }