private void SendAudioData(List <byte> data) { if (!_enabled) { return; } if (RackItemOutputs.Count > 0) { RackContainer?.OutputPipe(RackItemOutputs.First(), data); } }
private void SpectrumIn1(List <byte> data) { if (data.Count >= 64 * 3) { _graphicsIns[0] = data.ToArray(); } var compositeGraphic = new byte[64 * 3]; var i = 0; foreach (var t in _graphicsIns) { i++; if ((i == 1) && !Input1CheckBox.IsChecked.Value) { continue; } if ((i == 2) && !Input2CheckBox.IsChecked.Value) { continue; } for (var p = 0; p < 64; p++) { var r = t[p]; var g = t[p + 64]; var b = t[p + 128]; if ((compositeGraphic[p] == 0) && (compositeGraphic[p + 64] == 0) && (compositeGraphic[p + 128] == 0)) { compositeGraphic[p] = r; compositeGraphic[p + 64] = g; compositeGraphic[p + 128] = g; } else { compositeGraphic[p] = (byte)((r + compositeGraphic[p]) / 2); compositeGraphic[p + 64] = (byte)((g + compositeGraphic[p + 64]) / 2); compositeGraphic[p + 128] = (byte)((b + compositeGraphic[p + 128]) / 2); } } } LedSimulator.Set(compositeGraphic); if (RackItemOutputs.Count > 0) { RackContainer.OutputPipe(RackItemOutputs.First(), compositeGraphic.ToList()); } }
private void SpectrumIn(List <byte> data) { data = new List <byte>(data); if (data.Count == 0) { return; } while (data.Count < 8) { for (var i = 0; i < data.Count; i += 2) { data.Insert(i + 1, data[i]); } } while (data.Count >= 16) { for (var i = 0; i < data.Count; i += 1) { data.RemoveAt(i); } } var graphicsData = new byte[64 * 3]; var colStart = 0; for (var i = 0; i < 8; i += 1) { var barValue = (data[i] + 1) / 32; for (var j = 0; j < barValue; j++) { graphicsData[colStart + j] = (byte)(10 + 5 * j); graphicsData[64 + colStart + j] = (byte)(50 - 5 * j); graphicsData[128 + colStart + j] = 10; } colStart += 8; } if (RackItemOutputs.Count > 0) { RackContainer.OutputPipe(RackItemOutputs.First(), graphicsData.ToList()); } }
private void SpectrumInput(List <byte> data) { if (_numberOfSamplesUpDown.Value == null) { return; } var samples = _numberOfSamplesUpDown.Value.Value; while (_history.Count < samples) { _history.Add(new List <byte>()); } while (_history.Count > samples) { _history.RemoveAt(_history.Count - 1); } _history[++_current % _history.Count] = data; var processedDataInt = new List <int>(); for (var i = 0; i < data.Count; i++) { processedDataInt.Add(0); } foreach (var t in _history) { for (var j = 0; j < t.Count; j++) { processedDataInt[j] += t[j]; } } var processedData = processedDataInt.Select(t => (byte)(t / samples)).ToList(); if (RackItemOutputs.Count > 0) { RackContainer.OutputPipe(RackItemOutputs.First(), processedData); } }
private void SpectrumIn(List <byte> data) { var newData = new List <byte>(); if (SpectrumStackPanel.Children.Count != data.Count) { SpectrumStackPanel.Children.Clear(); for (var i = 0; i < data.Count; i++) { var bar = new ProgressBar { Style = _barStyle }; SpectrumStackPanel.Children.Add(bar); } var barWidth = (SpectrumStackPanelGrid.ActualWidth - data.Count * 4) / data.Count; foreach (var progressBar in Bars) { progressBar.Width = barWidth; } } var bars = Bars.ToList(); for (var i = 0; i < data.Count; i++) { bars[i].Value = data[i]; newData.Add(data[i]); } if (RackItemOutputs.Count > 0) { RackContainer.OutputPipe(RackItemOutputs.First(), newData); } }
private void SwitchInput(List <byte> binaryData) { var compositeGraphic = new byte[192]; for (var i = 0; i < Math.Min(_graphics.Count, binaryData.Count); i++) { if (binaryData[i] != 1) { continue; } for (var p = 0; p < 64; p++) { var r = _graphics[i].Graphic[p]; var g = _graphics[i].Graphic[p + 64]; var b = _graphics[i].Graphic[p + 128]; if ((compositeGraphic[p] == 0) && (compositeGraphic[p + 64] == 0) && (compositeGraphic[p + 128] == 0)) { compositeGraphic[p] = r; compositeGraphic[p + 64] = g; compositeGraphic[p + 128] = g; } else { compositeGraphic[p] = (byte)((r + compositeGraphic[p]) / 2); compositeGraphic[p + 64] = (byte)((g + compositeGraphic[p + 64]) / 2); compositeGraphic[p + 128] = (byte)((b + compositeGraphic[p + 128]) / 2); } } } if (RackItemOutputs.Count > 0) { RackContainer.OutputPipe(RackItemOutputs.First(), compositeGraphic.ToList()); } }
private void SpectrumPipeIn(List <byte> spectrum) { var spectrumCopy = spectrum.ToList(); _maxBars = spectrumCopy.Count; _channelCountSlider.Maximum = _maxBars; while (_spectrumMax.Count < spectrumCopy.Count) { _spectrumMax.Add(0); } while (_spectrumMin.Count < spectrumCopy.Count) { _spectrumMin.Add(0); } for (var i = 0; i < spectrumCopy.Count; i++) { if (_decayUpDown.Value != null) { _spectrumMax[i] -= _decayUpDown.Value.Value; _spectrumMin[i] += _decayUpDown.Value.Value; } _spectrumMax[i] = Math.Max(_spectrumMax[i], spectrumCopy[i]); _spectrumMin[i] = Math.Min(_spectrumMin[i], spectrumCopy[i]); if (_spectrumMax[i] < _spectrumMin[i]) { _spectrumMax[i] = _spectrumMin[i]; } } if (_numBars <= 1) { return; } var increment = spectrum.Count / (_numBars - 1.0); var mostActiveBands = new List <int>(); for (var d = 0.0; d < spectrumCopy.Count - increment / 2; d += increment) { var lowerBound = (int)Math.Max(0, Math.Ceiling(d - increment / 2)); var upperBound = (int)Math.Min(spectrumCopy.Count - 1, Math.Floor(d + increment / 2)); var bandRanges = new List <int>(); for (var i = lowerBound; i <= upperBound; i++) { bandRanges.Add((int)(_spectrumMax[i] - _spectrumMin[i])); } if (bandRanges.Count > 0) { mostActiveBands.Add(lowerBound + bandRanges.IndexOf(bandRanges.Max())); } } var filteredSpectrum = mostActiveBands.Select(t => spectrumCopy[t]).ToList(); if (RackItemOutputs.Count > 0) { RackContainer.OutputPipe(RackItemOutputs.First(), filteredSpectrum); } }
private void SpectrumInput(List <byte> data) { while (_binaryData.Count < data.Count) { _binaryData.Add(0); } while (_binaryData.Count > data.Count) { _binaryData.RemoveAt(_binaryData.Count - 1); } if (_normalize) { while (_maxs.Count < data.Count) { _maxs.Add(0); } while (_mins.Count < data.Count) { _mins.Add(255); } for (var i = 0; i < data.Count; i++) { _maxs[i] = Math.Max(data[i], _maxs[i]); _mins[i] = Math.Min(data[i], _mins[i]); if (NormalizationDecayDoubleUpDown.Value == null) { continue; } _maxs[i] -= (double)NormalizationDecayDoubleUpDown.Value.Value; _mins[i] += (double)NormalizationDecayDoubleUpDown.Value.Value; if (Math.Abs(_maxs[i] - _mins[i]) * ActivationPrecentDoubleUpDown.Value + _mins[i] < data[i]) { _binaryData[i] = 1; } else if (Math.Abs(_maxs[i] - _mins[i]) * DeactivationPrecentDoubleUpDown.Value + _mins[i] > data[i]) { _binaryData[i] = 0; } } } else { for (var i = 0; i < data.Count; i++) { if (255 * ActivationPrecentDoubleUpDown.Value < data[i]) { _binaryData[i] = 1; } else if (255 * DeactivationPrecentDoubleUpDown.Value > data[i]) { _binaryData[i] = 0; } } } if (RackItemOutputs.Count > 0) { RackContainer.OutputPipe(RackItemOutputs.First(), _binaryData); } }