PicoVJ
A functional VJ framework for Pico8! It's very scoped but still should be usable in a real gig with a single controller (6 buttons).
Instructions
Beat manager
LEFT - A single tap resets BPM / Beat num. A next tap in the 4th next beat, will store the calculated BPM.
X + UP / DOWN - adjust BPM speed.
X + LEFT / RIGHT - fine tune BPM sync.
Scene manager
Z + UP - set a random scene.
Z + LEFT / RIGHT - previous / next scene (cycled).
FX manager
UP / DOWN - increase / decrease FXRAGE from 0 to 1.
RIGHT - cycle FXFLASH value from 0 to 5.
FXRAGE is the hype value of the application, and how it behaves depends on each scene implementation. A scene at FXRAGE = 0 would be simple, slow, but the same scene at FXRAGE = 1 would be much faster and frenzy.
FXFLASH will define when the BEATFLASH is set, and again it is up to the scene to implement.
Expand!
It's easy to create your own scenes, so go for it!
Make a new draw function for your scene, and make sure it runs at 60 fps, then add the function to the VJ_LOOPS array.
When writing your own scene, you can use these VJ variables for easy sync:
VJ_TIME - Real run time of application (float, in seconds).
VJ_BPM - Current BPM.
VJ_BEAT - Set to 1 on every beat, fading out to 0 in a few frames.
VJ_BEATFLASH - Same as VJ_BEAT, but it only gets set to 1 depending on FXFLASH value. If FXFLASH = 1, VJ_BEATFLASH will be 1 only on the first beat (of 4). If FXFLASH = 3, it will be 1 on the 2nd and 4th beats.
VJ_BEATTIME - Run time of application normalized to beats. It will go from 0 to 1 in the span of time it takes a beat (so it will change dynamically as you update BPM).
VJ_BEATLEN - The amount of time it takes for a beat to happen (it's the inverse of VJ_BEATTIME).
VJ_BEATNUM - Number of current beat, from 0 to 3.
Enjoy!
[Please log in to post a comment]