static void Main(string[] args) { const int frequencty = 44100; MidiConnector connector; if (args.Any(s => !s.StartsWith("-"))) { connector = new SmfConnector(frequencty); ((SmfConnector)connector).Load(args.First(s => !s.StartsWith("-"))); } else { connector = new MidiInConnector(frequencty, 0); } foreach (var preset in args.Where(a => a.StartsWith("-p:")).Select(a => a.Substring(3))) { Console.Write("Preset: " + preset); connector.AddPreset(preset); Console.WriteLine(" ... [OK]"); } Console.WriteLine("[q] Quit, [r] Reload Presets"); Func<float[], int, int, int> process = (buffer, offset, count) => connector.Master.Read(buffer, offset, count); var setting = new PlayerSettings() { BufferSize = 512, BufferCount = 64, BitPerSample = 16, SamplingFrequency = frequencty }; using (var l = new SinglePlayer(process, setting)) { Console.WriteLine("Playing!"); l.Play(); connector.Play(); var end = false; do { switch (Console.ReadKey(true).Key) { case ConsoleKey.Q: end = true; break; case ConsoleKey.R: connector.ReloadPreset(); break; default: break; } } while (!end); } connector.Stop(); }
public WavePlayer(PlayerSettings settings) { OpenAL.AlutInit(); this.settings = settings; this.baseStream = new RawWaveStream(this.settings.BitPerSample, this.settings.SamplingFrequency, this.settings.ChannelCount); this.audioSource = new AudioSource(); this.baseStream.Reading += Generate; }
private void MainForm_Load(object sender, EventArgs e) { this.monitorBuffer = new float[2048]; this.monitor = new WaveformMonitor(Color.FromArgb(139, 229, 139), this.monitorBox.Size); this.monitorBox.Image = this.monitor.Bitmap; this.volumeMonitor = new VolumeMonitor(Color.FromArgb(139, 229, 139), this.volumeMonitorBox.Size); this.volumeMonitorBox.Image = this.volumeMonitor.Bitmap; this.SwitchConnection(); Func<float[], int, int, int> process = (buffer, offset, count) => { int k = connector.Master.Read(buffer, offset, count); if (this.monitorBuffer.Length != buffer.Length) this.monitorBuffer = new float[buffer.Length]; buffer.CopyTo(this.monitorBuffer, 0); return k; }; var setting = new PlayerSettings() { BufferSize = 1024, BufferCount = 32, BitPerSample = 16, SamplingFrequency = frequencty }; this.player = new SinglePlayer(process, setting); this.playing = true; this.Stop(); }
public ByteStreamPlayer(Stream stream, PlayerSettings settings) : base(settings) { this.stream = stream; }
public BytePlayer(Func<byte[], int, int, int> bufferProcess, PlayerSettings settings) : base(settings) { this.bufferProcess = bufferProcess; }
public DoublePlayer(Func<double[], int, int, int> bufferProcess, PlayerSettings settings) : base(settings) { this.bufferProcess = bufferProcess; this.buffer = new double[this.settings.BufferSize / (this.settings.BitPerSample / 8)]; }
public SinglePlayer(Func<float[], int, int, int> bufferProcess, PlayerSettings settings) : base(settings) { this.bufferProcess = bufferProcess; this.buffer = new float[this.settings.BufferSize / (this.settings.BitPerSample / 8)]; }