|
Dette er version 1.0 af MIDI-siden, men jeg kommer forbi,
en gang i mellem, og opdaterer den.
Jeg vil starte min Midiside med en tekst som jeg skrev til et Roadiekursus i 1997,
hvor jeg var elev i et arbejdsløsheds-projekt. Læreren, som var en af de dygtigste lydmænd
i Danmark, mente ikke at han vidste nok om MIDI til at undervise i det. Jeg insisterede
dog på at emnet var relevant, et dejligt ord fra den tid, og fik til opgave at lave et
oplæg til klassen. Da Martin så oplæget, kunne han godt se at det var en del mere avanceret
end han havde forventet og han mente at ingen andre i klassen ville fatte en brik af det
jeg havde skrevet, så mit skrift blev uddelt til klassen og i øvrigt forbigået i stilhed.
De andre elever var ikke interesseret i teknik og binære talsystemer, men de var gode til
at ryge hash og lyfte tunge ting.
Det er nu på tide at jeg bekender kulør og tilstår, at jeg er kilden. Jeg har været så fræk at kopiere teksten fra Soundcheck.dk´s side, med de html-koder de har indsat, så jeg sparer en dags tastearbejde. Men jeg har nu finpudset teksten og fundet de oprindelige illustrationer fra Store midiboken, så læseren, forhåbentlig, kan få den fulde glæde af mit oprindelige arbejde. Larses illustrationer er de sort/hvide stregtegninger, som er kopireret med forfatterens tilladelse, mens jeg selv har produceret de kulørte billeder.
Herfra skal lyde en stor TAK for den åbenhed Lars Ekström har vist i forhold til at lade mig bruge hans materiale. Jeg håber at det har været tilliden værd. Denne side er mere interessant, hvis man peger på billederne. Jeg arbejder på at lave en engelsk udgave af denne side. Den bliver nok lagt på internettet midt i Juni.
Midi-introFormålet med denne tekst er at give en generel introduktion til MIDI-stystemet og hvordan det anvendes. Derudover vil jeg gå tæt på MIDI-tidskoder og hvad de bruges til. Jeg vil, hvis jeg får tid og gider, gå lidt mere i detaljer med hvordan de enkelte koder er udformet og hvad der sker, når de sendes og modtages på bit/byte-niveau.
MIDI-systemetkan sende informationer på 16 kanaler pr. forbindelse. Dette gøres ved at kode de enkelte data med et kanalnummer. Når et MIDI-apparat modtager data, vil de kun reagere på de data der er kodet med det rigtige kanalnumer. MIDI har 4 forskellige MIDI-modes(tilstande), som hver har deres fordele og ulemper. De bestemmer hvilke kanaler der modtages og hvor mange toner der kan sendes til lydmodulet. Der er ingen faste navne på disse modes, så for at undgå forvirring er det bedst at være opmærksom på nummeret. Der arbejdes med følgende termer:
Dette er så de forskellige MIDI-modes:
MIDI-apparaternekan kendes på at de har et eller flere hun-DIN-stik der er mærket med MIDI-IN, MIDI-OUT og MIDI-THROUGH. På nogle MIDI-apparater er der flere stik til MIDI-OUT eller MIDI-IN. Nogle af disse apparater kan sende eller modtage på 32 kanaler(2 stik).MIDI kan kun sende data en vej for hver ledning. MIDI-systemet kan forbindes med 4 typer stik:
Ved at tage signalet fra MIDI-THROUGH og sende det ind i MIDI-IN kan man lave kæder af apparater der får samme data. Det anbefales at man ikke sætter flere end 5 apparater i serie, da der så kommer en forsinkelse på mere end 30 millisekunder (som er grænsen for hvad øret kan skelne). MIDI-standarten sætter ikke nogen grænse for hvor mange apparater der kan sættes sammen. Eneste begrænsning er når MIDI's hastighed giver hørbare gener. (Se også under MIDI-koblingsudstyr) Compuetern er efterhånden blevet kernen i ethvert større MIDI-system. Computeren kan ikke umiddelbart sende og modtage MIDI-signaler. Derfor kobler man et MIDI-interface på computerens serieludgang, der som regel har MIDI-IN, MIDI-THROUGH og flere MIDI-OUT. Fra computeren styres de øvrige apparater ved hjælp af et sequencerprogram. Her kan man både modtage, gemme, redigere, afspille og meget mere. Der 3 typer Keyboards:
På disse keyboards er der flere måder at modificere lyden på. Anslagsfølsomhed er efterhånden standard. Aftertouch mærker ændringer i trykket mens tangenten er trykket ned. Pitchbenderen ændrer tonehøjden og modulations"hjulet" tilsætter vibrato. Dertil kommer pedaler og blæsefølere, samt de programmerede ændringer der hører til lyden. Alle disse data kan sendes via MIDI til computere eller andet MIDI-udstyr. MIDI-lydmoduler er i praksis en synthesizer/sampler uden keyboard. Det kan kun modtage MIDI-OUT. Det kan også spille mange toner og instrumenter samtidigt og kobles ofte til en computer med cequencerprogram, som eneste externe enhed i til hjemmebrug. Trommemaskinen er et væsentligt MIDI-apparat, som indeholder en sequencer der kan programmeres til forskellige rymtmemønstre, som så kan afspilles med gantagelser, variationer og fill-in's så man kan have hele den nødvendige rytmebaggrund til et nummer på en maskine. Trommemaskinen har sit eget lydmodul med samples af et stort udvalg af trommelyde og pads(store knapper) som man kan spille på direkte eller bruge til programmering. Den var hovedinstrumentet i discomusikken og de senere år har dance music'en taget den til sit hidsigt bankende hjerte. Den bruges også meget i studier til at holde rytmen, når man bliver træt af at høre på trommeslageren eller hvis han er fuld. Og så selvfølgelig til synkronisering af sequencere og andet midi udstyr. Efterhånden kan man få næsten alle typer instrumenter til MIDI. Først kom selvfølgelig synth'en, men MIDI-guitaren fulgte snart efter. Her kunne man i staten sætte en føler på bag strengene som via noget elektronik gætter hvilken tone der bliver spillet og sender den tilsvarende MIDI-kode videre. Den kunne kun opfatte halvtonespring og hvis man vred strengen, spillede lavede vibrato eller akkorder gik der koks idet. Senere blev der lavet særlige MIDI-guitarer, (som Synth-axe der koster et par hundrede tusind Kr.) men de kan stadig ikke erstatte alle de muligheder en rigtig guitar har for musisk udtryk og vil altid lyde af MIDI. Med tiden er der også kommet mange MIDI-blæserinstrumenter, som med et blæsefølsomt mundstykke kan simulere de rigtige instrumenter på ganske overbevisende vis. Dette giver fx. en fløjtenist mulighed for via midi at spille på forskellige blæserinstrumenter uden at skulle lære diverse spilleteknikker og så kan han/hun også lege med alle mulige andre lyde fra synth's, samplere osv. Derudover er der en mængde andre maskiner med tilknytning til lydgengivelse der kan styres af MIDI-data. FX-boxe kan programmeres til at reagere på program/lyd-skift, NOTE-ON-meddelelser. En særlig vigtig mulighed i denne forbindelse er fænomenet "Bulkdump", hvor alle indstillinger kan sendes ud på MIDI og gemmes på disk. Når man så kommer tilbage og en eller anden dum elev har pillet ved dimsen, kan man bare tage sin disk og hælde det hele tilbage. Båndoptagere kan modtage fjernstyringsordrer med tidskode og selv spole frem og tilbage til det rette tidspunkt på båndet, så man kan side i fred og ro i sin magelige stol og koncentrere sig om mixning.MIDI-koblingsudstyrMIDI-THROUGH-boxen tager et MIDI-IN signal ind som kopieres til flere MIDI-THROUGH-udgange. Ved størrer opsætninger med mange MIDI-apparater undgår man den forsinkelse der kommer ved at serieforbinde og det hjælper også til at gøre opstillingen mere overskuelig. MIDI-merger-boxen har flere MIDI-IN-stik og et eller flere MIDI-OUT-stik. Med denne kan man fx. sætte flere keyboards og computere osv. i MIDI-IN-stikkene og få et samlet MIDI-signal ud til et MIDI-lydmodul. Man skal dog sørge for at sende på forskellige MIDI-kanaler, for at undgå at dataene fra de forskellige apparater blandes sammen med fejl til følge. MIDI-switcher(mekanisk)/MIDI-patchbay(elektronisk) har flere MIDI-IN-stik og flere MIDI-OUT-stik, og ideen er at man kan vælge hvilke indgange der kobles til hvilke udgange. Derudover har MIDI-patchbay's ofte mulighed for at filtrere MIDI-signalerne så fx. SysEx-meddelelser og lydskift pilles fra eller oversættes. MIDI-sprogetJeg vil nu gå lidt tættere ind på sproget MIDI og hvad det kan gøre for os.
MIDI er baseret på computer teknik og arbejder derfor med talkoder
(Bits,Nibbles og Bytes). For at for forstå det er det desværre nødvendigt at
sætte sig ind i 2-talssystemet, kaldet binære talsystem. Det gider jeg ikke
spilde tid på, så her kommer nogle få fakta og dem der er interesseret kan
så begrave sig i det på egen hånd. Lynkursus i det binære talsystemEn Bit er et 1 eller et 0. I princippet sættes de sammen på samme måde som 10-talssystemet, hvor et tal der er længst til højre tæller enere og det næste til venstre for det tæller den mindste værdi der ikke kan tælles til med et cifer.(fik i den derude).I vores 10-talssystem kan man tælle til 9 og den næste bliver 1 i mente og et nul. sådan: 10. I det binære system kan man tælle til 1 og menten svarer til værdien 2 sådan: 10 (= 2). Hvergang man flytter en plads til venstre vil et 1-tal på den plads svare til den dobbelte værdi. Altså fra højre mod venstre vil et 1-tal svare til 1, 2, 4, 8, 16, 32, 64 og 128. Et nul på de samme pladser vil selvføgelig svare til 0 uanset hvor det står. For at finde den tilsvarende værdi i 10-talssystemet lægger man 1'ernes værdier sammen. fx. bin: 10101010 = 128+0+32+0+8+0+2+0=170. En byte er den grundliggende informationsenhed i systemet og kan antage 256 forskellige værdier (0->255)(00000000->11111111). En halv byte kaldes en nibble og består af 4 bits, som kan antage 16 værdier (0->15)(0000->1111). Derudover skal nævenes at første og sidste bit i en byte 11111111 kaldes MSb og LSb (bemærk det lille b): MSb (most significant bit= mest betydende bit, yderst til venstre), LSb (least significant bit= mindst betydende bit, yderst til højre). Hvis 2 bytes(grupper af 8 bits) står ved siden af hinanden, vil den til venstre have 256 gange højere værdi end den til højre, fordi man kan tælle til 256 med en byte. Derfor har man også navne for disse to enheder.(med stort B) MSB (most significant byte= mest betydende byte, til venstre) LSB (least significant byte= mindst betydende byte, til højre). Og nu til det sjove. Hvad kan MIDI-sproget tilbyde os af service.
Når der sendes en MIDI-meddelelse, der er kodet med kanal-nummer, vil den første byte altid være en status-byte der angiver hvilken type data der kommer efter. En status-byte er sammensat af 2 nibles: 1 statusnible der altid har 1 som mest betydende bit, MSbit (længst til venstre) og nible 2, der angiver et kanalnummer. Det ser således ud i binær:
Generelt kan skrive en status-byte på formen:
Bytes'ne kommer til at se således ud for de forskellige channel-messages:
------------------------------------------------ Efter en status-byte følger som regel 2 eller flere data-bytes afhænig af typen. MSb, første bit, på en databyte er altid 0 (Eks. 01111111=127 er den største værdi). Note-On:
Data-byte 1: Et normalt MIDI-klaver med 88 tangenter sender 21-108. 60 svarer normalt til C1. Data-byte 2: Angiver hvor hurtigt tangenten trykkes ned (tonens startstyrke). Her er en tabel der viser de styrkeniveauer der normalt bruges i nodesystemer sammen med de tilsvarende midi-værdier.
Bemærk at hvis Attack-Velocity er 0, vil det opfattes som en note-off-meddelelse. Dette gør det muligt at sende i "running mode", hvor en status-byte følges af mange pakker med data-bytes, indtil en ny status-byte, med MSb=1, sendes. Data-bytes'ne tolkes herefter udfra det format der hører til den nye status-byte. Note-Off: Sendes når en tone afsluttes på et MIDI-instrument.
Data-byte 1: Som Note-On Data-byte 2: En hurtigere sliphastighed ( høj værdi ) giver ofte hurtigere udklingning af tonen, men kan programmeres til at gøre hvadsomhelst ved hjælp af indstillinger i det apparat der modtager MIDI-data. Polyphonic Key Pressure/After touch:
Data-byte 1: Som Note-On Data-byte 2: Sender en ny værdi for hver tangent der er trykket ned lige så snart trykket ændrer sig.Findes kun på dyre keyboards. Sender mange data og derfor skabe problemer hvis mange instrumenter bruger samme MIDI-forbindelse. En almindelig anvendelse er til vibrato-styring, ved at ændre trykket efter en tangent er anslået. Channel Key Pressure:
Data-byte 1: Som Note-On, men hvis der er flere trykket ned ad gangen vælges den sidst nedtrykte. Data-byte 2: Sender en ny værdi for alle tangenter der er trykket ned (på den kanal) lige så snart trykket ændrer sig. Normalt sendes den højeste værdi, men nogle bedre keyboards beregner et gennemsnit, dette kaldes plastisk dynamik. Sender mange data og kan f.eks bruges til vibrato-styring ved at ændre trykket efter anslaget. Program Chance:
Data-byte 1: Det nye program nummer. På keyboards og lydmoduler bruges denne funktion til at skifte lyd. Der har i lange tider ikke været en standard for hvilke lyde der ligger på hvilke programpladser, men Roland har forsøgt at indføre en standard GM (General MIDI system Se kopi af side 73-74), som de ihvert fald selv holder fast ved. Enkelte andre fabrikanter er hoppet med, men det varer nok lidt før der kommer helt styr på denne del af MIDI-systemet. En FX-maskine der modtager en P. C. skifter program og andre MIDI-maskiner kan gøre andre ting, f.eks tænde en kaffemaskine eller skifte CD (øh.. fremtidsmusik?). Der kan opstå et problem med om det første program hedder 0 eller 1, så kan man får lyd 15 når man beder om nummer 14. Det påstås at nogle maskiner kan finde på at begynde endnu længere oppe i talrækken, men det er jeg ikke selv stødt på. Control Chance:
Controller ID Nr.(Databyte 1): Angiver hvilken kontrolværdi der skal ændres.( se. vedlagte kopier af side 26-27). Disse værdier svarer til en knap, pedal, effekthjul eller andet som kan ændres real-time ved en lyd eller et program i en MIDI-maskine. Controller Value(Databyte 2): Den ny værdi kontrollen skal stilles på. Der er 3 typer af kontroller:
Disse controller sendes til en bestemt kanal:
Nr. 121-127 Channel Mode Messages:
Pitch Bender:
Databyte 1(LSB): Mindst betydende byte af PB.-hjulets position. Databyte 2(MSB): Mest betydende byte af PB.-hjulets position. Sammen giver de mulighed for 16384 værdier. Desværre kan disse værdier sendes efter 2 systemer, der begge bruges. 1. Hvilepositionen angives med 0 og værdierne går fra -8192 til +8191. 2. Hvilepositionen angives med 8192 og værdierne går fra 0 til +16383. Hvis man kan finde ud af hvilken model systemet bruger, kan man med denne funktion hæve eller sænke tonen indenfor det antal halvtoner der er programmeret i "lyden"'s data. MIDI-Tidskodesystemer: MIDI-time code(MTC): TMC er beregnet til at samarbejde med video-/film-udstyr og derfor regnes i timer, minutter, sekunder og frames( 24, 25, 30, 30drop). Frames angiver hvor mange billeder hvert sekund deles i. 30drop er en hastighed, hvor der er 29,97 billeder pr. sekund, så man dropper 2 ekstra farmes ind hver 10. minut, for at få det til at passe helt præcist. Meddelelserne sendes 4 gange pr. frame, altså 120 gange ppr. sekund ved 30 f./s Kodningen af de tidskoder der sendes er ret komplex og jeg vil ikke gå i detaljer med det. Full Messages: Det bruges når hovedmaskinen f.eks. en videobåndoptager spoler båndet og sender de samme oplysninger om timer, munutter, sekunder og frames( 24, 25, 30, 30drop), men kun en gang hver frame. Det fylder 10 bytes, men belaster ikke systemet lige så meget som MTC. Når den så er nået frem til det ønskede sted, venter den til de andre maskiner melder at de også er nået frem til samme kode, så starter den med at sende MTC igen. SMPTE(Society of Motion Picture and Televition Engineers): Denne tidskode er udviklet af NASA for at kunne synkronisre billeder fra forskellige sende-stationer. Siden er det blevet den altdominerende standard indenfor radio, video og film. SMPTE deler tiden op i timer, minutter, sekunder frames( 24, 25, 30, 30drop) og Bits(80 billeddele). Der bruges 80 bits til alle værdier i en tidsangivelse(et tidspunkt). Koden består af en firkantsvingning hvis klokkefrekvens normalt holdes indenfor 900hz.-2400hz. Eksperter kalder SMPTE for LTC(Longitudinal Time Code). Et problem med SMPTE er at man ikke kan køre langsommere end 1/10-1/20 af normal afspilningshastighed uden at koden bliver svær at læse, dette går dog normalt først ud over udlæsningen af bits og rettes op når næste korrekt læste tid er dekodet. Hvis du indspiller og afspiller SMPTE må du aldrig bruge filtrering eller støjreduktion, da det ødelægger firkantkurvens form. For at få de 3 ovennævnte tidskoder til kommunikere med hinanden har nogle kloge personer udviklet DTL(Direct Time Lock) og DTLe(Advanced Direct Time Lock) som er forskellige konverteringssprog der oversætter koder mellem SMPTE og TMC/Full Messages. De kan fås som software til computere eller som boxe. MIDI-Cueing Messages(MTC): Disse koder er en del af MTC-systemet og bruges til at sende styreordrer til apparater så som Studiebåndoptagere, harddiskrecordere osv. Her en liste over nogle af de funktioner der kan sendes: Set/slet Punch in points start her ved synkronisering af indspilning Set/slet Punch out points. slut her ved synkronisering af indspilning Set/slet Event start point. start event (hendelse f.eks. lydeffekt) her Set/slet Event slut point. slut event (hendelse f.eks. lydeffekt) her Set/slet cue point et sted man ønsker at der skal spoles til MIDI Clock: Dette system tæller taktslag og noder, sådan at forstå at der f.eks. (normalt) sendes 24 MIDI-Clock-meddelelser for hver fjerdedelsnode. Der bør kun være en MIDI Clock-master i et system. Det kan f.eks. være en computer der styrer en eller flere sequencere. Når de modtager signalet justeres hvor hurtigt de sender melodi-data. så alle spiller melodien med samme hastighed.(se bilag. Kopi af side 47) Fortsættelse følger! |
|
Skabt: 21.6.2009
Opdateret d. 16.4.2011 Via |