Musical Instrument Digital Interface (.mid)

MIDI Standaard

Musical Instrument Digital Interface (MIDI) is een standaard voor symbolische muzieknotatie die gebeurtenissen van instrumentale uitvoeringen vastlegt in plaats van akoestische audiogolfvormen.

Inspecteren en metadata

Besturingssystemen en bestandsanalysators herkennen MID-bestanden aan de hand van de eerste binaire bytesequentie:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

Bestandshandtekening op byteniveau (magic bytes)

Besturingssystemen en bestandsanalysators herkennen MID-bestanden aan de hand van de eerste binaire bytesequentie:

HEX-HANDTEKENING (OFFSET 0):

4D 54 68 64

ASCII-WEERGAVE: MThd

Standaardisatie: MIDI Manufacturers Association (MMA) / AMEI

Technische specificaties

ContainerarchitectuurStandard MIDI File (SMF)-chunkhiërarchie (MThd-header + MTrk-trackchunks)
CompressieOngecomprimeerde symbolische uitvoeringsgebeurtenissen (Note On, Note Off, Velocity, Pitch Bend)
Bytevolgorde (endianness)Big-Endian bit- en bytevolgorde
KleurruimtenN.v.t. (Symbolische noteninstructiestroom)
Kanalen en structuur16 logische MIDI-kanalen per track
Maximale afmetingenVariabele deltatijdresolutie (ticks per kwartnoot, tot 65.535)
TransparantieZuivere wiskundige gebeurtenissenreeks; er is geen golfvormaudio opgeslagen
Streaming en progressiefSequentiële gebeurtenissenstroom; kan noot voor noot worden geparseerd en verzonden

Technische vergelijkingsmatrix: MID versus concurrenten

Technisch kenmerkMID (Huidig)WAVMP3MOD
Opgeslagen inhoudGebeurtenisinstructies (noot, toonhoogte, aanslagsterkte)Niet-gecomprimeerde PCM-golfvormGecomprimeerde golfvorm met verlies (lossy)Trackinstructies + ingesloten instrumentsamples
Gemiddelde bestandsgrootte10 KB - 100 KB30 MB - 50 MB3 MB - 5 MB500 KB - 2 MB
GeluidsconsistentieVerschilt sterk op basis van de synthesizer of soundfont van de gebruikerMIDI-gebeurtenisgegevens zijn draagbaar; afspeelgeluid hangt af van de synthesizer of geluidsbank van het apparaatMIDI-gebeurtenisgegevens zijn draagbaar; afspeelgeluid hangt af van de synthesizer of geluidsbank van het apparaatConsistent dankzij ingesloten samples
Arrangementen bewerkenEenvoudig; de partituur noot voor noot bewerkenAudio opnieuw stemmen is uiterst lastigAudio opnieuw stemmen is uiterst lastigPatroongebaseerde samplebewerking

Veelvoorkomende beschadigingen en gids voor hex-herstel

Synthesizernoten klinken oneindig door ('vastgelopen noten') of het tempo wordt astronomisch hoog.

Oorzaak: Ontbrekende 'Note Off'-gebeurtenissen of beschadigde deltatijdwaarden met variabele lengte in een MTrk-chunk.

Herstel: Open het bestand in een MIDI-sequencer of gebruik de MIDI-tool van File2File.app om de running status op te schonen en ontbrekende Note Off-opdrachten toe te voegen.

Beveiligingsanalyse en aanvalsvectoren voor parsers

MIDI-parsers decoderen complexe deltatijdwaarden met variabele lengte (VLQ) en System Exclusive-berichten (SysEx), die bufferoverflows kunnen veroorzaken in hardware- en softwaresynths.

Bekende aanvalsvectoren

  • Ongecontroleerde uitbreiding van waarden met variabele lengte, waardoor een overloop van een 32-bits geheel getal ontstaat.
  • Te grote SysEx-berichtpayload die een heap-overloop veroorzaakt in synthesizerfirmware of softwareplugins.
  • Op kwaadaardige wijze gemaakte lusmarkeringen die oneindige CPU-lussen veroorzaken in audiorenderthreads.

Aanbevolen beveiligingspraktijken: Stel maximumwaarden in voor deltatijdwaarden en schoon SysEx-blokken met fabrikantgegevens op voordat u ze naar synthesizers verzendt.

Historische oorsprong en mijlpalen

2020De MIDI 2.0-standaard wordt afgerond en introduceert bidirectionele communicatie en een controllerresolutie van 32 bits.
1988Het Standard MIDI File (SMF)-formaat wordt vastgelegd met formaat 0 (één track) en formaat 1 (meerdere tracks).
1983Dave Smith en Ikutaro Kakehashi demonstreren op NAMM hoe MIDI een Prophet-600 met een Roland Jupiter-6 verbindt.

Belangrijkste voordelen

  • Microscopische bestandsgrootte: volledige symfonische arrangementen nemen tientallen kilobytes in beslag in plaats van tientallen megabytes.
  • Volledige bewerkingsflexibiliteit: individuele noten, tempo's, toonsoorten en instrumentpatches kunnen worden gewijzigd zonder kwaliteitsverlies.
  • MIDI wordt ondersteund door vele synthesizers, digitale piano's, sequencers en DAW's, hoewel de mogelijkheden variëren.

Technische beperkingen

  • Bevat geen enkele werkelijke geluidsopname; het afspelen hangt volledig af van de synthesizer en soundbank van het afspelende apparaat.
  • Kan opgenomen menselijke zangstemmen of realistische akoestische non-instrumentale geluiden niet reproduceren.
  • Het afspelen klinkt totaal anders op verschillende computers, afhankelijk van de geïnstalleerde General MIDI-soundfonts.

Interessante technische weetjes

  • De magische header 'MThd' staat voor 'MIDI Track Header', gevolgd door 'MTrk' voor elke trackchunk.
  • Klassieke pc-videogames zoals Doom, Warcraft en Monkey Island gebruikten MIDI om rijke muziek te leveren op diskettes van 1,44 MB.
  • Dave Smith ontving in 2013 een Technical Grammy Award voor zijn fundamentele rol bij de uitvinding van MIDI.

Veelgestelde technische vragen

Waarom klinkt een MIDI-bestand als goedkope instrumenten op uw computer?

Een MIDI-bestand bevat alleen bladmuziekinstructies (welke noot u moet indrukken en hoe hard). Het geluid dat u hoort, wordt gegenereerd door de ingebouwde General MIDI-synthesizer van uw besturingssysteem. Het laden van een professionele SoundFont (.sf2) verbetert het realisme aanzienlijk.

Hoe kunt u een MIDI-bestand converteren naar een MP3- of WAV-bestand?

Omdat MIDI geen audio bevat, moet het via een softwaresynthesizer met geluidsinstrumenten worden gerenderd. De Audio Converter van File2File.app rendert MIDI automatisch met hoogwaardige akoestische geluidsbanken, rechtstreeks in uw browser.

Wat is het verschil tussen MIDI-formaat 0 en formaat 1?

Formaat 0 voegt alle muzikale kanalen samen in één trackchunk. Formaat 1 scheidt elk instrument (piano, bas, drums) in een eigen, onafhankelijke trackchunk voor bewerking van meerdere tracks.