> teletype : code exchange

Amazing :smiley::ok_hand:
Thanks a lot

1 Like

Oh heck yes! Thanks for sharing this! I’d love for folks to start sharing their TT scripts again; especially when they can help bring very specific value to the family such as your Turing machine.

Thanks so much! Looking forward to using this!


For anyone looking to expand this to include the red mode (drum patterns) as I was a few months ago, I found the root drum patterns in the code (although could not decipher enough to know how the outputs are then derived from these).

If anyone has the chops for that bit of decoding it’s somewhere in here:


minor update on this:

friend of mine took 30 minutes to look over the code with me. There’s an ‘if even, no change’ and ‘if odd, change’ and the first pattern on the list is indexed as 0 (and is 12 o’clock on the knob which, if memory serves, gives a steadily alternating kick and snare with no fill). So the way to emulate it with tt would be to populate the tracker with these patterns, with some variable x that determines the current pattern, to increment all of the patterns on a unified trigger, and to call pn.here x to determine which trigger to come out of. x could be drunk or just some kind of weighted random (think mod rrnd 0 2 2, which gives 0 2/3rds of the time and 1 only 1/3rd of the time).

It may be a few months before I get around to it, but if/when I do I’ll post another update. Ultimately what this mode is doing is extremely simple, and there’s no reason we can’t write a Crow script even to emulate it – also recall that Disting EX integration is now a thing, so at some point in the future a 12 HP probabalistic drum machine will be a thing one could hack together, perhaps with clock and bias as the two inputs for Crow, taking up less space than the OG marbles. Seems a lot of people use marbles primarily for drums and treat the right side as just another stepped random, so this feels like a solution that could really enhance a lot of people’s flow.

Just posted this over in the Morphagene thread but thought it might be useful to have here too. I basically figured out TT CV values to hit the more “tonal” spots on Morph’s varispeed knob and wrote a script to make a quantized varispeed knob with the TT Param knob based on those values.

This quantizes it to octaves, 4ths and 5ths both in regular and reverse playback. Set your varispeed knob fully CCW and your varispeed attenuverter fully CW.

Tracker values (let’s say in pattern bank 0):

0 (reverse +octave)
41 (reverse +5th)
54 (reverse +4th)
85 (reverse)
118 (reverse -5th)
133 (reverse -4th)
164 (reverse -octave)
330 (stop)
486 (-octave)
518 (-4th)
532 (-5th)
564 (normal)
598 (+4th)
612 (+5th)
800 (+octave)


CV 1 VV PN 0 J



Hi! Finally im having some time to learn the Teletype :slight_smile
Thanks to all involved on making such a special device!
So i guess with the learning come the questions…
Apart from the usual i need more code lines, variables, scenes, etc that most newbies come to realise…i have one question:
I have a script that has a line that randomizes the pattern from where values are read. I have run out of scripts so i was wondering if there is any way to make a function comment out a line inside a script?
Say i found a random pattern that i like on pattern 0, but i dont want to randomize it again on the next trigger of the script. How can i disable the randomizing bit?
Sorry im away from my computer so i cannot copy / at the moment.
Any ideas?

Ps: Am i right in thinking that i probably cannot assign each fader of the 16n (therefore 16 fader functions ) and that i should just try to use the txi? I had lots of ideas for ñpattern manipulation but, there is no way with my knowledge im going to be able to fit that on 8 scripts, plus I and M.

Less is more?

Thanks a bunch!

I’m not sure I’m understanding correctly, but the first thing to say is that you can comment lines by hand using ALT-/

If you’re wanting to prevent a line from running programmatically, then you can use an IF. For example you could have a variable A, which if it was non-zero would trigger the thing to run and otherwise skip it by using IF A: and then the rest of the line would be your code.

I suspect this isn’t what you’re after, but just in case!

Thanks for your answer @SimonKirby!

I knew about the commenting out bit, but i had no thought about making a conditional state…but what related too? What condition should or should not be met to stop the randomizing action?

Scratching my head!


Well, I guess if you want something that says “stop randomising” because you like what you hear you will need an input from you to do that. One way is to simply type A 0 at the live prompt in teletype to set the variable. Another way would be to use the PARAM knob. You could check for it being zero instead of A and then just turn it to the left when you like the pattern. (You might need to set the range of the param knob in order to make sure it actually reliably goes to zero when turned all the way left).

1 Like

Thanks for the quick reply and input @SimonKirby i think i might use one of the faders of the 16n to move between 0 1 making the line of code that randomizes the pattern active or not. So if the variable is equal to the value it will randomize the pattern, and if not then it would “jump” the line of the script, maybe with an else if?
Will give it s go and report back! Many thanks!


Hi Thopa, there are also a few scences of Turing machines around if you like to get inspired and not already found it - just try the search.


This is veeery useful :slight_smile: thank you!

So I started my journey into Teletype 12 days ago when I decided a good way to dive in was porting Norns’ amazing Awake to a Teletype scene. It turned out harder than I expected, misunderstanding id’s within a group (thanks @scanner_darkly for clarifying) and being limited (but in a fun/challenging way) by the amount of scripts/rows/chars/vars. Yesterday I finally got my first oscillator in the mail (also just dove into modular) so I was able to test and fix a last bug in the scene.

I present to you: HALF-AWAKE:

View this post on Instagram

HALF-AWAKE //// ported #monome norns’ awake to #teletype #eurorack

A post shared by Nino (@ninoshiro) on Sep 30, 2020 at 4:42am PDT

  • Script 1: advance and play sequence 1 (default 8 steps)
  • Script 2: advance transposition sequence 2 (PARAM decides steps)
  • Script 3: change note or transposition and “on/off” state for steps
  • Script 4: morph note sequence or transposition sequence for steps that are on
  • Script 5: morph sequence 1 with script 4
  • Script 6: morph sequence 2 with script 4
  • Script 7: reset sequence 1 playhead
  • Script 8: reset sequence 2 playhead

tt02s.txt (1.7 KB)

P.S. If you want to trigger scripts 1 and/or 2 externally remove them from the Metro script!


This is great! I’d love to take a look at how you wrote the scene.

1 Like

Added it to the first post! please change the script number to the desired spot to overwrite when writing to teletype :slight_smile:

excellent, added it to the grid teletype code exchange page!


Im trying to input param readings in realtime in a pattern.
So the pattern is playing with P.NEXT and i want to input the readings from the PARAM pot on each index of a pattern in real time.
I have tried:




With no luck.

I have also tried scaling PARAM on the I script and assigning its value to A but its not working either.

Can this be achieved? would be great to have a pseudo Malekko voltage block function where fader movement is recorded in real timein a pattern…


@thopa here is a clocked recorder script I made which works similar to what you’re asking. It does not have “motion detector recording” like Voltage Block, though. Instead you use a gate on input 1 to clear old and begin a new clocked recording on the “IN” jack. When the gate is low the script is in clocked playback mode.

Script 1 (arm record while high, disarm and reset sequence on falling edge):

IF ! STATE 1: X 0; P.I P.L
P.I 0; P.L 0; X 1
P.MAP: 0

Script 2 (trigger advances clock):

IF && X STATE 1: $ 4
IF ! OR X STATE 1: $ 3

Script 3 (playback function):


Script 4 (record function):


Init script:

$.POL 1 3; X 0

Hi @thopa. did a modification of „morphing faders“ of @scanner_darkly with recording function. But you need a txi (and a grid would be handy but not necessary).

1 Like

Thanks @desolationjones !
Its not a problem to trigger a clocked recording, i actually made a module to send triggers on push button push.
Thanks a lot for your example code, im going to try to implement it on my current scene but i probably will start a new one since im (as always) out of space on this one.
Will let you know how it goes thank again!