MIDI

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 23. februar 2019; checks kræver 29 redigeringer .

MIDI ( English  Musical Instrument Digital Interface  - digital interface of musical instruments) er en digital lydoptagelsesstandard for et dataudvekslingsformat mellem elektroniske musikinstrumenter .

Grænsefladen giver dig mulighed for ensartet at indkode i digital form, såsom at trykke på taster, justere lydstyrken og andre akustiske parametre, vælge en klangfarve , tempo , toneart osv., med en nøjagtig reference i tid. Kodningssystemet indeholder mange gratis kommandoer, som producenter, programmører og brugere kan bruge efter eget skøn. Derfor giver MIDI-interfacet mulighed for, udover at spille musik, at synkronisere styringen af ​​andet udstyr, såsom belysning, pyroteknik mv.

En sekvens af MIDI-kommandoer kan skrives til ethvert digitalt medie i form af en fil, transmitteret via enhver kommunikationskanal. Afspilningsenheden eller programmet kaldes en MIDI -synthesizer ( sequencer ) og er faktisk et automatisk musikinstrument.

Historie

I slutningen af ​​70'erne af det XX århundrede blev musikalske synthesizere udbredt. De var sæt af spændingskontrollerede lydfrekvensgeneratorer. Ved at trykke på en tast på synthesizerens tastatur tændte generatoren, hvis frekvens blev indstillet af spændingen fra denne tasts tonekontrol. Antallet af individuelle oscillatorer bestemte antallet af synthesizer-toner, der kunne lyde samtidigt. Specifikke modeller af synthesizere kan have lydegenskaber og karakteristiske specialeffekter. Det var umuligt at kontrollere hele spektret af potentielle muligheder for lydsyntese inden for en enkelt analog enhed. Arbejdsstedet for en musiker fra den tid kunne bestå af flere forskellige synthesizere; at arbejde med sådan en "zoo" var svært. I begyndelsen af ​​80'erne blev behovet for at øge fleksibiliteten ved at styre heterogene synthesizere indlysende, og udviklingen af ​​elektronik foreslog en måde at løse problemet på: digital programstyring. Synthesizer-producenter formåede med succes at blive enige om udviklingen og understøttelsen af ​​en enkelt standard for synthesizer-kontrolgrænsefladen, som dukkede op i 1982. [1] Standardens ideologi betød adskillelse af kontroller og lydsynteseudstyr. MIDI-grænsefladen er faktisk blevet et middel til at overføre positionen af ​​tangenter og kontroller fra et musikalsk keyboard til lydsynteseudstyr. Nu kunne musikeren styre flere synthesizere af forskellige typer og producenter fra ét keyboard. Desuden gjorde det digitale transmissionsformat det muligt at supplere udstyret med sequencere - enheder, der gemmer den afspillede melodi. Nu kunne musikeren indspille kompositioner eller deres dele, mixe uden at miste lydkvaliteten og bruge datidens sofistikerede studiebåndoptagere. Standarden vandt hurtigt popularitet. Efterhånden suppleret med nye muligheder, har den ikke mistet sin relevans i vor tid. [2] [3] [4]

Hardware- og softwarestandard

Det fysiske niveau af grænsefladen er en strømsløjfe (som giver galvanisk isolation og sikkerhed ved tilslutning af enheder til hinanden). Senderen er aktiv, 5 mA, tilstedeværelsen af ​​strøm angiver 0, ingen strøm - 1. Stik 5-benet DIN 41524 . Asynkron transceiver , baudrate 31250, 8-N-1 format. [5]

Enhederne er forbundet med kabler. Masterenhedens dataudgang (MIDI OUT-stik) er forbundet til slave-enhedens indgang (MIDI IN-stik). Data overføres over kablet i kun én retning, fra master til slave (for eksempel fra et musikalsk keyboard til en synthesizer). Tovejs dataoverførsel kræver et ekstra kabel. [6]

De fleste MIDI-enheder kopierer ikke beskeder fra en input til en output. Der er en tredje type stik (MIDI THRU), som duplikerer datastrømmen fra inputtet. Denne type stik giver dig mulighed for at forbinde et vilkårligt antal synthesizere i en kæde. [7] Det er dog ikke alle synthesizere, der har denne type stik. Derudover kan MIDI-enheder kombineres ved hjælp af MIDI thru-bokse ( hubs ), som videresender inputsignalet til flere udgange.

Standarden beskriver en hardwaregrænseflade , der giver dig mulighed for at forbinde elektroniske musikinstrumenter og computere fra forskellige producenter, beskriver kommunikationsprotokoller til overførsel af data fra en enhed til en anden. MIDI-enheder kan kommunikere med softwareapplikationer ved hjælp af MIDI-kommunikationsprotokollen. Ved at bruge en passende software MIDI -sequencer kan eksterne MIDI-enheder sende information til lydkortets synthesizer . MIDI er baseret på datapakker, som hver især svarer til en MIDI-begivenhed ( eng.  MIDI-events ), fra et tastetryk til en simpel pause, disse hændelser er adskilt af kanaler. Et komplekst MIDI-miljø kan omfatte en række hardware, hvor hver del af systemet er ansvarlig for begivenheder på dens respektive kanal. Et alternativ ville være en enkelt synthesizer , der kan styre alle kanaler af sig selv.

Musikfilformat

Musical Instrument Digital Interface (MIDI)
Formattype lydformat
Internet side midi.org/specific... ​(  engelsk)
 Mediefiler på Wikimedia Commons

I modsætning til andre formater er dette ikke digitaliseret lyd , men sæt af kommandoer (spilbare noter, links til at spille instrumenter, værdier af lydparametre, der kan ændres), der kan afspilles forskelligt afhængigt af afspilningsenheden. Bekvemmeligheden ved MIDI-formatet som datarepræsentationsformat tillader implementering af enheder, der automatisk arrangerer i henhold til givne akkorder, såvel som 3D-lydvisualiseringsapplikationer. Derudover er sådanne filer som regel flere størrelsesordener mindre end digitaliseret lyd af sammenlignelig kvalitet.

En Standard MIDI File (SMF - Standard MIDI File) er et specielt designet filformat designet til at gemme data optaget og/eller udført af en sequencer, en sequencer kan enten være et computerprogram eller et hardwaremodul.

Dette format gemmer standard MIDI-meddelelser (dvs. statusbytes og deres tilsvarende databytes), såvel som tidsstempler eller markører for hver meddelelse (dvs. sekvenser af bytes, der angiver, hvor mange vilkårlige tidsenheder (impulser, tikker) der skal vente før udfører den næste MIDI-begivenhed). Dette format giver dig mulighed for at gemme information om tempo, tidsopløsning, udtrykt i antallet af kryds pr. kvart varighed (eller i tidsenheder pr. sekund, i SMPTE -formatet ), taktarter, information om musikalske tangenter, samt butiksnavne af spor og mønstre.. Formatet giver mulighed for at gemme flere mønstre og spor i én fil på en sådan måde, at applikationsprogrammer kan vælge fra hele sættet af lagrede informationer, som vil være forståelig for denne applikation.

Typisk er et spor analogt med en musikalsk del, såsom en trompetstemme. En analog af et mønster kan være hele sættet af dele taget sammen, for eksempel et sæt dele af en trompet, trommer, klaver osv., som bruges i et givet værk eller en del af det og opføres samtidigt.

Ved udviklingen af ​​formatet var det muligt for enhver sequencer at læse og skrive en fil på en sådan måde, at dens data på den ene side ikke går tabt, og på den anden side, så formatet er fleksibelt nok, kan applikationer gemme deres specifikke informationer i filer, der kun er forståelige for dem, men uforståelige for andre applikationsprogrammer, og ved indlæsning af MIDI-filer fører information, der er uforståelig for andre applikationsprogrammer, ikke til misforståelser, men ignoreres simpelthen. I denne forstand kan MIDI-filformatet sammenlignes med tekstinformationsformater. Forskellige sequencer-programmer er i stand til at læse MIDI-filer på samme måde, som forskellige teksteditorer læser ASCII - filer, som kan indeholde hjælpeoplysninger, som kun er forståelige for denne editor. Men i modsætning til ASCII-filer indeholder MIDI-filer digital information, og desuden gemmes denne information som records, det vil sige grupper af bytes, der indeholder deres egen header, bestående af en record-identifikator og record-længde. Disse poster kan formateres, indlæses, ignoreres osv. uafhængigt af hinanden. For at arbejde med plader bruger applikationsprogrammer yderligere information, der er optaget i en MIDI-fil. For eksempel kan et program "ønske" at gemme et flag, der indikerer, at brugeren har indstillet metronomen til at være tændt. Et program kan indsætte dette flag i en MIDI-fil på en sådan måde, at et andet applikationsprogram kan ignorere dette flag uden opmærksomhed. I fremtiden vil det eksisterende MIDI-format måske blive udvidet, og nye pladetyper vil dukke op. Nye programmer til at arbejde med MIDI-filer vil også genkende nye typer plader. Ældre MIDI-filer kan dog afspilles i deres originale form. MIDI-formatet er designet på en sådan måde, at tidligere versioner af det vil være kompatible med dets udvidelser.

Hvad er en rekord?

Data gemmes altid som registreringer. Flere forskellige optagelser kan eksistere side om side i den samme MIDI-fil. Hver post kan have sin egen størrelse, dvs. antallet af bytes i forskellige poster kan være forskelligt. Data gemt i én post er relateret til hinanden på en bestemt måde. En post er i bund og grund en samling af sammenkoblede bytes.

Hver post begynder med sin identifikator, som består af fire bogstaver, det vil sige fire ASCII-bytes. Denne identifikator angiver, hvilken posttype der er repræsenteret i databytes indeholdt i posten. De fire bytes, der følger efter identifikatoren (hver bestående af 8 bits) danner en 32-bit værdi, der angiver længden (eller størrelsen) af denne post. Alle poster skal begynde med disse to felter: indtastnings-id'et og indtastningsstørrelsen. Disse to felter, der kun optager 8 bytes, danner indtastningshovedet.

Postlængden inkluderer ikke de 8 bytes i overskriften. Længdebytes angiver blot antallet af bytes i den post, der følger efter overskriften.

Her er et eksempel på en header (her er bytes repræsenteret i hexadecimal):

4D 54 68 64 00 00 00 06

Bemærk, at de første fire bytes af overskriften danner MThd (dvs. de første fire bytes af overskriften er ASCII-værdierne for bogstaverne 'M', 'T', 'h' og 'd'). De næste 4 bytes fortæller os, at der vil være 6 flere bytes i posten efter overskriften. Disse seks bytes skal efterfølges af den næste posthoved eller slutningen af ​​MIDI-filen.

Faktisk starter alle MIDI-filer med MThd-headeren, og dette faktum er en indikation af, at vi har at gøre med en standard MIDI-fil).

Optag MThd

MThd-indtastningen er 6 byte lang og følger MThd-identifikationen og et 32 ​​bit nummer (00 00 00 06).

Lad os se nærmere på disse 6 bytes efter 8-byte headeren i MTHD-indgangen.

De første to bytes med data indeholder information om formatet eller typen af ​​MIDI-filen. Der er tre forskellige typer (formater) af MIDI-filer:

De næste to bytes definerer antallet af spor gemt i filen, disse to bytes betegnes NumTracks. For filer af type 0 er NumTracks-værdien naturligvis altid 1. Andre værdier er mulige for de to andre typer.

De resterende to bytes angiver mængden af ​​tidsopløsning, det vil sige antallet af tidsimpulser (time ticks) pr. kvartalsvarighed, som er forkortet til PPQN i engelske ord . For eksempel, hvis din sequencer bruger 96 ppqn, vil det tilsvarende felt i posthovedet have den hexadecimale værdi 00 60.

Omvendt, hvis den første byte i det pågældende overskriftsfelt er negativ, så bruger det tilsvarende format SMPTE-standarden i stedet for PPQT-standarden. I dette tilfælde er den første byte i det midlertidige opløsningsfelt -24, -25, -29 eller -30, hvilket svarer til de fire standardtyper i SMPTE-standarden. Den anden byte (positiv værdi) angiver mængden af ​​opløsning i rammen. Standard billedopløsningsværdier er 4 (MIDI-tidskode), 8, 10, 80 (SMPTE) eller 100.

Ved at indstille billedværdierne til -25 og intra-frame-opløsningsværdien til 40, kan du indstille den tidsmæssige opløsningsværdi til en millisekunds varighed.

Følgende er et eksempel på en hel post af typen MThd, inklusive dens overskrift:

4D 54 68 64 MThd identifikator 00 00 00 06 MThd-postlængde er altid 6 bytes 00 01 Format for denne MIDI-fil 1 00 02 Denne fil indeholder 2 poster af typen MTrk 00 60 Pulserne pr. kvart node er 96.

MTrk-post

MThd-indtastningen efterfølges af MTrk-indtastningen. Dette er den eneste optagelsestype ud over MTHD-optagelse, der i øjeblikket er defineret for MIDI-filer. Hvis filen af ​​en eller anden grund indeholder en identifikator for en post af en anden type, er denne post sandsynligvis oprettet for et andet program, og denne post bør ignoreres i overensstemmelse med længden af ​​denne post, der er angivet i dens overskrift.

En MTrk-record indeholder MIDI-data og tidsstempelbytes samt valgfri information. Disse data refererer til ét spor. Det er klart, at antallet af MTrk-indgange i filen skal matche NumTracks-værdien angivet i MTHD-indgangen.

MTrk-posthovedet starter med en postidentifikator, som er fire ASCII-bytes 'M', 'T', 'r', 'k' efterfulgt af længden af ​​posten, dvs. et tal lig med antallet af bytes i optage. For forskellige spor kan længderne af MTrk-poster være forskellige. (For eksempel vil et spor, der indeholder en violinstemme fra Bach -koncerten , sandsynligvis indeholde flere data end et spor, der indeholder en basstemme, der kun har to toner pr. takt.)

Variable Længde Værdier - Hændelsestidsstempler

Et spor i en MIDI-fil er det samme som et spor i en MIDI-sequencer. Et sequencer-spor indeholder en række begivenheder. For eksempel kan den første begivenhed være den første oktav i C-tonen. Den anden begivenhed kunne være, at tonen "mi" blev slået med en tredjedel højere. Disse to begivenheder kan ske på samme tid. Den tredje begivenhed kan være fjernelse af sedlen "til". Denne hændelse kan forekomme et par slag senere efter den første hændelse (dvs. "før"-lyden vil blive droppet et par slag efter den blev taget). For hver begivenhed er dens tid angivet, det er på dette tidspunkt, at begivenheden indtræffer. Alle hændelser er organiseret inden for en enkelt post i sequencerens hukommelse i den rækkefølge, de forekommer i tid.

I en MIDI-fil placeres begivenhedstiden før de databytes, der beskriver selve begivenheden. Med andre ord, tidsstemplet for begivenheden går forud for beskrivelsen af ​​begivenheden. For eksempel, hvis den første hændelse indtræffer 4 tidsintervaller (tidsintervallet er indstillet i MTHD-recorden) efter starten af ​​afspilning, så sættes den tilsvarende deltaværdi - værdien af ​​tidsintervallet - til 04. Hvis den næste hændelse sker samtidig med denne første hændelse, så er værdien dens tidsdelta 00. Deltatid er således varigheden, udtrykt i elementære tidsintervaller, mellem en given hændelse og dens foregående hændelse.

Da alle spor antages at begynde at spille på tidspunktet 0, bliver deltatiden for den første begivenhed 0.

Deltatider gemmes som sekvenser af bytes, som kaldes værdier med variabel længde. Kun de første 7 bits af hver byte er signifikante til at bestemme deltatiden. Hvis deltatiden udtrykkes som et sæt på 32 bit, så er det nødvendigt at udpakke denne 4-byte værdi ved at udtrække en sekvens på fire 7-bit signifikante bytes (svarende til, hvordan det gøres til at transmittere SYSEX beskeder inden for MIDI protokollen ). Afhængigt af værdien af ​​deltatiden kan antallet af bytes være forskelligt. For at markere den sidste byte i rækkefølgen af ​​disse bytes, er det nødvendigt at lade den 7. bit af denne sidste byte være fri (den mest signifikante bit er 0). Så hvis deltatiden er mellem 0 og 127, så kan den udtrykkes i en enkelt byte. Den største deltatid er indstillet til 0FFFFFFF, en variabel længdeværdi på 4 bytes er påkrævet for at registrere en sådan tid. Variable længdeværdier for forskellige deltatider kan se sådan ud (deltatid er udtrykt som en 32-bit værdi):

Tidsdelta Tilsvarende variabel længdeværdi

00000000 00 00000040 40 0000007F 7F 00000080 81 00 00002000 C0 00 00003FFFFF 7F 00004000 81 80 00 00100000 C0 80 00 001FFFFF FF FF 7F 00200000 81 80 80 00 08000000 C0 80 80 00 0FFFFFFF FF FF FF 7F

Bemærk, at brugen af ​​værdier med variabel længde, dvs. at opdele en stor værdi i en sekvens af bytes, ikke er begrænset til tilfældet med deltatider. Variable længdeværdier bruges i MIDI-filer og i andre tilfælde.

Begivenheder

De første bytes (byte 1 eller bytes 1 til 4) af MTrk-posten angiver deltatidsværdien for den første hændelse i format med variabel længde. Databyten efter denne værdi er den første byte i MIDI-hændelsen. Denne byte kaldes begivenhedsstatusbyten eller den aktuelle MIDI-statusbyte. For MIDI-begivenheder repræsenterer den statusbytes for den pågældende hændelse. For eksempel, hvis denne byte er 0x90, så er denne hændelse Hit Note på MIDI Channel 0 hændelse. Eller, hvis denne byte er 0x23, så skal der tilgås statusbyte for den forrige hændelse. Det er klart, at den første MIDI-begivenhed i MTrk-recorden skal indeholde statusbytes. Statusbyten efterfølges af en eller to databytes, afhængigt af typen af ​​hændelse. Efter disse databytes findes den næste deltatidsværdi (som en variabel længdeværdi), og processen med at læse den næste hændelse begynder.

Et særligt tilfælde er SYSEX-meddelelser, der har bytestatus F0. SYSEX-begivenheder kan være af enhver længde. Statusbyten F0 efterfølges af en sekvens af værdier med variabel længde. Du kan få en 32-bit værdi, der er lig med antallet af bytes, der følger, som udgør SYSEX-hændelsen. Denne længde inkluderer ikke statusbytes (F0).

Overvej følgende MIDI SYSEX-begivenhed som et eksempel:

F0 7F 7F 04 01 7F 7F F7

I en MIDI-fil vil en sådan hændelse blive gemt som følgende sekvens af bytes (eksklusive deltatiden forud for hændelsen):

F0 07 7F 7F 04 01 7F 7F F7

FF-statusbyten er reserveret til brug som en ikke-MIDI-hændelsesstatus. FF-byten efterfølges af en anden byte, der angiver, hvilken type ikke-MIDI-begivenhed begivenheden beskriver. Dette er en slags anden statusbyte. Denne byte efterfølges af en værdi med variabel længde, der angiver, hvor mange bytes der er indeholdt i hændelsen. det vil sige, at den sætter længden af ​​begivenheden. Længde inkluderer ikke startstatus FF bytes, hændelsestype byte, hændelseslængde bytes. Denne specielle ikke-MIDI besked kaldes en metahændelse. Nogle af metahændelserne er beskrevet nedenfor. Medmindre andet er angivet, kan mere end én meta-begivenhed placeres i en MTrk-indgang, og den samme meta-begivenhed kan placeres i den samme post mere end én gang. Metahændelser kan have vilkårlige tidsstempler (deltatider). Som alle MIDI-begivenheder har meta-begivenheder deltatider (tidsstempler), der angiver mængden af ​​tid, der adskiller en given MIDI-begivenhed eller meta-begivenhed fra dens forgænger, uanset om denne hændelse er en MIDI-begivenhed eller en meta-begivenhed. På denne måde kan vi vilkårligt blande MIDI-begivenheder og meta-begivenheder.

Sekvensnummer (record)

FF 00 02 ss ss

Denne valgfri metahændelse skal vises helt i begyndelsen af ​​MTrk-posten, før det første ikke-nul tidsstempel eller før den første hændelse. Denne metahændelse indstiller sekvensnummeret (rekordnummeret). De to databytes ss ss svarer til dataene i MIDI Cue beskeden. I MIDI-filer af den anden type definerer disse numre numrene på hvert mønster (eller MTrk-plade), så rækkefølgen af ​​sange i filen kan styres af en MIDI Cue-besked. Hvis bytes ss ss udelades (længden af ​​denne metameddelelse er 0 i stedet for 2), så sættes MTrk-postnumrene i den rækkefølge, de er skrevet i filen (det første MTrk svarer til det første spor osv.) indeholde et enkelt mønster, kan kun indeholde en sekvensnummer-metameddelelse i den første MTrk-post. Flere filer af den første type, der indeholder forskellige sekvensnumre, kan betragtes som samlinger af uafhængige stykker.

Der kan kun bruges én metameddelelse med sekvensnummer pr. MTrk-indgang i en fil i format 2. Kun én metameddelelse med sekvensnummer kan bruges i en fil med format 0 eller format 1, og den metameddelelse skal vises i den første MTrk-indgang.

Tekst

FF 01 len tekst

Denne metahændelse indeholder enhver mængde tekst til ethvert formål. Len-værdien indeholder længden af ​​tekstbeskeden i bytes. Det er mest bekvemt at placere sådanne metameddelelser i begyndelsen af ​​en MTrk-indgang. Selvom den optagede tekst kan bruges til ethvert formål, skal du være opmærksom på, at der er andre meta-tekstbeskeder, der er specielt designet til at angive orkesterinstrumenter, sangtekster, sportitler og mere. Denne metahændelse er hovedsageligt til at tilføje kommentarer til en MIDI-fil, det forventes, at disse kommentarer vil blive ignoreret, når filer indlæses.

Bemærk, at værdien len er repræsenteret som en værdi med variabel længde.

Metabegivenhed Copyright

FF 02 len tekst

Metahændelsen for copyright-tekst er mest bekvemt placeret i begyndelsen af ​​en MTrk-indgang.

Bemærk, at værdien len er repræsenteret som en værdi med variabel længde.

Sekvensnavn/spornavn

FF 03 len tekst

En tekstmetahændelse, der indeholder navnet på en MIDI-sekvens eller et spor. Det er praktisk at placere denne meta-hændelse i begyndelsen af ​​MTrk-posten.

Bemærk, at værdien len er repræsenteret som en værdi med variabel længde.

Værktøj

FF 04 len tekst

Tekst meta-begivenhed, der indeholder navnet på det instrument, der spiller dette spor. Navnet på instrumentet kan afvige fra navnet på selve sporet. For eksempel kan titlen på et spor f.eks. være "Lenskys Aria", mens navnet på et instrument kan referere til en stemme og indeholde betydningen " Tenor ".

Det er mest bekvemt at placere en eller flere meta-begivenheder af denne type helt i begyndelsen af ​​MTrk-recorden, da disse hændelser indeholder hjælpeinformation, der informerer brugeren om, hvilket instrument der spiller dette spor, såvel som andre nyttige data. Normalt er de reelle parametre, der specificerer typen af ​​instrument, der spiller sporet, gemt i en fil som MIDI-begivenheder af MIDI Program Change-typen, og de metahændelser, der er beskrevet her, giver dig mulighed for at give brugeren praktisk læsbare beskrivelser, der svarer til konfigurationerne lavet i MTrk-registre.

Bemærk, at værdien len er repræsenteret som en værdi med variabel længde.

Ord

FF 05 len tekst

En tekstmeta-begivenhed, der indeholder ordene fra et vokalværk, der falder på et bestemt musikalsk beat. Én "Word"-metahændelse skal indeholde en enkelt stavelse af tekst.

Bemærk, at værdien len er repræsenteret som en værdi med variabel længde.

Markør

FF 06 len tekst

Tekst meta-begivenhed En markør er sat på et bestemt musikalsk beat. Denne begivenhed kan bruges til at organisere løkker og kan angive start- og slutpunkterne for løkken.

Bemærk, at værdien len er repræsenteret som en værdi med variabel længde.

Cue Point

FF 07 len tekst

"Indgangspunkt"-tekst-metahændelsen kan bruges til at angive indgangspunktet for en ekstern datastrøm, såsom startpunktet for en digital lydfil. Tekstværdien af ​​denne meta-begivenhed kan indeholde navnet på en WAV-fil, der indeholder digital lyd.

Bemærk, at værdien len er repræsenteret som en værdi med variabel længde.

MIDI-kanal

FF 20 01 cc

Denne valgfri metahændelse er normalt placeret i begyndelsen af ​​MTrk-meddelelsen, før det første ikke-nul-tidsstempel og før den første metahændelse, eksklusive sekvensnummermetahændelsen. Meta-begivenhed "MIDI-kanal" indstiller værdien af ​​den MIDI-kanal, som alle efterfølgende meta-begivenheder og SYSEX-begivenheder vil blive knyttet til. Databyten cc er MIDI-kanalnummeret, 0 er den første kanal.

MIDI-specifikationen angiver ikke et kanalnummer for SYSEX-begivenheder og metabegivenheder. Hvis der oprettes en fil af type 0, så er alle SYSEX-begivenheder og meta-begivenheder på samme spor, og det er svært at fordele disse hændelser mellem de tilsvarende kanal- (stemme) meddelelser (f.eks. hvis du vil udpege kanal 1-delen som "Fløjtesolo", og kanal 2-delen som "Rørsolo", skal du bruge to "Spornavn" meta-begivenheder for at indtaste disse navne, men da begge disse numre er placeret på samme kanal, skal du sætte "MIDI-kanal"-metameddelelsen før metameddelelsen for det første spornavn, hvori nummeret på den tilsvarende kanal skal angives, og før den anden metameddelelse af spornavnet placeres metameddelelsen fra MIDI-kanalen, der angiver nummeret af den anden kanal.

Mere end én MIDI-kanal-metameddelelse kan bruges på et enkelt MIDI-spor, hvis begivenhederne i det spor skal fordeles på tværs af flere MIDI-kanaler.

MIDI-port

FF 21 01pp

Dette er en valgfri hændelse, der typisk er placeret i begyndelsen af ​​en MTrk-record, før den første ikke-nul delta-tid og før den første MIDI-hændelse, som bestemmer hvilken MIDI-port (eller enhed) begivenhederne i denne MTrk-meddelelse er knyttet til . Databyten pp er portnummeret, nul pp svarer til den første MIDI-enhed i systemet.

MIDI-specifikationen giver kun 16 kanaler pr. input- eller outputport (enhed, stik, instrument - terminologien kan variere) MIDI. MIDI-kanalnummeret for hver MIDI-begivenhed er indeholdt i hændelsens statusbyte, hvor den optager de fire mindst signifikante bits. Kanalnummeret er således altid et tal mellem 0 og 15. Nogle gange giver systemet dig mulighed for at arbejde med mere end 16 MIDI-kanaler, det bliver nødvendigt at overvinde de begrænsninger, som et lille antal MIDI-kanaler pålægger, og udvide mulighederne for MIDI dataudveksling, gøre informationsudveksling med eksterne MIDI-enheder mere effektiv, dvs. give musikeren mulighed for at arbejde med mere end 16 kanaler. Nogle sequencere tillader også mere end 16 MIDI-kanaler at blive input og output samtidigt. Desværre giver MIDI-protokollen ikke mulighed for at bruge mere end 16 MIDI-kanaler inden for en statusbyte i en MIDI-begivenhed. Derfor er der behov for en yderligere metode til at skelne mellem hændelser, der svarer til den første kanal på den første MIDI-port, og hændelser, der svarer til f.eks. den første kanal på den anden MIDI-port. Den beskrevne meta-hændelse gør det muligt for sequenceren at bestemme, hvilken MIDI-port der skal sendes begivenhederne i en given MTrk-besked til.

Det er tilladt at have mere end én "MIDI Port" meta-begivenhed inden for samme MIDI-spor, hvis du vil ændre værdien af ​​MIDI-porten på et bestemt tidspunkt.

Tempo

FF 51 03 tt tt tt

Denne begivenhed indikerer en ændring i tempo. De 3 bytes data tt tt tt definerer tempoet i mikrosekunder i en kvart tone. Med andre ord fortæller tempoværdien (µs) dig, hvor længe hver af "kvarttonerne" skal lyde. Hvis tt tt tt = 07 A1 20, så skal hver kvart tone have en varighed på 07 A1 20 (eller 500.000) mikrosekunder. (Tjek med din Windows-beregner i videnskabelig tilstand). Typisk udtrykker musikere tempo som "summen af ​​kvarte toner i hvert minut (dvs. tidsrum)". Dette er det stik modsatte af, hvordan MIDI-formatet udtrykker det. For at konvertere tempoet til MIDI-format (BPM - slag pr. minut): BPM = 60000000 / (tt tt tt). For eksempel tempo 120 BPM = 07 A1 20 mikrosekunder pr. kvart tone. BEMÆRK: Hvis tempoet ikke er defineret, antages 120 BPM som standard.

SMPTE Offset

FF 54 05 h mn se fr ff

Tildeler starttidspunktet (timer, minutter, sekunder, frames, subframes) for et MIDI-spor i henhold til SMPTE-standarden.

Time Signature ( størrelse )

FF 58 04 nn dd cc bb

Den musikalske størrelse er givet af fire bytes. • nn og dd er henholdsvis tæller og nævner i node. Nævneren beregnes som to i dd potens. (dd = 2: 1/4; dd = 3: 1/8 osv.) • cc udtrykker antallet af MIDI-ure i et metronomklik. • bb udtrykker antallet af noterede 32. toner i en MIDI kvart node (24 MIDI clocks). Denne begivenhed giver et program mulighed for at relatere, hvad MIDI opfatter som en fjerdedel, til noget helt andet. For eksempel vil 6/8 tid med et metronomklik hver 3. ottendedel og 24 ure pr. kvart node være følgende hændelse: FF 58 04 06 03 18 08 BEMÆRK: • Hvis ingen taktart er defineret, er standardværdien 4/4 er antaget. • Time Signature kan kun omdefineres ved taktstart.

Key Signature ( tonalitet )

FF 59 02 sf mi

• sf = -7 for 7 lejligheder, -1 for 1 flad osv., 0 for C-dur eller naturlig a-mol, 1 for 1 skarp osv. • mi = 0 for dur, 1 for mol.

Slut på spor

FF2F00

Denne begivenhed er påkrævet. Det skal være den sidste begivenhed i hver MTrk-indgang. Det er en eksplicit indikation af slutningen af ​​MTrk-posten. En enkelt "End of Track"-metahændelse er tilladt for hver MTrk-indgang.

Forbedring af lyden af ​​en MIDI-synthesizer

MIDI-filer er et sæt kommandoer til en synthesizer ( sequencer ) installeret på en computer, men bærer ikke lyddata klar til afspilning, i modsætning til tracker-moduler.

Ofte passer lyden af ​​"Software Synthesizer" installeret som standard på Windows ikke til brugeren (på grund af kvaliteten af ​​samples i hans bank af lyde). For at forbedre lyden kan du vælge en bank med bedre lydkvalitet, eller en synthesizer med en anden måde at skabe lyd på end en bølge.

Konverter til MIDI

Der findes forskellige programmer til at konvertere musikalske optagelser til MIDI-kommandoer. Både WAV - filer og MP3-filer , lyd-cd- spor samt lyden, der kommer direkte fra mikrofonen uden at optage den til en fil , kan bruges som kildefiler . Nogle programmer er i stand til at genkende polyfonisk musik, det vil sige, der indeholder mange stemmer. For at forbedre kvaliteten af ​​genkendelsen i nogle programmer kan du bruge den indbyggede musikeditor .

MIDI kultur

Se også

Noter

  1. MIDI i detaljer. Del 1 - Grundlæggende. . Hentet 12. maj 2010. Arkiveret fra originalen 5. januar 2011.
  2. MIDI i detaljer. Del 2 - Kanalbeskeder. . Dato for adgang: 8. februar 2016. Arkiveret fra originalen 15. februar 2016.
  3. MIDI i detaljer. Del 3 - Systemmeddelelser. . Dato for adgang: 8. februar 2016. Arkiveret fra originalen 15. februar 2016.
  4. Artikler om MIDI . Dato for adgang: 8. februar 2016. Arkiveret fra originalen 22. februar 2016.
  5. MIDI-specifikation . Dato for adgang: 8. februar 2016. Arkiveret fra originalen 22. december 2015.
  6. David Miles Huber. MIDI - manualen  . - Carmel, Indiana, 1991. - ISBN 978-0672227578 .
  7. Jeffrey Hass. Kapitel tre : Sådan fungerer MIDI 2  . Arkiveret fra originalen den 17. juni 2015.

Links