diff --git a/PlayWallNative/libNativeAudio.dylib b/PlayWallNative/libNativeAudio.dylib
index 5bd4c2fe1271def3fefe42a31d62917ae8226a54..fc1f2851992daee95ab3d3a81e050014735ddc5c 100644
Binary files a/PlayWallNative/libNativeAudio.dylib and b/PlayWallNative/libNativeAudio.dylib differ
diff --git a/PlayWallNative/src/de/tobias/playpad/Waveform.java b/PlayWallNative/src/de/tobias/playpad/Waveform.java
index 16cd9ee899a2f98f81f050b851adfaaa94451422..f01873a01df7c0f3e1eb998941e3bd73b63519f6 100644
--- a/PlayWallNative/src/de/tobias/playpad/Waveform.java
+++ b/PlayWallNative/src/de/tobias/playpad/Waveform.java
@@ -2,25 +2,6 @@ package de.tobias.playpad;
 
 public class Waveform {
 
-	public static native void initialize();
-	
-	public static native void createWaveform(String path);
+	public static native float[] createWaveform(String path);
 
-	private static WaveformDelegate delegate;
-
-	private static void sampleProcessed(float[] data) {
-		if (delegate != null) {
-			delegate.sampleProcessed(data);
-		}
-	}
-
-	public static void setDelegate(WaveformDelegate delegate) {
-		Waveform.delegate = delegate;
-	}
-
-	public interface WaveformDelegate {
-
-		public void sampleProcessed(float[] data);
-
-	}
 }
diff --git a/PlayWallNative/src/de/tobias/playpad/view/WaveformView.java b/PlayWallNative/src/de/tobias/playpad/view/WaveformView.java
index 4d0294371b7455172e0b8889f07d9e39799fa1ab..2e77bdd1b3f213d7ee02a6da62248558ae02d4aa 100644
--- a/PlayWallNative/src/de/tobias/playpad/view/WaveformView.java
+++ b/PlayWallNative/src/de/tobias/playpad/view/WaveformView.java
@@ -1,5 +1,6 @@
 package de.tobias.playpad.view;
 
+import javafx.scene.paint.Color;
 import javafx.scene.shape.LineTo;
 import javafx.scene.shape.MoveTo;
 import javafx.scene.shape.Path;
@@ -9,21 +10,27 @@ 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);
+		double width = data.length / 1200.0;
+		
+		int i = 0;
+		for (i = 0; i < data.length; i+=1000) {
+			if (i < data.length) {
+				LineTo lineTo = new LineTo(i/width, data[i] * 50.0);
+				MoveTo moveTo = new MoveTo(i/width, data[i] * 50.0);
 
-			getElements().addAll(lineTo, moveTo);
+				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);
+		for (; i >= 0; i-=1000) {
+			if (i >= 0 && i < data.length) {
+				LineTo lineTo = new LineTo(i/width, -data[i] * 50.0);
+				MoveTo moveTo = new MoveTo(i/width, -data[i] * 50.0);
 
-			getElements().addAll(lineTo, moveTo);
+				getElements().addAll(lineTo, moveTo);
+			}
 		}
 		getElements().add(new LineTo(0, 0));
 		getElements().add(new MoveTo(0, 0));
-		setScaleX(0.5);
-
+		setFill(Color.BLACK);
 	}
 }
diff --git a/PlayWallNative/test/de/tobias/playpad/WaveformTest.java b/PlayWallNative/test/de/tobias/playpad/WaveformTest.java
index 33d856e693155de925f4c476a268db32c5070df3..20944d3ba1d5232527e26a0c1b1fe07ef073c9ff 100644
--- a/PlayWallNative/test/de/tobias/playpad/WaveformTest.java
+++ b/PlayWallNative/test/de/tobias/playpad/WaveformTest.java
@@ -1,58 +1,35 @@
 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.image.ImageView;
+import javafx.scene.image.WritableImage;
 import javafx.scene.layout.VBox;
 import javafx.stage.Stage;
 
 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;
-		
 		launch(args);
 	}
 
 	@Override
 	public void start(Stage primaryStage) throws Exception {
-		WaveformView view = new WaveformView(WaveformTest.data);
-		VBox root = new VBox(view);
+//		float[] data = Waveform.createWaveform("/Users/tobias/Music/iTunes/iTunes Media/Music/Coldplay/Mylo Xyloto/04 Charlie Brown.mp3");
+		float[] data = Waveform.createWaveform("/Users/tobias/Downloads/TNT-Loop.wav");
+		WaveformView view = new WaveformView(data);
+		
+		WritableImage image = new WritableImage(1200, 150);
+		view.snapshot(null, image );
+		
+		VBox root = new VBox(new ImageView(image));
 		Scene scene = new Scene(root);
 		
 		primaryStage.setScene(scene);
 		primaryStage.show();
 	}
 
-	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();
-				}
-			}
-		}
-
-		float[] data;
-
-		@Override
-		public void sampleProcessed(float[] data) {
-			this.data = data;
-			synchronized (this) {
-				notify();
-			}
-		}
-	}
 }