diff --git a/PlayWallCore/src/de/tobias/playpad/pad/view/PeakTrack.java b/PlayWallCore/src/de/tobias/playpad/pad/view/PeakTrack.java index 7c3686496d92b95c5ccf06e5ceee393527fe3ed0..b2a73ec109a92c977ca8dc164125726e8ea79361 100644 --- a/PlayWallCore/src/de/tobias/playpad/pad/view/PeakTrack.java +++ b/PlayWallCore/src/de/tobias/playpad/pad/view/PeakTrack.java @@ -37,7 +37,7 @@ public class PeakTrack extends HBox { label.minHeightProperty().bind(minHeightProperty()); label.prefHeightProperty().bind(prefHeightProperty()); - label.prefWidthProperty().bind(widthProperty().multiply(0.05).subtract(2)); + label.prefWidthProperty().bind(widthProperty().multiply(0.05).subtract(3)); label.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, new CornerRadii(5), new BorderWidths(0.5)))); if (i < 0.75) diff --git a/PlayWallNative/libNativeAudio.dylib b/PlayWallNative/libNativeAudio.dylib index 5d34a877a4081659539f91224ba8a58850a20af9..5bd4c2fe1271def3fefe42a31d62917ae8226a54 100644 Binary files a/PlayWallNative/libNativeAudio.dylib and b/PlayWallNative/libNativeAudio.dylib differ diff --git a/PlayWallNative/src/de/tobias/playpad/view/WaveformView.java b/PlayWallNative/src/de/tobias/playpad/view/WaveformView.java new file mode 100644 index 0000000000000000000000000000000000000000..4d0294371b7455172e0b8889f07d9e39799fa1ab --- /dev/null +++ b/PlayWallNative/src/de/tobias/playpad/view/WaveformView.java @@ -0,0 +1,29 @@ +package de.tobias.playpad.view; + +import javafx.scene.shape.LineTo; +import javafx.scene.shape.MoveTo; +import javafx.scene.shape.Path; + +public class WaveformView extends Path { + + public WaveformView(float[] data) { + getElements().add(new MoveTo(0, 0)); + + for (int i = 0; i < data.length; i++) { + LineTo lineTo = new LineTo(i, data[i] * 50.0); + MoveTo moveTo = new MoveTo(i, data[i] * 50.0); + + getElements().addAll(lineTo, moveTo); + } + for (int i = data.length - 1; i >= 0; i--) { + LineTo lineTo = new LineTo(i, -data[i] * 50.0); + MoveTo moveTo = new MoveTo(i, -data[i] * 50.0); + + getElements().addAll(lineTo, moveTo); + } + getElements().add(new LineTo(0, 0)); + getElements().add(new MoveTo(0, 0)); + setScaleX(0.5); + + } +} diff --git a/PlayWallNative/test/de/tobias/playpad/WaveformTest.java b/PlayWallNative/test/de/tobias/playpad/WaveformTest.java index a958018418620114b5decae89f01df3f2d8df40f..33d856e693155de925f4c476a268db32c5070df3 100644 --- a/PlayWallNative/test/de/tobias/playpad/WaveformTest.java +++ b/PlayWallNative/test/de/tobias/playpad/WaveformTest.java @@ -1,37 +1,58 @@ package de.tobias.playpad; import de.tobias.playpad.Waveform.WaveformDelegate; +import de.tobias.playpad.view.WaveformView; +import javafx.application.Application; +import javafx.geometry.Insets; +import javafx.scene.Scene; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; -public class WaveformTest implements WaveformDelegate { +public class WaveformTest extends Application { + private static float[] data; + public static void main(String[] args) { System.load("/Users/tobias/Documents/Programmieren/Java/git/PlayWall/PlayWallNative/libNativeAudio.dylib"); + + WaveformTest.data = new Test().data; - new WaveformTest(); + launch(args); } - - public WaveformTest() { - Waveform.initialize(); - Waveform.setDelegate(this); - Waveform.createWaveform("/Users/tobias/Downloads/Short.mp3"); + + @Override + public void start(Stage primaryStage) throws Exception { + WaveformView view = new WaveformView(WaveformTest.data); + VBox root = new VBox(view); + Scene scene = new Scene(root); - synchronized (this) { - try { - wait(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } + primaryStage.setScene(scene); + primaryStage.show(); } - - @Override - public void sampleProcessed(float[] data) { - System.out.println(data.length); - for (int i = 0; i < data.length; i++) { - System.out.println(data[i]); + + public static class Test implements WaveformDelegate { + public Test() { + Waveform.initialize(); + Waveform.setDelegate(this); + Waveform.createWaveform("/Users/tobias/Downloads/03%20Hymn%20for%20the%20Weekend.mp3.wav"); + + synchronized (this) { + try { + wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } - synchronized (this) { - notify(); + + float[] data; + + @Override + public void sampleProcessed(float[] data) { + this.data = data; + synchronized (this) { + notify(); + } } } }