From 43c62688c6c991e7749551b6c11561181d84cbfa Mon Sep 17 00:00:00 2001 From: Nic0Nic0Nii Date: Tue, 12 Oct 2021 01:57:17 +0000 Subject: [PATCH] Setup and draw spectrograph. Co-authored-by: sigonasr2 --- LLSIG/src/main/java/LLSIG/Canvas.java | 35 ++++++++++++++++++- LLSIG/src/main/java/LLSIG/LLSIG.java | 2 +- .../src/main/java/LLSIG/SpectrographBar.java | 34 ++++++++++++++++++ 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 LLSIG/src/main/java/LLSIG/SpectrographBar.java diff --git a/LLSIG/src/main/java/LLSIG/Canvas.java b/LLSIG/src/main/java/LLSIG/Canvas.java index 9ba6042..b207ef7 100644 --- a/LLSIG/src/main/java/LLSIG/Canvas.java +++ b/LLSIG/src/main/java/LLSIG/Canvas.java @@ -5,17 +5,29 @@ import java.awt.Graphics; import java.awt.geom.Rectangle2D; import java.awt.font.FontRenderContext; import java.awt.Font; +import java.util.ArrayList; import javax.swing.JPanel; -public class Canvas extends JPanel{ +import javafx.scene.media.AudioSpectrumListener; + +public class Canvas extends JPanel implements AudioSpectrumListener{ final Color NOTE_COLOR = new Color(196,116,116); + ArrayList spectrograph = new ArrayList(); public Canvas(Dimension size) { super(); this.setSize(size); this.setMinimumSize(size); } + + public void update() { + for (int i=0;i=bt.offset) { diff --git a/LLSIG/src/main/java/LLSIG/SpectrographBar.java b/LLSIG/src/main/java/LLSIG/SpectrographBar.java new file mode 100644 index 0000000..d197f74 --- /dev/null +++ b/LLSIG/src/main/java/LLSIG/SpectrographBar.java @@ -0,0 +1,34 @@ +package main.java.LLSIG; + +import java.awt.Graphics; +import java.awt.Color; + +public class SpectrographBar { + final float NO_UPDATE = 999f; + float current_magnitude = 0.0f; + SpectrographBar() { + this(0f); + } + SpectrographBar(float magnitude) { + update(magnitude); + } + public void update() { + update(NO_UPDATE); + } + public void update(float value) { + if (value!=NO_UPDATE) { + if (Math.abs(current_magnitude)>0.3f) { + current_magnitude/=1.01f; + } else { + current_magnitude=0; + } + } else { + current_magnitude=value; + } + } + public void draw(Graphics g,int x,int w,int h) { + int colVal = (int)((Math.abs(current_magnitude)/60d)*255); + g.setColor(new Color(colVal,colVal,colVal,colVal)); + g.fillRect(x,0,w,h); + } +}