public AudioLeds() { //this.messageSender = new SimulationMessageSender(); this.messageSender = Serial.Instance; Serial.onData += onData; this.messageSender.Open(); this.messageSender.SendValue(64, Codes.MessageType.BRIGHTNESS); this.builder = new MessageBuilder { MessageType = Codes.MessageType.CONTROL_AUDIOBANDS }; this.buffer = new SmoothBuffer(10, 0.2f, true); this.max = new SmoothBuffer(1, 0.05f, true); new Thread(this.updater).Start(); }
private void fftCalculated(object sender, FftEventArgs e) { bool useLog = false; float[] freqs = calculateFrequencies(e, useLog); float[] averages = this.calculateLogAverages(freqs); float[] bands = this.calculateBands(freqs); const float smoothness = 0.5f; if (this.lineBuffer == null) { this.lineBuffer = new SmoothBuffer(averages.Length, smoothness, true); } if (this.bandBuffer == null) { this.bandBuffer = new SmoothBuffer(bands.Length, smoothness, true); } var bufferedAverage = this.lineBuffer.ApplyBuffer(averages); var bufferedBands = this.bandBuffer.ApplyBuffer(bands); this.audioLeds.Show(bands); var showGraphics = false; if (showGraphics) { float scale = this.getScale(averages); this.GFX.Clear(Color.FromArgb(20, Color.Black)); this.drawBands(bufferedBands, scale); this.draw(bufferedAverage, DrawMode.Line, scale); this.finishDraw(); } }