Beispiel #1
0
 private static void SaveDataInputBuffer(InputPortData1D p, NodeState to)
 {
     if (p.Queue != null)
     {
         to.WriteValue(to.PortValues, p.Name, p.Queue.GetState());
     }
 }
Beispiel #2
0
 public MetricThresholdHystersis(Graph g) : base("Hysteresis Threshold", g)
 {
     _portIn         = new InputPortData1D(this, "In");
     _portThreshHigh = new InputPortValueDouble(this, "High");
     _portThreshLow  = new InputPortValueDouble(this, "Low");
     _portOut        = new OutputPortValueDouble(this, "Out");
 }
Beispiel #3
0
 private static void LoadDataInputBuffer(NodeState from, InputPortData1D to)
 {
     if (to.Queue != null)
     {
         to.LoadBuffer((SignalRingBuffer)from.PortValues[to.Name]);
     }
 }
Beispiel #4
0
        public MetricDisplay2(Graph g) : base("Display", g)
        {
            var dataInp  = new InputPortData1D(this, "Dinp 1");
            var valueInp = new InputPortValueDouble(this, "Vinp 1");

            _attrLookAheadFactor = new AttributeValueDouble(this, "Look Ahead Factor", 1);
            _attrWindowLength    = new AttributeValueInt(this, "Window Length", "ms", 1000);
            _attrLookAheadFactor.SetRuntimeReadonly();

            _attrWindowLength.Changed += (s, e) => {
                lock (_processingLock) {
                    lock (_wndLock) {
                        if (State == Graph.State.Running)
                        {
                            CreateChannels();
                            _wnd?.PrepareProcessing();
                        }
                    }
                }
            };

            PortConnectionChanged += MetricDisplay2_PortConnectionChanged;

            try {
                CreateWindow();
            } catch (Exception e) {
                throw new InvalidOperationException("Error in constructor while creating window: " + e);
            }
        }
Beispiel #5
0
        public Resampler(Graph g) : base("Resampler", g)
        {
            _input  = new InputPortData1D(this, "In");
            _output = new OutputPortData1D(this, "Out");

            _attrSamplerateOut          = new AttributeValueInt(this, "Output Samplerate", "Hz");
            _attrSamplerateOut.Changed += (s, e) => _output.Samplerate = _attrSamplerateOut.TypedGet();
        }
Beispiel #6
0
        public MetricThreshold(Graph graph) : base("Threshold", graph)
        {
            _portInp    = new InputPortData1D(this, "In");
            _portThresh = new InputPortValueDouble(this, "Threshold");
            _portOut    = new OutputPortValueDouble(this, "Out");

            _output = new TimeLocatedValue <double>(0, TimeStamp.Zero);
        }
Beispiel #7
0
        public MetricMultiplyValue(Graph graph) : base("Multiply", graph)
        {
            _portInp    = new InputPortData1D(this, "In");
            _portInpVal = new InputPortValueDouble(this, "f");
            _portOut    = new OutputPortData1D(this, "out");

            _portInp.SamplerateChanged += (s, e) => _portOut.Samplerate = _portInp.Samplerate;
        }
Beispiel #8
0
 public int ReadFromDataPort(InputPortData1D port, TimeLocatedBuffer1D <double> output)
 {
     lock (_processingLock) {
         var ringbuffer = ((DataChannel)_channels[port]).Data;
         var read       = ringbuffer.Peek(output, output.Capacity);
         return(read);
     }
 }
Beispiel #9
0
 public MetricSustainedThreshold(Graph g) : base("Sustained Threshold", g)
 {
     _portIn     = new InputPortData1D(this, "In");
     _portThresh = new InputPortValueDouble(this, "Thresh");
     _portOut    = new OutputPortValueDouble(this, "Out");
     _attrActiveDurationMillis = new AttributeValueDouble(this, "SustainDuration", "ms", 1000);
     _attrStartAt = new AttributeValueEnum <SustainMode>(this, "SustainStart");
 }
Beispiel #10
0
        public MetricBuffer(Graph graph) : base(graph)
        {
            _portOut    = new OutputPortData1D(this, "out");
            _portInp    = new InputPortData1D(this, "inp");
            _attrMillis = new AttributeValueDouble(this, "Milliseconds", "ms", 1000);
            _attrMillis.SetRuntimeReadonly();

            _portInp.SamplerateChanged += (sender, ev) => _portOut.Samplerate = _portInp.Samplerate;
        }
Beispiel #11
0
        public Adder(Graph g) : base(nameof(Adder), g)
        {
            PortIn1 = new InputPortData1D(this, "In1");
            PortIn2 = new InputPortData1D(this, "In2");
            PortOut = new OutputPortData1D(this, "Out");

            PortIn1.SamplerateChanged += PortIn_SamplerateChanged;
            PortIn2.SamplerateChanged += PortIn_SamplerateChanged;
        }
Beispiel #12
0
        public MetricRms(Graph g) : base("RMS", g)
        {
            _portIn  = new InputPortData1D(this, "In");
            _portOut = new OutputPortData1D(this, "Out");

            _portIn.SamplerateChanged += (s, e) => UpdateSamplerate();

            _attrMilliseconds          = new AttributeValueDouble(this, "Window Length", "ms");
            _attrMilliseconds.Changed += (s, e) => UpdateSamplerate();
            _attrMilliseconds.SetRuntimeReadonly();
        }
Beispiel #13
0
        private void AddRenderer(InputPortData1D p, int samples)
        {
            var colors = new [] { Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Navy, Color.Black };
            var data   = new DataLine1D(p.Connection.Parent.Description, samples, p.Samplerate)
            {
                LineColor = colors[_renderers.Count % colors.Length]
            };

            _renderers.Add(p, data);
            _set?.Data.Add(data);
        }
Beispiel #14
0
        public MetricFilter(Graph graph) : base("Filter", graph)
        {
            _portInp = new InputPortData1D(this, "In");
            _portOut = new OutputPortData1D(this, "Out");

            _portInp.SamplerateChanged += portInp_SamplerateChanged;

            _attrCenterFrequency = new AttributeValueDouble(this, "Center", "Hz");
            _attrPeakGainDb      = new AttributeValueDouble(this, "Gain", "dB");
            _attrQFactor         = new AttributeValueDouble(this, "Q");
            _attrType            = new AttributeValueEnum <Biquad.BiquadType>(this, "Type");

            _attrCenterFrequency.Changed += (s, e) => _bpf.Fc = _portOut.Samplerate > 0 ? _attrCenterFrequency.TypedGet() / _portOut.Samplerate : 0;
            _attrPeakGainDb.Changed      += (s, e) => _bpf.PeakGainDb = _attrPeakGainDb.TypedGet();
            _attrQFactor.Changed         += (s, e) => _bpf.Q = _attrQFactor.TypedGet();
            _attrType.Changed            += (s, e) => _bpf.Type = _attrType.TypedGet();
        }
Beispiel #15
0
 public bool ChannelExists(InputPortData1D p)
 {
     return(_renderers.ContainsKey(p));
 }