I've been plucking away, a function or two a day, or a SFX, or a handful of sprites, etc. Still just mashing on my days off and lunch breaks. Starting to see some little tidbits of going somewhere, at least.
Anyways, I ran into a thing I could use someone with a little deeper expertise in dealing with.
I'm devising a kind of proc-gen DDR game/song generator, using four hex-character seeds to implement 12 randomizable sequencers*, which are then used to pull table data and plant music data structurally (and then apply stepchart logic to that). The part in particular I'm needing help with is making a few functions that can universally change the speed, octave, and instrument choice of a selection of SFX (32-62, in fact - 00-31 only need speed adjusted since they're bass/percussion layers), maybe one to change the speed of one SFX in particular (for multiplied-speed layering after that).
I'm not 100% sure where the "poke" ranges I need to target for that kind of thing are.
The other function is simply one that pokes the SFX ids in the music editor, after this step.
*sequencing follows musical structure, like
1, 2, 1, 3, 1, 2, 1, 4; 5, 6, 5, 7, 5, 6, 5, 8;... and so forth. It's not just "randomly" cobbled together!
Here's Zep describing some audio data addresses:
This cart also has some interesting poke values:
Hope this helps!
So I can do the speed and the instrument... but the octave shift appears to be considerably more troubling, since I'm literally rewriting every note on a byte-by-byte basis...
That'll probably push me over my code target, right there; and that sucks, because that's one of the main ways I'm trying to make variance in... maybe if I make some kind of subset that's like +/-12s to the note data? thinks
Also, do you poke() in standard notation, or in hex? I'm presuming the latter?
It doesn't seem like it would take much code to iterate through a sequence and shift all octaves in that sequence.
Or am I missing something?
I think I've got a few functions, thanks to some help on the Discord. The real pain in the butt is the instrument variation; because it's poked across two different bytes. Also, I thought I had to poke each specific address for the octave shift, but it turns out a simple for/do loop simplifies that plenty.
Later I might split that up into four bars (since chord progression is a Very Real Thing tm), but for now I think I've got a basis for what I need.
Now to write the verse/chorus/interlude/outro-intro parts that wrap around those editing functions...
[Please log in to post a comment]