Teletype workflow, basics, and questions


i think you’re right. i was looking at the definition of that data structure, which is defined as char[32]. one char is reserved for end of line, so that’s where i got 31. but looking at the editor code it actually limits it to 30. not sure why, it’s possible it needs to reserve one more char for some other reason.



Isn’t it just the width of the screen?



This is great. I didn’t realize that 30th character was even available since it’s pushed off-screen by the script number!



my guess is that originally it was chosen so that it would fit on one screen, but since the font itself is not a mono font sometimes 30 characters will use less than the full width, and sometimes more



I love that my simple nooby question led to such discoveries, even among a seasoned TT developer :relaxed:



On my latest reading of the Teletype manual I notice the “STATE x” OP for determining the state of an input. Presumably this is useful for stuff like:

W STATE 1: [do sustained action while gate into input 1 is high]

Can the STATE OP be combined with “MUTE x” OP to use inputs for their STATE value while muted so they don’t trigger a script? Or does muting an input cause STATE to return 0 while muted?

1 Like


I don’t know the answer to your question, but I’m very curious. I hadn’t thought of looping on the STATE of a trigger, that’s a great idea!

I’ve used STATE mostly with Ansible – checking the state of button presses with a really fast metro. I used this trick to have some user interaction with a 4 track CV recorder, so 1 button cycled through the active pattern, and the other button cleared a pattern.



I have used STATE successfully with the input muted. Hadn’t thought of using it in a while loop though, that’s fun!



I’m new to bit ops myself and am away from my TT but is there an easier way to implement circular LSH/RSH? Here’s what I’ve come up with.

For example with 4-bits (9 = 1001, left shifting by 1):

a & << 9 1 15       // 9 left shifted by 1 masked by 15 (1111) = (0010)
b >> 9 & -1 - 4 1   // 9 right shifted by 3 (0011) = (0001)
c | a b             // OR of above (0011)


I finally got a usb a-a cable and when I connect either Ansible or Teletype (holding down the button on power up)… nothing seems to happen. Is there a visual indicator that you’ve entered bootloader? Does it show up as a mounted drive in finder?



If I remember correctly the 3rd CV led pulses and the screen is off.

Edit: I missed your parens mentioning you already knew to hold the button

On the computer side, I don’t believe it shows up as a drive (on Mac), but running the .command file shows the programmer can target it

1 Like


Thanks! Ran the command and it worked.

Edit: And for what it’s worth for me all trigger indicators were lit :man_shrugging:



Hi. Thanks all for the very interesting reading so far. I’m slightly struggling getting to grips with TT, but pleasurably so.

I am a bit stuck on how to modulate the PARAM knob via CV, though. It doesn’t seem to be as simple as plugging in a cv source to the IN jack?



Ah - no, that’s something TT would not impose, instead allowing you to write what you want for yourself: the simplest case would be + PARAM IN where you’d otherwise just say PARAM, for example.



Just to clarify - the PARAM knob and the IN input are not connected in any way.

The PARAM variable is read from the position of the knob, which you move with your hand.

The IN variable is read from a cable plugged in to the IN socket.



As stated above there is no direct link between PARAM and IN. There are a couple basic ways to make them affect each other in your scripts, though. @misuba shows one example (classic “knob as CV offset”) for local use within a script; here’s a way to make the knob value scale with the IN CV and affect all PARAM reads:




I’ve found, from my few days with TT, that it helps assigning one of the variables to what you want to see at first and pressing the ‘~’ key to pull up the handy quick screen.



Thanks so much, that’s great.

As a coding ignoramus, are there any resources that would provide a few varied script examples (I’m going around and around the TT studies to get it in my fingers) to get the juices flowing?

It’s hard to quite describe what I’m looking to really get out of TT as I am mostly looking to ‘humanise’ sound sources as a precursor to arranging elsewhere. So dynamic modulation, I suppose.

1 Like


And also, am I right in thinking in the latest version of the firmware the tilde key is defunct, and is replaced by tabbing to reach the tracker view?



It’s hard to quite describe what I’m looking to really get out of TT as I am mostly looking to ‘humanise’ sound sources as a precursor to arranging elsewhere. So dynamic modulation, I suppose.

Funny you should mention that – I had a similar goal with Teletype recently with my keyboard playing. I wrote a simple scene that creates a 4-channel random sample & hold and outputs gates with randomized lengths. I control the slew of each channel with the PARAM knobs on TXi and a global “amount” control with PARAM to attenuate the sample & hold values. I’m considering working in some random delays to the gates as well, but haven’t quite figured out the best way to control that.

I can post my scene late tonight when I have my synth on hand.