TELEX Command Reference
This document outlines the commands for the open source Teletype Expanders TELEXo and TELEXi. You can also use this [Printable Command Reference](extras/TELEX Command Reference.pdf).
Changelog
The document's version history - for those of you that follow along. ;)
Revision v.13y - 18 February 2017
- added TXo commands for setting repeat counter for TR.M events
Revision v.13x - 18 February 2017
- added TXi commands for mapping inputs and param knobs
- added TXo commands for setting cycle length and trigger length
- added TXo commands for setting repeat counter for TR.M events
Revision v.13w - 7 February 2017
- added scanner_darkly's awesome morphing waveform support for WAVE
- added scanner_darkly's super useful oscillator phase offset
Revision v.13p - 14 January 2017
- added the extended commands for TO.TR; four independent metronomes and pulse dividers
Revision v.13c - 7 January 2017
- changed the extended commands for TIME and SLEW to use a period (.) to delimit the seconds and minutes extensions. For example: TO.TR.TIME.S
- reduced the size of the CALLIBRATE to CALIB command for the TXo
Revision v.13b - 16 December 2016
- first version of the command reference document
Notes
- Basic Commands represent commands that have 1 to 1 equivalents in the Teletype command set
- Extended Commands represent commands that are new to the expanders but have close equivalents in the Teletype command set
- Experimental Commands are commands that are new functionality provided by the expanders; they push the expanders to the edge of performance and should be considered "dangerously fun"
- n represents the number of outputs or inputs that you have added to your Teletype (4 of each type for each expander)
- x represents the expander unit as opposed to an output (1 for each expander)
- α represents the value that you are supplying to an operator that takes a parameter
- α values for control voltages are bipolar on the TELEXo - they accept values between -16384 to 16383
TELEXo (TXo)
TXo Trigger Output (TR) Basic Commands
| Command | Description |
|---|---|
| TO.TR 1-n α | Set TR value to α (0/1) |
| TO.TR.TOG 1-n | Toggle TR |
| TO.TR.PULSE 1-n | Pulse TR using TO.TR.TIME/S/M as an interval |
| TO.TR.TIME 1-n α | time for TR.PULSE; α in milliseconds |
| TO.TR.POL 1-n α | polarity for TO.TR.PULSE set to α (0-1) |
TXo Trigger Output (TR) Extended Commands
| Command | Description |
|---|---|
| TO.TR.TIME.S 1-n α | time for TR.PULSE; α in seconds |
| TO.TR.TIME.M 1-n α | time for TR.PULSE; α in minutes |
TXo Trigger Output (TR) Experimental Commands - Divider + Metronomes
| Command | Description |
|---|---|
| TO.TR.PULSE.DIV 1-n α | pulse divider for TR output; α in # of pulses |
| TO.TR.M 1-n α | time for TR.M; α in milliseconds |
| TO.TR.M.S 1-n α | time for TR.M; α in seconds |
| TO.TR.M.M 1-n α | time for TR.M; α in minutes |
| TO.TR.M.BPM 1-n α | time for TR.M; α in Beats Per Minute |
| TO.TR.M.ACT 1-n α | activates the metronome for the TR output; α (0=off; 1=on) |
| TO.TR.M.COUNT 1-n α | sets the number of repeats before deactivating (0=infinity) |
| TO.TR.M.SYNC 1-n | synchronizes the metronome on the device # |
| TO.TR.WIDTH 1-n α | time for TR.PULSE; α percentage of TR.M |
TXo Control Voltage (CV) Basic Commands
| Command | Description |
|---|---|
| TO.CV 1-n α | CV target α (bipolar) |
| TO.CV.SLEW 1-n α | CV slew time; α in milliseconds |
| TO.CV.SET 1-n α | set CV to α (bipolar); ignoring SLEW |
| TO.CV.OFF 1-n α | CV offset; α added at final stage |
TXo Control Voltage (CV) Extended Commands
| Command | Description |
|---|---|
| TO.CV.SLEW.S 1-n α | CV slew time; α in seconds |
| TO.CV.SLEW.M 1-n α | CV slew time; α in minutes |
| TO.CV.QT 1-n α | CV target α; quantized to output's current CV.SCALE |
| TO.CV.QT.SET 1-n α | set CV to α; quantized to output's current CV.SCALE; ignoring SLEW |
| TO.CV.N 1-n α | CV target note # α in output's current CV.SCALE |
| TO.CV.N.SET 1-n α | set CV to note # α in output's current CV.SCALE; ignoring SLEW |
| TO.CV.SCALE 1-n α | select scale # α for individual CV output; see quantization scale reference below |
TXo Control Voltage (CV) Experimental Commands - Oscillator Functions
Note: to start oscillation, set the frequency for the CV output to a value greater than zero. To return it to basic functionality, set it back to zero (0). When in oscillation mode, the current CV value sets the peak for the waveform - think of it like a volume or range control.
| Command | Description |
|---|---|
| TO.OSC 1-n α | targets oscillation to α (1v/oct translated) |
| TO.OSC.SET 1-n α | sets oscillation to α; ignores OSC.SLEW |
| TO.OSC.QT 1-n α | targets oscillation to α (1v/oct translated); quantized to current OSC.SCALE |
| TO.OSC.QT.SET 1-n α | sets oscillation to α in current OSC.SCALE; ignores OSC.SLEW |
| TO.OSC.N 1-n α | targets oscillation to note # α; quantized to current OSC.SCALE |
| TO.OSC.N.SET 1-n α | sets oscillation to note # α in current OSC.SCALE; ignores OSC.SLEW |
| TO.OSC.FQ 1-n α | targets oscillation to frequency α in Hz |
| TO.OSC.FQ.SET 1-n α | sets oscillation to frequency α in Hz; ignores OSC.SLEW |
| TO.OSC.LFO 1-n α | targets oscillation to frequency α in mHz (millihertz: 10^-3 Hz) |
| TO.OSC.LFO.SET 1-n α | sets oscillation to frequency α in mHz (millihertz: 10^-3 Hz); ignores OSC.SLEW |
| TO.OSC.WAVE 1-n α | set the waveform to sine (0), triangle (1000), saw (2000), pulse (3000), or noise (4000). Range is from 0 to 4999. Oscillator shape is blended in between the "pure" values. |
| TO.OSC.SYNC 1-n | resets the phase of the oscillator to zero |
| TO.OSC.PHASE 1-n α | sets the phase offset of the oscillator to α (0 to 16384) - range of one cycle; |
| TO.OSC.WIDTH 1-n α | sets the width of the pulse wave (3) to α (0 to 100) |
| TO.OSC.RECT 1-n α | rectifies the polarity of the oscillator to α (-2 to 2); see rectification reference |
| TO.OSC.SLEW 1-n α | sets the slew time for the oscillator (portamento) to α (milliseconds) |
| TO.OSC.SLEW.S 1-n α | sets the slew time for the oscillator (portamento) to α (seconds) |
| TO.OSC.SLEW.M 1-n α | sets the slew time for the oscillator (portamento) to α (minutes) |
| TO.OSC.SCALE 1-n α | sets the quantization scale for the oscillator to scale # α (listed below) |
| TO.OSC.CYC 1-n α | targets the cycle length for the oscillator to α (milliseconds) |
| TO.OSC.CYC.S 1-n α | targets the cycle length for the oscillator to α (seconds) |
| TO.OSC.CYC.M 1-n α | targets the cycle length for the oscillator to α (minutes) |
| TO.OSC.CYC.SET 1-n α | sets the cycle length for the oscillator to α (milliseconds) |
| TO.OSC.CYC.S.SET 1-n α | sets the cycle length for the oscillator to α (seconds) |
| TO.OSC.CYC.M.SET 1-n α | sets the cycle length for the oscillator to α (minutes) |
TXo Control Voltage (CV) Experimental Commands - Envelope Generator
Note: when you activate the envelope (using ENV.ACT) your CV output will drop to zero. You need to trigger the envelope (ENV.TRIG) in order to get it to play. This will interact with your currently set CV value for the output making that the (bipolar capable) peak for the envelope. Also, this will interact with the oscillator as well and become a virtual VCA for its output.
| Command | Description |
|---|---|
| TO.ENV.ACT 1-n α | activates the envelope generator for the CV output; α (0 = off; 1 = on) |
| TO.ENV.ATT 1-n α | attack time for the envelope; α in milliseconds |
| TO.ENV.ATT.S 1-n α | attack time for the envelope; α in seconds |
| TO.ENV.ATT.M 1-n α | attack time for the envelope; α in minutes |
| TO.ENV.DEC 1-n α | decay time for the envelope; α in milliseconds |
| TO.ENV.DEC.S 1-n α | decay time for the envelope; α in seconds |
| TO.ENV.DEC.M 1-n α | decay time for the envelope; α in minutes |
| TO.ENV.TRIG 1-n | triggers the envelope to play |
TXo Global Commands
This command affects both trigger (TR) and control voltage (CV) outputs.
| Command | Description |
|---|---|
| TO.KILL | cancels TR pulses and CV slews |
Rectification Reference
There are several rectification modes available in the oscillator. They are listed below:
| Mode | Behavior |
|---|---|
| -2 | inverts positive values making them negative |
| -1 | omits all positive values |
| 0 | no rectification; wave is unaffected bipolar |
| 1 | omits all negative values |
| 2 | inverts negative values making them positive |
TELEXi (TXi)
TXi Basic Commands
| Command | Description |
|---|---|
| TI.IN 1-n | reads the value of the CV input jack (-16384 to 16383) |
| TI.PARAM 1-n | reads the value of the PARAM knob (0 to 16383) |
TXi Extended Commands
| Command | Description |
|---|---|
| TI.IN.QT 1-n | return the quantized value for the IN jack; uses input's IN.SCALE |
| TI.IN.N 1-n | return the quantized note number for the IN jack; uses the input's IN.SCALE |
| TI.IN.SCALE 1-n α | sets the current scale for the input to α; see scale reference below |
| TI.IN.MAP 1-n α β | maps the IN values to the range α - β |
| TI.PARAM.QT 1-n | return the quantized value for the PARAM knob; uses knob's PARAM.SCALE |
| TI.PARAM.N 1-n | return the quantized note number for the PARAM knob; uses knob's PARAM.SCALE |
| TI.PARAM.SCALE 1-n α | sets the current scale for the param knob to α; see scale reference below |
| TI.PARAM.MAP 1-n α β | maps the PARAM values to the range α - β |
TXi Experimental Commands
The calibration settings allow you to scale your input values for the IN jacks and the PARAM knobs to compensate for component tolerances. The calibration procedures are listed in the Calibration Details section.
NOTE: Only the TXi currently has calibration capabilities; these features have not been implemented for the TXo for performance reasons - though, if they are desired, it would be possible to port them over. Go Open Source!
| Command | Description |
|---|---|
| TI.IN.CALIB 1-n α | calibrates the scaling for the IN jack; see calibration details below |
| TI.PARAM.CALIB 1-n α | calibrates the scaling for the PARAM knob; see calibration details below |
| TI.STORE 1-x | stores the calibration data for the expander to its flash memory |
| TI.RESET 1-x | resets the calibration data to factory defaults |
TXi Calibration Details
Calibration for the input module works as follows:
IN Calibration
- Send a -10V signal to the input Z
- Send the command 'TI.IN.CALIBRATE Z -1'
- Send a 0V signal to the input Z
- Send the command 'TI.IN.CALIBRATE Z 0'
- Send a 10V signal to the input Z
- Send the command 'TI.IN.CALIBRATE Z 1'
PARAM Calibration
- Turn the PARAM knob Z all the way to the left
- Send the command 'TI.PARAM.CALIBRATE Z 0'
- Turn the PARAM knob Z all the way to the right
- Send the command 'TI.PARAM.CALIBRATE Z 1'
Save and Reset
-
You can save the calibration data for a device by sending 'TI.STORE N'. N is the number of the device - not the number of an input.
-
You can reset the calibration data for a device by sending 'TI.RESET N'. N is the number of the device - not the number of an input.
Quantization Scale Reference
| Scale Number | Scale Name |
|---|---|
| 0 | Standard 12 Tone Equal Temperament [DEFAULT] |
| 1 | 12-tone Pythagorean scale |
| 2 | Vallotti & Young scale (Vallotti version) also known as Tartini-Vallotti (1754) |
| 3 | Andreas Werckmeister's temperament III (the most famous one, 1681) |
| 4 | Wendy Carlos' Alpha scale with perfect fifth divided in nine |
| 5 | Wendy Carlos' Beta scale with perfect fifth divided by eleven |
| 6 | Wendy Carlos' Gamma scale with third divided by eleven or fifth by twenty |
| 7 | Carlos Harmonic & Ben Johnston's scale of 'Blues' from Suite f.micr.piano (1977) & David Beardsley's scale of 'Science Friction' |
| 8 | Carlos Super Just |
| 9 | Kurzweil "Empirical Arabic" |
| 10 | Kurzweil "Just with natural b7th", is Sauveur Just with 7/4 |
| 11 | Kurzweil "Empirical Bali/Java Harmonic Pelog" |
| 12 | Kurzweil "Empirical Bali/Java Slendro, Siam 7" |
| 13 | Kurzweil "Empirical Tibetian Ceremonial" |
| 14 | Harry Partch's 43-tone pure scale |
| 15 | Partch's Indian Chromatic, Exposition of Monophony, 1933. |
| 16 | Partch Greek scales from "Two Studies on Ancient Greek Scales" on black/white |