Subsystem Search

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.

Make Noise 0-COAST MIDI implementation

The MIDI implementation of the Make Noise 0-COAST: what it answers to, and the 19 controls it offers, on firmware 1.6.8.

At a glance

Firmware
This page describes firmware 1.6.8.
MIDI channel
Any one of 1 to 16.
Parts
MIDI A: on a MIDI channel of its own, taking notes and controls.
MIDI B: on a MIDI channel of its own, taking notes and controls.
Voices
One, so it plays one note at a time, shared by the parts that play notes.
Note range
Not recorded.
Velocity
Received.
Aftertouch
Answered, of a kind its documents do not say.
Pitch bend
How far it bends is not recorded, and the range can be changed.
Program change
Not recorded.
MIDI clock
Received.
Start and stop
Not recorded.
Control change
19 controls, in the tables below.
NRPN
Not recorded.
System exclusive
Not recorded.

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("make_noise/zero_coast") has loaded them.

On the base MIDI channel

Portamento

Control CC Values
Portamento TIME
portamento_time
5 0 off, 1-127 interval
Received, never sent
Portamento ON/OFF
portamento_on_off
65 0 off, 1-127 on
Received, never sent

Arpeggiator (in the program pages)

Control CC Values
ArpON/OFF
arp_on_off
117 0 off, 1-127 on
Received, never sent
ArpType
arp_type
119 0 traditional, 1-127 latch_and_shift
Received, never sent

Legato (in the program pages)

Control CC Values
LegatoControl
legato_control
118 0 off, 1-127 on
Received, never sent

Clock (in the program pages)

Control CC Values
MIDIClk
midi_clock
114 0 off, 1-127 on
Received, never sent
TEMPO IN Div.
tempo_in_divisor
116 0-127
No knob on the instrument; Received, never sent

MIDI A

MIDI channel (in the program pages)

Control CC Values
MIDI A Channel
midi_a_channel
102 0-15 channel, 16-127 all
Received, never sent

CV source (in the program pages)

Control CC Values
MIDI CH. A CV
midi_a_cv
104 0 note, 1 velocity, 2 mod, 3-127 lfo
No knob on the instrument; Received, never sent

Gate source (in the program pages)

Control CC Values
MIDI CH. A Gate
midi_a_gate
106 0 note_on, 1 velocity_over_half, 2 mod_wheel_over_half, 3-127 lfo
No knob on the instrument; Received, never sent

Pitch bend, aftertouch and velocity scale

Control CC Values
PitchBendScale CH. A
pitch_bend_scale_a
108 0-127, setting an interval in semitones
No knob on the instrument; Received, never sent
AfterScale CH. A
after_scale_a
110 0-127, setting an interval in semitones
No knob on the instrument; Received, never sent
VelScale CH. A
vel_scale_a
112 0-127
No knob on the instrument; Received, never sent

MIDI B

MIDI channel (in the program pages)

Control CC Values
MIDI B Channel
midi_b_channel
103 0-15 channel, 16-127 all
Received, never sent

CV source (in the program pages)

Control CC Values
MIDI CH. B CV
midi_b_cv
105 0 note, 1 velocity, 2 mod, 3-127 lfo
Received, never sent

Gate source (in the program pages)

Control CC Values
MIDI CH. B Gate
midi_b_gate
107 0 note_on, 1 velocity_over_half, 2 mod_wheel_over_half, 3-127 lfo
Received, never sent

Pitch bend, aftertouch and velocity scale

Control CC Values
PitchBendScale CH. B
pitch_bend_scale_b
109 0-127, setting an interval in semitones
No knob on the instrument; Received, never sent
AfterScale CH. B
after_scale_b
111 0-127, setting an interval in semitones
No knob on the instrument; Received, never sent
VelScale CH. B
vel_scale_b
113 0-127
No knob on the instrument; Received, never sent

Where these facts come from

Source documents

How they were read

User manual (44pp), the only document that publishes a controller number for this instrument: the single voice at p. 5, the connections and the default channel at p. 11, the seven Program Pages at pp. 12-14, the controller list at p. 15, the MIDI input and the Local-versus-Sysex sentence at p. 16, and the MIDI A and B normalisations and the arpeggiator at p. 17.

NEVER TAKE A LOCATOR FROM THIS MANUAL'S TABLE OF CONTENTS. It is short by one through its whole middle: the controller list is listed at 14 and printed at 15, "MIDI and CV/Gate Controllers" (p. 11) at 10 and printed at 11, the arpeggiator at 16 and printed at 17. Every page cited here was taken from the page itself.

THERE IS NO MIDI IMPLEMENTATION CHART AND NO SPECIFICATIONS SECTION. Forty-four pages, and the nineteen controller numbers are published once, as a list at the end of a section about programming the front panel from a sequencer.

THE CONDITION, WHICH IS THE WHOLE OF WHAT IS DIFFICULT ABOUT THIS INSTRUMENT. The list is introduced like this: "While the 0-COAST is in the PGM Pages it is also possible to program the 0-COAST PGM Pages using MIDI CC messages. NOTE: these parameters can only be edited by CC while the 0-Coast is in the Program Pages. The 0-COAST will ignore these CC messages at all other times." (p. 15)

So most of these controls do nothing unless a player has put the instrument into its Program Pages by holding a front-panel button. There is no field in this format for a condition like that, and the alternative to carrying them is losing nineteen published, named, unambiguous numbers, so they are all here and the condition is said instead - once, here, and again in the label of every group it applies to.

AND THE MAKER IS AMBIGUOUS ABOUT HOW FAR THE CONDITION REACHES, so three tiers are recorded rather than one. The sentence above is about "these parameters" (p. 15), meaning the Program Page parameters. It is then followed by: "There are also some additional parameters tha may be edited by MIDI CC. These are Pitch Bend, AfterTouch and Velocity Scale and TEMPO IN Divisor." (p. 15). The "tha" is the maker's typing. Those seven - CC 108 to 113 and 116 - are introduced after the restriction and are called additional, which may mean they are exempt from it or may mean nothing of the sort. The document does not say, and neither does this file.

The third tier is the portamento pair, CC 5 and CC 65, which the same page documents under a heading of its own with no condition mentioned anywhere near it, as a performance feature: "Using MIDI CC 5 and 65, analog, fully programmable, clock-synchronized PORTAMENTO is possible." (p. 15). Even those two are not wholly clear, because the page's own heading - "ACCESSING PROGRAM PAGE FUNCTIONS VIA MIDI CC:", in lettering that no text layer of the page holds - sits above everything on it, including that box.

AND THE CONDITION CANNOT BE READ LITERALLY, WHICH IS WHY ALL NINETEEN ARE CARRIED RATHER THAN TWO. It is phrased as applying to Program Page parameters, and three of the numbers under it have no Program Page at all: the seven pages at pp. 12-14 offer a CV source and a gate source for MIDI B only, so CC 104 and CC 106 - the same two settings for MIDI A - can be reached by no other route, and CC 117 switches an arpeggiator that is turned on from the performance page rather than from a program page. Read literally, those three could never be received at all, which cannot be what the maker means.

And one place where the manual instructs a player to send a message it elsewhere says will be ignored. The portamento box says: "For sync to MIDI Clock, MIDI Clock must be set to ON at 0-COAST. (MIDI Clk=114, 0-OFF, 1- ON)." (p. 15) CC 114 is in the restricted table. So the document tells a player to send CC 114 to turn clock sync on, and says a few inches lower that it is ignored unless the instrument is in its Program Pages. Recorded, not resolved.

NOTHING IS TRANSMITTED, AND THAT IS WHY EVERY CONTROL IS receives. The figure at p. 8 numbers all 61 features of the panel and names the third of them the MIDI Input Jack; no output and no thru is among the sixty-one. The word "MIDI OUT" appears in this manual only about the controller at the other end of the cable, "the cable should be attached to the MIDI OUT on the controller and MIDI INput on the 0-COAST" (p. 11), and the word "thru" does not occur at all. The input is a mini-jack: "The MIDI Input uses a Mini-Jack connector as opposed to the more traditional and cumbersome DIN connector" (p. 16), with an adapter in the box, and the pin-out at p. 44 is that adapter's. The jacks called MIDI A Gate Output and MIDI B CV Output throughout are analogue outputs named after the circuits that drive them.

EVERY NUMBER WAS READ TWICE, AND THE SECOND READING FOUND SOMETHING NO EXTRACTION CAN SEE. The first reading cut the page's text at its column positions; the second, made without sight of it, read the same page's words by their coordinates and then rendered it and read it by eye. They agree on all nineteen numbers, all nineteen names and every value the first could see - and the second found that the description and the value column of the CC 116 row are not in the text layer at all. They are vector outlines, drawn by the program that made this PDF, and they print and render perfectly while returning nothing from any text extraction. So a reading of this manual by text alone shows CC 116 with no description and no values, and there is no sign that anything is missing. The row is transcribed in the controls below from the rendered page, and was read there by two pairs of eyes.

That is worth more than this instrument: a maker's PDF can carry part of a table as artwork, and no amount of care with the text layer will find it. The second reading swept the whole document for other such runs and found seven, five of them elsewhere; none of those five carries a controller number.

THE NUMBERS ARE ALSO CORROBORATED BY THE MAKER'S OWN PROGRAMMER, which is why this list is not read once from one page. Make Noise publishes a Max for Live device for programming the instrument, and it holds eighteen append objects feeding a single control-change output: 5, 102 to 114, 116 to 119, with the same gap at 115. The one number it does not send is CC 65, portamento on/off - which fits a device that programs pages rather than performances. It confirms the set of numbers and the kinds of parameter, in the maker's own annotations, and not the pairing of each number to each name: its dials are named live.dial[1] upwards. The pairings rest on the manual, read twice.

115 IS MISSING AND THE MANUAL DOES NOT SAY WHY. The published numbers run 102 to 119 with one hole in them, and the maker's own programmer has the same hole. Recorded as an absence rather than filled in.

WHAT THE NUMBERS SAY ABOUT WHAT ELSE IS RECEIVED, since the manual has no chart to say it plainly. CC 108 and 109 set the "Amount of bend in semitones" (p. 15), so pitch bend is received and its depth is settable; no factory depth is printed, so semitones is unrecorded. CC 112 and 113 set a minimum velocity, and velocity can be a CV source or open a gate above half, so velocity is received. CC 110 and 111 are "Aftertouch in semitones" (p. 15), so aftertouch is received too - and no page says which kind. So voice.aftertouch says received and no more.

TWO PLACES WHERE THE DOCUMENT DISAGREES WITH ITSELF, recorded and not resolved. The Program Page at p. 14 gives four sources for the MIDI B CV output - note number, velocity, mod wheel and an LFO - and CC 105's own value list agrees, "0-Note; 1-velocity; 2-mod; 3 to 127 LFO" (p. 15). The prose says the output "can be assigned to velocity, note number, mod wheel, or aftertouch" (p. 17), naming aftertouch, which the other two do not; its next sentence names the LFO as well. The value names below follow the two that agree, and the third is recorded here.

And at p. 16 the manual promises a section it does not contain. It says there are two ways to modify the MIDI settings, Local Programming and Sysex programming, and sends the reader on: "For more information, see the section titled: 'Using the 0-Coast with Other Devices' in the second half of this manual." (p. 16). That section is p. 36 and it holds no system exclusive at all - signal levels and two CV and gate figures. The word appears nowhere else in 44 pages, and no message, manufacturer identifier, format or parameter map is published anywhere. So either system exclusive exists and is undocumented, or the maker wrote Sysex where it meant programming over MIDI. midi.sysex is unrecorded for that reason - true would rest on a sentence that may be a slip, and false would deny a stated capability.

THE PRODUCT PAGE MAKES ONE CLAIM THE FIRMWARE'S OWN NOTES DO NOT SUPPORT. The page says, of firmware 1.6.8, that it "adds Portamento and other MIDI features" (product_page). The updater's own release note lists three changes and the only MIDI one is a fix: "1. Fixed MIDI B CV output range for Velocity and Mod Wheel" (firmware). Portamento is real - it is CC 5 and 65 above - but nothing supports 1.6.8 having added it. Both are recorded and neither is resolved; a plausible reading is that the page describes a run of updates rather than this one, and the page does not say so.

A QUICK REFERENCE IS PRINTED ON THE UNDERSIDE OF THE INSTRUMENT AND IS NOT REPRODUCED HERE. The manual points at it twice - "there is a quick reference on the underside of the 0-Coast that de/f_ines all of these settings and how to make them" (p. 17) - so there may be numbers on the hardware that no document publishes. Nothing is claimed about it either way; it is named so that a later reader with the instrument in front of them knows where to look.

THE MAKER'S OWN SLIPS, REPRODUCED AND NOT TIDIED. The condition sentence reads "additional parameters tha may be edited" (p. 15). Each Gate row's value cell prints "> 50%" for velocity and then "> %50" for the mod wheel. The CC 116 cell runs the name and the range together as "TEMPO IN Div.=116 0 to 127" (p. 15), so a careless parse reads three numbers in it. CC 114 is the only switch on the page whose values stop at 1 where its neighbours all say "1 to 127"; what 2 to 127 do is not stated. And the last paragraph of p. 13 breaks off mid-sentence - "While on this page, the MIDI_A Activity Window" (p. 13) is followed straight by "learn both at once" (p. 13) - which is the page's own doing and not an extraction fault.

NOT RECORDED: