I love the 6-line limit! There’s a lot of fun to be had, working out how to squeeze your 20 lines of code in to 6! It often leads to an interconnectedness that wouldn’t have otherwise arisen.

6 Likes

I don’t mind the 6 line limit but I would love to see another layer of scripts. Especially if they could be named!

If you have one of the latest firmwares (and you should upgrade if you don’t), you can use a semicolon to fit in multiple statements per line. For example:

A PARAM
B RAND 48
C 18
D IN

Can be compacted to:

A PARAM; B RAND 48; C 18; D IN

Also, some commands have aliases that make things even shorter. For instance, PARAM in the script above can be shortened to PRM. The math aliases are super-handy. All should be contained in the latest documentation up on the TT pages at monome.

5 Likes

extra layers of scripts is an idea, they could be activated then from within the existing 8 ones…
simply calling them scripts A, B, C, D…Z?

the only thing about calling scripts from within scripts is a bit the nesting stuff going on, it could become quite complex and disordered quickly…

I would like to keep a distinct functionality per script, so extending the length of 6 lines into a variable scrollable length would be more my kind of thing…

Can you give us concrete examples of things that the 6 lines limit prevent you to do?
I think that after a few days with your TT you will be able to do more than you can imagine (expect?) within those 6 lines… :wink:

1 Like

But, as you say yourself, you’ve only been Teletyping a week. It feels like you’re bringing a desired style of programming to the object, rather than coming to it on its own terms?

Again: concrete examples of things that run into this limit are useful, as the many TT users on the forum (not to mention the lively Teletype Code Exchange thread) would almost certainly be able to offer input or suggestions.

3 Likes

OK, thanks, as a newbie to the Teletype, temporarily accept the limitation, will let you know in this thread about specific limitations when they occur :slight_smile:

2 Likes

As it is now, you can call scripts from within scripts already. So the dangers of infinite loops had been addressed.

Here’s a concrete example: I’m trying to use an init script to generate scales mathematically. I want to loop through and fill patterns with scales and generated note values. However, I can’t possibly do it in six lines. This leaves me to write a program on my computer to calculate the HZ values for each note and type them in manually. If I want to do that 256 times, it’s definitely a pain. I think the Teletype would benefit a lot from more variables, longer scripts, and structures like arrays which could be shuffled and reorganized.

3 Likes

how do you calculate them?
one way to extend the limit is by calling another script.

calling another script is an option, but you loose a gate input by doing so…

I was able to do it by using note values and calculating things separately (in Ruby, some leftover scripts from my monome 64 days - how I wish it would connect to Ansible!). I just took my time and typed them into the pattern tracker.

See, I’m a newbie, starting to get the hang of shorter code and calling things.:baby: But as a programmer, I do long for more control, loops with multiple lines, arrays, longer scripts. In the write preset window, I can scroll many lines, so the esthetics argument seems a bit silly to me.

I do love the Teletype but it’s kind of a shame it’s so limited. I start to appreciate that it’s opinionated, and I have to work through puzzles each time I want to accomplish a new project - which leads, of course, to happy accidents :slight_smile:

Maybe I’ll take a look at the firmware repo and get inspired for a pull request? Or perhaps there’s limitations due to memory and hardware?

Thanks @scanner_darkly for the suggestions!

1 Like

You should consider making your own custom operators if there are things that you want to do regularly that could be abstracted/factorized that way easily…

1 Like

i came to appreciate the limitations somewhat, imagine coming back to a 100 line script later and trying to understand what it does / edit it on teletype. i do think though that the limitations often force you to make things less readable. personally i’d love to see more scripts and/or longer scripts, more variables and pattern banks (arrays would be nice too, patterns do cover that territory somewhat though). tt is a balancing act though, so power vs simplicity has to be carefully considered.

if you’re comfortable with setting up the toolchain i’d totally go for modding it yourself, there might be some memory/hardware limitations (tbh not sure how much room we have), i’d just try it and see if it works.

monome 64 - does it not work with ansible at all? not sure if all editions do. if it’s a model supported by libavr32 you could also use it with teletype with the upcoming 2.3 version (you do need to power it externally).

5 Likes

If there were a total of 60 lines of script per scene but I could apportion them between scripts how I wanted, I’d be pretty happy.

2 Likes

I’ve had a lot of fun with Grid and Teletype. I wrote a scene here! However, I felt like working around the width/height limitations tended to obscure rather than illuminate the program structure.

@scanner_darkly

i do think though that the limitations often force you to make things less readable.

I tend to agree. I needed my notes and to “mentally execute” the script when debugging/refactoring. Also, I kind of coded myself into a corner extending scripts with other scripts. The 3 main features of my scene span ~2 scripts each. As mentioned before, you give up a gate input for each script, which unfortunately meant I couldn’t fit in features like pause/play, reset, reverse, etc.

Some of the upcoming/released bit operations may help shorten up the code a little bit.

1 Like

Isn’t that what the tracker patterns essentially are?

that said, I always wish for more variables!

1 Like

Yes it’s true that tracker patterns are just that, but they are fixed. But imagine if a pattern was just a variable. In fact, the PN.[method] notation is just that. Instead of passing the pattern number, it would be cool if I could say, P1.LENGTH = P2.LENGTH or P3 = P5 to assign patterns. And maybe in Live mode, I could say P5.TRACK 2 and it would show up in the tracker, in lane #2, ready for turtle interactions.

I feel the same about the number of variables. The more I progress in coding my TT the more I find myself blocked by that limitation. This is especially true when you start adding some Txi, Txo, a JF etc
… Unlocking variables from letter a to letter z would be a real game changer I think :smirk:
Now about the script limitation, I think that is an essential element making TT what it is. I like the puzzle-like coding that force you to be really efficient.

1 Like

after reading all pro and contra concerning the script limitation, wouldn’t it be just interesting to give people the chance of coding more then 6 lines and see what intersting stuff comes out of it?

those who want to limit themselves to the original 6 could stay working as they did before…

2 Likes