Interfície digital d’instruments musicals

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
Interfície digital d’instruments musicals

Ports Midi i cable.jpg
Ports MIDI IN, OUT i THRU en format DIN 41524

Data de presentació 1983
Especificacions físiques
Número de pin 5
Transferència de dades
Velocitat de dades 31,25 kbit / s
NoteNamesFrequenciesAndMidiNumbers.svg

L’acrònim MIDI ( Musical Instrument Digital Interface ) indica el protocol estàndard per a la interacció d’ instruments musicals electrònics , fins i tot mitjançant un ordinador .

L'especificació estàndard MIDI

Introducció

El terme MIDI significa dues coses: un llenguatge informàtic , que és una sèrie d’especificacions que donen vida al protocol , i una interfície de maquinari que permet la connexió física entre dispositius.
MIDI va néixer als anys vuitanta i, tot i que pot ser suplantat per protocols moderns amb un rendiment superior, s’ha mantingut gairebé sense canvis i encara s’utilitza intensament en la producció de música electrònica . Les raons probablement es troben en el paper d'un estàndard gairebé indiscutible que ha assumit en l'àmbit musical i en la cura que han tingut els dissenyadors en l'elaboració de les primeres especificacions.

Les característiques del MIDI són:

  • qualitat i practicitat del sistema: la integració entre esdeveniments d'àudio i esdeveniments MIDI ha demostrat tenir èxit, confirmant la importància d'aquest estàndard en la creació de música digital.
  • el baix pes dels fitxers (en l'ordre de Kb ) que permet la transferència a través d' Internet fins i tot en connexions amb poc ample de banda.
  • la qualitat de les bases.
  • el baix cost: amb una inversió mínima o recorrent a programes gratuïts , és possible fer produccions musicals de bona qualitat.

Antecedents

El protocol MIDI va néixer a principis dels vuitanta : el prototip va ser presentat per Dave Smith i Chet Wood, dos dissenyadors del circuit seqüencial (SCi), que el 1981 van proposar les primeres especificacions MIDI en un document publicat amb el nom de MIDI complet. SCI . Era la resposta a la necessitat de comunicar els diferents instruments musicals electrònics, tenint en compte les característiques de cadascun. Diversos fabricants, per exemple Oberheim i Roland , ja van oferir alguns sistemes d'interfície als seus instruments. Aquestes interfícies, basades en algorismes propietaris, garantien el funcionament només en instruments del mateix fabricant, mentre que el protocol Smith and Wood es presentava com un sistema capaç de garantir el funcionament d’instruments de diferents fabricants. Per garantir la compatibilitat entre instruments de diferents fabricants, es va convidar a cada fabricant a participar en la redacció de les primeres especificacions MIDI. SCI, Roland, Yamaha i Kawai van ser els primers fabricants d’instruments digitals a adherir-se a la definició i difusió del MIDI.

El projecte acabat va aparèixer només dos anys més tard: l'agost de 1983 les especificacions MIDI es van presentar al públic a l'espectacle de l' Associació Nacional de Comerciants de Música (NAMM), celebrat a Los Angeles . La popularitat immediata de l'estàndard va crear divisions dins del comitè fundador: els fabricants nord-americans es van unir a la MMA ( MIDI Manufactures Association ), mentre que els fabricants japonesos van fundar la JMA ( Japan MIDI Association ). Tot i que treballaven en un terreny comú, els dos consorcis van desenvolupar característiques que no sempre eren totalment compatibles entre si. Aquestes diferències es van resoldre el 1985, quan l' IMA ( International MIDI Association ) va publicar la versió 1.0 de l'especificació MIDI, establint efectivament l'estàndard del protocol, i els fabricants que admeten el protocol MIDI es fusionen en dues associacions: MMA (fabricants nord-americans i europeus) i JMSC (fabricants japonesos). Aquestes dues associacions discuteixen i aproven els canvis que s’han de fer a l’estàndard MIDI. La difusió de les especificacions MIDI és responsabilitat de l’IMA (International Midi Association).

el teclat PROPHET 600 de SCi (Sequential Circuits inc.) de San Francisco, el primer sintetitzador amb interfície MIDI, va ser presentat el 1983 i construït sota llicència a Itàlia per SIEL d’Acquaviva Picena a la província d’Ascoli Piceno a les Marques, fins i tot si la versió final del protocol MIDI es va implementar l'any següent al Yamaha DX7 .

Ports i cables MIDI.

L’ estàndard MIDI és un protocol d’ intercanvi de missatges dissenyat per utilitzar-se amb instruments musicals electrònics i la seva interfície física. Un enllaç MIDI consisteix en una connexió en sèrie de bucle de corrent ( simplex ), que funciona a una velocitat de transmissió de 31.250 bps . El bucle es posa a terra només per un costat i l’altre extrem és lliure (flotant) per evitar interferències d’àudio i brunzits induïts per la formació del bucle de terra. Dos dispositius connectats amb una interfície MIDI estan òpticament aïllats els uns dels altres, és a dir, el bucle de corrent al costat del transmissor condueix el LED d’un optocoplador al costat del receptor. L’optocoplador ha de ser molt ràpid (un dispositiu molt utilitzat és el Sharp PC900 ) i els temps de commutació asimètrics que caracteritzen la majoria d’acobladors són en qualsevol cas la causa de distorsions [ explicar ] . En el cas de la connexió en cascada de diversos dispositius MIDI, el retard del senyal esdevé cada vegada més rellevant fins que genera errors de transmissió.

L’estàndard MIDI requereix l’ús de connectors estàndard DIN de 5 pins circulars. Aquests connectors van ser molt populars a Europa per a tot tipus de connexions d'àudio fins als anys noranta , quan van ser substituïts per les preses més pràctiques. Fins i tot els teclats molt habituals dels ordinadors personals , actualment equipats amb connexió USB, feien servir aquest connector, abandonat per al mini-DIN . Per tant, MIDI ha estat una de les poques aplicacions d’aquest tipus de connectors.
També hi ha una versió de l'estàndard que utilitza la connexió USB i una versió per transportar senyals MIDI per Ethernet i Internet està actualment en desenvolupament per part de l'IETF .

La interfície de maquinari

Els instruments musicals i diversos equips MIDI han d’estar connectats físicament per comunicar-se entre ells. Amb aquest propòsit, l'estàndard MIDI preveu l'ús d'una triada de connectors DIN de 5 pols, dels quals només s'utilitzen els 3 pols centrals, que mitjançant un cable de cinc pols permeten la connexió física entre els instruments.
Els tres connectors es distingeixen com:

  • IN: permet al dispositiu rebre informació.
  • OUT: permet al dispositiu transmetre informació.
  • THRU: permet al dispositiu retransmetre les dades rebudes del seu port IN a un altre dispositiu.

La configuració real dels connectors, en termes de nombre i presència, depèn de les funcions per a les quals es construeix un instrument. En un teclat mestre , per exemple, és habitual trobar 2 o 3 sortides i cap THRU, ja que el que s’espera d’un instrument d’aquest tipus és la màxima flexibilitat en la transmissió de dades a altres equips.

La interfície del programari: el protocol MIDI a nivell de programari

Una de les característiques fonamentals del MIDI és que és una interfície multicanal.
Gràcies a les aplicacions de programari anomenades seqüenciadors , que es poden instal·lar tant en unitats de maquinari específiques com en ordinadors personals normals, es poden enregistrar les actuacions musicals en forma de "missatges MIDI" per poder modificar-los i escoltar-los posteriorment. La tasca de sincronitzar les diferents seqüències MIDI es delega en el codi de temps MIDI , un estàndard mundial per a la sincronització digital de música que és una implementació de la codi de temps SMPTE .

Un fitxer MIDI és un fitxer que conté dades que es poden comunicar mitjançant el protocol MIDI. MIDI admet fins a 16 canals. Per explicar què s'entén per "canal MIDI" es pot utilitzar la següent metàfora: voleu enviar un missatge a un company que es troba allotjat en una de les 16 habitacions disponibles en un hotel; a més de l'adreça de l'hotel, també heu d'especificar el número d'habitació del nostre company si voleu que el missatge es lliuri correctament. Penseu en tenir un mòdul de so amb la capacitat de reproduir fins a 16 sons diferents alhora connectats a MIDI a un teclat musical i cada so es troba en un canal diferent de l’1 al 16: com fer que la música reprodueixi només un d’aquests sons ? El teclat ha d’enviar al mòdul, a més de les notes, també el número del canal (l’habitació de l’hotel) on reproduir aquestes notes. La manera de fer-ho depèn del tipus d’eines que s’utilitzin.
A més de les notes i la diversa informació necessària per a la seva interpretació, també és possible transmetre text sincronitzat amb la música en MIDI. Aquest aspecte ha estat àmpliament aprofitat per al karaoke . Els fitxers d’aquest tipus sovint han canviat l’extensió de .mid a .kar .

Tipus de dades

Estat de bytes: els bytes d’estat són vuit números de dígits binaris en què el bit més significatiu del bit (bit més significatiu, MSB) s’estableix a 1. Aquests bytes s’utilitzen per identificar el tipus de missatge, és a dir, la finalitat dels bytes de dades que segueixen ells; a excepció dels missatges en temps real, un nou byte d'estat obliga el receptor a adoptar un estat nou, encara que encara no s'hagi completat l'últim missatge.

Byte de dades: després dels bytes d'estat, a excepció dels missatges en temps real, hi pot haver un o dos bytes de dades que portin el contingut del missatge. Els bytes de dades són nombres binaris de vuit dígits en què el bit més significatiu (MSB) està definit a 0. El número de byte de dades corresponent sempre s’ha d’enviar per a cada byte d’estat; el receptor del missatge ha d’esperar fins que ha rebut tots els bytes de dades sol·licitats pel byte d’estat.

Estat en funcionament: només per als missatges de veu i de mode. Quan es rep i processa un byte d'estat, el receptor es manté en aquest estat fins que rep un byte d'estat diferent; per tant, en cas de repetició, es pot ometre el byte d'estat i n'hi ha prou amb enviar només els bytes de dades. A l'Estat en execució, un missatge complet només consta de bytes de dades; L'estat d'execució és particularment útil quan s'envien cadenes llargues de Nota On / Off, on s'utilitza "Note On amb velocitat 0" com a Note Off.

Missatge del canal

Un missatge de canal utilitza quatre bits al byte d'estat per encaminar el missatge a un dels setze canals MIDI i quatre bits per definir el missatge. Els missatges de canal els utilitzen els receptors d’un sistema el nombre de canals correspon al nombre de canals codificats dins del byte d’estat.

Un instrument pot rebre missatges MIDI de més d’un canal. El canal on rep les instruccions principals s’anomena “canal bàsic”. Es pot configurar un instrument per rebre dades de rendiment en diversos canals (inclòs el canal bàsic). S'anomena "canal de veu".

Hi ha dos tipus de missatges de canal:

  • MODE per definir la resposta dels instruments als missatges de veu. Els missatges de mode s’envien al canal bàsic d’un instrument.
  • VEU per controlar les veus d’un instrument. Els missatges de veu s’envien als canals de veu;

Mode de canal

Un sol instrument físic pot actuar com a diversos instruments virtuals. En aquesta discussió, "instrument" fa referència a un instrument virtual.
Els sintetitzadors i altres instruments contenen elements generadors de so anomenats "veus". L’assignació de veu és el procés algorítmic mitjançant el qual les dades de les notes On / Off dels missatges MIDI entrants s’encaminen a les pròpies veus, de manera que les notes es reprodueixen correctament.

Hi ha disponibles quatre missatges de mode per definir les relacions entre els setze canals MIDI i les assignacions de veu de l’instrument. Els quatre modes estan determinats per les propietats Omni (On / Off), Poly i Mono. Poly i Mono s’exclouen mútuament. Omni, quan està activat, permet al receptor rebre missatges de veu a tots els canals de veu. Quan està apagat, el receptor només accepta missatges de veu procedents de canals de veu seleccionats.

Mono, quan està activat, redueix l'assignació de veu a una sola veu per canal de veu (monofònic). Quan està desactivat (Poly activat), es pot assignar un nombre determinat de veus mitjançant l'algoritme d'assignació de veu normal del receptor.

Els receptors i transmissors MIDI funcionen només en un mode de canal alhora. Atès que un sol instrument pot funcionar com un conjunt d’instruments virtuals, pot tenir diversos canals bàsics. Aquest instrument es comporta com si es tractés de més d’un receptor i cada receptor es pot configurar amb un canal bàsic diferent. A més, cada receptor es pot configurar amb diferents modes, tant a través del tauler de control de l'instrument com mitjançant els missatges de mode rebuts al canal bàsic. Tot i que no és un veritable mode MIDI, aquest mode d'operació s'anomena "Multi Mode".

Veu del canal

Els missatges de veu del canal consisteixen en la càrrega d’informació transmesa entre instruments MIDI. Inclouen: Nota activada, Nota apagada, canvi de programa, canvi de control, pitchbend, retoc de canals i pressió polifònica de la clau.

Un sol missatge de Nota activada consta de 3 bytes, que requereixen 960 μs per a la transmissió. Quan es toquen moltes notes al mateix temps, les diferents notes de notes poden trigar diversos mil·lisegons a transmetre's. Això pot dificultar la resposta de MIDI a un gran nombre d'esdeveniments simultanis sense provocar un lleuger però audible retard. Aquest problema es redueix mitjançant l'ús del mode d'estat de funcionament.

Control Rpn & Nrpn

Són controls que permeten gestionar extensions específiques per al dispositiu o l’aplicació que es vol controlar. Els controls RPN estan especificats per l'estàndard MIDI, els controls NRPN són específics de cada dispositiu i, per tant, s'han de documentar al manual subministrat. S’implementen com una successió de canvis de control.

NRPN, número de paràmetre no registrat

El paràmetre que es modificarà és designat pels controladors 98 i 99, el valor a introduir s’especifica amb:

  • Controlador 6 (entrada de dades MSB)
  • Controlador 38 (entrada de dades LSB)

També podeu utilitzar:

  • Controlador 96 (increment de dades)
  • Controlador 97 (disminució de dades)

RPN, número de paràmetre registrat

El paràmetre que es canviarà el designaran els controladors 100 i 101; el valor que cal introduir és especificat pels mateixos controladors que els NRPN.

Missatge del sistema

Els missatges del sistema no estan codificats amb números de canal. Normalment hi ha tres tipus de missatges del sistema.

  • Missatge comú del sistema : els missatges comuns afecten tots els receptors d’un sistema independentment del canal.
  • Missatge real del sistema : s’utilitzen per a la sincronització i estan pensats per a totes les unitats basades en el rellotge d’un sistema; només contenen el byte d'estat, no hi ha bytes de dades.
  • Missatge exclusiu del sistema : pot contenir qualsevol nombre de bytes de dades i pot acabar amb un "Final exclusiu" (EOX) o qualsevol byte d'estat excepte els missatges en temps real.

Estructura del fitxer MIDI

El fitxer MIDI i les seves estructures bàsiques

El fitxer MIDI, o més formalment Standard Midi File (SMF), és un arxiu que conté dades, informació expressada en un o més bytes. Aquesta informació organitza un sistema complet de regles, el protocol (o codi) MIDI, i és comprensible pels lectors de programes MIDI (seqüenciadors), que els reconeixen i els interpreten com a instruccions a executar.

Les especificacions SMF van ser desenvolupades per l' Associació de Fabricants MIDI (MMA).

El fitxer MIDI està format per estructures complexes, anomenades Track Chunk ("bloc-pista"), formades per un nombre determinat de bytes (informació-instruccions). Aquests blocs són parts fonamentals i, per tant, necessàries del fitxer MIDI.

La primera estructura: el bloc de capçalera

La primera estructura, situada només al començament del fitxer MIDI i composta sempre per 14 bytes, s’anomena: fragment de capçalera Midi Track ( MThd ), és a dir, bloc de capçalera . Alguns bytes d’aquest bloc de capçalera del fitxer MIDI són invariables. Només hi ha un bloc de capçalera Midi Track ( MThd ) en un fitxer. El bloc de capçalera ( tros de capçalera ) especifica informació bàsica i genèrica sobre les dades del fitxer. El fragment de capçalera Midi Track consta dels bytes següents en notació hexadecimal:

4D 54 68 64 00 00 00 06 00 0n 00 nn 0n nn

on n representa els bytes de valor variable.

4D 54 68 64 = (en codi ASCII: MThd) defineix el fragment com a capçalera Midi Track i és el bloc de capçalera , format sempre per 4 bytes invariables, que defineix aquesta pista com un bloc de capçalera .

00 00 00 06 = defineix la longitud en bytes de la resta del bloc de capçalera . Indica que immediatament després queden 6 bytes restants.

00 0n = aquests dos bytes indiquen el tipus de fitxer MIDI - smf : fitxer Midi estàndard . Per al format 0 n = 0; per al format 1 n = 1; per al format 2 n = 2:

  • Format 0: les pistes d'una cançó es combinen en una única que conté tota la informació de l'esdeveniment de totes les pistes originals de la cançó.
  • Format 1: les pistes s’emmagatzemen individualment compartint els mateixos valors de tempo i signatura de temps. La velocitat de la cançó s’insereix a la primera pista que fa referència a totes les altres. El format 1 permet la gestió multipista d’una cançó en seqüenciadors i reproductors de fitxers MIDI i és el format més utilitzat.
  • Format 2: les pistes es gestionen independentment les unes de les altres, també pel tempo i pel metre.

00 nn = aquests dos bytes indiquen quantes pistes (del tipus MTkr) hi ha al fitxer MIDI.

0n nn = aquests dos darrers bytes indiquen el "nombre de pulsacions (o resolució) per ¼ nota": PPQN (Pulse Per Quarter Note). Cada pols es diu "Tick" (instantani).

Per exemple, 01 80 = 384 PPQN (una nota ¼ constarà de 384 PPQN, és a dir, 384 paparres). El PPQN condiciona el Delta Tempo per a tot el fitxer MIDI, ja que el PPQN és una unitat de mesura, un mesurador de referència que defineix el Delta Tempo com a "nombre de pulsacions per ¼ nota". Per tant, la durada de dos o més Delta Times amb valors de bytes idèntics, però dins de PPQN diferents, serà diferent.

Les altres estructures que segueixen el bloc de capçalera

Després de la descripció completa del fragment de capçalera Midi Track (bloc de capçalera principal), seguiu les pistes (almenys una) que contenen els esdeveniments MIDI. Cada pista es compon d'una capçalera sempre formada per 4 bytes invariables:

4D 54 72 6B = (al codi ASCII: MTrk) defineix el fragment com a pista Midi , és a dir, l’identifica com un bloc de pista .

Si hi ha més d'una pista MTrk al fitxer, la primera pista MTrk, també anomenada " Tempo Track ", sol contenir les Meta Data, separades entre si i de qualsevol altre esdeveniment MIDI pel Delta TΔ Tempo, relacionades amb la indicació de la subdivisió de la mesura, del tempo metronòmic i de la clau de l’escala. Les pistes següents, per exemple, una per a cada instrument musical diferent, contenen tots els altres esdeveniments midi i també poden contenir esdeveniments Meta Data en cas de canviar els valors de les Meta Data inicials contingudes a la primera pista MTrk, és a dir, a el Track de Tempo .

Després dels 4 bytes que identifiquen la pista, sempre hi ha altres 4 bytes:

00 00 00 nn = indica quants bytes successius hi ha fins al final de la pista. Després dels 4 bytes descrits, sempre hi ha el temps Delta (Delta Time), expressat per un o més bytes. Seguit dels esdeveniments continguts a la pista, Esdeveniments Midi, Esdeveniments SysEx, Esdeveniments Meta Data, que són la codificació per ordinador d’una peça, la partitura musical.

Tots els esdeveniments estan sempre separats entre si per un valor variable de Delta Delta segons les necessitats i el curs de la peça.

Hora del Delta - TΔ

Dins de les traces MTrk , entre cada esdeveniment, sempre s’insereixen les dades temporals Delta Time ( Delta-time ), que expressa la durada de l’interval de temps entre dos esdeveniments individuals en bytes, és a dir, és la durada en PPQN entre els dos esdeveniments ( ... EVENT1 ... ... EVENT2 ...). Si, per exemple, TΔ = 00, els esdeveniments es produeixen simultàniament.

Per tant, per fer sonar dues notes simultàniament tenim per exemple: 90 48 64 00 90 4C 64 = C i E tocant simultàniament.

Tempo Delta és fonamental per a la durada de les notes i, per tant, per a la creació de figures musicals. Més precisament, els valors TΔ són estables; les figures musicals varien la seva correspondència amb la TΔ segons la resolució PPQN. Per exemple, per a PPQN = 01 80 la nota de quart té TΔ = 83 00; en canvi, per a un PPQN = 60, la nota de quart té TΔ = 60.

Durada en microsegons d'una pulsació

La durada en microsegons d’una pulsació per ¼ d’una nota s’obté de la següent operació:

(60.000.000 / ppm) / PPQN

on bpm representa els " batecs per minut " (tempo del metrònom) i PPQN és la " resolució en polsos per ¼ nota " tal com s'estableix al fragment MThd .

Meta dades

Meta Data (Meta Data) és informació no fonamental del fitxer MIDI i, si es troba, es troba a les pistes MTrk. S’identifiquen amb el primer byte el valor del qual és sempre igual a FF i estan formats per diversos bytes.

Meta dades principals:

FF 58 04 xx yy 60 08 - Mesurador (temps de subdivisió de mesura ):

  • FF: defineix el tipus d'esdeveniment (és a dir, que es tracta d'una meta dades);
  • 58: identifica el tipus de meta dades (les meta dades que defineixen la subdivisió de la mesura );
  • 04: nombre de bytes continguts a la part següent ( sempre 4);
  • 0x: (byte variable) numerador de la proporció de subdivisió de la mesura (inseriu el nombre corresponent en hexadecimal: per exemple, per ¾ = 03),
  • 0y: denominador (el nombre que cal introduir és el que s’expressa en hexadecimal de la potència necessària per elevar el número 2 al nombre del denominador escollit):
Per indicar els quarts: y = 2 (ja que 2 2 = 4);
· Per indicar les octaves: y = 3 (ja que 2 3 = 8);
· Per indicar la setzena nota: y = 4 (ja que 2 4 = 16);
Per indicar els mitjans (per exemple 32 ): y = 1 (ja que 2 1 = 2);
Per indicar la unitat (per exemple 21 ): y = 0;
  • 60: defineix que hi ha 96 rellotges midi en una nota ¼;
  • 08: defineix que hi ha 8 notes 1/32 una nota ¼.

FF 51 03 xx xx xx - Tempo metronòmic (velocitat de la cançó: indica quants microsegons dura una nota de quart):

  • FF: defineix el tipus d'esdeveniment (és a dir, que es tracta d'una meta dades);
  • 51: identifica el tipus de Meta Data (Meta Data que defineix el Tempo metronòmic);
  • 03: quantitat de bytes continguts a la part següent de les Meta Data (sempre 3);
  • xx xx xx: el temps metronòmic escollit obtingut respecte a les possibles subdivisions de mesures sempre segons els càlculs següents:
Desglossament de la mesura Càlcul
n1 (60.000.000 / 4) / nb
n2 (60.000.000 / 2) / nb
n4 60.000.000 / nb
n8 (60 000 000 × 2) / nb
n16 (60.000.000 × 4) / nb
60 000 000 representa la quantitat de microsegons per a cada nota de quart;
nb és el nombre de pulsacions escollit per minut del metrònom (tempo metronòmic triat).

L'esdeveniment Meta relatiu al " tempo metronòmic " sempre s'ha de col·locar després de l'esdeveniment Meta de la " Subdivisió de la mesura ".

En cas de canvi en la subdivisió de la mesura, el tempo metronòmic de la nova subdivisió sempre s'ha de recalcular sobre la base de la taula anterior.

FF 59 02 xx yy - Clau de clau (indica la clau de l'escala):

  • FF: defineix el tipus d'esdeveniment (és a dir, que es tracta d'una meta dades);
  • 59: identifica el tipus de meta dades (meta dades que defineixen la clau de clau);
  • 02: quantitat de bytes continguts a la part següent (sempre 2);
  • xx: nombre d' accidents clau :
Més gran → relatiu → Menor
Agut: xx = 00: - Feu M El m
xx = 01: 1♯ Sol M jo sóc
xx = 02: 2♯ El rei M Sí, m
xx = 03: 3♯ El M Fa♯m
xx = 04: 4♯ Mi M Do♯m
xx = 05: 5♯ Sí M Sol♯m
xx = 06: 6♯ Fa♯ M Re♯m
xx = 07: 7♯ Fes-ho M La♯m
Pis: xx = FF: 1 ♭ Fa M Rei m
xx = FE: 2 ♭ Sí ♭ M Sol m
xx = FD: 3 ♭ Mi ♭ M Fer m
xx = FC: 4 ♭ El ♭ M Fa m
xx = FB: 5 ♭ Re ♭ M Sí ♭ m
xx = FA: 6 ♭ Sol ♭ M Jo ♭ m
xx = F9: 7 ♭ Fes ♭ M El ♭ m
  • yy: defineix la clau: Major yy = 00 o el corresponent Min yy = 01 .

Alguns programes reconeixen el Meta-Data FF 59, relatiu a la clau de l’escala, només si està present a la pista del temps i allà el guarden. Altres seqüenciadors només el llegeixen si està present a les pistes següents al de l’ època i el guarden en aquelles. Encara altres seqüenciadors reconeixen aquesta Meta Data allà on sigui. Meta Data FF 59 es pot considerar opcional ja que la nota alterada en realitat no es defineix per aquesta fita dades, però pel segon byte que componen la "Nota sobre" MIDI esdeveniment.

Altres meta dades útils són:

FF 03 ll xxxx - Nom de la pista :

  • FF: defineix el tipus d'esdeveniment (és a dir, que es tracta d'una meta dades);
  • 03: identifica el tipus de meta dades (meta dades que defineixen el nom de la pista);
  • ll: la longitud en bytes de l'esdeveniment (expressa la quantitat de caràcters presents a la cadena alfanumèrica que dóna el nom a la pista);
  • xxxx: el text real que es mostrarà a la pista del seqüenciador ressaltat.

FF 05 ll xxxx - Text de la cançó (lírica):

  • FF: defineix el tipus d'esdeveniment (és a dir, que es tracta d'una meta dades);
  • 05: identifica el tipus de Meta Data (Meta Data que expressa el text de la cançó present en una peça musical);
  • ll: la longitud en bytes de l'esdeveniment (expressa la quantitat de caràcters presents a la cadena alfanumèrica);
  • xxxx: el text real que es pot formar per una única cadena alfanumèrica de qualsevol longitud.

Exemple d'ús d'aquest esdeveniment Meta (text a introduir en correspondència d'una nota): « Pro - » (és a dir: P + r + o + [espai] + - ) l'estructura serà ... | TΔ | Notes ON | TΔ | FF 05 05 50 72 6F 20 2D | TΔ | Notes DESACTIVADES | TΔ | ... (en verd, els valors hexadecimals del codi necessaris per obtenir la redacció del text " Pro - ".

Els principals esdeveniments MIDI

9n hh vv - Nota ACTIVADA

  • 9 defineix el tipus de byte d’estat ( Nota ON ) i n és el número que defineix el canal al qual s’ha d’aplicar el byte d’estat;
  • hh defineix el número de la nota a tocar (de 0 a 127; per tant, és un missatge de dades );
  • vv la velocitat del tacte ( velocitat ) (força aplicada a l'instrument en el moment de tocar), (de 0 a 127; per tant, és un missatge de dades ).

8n hh vv - Nota DESACTIVADA

  • 8 defineix el tipus de byte d’estat (Nota OFF) i n és el número que defineix el canal al qual s’ha d’aplicar el byte d’estat (el primer byte 8 ordena que la nota definida en el segon segon byte hh deixi de reproduir-se al canal n) ;
  • hh defineix el número de la nota que s'ha d'aturar (de 0 a 127; per tant, és un missatge de dades );
  • vv la velocitat d'alliberament ( velocitat ), és a dir, la força aplicada a l'instrument en el moment de deixar de tocar (de 0 a 127; per tant, és un missatge de dades ).

Exemple: 80 45 64 (al canal 1, la nota n. 45 està desactivada en aquest moment [és a dir, n. 69 en decimal = A a 440 hrz] amb velocitat 64).

El canal 10 està reservat al mòdul GM per a sons de percussió.

Pauses

immediatament després de la "NOTA APAGADA" s'insereix un Delta Time amb un valor igual a la figura de pausa corresponent. Si hi ha una pausa al començament de la peça, la TΔ s'insereix davant del primer esdeveniment "NOTA ON" de la pista MTrk en qüestió.

An aa vv - Aftertouch Polyphonic :

  • A defineix el tipus de byte d'estat i n és el número que defineix el canal al qual s'ha d'aplicar el byte d'estat; aquest primer byte ordena aplicar una pressió addicional sobre una nota que estigui tocant i sobre la qual ja s'ha exercit una pressió inicial (velocitat);
  • aa fa referència a la nota sobre la qual s'ha d'aplicar la pressió addicional (0 a 127);
  • vv especifica la quantitat de pressió addicional que cal aplicar a la coneguda (0 a 127).

Bn bb vv - Canvi de control :

  • B defineix el tipus de byte d'estat (canvi de control: s'utilitza per obtenir efectes particulars) en és el número que defineix el canal al qual aplicar el byte d'estat; aquest primer byte ordena que l'esdeveniment Control Change definit al segon byte bb següent s'apliqui al canal n;
  • bb defineix les dades específiques, missatges del controlador (byte de dades), del byte d'estat (de 0 a 127; per tant, és un missatge de dades): determina quin tipus de controlador s'ha d'enviar (per exemple: 07 = Volum; 0A = Pan; 5B = Reverb; etc.).
  • vv definisce il valore da 00 a 7F (da 0 a 127 in decimale, pertanto è un Messaggio di Dati ) da applicare al Messaggio di controller per variarne le caratteristiche.

Esempio: B0 07 64 Imposta il volume generale della traccia da quel momento a 64 hex, ossia a 100 in decimale.

Cn ccProgram Change :

  • C definisce il tipo di byte di Stato (Status byte), ossia di quale Evento MIDI si tratta (in questo caso Program change: usato per far suonare uno strumento musicale), en è il numero che definisce il Canale a cui applicare lo status byte; questo primo byte ordina che si applichi sul canale n l'evento Program Change definito nel successivo secondo byte ss;
  • cc definisce i dati specifici dello status byte da 00 a 7F (da 0 a 127, pertanto è un Messaggio di Dati ): determina quale strumento musicale far suonare.

Esempio: C0 05: strumento della traccia impostato da quel momento a Piano elettrico 2.

Dn ddChannel Aftertouch

  • D definisce il tipo di Status byte ( Channel Aftertouch ) en è il numero che definisce il Canale a cui applicare lo status byte; questo primo byte ordina che sia aumentata la velocità di tocco delle note attive, quindi viene aumentata la forza iniziale applicata sulle note che sta già suonando appartenenti ad un medesimo canale;
  • dd definisce la quantità di ulteriore velocità di tocco aggiunta alla nota che già sta suonando (da 0 a 127, pertanto è un Messaggio di Dati).

Esempio: D0 64 al canale 1 viene applicato da quel momento l'Aftertouch di valore uguale a 100.

En ee zzPitch Bend Change

  • E definisce il tipo di Status byte (Pitch Bend Change [Pitch Wheel]) en è il numero che definisce il Canale a cui applicare lo status byte; questo primo byte ordina che sia modificata la frequenza della nota;
  • ee definisce il 1° valore (da 0 a 127, pertanto è un Messaggio di Dati);
  • zz definisce il 2° valore (da 0 a 127, pertanto è un Messaggio di Dati).

Esempio: E0 60 64: al canale 1 viene applicato da quel momento il Pich Wheel con primo valore uguale a 60, ossia 96 in decimale, e secondo valore uguale a 64, ossia 100 in decimale).

Chiusura della Traccia

Ogni traccia MTkr termina con un evento di chiusura formato da due byte: FF 2F 00, preceduti sempre da un valore di TΔ. L'ultimo byte uguale a zero rappresenta la lunghezza del meta-evento, la quale, non essendo presenti dati ulteriori, è appunto pari a zero. Ovviamente anche la “ Traccia del Tempo ” termina con il comando FF 2F 00 (chiusura della traccia).

Analisi pratica di un breve file Midi

Di seguito verrà mostrato e commentato il codice esadecimale di un semplice e breve file Midi (le varie istruzioni del protocollo Midi sono visualizzate in righe da 16 valori esadecimali, tranne l'ultima da 17, e distinte l'una dopo l'altra con caratteri in grassetto e non):

 4D 54 68 64 00 00 00 06 00 01 00 02 01 80 4D 54
72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF
51 03 09 27 C0 00 FF 59 02 01 00 00 FF F2 00 4D
54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00
B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00
80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00

· · ·

COMMENTO :

Chunk Header ( MThd ) :
 4D 54 68 64 00 00 00 06 00 01 00 02 01 80
  • 4D 54 68 64 : intestazione di 4 byte del MIDI Track header chunk
  • 00 00 00 06 : questi 4 byte informano che seguiranno 6 byte di dati sino alla fine di questo chunk header
  • 00 01 : questi 2 byte informano che il file MIDI è del formato (tipo) 1
  • 00 02 : questi 2 byte informano che dopo il MThd seguiranno 2 blocchi di traccia MTrk
  • 01 80 : informazione che specifica la risoluzione in impulsi per quarto di nota PPQN (in questo caso per ogni nota da un quarto vi sono 384 impulsi).
1° Chunk MTrk (cosiddetta Traccia del Tempo ) :
 4D 54 
72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF
51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00
  • 4D 54 72 6B : intestazione di 4 byte del MIDI Track chunk (informano che il blocco è una traccia successiva al MThd e che si tratta dunque di una MTrk )
  • 00 00 00 19 : questi 4 byte informano che seguiranno 25 byte di dati fino alla fine di questa traccia ( track chunk )
  • 00 : Tempo Delta. Questi 2 byte informano che il successivo evento rispetto al precedente si verificherà dopo zero PPQN, quindi immediatamente (senza alcun ritardo)
  • FF 58 04 03 02 60 08 : evento Meta Dato. Questo Meta evento informa che le misure delle tracce musicali saranno suddivise in ¾
  • 00 : Tempo Delta pari a zero PPQN. Il prossimo evento (FF 51 03 09 27 C0) avverrà dopo una quantità di tempo zero PPQN rispetto all'evento precedente (FF 58 04 03 02 60 08)
  • FF 51 03 09 27 C0 : evento Meta Dato. Questo Meta evento informa che la velocità metronomica del brano midi è impostata a 100 battiti al minuto
  • 00 : Tempo Delta pari a zero PPQN
  • FF 59 02 01 00 : evento Meta Dato. Questo Meta evento informa che la tonalità della scala musicale possiede un diesis in chiave (SOL maggiore)
  • 00 : Tempo Delta pari a zero PPQN
  • FF 2F 00 : questi tre byte informano che ha termine il blocco traccia
2° Chunk MTrk (seconda traccia) :
 4D
54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00
B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00
80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00
  • 4D 54 72 6B : intestazione di 4 byte del MIDI Track chunk (informano che il blocco è una traccia successiva al MThd e che si tratta dunque di una MTrk )
  • 00 00 00 2A : questi 4 byte informano che seguiranno 51 byte di dati fino alla fine di questa traccia ( track chunk )
  • 00 : Tempo Delta pari a zero PPQN
  • B0 07 64 : Evento Midi: Control Change n. 7 (Volume). Questo dato di Control Change di tre byte informa che il volume generale delle note presenti nella traccia è impostato da questo momento a 64 (100 in decimale)
  • 00 : Tempo Delta pari a zero PPQN
  • B0 0A 30 : Evento Midi: Control Change n. 10 (Panpot). Questo dato di Control Change di tre byte informa che il Pan (ossia il bilanciamento dei volumi tra i due canali stereo è impostato da questo momento e per questa traccia a 30 [48 decimale])
  • 00 : Tempo Delta pari a zero PPQN
  • B0 5B 40 : Evento Midi: Control Change n. 91 (Riverbero). Questo dato di Control Change di tre byte informa che il Riverbero è impostato da questo momento e per questa traccia a 40 (64 decimale)
  • B0 5D 10 : Evento Midi: Control Change n. 93 (Chorus). Questo dato di Control Change di tre byte informa che il Chorus è impostato da questo momento e per questa traccia a 10 (16 decimale)
  • 00 : Tempo Delta pari a zero PPQN
  • C0 04 : Evento MIDI: Program Change n. 4. Questo dato di Program Change di due byte informa che da quel momento sarà usato come strumento musicale presente al num. 4 (Piano Elettrico 1) della lista degli strumenti del Program Change
  • 00 : Tempo Delta pari a zero PPQN
  • 90 45 64 : Evento MIDI: NOTE ON . Questo dato di tre byte informa che deve essere accesa (cominciare a suonare) la nota num. 45 esad. (LA) con una velocity ( velocità di pressione ) avente valore pari a 64 (100 decimale)
  • 86 00 : Tempo Delta pari a 86 00 PPQN (con risoluzione 01 80 quello è il TΔ della minima)
  • 80 45 64 : Evento MIDI: NOTE OFF . Questo dato di tre byte informa che deve essere spenta (cessare di suonare) la nota num. 45 esad. (LA) con una velocity (velocità di pressione) avente valore pari a 64 (100 decimale)
  • 81 40 : Tempo Delta pari a 81 40 PPQN (è il TΔ della croma)
  • 90 42 64 : Evento MIDI: NOTE ON . Questo dato di tre byte informa che deve essere accesa (cominciare a suonare) la nota numero 42 esadecimale (FA♯) con una velocity ( velocità di pressione ) avente valore pari a 64 (100 decimale)
  • 81 40 : Tempo Delta pari a 81 40 PPQN (è il TΔ della croma)
  • 80 42 64 : Evento MIDI: NOTE OFF. Questo dato di tre byte informa che deve essere spenta (cessare di suonare) la nota numero 42 esadecimale (FA♯) con una velocity (velocità di pressione) avente valore pari a 64 (100 decimale)
  • 00 : Tempo Delta pari a zero PPQN
  • FF 2F 00 : questi tre byte informano che ha termine il blocco traccia.

La visualizzazione in valori esadecimali del codice di un file Midi può essere effettuata mediante un programma editor esadecimale di file.

Editor MIDI

Bibliografia

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autorità LCCN ( EN ) sh86007370
Musica Portale Musica : accedi alle voci di Wikipedia che trattano di musica