# MIDI Uit

Naast de ontvangst van MIDI events kunnen MIDI events ook verzonden worden om externe hardware synthesizers, keyboards en andere apparaten te manipuleren. Sonic Pi levert een volledige set van functies om diverse MIDI berichten te versturen, zoals:

1. Note aan - `midi_note_on`
2. Note uit - `midi_note_off`
3. Control verandering - `midi_cc`
4. Pitch benden - `midi_pitch_bend`
5. Klok tikken - `midi_clock_tick`

Er zijn vele andere ondersteunde MIDI berichten - bekijk de API documentatie voor alle functies die starten met `midi_`.

## Verbinden met een MIDI apparaat

Om een MIDI bericht naar een extern apparaat te versturen, moet deze eerst zijn verbonden. Bekijk de subsectie ‘Verbinden van een MIDI Controller’ in sectie 11.1 voor meer details. Merk op dat wanneer USB wordt gebruikt, het verbinden naar een apparaat waar data toe wordt verzonden (anders dan ontvangen) dezelfde procedure is. Indien gebruik wordt gemaakt van DIN connectoren moet verbonden worden met de ‘MIDI out’ poort van de computer. Hiervoor moet je MIDI apparaat in het voorkeuren paneel zichtbaar zijn.

## Versturen van MIDI events

De vele `midi_*` functies werken zoals `play`, `sample` en `synth` op de manier dat ze een bericht sturen via de huidige (logische) tijd. Om bijvoorbeeld calls uit te delen naar `midi_*` functies kan `sleep` worden gebruikt, zoals gedaan via `play`. Laten we hiernaar kijken:

    midi_note_on :e3, 50

Dit zal een MIDI noot versturen naar het verbonden MIDI apparaat met velocity 50. (Merk op dat Sonic Pi automatisch noten converteert in de vorm `:e3` naar de equivalente MIDI nummers zoals, in dit geval, 52.)

Indien je verbonden MIDI apparaat een synthesizer betreft, zou je een noot moeten kunnen horen. Om dit uit te schakelen kan `midi_note_off` worden gebruikt:

    midi_note_off :e3

## Selecteren van een MIDI apparaat

Sonic Pi zal standaard alle MIDI berichten naar alle aangesloten apparaten op alle MIDI kanalen versturen. Dit is om het eenvoudig te maken om één aangesloten apparaat te werken, zonder dat er instellingen hoeven worden aangepast. Maar, soms verwerkt een MIDI apparaat een MIDI kanaal op een afwijkende manier (wellicht krijgt elke noot zijn eigen kanaal) en wellicht wil je meerdere MIDI apparaten tegelijk aansluiten. In zulke meer ingewikkelde opstellingen, wil je specifieker kunnen aangeven welke berichten naar welk apparaat en kanaal gaan.

We kunnen aangeven naar welk apparaat gestuurd gaat worden door de `port:` optie mee te geven. Gebruik de apparaat naam zoals in de voorkeuren staat:

    midi_note_on :e3, port: "moog_minitaur"

We kunnen ook aangeven via welk kanaal gestuurd gaat worden met de `channel:` optie (gebruik een waarde tussen 1-16):

    midi_note_on :e3, channel: 3

Natuurlijk kunnen we ze ook beide tegelijk meegeven om naar een specifiek apparaat op een specifiek kanaal te sturen:

    midi_note_on :e3, port: "moog_minitaur", channel: 5

## MIDI Studio

En als laatste, wat ook leuk is om te doen, is om de audio-uitgang van je MIDI synthesizer aan te sluiten op een van de audio-ingangen (line-in) van je audio-apparaat.Op deze manier kun je synthesizer bedienen via de `midi_*` functies en ook het geluid van je synthesizer daarna weer bewerken via `live_audio` en effecten:

    with_fx :reverb, room: 1 do
      live_audio :moog
    end
    live_loop :moog_trigger do
      midi (octs :e1, 3).tick, sustain: 0.1
      sleep 0.125
    end

(De functie `midi` is beschikbaar als een handige notatie om zowel “note aan” als “note uit” events te sturen in één commando. Bekijk de `midi` documentatie voor meer informatie).