improved audio data structure, started work on analysis page

This commit is contained in:
2017-05-09 22:23:12 -05:00
parent 819fb35680
commit 6bc04d85c9
11 changed files with 127 additions and 19 deletions

View File

@@ -0,0 +1,15 @@
package zero1hd.polyjet.audio;
import com.badlogic.gdx.files.FileHandle;
public class Audio {
public static AudioData getAudioData(FileHandle file) {
if (file.extension().equalsIgnoreCase("wav")) {
return new WavAudioData(file);
} else if (file.extension().equalsIgnoreCase("mp3")) {
return new Mp3AudioData(file);
}
return null;
}
}

View File

@@ -21,6 +21,12 @@ public class Mp3AudioData implements AudioData {
private Music playbackMusic;
private int readIndex;
public Mp3AudioData(FileHandle setAudio) {
setAudioFile(setAudio);
}
@Override
public void readIndexUpdate() {
readIndex = (int) (playbackMusic.getPosition() * audioFormat.getSampleRate() / readWindowSize);

View File

@@ -20,6 +20,10 @@ public class WavAudioData implements AudioData {
WavDecoder decoder;
WavInfo wavinfo;
public WavAudioData(FileHandle audioFileHandle) {
setAudioFile(audioFileHandle);
}
@Override
public void readIndexUpdate() {
readIndex = (int) (playbackMusic.getPosition() * wavinfo.getSampleRate() / readWindowSize);
@@ -35,7 +39,7 @@ public class WavAudioData implements AudioData {
}
@Override
public void setAudioFile(FileHandle audioFileHandler) {
public void setAudioFile(FileHandle audioFileHandle) {
reset();
try {
decoder.setAudioFile(wavinfo);
@@ -43,7 +47,7 @@ public class WavAudioData implements AudioData {
// TODO Auto-generated catch block
e.printStackTrace();
}
playbackMusic = Gdx.audio.newMusic(audioFileHandler);
playbackMusic = Gdx.audio.newMusic(audioFileHandle);
format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float) wavinfo.getSampleRate(), 16, wavinfo.getChannels(), wavinfo.getChannels()*2, (float) wavinfo.getSampleRate(), false);
}