Teletype 3.0



new features

  • grid integration
  • er-301 support *
  • faderbank support *
  • matrixarchate support
  • new pattern ops: P.MIN, PN.MIN. P.MAX. PN.MAX *
  • $ alias for SCRIPT
  • ternary if op ?
  • multi line selection / copying (with Shift-arrows)
  • Alt-<delete> delete selected lines
  • Alt-<up> / Alt-<down> move selected lines up/down
  • Ctrl-<right> / Ctrl-<left> move cursor by words
  • Alt-H shortcut for help (in addition to Alt-?)
  • I is initialized from the calling script (done by @sliderule)
  • new kria ops (done by @freqout)
  • 3 level undo in script editing (CTRL-Z)
  • RND / RRND aliases for RAND / RRAND
  • WRP alias for WRAP
  • SCL alias for SCALE
  • new ops: P.RND / PN.RND - get a random value between start/end
  • new ops: P.+ / PN.+ / P.- / PN.- increment/decrement pattern value by amount
  • new ops: P.+W / PN.+W / P.-W / PN.-W as above and wrap
  • W/ support (done by @Galapagoose)


  • documentation on LSH and RSH
  • PN.HERE not updating tracker view
  • @simondemeule’s fix for JI op
  • i2c initialization delayed to avoid crashes when connected to er-301
  • duplicate commands don’t get added to history in live editing
  • last screen is saved to flash
  • knob jitter in scene loading/saving fixed
  • TIME and LAST are now 1ms accurate
  • RAND / RRAND will properly work with large range values
  • P.RM was 1-based, now 0-based
  • P.RM / PN.RM will not change pattern length if deleting outside of length range
  • L .. 32767 will properly work instead of freezing
  • P.POP \ PN.POP will update the tracker screen
  • PARAM set properly when used in the init script
  • PARAM and IN won’t reset to 0 after INIT.DATA
  • SCALE precision improved

for discussion please use linked threads where provided.

development branch:
features marked * were implemented by @bpcmusic :metal:


do not connect your grid directly to teletype! teletype is not able to provide sufficient power. you have to power grid externally.





Installed and looking forward to start playing with the combined firmware tomorrow.

1 Like

So excited for this! I’ll install just as soon as I can roll out of bed :slight_smile:

1 Like

fantastic! and probably a good time to say:

calling all volunteers for help keep the documentation up to date


Got it. Will install today. exciting developments!
Many sincere thanks to everyone involved in pushing this forward!


mostly we just need to document 2.2, @bpcmusic already documented his 2.3 features and i will be doing grid integration and the rest of 2.3 stuff.

also if somebody volunteers to update the PDF key reference that’d be awesome, it hasn’t been updated since 1.3 and there are a lot of keys missing (and some were changed).


I submitted a bunch of documentation changes to @sliderule for 2.2. I believe they are awaiting review or inclusion.


ternary if op

? condition a b

this op means “if condition is true, return a, otherwise return b”. the main benefit of this op is that it can be used in expressions without the need to use IF pre op. consider the following:


now you can do the same with A ? EZ Z B C.

as with IF, condition can be any value. 0 value is treated as false and any other value is treated as true. so you can also do something like this: A ? % Z 1 B C or A ? TOSS B C.


PR opened for those docs! Thanks for your hard work. You might want to open a thread to openly work on your studies material. I don’t know what direction those need to go to fit in with the existing one.

Also, super work @scanner_darkly! Love the ternary op and the implementation of multi-line select.


awesome, thanks! and big thanks to @unity2k for helping with the docs.

i updated the docs to also include the fix for IN op latency as it’ll likely be released as part of 2.2. once that PR is merged i’ll merge both PRs into my branch as well.

edit: 2.2 docs have been merged to my grid2 branch.


multi line cut/copy/paste

when editing scripts you can now use Shift-<up>/<down> to select multiple lines. when more than one line is selected the edit line (the bottom line) does not display anything, and to return to editing you can either press <Enter> or select a single line. pressing <up>/<down> will also make it go back to single line selection.

other fun things you can do with selected lines now:

  • Alt-<up>/<down> will shift selection up or down
  • Alt-<delete> will delete selection without copying it into the buffer
  • toggling comments with Alt-/ will work with multiple lines as well

all the old shortcuts for cut/copy/paste will now work with multi line selection, and you can still use them with single lines as well. however, there was a change in behaviour i had to make: when pasting, it will paste at the current position while shifting what was there down. previously, when you pasted something, it would paste into the edit line, so to commit the paste you had to additionally press <Enter> and it would replace the currently selected line with whatever you pasted. now it will shift the currently selected line down and it will insert the pasted line(s) above.

this seems like the most intuitive approach but i’ll be curious to hear how people find it in practice. you can somewhat replicate the old behaviour by copying, then selecting the line you want to replace, pressing Alt-<delete> and then pasting. i’m also considering adding this: when pasting a single line, and the edit line is empty, replicate the old behaviour (paste into the edit line but don’t commit). this way you can also replicate the old behaviour by copying a single line, then navigating to the line you want to replace, pressing Shift-<backspace> and pasting.

the buffer is shared between script editing / live screen / preset writing screen. i still need to add support for multi line selection to preset writing screen, once it’s done one thing you could do is use it to store bits of scripts!

finally, you can now navigate by words using Ctrl-<left>/<right>. i’m hoping these changes will be useful for live coding as well!


Hi all - Recently got my Teletype and I’ve been playing around with 2.3 beta 1 for a few days.

I’m not sure if this is the correct location to post ‘bugs’ - please let me know and move if not.

  1. My PARAM value is fluctuating. I noticed this was reported on an alpha of 2.2 (by @laborcamp) - but looks like it was declared fixed.

I have tried Firmware versions 2.1 release, 2.2beta1 and 2.3beta1. PARAM fluctuates on all of them. I have calibrated (to 0 and 16383 succesfully) . I have tried different power rail and case. It is varying enough to cause me to overwrite the wrong Scene when saving.

  1. I have had a few instances where pressing ALT + UP on a script, to move a line of code, has caused the screen to go blank and require a power cycle.


1 Like

yes, please post bugs here, unless it’s something 2.2 specific in which case it should go to the 2.2 thread (thanks for testing with multiple version - that’s very helpful!). if it’s a bug that existed before 2.2 then we can add it as an issue on github and it’ll get fixed when one of the developers chooses to work on it.

for the PARAM issue i believe that’s always been that way, there is a small amount of noise on the knob, calibration won’t fix that. i don’t think it was ever fixed, at least not to my knowledge - can you post a link to the discussion? regardless, i think there might be a way to reduce the jitter for scene loading/saving, i’ll think about this one.

Alt-<up> - when does it tend to happen? single line / multiple lines? any other details?

Here is @laborcamp mentioning the PARAM wobble on 2.2 - not sure if it is the same issue:

Personally, I wouldn’t mind losing some resolution on the PARAM knob if it meant it was stable. I have been using it to window through sections of CHAOS - which only really works when it is rock solid!

Regarding ALT + UP. It is almost certainly single line - I’ll try to replicate it. As the screen goes blank suddenly and unexpectedly, I can’t see exactly which line I was on but it has happened 3 or 4 times and each time I had my fingers on ALT + UP!

Other issues with ALT moving a line up/down:

  • The commented-out status of a line doesn’t move with the content of the line you are moving.

  • Moving empty lines between lines of code can break the page such that code is pushed down off the page - ie it appears that an empty line is inserted each time you try to ALT + UP or DOWN to move a line of code.

It is possible to cause a crash by entering an integer larger than 32767 as a Loop command in live mode.

L 0 32768: A R

re: losing resolution on PARAM - you can already do that by dividing or scaling. but sometimes you want a bigger range, so it’s always going to be a trade off. for scene selection my idea is to introduce “dead” zones between values, so even with jitter it shouldn’t change values when it happens to be right on the edge between two values.

moving lines - i’ll go over that code again and introduce some additional boundary checking, so at least it won’t crush. i’ll do that and check the other issues (and the loop issue) tomorrow.

thanks for your help with testing, very much appreciated! i’m a bit surprised tbh there hasn’t been more feedback, it’s been out for a couple of weeks now.

1 Like

Yes. Using SCALE to set PARAM range removes jitter completely but only at a range of 32! Dead zones where the value changes sounds like a good idea - presumably it would require calibration first?

I’m just getting started with the TT, so I’m still at the stage of exploring the limits of each OP and the interface rather than complex scripts.

I noticed a couple of potential problems in the Tracker mode earlier but I didn’t make notes at the time. Pressing CTRL enters a value (without requiring ENTER…?). I’ll look again later.

it shouldn’t. with only 32 values i think it should work even without calibration (but calibrating is still a good idea).

it’s on purpose - pressing CTRL enters the current knob value into the selected cell.

Yes range of 32 works fine as is but I thought you were suggesting dead zones as a fix for jitter at the maximum, non-scaled range. (I would prefer stability at a range of 1024 at the very least! Ideally 4096.)

I must have skipped the section of the pdf where CTRL in the Tracker was mentioned. I’ll double-check any further bugs! Cheers!

1 Like