This page is read from MIDI Instrument Definitions, a Python library used in the author's other projects, in which every number is traced to a document its maker published. Its source is on GitHub.
Ensoniq ESQ-1 MIDI implementation
The MIDI implementation of the Ensoniq ESQ-1: what it answers to, and the 8 controls it offers, on firmware 3.0.
At a glance
- Firmware
- This page describes firmware 3.0.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Track, 8 of them: each on a MIDI channel of its own, taking notes and controls.
- Voices
- 8, shared by the parts that play notes.
- Note range
- 21 to 108: A0 to C8, counting middle C as C4.
- Velocity
- Sent and received. Release velocity is received.
- Aftertouch
- Channel pressure and polyphonic, each answered. It sends none.
- Pitch bend
- How far it bends is not recorded, and the range can be changed.
- Program change
- Received and sent, with 120 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 8 controls, in the tables below.
- NRPN
- Supported.
- System exclusive
- Supported.
Controls
In the order the definition gives them, by part and group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("ensoniq/esq_1") has loaded them.
On the base MIDI channel
| Control | CC | Values |
|---|---|---|
Mod Wheelmod_wheel |
1 | 0-127 |
Breathbreath |
2 | 0-127 |
Foot Pedalfoot_pedal |
4 | 0-127 |
Volumevolume |
7 | 0-127 |
Track
| Control | CC | Values |
|---|---|---|
Mod Wheeltrack_mod_wheel |
1 | 0-127 |
Breathtrack_breath |
2 | 0-127 |
Foot Pedaltrack_foot_pedal |
4 | 0-127 |
Volumetrack_volume |
7 | 0-127 |
Where these facts come from
Source documents
- ESQ 1 Digital Wave Synthesizer and Sequencer Musician's Manual, Version 2.0, its user manual, read on 9 October 2026.
- ESQ 1 Digital Wave Synthesizer and Sequencer Musician's Manual, Version 2.0, with the ESQ-1 Software Version 3.0 Update, P/N 9311 0011 01, its user manual, read on 9 October 2026.
How they were read
TWO THIRD-PARTY SCANS OF ENSONIQ'S OWN MANUAL, BECAUSE NO ONE SERVES ENSONIQ'S. Ensoniq was sold in 1998 and no rights-holder keeps an archive. The manual cited is buchty.net's scan of Ensoniq's Musician's Manual for the ESQ 1, Version 2.0: 217 pages of 1-bit image, no text, the copy Wikipedia cites. The second copy is the Internet Archive's, an independent scan whose PDF was made in 2023: 231 pages of colour image with a text layer, the same edition with two more pages before the body, Ensoniq's eight-page update for software 3.0 bound in at the back, after the back cover, and last a sheet on reinitialising the instrument. A third copy on the Internet Archive, from 2016, is buchty.net's scan repackaged, its images the same size page for page, so it is not a second witness. Both scans were read, and compared on every page this definition cites.
ENSONIQ IS THE THIRTY-FOURTH MAKER HERE AND THIS IS ITS FIRST INSTRUMENT, so nothing in this account leans on a habit of the maker's.
CITED BY SCAN PAGE. The body prints folios ten behind its scan pages in buchty.net's copy and twelve in the Internet Archive's - p. 20 is scan page 30 in one and 32 in the other - and the appendices print A-2 to A-17 and then no number at all. So both sources say page_offset: 0, and every locator here is a scan page.
THE CHART. MIDI Implementation Chart, Version: 2.0, Date:11/12/86 (manual p. 213), read by eye. Its Control Change cell lists, in both columns, 1 Mod Wheel, 2 Breath, 4 Foot Pedal, 6 Data Entry, 7 Volume, 96 Inc. Arrow, 97 Dec. Arrow, 98 Param. Select Low and 99 Param. Select High, under 1 - 95 and beside the remark Programmable. 1, 2, 4 and 7 are carried. The other five are not: 98 and 99 select a parameter, and 6, 96 and 97, named for the data entry slider and the two arrow buttons, are read as how its value is set, though no page says so.
1 - 95 AND Programmable ARE READ AS ONE CONTROLLER THE PLAYER CHOOSES. The MIDI page's XCTRL picks any number from 1 to 95 as an external modulation source - "the number you select here to make a particular Controller a Modulator in any of your Programs." (manual p. 31) - and lists the numbers "agreed upon" in 1986, from 1 Modulation Wheel to 95 Phaser (manual p. 32). That is a global setting rather than a control with a number of its own, so it is set out here and not below. The chart does not name XCTRL, and XCTRL only receives - on the MIDI page "you select the number of the External Controller that will be received by the ESQ 1." (manual p. 45) - so the 1 - 95 in the chart's transmitted column is not explained.
BREATH, 2, REACHES A SOUND ONLY THROUGH XCTRL. Breath is not among "The 15 Modulation Sources" (manual p. 43); instead "An External Controller such as a Breath Controller, Data Entry Slider , MOD Wheel, etc., which is received via MIDI from another synthesizer, can be assigned as a Modulator within your ESQ 1 Programs." (manual p. 45). So 2 acts while XCTRL is set to 2 and a program uses XCTRL as a modulator. It is carried because the chart lists it both ways, and the two breath controls say so.
THE FOOT PEDAL SENDS 4 OR 7, BY A SETTING SOFTWARE 3.0 ADDED. With PEDAL=MOD "moving the Pedal will send MIDI Foot Pedal (controller #4) messages out MIDI" (second_copy p. 224), and with PEDAL=VOL "moving the Pedal will send MIDI Volume (controller #7) messages out MIDI" (second_copy p. 224); the setting "has no effect whatever on incoming MIDI Foot Pedal (controller #4) or Volume (controller #7) information." (second_copy p. 224). Both numbers are carried as the chart prints them.
ONE track PART, BECAUSE IN MULTI MODE EACH OF THE SEQUENCER'S EIGHT TRACKS HAS A CHANNEL. The Straight Synth - the keyboard with no track selected - always sends on the Base Channel (manual p. 31), and receives on it in POLY and MULTI (manual p. 33). In MULTI mode "the 'Straight Synth' section and each of the Sequencer's eight Tracks can send and receive MIDI information independently on a different MIDI Channel." (manual p. 33), and "The ESQ 1 must be in MULTI Mode for each Track to receive MIDI information on its selected Channel." (manual p. 125). So the eight tracks are one part, channel: assigned, and the four controllers are written twice: with no part, for the Straight Synth on the base channel, and with part: track. Each track sends and answers to MIDI Volume: "the Sequencer Tracks send it to and receive it from those who do." (manual p. 124). That a track answers to the other three is read from "receive incoming MIDI information" (manual p. 125) and from MONO mode, where one channel carries controllers to every track.
THE OTHER MIDI MODES ARE NOT PARTS. In OMNI a selected track hears every channel, and in POLY only the base channel (manual p. 125). In MONO the Straight Synth hears nothing, track 1 takes the base channel and each next track the channel above it, up to a base of nine (manual p. 33), and "The Base Channel Minus One becomes a global MIDI Channel for Controllers" (manual p. 34). Channels derived that way would be a second shape of the same eight tracks, which one part cannot be; MULTI is the mode the manual calls Ensoniq's own design for the sequencer.
EIGHT VOICES, SHARED. The ESQ-1 is "an eight voice, poly-timbral Digital Synthesizer" (manual p. 11) and its sequencer plays "eight separate polyphonic Tracks internally, each with its own sound" (manual p. 11), from one pool of eight: the Straight Synth and the eight tracks cannot all play at once, and "the ESQ 1's Dynamic Voice Assignment means that each has eight voices available at any time, if someone else is not using them." (manual p. 101).
THE PARAMETER SELECTS ARE READ AS AN NRPN SCHEME. "The above numbers are the numbers that are sent in the Parameter Select controllers (MIDI Controller #'s 98 and 99)." (manual p. 211), under a list numbering 148 parameters, 0 to 147. The 3.0 update fixes how "incoming parameter selects" (second_copy p. 228) chose parameters on the Modes page, and says the numbers listed on A-16 (manual p. 210) "are those which are both sent and received by the ESQ-1." (second_copy p. 228). That is an NRPN in all but its name, so nrpn: supported, though no page says how a number above 127 is split between the two. The 148 are not carried: no page says which controller carries a parameter's value or over what range, and the update corrects eight entries in the list besides, seven numbers and one name (second_copy p. 229). Parameter changes are sent from the ENABLE setting KEYS + CONTROLLERS on, and received only at KEYS + CT + PC + SS + SX, which "enables the ESQ 1 to receive System Exclusive messages, such as Parameter Changes, Program Dumps, Sequencer Data, etc." (manual p. 34). That page calls them system exclusive, and this reading departs from it: the appendix of MIDI implementation specifications sets out dumps, requests, keypad events and the handling of song selects, and no message for a parameter change (manual pp. 197-206), while the chart lists the selects as controllers, so they are read as controllers that the last ENABLE setting admits. The list's own note calls 132 to 143 the system parameters, where the list runs on to 147 (manual p. 211).
THE REST OF THE CHART: channels 1 to 16 both ways, channel 1 by default; notes 21 to 108 both ways; note-on and note-off velocity both ways; key and channel pressure both ways, beside the remark Transmitted only if recorded; pitch bend both ways; program change 0 to 119 both ways; system exclusive, song position and song select both ways; clock and Start, Stop, Cont both ways; All Notes Off received and not sent, beside Only Mode Change; local control, active sensing, reset and tune request neither way (manual p. 213). Pressure reaches it from outside - "The ESQ 1, and its Sequencer, can receive Pressure via MIDI from those keyboards which send it." (manual p. 32) - and PRESS chooses off, channel or key pressure; no page says its own keyboard senses any, which the chart's remark fits. So aftertouch_transmits is false: any pressure that goes out came from another instrument. A Track plays back what it recorded, and the overflow mode of 3.0, below, echoes inbound controllers, a word the manual uses of pressure too (manual p. 34). Passing it on is not the instrument making pressure of its own. What is sent and received is a setting, the MIDI page's ENABLE, from KEY EVENTS ONLY to KEYS + CT + PC + SS + SX (manual p. 34).
NOTES 21 TO 108, FROM A KEYBOARD OF 36 TO 96. The chart's 21 - 108 is wider than the 61 keys, which the diagram on p. 80 numbers 36 to 96. The split key takes the same 21 to 108, and a split outside the keyboard "will only be effective if the ESQ 1 is played via MIDI from an instrument with more than a 61-note keyboard." (manual p. 80) - so notes beyond the keys reach it by MIDI. The text above that diagram says "the Low C on the ESQ 1 Keyboard is MIDI Key # 37" (manual p. 80), where the diagram numbers that key 36 and the black key above it 37; both give middle C as 60 and the high C as 96, which five octaves up from 36 fits, so the low C is read as 36. The disagreement reaches no field.
120 PROGRAMS: "Forty Programs, or 'patches', are stored in the Internal Memory, with another eighty available on an external, plug-in Cartridge" (manual p. 11), program change 0 to 119, the internal forty first (manual p. 196). From 3.0 a track can send all 128 program numbers to another instrument (second_copy p. 225).
WHAT SOFTWARE 3.0 ADDS THAT NO FIELD HOLDS: a KBD setting for the Straight Synth, whose MIDI state is "comparable to 'Local Off' on some Instruments." (second_copy p. 223); an overflow mode that "will echo all inbound MIDI Program Changes and controllers at its MIDI Out jack." (second_copy p. 225); and a device inquiry reply, which the update says pertains to release 2.1 and higher (second_copy p. 229).
NOT RECORDED: mode, which the chart gives as Memorized and the MIDI page as one of four modes, none named as the factory setting, and which incoming mode messages change - the chart recognises OMNI On/Off, MONO On and OMNI Off > MULTI (manual p. 213); the sustain pedal's controller number, which no page prints though the manual warns about holding it while changing a track's channel (manual p. 125); and the bend range's default - it is global, "Range: 0 To 12." (manual p. 29), in semitones, so programmable is recorded and semitones is not. The Master page's display shows a range of 02 only as an example (manual p. 28), and the page on fitting the sequencer expander cartridge says reinitialising resets bend range, among others, to "their Default values" (manual p. 105) without giving them.