began work on integrating analysis system, cleaned up audio system
This commit is contained in:
@@ -213,8 +213,8 @@ public class AudioAnalyzer {
|
||||
overlappedBeats.shrink();
|
||||
}
|
||||
|
||||
public void startAnalyticalThread(final AudioData audiofile) {
|
||||
|
||||
public void startAnalyticalThread(AudioData audiofile) {
|
||||
audioPCM = new float[audiofile.getReadWindowSize()];
|
||||
fftData = new float[audiofile.getReadWindowSize()];
|
||||
spectrum = new float[(audiofile.getReadWindowSize()/2)+1];
|
||||
lastSpectrum = new float[(audiofile.getReadWindowSize()/2)+1];
|
||||
|
@@ -3,7 +3,6 @@ package zero1hd.polyjet.audio;
|
||||
import javax.sound.sampled.AudioFormat;
|
||||
|
||||
import com.badlogic.gdx.audio.Music;
|
||||
import com.badlogic.gdx.files.FileHandle;
|
||||
|
||||
public interface AudioData {
|
||||
/**
|
||||
@@ -18,11 +17,6 @@ public interface AudioData {
|
||||
*/
|
||||
public int getReadIndex();
|
||||
|
||||
/**
|
||||
* Sets the current audio file
|
||||
*/
|
||||
public void setAudioFile(FileHandle setAudio);
|
||||
|
||||
/**
|
||||
* Completely resets the current audio data. Think of pooling, except, only one instance which is reused instead of multiple.
|
||||
*/
|
||||
|
@@ -23,22 +23,6 @@ public class Mp3AudioData implements AudioData {
|
||||
|
||||
|
||||
public Mp3AudioData(FileHandle setAudio) {
|
||||
setAudioFile(setAudio);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void readIndexUpdate() {
|
||||
readIndex = (int) (playbackMusic.getPosition() * audioFormat.getSampleRate() / readWindowSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getReadIndex() {
|
||||
return readIndex;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAudioFile(FileHandle setAudio) {
|
||||
reset();
|
||||
try {
|
||||
audStream = AudioSystem.getAudioInputStream(setAudio.file());
|
||||
@@ -51,7 +35,17 @@ public class Mp3AudioData implements AudioData {
|
||||
|
||||
|
||||
playbackMusic = Gdx.audio.newMusic(setAudio);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void readIndexUpdate() {
|
||||
readIndex = (int) (playbackMusic.getPosition() * audioFormat.getSampleRate() / readWindowSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getReadIndex() {
|
||||
return readIndex;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -10,7 +10,6 @@ import com.badlogic.gdx.audio.Music;
|
||||
import com.badlogic.gdx.files.FileHandle;
|
||||
|
||||
import zero1hd.wavedecoder.WavDecoder;
|
||||
import zero1hd.wavedecoder.WavInfo;
|
||||
|
||||
public class WavAudioData implements AudioData {
|
||||
private int readWindowSize = 1024;
|
||||
@@ -18,15 +17,24 @@ public class WavAudioData implements AudioData {
|
||||
int readIndex;
|
||||
Music playbackMusic;
|
||||
WavDecoder decoder;
|
||||
WavInfo wavinfo;
|
||||
|
||||
public WavAudioData(FileHandle audioFileHandle) {
|
||||
setAudioFile(audioFileHandle);
|
||||
public WavAudioData(FileHandle file) {
|
||||
reset();
|
||||
try {
|
||||
decoder = new WavDecoder(file);
|
||||
decoder.initDataStream();
|
||||
decoder.getHeaderInfo();
|
||||
} catch (InvalidParameterException | IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
playbackMusic = Gdx.audio.newMusic(file);
|
||||
format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float) decoder.getSampleRate(), 16, decoder.getChannels(), decoder.getChannels()*2, (float) decoder.getSampleRate(), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readIndexUpdate() {
|
||||
readIndex = (int) (playbackMusic.getPosition() * wavinfo.getSampleRate() / readWindowSize);
|
||||
readIndex = (int) (playbackMusic.getPosition() * decoder.getSampleRate() / readWindowSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -34,23 +42,6 @@ public class WavAudioData implements AudioData {
|
||||
return readIndex;
|
||||
}
|
||||
|
||||
public void setInfo(WavInfo wavinfo) {
|
||||
this.wavinfo = wavinfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAudioFile(FileHandle audioFileHandle) {
|
||||
reset();
|
||||
try {
|
||||
decoder.setAudioFile(wavinfo);
|
||||
} catch (InvalidParameterException | IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
if (playbackMusic != null) {
|
||||
|
Reference in New Issue
Block a user