diff --git a/.gitignore b/.gitignore
index 859a6b6..28e5329 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,6 @@
# Ignore local binaries for xt-audio
/win32-x64
+
+# Ignore any .wav file output
+*.wav
diff --git a/pom.xml b/pom.xml
index 0c11bde..3628642 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
sh.ball
osci-render
- 1.2.1
+ 1.3.0
osci-render
diff --git a/src/main/java/sh/ball/audio/AudioPlayer.java b/src/main/java/sh/ball/audio/AudioPlayer.java
index 6a16bfa..921d8fe 100644
--- a/src/main/java/sh/ball/audio/AudioPlayer.java
+++ b/src/main/java/sh/ball/audio/AudioPlayer.java
@@ -13,6 +13,7 @@ import xt.audio.Structs.XtFormat;
import xt.audio.Structs.XtMix;
import xt.audio.Structs.XtStreamParams;
+import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ArrayBlockingQueue;
@@ -21,16 +22,24 @@ import java.util.concurrent.BlockingQueue;
import sh.ball.shapes.Shape;
import sh.ball.shapes.Vector2;
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
import java.util.List;
-public class AudioPlayer implements Renderer> {
+public class AudioPlayer implements Renderer, AudioInputStream> {
private static final int BUFFER_SIZE = 20;
+ private static final int BITS_PER_SAMPLE = 16;
+ private static final boolean SIGNED = true;
+ private static final boolean BIG_ENDIAN = false;
private final XtFormat format;
private final BlockingQueue> frameQueue = new ArrayBlockingQueue<>(BUFFER_SIZE);
private final Map