None of those solutions w.r.t. squeezing pattern commands expands into unmanageable mess of data and I do not see a single "cleaner alternative" that is equally clean on the programming side. How would you devise a constant time algorithm for the 6502 ASM that evaluates the number of ticks in the current row and then multiply that by 4÷3 if triplets are to be allowed during run-time?
Besides, if you are aware that your song contains consecutive notes with duration shorter than a 16th note, it is your responsibility to locally double the BPM; depending on which build of FamiTracker you use, you might need to use dozens of Fxx effects instead of one effect if you want exact control over the number of ticks per row. Audio trackers in general have accepted the standard that each row corresponds to a sixteenth note in 4/4 time w.r.t. the tempo value if the speed/ticks value equals 6; you cannot just put a few Fxx effects and pretend that somehow you can fit in more note events than there are rows in a pattern.
Few high-level trackers may allow much higher internal resolution and allow "zooming in/out" the pattern editor in a manner analogous to piano roll sequencers, but such implementations are quite costly for the 6502 instruction set when arbitrary tempo values are allowed. One could for example create a FTM at 900 BPM but restrict the pattern editor view to every 1/2/3/4/6/8 rows, and add graphical markers between rows to indicate the presence of omitted effects; such design, however, goes against the principle of instrument abstraction and can greatly increase the size of exported NSFs, furthermore reducing compatibility of these FTMs to third-party sound drivers.
Post about feature requests here.
I didn't just double the song resolution outright (the admittedly cleaner solution) because there was no real need for me to do that, not just for a few spot notes at least. Besides, the other reason I took them out was because they just broke rhythm with the rest of the song.
Who is online
Users browsing this forum: No registered users and 1 guest