teletype 4.0.0: beta 2

help needed with testing the pre release beta for a new version of teletype firmware!
lots of new features and bugfixes:

  • FIX: LAST SCRIPT in live mode gives time since init script was run
  • FIX: negative pattern values are properly read from USB
  • FIX: delay when navigating to sections in docs
  • NEW: generic i2c ops: IIA, IIS.., IIQ.., IIB..
  • NEW: exponential delay operator DEL.G
  • NEW: binary and hex format for numbers: B..., X...
  • NEW: Disting EX ops
  • FIX: LAST n is broken for script 1
  • NEW: bitmasked delay and quantize: DEL.B.., QT.B.., QT.BX..
  • NEW: scale and chord quantize: QT.S.., QT.CS..
  • NEW: bit toggle OP: BTOG..
  • NEW: volts to semitones helper OP: VN..
  • IMP: DELAY_SIZE increased to 64 from 16
  • FIX: scale degree arguments 1-indexed: N.S, N.CS
  • NEW: Just Friends 4.0 OPs and dual JF OPs
  • NEW: binary scale ops N.B and N.BX
  • NEW: reverse binary for numbers: R...
  • NEW: reverse binary OP: BREV
  • NEW: ES.CV read earthsea CV values
  • NEW: added setter for R, sets R.MIN and R.MAX to same value, allowing R to be used as variable
  • NEW: v/oct to hz/v conversion op: HZ
  • FIX: W/2.0 ops added
  • NEW: W/2.0 ops documentation
  • NEW: ><, <>, >=< and <=> OPs, checks if value is within or outside of range
  • IMP: new powerful Q OPs
  • IMP: Improved line editing movement (forward/backward by word skips intervening space).
  • NEW: Delete to end of word command alt-d added.
  • NEW: new op: SCENE.P
  • NEW: new multi-logic OPs AND3, AND4, OR3 and OR4 with aliases &&&, &&&&, ||| and ||||
  • NEW: alias: EV for EVERY
  • NEW: live mode dashboard
  • NEW: ops to control live mode: LIVE.OFF, LIVE.VARS, LIVE.GRID, LIVE.DASH, PRINT

– added/fixed in BETA 2:

  • FIX: PN.ROT parameters are swapped
  • FIX: better rendering for fine grid faders
  • FIX: logical operators should treat all non zero values as true, not just positive values
  • NEW: TI.PRM.CALIB alias added (was already in the docs)
  • FIX: SCENE would crash if parameter was out of bounds
  • dashboard shortcut changed to shift-d so that alt-d can be used for editing
  • N.B will truncate extra bits

big thanks to all the developers who contributed to this release: @discohead, @csboling, @jngpng, @midouest, tkzajac, @karol, @nattog, @desolationjones, @a773, @Svin, @eimhin!

developers - please showcase your new features below so that folks know what/how to test.

beta testers - please post all beta reports here. a lot of info on new features is available in the discussion thread, just be aware that some features changed over time. if something is not clear, ask here.

beta testers who will find most bugs will receive an honourable mention at the next flash crash and there will be a prize for whoever manages to crash the new beta most!

CAUTION: installing this firmware will overwrite your existing scenes.
back up your scenes using a USB flash drive and make sure to rename files before restoring.
update procedure:

new BETA 2:

teletype.hex (754.6 KB) (215.9 KB)

previous beta:

teletype.hex (754.0 KB) (215.9 KB)


teletype.html (1.0 MB)
teletype.pdf (713.5 KB)

:keyboard: :bug:


@Galapagoose gets a separate shout out because i can only mention 10 people in a post and because he solved a major teletype bug that blocked the development :black_heart:


Amazingly awesome and can’t wait to try it out! Did the crow ops not make this cut? I wonder if we can use generic i2c ops. Thanks to all the developers!

1 Like

looks like they’re in, just not listed in what’s new/changelog. first bug found )


oh my gosh i don’t even know where to begin. so many amazing updates. thank you everyone for the passion and brain cycles that went into this milestone release!!

edit: EV 🤌🤌🤌


YOOO this is perfect, i just got my tt on tuesday. thank you much!


manuals added to the op - big thanks to @alanza for help!
also, embarrassed to say i totally forgot to include @tehn as one of the contributors :man_facepalming:


new feature showcase - live mode dashboard.


this is basically a way to display custom text and print values on live mode screen. it’s super easy to use:

  • enter any text you want displayed in the scene description
  • press shift-d (alt-d if you’re still on 1st 4.0.0 beta)

the top 6 lines will be now shown. you could simply use it to display the scene description without having to open it, but you could also do something more interesting, like displaying values:

  • edit the scene description again and place %1 somewhere
  • execute PRINT 1 12345

the placeholder will now be replaced with the specified value. an example of how you could use it:


send triggers to input 1, and you can see the time interval between the triggers!

you can print up to 16 values - you specify the index in the placeholder and provide it as a parameter to PRINT. you can also use PRINT to get the currently assigned value - and yes, this means you get 16 extra variables even without using the dashboard. you can use PRT instead of PRINT to keep it short.

teletype will not remember if you have the dashboard on, but instead of having to use the shift-d shortcut you could place LIVE.DASH x / LIVE.D x op in the init script. you’ll notice it takes a parameter - that’s because you can have multiple dashboards. simply separate them with === line in the scene description. this is also a convenient way to switch between the actual scene description and something else.

there are also ops to display variables: LIVE.VARS / LIVE.V and grid visualizer: LIVE.GRID / LIVE.D. to turn it off, use the appropriate keyboard shortcuts or execute LIVE.OFF / LIVE.O.

there are many possible uses for this - from debugging your script to providing instructions to showing important scene parameters. you could use teletype as a monitor for displaying kria pages and parameters:

or as a midi monitor:


I can’t believe you’ve done this.


That is just incredibly clever design. I saw your Instagram post showing this running and even knowing what the end result was I couldn’t begin to figure out how you could design some ops to make that happen within the constraints of the teletype language. This solution is amazingly elegant.


This is a SERIOUS game changer thank you so much!

1 Like

totally forgot to mention (you can see it in the screenshot), you can display values in decimal / hex / binary / reversed binary formats by using placeholders %##, %X##, %B##, %R## respectively (## is the placeholder index). which means you could use teletype as a decimal/hex/binary converter too!


Thank you so much everyone!! This is some amazing effort. Excited to try all these new features! Also, great to see that the short version for EVERY is included in this release as well.

Wow, this is absolutely fantastic.

This alone is a potential game changer for me. Thank you!


This really is highlighting just how much I need to set aside more time to Teletype. The amount of new features is staggering, thank you to everyone who contributed :heart:


seriously, this is absolutely bananas. you are all such brilliant, caring artists who are generous beyond measure. thank you for making this module + community part of how you create and share energy :sparkles:


I’m not sure I understand this. Can you explain?

values printed to dashboard have to be stored so that they can be displayed again when you switch between different screens. and since we have to store them anyway, it made sense to also support getting a previously printed value. so if you print value 1: PRINT 1 12345, you can then execute PRINT 1 and it will return 12345, which means you can simply use it as an extra variable.


Clever thinking. I think using actual numbers as variables throws me off, but I’m sure I’ll figure it out once I see it in action.

I haven’t upgraded to 4.0 yet as I’m too scared I’ll lose all my work with grid ops after going through your lovely grid tutorials and making a 32 step sequencer; I wanna make sure I save the scenes first! :sweat_smile: I know how but I’ve heard horror stories of lost scenes.

1 Like

Even better, you could use them as an array since you can presumably address which thing you’re “printing” to using another expression. So it’s like having an extra 16 slot pattern space outside the tracker.


You can easily save it with plugging a USB key inside TT.
Once you have it, you can check it on your computer.

1 Like