public UIParams(ref WaveformPainter wavePainter, ref VolumeMeter volumeMeter, PCMAudioFormat format = PCMAudioFormat.PCM_24, Mode mode = Mode.Auscultate) { this.WavePainter = wavePainter; this.VolumeMeter = volumeMeter; this.Format = format; this.Mode = mode; }
private void SetupControls() { this.Controls.Clear(); var channels = waveFormat.Channels; if (channels > 0) { TableLayoutPanel table = new TableLayoutPanel { Dock = DockStyle.Fill, }; table.RowCount = channels; for (int ch = 0; ch < channels; ch++) { var wavePainter = new WaveformPainter { Tag = ch, Dock = DockStyle.Fill, BackColor = System.Drawing.SystemColors.Info, }; waveformPainters.Add(wavePainter); table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); table.Controls.Add(wavePainter, 0, ch); } this.Controls.Add(table); //this.AutoSize = true; } }
public GusboyVisualWaveProvider(WaveFormat waveFormat, Gameboy gb, WaveformPainter painter, int bufferLength) { this.waveFormat = waveFormat; this.gb = gb; this.painter = painter; // We can assume stereo (since the emulator doesn't support mono) this.bufferSkip = waveFormat.SampleRate * 2 / 60; this.queueLength = bufferLength / 500 * waveFormat.SampleRate / this.bufferSkip; }
void InitializePainer(WaveformPainter waveformPainter, float[] samples) { waveformPainter.ClearSamples(); int step = samples.Length / waveformPainter.MaxSamples; int cnt = 0; for (var i = 0; i < waveformPainter.MaxSamples; i++) { var avgs = new List <float>(); var avgNeg = new List <float>(); var avgPos = new List <float>(); for (var j = 0; j < step; j++, cnt++) { if (cnt >= samples.Length) { break; } if (samples[cnt] > 0) { avgPos.Add(samples[cnt]); avgNeg.Add(0); } if (samples[cnt] <= 0) { avgNeg.Add(samples[cnt]); avgPos.Add(0); } avgs.Add(samples[cnt]); } if (avgPos.Count > 0) { waveformPainter.PositiveSamples[i] = (avgPos.Max()); } if (avgNeg.Count > 0) { waveformPainter.NegativeSamples[i] = (avgNeg.Min()); } if (avgs.Count > 0) { waveformPainter.AverageSamples.Add(avgs.Average()); } } waveformPainter.Invalidate(); }
public AudioTestView() { InitializeComponent(); volumeSlider = new VolumeSlider(); volumeSlider.VolumeChanged += new EventHandler(OnVolumeSliderChanged); this.NAudioVolumeSlider.Child = volumeSlider; volumeMeter1 = new VolumeMeter(); volumeMeter2 = new VolumeMeter(); volumeMeter1.ForeColor = volumeMeter2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); this.NAudioVolumeMeter1.Child = volumeMeter1; this.NAudioVolumeMeter2.Child = volumeMeter2; waveformPainter1 = new WaveformPainter(); waveformPainter2 = new WaveformPainter(); waveformPainter1.BackColor = waveformPainter2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); waveformPainter1.ForeColor = waveformPainter2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.NAudioPainter1.Child = waveformPainter1; this.NAudioPainter2.Child = waveformPainter2; }
public void SetWaveformPainter(WaveformPainter painter) { this.waveformPainter = painter; }