Logo
Startpagina Het Forum Zoek Profiel Kalender FlashChat
Artikel: MIDI (6) - Controllers en commando's

Auteur: Patrick Vermeulen

CC: Control Changes

Control changes, ookwel controllers zijn een belangrijke factor voor midi. Controllers bepalen welke geluiden je gebruikt, maar vooral de veranderingen van het geluid.

Het beste voorbeeld is de pitchbender. Wanneer je deze beweegt, hoor je de toonhoogte van een geluid stijgen of dalen. Dit geluid hoor je ook stijgen op een ander keyboard wanneer je deze hebt aangesloten met midi. Want alles wat je met de pitchbender doet, wordt verstuurd naar alle apparaten die met midi aangesloten zijn. Dus ook als je midi opneemt, worden alle bewegingen van de pitchbender opgenomen.

Controllers zijn niet alleen voor de pitchbender. In totaal zijn er maar liefst 128 controllers! Iedere controller heeft zijn eigen functie, en is individueel te besturen met een ander keyboard (of computer). Zo heb je als in het voorbeeld de pitchbender, maar ook de modulator, en de sustain pedaal.
In het hoofdstuk "Bits en bytes, en andere bytes" wordt precies uitgelegd hoe controllers over midi verstuurd worden.
Op deze pagina vind je een lijst van alle midi-controllers met een beknopte uitleg.

De Taal
Nu je inmiddels weet wat midi is, en waarom het er is, is het handig te weten hoe midi werkt. Dit hoofdstuk zal jouw uitleggen hoe midi werkt, waardoor jij straks precies zult weten hoe jij ermee moet werken. Er worden ineens veel technische termen naar je hoofd gesmeten. Dan is het echt niet erg als je sommige stukken meer dan eens moet lezen. MIDI is nou eenmaal erg uitgebreid, en verdient beslist geen halve uitleg. Dit stukje is bedoeld voor de mensen die er écht alles van willen weten.  Maar het hoeft niet per se gelezen te worden om de rest te begrijpen. Maar je loopt wel veel weetjes mis.

Aan en uit
Je wist al dat midi een jip-en-janneke taal is. Maar eigenlijk is het gewoon nog simpeler. Midi praat niet in muzikale termen, maar in makkelijke commando’s als note-on en note-off. Ofwel, noot aan en noot uit. Met het commando note-on maakt het keyboard een geluid. Deze blijft hij voortzetten tot hij note-off krijgt te horen. Eigenlijk heel simpel.
Maar natuurlijk heeft hij niets aan alleen een commando note-on en note-off. Want welke noot moet nou aan, en uit? Het keyboard krijgt normaal gesproken per commando 2 of 3 stuks informatie, in deze context noemen we één stuk informatie een byte (zie volgend stukje).
Een commando om een geluidje te laten horen ziet er zo uit:

     [Note-on (noot-aan)]-[toetsnummer (C3)]-[velocity (aanslag)]

In mensen-taal is dit: druk de 3e C in. De aanslag bepaalt hoe snel je de toets hebt ingedrukt.
Het volgende commando is dan heel simpel:

     [Note-off]-[toetsnummer]-[velocity].

Als dit commando niet zou komen blijft je instrument voor eeuwig de noot doorspelen.

In de note-on/off commando word ook aangegeven in welk kanaal het commando uitgevoerd moet worden.
Zo kun je tot 16 instrumenten tegelijk laten spelen.

Bits en bytes, en andere bytes.
Een keyboard of synthesizer is eigenlijk een computer. Een computer is een uitgebreide rekenmachine. En rekenmachines werken met eentjes en nulletjes. Dus is onze muziekinstrument een  megarekenmachine. Technisch gezien is het ook niet meer dan dat. Dit betekend dat ons keyboard met eentjes en nulletjes werkt. En midi commando’s zijn die eentjes en nulletjes.
Ok, we zijn er weer. Eentjes en nulletjes zijn erg simpel. één nulletje of eentje heet een bit. En 8 van die bits heet een byte.
Nu weet je dus dat de note-on informatie 8 bits heeft. Omdat het 1 byte is. Hoe dat er precies uitziet is niet zo interessant. Wél dat MIDI 2 soorten bytes kent:
     1. De Statusbyte (SB) (de opdracht die uitgevoerd moet worden)
     2. De Databyte (DB)   (hoeveelheid)

Dit zijn termen die worden gebruik om het allemaal wat makkelijker te maken.
We maken het nu makkelijker:

      [note-on+kanaal]-[note number]-[velocity]

Dit is een hele commando waar een keyboard iets mee kan.
De eerste byte in deze commando heet de Statusbyte, de volgende 2 zijn de databytes.
Dus:

     [SB-note-on+kanaal]-[DB-note number]-[DB-Velocity]

De Statusbyte geeft aan wát het keyboard moet doen, en de databyte geeft aan hoeveel.

Bij een controller zoals de modulatie wiel word het wat duidelijker. Het keyboard krijgt te horen dat de modulatie wiel word gedraaid, en vervolgens hoeveel. Deze commando bestaat uit één statusbyte, en daarna één databyte.
Dus:

     [SB-modulation]-[DB-hoeveelheid]

MSB en LSB
Een databyte kan een waarde bevatten van 0 t/m 127.
128 verschillende Waarden zijn voor de meeste controllers voldoende. Er zijn namelijk geen keyboards van 128 toetsen, en ook velocity van meer dan 128 zou overbodig zijn. Maar als je bijvoorbeeld de pitchbend zou gebruiken zijn 128 waardes verreweg te weinig. Je hebt totaal geen detail, of je pitchbend zou te kort zijn voor sommige muziekstukken. (denk aan een traploze glissando van een viool).

Hier heeft men wat op gevonden.
Als men nu 2 databytes zou gebruiken voor de pitchbend, zou je maar liefst 16.384 (128 x 128) waardes kunnen gebruiken.

De eerste databyte heet dan Most Significant Byte (MSB).
Dit is een grove waarde, het geeft als het ware ongeveer de plaats van de pitchbender aan.

De tweede databyte noemt men de Least Significant Byte (LSB).
Hiermee geef je een fijn afstelling aan.

Een mooi vergelijk is een huisadres. Als je in een dorp bent, heb je niets aan alleen een straatnaam.
Dus komt er een huisnummer bij, om duidelijker aan te geven waar je moet zijn.
Dan krijg je straatnaam (msb) en huisnummer (lsb)

Anders gezegd:
Met de MSB alleen heb je 128 verschillende waardes (de straten in een dorp).
Dankzij de LSB heb je met iedere waarde van de MSB nog eens 128 waardes (de huizen in de straat).

Sys-Ex
Dit staat voor System Exclusive. Hier kan ik niet veel over zeggen omdat het voor iedere synthesizer of keyboard anders is. Sommige keyboards hebben meer functies als MIDI aankan. Maar de fabrikant wil wél dat het met midi aan te sturen is. Sys-Ex wordt alleen herkend door één type keyboard of synthesizer, ieder ander apparaat zal het bericht negeren. De berichten zijn iets anders, aangezien het commando begint met het type sys-ex, de type-byte. Is deze type niet geschikt voor jouw keyboard dan slaat hij het automatisch over. Dit gaat nooit fout, omdat de midi fabrikanten afspraken hebben gemaakt over de type-byte. Ieder type heeft zijn eigen byte.
Om te kijken wat de Sys-Ex van jouw keyboard is moet je de Midi implementation chard raadplegen in jouw handleiding.

Waarom die 127?
Alles wat je instelt in een keyboard of synthesizer kun je instellen van 0 t/m 127. Dit is bij ieder keyboard zo. Waarom niet gewoon 1 t/m 100?
Dit ga ik je uitleggen. Met 1 byte/8 bits kun je 256 verschillende combinaties maken. Dat is 0 t/m 255. Aangezien de Status byte begint met een 1, en de databyte met een 0 heb je nog maar 7 variabele nummers. Hiermee kun je maar 128 combinaties mee maken. Dat is 0 t/m 127.
Hierdoor vind je altijd die veelvoud van 128, 256, 512, 1024 etc.
Als je dit terug gaat tellen kom je op 128, 64, 32, 16. Kwamen we dit laatste getal ook al niet tegen bij het aantal kanalen.



(Advertentie)


Keyboardforum steunen?
Donaties zijn nooit verplicht maar zeker welkom!