This is a surprise. I hope the tool design/coding goes well. Some things:
Perhaps you could add "dumper" to the SPC tags?
Do you think it would be worth adding a command to set custom percussion, i.e., replacing the data used for $C8-$D0 with custom parameters in the current track?
Why isn't the shorthand for $F7 $09 just !9?
Changed channel definition to #Track(X). Where "X" is the channel number (1-8);
I mean, okay, but why is this necessary?
• Data Send ($F9 $XX $YY) (Nobody use this)
Actually, that's not true. It's been used to let the SNES know what part of the song is playing for level elements that sync with the music (like the beat block levels in Super Mario 3D World). I think SMWCP2 had a level like that, and I had plans for the same thing.
Now, there are at least two other inclusions I'd like to see:
- Track batching. This would allow for multiple tracks to be in ARAM at once, so switching between them would take essentially no time. Presumably, the samples would be the same for all of them. This would mainly be useful for having different variants of miscellaneous songs, like how Donkey Kong Country 2 has a different death theme for each level track.
- The ability to play different parts of a track and enable/disable commands depending on data that the SNES sends to the SPC. This would be good for levels like the circus levels in SM3DW, where the level music would only advance to the next part once you cleared the current section of the level, or making the music echo or have extra channels when you're underwater, for instance.
Also, if this is such a big rewrite, is it really even AddmusicK still? How much of Kipernal's code are you keeping?