public WaveFormat(Samples samples, ushort channels = 1, uint sampleRate = 44100) { SampleRate = sampleRate; NumberOfChannels = channels; AssignSamples(samples.Data); }
private void NodesControlOnOnNodeContextSelected(object obj) { nodeEditor.propertyGrid.SelectedObject = obj; NodesGraph graph = nodeEditor.nodesControl.graph; if (graph.Nodes.Exists(x => x.IsSelected)) { foreach (NodeVisual n in graph.Nodes.Where(x => x.IsSelected)) { if (n.Name != "Process") { nodeEditor.nodesControl.Execute(n); } //dynamic context = obj; dynamic context = n.GetNodeContext(); try { Samples samples = context.samplesOut; Series series = new Series(); float yMin = 0; float yMax = 0; for (int i = 0; i < samples.Data.Length; i++) { series.Points.AddXY(i / 44100f, samples.Data[i]); if (samples.Data[i] > yMax) { yMax = samples.Data[i]; } if (samples.Data[i] < yMin) { yMin = samples.Data[i]; } } series.ChartType = SeriesChartType.Line; chart.Series.Clear(); chart.ChartAreas[0].AxisY.IsStartedFromZero = false; chart.Series.Add(series); if (yMax != yMin) { chart.ChartAreas[0].AxisY.Maximum = yMax; chart.ChartAreas[0].AxisY.Minimum = yMin; } else { chart.ChartAreas[0].AxisY.Maximum = yMax + 1; chart.ChartAreas[0].AxisY.Minimum = yMin - 1; } } catch { } try { Signal signal = context.signal; Series series = new Series(); float yMin = 0; float yMax = 0; for (int i = 0; i < signal.Length; i++) { series.Points.AddXY(i / 44100f, signal[i]); if (signal[i] > yMax) { yMax = signal[i]; } if (signal[i] < yMin) { yMin = signal[i]; } } series.ChartType = SeriesChartType.Line; chart.Series.Clear(); chart.ChartAreas[0].AxisY.IsStartedFromZero = false; chart.Series.Add(series); if (yMax != yMin) { chart.ChartAreas[0].AxisY.Maximum = yMax; chart.ChartAreas[0].AxisY.Minimum = yMin; } else { chart.ChartAreas[0].AxisY.Maximum = yMax + 1; chart.ChartAreas[0].AxisY.Minimum = yMin - 1; } } catch { } } } }