Teletype workflow, basics, and questions



@scanner_darkly thanks for the help. I tried your suggestion which confirmed that O works as it should. I think I had a redundant command on O in another script from my experimenting which confused the situation. User error clearly, teletype workflow for dummies


Another thing I’m struggling to find a solution for… I’m trying to trigger a script at a multiple of the incoming trigger. I’m sure I need two scripts to do this, and I know how to do it for the metronome. For example I know wrt metro:
will trigger the metro at x2 the value of T (in this case set by an incoming trigger to the script 4, for example). But I want to trigger script 8:
$ 8 DIV T 2
doesn’t work.
A DIV T 2; $ 8 A
Doesn’t work either. Surely I’m missing something?


The M script is the only one called automatically with a timer.

You need to have M ticked at a high enough frequency (the fastest rate you’re interested in) and in that script hace something to divide the actual clock to trigger your other scripts (using the EVERY operator for example).

Another option might be to have each script call itself back with a delay at the end of the script.


Hey thanks, that’s useful. In the current patch I’ve got M tied up so was hoping to use another approach.
I guess I’m having trouble executing another script inside a script except at the rate that the initial script is being triggered (except for M).


You’ll need the delay op. Something like this:

DEL A: $ 8


I’ve been having some thoughts about replacing my TT with more hands-on modules. I like TT and it’s super flexible, but I seem to have this psychological speed bump to using it – I feel like I have to “turn it on” separately from the rest of my rack.

I realized today this is really less of a “music vs code” mental state, and more because I’m using a crummy KVM switch. It’s just a passive USB switch and it takes my PC several seconds to recognize the keyboard, during which the DAW loses audio. It’s so awkward I avoid doing it!

So I ordered a better switch (with hotkey switching and keyboard emulation), and have been doing some experiments with TT to remind myself of its algorithmic sequencing power and fun :slight_smile:

This one started as an attempt to replicate half the Omiindustriies DDSR, but mutated into a nice little bit for Rings. Script 3 feeds the shift register with an odd-length Euclidean pattern under knob control, script 1 performs the shift, script 2 creates a CV from the register (according to the Euclidean rhythm), and script 4 is a reset/mute.

M 140

$ 3
$ 1
$ 2

B WRAP + 1 B 0 16
D / PARAM 961
IF EZ D: $ 4
C ER D 17 B

A TR 3
TR 4 TR 3
TR 3 TR 2
TR 2 TR 1
TR 1 ^ A C

I * TR 1 N 3
I + I * TR 2 N 5
I + I * TR 3 N 7
I + I * TR 4 N 12
CV 1 I

B 0
C 0
TR 1 0

I patched CV 1 to Rings V/OCT, left Strum unpatched so it triggers on note changes, and used the four SR gates to modulate Brightness, Damping, Structure and Position a little.

I was getting some pretty nice results, but after recording it realized it was a little dull to listen to for several minutes without key changes or anything. So if I come back to this, I’ll move the values in script 2 into a table and maybe sequence key changes with a trigger in script 5 :slight_smile: I’d also consider changing the parameter scaling since the better values for ER hits tend to be lower numbers.


It arrived this morning, and I’m having no luck with it. I hear IOGear tech support is pretty good, so I’ll see if they have any advice.


are you using a switch to switch your keyboard between teletype and pc?

check with them if the switch has a usb hub inside. if it does it won’t work with teletype (teletype/ansible/trilogy do not support usb hubs).


I just tried recreating exactly this patch using your scene, and it’s really wonderful! Thanks for sharing. Now going down the rabbit hole of tweaking note multipliers live while the patch is playing. Really love how you’ve used the Euclidean sequence to feed the shift register. So clever.


I’ll see what they say. It’s a bit weird – it has a keyboard-specific input and a second USB input meant for a mouse (which I’m leaving empty and just directly connecting the mouse to my PC). There are two USB cables per computer and they’re not labeled, so I’m not sure which to use, but neither seems to work anyway.

It does keyboard emulation, so switching is supposed to be invisible to whatever is connected to it. And that’s working great on the PC end but Teletype isn’t having any of it.

If I disable emulation and plug my keyboard into the mouse input instead, it works on Teletype but switching is just as slow and bad as my passive USB switch so there’s no point.

A̶n̶o̶t̶h̶e̶r̶ ̶o̶p̶t̶i̶o̶n̶ ̶w̶o̶u̶l̶d̶ ̶b̶e̶ ̶B̶l̶u̶e̶t̶o̶o̶t̶h̶-̶b̶a̶s̶e̶d̶,̶ ̶i̶f̶ ̶a̶n̶y̶ ̶d̶o̶n̶g̶l̶e̶s̶ ̶o̶u̶t̶ ̶t̶h̶e̶r̶e̶ ̶l̶o̶o̶k̶ ̶l̶i̶k̶e̶ ̶a̶ ̶n̶o̶n̶-̶B̶l̶u̶e̶t̶o̶o̶t̶h̶ ̶H̶I̶D̶ ̶k̶e̶y̶b̶o̶a̶r̶d̶ ̶t̶o̶ ̶t̶h̶e̶ ̶d̶e̶v̶i̶c̶e̶ ̶t̶h̶e̶y̶’̶r̶e̶ ̶p̶l̶u̶g̶g̶e̶d̶ ̶i̶n̶t̶o̶.̶

I confirmed Logitech Unifying dongles work with Teletype once paired (I have one I used to use before switching to mechanical). So if the KVM switch won’t work out, Logitech’s got some multi-device keyboards that support both Unifying and Bluetooth.

Thanks :slight_smile: I kind of have an obsession with Euclidean patterns; the ER op was the tipping point that convinced me to get Teletype.


So…2 weeks in and a super dumb question…I feel like I’ve read everything on lines and the manual and am not figuring this out.

Im having a ton of fun with the studies and generative stuff (endless lullabies for the baby!), but was trying to make a basic sequencer that i can sync with a daw. I just want the pattern index to be at 0 when i hit start…

Current set-up is:
clocking from daw into Pamela’s New Workout
a single trigger from Pam’s into TT In 1 on start from computer
clock into TT in 2

in TT:

using pattern 0 for note values
CV 1 to osc, TR 1 to envelope

T 0


CV 1 N PN 0 T
TR.P 1

initially i was using P.NEXT and ‘resetting’ with P.I 0 (and then tried P.I -1, since it seemed to work getting the pattern to 0), but it only seemed to work intermittently? Same with the code above…and Im sure im missing a some key TT understanding.

Is it also because Im reading everything super sleep-deprived since we have a 3 month old human living with us? Not sure…

Grateful for all of the generosity and insights here. I feel like I’ve done so many cool things with TT already, based on code shared here - it’s so amazing…just not grasping this super obvious thing.

(I also just tried delaying calling Script 3 on the Script 2 and that seems to be working…but is there another way?)


What’s happening is you’re setting P.I to 0, but then your first clock (into tt 2) sets it to 1 at the exact moment it runs script 3. True, you’re saying run script 3 first, but these things happen almost instantaneously. In theory it should work, but you’re hitting what’s known as a ‘race condition’.

The better, but not necessarily intuitive, way would be to use P.NEXT as you had been, but your ‘reset’ should be to set the P.I index to the END of the pattern (which may be what you were trying to do with P.I -1 but I believe with most negative arguments, the TT interprets them as 0). This why, the next time P.NEXT happens, it will wrap from the end to the first item in the pattern. (P.WRAP needs to be 1, but it is by default)

So it would be:

TR.P 1

No need to maintain a separate position counter since P.NEXT will be doing that for you.
Learning TT with a 3 month old is hard. I did the same thing (I think he was 3mo… too tired to remember). :slight_smile:


Follow up… fun thing with doing it this way, is you can have another script change what P.END is, effectively changing the loop point of the pattern.


Amazing - thank you!


Just so I can understand (I’m also learning teletype now), would it have been fine if the two lines in script 3 had instead gone into script 2 before the line that increments T? (As you have done with your P.NEXT rewrite.) In other words, do different scripts on the teletype essentially run as if they were in parallel?


It’s not really which script the commands went into that was the problem. It was more that a counter (T) was being updated “at the same time” as the firing off the script that would ultimately read that counter.

He was resetting his counter (T) to 0. Then Script 2 triggered Script 3 and then incremented that counter by 1 (now T = 1). Even though Script 3 should in theory execute first, it’s possible that the operating system of the TT prioritizes certain operations, like updating variables. So what I believe was happening is that T got updated to 1 before Script 3 read the value for T… so Pattern 0 index 0 (the first value) would never be read.

My example essentially solves that. The ‘reset’ settings the P.I (pattern read position) to the end (aka “last”) index. So when my Script 2 is called, and P.NEXT is run, the P.NEXT value is going to be the first index in the pattern (since P.NEXT will wrap from the end to the start).

Hopefully all that is more helpful than confusing. :wink:


one of the reasons Just Type was so appealing to me was because it puts a polysynth in my small euro case. as i’ve been playing with Just Type over the last few months i occasionally want to plug in a chord progression, but it’s easy for me to get mixed up while doing the semitone math in my head.

i know this isn’t rocket science, but i put together a cheat sheet today covering which semitones are in which chords and a few reminders about how to transform a major chord into other basic chord varieties. i hope someone gets some use out of this!

Just Type Chord Cheat Sheet.pdf (25.6 KB)


Thank you for this!!


Forgive me if this is been discussed before. But, I was wondering if it is possible to generate a MIDI clock output via the teletype or telexo ?

I use the teletype as my central hub for everything, especially clock. It would be awesome to be able to clock external midi devices using the teletype metronome .


mmmmm, well, I think it depends on what counts as a MIDI clock. If you’re asking can Teletype generate clock signals at 24ppqn, the answer is yes. If you want something that ends up on a 5-pin DIN adaptor and makes sense to your MIDI device on the other end, I’m not so sure anymore. Something like a DIN sync clock with a 24ppq pulse wave and a start/stop signal would be super easy, but I suspect that MIDI clock messages are truly digital messages and not simply high or low pulses? In which case we might have a tougher time.