updated the chiptune commands a bit:
https://github.com/makapuf/bitbox/wiki/Palette-16-Tile-Editor#instrument-editor
https://github.com/makapuf/bitbox/wiki/Palette-16-Tile-Editor#track-editor
RANDOMIZE works a bit differently now: instead of specifying which command to randomize, you are forced to randomize the next command in the list. but now, you can use the parameter of the RANDOMIZE command to choose which random values the next command could get. with RANDOMIZE 0, the next command can get any value (0-15), with RANDOMIZE 8, you get some other stuff (like 0-3), etc.
i did this to free up a command for the track mode (verse editor), since the track has 32 command slots, and RANDOMIZE with a slot as its argument needed to be take up two commands (RANDOMIZE0 and RANDOMIZE1) to cover all slots (0-15, 16-31). now, we just need one RANDOMIZE command, and it always affects the next command slot. as a perk, it also allows you more fine control over what random values your commands can take on, so you can fix a rhythm to be a multiple of a beat (0,4,8,12 for example), or control whereabouts a random note will lie.
with a free command, i added in a track JUMP command. but since i only had one free command, i forced the JUMP to go to an even command slot index (0, 2, 4, ..., 30). (this works fine anyways, you can always throw in a useless/duplicate command to align things). i was missing JUMP for repetitive tracks, where it's just a bass line hitting the same note over and over, so it's nice to have it.
adapting the chiptune engine (from the bitbox/LFT stuff) has been fun. a while ago, i was writing a FORTH-like language, and that prepared me for this part of the project. it also feels a bit more useful, to make music instead of a low-level programming language / calculator
. but who knows, that's maybe still in the cards for a future project.