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.
ASM Leviasynth MIDI implementation
The MIDI implementation of the ASM Leviasynth: what it answers to, and the 109 controls it offers, on firmware 1.2.0.
At a glance
- Firmware
- This page describes firmware 1.2.0.
- MIDI channel
- 1 to 16.
- MPE
- Sent and received: its voices are spread across its MIDI channels, a note to each.
- Parts
- Lower: on a MIDI channel of its own, taking notes, controls, and program changes, with 8 voices.
Upper: on a MIDI channel of its own, taking notes, controls, and program changes, with 8 voices.
- Voices
- Each part's own, under Parts.
- Note range
- Not recorded.
- Velocity
- Sent and received.
- Aftertouch
- Answered, of a kind its documents do not say. It sends aftertouch too.
- Pitch bend
- 24 semitones, and the range can be changed.
- Program change
- Received and sent, with 1024 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 109 controls, in the tables below.
- NRPN
- Supported.
- System exclusive
- Supported.
Controls
In the order the definition gives them, by group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("asm/leviasynth") has loaded them.
Analog filter
Delay
Digital filter
ENV 1
ENV 2
ENV 3
ENV 4
ENV5
Global
LFO 1
LFO 2
LFO 3
LFO 4
LFO 5
Macro
Multi edit
OSC 1
OSC 2
OSC 3
OSC 4
OSC 5
OSC 6
OSC 7
OSC 8
Post-FX
Pre-FX
Reverb
VCA
Voice
Where these facts come from
Source documents
- Leviasynth Desktop Owner's Manual, 1.2.1, its user manual, read on 5 October 2026 (the file read).
- Leviasynth Keyboard Owner's Manual, 1.2.1, its user manual, read on 5 October 2026 (the file read).
- Leviasynth Algorithms, reference, read on 5 October 2026 (the file read).
- Downloads | Ashun Sound Machines, its download page, read on 5 October 2026.
How they were read
Leviasynth Desktop Owner's Manual 1.2.1 (174pp), which is the source of every number here: the MIDI settings at pp. 150-153, the MIDI CC Charts at pp. 169-172, the voice modes at p. 90, the pitch bend range at p. 92, the Multi mode comparison at p. 129, the pad velocity and aftertouch settings at p. 156, the feature list at pp. 11-12 and the specifications at p. 173. The Keyboard manual is cited twice and for nothing else; the Algorithms document and the downloads page are recorded below for what they do and do not hold.
THE CHART IS PRINTED THREE TIMES AND THAT IS WHAT VERIFIED IT. Pages 169-170 carry it under "Sorted bY cc number" (p. 169) and pages 171-172 the same rows under "Sorted bY module" (p. 171), and the Keyboard manual prints it a third time at its own pp. 168-171. All three agree on all 128 rows, name for name and number for number. A maker who prints a chart twice has handed a reader a free verification, which is the habit asm/hydrasynth_explorer recorded for this maker and which was therefore looked for deliberately. It is worth saying that the Hydrasynth's two printings named nineteen parameters two different ways and these three name none - so the habit is not reliable in either direction, and finding the second printing is not the same as being able to trust the first.
THE SECOND READING CONFIRMED ALL 110 NAMED ROWS, read by a different extractor off the page geometry and then checked by eye against the pages rendered at up to 250 dots to the inch. The two readings differ in nothing but the second reader's own annotations on the ENV5 spelling.
THE CHART IS COMPLETE AND THAT IS ITS OWN CHECK. Every controller number 0 to 127 appears exactly once: 18 marked Reserved and 110 named. The 18 include the whole channel mode block except one - 120, 121, 122, 124, 125, 126 and 127 are all Reserved, so this maker has not mistaken that block for free space, and the exception is 123, correctly named All notes off. This format refuses it as a control because a channel mode message means the same thing on every instrument that has it, which leaves 109 of the chart's 110 named rows below. The other eleven reserved numbers are the specification's own: 6 and 38 (data entry), 98 to 101 (the NRPN and RPN selects), and 115 to 119.
THE SIX CONTROLS IN THE Global GROUP ARE A LIST THE MANUAL PROMISES AND NEVER LABELS. Page 153's footnote reads "The Parameter Tx / Rx settings do not affect the transmission or reception of System MIDI controls such as Mod wheel (CC #1), Volume (CC #7), or Sustain (CC #64). For a full list of System MIDI controls, see the MIDI CC Charts" (p. 153) - and the chart nowhere uses the phrase System MIDI controls. What it has is a module called Global, holding exactly those three plus bank select either side and the expression pedal, and a reader has to work out that the promised list is that module. Said here because the footnote matters: those six are the controls the Parameter TX and Parameter RX settings cannot switch off, so they are the only ones in this file that work whatever those settings say.
THREE OF THOSE SIX HAVE A TRANSMIT SWITCH AND ONLY ONE HAS A RECEIVE SWITCH. Aftertouch TX, Sustain pedal TX and Expression pedal TX appear on MIDI Parameters page 2 with no receive counterpart, while the modulation wheel has both, and the footnote says what travels: "When enabled, the modulation wheel sends and / or receives MIDI CC #1" (p. 152). The pedal numbers are stated outright too - "The sustain pedal always sends MIDI CC #64" (p. 96), and "An expression pedal sends CC #11 by default, not CC #7" (p. 152). No direction is recorded against any control below, because a switch that stops an instrument transmitting its own pedal says nothing about whether the same number reaches it from outside, and no page here does.
EVERYTHING ELSE BELOW CAN BE SWITCHED OFF, OR MOVED TO NRPN. "Parameter TX Off, NRPN, CC" (p. 153) and "Parameter RX Off, NRPN, CC" (p. 153) choose the format a parameter edit travels in, in each direction, and the manual explains that this "allows for more user-friendly automation on DAWs that do not support the MIDI NRPN standard" (p. 153). So the 103 controls outside the Global group reach the instrument only while Parameter RX is set to CC, and the same parameters travel as non-registered parameter numbers on the other setting. No NRPN number is published anywhere. The manual says "The NRPN implementation data for Leviasynth is available at AshunSoundMachines.com" (p. 153); the downloads page lists two manuals, an algorithms document, firmware packs and a patch librarian, and no such file. So nrpn is supported with no numbers, which is where asm/hydrasynth_explorer ended for the same reason.
AN INTERNAL DISAGREEMENT ABOUT WHERE A PROGRAM CHANGE IS RECEIVED, AND HOW IT IS READ HERE. Two bullets sit consecutively on one page: "MIDI Bank select / Program change messages are always sent and received on the TX / RX Global channels" (p. 151), then "Leviasynth responds to Bank / Program changes on the RX Global, RX Lower, and RX Upper channels" (p. 151). Page 153 repeats the first. Page 150 is the only place the question is treated at length, and it separates the two directions: "MIDI Bank select / Program change messages are sent and received on the TX Global and RX Global channels. They are not sent by the Lower / Upper channels when a Multi is selected" (p. 150), followed by "Leviasynth responds to incoming Bank / Program changes on the RX Global, RX Lower, and RX Upper channels, whether you're in Single mode or Multi mode" (p. 150). Reading page 150 back onto the others makes all four consistent - sent on Global alone, received on all three - because the sentence that qualifies the Lower and Upper channels qualifies them for sending. So both parts below carry program_change in what they receive, and the disagreement is written down here rather than hidden behind the choice it forced.
THE BANK SELECT VALUES ARE PUBLISHED PER BANK, WHICH IS WHY BOTH HALVES ARE CONTROLS HERE. A table on p. 151 gives the MSB as 00 for every one of the 23 banks and the LSB as 0-7 for Single banks A-H, 8-12 for the five Multis' Upper patches, 13-17 for their Lower patches and 18-22 for the Multis themselves, each with "Each set of Bank select messages must be followed by a program change message in order to select the desired bank and patch" (p. 151). Its Decimal column counts from 1 and the MIDI CC column from 0, so the reader who takes the Decimal figure sends everybody one bank too high; the values below are the MIDI CC column's. Note that asm/hydrasynth_explorer drops bank select from its controls on the ground that it is how a bank is chosen rather than a parameter, and most of this corpus keeps it. This file keeps it - the values are published per bank and a panel can offer them - and the split with this maker's other definition is raised rather than left standing.
WHAT THE KEYBOARD MANUAL HAS THAT THE DESKTOP'S DOES NOT, which is the pair's one substantive difference. MIDI Parameters: Page 2 in the Desktop manual numbers its rows 1, 3, 4, 5, 6, 7, 8 - there is no row 2. The Keyboard's row 2 is "Ribbon pitch bend TX Off, On On = ribbon sends pitch bend data" (keyboard p. 150), the Desktop has no ribbon, and the gap in the numbering is the only sign. But the Desktop manual's MPE paragraph names it anyway: "Page 2: Aftertouch TX, Ribbon PB TX, Transport Msg, and Overflow = MPE Lock" (p. 151). So that manual describes a control its own table does not contain, and anybody reading the MPE note alone would record a ribbon parameter for an instrument that has none. The difference the other way is the input: the Desktop has 16 pads where the Keyboard has keys.
AND THE DESKTOP ANSWERS TO RIBBON DATA WITHOUT HAVING A RIBBON, which is the one place that shared prose turns out to be load-bearing rather than careless. The Modulation Sources table footnotes its ribbon row: "The desktop unit doesn't have a ribbon controller, but this mod source allows a Leviasynth keyboard, Hydrasynth, or Hydrasynth Deluxe to control these mod routes" (p. 127). So the ribbon is a received modulation source on both products and a physical control on one, and a reader who took the missing table row as the whole story would have the Desktop deaf to something it answers to.
THAT RIBBON ROW ALSO MEANS THE KEYBOARD EMITS NRPN BY A SECOND ROUTE, since switching it off makes the ribbon "sends NRPN data" (keyboard p. 150) rather than pitch bend. Nothing below enumerates what travels that way, because no document does.
AND THE KEYBOARD MANUAL BREAKS THAT TABLE ACROSS A PAGE WHERE THE DESKTOP'S DOES NOT. Its rows 1 to 6 are on p. 150 and rows 7 and 8 - Transport Msg and Overflow - on p. 151. A reader who takes the table from the page its heading is on gets six of its eight rows and no sign that two are missing. Recorded because both manuals were read and only one has the problem.
THE 16 VOICES DIVIDE 8 AND 8, AND THE MAKER SAYS SO IN THE PLACE IT MATTERS. The feature list gives "16 voices, with up to eight oscillators per voice" (p. 12), then "Single mode: One 16-voice patch" (p. 12) and "Multi mode: layer or split two independent 8-voice patches" (p. 12), and p. 129 restates it as "Single mode offers one 16-voice patch at a time. A Multi contains two 8-voice patches" (p. 129). The sentence that settles it is about a limit rather than a feature: "A Unison patch with a Density value of 9+ voices will be limited to 8 voices when used in Multi mode. This is the maximum number of voices available for each part" (p. 90). So each part has eight of its own and they are not drawn from a shared pool, which is why polyphony_shared is false and the eights are stated against the parts. A third page confirms the independence from the other side: with stereo oscillators on one part, "its polyphony is reduced from 8 voices to 4 stereo voices. The other part still has 8-voice polyphony" (p. 94). The 16 is therefore nowhere in the fields below, because this format states a figure each part can count on and 16 is not one - it is what Single mode gives the one patch there is.
THERE IS A 32 AS WELL, AND IT NEEDS A SECOND INSTRUMENT. "Overflow mode can link two units for up to 32-voice polyphony (Single mode only)" (p. 12), worked through on p. 152: "Now play 17 notes on Leviasynth: it plays the first 16 voices and the 17th comes from the slave" (p. 152). A fact about two instruments and not about this one.
AFTERTOUCH IS SENT IN TWO KINDS, AND WHAT IS RECEIVED IS STATED FOR MPE ALONE. The one statement of receiving is the MPE paragraph - "Leviasynth already supports polyphonic aftertouch, so MPE pressure is mapped automatically to Poly aftertouch" (p. 151), with "any patch that uses PolyAT as a mod source should respond automatically to pressure sent by an MPE controller" (p. 151). No page says what the instrument does with aftertouch that arrives outside MPE: a search of every page of both manuals for aftertouch or pressure beside receive, incoming, accept or respond finds that passage and no other about a message arriving. The sequencer's "Each note track can record pitch bend, mod wheel, and polyphonic aftertouch" (p. 12) says what a track can hold and not where it came from, and a bullet further down the same list, "Tracks can record incoming MIDI" (p. 12), names no kind of message. The page on the Global channels names some kinds and not this one, "to send and receive note data, controller data, MIDI Bank select / Program change messages, and more" (desktop p. 150), and its sentence that sending there "lets you play a Multi from an external keyboard as if you had played it on the Leviasynth" (desktop p. 150) names none. None of the four says that aftertouch arriving over MIDI is recorded or sounded. Sending is a setting with three positions, "Aftertouch TX Off, Mono, Poly" (p. 152), and the manual is explicit that both kinds exist on the panel whatever it is set to: "Setting this to Off still allows both forms of aftertouch to be used locally but stops them from being transmitted. Mono enables Channel aftertouch values to be sent (one value for all active voices); Poly allows polyphonic aftertouch values to be sent" (p. 152). So this instrument answers to aftertouch, of a kind no page states outside MPE, and sends either poly or channel, by a setting. voice.aftertouch holds received, as asm/hydrasynth_explorer does for the same sentence in its own manual, and aftertouch_transmits is true; which kind goes out is the setting's, and is here. Until 2026-10-12 both files held poly.
VELOCITY IS RECEIVED AND SENT, AND THE SENTENCE THAT ESTABLISHES IT IS WORD FOR WORD THIS MAKER'S OTHER MANUAL'S. "To disable velocity sensitivity for the pads, select a fixed value (Fix 60, Fix 80, etc.). This only affects local response and outgoing MIDI; incoming velocity response is unaffected" (desktop p. 156). The Hydrasynth Explorer's manual carries the same two sentences about its keybed, the first naming the keyboard where this one names the pads, as the Leviasynth Keyboard's manual does (keyboard p. 155). Shared prose is usually how a document comes to say something false - it is what put a ribbon in the Desktop manual two paragraphs above - and here it happens to be true of both instruments, which is the point: the reuse tells you nothing about the truth either way, so the pad page was read rather than assumed.
PITCH BEND IS SETTABLE TO 24 SEMITONES AND SAVED WITH THE PATCH, so the figure below is a maximum and not a factory setting: "This parameter lets incoming pitch bend messages cover up to a 4-octave range: 2 octaves up and 2 octaves down (+/- 24 semitones)" (p. 92), and "The setting is saved with the patch" (p. 92). The manual never states what a new patch starts at.
CLOCK AND TRANSPORT BOTH TRAVEL BOTH WAYS. "INT RUN: Selects Leviasynth as the master tempo clock. Sync signals are sent to MIDI, USB, and the CV Clock output" (p. 151) and "MIDI In: Slaves Leviasynth to incoming MIDI clock data" (p. 151), with a note worth repeating for anybody wiring this up alongside modular gear: "Leviasynth cannot be synced to an incoming CV clock signal" (p. 151) - it sends a clock voltage and will not take one. Transport is a single three-position setting, "Transport Msg Off, TX, RX Send or receive MIDI Start / Stop messages" (p. 152), and the manual is precise about which messages: "This setting enables the Leviasynth sequencer to send or respond to the MIDI System Real Time messages for Start and Stop" (p. 152). Start and Stop and not Continue, and no document mentions song position.
SYSTEM EXCLUSIVE IS A PORT, A DATA TYPE AND AN ACTION, AND NO FORMAT IS PUBLISHED. "SysEx Port MIDI OUT, USB Selects which port will send SysEx data" (p. 153), a data-type setting whose six USB choices run from one patch to all banks with or without sequences, and "Sends selected SysEx data via MIDI Out or USB" (p. 153). So sysex is true and there is no message layout here, because the manual publishes none and the maker's own librarian is the intended consumer.
THE CHART IS THE FACTORY MAP AND NOT THE LIMIT OF WHAT THIS INSTRUMENT SENDS, which has to be said or the 109 rows below read as exhaustive. MIDI CC [000-127] is a modulation source (p. 127) and a modulation destination (p. 128), with the footnote "MIDI CC #: Incoming MIDI data can modulate certain parameters, and they can return the favor" (p. 128). So a patch's mod matrix can be routed to emit any controller number, the eighteen the chart marks Reserved included, and the expression pedal has its own version of the same freedom: it "can send any MIDI CC via the Mod Matrix" (p. 152). The controls below are what the maker assigns; what a player's patch sends is unbounded and no document could list it.
IT HAS LOCAL CONTROL AND DOES NOT ANSWER THE CONTROLLER FOR IT. "Local Off, On [1] Disconnect pads from internal engine" (p. 154) is a System setting, and "The Local On / Off setting is remembered when power is turned off" (p. 154). CC 122 is the specification's Local Control On/Off and this chart marks it Reserved, so the feature exists on the panel and nothing can reach it over MIDI. Worth saying out loud because a consumer that offers a local-control button for every instrument that has the feature would offer one here that cannot work. The reface DX a rank earlier had the same shape.
AND ITS SCALE QUANTISATION GOES ONE WAY, which is the one thing here that can make a note sound at a pitch nobody sent. With a non-chromatic scale selected, notes outside it "will be quantized to the pre-determined scale notes. This also affects the incoming MIDI notes" (p. 95) - "However, outgoing MIDI notes are not affected" (p. 95), the manual's own example being that a C#3 played on a pad leaves as a C#3 whether or not the scale contains it. So addressing is pitches and a player should know that what arrives is not always what sounds.
WHAT IS NOT RECORDED, AND EACH IS A SILENCE RATHER THAN AN ABSENCE. No document gives a MIDI implementation chart in the specification's own sense, so there is no statement about mode messages or about whether note off carries release velocity, and no page in either manual mentions Continue, song position, song select, time code or active sensing. Omni is a setting and not a mode here - RX Global Omni, 1-16 (p. 150) - and the manual's gloss is that it "means that in Single mode and Multi mode the Leviasynth responds to MIDI data on any channel" (p. 150), which this format treats as a setting a player makes rather than a row in a chart. MIDI thru exists as hardware, "MIDI In/Out/Thru" (p. 173), and no page says whether it merges.