www.hobbydraaiorgel.nl

Midi: wat is dat nu eigenlijk?

 

Wie de computer gebruikt bij het maken van orgelboeken of –rollen werkt dus met computerbestanden in midi-indeling (format),  genoemd: midi-files. In tegenstelling tot bijvoorbeeld muziek-CD’s, wave-files of mp3-files op computers, bevatten midi-files geen muziek. Op de CD of in de mp3 zit de muziek opgeslagen in de vorm van geluidstrillingen, bijna op precies dezelfde manier als de oude grammofoonplaat. De afspeelapparatuur zet de bitjes op de CD of de hobbeltjes in de groef van de plaat om naar geluid zonder te ‘weten’ wat het allemaal voorstelt. Het maakt dus totaal geen verschil of er muziek, spraak of het ruisen van de wind is opgenomen. In een midi-file zit geen geluid, maar eigenlijk alleen het recept om geluid mee te maken. In korte codes staat daarin welke noten met welk geluid op welk moment moeten worden weergegeven.  Deze codes vertegenwoordigen dus de gedetailleerde muzikale gebeurtenissen en worden midi 'events' genoemd (spreek uit ievènts, met de klemtoon op de laatste lettergreep). Er zijn veel typen events gedefinieerd binnen midi, maar voor het boek- en rolproductieproces gebruiken we maar enkele soorten, zoals: ‘start noot’, ‘stop noot’, tempo, maatsoort en nog een paar andere.

Het afspelen van midi-files gebeurt door het doorgeven van die codes aan een zogenaamde synthesizer die uit de codes het gewenste geluid samenstelt (‘synthesize’ betekent letterlijk dan ook ‘samenstellen’). In een midi-keyboard zit meestal de synthesizer ingebouwd, evenals de geluidskaart in de PC. De beltonen van een GSM-toestel worden ook in een midi-file bewaard en door de synthesizer in het toestel ten gehore gebracht.

 

Als je eenmaal een midi-file hebt, kan je die bewerken met een speciaal daarvoor bestemd editor-programma, zoals Cakewalk of  Noteur. In plaats van de midi-events met de hand te moeten veranderen (wat in principe wel zou kunnen, maar helemaal niet leuk is om te doen) visualiseert het editor-programma de ingelezen midi-file zodanig dat je in een bekend stramien kunt werken. Een bekend stramien is het normale notenschrift, maar voor ons doel wordt meestal de zogenaamde pianorol methode gebruikt. Als je in de pianorol een noot verwijdert, verwijder je in werkelijkheid alleen de start- en stopevents van deze noot. Als je het tempo verandert wordt alleen het tempoevent aangepast, waarna Noteur (Cakewalk kan dat niet, dus het beeld blijft eender) de noten opnieuw tekent die dan verder uit elkaar of dichter bijelkaar komen te liggen en de nootlengten zichtbaar veranderen.

 

Als de midi-file klaar is kan je hem uiteraard beluisteren, maar je kunt de midi-file ook in Midiboek openen, die bij de functie ‘vertalen’ de informatie in de events gebruikt om daarmee de gaten voor boek of rol te tekenen.  Wie een boek of rol automatisch wil laten kappen stuurt de midi-events via de midi-outpoort van PC of midiplayer via een standaard midikabel naar een kapmachine die een midi-inpoort heeft en de events omzet tot de benodigde mechanische bewegingen. Omdat een kapmachine vaak veel langzamer loopt dan het werkelijke tempo en omdat er boeken of rollen met verschillende gamma’s moeten kunnen worden gekapt, worden de beluisterbare midi-files eerst nog in de PC met een speciaal programma omgezet in een vorm die geschikt is voor de kapmachine en het gewenste gamma. Dit geldt ook voor midi-files die ingelezen worden: ook deze moeten eerst van het machineformat worden omgezet naar beluisterbare midi-files. Sommige kapmachines, zoals de Midster, werken niet direct met midi als input, maar werken via de parallele poort van de computer. In dat geval gebruik je in de computer een aantal speciale programma’s die de events uit de midi-file omzetten naar andere codes die vervolgens naar de parallelle poort worden gestuurd.

 

Wie beschikt over een draaiorgel met boeken of rollen heeft tegenwoordig de mogelijkheid om zich bij het maken van de boeken of rollen te laten helpen door de computer. Het proces van het maken van boek of rol verloopt in aan aantal stappen, waarvan je er een aantal gebruikt of misschien wel alle, afhankelijk van mogelijkheden of behoeften:

1)      het inspelen van muziek door gebruik te maken van een instrument dat de noten doorgeeft aan een PC die deze daar dan vastlegt

2)      het inlezen van bestaande rollen of boeken met een machine die de noten doorgeeft aan een PC die deze daar dan vastlegt

3)      het met de hand ingeven van noten in een PC met behulp van een zogenaamd editor-programma zoals Cakewalk of Noteur

4)      het bewerken van in een PC opgeslagen melodiën met een editor-programma

5)      het omzetten van de in de PC vastgelegde noten naar papieren afdrukken, bijvoorbeeld met Midiboek

6)      direct produceren van boeken of rollen met een kapmachine die door de computer wordt aangestuurd.

 

In de vorige opsomming wordt gesproken over het vastleggen van noten of melodiën in de PC en dat is waar we midi voor nodig hebben. Midi is een afkorting van ‘musical interface for digital instruments’. Het is een geheel van afspraken waardoor alle ‘midi’-instrumenten en computers muziek met elkaar kunnen uitwisselen zolang ze zich aan de afspraken houden. De afspraken hebben er toe geleid dat er een aantal dingen zijn gestandaardiseerd, zoals:

1)      alle input- en outputpoorten (midi-in en midi-out) zijn eender op alle instrumenten die met midi werken

2)      alle instrumenten en PC’s die elkaar iets toesturen gebruiken dezelfde standaard midi-boodschappen

3)      het opslaan van de melodie in computerbestanden gebeurt op een standaard manier: de midi-files.

 

 

Dit verhaal is wat je minimaal moet weten als je met midi werkt voor draaiorgels als je alleen rollen of boeken maakt zonder slagwerk of tegenzang. Maar als je wil weten wat een channel of een track nu eigenlijk is, of als je wat meer wil weten over de inhoud van midifiles,  lees dan ook het volgende deel.

 

 

Midi – meer details over de werking en de toepassingen

 

Midi is ontwikkeld als een transportprotocol, zeg maar een electronische taal, tussen electronische muziekinstrumenten, synthesizers en dergelijke. Als voorbeeld nemen we een bandje met een keyboard, een bas en een drumstel. De instrumenten en de synthesizer zijn onderling verbonden met kabels. De instrumenten kunnen zelf geen geluid maken, maar sturen boodschappen, events genoemd, naar de synthesizer. Deze events bevatten toonhoogte (key) en volume (velocity), zodat de synthesizer het event kan omzetten naar het bedoelde geluid. Omdat alle instrumenten op hetzelfde netwerk zijn aangesloten en de events van alle instrumenten door elkaar bij de synthesizer aankomen, moet de synthesizer op enigerlei wijze per noot verteld worden van welk instrument dit komt, om daarvan het juiste geluid te kunnen maken. Dit wordt bereikt door de drie instrumenten ieder op een eigen channel in te stellen. Dit doet de muzikant meestal met een schakelaartje op het instrument. Binnen midi bestaan 16 channels (1-16) en afgesproken is om drumsets altijd channel 10 of 16 te geven. In dit geval staat bijvoorbeeld in iedere noot die van het keyboard komt een channelcode 1 genoteerd, in de noten uit de bas 2, en uit het drumstel komen events die ieder channel 10 hebben. Een channel bestaat dus niet echt, maar bestaat uit de verzameling noten die allemaal hetzelfde channel hebben. Naast de channelcode is ook in iedere noot een volume (of slagkracht) opgenomen. Iedere noot bestaat uit twee events: de startcode (note-on) en de stopcode (note-off).

 

Midi files

 

De muziek die onze band maakt kan je opnemen om later, eventueel na bewerking, nogmaals af te spelen. Dit is dan een opname waarin alle oorspronkelijke midi events die de band heeft geproduceerd zijn vastgelegd, aangevuld met de tijdsafstand tussen die events. Dat vastleggen gebeurt volgens vaste afspraken, het midi protocol, in de midi file. Naast de door de band gespeelde events worden in deze file nog een aantal extra gegevens opgenomen voor diverse doelen. Gegevens die niet direct met de gespeelde noten hebben te maken worden meta-events genoemd. Voorbeelden zijn: het tempo, de maatsoort, de naam van het muziekstuk en dergelijke. Een bepaald soort meta events: de markers, worden in Noteur gebruikt om registernotaties in op te bergen. Ook is er een voorziening bedacht om in de midi-file noten per muziekinstrument in een apart deel op te bergen, bijvoorbeeld om er gemakkelijk een muziekpartij van te kunnen uitprinten of om deze apart te kunnen bewerken. Dergelijke delen worden tracks genoemd, naar analogie van audio-opnames die ook uit aparte tracks kunnen bestaan voor diverse geluidsbronnen. Van onze band zou je een opname in een midi-file kunnen maken die uit drie tracks bestaat: track 1 voor het keyboard, track 2 voor de bas en track 3 voor het drumstel. Let wel: een track bestaat dus alleen in een midi file en is alleen een onderverdeling van de midi file om deze per instrument of instrumentgroep te kunnen ordenen. Dus in de events is niet zoiets als een trackcode aanwezig. De klank bij afspelen wordt bepaald door de (al of niet ingebouwde) synthesizer, die altijd alleen naar het channel in iedere noot kijkt om het juiste geluid te produceren. In ons voorbeeld zit het keyboard opgeslagen in track 1 en alle noten hebben channel 1, maar dat had ook channel 3 kunnen zijn, als de toetsenist dat op zijn keyboard zo had ingesteld. Ook kan het zo zijn dat de toetsenist van channel wisselt tijdens het spelen om naar een ander geluid over te schakelen. Met andere woorden: in een track kunnen noten met verschillende channels voorkomen. Doorgaans bevatten echter alle noten binnen een track hetzelfde channel.

 

Tracks en channels binnen een editor

 

Voor het bewerken van midi files voor mechanische muziekinstrumenten is geluid van geen belang, behalve voor het beluisteren op de PC. Voor eenvoudige instrumenten gebruik je daar slechts één track en geef je alle noten hetzelfde channel. Voor slagwerk moet je echter channel 10 gebruiken omdat alleen in dat geval de geluidskaart in de PC de noten als slagwerk zal afspelen. In Noteur en Midiboek geef je met channel 10 of 16 aan dat een noot slagwerk is.  Als je tegenzang hebt moet je met meerdere tracks of channels werken. Dit is nodig om onderscheid te kunnen maken tussen noten met gelijke toonhoogte die zowel in zang als tegenzang zitten. Er zijn twee mogelijkheden: 1) zang en tegenzang hetzelfde channel geven, maar de tegenzangnoten in een aparte track zetten of 2) zang en tegenzang in hetzelfde track zetten, maar alle tegenzangnoten een ander channel geven dan zang. Bij het werken met Noteur maakt het niet veel uit welke methode je gebruikt, want alle noten kunnen altijd tegelijk zichtbaar worden gemaakt, met naar keuze één track  of  één channel actief, zodat je toch bewust binnen zang, tegenzang of slagwerk kan werken. Het is uiteraard wel nodig om aan Noteur te vertellen waar de tegenzang zit, omdat anders de kleuren op het beeldscherm niet kloppen met de kleuren in het gamma. Bij het werken in de pianorol van Cakewalk kan je altijd maar één track tegelijk bewerken, zodat een keuze voor tegenzang in een apart channel de enige methode is als je ze tegelijk wilt bewerken.

 

Layout van de midi file

 

Hieronder volgt een vereenvoudigde beschrijving van de indeling van de midi file. Er bestaan twee soorten, waarmee overigens dezelfde mogelijkheden bestaan voor bewerking en afspelen, het oude format 0 en het nieuwere format 1. We zullen format 1 beschrijven en daarna apart de verschillen met format 0 aangeven.

Iedere midi file bestaat uit een header (voorloop informatie) en een of meerdere tracks:

 

 Header

 Headerinformatie

 - format soort (0 of 1)

 - aantal aanwezige tracks

 - aantal ticks per kwartnoot (dit is de nauwkeurigheid van de timing)

 - nog een aantal technische zaken

End of header

 

Track0

 Alleen meta events

 - naam van de track

 - naam van de auteur

 - tempo (kan meerdere malen voorkomen)

 - maatsoort (kan meerdere malen voorkomen)

 - markers voor registernotaties

End of track

 

Track1

 Events en eventueel wat meta events

 - naam van de track (meta)

 - start en stop events van noten

 - patch change events (geluidsinstelling van een channel)

 - events voor diverse geluidseffecten

End of track

 

Track 2 - 255

  . . . .

End of track

 

Midi files met format 1 hebben altijd een track 0 waarin uitsluitend meta events mogen worden geplaatst. In de tracks 1 tm 255 mogen alleen events geplaatst worden en een zeer beperkt aantal meta events, met name de text-events, zoals naam van de track, naam van het instrument etc.

NB: Noteur ondersteunt slechts 33 tracks, dus track 0 en 1-32.

 

Midi files met format 0 hebben slechts een enkel track: track 1. Daarin zitten alle events en meta events. Onderscheid tussen diverse instrumenten is daar dus alleen mogelijk aan de hand van het channel. Let op: Cakewalk en andere editors splitsen noten van verschillende channels uit bij het openen van de midi file van type 0 en laten deze tijdens het editten zien alsof ze uit verschillende tracks komen. Bij het opslaan worden alle events weer in track 1 gezet.

 

Wie de codes van een midifile in detail wil bekijken kan het programma Miditran downloaden dat op de Midiboek-website staat.

 

 

Enige begrippen die onder andere in editor-programma’s worden gebruikt

 

Transpose

transponeren. Omhoog of omlaag zetten van noten in stappen van een halve noot

Quantize:

op de maatstreep zetten van noten die daar niet precies op staan. Heeft soms ook een functie om de lengte van de noten naar een bepaalde standaard lengte te zetten

Slide

verschuiven van noten in de tijd: vroeger of later

Line-up

op de maatstreep zetten van noten die daar niet precies op staan.

Lengthen

verlengen, verkorten of naar een bepaalde lengte brengen van noten

Track

een groep noten, meestal behorende bij een stem of instrument, die in de midifile apart is vastgelegd.. Ingeval van midi-files type0 in Cakewalk, alle noten met hetzelfde channel.

Channel

een groep noten die dezelfde channelcode hebben

Patch

een event (controlevent) waarmee het geluid voor een channel wordt ingesteld

Velocity

een volume dat die in iedere noot is vastgelegd. Het is een combinatie van de geluidsterkte van een noot en het aanslaggeluid. Let op: het volume van een noot wordt naast de velocity ook bepaald door de instelling van volumes per channel via events die voor een geheel channel gelden. Velocity ligt tussen 1 en 127. De waarde 0 komt alleen in de stopcode voor (note-off).

Key

eigenlijk ‘toets’. Hiermee wordt in de midi events de toonhoogte benoemd. Deze heeft een waarde van 0 tot 127.

Format

midifiles worden genoteerd in format0 of format1. Format 0 (oudere versie), heeft maar één enkel track (track1) waarin alle events zijn vastgelegd. In format1 bestaat altijd een track0 waarin alle meta-events zijn vastgelegd die voor de hele file gelden en een of meerdere tracks voor de noten-events. Beide formaten hebben dezelfde muzikale mogelijkheden. De meeste editor-programma’s kunnen beide formaten aan, maar sommige instrumenten vereisen een van beide formaten. Noteur kan het ene format naar het andere omzetten.

Tick

de tijdsduur van midinoten is intern in ticks vastgelegd. Het tempo is vastgelegd in microseconden per tick. De tijdsduur van noten (en de tijdsduur daartussen) wordt berekend uit het aantal ticks dat de noot lang is, het tempo en de timebase (zie hierna). In Cakewalk wordt de nootlengte altijd in ticks weergegeven. Noteur rekent ticks om in milliseconden of millimeters in combinatie met de snelheid in het gamma

Timebase

het aantal ticks per kwartnoot. Dit is de nauwkeurigheid (resolutie) waarmee noten in de tijd zijn vastgelegd. Voor het doel om orgelboeken en –rollen te maken is deze waarde niet erg interessant. De laagtse waarde die doorgaans wordt gebruikt (120) is hiervoor ruimschoots voldoende.

Snap

bij het inbrengen of verplaatsen kan een snap worden ingesteld, waarmee een noot ‘aanclickt’ aan een maat- of tellijn of een onderverdeling daarvan

Metronome

metronoom. Bij het inspelen van een melodie is het nodig in de ingestelde maatsoort en tempo te spelen. Hiervoor laat een editor die een recordmogelijkheid heeft de maatslag horen. Inleesmachines kunnen geen rekening houden met de metronoom en van de ingelezen file zullen de noten dus niet op de maatstreep staan en kan de maatsoort niet overeenkomstig de werkelijkheid zijn. Een dergelijke file is moeilijker te bewerken (quantiseren of line-up lukt bijvoorbeeld niet), maar geeft verder geen problemen.

 

 

 

 

 

 

Deze tekst is geschreven door Piet Paardekam met dank voor zijn gedetailleerde uitleg.