Hey!
I got my teletype about a couple of weeks ago It is incredibly inspiring!
Here are a few questions:
Is the github master always “releasable”? I’ve also stumbled on the USB problem and also noticed that the master contains more interesting commands like ER. Is it recommended to avoid using master or generally ok? I do not mind experimenting as long as it won’t lead to unrecoverable state.
One of the things I struggle with is the limitation of 6 lines. While I understand the principle behind trying to keep the interface minimal, it would be awesome if we could expand some way or another.
For example would it be possible to enhance the prefix parser to parse more complex expressions?
When trying say for instance
OR AND X A B
meaning if X do A else do B, it seems the parser cannot interpret it, although it’s a valid expression.
I would personally prefer to have that level of expression to triggering other scripts allowing for more lines. I can also potentially help with a pull request if this is desired.
given x, a, and b are defined. granted, that’s two lines, but it’s readable. we have a TT v2 feature proposals and many of them cover use cases for longer scripts.
Ah thank you, always forget about the releases tab on github.
I still think the OR AND expression is valid in reverse notation and does what I suggested. I am away from my teletype, but it should just work provided that AND, OR behave as in python (which iirc they do) i.e.
AND A B
returns A if either are “falsy”, B if both “truthy”, and
OR A B
returns A if either “truthy”, B if both “falsy”.
I totally understand though how this kind of cheating would lead to unreadable scripts. Would you be so kind to point to the v2 feature proposal?
Echoing what @tehn said, in practice I find that chaining scripts is a good way to work around the 6 line limit. On a good day, it almost feels like you’ve got an abstraction and you’re calling a macro.
Here’s a tonnetz-inspired example:
I:
X 9
Y 12
Z 16
T 0
SCRIPT 8
1:
IF EZ T : Y ADD X 3
ELSE : Y ADD X 4
Z ADD X 7
SCRIPT 8
2:
IF EZ T : X ADD X 4
ELSE : X SUB X 4
IF EZ T : Y ADD X 3
ELSE : Y ADD X 4
Z ADD X 7
SCRIPT 8
3:
IF EZ T : X SUB X 3
ELSE : X ADD X 3
IF EZ T : Y ADD X 3
ELSE : Y ADD X 4
Z ADD X 7
SCRIPT 8
8:
CV 1 N X
CV 2 N Y
CV 3 N Z
T FLIP
Script 8 is the update macro. (For completeness you might even MUTE 8.)