Exemplo n.º 1
0
 public WaveFormat(Samples samples, ushort channels = 1, uint sampleRate = 44100)
 {
     SampleRate       = sampleRate;
     NumberOfChannels = channels;
     AssignSamples(samples.Data);
 }
Exemplo n.º 2
0
        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
                    {
                    }
                }
            }
        }