Teletype workflow, basics, and questions

Thank you!
Unbelievable – This script is crazy. :exploding_head::raised_hands:
I would be lying if I said I understood it completely.

1 Like

The real fun begins when you change A “behind the back” of this script, if you haven’t already, you should try it!

1 Like

I’m currently on Part 2 of the Teletype Studies and have encountered something bizarre. It is more than likely user-error, but wanted to ask for guidance.

I’m in the “Repeat this: this this this this” section and up to now, all has worked fine up until now. Here is my issue: after going into Edit mode and adding TR.PULSE A to the M script, I can’t get metronome to behave properly in Live mode.

The value of M was set to 1000 so I reduced it to 200ms with “M 200” as directed and now the triggers have stopped and it is permanently on… No led flashes, no triggers opening/closing the VCA. Any idea what I should check?


Edit: I checked the value of TR.TIME A and it was 500, which I would think was causing this issue… Should I change it to different value each time I change the metronome value?

I’m pretty sure the high TR.TIME A value is indeed causing trigger to stay open. If you just need triggers I suppose a short TR.TIME should be fine, I’ve used the triggers with a higher TR.TIME to keep gates open longer. In that case you could for example set the TR.TIME as a ratio of the M value when you change it.

1 Like

Thanks for that. I had guessed at something like that, but as I’m just starting out, I don’t know how to do that. Hopefully I’ll learn as I proceed.

1 Like

If you change the M interval value within a script that would be a place to update the TR.TIME value as well. If you change the M value live you could update the TR.TIME the next time the metro script runs, if you can access the M value from a global variable. I believe T is used generally for this purpose if I’m not mistaken. Then it makes sense to set the M interval as T initally after T has a value.

1 Like

Just guessing but would the command to relate TR.TIME and M (make trig time equal to metronome value) be simply: ‘TR.TIME M’ ?

I only ask because I’m curious if I’m picking up on the language and the above is similar to ‘CV 2 CV 1’ since that is how you make the value of CV 2 equal to the value of CV 1.


Almost, you’d need to specify which output as well.
So TR.TIME X M (replace X with the output) should set the trigger time equal to the metro time. Not sure if it will retrigger, I think it’s probably safer to set the trigger time a bit shorter. But you’re totally right you can get the metro time with M. I wasn’t sure if M was accessible as a global value had to look it up. This really helped me in addition to the studies: Teletype manual


Seems the invite may have expired again :grimacing:

I’m starting to get the impression that they do that :joy_cat:

One sec

Ok yeah, it was set to expire after a day. I updated it with one that lasts forever.

1 Like

I’m in, thanks for adjusting that! :slightly_smiling_face:

1 Like

Is there an exponential function? Something like EXP x y where x is the base and y, the exponent?

There is an EXP x function in the manual but I think that this is not what I’m looking for…

In a pinch, a loop will do:
L 1 Y: Z * Z X
where X is your base and Y is your exponent.

The EXP X function is just a lookup table of the equation ( math.pow ( X / 64, 4 ) * 16384 / 256 ), so it will be responsive to inputs 0-256. I would be interested in hearing about its existing usage but my first impression is that it would mostly be helpful for generating “Lin-to-Exp” response curves.

1 Like

Thanks! Very elegant way to implement it!

1 Like

So, while working through study four tonight, I noticed that my PARAM knob actually goes from 4 to 16320 instead of 0 to 16384.

I don’t want to get derailed here (because it probably won’t matter for a while) but is this cause for concern?

I’m guessing not since that’s, like, one gajillionth of a volt…

mine actually does that too (green pcb), and with the same value. i just chalked it up inconsistencies between parts but i might be wrong.

1 Like

PARAM.CAL.MIN with knob fully CCW will fix you right up!


20 chars of thanks @desolationjones !

I’m trying to work out how to generate chord inversions using the N.C operator (which is super useful by the way, if you haven’t tried it yet give it a shot!). For this I need to compare ranges, for instances whether variable D is between 0 and 4. I am using a very inefficient solution for this at the moment:

J GT D 0; K LT D 4
EQ J K then gives me a 1 if the variable D is in the range between 0 and 4.

Does anybody have a more elegant way fix for this?

/ D 4 is 0 for D = 0, 1, 2 and 3

IF ! / D 4: TR.P 1

fires TR.P 1 if D is 0, 1, 2 or 3

A “logical” way

IF && > D 0 < D 4: TR.P 1
1 Like