In fact, so far I’ve been unable to find anywhere that the symbols over keywords are fully documented-- I’m wondering, is there a symbol for “MOD”? The pipe perhaps? The equal sign for EQ? Are >= <= != also supported?
Searching the threads for documentation has a couple of issues-- one is that there’s a lot of old information here as well as current, which one would expect. Plus, there’s also a lot of “boy, I wish it had this feature” stuff here as well, which out of context could lead one to believe there are features present that aren’t actually there.
It took me a while to find out some critical information-- not the least of which is the 6 line limit, and I’m still not sure how many characters per line is supported, 32? And are spaces significant? I gather they are, but I’m not sure. The fact that the Pattern buffer data is saved as part of the Scene (or at least I gather it is), that the Tracker can be used to edit the pattern buffer to manually enter specific data so that you don’t have to write a script to “populate” it on every start up, etc. What additional non-input triggered scripts there are, such as the one attached to the Metronome and the Init script (which I gather have their own scripts beyond the 1-8 triggered ones? Not sure about that, either).
One feature I’d really like to see is an alternative way to address the Pattern data. 4x64 orientation makes some assumptions as to how you may want to use them, which if what you need is a different structure, you have to “un-map” your desired structure and re-map it into 4x64 (in my case, I was looking for 12x12 and I have another application where I need something like 10x18. I’ve figured out what I think is sufficient re-map logic, like the example below (where X and Y are presumed to be initially set to the coordinates in an array treated as if it were 12x12:
A + X * 12 Y;X MOD A 64;Y / A 64
It’s exactly 32 characters, which I’m hoping will fit into a line (and also where my question about MOD possibly being a symbol and spaces being significant). First, A is set to the 12x12 Y coordinate, multiplied by 12 and added to X. This should linearize the desired data dimensions into 0-N. Then X is set to A modulo 64, and Y to A divided by 64 in order to produce the 4x64 necessary to address the structure of the actual pattern buffer. And that’s all presuming it’s origin-0 which I gather, it’s not. So I actually need to add 1 in a couple of places I’m thinking.
This re-mapping by itself eats up an entire line of code. On the other hand, if the pattern buffer was a single linear array 0-255, the mapping code needed would be a third of what it needs to be now:
A + X * 12 Y
which could probably be packed in with other lines using the semicolon, and might not even need to be carried in a variable.
If anyone can think of any improvements to my re-mapping approach for the current 4x64 architecture here, I’d appreciate the input…