teletype 4.0.0: beta 2

yeah the safest thing to do is:

  • get a USB stick and make sure it doesn’t have previous TT backups
  • save scenes to that stick
  • make a copy of it to your computer just in case

the thing that trips people is that if you just make a copy to USB stick, then flash firmware, then insert that USB stick again it will overwrite your previously saved scenes with blank ones.

exactly! it’s like a super simple extra pattern that can hold 16 values. i’m just hesitant to call it that since it doesn’t have a view that patterns have and it doesn’t support any of the pattern ops.


What is the procedure for making sure TT reads the scenes on the usb rather than overwriting them. What you are describing has tripped me up before!

when you insert a USB stick, it will always write from teletype to USB first using tt##s.txt names, then it will read any tt##.txt files from USB to teletype. the idea is that it prevents you from overwriting your existing scenes from USB, so it tries to back them up first.

the issue is that when you flash a new firmware, your scenes are empty, and if you didn’t rename tt##s.txt files to tt##.txt, they’ll get overwritten and you’ll lose your previous backup.


Ohhhh there’s a lil s in there that my dyslexia was absolutely refusing to see!! Had to read that 8 times, now it all makes sense!!

1 Like

I was experimenting with DEL.G and wanted to check if I found a bug or if I was misunderstanding how it worked. Here is the code:

DEL.G 48 500 300 315: TR.P 1
DEL.G 48 500 300 315: TR.P 2

The result is TR.P 2 triggers less times than TR.P 1. Did I find a bug or is it because the two lines are in series and line 1 affects line 2?

Here’s a video of it executing:

new feature showcase - binary scales N.B

N.B is a flexible, yet easy way to work with scales (to be exact: western, 12TET scales).

N.B d / N.B r s
get degree d of scale
set scale root to r, scale to s, s is either bit mask (s >= 1) or scale preset (s < 1)

N.BX i d/ N.BX i r s
multi-index version of N.B, scale at i (index) 0 is shared with N.B

The following examples assume you have an oscillator (tuned with 0V = C) connected to CV 1.

// if no scale is set, the default is C-major
CV 1 N.B 1 // 1st degree = C
CV 1 N.B 2 // 2nd degree = D
CV 1 N.B 8 // octave = C an octave up
CV 1 N.B 9 // 9th = D

// change scale to E-minor (4 is transpose, -5 is a preset for minor, see manual)
N.B 4 -5
// now use it
CV 1 N.B 1 // 1st degree = E
CV 1 N.B 2 // 2nd degree = F#
CV 1 N.B 9 // 7th = D

// set scale to C, D and E using R-notation (reverse binary)
N.B 0 R101010000000
CV 1 N.B 1 // 1st degree = C
CV 1 N.B 4 // 4th degree = C an octave up

// there are 16 scales (0-15) that can be set and used at the same time
// N.B is always using scale 0
// set scale 1 to F lydian
N.BX 1 5 R101010110101
CV 1 N.BX 1 4 // 4th degree = B


Seems to me you’re “eating up” on the available DEL slots (the number of things TT can have in mind to play later is limited) and since TR.P 1 is first it gets there first so TR.P 2 gets to “starve”.


Ah, that makes sense. I really enjoy this op. Quite fun to test out different combinations.

The possibilities for this op are huge! Quantizing, changing scales / modes on the fly, I love it!

1 Like

@ParanormalPatroler is correct - there are 64 delay slots are available (which is an increase in this version from the previous 16). the 1st line will create 48 delays, which leaves only 16 delays available for the 2nd line.


These ops are wonderful - I’m really happy you settled on this implementation!

Is this correct? Shouldn’t the last line be CV 1 N.BX 1 4?

Also, do these ops return note values or voltages? I.e. would we normally be doing CV 1 N N.B…?

(Sorry, not able to test at the moment - modular is temporarily in storage.)

All N.* OPs accept a note index (0, 1, 2, etc.) and return a voltage (0…16384 corresponding to 0-10V).

The QT.* OPs (not including the bare QT) accept a voltage and return a voltage.


Yes you’re right that’s a mistake, will correct in original post. For some reason I thought it would be fun not just to copy/paste from the manual :smirk:


new feature showcase - hex / binary / reversed binary number formats

you’ve seen this in some of the examples above by now - with v 4.0.0 you can enter numbers using hex / binary / reversed binary formats. to do so simply start a number with X / B / R respectively, like this: XF, B101, R11.

this is especially useful when using ops that treat one of parameters as a collection of binary on/off flags - like N.B or DEL.B.

the reversed binary is a special format - unlike the regular binary format which counts bits from the right, the reversed binary counts bits from the left. this can make parameters to the aforementioned ops more readable for the left-right reading direction:

DEL.B R1011 will produce “delay, gap, delay, delay”


PDF manual feedback: some of the links in the table of contents go to the wrong page. For example, clicking on “USB Backup” takes me to page 18. It should take me to page 23 (the page number is correct in the TOC but the link is wrong). “Metronome” takes me to 52, it should go to 61 (again, TOC page number is correct but the link is wrong). I’m sure there are more.


Thanks @scanner_darkly ! Good to know the total.

1 Like

This helped me discover that the PDF has links! The corresponding HTML links seem to work correctly, so I’m a bit puzzled about what pandoc is doing wrong with the PDF.

And some of the links are correct! In very old times I hit a similar issue frequently with table of contents in Microsoft Word documents. When computers were slow, it could take forever to update the TOC. Word had options for not regenerating the TOC unless you asked for it, or just change page numbers because that was faster. This looks a lot like that.

1 Like

Thanks for reporting this. It’s been going on my nerves for a long time, but somehow I thought it was something about my PDF reader, since no one else ever mentioned it

The docs are weird on mobile, too. My browser always hangs for 30 seconds when I visit (Chrome on Android).