mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2025-04-21 04:44:31 +00:00
music debug stuff in progress
This commit is contained in:
parent
9712af9f62
commit
f797f6a7b1
source/funkin
|
@ -42,6 +42,8 @@ class Conductor
|
||||||
|
|
||||||
public static var songPosition:Float;
|
public static var songPosition:Float;
|
||||||
public static var lastSongPos:Float;
|
public static var lastSongPos:Float;
|
||||||
|
public static var visualOffset:Float = 0;
|
||||||
|
public static var audioOffset:Float = 0;
|
||||||
public static var offset:Float = 0;
|
public static var offset:Float = 0;
|
||||||
|
|
||||||
public static var bpmChangeMap:Array<BPMChangeEvent> = [];
|
public static var bpmChangeMap:Array<BPMChangeEvent> = [];
|
||||||
|
|
|
@ -3,6 +3,8 @@ package funkin;
|
||||||
import flixel.FlxSprite;
|
import flixel.FlxSprite;
|
||||||
import flixel.FlxSubState;
|
import flixel.FlxSubState;
|
||||||
import flixel.group.FlxGroup.FlxTypedGroup;
|
import flixel.group.FlxGroup.FlxTypedGroup;
|
||||||
|
import flixel.group.FlxGroup;
|
||||||
|
import flixel.math.FlxMath;
|
||||||
import flixel.text.FlxText;
|
import flixel.text.FlxText;
|
||||||
import flixel.util.FlxColor;
|
import flixel.util.FlxColor;
|
||||||
import funkin.audiovis.PolygonSpectogram;
|
import funkin.audiovis.PolygonSpectogram;
|
||||||
|
@ -13,25 +15,52 @@ class LatencyState extends MusicBeatSubstate
|
||||||
var noteGrp:FlxTypedGroup<Note>;
|
var noteGrp:FlxTypedGroup<Note>;
|
||||||
var strumLine:FlxSprite;
|
var strumLine:FlxSprite;
|
||||||
|
|
||||||
var block:FlxSprite;
|
var blocks:FlxGroup;
|
||||||
|
|
||||||
|
var songPosVis:FlxSprite;
|
||||||
|
|
||||||
|
var beatTrail:FlxSprite;
|
||||||
|
|
||||||
override function create()
|
override function create()
|
||||||
{
|
{
|
||||||
FlxG.sound.playMusic(Paths.sound('soundTest'));
|
FlxG.sound.playMusic(Paths.sound('soundTest'));
|
||||||
|
Conductor.bpm = 120;
|
||||||
|
|
||||||
noteGrp = new FlxTypedGroup<Note>();
|
noteGrp = new FlxTypedGroup<Note>();
|
||||||
add(noteGrp);
|
add(noteGrp);
|
||||||
|
|
||||||
var musSpec:PolygonSpectogram = new PolygonSpectogram(FlxG.sound.music, FlxColor.RED, FlxG.height, Math.floor(FlxG.height / 2));
|
// var musSpec:PolygonSpectogram = new PolygonSpectogram(FlxG.sound.music, FlxColor.RED, FlxG.height, Math.floor(FlxG.height / 2));
|
||||||
musSpec.x += 170;
|
// musSpec.x += 170;
|
||||||
musSpec.scrollFactor.set();
|
// musSpec.scrollFactor.set();
|
||||||
musSpec.waveAmplitude = 100;
|
// musSpec.waveAmplitude = 100;
|
||||||
musSpec.realtimeVisLenght = 0.45;
|
// musSpec.realtimeVisLenght = 0.45;
|
||||||
// musSpec.visType = FREQUENCIES;
|
// // musSpec.visType = FREQUENCIES;
|
||||||
add(musSpec);
|
// add(musSpec);
|
||||||
|
|
||||||
block = new FlxSprite().makeGraphic(100, 100);
|
for (beat in 0...Math.floor(FlxG.sound.music.length / Conductor.crochet))
|
||||||
add(block);
|
{
|
||||||
|
var beatTick:FlxSprite = new FlxSprite(songPosToX(beat * Conductor.crochet), FlxG.height - 15);
|
||||||
|
beatTick.makeGraphic(2, 15);
|
||||||
|
beatTick.alpha = 0.3;
|
||||||
|
add(beatTick);
|
||||||
|
}
|
||||||
|
|
||||||
|
songPosVis = new FlxSprite(0, FlxG.height - 20).makeGraphic(2, 20, FlxColor.RED);
|
||||||
|
add(songPosVis);
|
||||||
|
|
||||||
|
beatTrail = new FlxSprite(0, songPosVis.y).makeGraphic(2, 20, FlxColor.PURPLE);
|
||||||
|
beatTrail.alpha = 0.7;
|
||||||
|
add(beatTrail);
|
||||||
|
|
||||||
|
blocks = new FlxGroup();
|
||||||
|
add(blocks);
|
||||||
|
|
||||||
|
for (i in 0...8)
|
||||||
|
{
|
||||||
|
var block = new FlxSprite(2, 50 * i).makeGraphic(48, 48);
|
||||||
|
block.visible = false;
|
||||||
|
blocks.add(block);
|
||||||
|
}
|
||||||
|
|
||||||
for (i in 0...32)
|
for (i in 0...32)
|
||||||
{
|
{
|
||||||
|
@ -46,33 +75,49 @@ class LatencyState extends MusicBeatSubstate
|
||||||
strumLine = new FlxSprite(FlxG.width / 2, 100).makeGraphic(FlxG.width, 5);
|
strumLine = new FlxSprite(FlxG.width / 2, 100).makeGraphic(FlxG.width, 5);
|
||||||
add(strumLine);
|
add(strumLine);
|
||||||
|
|
||||||
Conductor.bpm = 120;
|
|
||||||
|
|
||||||
super.create();
|
super.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
override function beatHit()
|
override function beatHit()
|
||||||
{
|
{
|
||||||
block.visible = !block.visible;
|
beatTrail.x = songPosVis.x;
|
||||||
|
|
||||||
|
if (curBeat % 8 == 0)
|
||||||
|
blocks.forEach(blok ->
|
||||||
|
{
|
||||||
|
blok.visible = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
blocks.members[curBeat % 8].visible = true;
|
||||||
|
// block.visible = !block.visible;
|
||||||
|
|
||||||
super.beatHit();
|
super.beatHit();
|
||||||
}
|
}
|
||||||
|
|
||||||
override function update(elapsed:Float)
|
override function update(elapsed:Float)
|
||||||
{
|
{
|
||||||
offsetText.text = "Offset: " + Conductor.offset + "ms";
|
songPosVis.x = songPosToX(Conductor.songPosition);
|
||||||
|
|
||||||
|
offsetText.text = "Offset: " + Conductor.visualOffset + "ms";
|
||||||
|
offsetText.text += "\ncurStep: " + curStep;
|
||||||
|
offsetText.text += "\ncurBeat: " + curBeat;
|
||||||
|
|
||||||
Conductor.songPosition = FlxG.sound.music.time - Conductor.offset;
|
Conductor.songPosition = FlxG.sound.music.time - Conductor.offset;
|
||||||
|
|
||||||
var multiply:Float = 1;
|
var multiply:Float = 10;
|
||||||
|
|
||||||
if (FlxG.keys.pressed.SHIFT)
|
if (FlxG.keys.pressed.SHIFT)
|
||||||
multiply = 10;
|
multiply = 1;
|
||||||
|
|
||||||
if (FlxG.keys.justPressed.RIGHT)
|
if (FlxG.keys.justPressed.RIGHT)
|
||||||
Conductor.offset += 1 * multiply;
|
{
|
||||||
|
Conductor.visualOffset += 1 * multiply;
|
||||||
|
}
|
||||||
|
|
||||||
if (FlxG.keys.justPressed.LEFT)
|
if (FlxG.keys.justPressed.LEFT)
|
||||||
Conductor.offset -= 1 * multiply;
|
{
|
||||||
|
Conductor.visualOffset -= 1 * multiply;
|
||||||
|
}
|
||||||
|
|
||||||
if (FlxG.keys.justPressed.SPACE)
|
if (FlxG.keys.justPressed.SPACE)
|
||||||
{
|
{
|
||||||
|
@ -98,4 +143,9 @@ class LatencyState extends MusicBeatSubstate
|
||||||
|
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function songPosToX(pos:Float):Float
|
||||||
|
{
|
||||||
|
return FlxMath.remapToRange(pos, 0, FlxG.sound.music.length, 0, FlxG.width);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,11 +45,11 @@ class MusicBeatSubstate extends FlxSubState
|
||||||
}
|
}
|
||||||
for (i in 0...Conductor.bpmChangeMap.length)
|
for (i in 0...Conductor.bpmChangeMap.length)
|
||||||
{
|
{
|
||||||
if (Conductor.songPosition - Conductor.offset > Conductor.bpmChangeMap[i].songTime)
|
if (Conductor.songPosition > Conductor.bpmChangeMap[i].songTime)
|
||||||
lastChange = Conductor.bpmChangeMap[i];
|
lastChange = Conductor.bpmChangeMap[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
curStep = lastChange.stepTime + Math.floor((Conductor.songPosition - lastChange.songTime) / Conductor.stepCrochet);
|
curStep = lastChange.stepTime + Math.floor(((Conductor.songPosition - Conductor.visualOffset) - lastChange.songTime) / Conductor.stepCrochet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function stepHit():Void
|
public function stepHit():Void
|
||||||
|
|
Loading…
Reference in a new issue