Telex: Teletype expanders


That is super-helpful; do you mind if I put your instructions up on the TELEX Github site?

Thanks so much for sharing!



Of course not! The docs were pretty complete:

Arch handles resolution for the libusb dep, but that might be the only other gotcha for other distros or compiling from sourc.

1 Like


I soldered together my Telex boards yesterday while I had the modular apart during a power supply transplant.

There are (2) two pin pairs near the top and bottom, just carefully cut away the plastic around the pins (I only broke one pin on five Telexes, but I have a vacuum desoldering station …), clamp or rubber band the module together to seat everything, then solder a total of four pins per module. The modules are rock solid after that!

Oh, and WEAR EYE PROTECTION when cutting the plastic! I had a piece hit me in the nose nearly hard enough to draw blood, it hurt!



Ok so 4 would be enough… I was about to desolder every female plastic parts (but then the module would have been slimmer).




Pics or it didn’t happen (the mod - not the injury). Glad it went well!!

Offset Behavior

I’ve identified and fixed the bug with the offset behavior. New firmware will come later this week after some more testing as it won’t be the only thing in the release.

If you want to get around it for now - the key is to have the SLEW for the CV output set to a non-zero value. It defaults to 1ms at turn on and, with that value, the logic error doesn’t exhibit itself. Unfortunately, if you set the SLEW To zero or use INIT (which also sets it to zero), offsets then don’t get applied until a subsequent CV voltage set command.

In short, the workaround is to keep your SLEW for the CV at 1ms. When it is set there, the offsets apply immediately.

New build should be ready before the end of the week. :slight_smile:



Wanted to share an early peek into a study that I’m putting together for the TELEX. It uses @scanner_darkly’s grid ops to turn a TXi and TXo into a little polysynth. I still have some polishing to do on the patch, but here is a quick preview:

There are only four modules involved in the patch with only one sound generator - the TXo:

  • Teletype with Grid
  • TXi for controls (attack, decay, waveform, portamento)
  • TXo for audio output (4 oscillator + envelope combinations)
  • 2hp Mixer to mix the voices down

(The O’Tool visualizer doesn’t count - just wanted to make the video a little more interesting.)

If you look closely at the pattern view, you can see the crudely scripted voice allocator at work. It “stores” the active voices in one of the first four positions in pattern 0. The script has one variable parameter that allows you to open it up for more voices if you have multiple TXo.

It’s a potent combo. What is amazing is how little grid-specific scripting that I had to do. @scanner_darkly has done a wonderful job making the grid a super-useful input device in the smallest number of lines of code. It is super-powerful!!!


Grid ops / integration

This is amazing and i think we need a dedicated 4-voice synth working with Teletype and some voice handling Operators.



Yes, two at each end nails the boards down very nicely while not making future disassembly impossible.

Make sure you clamp everything together before soldering to get the middle sets of pins seated well.



being able to control multiple TXo modules effectively was actually one of the main drivers for grid integration! partially because there is so much that can be done with all the TXo ops, i probably only used 1% of what’s possible so far… i should make some dedicated TXo/grid scenes once grid integration is complete.



Wow! Can you post the scene? I would love to modify this for a 6 voice synth with Just Friends / Just Type



Here are the three TXi modules. My stately schnozz would not fit in the frame.

Solder looks a little blobby, sheesh. I was working fast.



Also keen to see the scene. I’ve been trying to do this for JF…I’m close, but having a few voice allocation issues, particularly when 2 voices are allocated to the same note

1 Like


I’ll share when I have a chance to clean it up.

I’m in the middle of some firmware work (next rev for TELEX, 16n firmware and teletype ops, a couple of new pattern ops, and the ER-301 teletype ops). All of the coding is done - but I have a fair bit of testing before I do a pull request (working off the grid ops branch by @scanner_darkly). Once that is done - I’ll clean up and share my scene. :slight_smile:



TELEX v.019 BETA Released

A new beta of the TELEX code was released last evening. It is 100% compatible with the current Teletype firmware and fixes the TXo offset bug that @Pampalini discovered a few weeks ago.

You might also notice that the beta also contains some expanded functions for calibration (suggested by @jnoble) and gates for the envelopes. These features require an update to the Teletype firmware. That update isn’t available yet.

My Teletype changes were merged into @scanner_darkly’s branch last week and will be available in his next Grid Operators Teletype Firmware Beta. That is a week or so away. (We did this to keep the number of independent Teletype firmware versions to a minimum and to ensure that the features got into the pipeline after the nearly-final 2.2 release goes live.)

Yes, this is a total tease. But, my brain is still close to the material, so I figured I better share this now. Sorry for the mental cruelty.

Download Beta TELEX Software

Release Notes


  • Revised address identification code
  • Added calibration code for the CV outputs
  • Fixed offset bug for slew times of 0
  • Added new envelope mode for on/off that gate the attack and decay


  • Revised address identification code
  • Fixed range bug that kept CV/PARAM from reaching the max value

Please let me know if you experience any problems with it.

Coming in the next Grid Operators Teletype Firmware BETA

Again - this isn’t released just yet. Should be here soon. :slight_smile:

New TELEX Operators

Locks the current offset (CV.OFF) as a calibration offset and saves it to persist between power cycles for output x. (Detailed description of the process is at the bottom of the post.)

Clears the calibration offset for output x.

TO.ENV x y
This parameter essentially allows output x to act as a gate between the 0 and 1 state. Changing this value from 0 to 1 causes the envelope to trigger the attack phase and hold at the peak CV value; changing this value from 1 to 0 causes the decay stage of the envelope to be triggered.

New Pattern Operators

find the first minimum value in the pattern between the START and END for the working pattern and return its index

find the first minimum value in the pattern between the START and END for pattern x and return its index

find the first maximum value in the pattern between the START and END for the working pattern and return its index

find the first maximum value in the pattern between the START and END for pattern x and return its index

ER-301 Operators

SC.TR x y
Set trigger output for the ER-301 virtual output x to y (0-1)

Set polarity of trigger for the ER-301 virtual output x to y (0-1)

Set the pulse time for the ER-301 virtual trigger x to y in ms

Flip the state for the ER-301 virtual trigger output x

Pulse the ER-301 virtual trigger output x

SC.CV x y
CV target value for the ER-301 virtual output x to value y

CV offset added to the ER-301 virtual output x

Set CV value for the ER-301 virtual output x

Set the CV slew time for the ER-301 virtual output x in ms

16n Operators

reads the value of the FADER slider x; default return range is from 0 to 16383

TXo Calibration Helper

To calibrate your TXo outputs, follow these steps. Before you start, let your expander warm up for a few minutes. It won’t take long - but you want to make sure that it is calibrated at a more representative temperature.

Then, first adjust your offset (CV.OFF) until the output is at zero volts (0). For example:

CV.OFF 1 8

Once that output measures at zero volts, you want to lock it in as the calibration by calling the following operator:


You will find that the offset is now zero, but the output is at the value that you targeted during your prior adjustment. To reset to normal (and forget this calibration offset), use the TO.CV.RESET command.


Teletype 3.0

Amazing work, thanks so much!

1 Like


P.MIN is a very welcome addition. Previously I had to sacrifice an entire script to do get an argmin.
How does it handle a tie? does it return the index of the first occurrence or the last?



First. :slight_smile:

I went through the same. :slight_smile: :slight_smile:

1 Like


Not sure if this belongs here or in the Teletype 2.2 thread … I’m running the latest beta:

Executing TI.PRM x when x is greater than the highest param input (in my case, greater than 12) locks up the Teletype.



Calibrating my TXi and Parameter went fine. On the TI.IN.CALIB is it a matter of preference to set our TXi to -10V thru 10V or 0V to +10V, or is it your recommendation to set it to the full range?

What is the factory default? Edit: Just read that there are no defaults set.



I’m getting “Unknown Word” with: TO.CV.CALIB 1