fixed previously stated issue
This commit is contained in:
parent
7d0f3a365d
commit
316c419b99
@ -58,7 +58,7 @@ public class Mp3Manager implements MusicManager {
|
|||||||
lock.lock();
|
lock.lock();
|
||||||
try {
|
try {
|
||||||
MP3File mp3File = new MP3File(audioFile.file());
|
MP3File mp3File = new MP3File(audioFile.file());
|
||||||
sampleCount = MathUtils.round(Float.valueOf(String.valueOf((mp3File.getAudioHeader().getSampleRateAsNumber()*mp3File.getMP3AudioHeader().getPreciseTrackLength()))));
|
sampleCount = MathUtils.round(Float.valueOf((float) (mp3File.getAudioHeader().getSampleRateAsNumber()*mp3File.getMP3AudioHeader().getPreciseTrackLength())));
|
||||||
sampleRate = mp3File.getMP3AudioHeader().getSampleRateAsNumber();
|
sampleRate = mp3File.getMP3AudioHeader().getSampleRateAsNumber();
|
||||||
durationInSeconds = mp3File.getMP3AudioHeader().getPreciseTrackLength();
|
durationInSeconds = mp3File.getMP3AudioHeader().getPreciseTrackLength();
|
||||||
|
|
||||||
@ -66,8 +66,6 @@ public class Mp3Manager implements MusicManager {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
bitstream = new Bitstream(audioFile.read());
|
bitstream = new Bitstream(audioFile.read());
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package zero1hd.rhythmbullet.audio.analyzer;
|
package zero1hd.rhythmbullet.audio.analyzer;
|
||||||
|
|
||||||
import java.util.Observable;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
@ -8,7 +7,7 @@ import com.badlogic.gdx.utils.Disposable;
|
|||||||
|
|
||||||
import zero1hd.rhythmbullet.audio.MusicManager;
|
import zero1hd.rhythmbullet.audio.MusicManager;
|
||||||
|
|
||||||
public class AudioAnalyzer extends Observable implements Disposable {
|
public class AudioAnalyzer implements Disposable {
|
||||||
private ExecutorService exec;
|
private ExecutorService exec;
|
||||||
|
|
||||||
private SpectralFluxAnalysisRunnable sfar;
|
private SpectralFluxAnalysisRunnable sfar;
|
||||||
|
@ -7,7 +7,7 @@ import zero1hd.rhythmbullet.audio.AudioDataPackage;
|
|||||||
import zero1hd.rhythmbullet.audio.MusicManager;
|
import zero1hd.rhythmbullet.audio.MusicManager;
|
||||||
|
|
||||||
public class PeakDetectionRunnable implements Runnable {
|
public class PeakDetectionRunnable implements Runnable {
|
||||||
boolean work, done;
|
boolean work = true, done;
|
||||||
private FloatArray bassPrunned;
|
private FloatArray bassPrunned;
|
||||||
private FloatArray mPrunned;
|
private FloatArray mPrunned;
|
||||||
private FloatArray umPrunned;
|
private FloatArray umPrunned;
|
||||||
@ -35,7 +35,7 @@ public class PeakDetectionRunnable implements Runnable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
int lastID = 0;
|
int lastBeatID = 0;
|
||||||
float bassBeats = 0;
|
float bassBeats = 0;
|
||||||
float mBeats = 0;
|
float mBeats = 0;
|
||||||
float umBeats = 0;
|
float umBeats = 0;
|
||||||
@ -62,7 +62,7 @@ public class PeakDetectionRunnable implements Runnable {
|
|||||||
if (bassPeaks.get(i) == 0) {
|
if (bassPeaks.get(i) == 0) {
|
||||||
avgSPB ++;
|
avgSPB ++;
|
||||||
} else {
|
} else {
|
||||||
lastID = i;
|
lastBeatID = i;
|
||||||
}
|
}
|
||||||
} else if (bassPeaks.get(i) != 0) {
|
} else if (bassPeaks.get(i) != 0) {
|
||||||
avgSPB = 0;
|
avgSPB = 0;
|
||||||
@ -87,7 +87,7 @@ public class PeakDetectionRunnable implements Runnable {
|
|||||||
secondsPerWindow = musicManager.getReadWindowSize()/musicManager.getSampleRate();
|
secondsPerWindow = musicManager.getReadWindowSize()/musicManager.getSampleRate();
|
||||||
|
|
||||||
//then we minus one from the beats so it actually works out
|
//then we minus one from the beats so it actually works out
|
||||||
avgSPB -= bassPrunned.size-lastID;
|
avgSPB -= bassPrunned.size-lastBeatID;
|
||||||
avgSPB *= secondsPerWindow;
|
avgSPB *= secondsPerWindow;
|
||||||
avgSPB /= bassBeats;
|
avgSPB /= bassBeats;
|
||||||
Gdx.app.debug("Audio Analyzer", "Avg SPB: " + avgSPB);
|
Gdx.app.debug("Audio Analyzer", "Avg SPB: " + avgSPB);
|
||||||
|
@ -6,7 +6,7 @@ import com.badlogic.gdx.utils.FloatArray;
|
|||||||
import zero1hd.rhythmbullet.audio.MusicManager;
|
import zero1hd.rhythmbullet.audio.MusicManager;
|
||||||
|
|
||||||
public class PruneFluxRunnable implements Runnable {
|
public class PruneFluxRunnable implements Runnable {
|
||||||
boolean work;
|
boolean work = true;
|
||||||
private boolean done;
|
private boolean done;
|
||||||
private FloatArray bassSpectralFlux;
|
private FloatArray bassSpectralFlux;
|
||||||
private FloatArray mSpectralFlux;
|
private FloatArray mSpectralFlux;
|
||||||
|
@ -7,7 +7,7 @@ import edu.emory.mathcs.jtransforms.fft.FloatFFT_1D;
|
|||||||
import zero1hd.rhythmbullet.audio.MusicManager;
|
import zero1hd.rhythmbullet.audio.MusicManager;
|
||||||
|
|
||||||
public class SpectralFluxAnalysisRunnable implements Runnable {
|
public class SpectralFluxAnalysisRunnable implements Runnable {
|
||||||
boolean work;
|
boolean work = true;
|
||||||
private boolean done;
|
private boolean done;
|
||||||
|
|
||||||
private FloatArray bassSpectralFlux = new FloatArray();
|
private FloatArray bassSpectralFlux = new FloatArray();
|
||||||
|
@ -6,7 +6,7 @@ import com.badlogic.gdx.utils.FloatArray;
|
|||||||
import zero1hd.rhythmbullet.audio.MusicManager;
|
import zero1hd.rhythmbullet.audio.MusicManager;
|
||||||
|
|
||||||
public class ThresholdCalcRunnable implements Runnable {
|
public class ThresholdCalcRunnable implements Runnable {
|
||||||
boolean work;
|
boolean work = true;
|
||||||
private boolean done;
|
private boolean done;
|
||||||
|
|
||||||
private MusicManager musicManager;
|
private MusicManager musicManager;
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
package zero1hd.rhythmbullet.graphics.ui.pages;
|
package zero1hd.rhythmbullet.graphics.ui.pages;
|
||||||
|
|
||||||
import java.util.Observable;
|
|
||||||
import java.util.Observer;
|
|
||||||
|
|
||||||
import com.badlogic.gdx.assets.AssetManager;
|
import com.badlogic.gdx.assets.AssetManager;
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
@ -16,9 +13,9 @@ import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
|||||||
import zero1hd.rhythmbullet.audio.MusicManager;
|
import zero1hd.rhythmbullet.audio.MusicManager;
|
||||||
import zero1hd.rhythmbullet.audio.analyzer.AudioAnalyzer;
|
import zero1hd.rhythmbullet.audio.analyzer.AudioAnalyzer;
|
||||||
|
|
||||||
public class AnalysisPage extends Page implements Observer {
|
public class AnalysisPage extends Page {
|
||||||
private boolean confirmed;
|
private boolean confirmed;
|
||||||
private volatile AudioAnalyzer aa;
|
private AudioAnalyzer aa;
|
||||||
private Table table;
|
private Table table;
|
||||||
private Label difficultyModLabel, healthModLabel, speedModLabel;
|
private Label difficultyModLabel, healthModLabel, speedModLabel;
|
||||||
private Slider difficultyModifierSlider, healthModifierSlider, speedModifierSlider;
|
private Slider difficultyModifierSlider, healthModifierSlider, speedModifierSlider;
|
||||||
@ -81,24 +78,17 @@ public class AnalysisPage extends Page implements Observer {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
table.add(confirmButton);
|
table.add(confirmButton).colspan(3).fillX();
|
||||||
table.row().colspan(3).fillX();
|
table.row();
|
||||||
progressLabel = new Label("Loading... ", skin);
|
progressLabel = new Label("Loading... ", skin);
|
||||||
table.add(progressLabel).colspan(2).left().spaceTop(20f);
|
table.add(progressLabel).colspan(2).left().spaceTop(20f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processSong(MusicManager mm) {
|
public void processSong(MusicManager mm) {
|
||||||
aa = new AudioAnalyzer(mm);
|
aa = new AudioAnalyzer(mm);
|
||||||
aa.addObserver(this);
|
|
||||||
aa.start();
|
aa.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void update(Observable arg0, Object arg1) {
|
|
||||||
if (arg0 == aa) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void act(float delta) {
|
public void act(float delta) {
|
||||||
if (aa != null && aa.isDone() && confirmed) {
|
if (aa != null && aa.isDone() && confirmed) {
|
||||||
@ -106,4 +96,10 @@ public class AnalysisPage extends Page implements Observer {
|
|||||||
}
|
}
|
||||||
super.act(delta);
|
super.act(delta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
aa.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user