improved debugging and more adjustments

This commit is contained in:
Harrison Deng 2017-07-14 23:41:20 -05:00
parent d65b94cd49
commit da494d22a3
5 changed files with 32 additions and 17 deletions

View File

@ -221,7 +221,6 @@ public class AudioAnalyzer {
if (bassPeaks.get(i) == 0) {
avgSPB ++;
} else {
bassBeats ++;
lastID = i;
}
} else if (bassPeaks.get(i) != 0) {
@ -230,6 +229,8 @@ public class AudioAnalyzer {
if (bassPeaks.get(i) != 0) {
bassAvg += bassPeaks.get(i);
bassBeats++;
}
if (umPeaks.get(i) != 0) {
umAvg += umPeaks.get(i);
@ -239,14 +240,15 @@ public class AudioAnalyzer {
}
//then we minus one from the beats so it actually works out
avgSPB -= umPrunned.size-lastID;
avgSPB -= bassPrunned.size-lastID;
avgSPB *= secondsPerWindow;
avgSPB /= bassBeats;
Gdx.app.debug("Audio Analyzer", "Avg BPS: " + avgSPB);
Gdx.app.debug("Audio Analyzer", "Avg SPB: " + avgSPB);
bassAvg /= bassBeats;
umBeats /= umBeats;
umAvg /= umBeats;
Gdx.app.debug("Audio Analyzer", "Avg bass: " + bassAvg);
Gdx.app.debug("Audio Analyzer", "Avg UM: " + umAvg);
if (work) {
Gdx.app.debug("Audio Analyzer", "overlapped beats checked.");

View File

@ -45,9 +45,10 @@ public class RhythmMapAlgorithm implements Runnable {
this.healthMod = healthMod;
umMax = analyzer.getUMMaxValue();
avgUM = analyzer.getUmAvg();
bassMax = analyzer.getBassMaxValue();
avgBass = analyzer.getBassAvg();
avgUM = analyzer.getUmAvg();
}
@Override
@ -56,15 +57,15 @@ public class RhythmMapAlgorithm implements Runnable {
for (int index = 0; index < bassPeaks.size; index++) {
if (bassPeaks.get(index) != 0 || UMPeaks.get(index) != 0) {
int warningTime = (int) ((3/speedMod)*windowPerSecond);
if ((index+warningTime < bassPeaks.size) && bassPeaks.get(index + warningTime) >= avgBass*3f/4f) {
if ((index+warningTime < bassPeaks.size) && bassPeaks.get(index + warningTime) >= avgBass) {
//TODO basic void circle spawning
float endRadius = bassPeaks.get(index + warningTime)/bassMax*(Polyjet.GAME_AREA_HEIGHT/4f);
float endRadius = (bassPeaks.get(index + warningTime)/bassMax)*(Polyjet.GAME_AREA_HEIGHT/2f);
map.addToMap(Entities.VOID_CIRCLE,
endRadius,
rand.nextFloat()*Polyjet.GAME_AREA_WIDTH,
rand.nextFloat()*Polyjet.GAME_AREA_HEIGHT,
endRadius/avgSPB,
endRadius/(avgSPB*0.5f),
3f/speedMod
);
}
@ -78,8 +79,8 @@ public class RhythmMapAlgorithm implements Runnable {
map.addToMap(Entities.PELLET,
xSpawnLocation,
Polyjet.GAME_AREA_HEIGHT-0.25f,
180*rand.nextFloat()+90,
speedMod*(1f/avgSPB));
140*rand.nextFloat()+110f,
(Polyjet.GAME_AREA_HEIGHT/4f)/avgSPB);
}
}

View File

@ -6,6 +6,7 @@ import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.Pixmap.Format;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.utils.FloatArray;
@ -16,7 +17,7 @@ public class AudioGraph extends Actor {
FloatArray overlayGraph;
int dataIndex;
int displayMode;
public float normalDataG1 = 1f, normalDataG2 = 1f, avgG1 = 1f, avgG2 = 1f;
float scale;
public AudioGraph(int graphSizeW, int graphSizeH) {
@ -42,11 +43,11 @@ public class AudioGraph extends Actor {
if (Gdx.input.isKeyPressed(Keys.COMMA)) {
if (scale > 0.05f) {
scale -= 0.005f;
scale -= 0.05f;
}
} else if (Gdx.input.isKeyPressed(Keys.PERIOD)) {
if (scale < audioGraph.getHeight()) {
scale += 0.005f;
scale += 0.05f;
}
}
if (Gdx.input.isKeyJustPressed(Keys.M)) {
@ -62,28 +63,31 @@ public class AudioGraph extends Actor {
audioGraph.setColor(1f, 0f, 0f, 0.75f);
for (int x = 0; x < audioGraph.getWidth(); x++) {
try {
audioGraph.drawLine(x, audioGraph.getHeight(), x, (int) (audioGraph.getHeight()-mainGraph.get(dataIndex+x-audioGraph.getWidth()/2)*scale));
audioGraph.drawLine(x, audioGraph.getHeight(), x, (int) (audioGraph.getHeight()-(mainGraph.get(dataIndex+x-audioGraph.getWidth()/2)/normalDataG1)*scale));
} catch (NullPointerException | IndexOutOfBoundsException e) {
}
audioGraph.drawLine(0,audioGraph.getHeight() - MathUtils.round(scale*(avgG1/normalDataG1)), audioGraph.getWidth(), audioGraph.getHeight() - MathUtils.round(scale*(avgG1/normalDataG1)));
}
case 1:
audioGraph.setColor(0f, 0f, 1f, 0.75f);
for (int x = 0; x < audioGraph.getWidth() -1; x++) {
try {
audioGraph.drawLine(x, audioGraph.getHeight(), x, (int) (audioGraph.getHeight()-overlayGraph.get(dataIndex+x-audioGraph.getWidth()/2)*scale));
audioGraph.drawLine(x, audioGraph.getHeight(), x, (int) (audioGraph.getHeight()-(overlayGraph.get(dataIndex+x-audioGraph.getWidth()/2)/normalDataG2)*scale));
} catch (NullPointerException | IndexOutOfBoundsException e) {
}
audioGraph.drawLine(0, audioGraph.getHeight() - MathUtils.round(scale*(avgG2/normalDataG2)), audioGraph.getWidth(), audioGraph.getHeight() - MathUtils.round(scale*(avgG2/normalDataG2)));
}
break;
case 2:
audioGraph.setColor(1f, 0f, 0f, 0.75f);
for (int x = 0; x < audioGraph.getWidth(); x++) {
try {
audioGraph.drawLine(x, audioGraph.getHeight(), x, (int) (audioGraph.getHeight()-mainGraph.get(dataIndex+x-audioGraph.getWidth()/2)*scale));
audioGraph.drawLine(x, audioGraph.getHeight(), x, (int) (audioGraph.getHeight()-(mainGraph.get(dataIndex+x-audioGraph.getWidth()/2)/normalDataG1)*scale));
} catch (NullPointerException | IndexOutOfBoundsException e) {
}
}
audioGraph.drawLine(0, audioGraph.getHeight() - MathUtils.round(scale*(avgG1/normalDataG1)), audioGraph.getWidth(), audioGraph.getHeight() - MathUtils.round(scale*(avgG1/normalDataG1)));
break;
}

View File

@ -262,6 +262,10 @@ public class CreativeStage extends Stage implements MiniListener {
volumeWindow.setMusic(analyzer.getAudioData());
beatViewer.setMusic(analyzer.getAudioData(), analyzer);
graphViewer.setData(analyzer.getBassPeaks(), analyzer.getUMPeaks(), analyzer.getAudioData());
graphViewer.getGraph().avgG1 = analyzer.getBassAvg();
graphViewer.getGraph().normalDataG1 = analyzer.getBassMaxValue();
graphViewer.getGraph().avgG2 = analyzer.getUmAvg();
graphViewer.getGraph().normalDataG2 = analyzer.getUMMaxValue();
gpa.setAudioMap(mapGen.getMap());
break;
default:

View File

@ -26,6 +26,10 @@ public class GraphWindow extends Window {
super.act(delta);
}
public AudioGraph getGraph() {
return graph;
}
public void setData(FloatArray dataSet1, FloatArray dataSet2, AudioData audioData) {
this.audioData = audioData;
graph.setGraphingData(dataSet1, dataSet2);