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.

Korg NTS-1 digital kit MIDI implementation

The MIDI implementation of the Korg NTS-1 digital kit: what it answers to, and the 29 controls it offers, on firmware 1.20.

At a glance

Firmware
This page describes firmware 1.20.
MIDI channel
Any one of 1 to 16.
MIDI mode
3: omni off, poly.
Voices
One, so it plays one note at a time.
Note range
0 to 127: C-1 to G9, counting middle C as C4.
Velocity
Received. Release velocity is ignored.
Aftertouch
None, sent or answered.
Pitch bend
Not recorded.
Program change
Not received or sent.
MIDI clock
Sent and received.
Start and stop
Received.
Control change
29 controls, in the tables below.
NRPN
None.
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("korg/nts_1") has loaded them.

OSC

Control CC Values
OSCILLATOR TYPE
oscillator_type
53 0-24 saw, 25-49 tri, 50-74 sqr, 75-99 vpm, 100-127 waves
OSCILLATOR SHAPE
oscillator_shape
54 0-127
OSCILLATOR ALT
oscillator_alt
55 0-127
OSCILLATOR LFO RATE
oscillator_lfo_rate
24 0-127
OSCILLATOR LFO DEPTH
oscillator_lfo_depth
26 0-127

FILTER

Control CC Values
FILTER TYPE
filter_type
42 0-17 lp2, 18-35 lp4, 36-53 bp2, 54-71 bp4, 72-89 hp2, 90-107 hp4, 108-127 off
FILTER CUTOFF
filter_cutoff
43 0-127
FILTER RESONANCE
filter_resonance
44 0-127
FILTER SWEEP DEPTH
filter_sweep_depth
45 0-127
FILTER SWEEP RATE
filter_sweep_rate
46 0-127

EG

Control CC Values
EG TYPE
eg_type
14 0-24 adsr, 25-49 ahr, 50-74 ar, 75-99 ar_loop, 100-127 open
EG ATTACK
eg_attack
16 0-127
EG RELEASE
eg_release
19 0-127
TREMOLO DEPTH
tremolo_depth
20 0-127
TREMOLO RATE
tremolo_rate
21 0-127

MOD

Control CC Values
MOD FX TYPE
mod_fx_type
88 0-24 off, 25-49 chorus, 50-74 ensemble, 75-99 phaser, 100-127 flanger
MOD FX TIME
mod_fx_time
28 0-127
MOD FX DEPTH
mod_fx_depth
29 0-127

DELAY

Control CC Values
DELAY FX TYPE
delay_fx_type
89 0-20 off, 21-41 stereo, 42-62 mono, 63-83 ping_pong, 84-104 highpass, 105-127 tape
DELAY FX TIME
delay_fx_time
30 0-127
DELAY FX DEPTH
delay_fx_depth
31 0-127
DELAY FX MIX
delay_fx_mix
33 0-127

REVERB

Control CC Values
REVERB FX TYPE
reverb_fx_type
90 0-20 off, 21-41 hall, 42-62 plate, 63-83 space, 84-104 riser, 105-127 submarine
REVERB FX TIME
reverb_fx_time
34 0-127
REVERB FX DEPTH
reverb_fx_depth
35 0-127
REVERB FX MIX
reverb_fx_mix
36 0-127

ARP

Control CC Values
ARP PATTERN
arp_pattern
117 0-11 up, 12-23 down, 24-35 up_down, 36-47 down_up, 48-59 conv, 60-71 div, 72-83 conv_div, 84-95 div_conv, 96-107 rand, 108-127 stoch
ARP INTERVALS
arp_intervals
118 0-20 oct, 21-41 maj, 42-62 sus, 63-83 aug, 84-104 min, 105-127 dim
ARP LENGTH
arp_length
119 0-127

Where these facts come from

Source documents

How they were read

TWENTY-NINE CONTROLLERS, SENT AND RECEIVED, FROM TWO DOCUMENTS THAT AGREE ON EVERY NUMBER. The implementation is a 31.7 KB text file, Version 1.00 of 2021-10-04, and its transmitted and received channel tables list the same twenty-nine controller numbers under the same names, the received table adding 123, All Note Off. The chart, Version 1.00 dated 2019.6.25, lists the same twenty-nine in its Control Change block, circled in both columns (chart p. 1). The marks on this chart are text, so it was read by position against the three vertical rules measured off the page, and then rendered and looked at.

THE CONTROLLERS AND THE PITCH BEND ARE BEHIND ONE GLOBAL SWITCH THAT IS ON WHEN THE KIT ARRIVES. "Received when global parameter MIDI RX ShortMessage is set to ON." (chart p. 1), and the implementation footnotes every controller it receives, and the pitch bend, with the same parameter, which it spells MIDI RX/short message. The manual's global parameter table gives that parameter "0: off, 1*: on" (manual p. 4), under "*: Factory default setting" (manual p. 4). The same arrangement as korg/volca_keys, set the same way.

EIGHT CONTROLLERS CHOOSE A TYPE, AND EACH IS GIVEN TWICE. The implementation's transmitted table prints the exact values it sends and its received table the bands it answers to, and every value sent falls in the received band of the same name. The band starts are what this format records. They name the oscillator's, filter's and envelope's types, the three effects' types, and the arpeggiator's pattern and intervals.

MONOPHONIC, FROM ONE OSCILLATOR. "With a single monophonic digital oscillator, one multimode filter, on EG, three LFOs, three stereo effect processors, and full arpeggiator, the NTS-1 is a very powerful, flexible, fun-to-explore synth." (product_page) - on EG as printed. The manual's specifications give one oscillator too: "Sound generator system: 1 VCO, 1 Multimode filter, 1 EG, 3 LFO" (manual p. 3), a VCO where the product's specifications page says 1 Digital Oscillator (specifications). And firmware 1.20 added "New global option to enable/disable legato handling of incoming MIDI notes" (release_notes), which the manual's table carries as EG Legato. No document states a voice count, so polyphony: 1 reads the one monophonic oscillator as one voice, which is the reading korg/monologue makes of the same word in its own manual.

NOTES ARE RECEIVED OVER THE WHOLE RANGE AND SENT OVER EIGHTEEN. The chart gives 0–127 for Note Number and True Voice in its Recognized column and 45–62 in its Transmitted column (chart p. 1), and the evident source of what is sent is the ribbon keyboard, though the chart does not say so. Its velocity row reads O 9n, V=1–127 received, which is the received below.

NO DOCUMENT NAMES A MIDI OUT JACK. The specifications list a "MIDI IN jack (3.5 mm TRS mini-phone jack)" (manual p. 3) and a USB port, and the connectivity sheet says "The MIDI IN connector of the NTS-1 digital kit can receive notes and other messages from external MIDI devices and other sources." (connectivity p. 1), while the USB port is the one to "transmit and receive note messages and more." (connectivity p. 1). So whatever is sent can leave only by USB - an inference from the jacks, because the same sheet opens by saying the kit "uses either the USB port or the MIDI IN connector to send and receive MIDI signals." (connectivity p. 1). The manual's MIDI route setting is "0*: USB+MIDI, 1: USB" (manual p. 4) and is not explained further.

CLOCK BOTH WAYS, TRANSPORT RECEIVED ONLY, BEHIND A SECOND SETTING. The implementation sends F8 and receives F8, FA, FB and FC, each received one footnoted to the clock setting, and the chart circles Clock in both columns and Commands in its Recognized column alone: "Not received when global parameter MIDI Clock src is set to Internal; received when set to Auto." (chart p. 1). The manual gives MIDI clock source as "0: internal, 1*: auto" (manual p. 4), so from the factory it follows a clock that arrives.

SYSTEM EXCLUSIVE IS HOW USER OSCILLATORS AND EFFECTS ARRIVE. Circled in both columns, with "In addition to Korg exclusive messages, Inquiry is supported." (chart p. 1), and the implementation lays out the requests, the slot data and the status replies for the user modules, which the kit can take because "It is compatible with the logue SDK" (manual p. 3). The manual's fifth oscillator type is User OSC, which it says comes preloaded, printing the preloaded oscillator's name in the display's own font; the implementation names that band WAVES.

THE TWO DOCUMENTS DISAGREE OUTRIGHT THREE TIMES. The implementation's transmitted realtime table lists FE Active Sensing, and the chart crosses Active Sense in its Transmitted column and circles it only in its Recognized one (chart p. 1). The chart circles All Notes Off as O (123–127) where the implementation receives 7b, 123, alone, as All Note Off. And the chart's Note Number row carries the same footnote as the controllers, the MIDI RX ShortMessage switch, where the implementation footnotes none of its note rows in either direction. None of the three reaches a field: active sensing and the switch have none here, and the channel mode messages are refused by the format. So all three are written down and none is chosen.

AND THE DOCUMENTS DIFFER IN FOUR MORE PLACES THAT CAN ALL BE TRUE AT ONCE. The implementation footnotes every controller it sends to the same switch, by a footnote saying the message is transmitted when the switch is on, where the chart's footnote speaks of reception only. Its transmitted note on reads vv=1~127 where the chart's velocity row reads X 9n, V=64: the chart says a fixed 64, the implementation prints the message's range, and nothing describes the ribbon as sensing how hard it is pressed. Its received note off reads Note Off vv=1~127 where the chart crosses Note Off in the Recognized column: the implementation gives the message's range, the chart says the value does nothing, which is the note_off: false below. And the chart's Mode 3, OMNI OFF and POLY by its own legend, sits beside a monophonic oscillator; a one-voice instrument can receive in mode 3, as korg/monologue records.

THE CHART IS THE OLDER DOCUMENT BY MORE THAN TWO YEARS, and between it and the implementation came 1.10, announced on the product page on 2020.03.10 (product_page), whose notes include "Fix scaling issues with some MIDI CC values" (release_notes) and do not say which values. The implementation, the later of the two and the only one to print values, postdates it.

AND THE IMPLEMENTATION DISAGREES WITH ITSELF IN ITS SYSTEM EXCLUSIVE TABLES, about nothing a field here holds: its user API version reply gives the platform ID as 3 where its slot status table gives 1; its messages number the user modules 1 to 4 where that table gives 1~5; its received list includes 47 and 48, which their own formats mark as transmitted only; its status message is "Transmitted when an error occurs after receiving a system exclusive message." (implementation) where five other formats send it after success too; and its transmitted list gives status codes 23-2F where its own table of them has no 25.

nrpn: none IS A CHECKED ABSENCE. Neither document names 6, 38 or 98 to 101 anywhere: not the chart's Control Change block or its Aux rows (chart p. 1), and not the implementation, whose channel tables are its whole account of what is sent and received.

NOT RECORDED: the pitch bend range. The chart circles Pitch Bend in its Recognized column (chart p. 1) and the implementation receives En, and no document gives a range or a setting for it; the format's pitch bend field holds those two and nothing else. Nor how a particular user oscillator or user effect is chosen over MIDI: the oscillator type controller has one band for the user slot, and the three effect type controllers name only the built-in types and OFF.

NOT CARRIED: the chart's own spellings TREMOLLO and Meassages. The labels below are the implementation's, which spells TREMOLO.