Korg MS-20 Mini
Voicing
- Voices
- 1
- Polyphony
- 1
- Multitimbral
- no
- Unison
- no
- Portamento
- yes
- Mono legato
- _verify
Oscillators
- Oscillators
- 2
- Noise source
- yes
- OSC 1
- analog-vco · triangle/sawtooth/pulse/noise · PWM
- OSC 2
- analog-vco · sawtooth/square/pulse
Cross-modulation
- Hard sync
- no
- Osc FM / X-mod
- _verify
- Ring mod
- yes
Filters
- Filter 1
- highpass · _verify · resonance · self-osc
- Filter 2
- lowpass · _verify · resonance · self-osc
- Routing
- series
Envelopes
- Count
- 2
- Stages
- multi-stage
- Assignments
- filter, amp, pitch, aux
- Env 1
- DELAY/ATTACK/RELEASE
- Env 2
- HOLD/ATTACK/DECAY/SUSTAIN/RELEASE
LFO
- Count
- 1
- Waveforms
- triangle, sawtooth, pulse
- Destinations
- osc-freq, filter
- Tempo sync
- no
Modulation
- Mod matrix
- no
- Patchbay
- yes
Performance & I/O
- Velocity
- no
- Aftertouch
- no
- Mod wheel
- _verify
- Pitch bend
- no
- Onboard FX
- —
- Audio out
- mono 1/8" SIGNAL OUT (2Vp-p, 3.5kOhm) + PHONES jack
- MIDI
- yes
- USB
- yes
- CV / gate
- yes
Notes
Signal flow rendered server-side as inline SVG from capability.json: no WPF, no client JavaScript.
Provenance
- Confidence
- medium
- Last verified
- 2026-05-26
- Manual
- manuals/synths--korg-ms20-mini-manual.pdf
- Pages
- 1, 2, 3
- Via
- SM26 single-seat manual extraction (Opus general-purpose seat); SM34 (2026-05-26) STRUCTURAL migration capability-v3->v4 (control_style=dial-led + morphology_overrides[]=[]); SM36 council re-extraction with panel-image SSOT (2026-05-26): CC/Opus + Codex CLI + Gemini browser 3-seat council, panel images at manuals/synths--<id>-panel.jpg (SM35-landed) -- panel-grounded re-extraction.
SCOPE: this PDF is the 4-page MS-20 mini ADDENDUM (precautions, intro/differences, MIDI chart, basic operation, specs) and explicitly defers per-control descriptions to the separately-reprinted original Owner's Manual, which is NOT in this file. The full front-panel layout + labeled signal-flow block diagram is printed on PDF p.1 (legible vector art), so the architecture (2 VCOs, HP->LP series, 2 EGs, 1 MG, semi-modular patch bay, ring mod, monophonic, CV/Gate I/O, no onboard FX) traces to that diagram + the p.2 MIDI chart + p.3 specs. Behavioural/numeric fields not on the panel (filter slopes/self-osc/key-track, mono_legato, osc_fm, the RING waveform slot, mod_wheel semantics) are honestly '_verify'. Page numbers are PDF page indices (no printed page numbers except a '2' on the second sheet). A future pass with the original Owner's Manual reprint can resolve the _verify fields. SM34 (2026-05-26): STRUCTURAL migration capability-v3->v4 (top-level control_style='dial-led', morphology_overrides[] of length 0). Morphology grounded in real-hardware knowledge + the SM34 brief's per-synth assignment (panel-image backfill at manuals/synths--*-panel.jpg is a separate follow-on node). SM36 (2026-05-26): 3-of-3 council seats CONFIRMED control_style=dial-led + morphology_overrides[]=[] (panel image manual p1 lower-left illustration shows EVERY continuous control on the MS-20 mini panel as a rotary knob -- VCO1/VCO2 WAVE/PW/SCALE/PITCH, VCO MIXER LEVEL, HP/LP FILTER CUTOFF/PEAK, MG WAVE/FREQUENCY, EG1 DELAY/ATTACK/RELEASE, EG2 HOLD/ATTACK/DECAY/SUSTAIN/RELEASE, PORTAMENTO TIME, MASTER TUNE all dials). dial-led + no overrides matches the panel uniformly. provenance.fields.control_style bumped medium -> high.
Raw capability.json
{
"schema_version": "capability-v4",
"id": "ms20mini",
"name": "Korg MS-20 Mini",
"maker": "Korg",
"clone_of": "Korg MS-20",
"clone_of_note": "The manual frames it as a reissue: 'a reincarnation of the original MS-20, which was released in 1978' that 'uses analog circuitry to faithfully recreate the sound and characteristics' of the original (PDF p.2).",
"type": "analog",
"voices": 1,
"voices_note": "Monophonic. FCC type 'MONOPHONIC SYNTHESIZER' (PDF p.1); MIDI chart header '[MONOPHONIC SYNTHESIZER]' (PDF p.2); 'only one tone will be produced ... the highest tone played will be produced' (PDF p.3).",
"multitimbral": "no",
"control_style": "dial-led",
"device_class": "synth",
"voicing": {
"polyphony": 1,
"unison": false,
"unison_detune_spread": false,
"portamento": true,
"mono_legato": "_verify"
},
"voicing_note": "PORTAMENTO TIME knob present on the panel (PDF p.1). unison/spread false (single-voice mono, no unison control). mono_legato='_verify': note priority is documented as highest-note (PDF p.3) but legato/retrigger behaviour is described only in the original Owner's Manual reprint, which is NOT in this PDF.",
"oscillators": {
"count": 2,
"noise": true,
"note": "VCO1 WAVE FORM selector = triangle / sawtooth / pulse(square w/ PW) / white-noise, with a dedicated PW knob; SCALE 32'/16'/8'/4' = octave_select; no sub-osc, no per-osc detune (shared MASTER TUNE). VCO2 WAVE FORM selector = sawtooth / square / (narrow) pulse / RING (4th position); the RING position is ring modulation, captured in cross_mod.ring_mod=true (not a waveform token); SCALE 16'/8'/4'/2'; PITCH knob (+/-) relative to VCO1 = detune; no PW knob on VCO2. The synth-level noise source is both VCO1's noise WAVE FORM position and a dedicated patch-bay NOISE GENERATOR (PINK/WHITE) (all from the page-1 panel + block diagram).",
"per": [
{
"engine_type": "analog-vco",
"waveforms": [
"triangle",
"sawtooth",
"pulse",
"noise"
],
"pwm": true,
"sub": false,
"sync": false,
"octave_select": true,
"octave_positions": 4,
"detune": false
},
{
"engine_type": "analog-vco",
"waveforms": [
"sawtooth",
"square",
"pulse"
],
"pwm": false,
"sub": false,
"sync": false,
"octave_select": true,
"octave_positions": 4,
"detune": true
}
]
},
"cross_mod": {
"hard_sync": false,
"osc_fm": "_verify",
"ring_mod": true,
"note": "ring_mod=true: VCO2 WAVE FORM has a RING position producing ring modulation of VCO1 x VCO2 (panel diagram, PDF p.1). hard_sync=false: no sync waveform position or sync switch on either VCO. osc_fm='_verify': the patch bay exposes VCO CV-IN / FREQ jacks so audio-rate cross-FM via patching is plausible, but this addendum PDF does not describe oscillator-to-oscillator FM explicitly (semi-modular routing detail deferred)."
},
"filters": [
{
"type": "highpass",
"slopes": [
"_verify"
],
"slope_switchable": false,
"resonance": true,
"self_oscillation": "_verify",
"key_tracking": "_verify",
"drive": false
},
{
"type": "lowpass",
"slopes": [
"_verify"
],
"slope_switchable": false,
"resonance": true,
"self_oscillation": "_verify",
"key_tracking": "_verify",
"drive": false
}
],
"filters_note": "TWO filters in SERIES, HP before LP -- the page-1 signal-flow block diagram reads VCO1 -> VCO2 -> VCO MIXER -> VOLTAGE CONTROLLED HP FILTER -> VOLTAGE CONTROLLED LP FILTER -> VCA -> SIGNAL OUT. Each filter has CUTOFF FREQUENCY + PEAK knobs; PEAK = resonance -> resonance=true. drive=false (panel shows only CUTOFF + PEAK, no drive control). slopes / self_oscillation / key_tracking are '_verify': this 4-page addendum PDF does not state dB/oct, self-oscillation, or key-tracking behaviour (those live in the original Owner's Manual reprint, not in this file). The MS-20 LP is reputed to self-oscillate, but per manual-wins/never-guess it stays _verify here pending the reprint.",
"filter_routing": "series",
"envelopes": {
"count": 2,
"assignments": [
"filter",
"amp",
"pitch",
"aux"
],
"stages": "multi-stage",
"per": [
{
"stages": "DAR",
"stages_long": "DELAY/ATTACK/RELEASE"
},
{
"stages": "HADSR",
"stages_long": "HOLD/ATTACK/DECAY/SUSTAIN/RELEASE"
}
],
"note": "Two EGs with non-standard stage sets (neither maps cleanly to a single ADSR-family enum). v3 structurally promotes the per-envelope shape into per[]: EG1 = DELAY/ATTACK/RELEASE (DAR), EG2 = HOLD/ATTACK/DECAY/SUSTAIN/RELEASE (HADSR) (panel, PDF p.1); top-level stages='multi-stage' retained as v2-reader fallback. The VCA is driven by 'EG2 & EXT', so EG2 is the primary amp/filter envelope; EG outputs are also patch-bay routable (FREQUENCY MODULATION EG1, CUTOFF FREQUENCY MODULATION EG2), hence assignments span filter/amp/pitch/aux. Exact fixed-vs-patched destinations are part of the deferred semi-modular routing model."
},
"lfo": {
"count": 1,
"waveforms": [
"triangle",
"sawtooth",
"pulse"
],
"destinations": [
"osc-freq",
"filter"
],
"sync": false,
"note": "MODULATION GENERATOR (MG) = the LFO: a single continuously-morphing WAVE FORM knob (icons triangle / sawtooth / pulse-with-variable-width) + a FREQUENCY knob (PDF p.1). destinations osc-freq + filter are confirmed by the dedicated FREQUENCY MODULATION (MG) and CUTOFF FREQUENCY MODULATION (MG) controls; further MG destinations are patch-bay routable (deferred). sync=false: no MG tempo-sync control and the MS-20 mini receives no MIDI clock (MIDI chart Clock=X, p.2). A SAMPLE & HOLD module exists but is a separate patch-bay block, not an MG waveform."
},
"modulation": {
"mod_matrix": false,
"mod_matrix_size": null,
"patchbay": true,
"patchbay_note": "ESP / patch panel present; routing model DEFERRED (flag only). Semi-modular with a full mini-jack patch bay (10x patch cords included, PDF p.3) exposing VCO CV-IN, FREQ, CUTOFF FREQ, INITIAL GAIN, CONTROL INPUT, EG1/TRIG IN, MG/REV OUT, SAMPLE & HOLD, NOISE GENERATOR (PINK/WHITE), KBD CV/TRIG, and the External Signal Processor. Patch points intentionally NOT enumerated per scope.",
"vibrato_lever": false,
"note": "vibrato_lever=false: the performance controller is a center-click Control wheel + a momentary switch (PDF p.3), not a vibrato lever; modulation is not even transmitted over MIDI (p.3). mod_matrix=false / size null: routing is via the physical patch bay, not a stored matrix."
},
"performance": {
"velocity": false,
"aftertouch": false,
"mod_wheel": "_verify",
"pitch_bend": false,
"note": "MIDI chart: Velocity Note On/Off=X, After Touch=X, Pitch Bend=X, Control Change=X (PDF p.2). Over USB velocity is fixed at 64 and reception disabled (p.3) -> no real velocity, velocity=false. pitch_bend=false ('pitch bend and modulation will not be transmitted', p.3). mod_wheel='_verify': a physical center-click Control wheel exists (p.3) for hands-on patch-bay modulation, but it is not a MIDI mod wheel (modulation not transmitted) -- whether to count it as mod_wheel is ambiguous, so flagged not guessed."
},
"fx_onboard": [],
"fx_onboard_note": "Verified-none: no FX section on the panel/block diagram (PDF p.1) and none in the specifications (PDF p.3). The MS-20 mini has no onboard effects.",
"io": {
"audio_out": "mono 1/8\" SIGNAL OUT (2Vp-p, 3.5kOhm) + PHONES jack",
"midi": true,
"usb": true,
"cv_gate": true,
"note": "audio_out: SIGNAL OUT (mono 1/8\" mini) + PHONES (PDF p.3). midi=true: MIDI IN connector added on the Mini (RECEIVE-ONLY, note messages, channel 1 fixed; there is NO MIDI OUT/THRU) (p.2/p.3). usb=true: USB type-B, transmits/receives note messages (p.3). cv_gate=true: extensive CV/Gate + ESP patch I/O -- KBD CV OUT, VCO1/VCO2/VCO1+2 CV IN, TRIG IN, KBD TRIG OUT, F->V CV OUT, ENV OUT, plus SIGNAL IN/OUT for the External Signal Processor (page-1 block diagram; SIGNAL IN listed p.3)."
},
"morphology_overrides": [],
"provenance": {
"manual_path": "manuals/synths--korg-ms20-mini-manual.pdf",
"confidence": "medium",
"last_verified": "2026-05-26",
"manual_pages": [
1,
2,
3
],
"verify_via": "SM26 single-seat manual extraction (Opus general-purpose seat); SM34 (2026-05-26) STRUCTURAL migration capability-v3->v4 (control_style=dial-led + morphology_overrides[]=[]); SM36 council re-extraction with panel-image SSOT (2026-05-26): CC/Opus + Codex CLI + Gemini browser 3-seat council, panel images at manuals/synths--<id>-panel.jpg (SM35-landed) -- panel-grounded re-extraction.",
"verify_note": "SCOPE: this PDF is the 4-page MS-20 mini ADDENDUM (precautions, intro/differences, MIDI chart, basic operation, specs) and explicitly defers per-control descriptions to the separately-reprinted original Owner's Manual, which is NOT in this file. The full front-panel layout + labeled signal-flow block diagram is printed on PDF p.1 (legible vector art), so the architecture (2 VCOs, HP->LP series, 2 EGs, 1 MG, semi-modular patch bay, ring mod, monophonic, CV/Gate I/O, no onboard FX) traces to that diagram + the p.2 MIDI chart + p.3 specs. Behavioural/numeric fields not on the panel (filter slopes/self-osc/key-track, mono_legato, osc_fm, the RING waveform slot, mod_wheel semantics) are honestly '_verify'. Page numbers are PDF page indices (no printed page numbers except a '2' on the second sheet). A future pass with the original Owner's Manual reprint can resolve the _verify fields. SM34 (2026-05-26): STRUCTURAL migration capability-v3->v4 (top-level control_style='dial-led', morphology_overrides[] of length 0). Morphology grounded in real-hardware knowledge + the SM34 brief's per-synth assignment (panel-image backfill at manuals/synths--*-panel.jpg is a separate follow-on node). SM36 (2026-05-26): 3-of-3 council seats CONFIRMED control_style=dial-led + morphology_overrides[]=[] (panel image manual p1 lower-left illustration shows EVERY continuous control on the MS-20 mini panel as a rotary knob -- VCO1/VCO2 WAVE/PW/SCALE/PITCH, VCO MIXER LEVEL, HP/LP FILTER CUTOFF/PEAK, MG WAVE/FREQUENCY, EG1 DELAY/ATTACK/RELEASE, EG2 HOLD/ATTACK/DECAY/SUSTAIN/RELEASE, PORTAMENTO TIME, MASTER TUNE all dials). dial-led + no overrides matches the panel uniformly. provenance.fields.control_style bumped medium -> high.",
"fields": {
"type": {
"conf": "high",
"pg": 1
},
"voices": {
"conf": "high",
"pg": 1
},
"multitimbral": {
"conf": "high",
"pg": 1
},
"voicing.portamento": {
"conf": "high",
"pg": 1
},
"voicing.mono_legato": {
"conf": "_verify",
"pg": null
},
"oscillators.count": {
"conf": "high",
"pg": 1
},
"oscillators.noise": {
"conf": "high",
"pg": 1
},
"oscillators.per.0.waveforms": {
"conf": "high",
"pg": 1
},
"oscillators.per.0.pwm": {
"conf": "high",
"pg": 1
},
"oscillators.per.1.waveforms": {
"conf": "medium",
"pg": 1
},
"oscillators.per.1.detune": {
"conf": "high",
"pg": 1
},
"cross_mod.ring_mod": {
"conf": "high",
"pg": 1
},
"cross_mod.hard_sync": {
"conf": "medium",
"pg": 1
},
"cross_mod.osc_fm": {
"conf": "_verify",
"pg": null
},
"filters.0.type": {
"conf": "high",
"pg": 1
},
"filters.0.resonance": {
"conf": "high",
"pg": 1
},
"filters.0.slopes": {
"conf": "_verify",
"pg": null
},
"filters.0.self_oscillation": {
"conf": "_verify",
"pg": null
},
"filters.0.key_tracking": {
"conf": "_verify",
"pg": null
},
"filters.1.type": {
"conf": "high",
"pg": 1
},
"filters.1.resonance": {
"conf": "high",
"pg": 1
},
"filters.1.slopes": {
"conf": "_verify",
"pg": null
},
"filters.1.self_oscillation": {
"conf": "_verify",
"pg": null
},
"filters.1.key_tracking": {
"conf": "_verify",
"pg": null
},
"filter_routing": {
"conf": "high",
"pg": 1
},
"envelopes.count": {
"conf": "high",
"pg": 1
},
"envelopes.stages": {
"conf": "high",
"pg": 1
},
"envelopes.per.0.stages": {
"conf": "high",
"pg": 1
},
"envelopes.per.1.stages": {
"conf": "high",
"pg": 1
},
"lfo.count": {
"conf": "high",
"pg": 1
},
"lfo.waveforms": {
"conf": "medium",
"pg": 1
},
"lfo.destinations": {
"conf": "high",
"pg": 1
},
"lfo.sync": {
"conf": "high",
"pg": 2
},
"modulation.patchbay": {
"conf": "high",
"pg": 1
},
"modulation.mod_matrix": {
"conf": "high",
"pg": 1
},
"modulation.vibrato_lever": {
"conf": "high",
"pg": 3
},
"performance.velocity": {
"conf": "high",
"pg": 2
},
"performance.aftertouch": {
"conf": "high",
"pg": 2
},
"performance.pitch_bend": {
"conf": "high",
"pg": 2
},
"performance.mod_wheel": {
"conf": "_verify",
"pg": 3
},
"fx_onboard": {
"conf": "high",
"pg": 1
},
"io.audio_out": {
"conf": "high",
"pg": 3
},
"io.midi": {
"conf": "high",
"pg": 3
},
"io.usb": {
"conf": "high",
"pg": 3
},
"io.cv_gate": {
"conf": "high",
"pg": 1
},
"control_style": {
"conf": "high",
"pg": 1
}
}
}
}