Skip to content

Latest commit

 

History

History
343 lines (271 loc) · 8.55 KB

File metadata and controls

343 lines (271 loc) · 8.55 KB

midi-db

🎹 Data concerning MIDI standards.

Mane Mappings

Octavia Mane (backronym Mapped Addresses, Named Extensions) supplies bidirectional mappings from raw bytes to readable names, akin to Fabric Yarn mappings, which the name of this project was inspired from. This is used to conduct readable assembly and disassembly in Octavia MICC.

The tree objects in the JSON mappings have the following meaning.

  • k: Current key segment.
  • v: Current value segment.
  • c: List of child nodes.
  • p: Same-level key pointer.

There are also some markers.

  • CR: Checksum Calculation Region Start.
  • CS: Append Checksum Byte.
  • DI: Device ID.

Mixed definitions

  • OctaviaRecommends.ins (MU2000, PSR-2000, PLG-DR, PLG-PC, PLG-PF, PLG-AP, PLG-VL, PLG-SG, PLG-DX, PLG-AN, SC-8850, PA80)
  • OctaviaAlternative.ins (MU2000, PSR-2000, PLG-DR, PLG-PC, PLG-AN, SC-8850, SD-90, PA80, NS5R)

Bitmaps

Voice Data

Fields

ID maps

Outdated information.

ID maps are TSV files.

  • MSB defines the cc0 (bank MSB) value of the voice.
  • PRG defines the PC (program change) value of the voice.
  • LSB defines the cc32 (bank LSB) value of the voice.
  • NME defines the 8-character ID of the voice.
  • ELC defines the element count (minus one) of the voice.
    • When set to 0, the voice takes up one element. 1 for two, 2 for three, the same goes on.
    • When set to 16, the voice is treated as a drum kit.
    • When set to 17, the voice is treated as a voice menu.
    • Any value above is not defined.
  • DRM defines the drum map ID used. Can also be used by voice menus.

Drum maps

Outdated information.

Drum maps are custom script files.

  • drm defines the current drum map ID to write to.
    • e.g. drm xgStdKit switches to xgStdKit.
  • dcp copies parameters from a set drum kit.
    • e.g. dcp xgStdKit copies parameters from xgStdKit to the current drum kit.
  • nno defines the current drum note number to write to.
    • e.g. nno 39 switches to 39.
  • npw writes multiple parameters to a single drum note.
    • npw <note> <exclusiveGroup> <elementCount>
  • neg sets the exclusive group (aka. alternate assign) of the current note number. Defaults to 0 (disabled).
  • nec sets the note element count of the current note number. Defaults to 1.

Voice Maps

Outdated information.

Major maps contains Yamaha-ish voice/kit IDs, not actual names. Actual names for devices require additional maps.

Blank names can either mean placeholder or silence.

General MIDI

Bank selection

Table: gm.tsv

Importance: MSB PRG LSB

Bank categories

  • 000: Melodic Voices

General MIDI rev. 2

Bank selection

Table: gm2.tsv

Importance: MSB PRG LSB

Bank categories

  • 120: Drum Kits
  • 121: Melodic Voices

YAMAHA XG

Bank selection

Table: xg.tsv

Importance: MSB PRG LSB

Bank categories

  • 000: Melodic Voices
  • 048: MU100 Model Exclusive Voices
  • 064: XG SFX Voices
  • 126: XG SFX Kits
  • 127: XG Drum Kits
  • 125 (LSB): (redirected from 127) MU100 Native

Compatibility

Device
  • TG100
  • TG300
  • QY10
  • QY70
  • QY100
  • S-YXG50
  • S-YXG70
  • S-YXG100
  • S-YXG2006
  • MU5
  • MU50
  • MU80
  • MU90
  • MU100
  • MU128
  • MU500
  • MU1000
  • MU2000
Standard
  • General MIDI

Roland GS

Bank selection

Table: gs.tsv

Importance: LSB PRG MSB

Bank categories

  • 001: Roland SC-55 map
  • 002: Roland SC-88 map
  • 003: Roland SC-88 Pro map
  • 004: Roland SC-8850 map
  • 120 (MSB): Roland GS Drum Kits
  • 126: Roland MT-32 alternate map
  • 127: Roland MT-32 main map

Compatibility

Devices
  • MT-32
  • CM-64
  • SC-55
  • SC-88
  • SC-88 Pro
  • SC-8850
  • AKAI SG01k
Standard
  • General MIDI
  • General MIDI 2

KORG NS5R

Bank selection

Table: ns5r.tsv

Importance: MSB PRG LSB

Bank categories

(As of KORG NS5R and later, all synth modules support GS and XG voice maps.)

  • 000: Melodic Voices
  • 056: KORG AG-10 map: GM-b
  • 061: KORG Drum Kits
  • 062: KORG X5D(R) & AG-10 Drum Kits
  • 080: KORG ProgU (reserved)
  • 081: KORG 05R/W map: ProgA
  • 082: KORG X5D(R): ProgB
  • 083: KORG ProgC
  • 088: KORG CmbU (reserved)
  • 089: KORG CmbA
  • 090: KORG CmbB
  • 091: KORG CmbC

Compatibility

Devices
  • 05R/W
  • AG-10
  • X5D
  • NS5R
  • NX5R
Standard
  • General MIDI

Roland SD

Bank selection

Table: sd.tsv

Importance: MSB PRG LSB

Bank categories

  • 080: Special Set 1
  • 081: Special Set 2
  • 096: Classical Set Melodic (GM2 Melodic Voices, redirected to MSB 121 and relies on gm2.tsv)
  • 097: Contemporary Set Melodic
  • 098: Solo Set Melodic
  • 099: Enhanced Set Melodic
  • 104: Classical Set Drums (GM2 Drum Kits, redirected to MSB 120 and relies on gm2.tsv)
  • 105: Contemporary Set Drums
  • 106: Solo Set Drums
  • 107: Enhanced Set Drums

Compatibility

Devices
  • Roland SD-20
  • Roland SD-80
  • Roland SD-90

KAWAI GMega

Bank selection

Table: gmega.tsv

Importance: MSB LSB PRG

Bank categories

  • 004: SP Bank (MT-32 compatible)
  • 007: LX Bank

Compatibility

Devices
  • KAWAI GMega
  • KAWAI GMega LX
  • KAWAI K11

AKAI SG

Bank selection

Table: sg.tsv

Importance: LSB PRG MSB

Bank categories

  • 001: Bank 01 (SG01v)
  • 008: Bank 08 (SG01k)

Compatibility

Devices
  • AKAI SG01k
  • AKAI SG01v

YAMAHA PLG-150AN

Bank selection

Table: plg-150an.tsv

Importance: MSB PRG LSB

Bank categories

  • 036: PLG-150AN Preset (redirect to LSB 005-007 from LSB 000-002)
  • 100: PLG-150AN

YAMAHA PLG-150DR/PC

Bank selection

Table: plg-150dr.tsv

Importance: MSB PRG LSB

Bank categories

  • 095: PLG-150DR/PC

YAMAHA PLG-150DX

Bank selection

Table: plg-150dx.tsv

Importance: MSB PRG LSB

Bank categories

  • 035: PLG-150DX Preset (redirect to LSB 005-007 from LSB 000-002)
  • 067: PLG-150DX SFX
  • 099: PLG-150DX Voices

YAMAHA PLG-150PF/AP

Bank selection

Table: plg-150pf.tsv

Importance: MSB PRG LSB

Bank categories

  • 032: PLG-150AP Preset (redirect to LSB 005 from LSB 001)
  • 096: PLG-150PF/AP

YAMAHA PLG-150VL

Bank selection

Table: plg-150vl.tsv

Importance: MSB LSB PRG

Bank categories

  • 033: PLG-150VL Preset (redirect to LSB 005-008 from LSB 000-003)
  • 097: PLG-150VL / SONDIUS-XG

YAMAHA PLG-100SG

Bank selection

Table: plg-100sg.tsv

Importance: MSB LSB PRG

Bank categories

  • 098: PLG-100SG

KORG KROSS 2

Bank selection

Table: kross.tsv

Importance: MSB LSB PRG

Bank categories

All occupy MSB 063. Listed values are LSB values.

  • 000 ProgA
  • 001 ProgB
  • 002 ProgC
  • 003 ProgD
  • 004 ProgE
  • 005 ProgF
  • 006-009 ProgUA/B/C/D (reserved)
  • 010 (mapped from 000) CombA
  • 011 (mapped from 001) CombB
  • 012 (mapped from 002) CombC
  • 013-016 (mapped from 003-006) CombUA/B/C/D (reserved)

Yamaha S90 ES / Motif ES

Bank selection

Table: s90es.tsv

Importance: MSB LSB PRG

Bank categories

All occupy MSB 063. Listed values are LSB values.

  • 017 (mapped from 000) S90 ES Preset 1
  • 018 (mapped from 001) S90 ES Preset 2
  • 019 (mapped from 002) S90 ES Preset 3
  • 020 (mapped from 003) S90 ES Preset 4
  • 021 (mapped from 008) User 1
  • 022 (mapped from 009) User 2
  • 023 (mapped from 032) Preset Drums
  • 024 (mapped from 040) User Drums
  • 025-027 (mapped from 024-026) Plug User A/B/C (reserved)
  • 028 (mapped from 000) Motif ES Preset 1
  • 029 (mapped from 001) Motif ES Preset 2
  • 030 (mapped from 002) Motif ES Preset 3
  • 031 (mapped from 003) Motif ES Preset 4
  • 032 (mapped from 004) Motif ES Preset 5
  • 033 (mapped from 005) Motif ES Preset 6