Raspberry Pi als virtuele gitaarversterker: MIDI en effecten

Live demo van m’n Raspberry Pi, guitarix en een MIDI floorboard.

Raspberry Pi als virtuele gitaarversterker: MIDI en effecten

DX

Oftewel DealExtreme. Eigenlijk een beetje herontdekt door de buurtgenoot die hier laatst op bezoek was. Hij had een oprolbaar USB drumpadje mee en dat vond ik zo’n cool ding, moest ik ook hebben. Uiteindelijk kwam ik dus uit op DealExtreme waar ik wel eerder spulletjes had besteld. Het gaat om dit drumpadje:

Niet aanslaggevoelig ofzo maar het padje stuurt wel keurig MIDI CC messages uit over MIDI kanaal 10. Ik heb zo’n idee dat dit één van de goedkoopste USB MIDI controllers is die je momenteel kunt krijgen. Ik denk dat ik ‘m ga demonteren om er een USB MIDI footswitch van te maken. Heb er gelijk een USB MIDI kabel bij besteld:

$5.99, dat kun je niet laten liggen toch? Ik ga deze gebruiken om mijn Boss FC-50 MIDI footswitch aan mijn Raspberry Pi te hangen. Ik kan namelijk de MIDI poorten op mijn Edirol UA-25 niet gebruiken aangezien deze het alleen doen als de UA-25 in Advanced mode staat en dat staat momenteel uit omdat anders JACK niet werkt op mijn RPi icm. de UA-25. Hopelijk werkt het wel met dit cheapo kabeltje. Binnenkort ga ik ook deze bestellen:

Ziet er bekend uit hè? Het is gewoon hetzelfde apparaat als de Behringer UCG102!

De UCG102 is al goedkoop (rond de €25,-) maar op DealExtreme kost dit apparaatje slechts $14.80! Samen met de USB MIDI kabel ga ik deze gebruiken met mijn RPi. Kijken of ik een cheapo customizable gitaarversterkeremulatieapparaatje kan bouwen voor minder dan €50,-.

DX

Nog meer mididings

Mididings script voor 29 oktober is klaar:

#!/usr/bin/python

from mididings import *
from mididings.extra import *

config(
    backend='jack',
    client_name='sodap-live',
    data_offset=0,
)

run(
    Filter(PROGRAM) >> [
        [
            ProgramFilter(0) >> NoteOn(64,50),
            ProgramFilter(7) >> NoteOn(69,86),
            ProgramFilter(0) >> NoteOn(72,60),
            ProgramFilter(1) >> NoteOn(74,62),
            ProgramFilter(2) >> NoteOn(76,64),
            ProgramFilter(3) >> NoteOn(71,30),
            ProgramFilter(7) >> NoteOn(77,88),
            ProgramFilter(8) >> NoteOn(79,96),
            ProgramFilter(9) >> NoteOn(81,84),
        ] >>
        LatchNotes() >> [
            KeyFilter(64) % NoteOff(69,0),
            KeyFilter(69) % NoteOff(64,0),
        ],
        ProgramFilter(4) >> Panic(),
        ProgramFilter(10) >>
        Channel(2) >>
        NoteOn(36,64),
    ]
)

Met dit script kan ik nu de strijkers spelen in Soda P – Icon of your Time en heb een Vibraslap sample van Freesound.org in een soundfontje gezet met Swami zodat ik deze met de FluidSynth DSSI plug-in ook vanuit Qtractor kan triggeren met behulp van de Boss FC-50. De strijkers gaan via het eerste paralelle ‘blok’ waarin Program Changes worden omgezet in Note Ons, daarna gaan ze door de LatchNotes Unit en daarna worden in een genest parallel blok nog twee Note Offs gedefinieerd. Stuurt de FC-50 Program Change 4 uit dan worden alle noten uitgezet (‘Panic’), bij Program Change 10 stuurt mididings een MIDI noot 36 op MIDI kanaal 2 naar Qtractor voor de Vibraslap. Het config deel aan het begin van het script vertelt mididings dat er JACK MIDI poorten aangemaakt moeten worden met als naam ‘sodap-live’. data_offset=0 is nodig omdat de FC-50 bij 0 begint met tellen en niet bij 1.

Nog meer mididings

Boss FC-50 en mididings

De Boss FC-50 doet alleen aan MIDI Program Changes en wat Control Changes. Maar ik wil er noten mee kunnen spelen. Dat zou op zich kunnen met QMidiRoute maar het mooiste zou zijn als ik ook Note Off events zou kunnen genereren, of nog beter, als een volgende noot de vorige af zou kunnen kappen. mididings heeft deze functionaliteit en heb een scriptje gemaakt dat precies doet wat ik wil:

#!/usr/bin/python

from mididings import *
from mididings.extra import *

run(
    Filter(PROGRAM) >>
    NoteOn(EVENT_VALUE,100) >>
    Transpose(36) >>
    LatchNotes(),
)

Wat dit mididings scriptje doet is de Program Changes eruit filteren, deze omzetten naar Note On events, de gegenereerde noten 3 octaven omhoog gooien en met de LatchNotes Unit ‘latch’ je de noten (je laat ze aanhouden) en zet je elke vorige noot uit bij een nieuwe noot. Dit scriptje maakt van de FC-50 een mooi footkeyboardje.

mididings kun je vinden in de lucid-unstable repository van Tango Studio.

Boss FC-50 en mididings

MIDI Foot Controller

Van de week heb ik een tweedehands Boss FC-50 MIDI Foot Controller op de kop weten te tikken. Gelijk aangesloten op mijn live set-up (HP Notebook met Focusrite Saffire Pro 10, Ubuntu 10.04) en getest met o.a. QMidiRoute. Werkt perfect. Ga in mididings duiken zodat ik deze controller kan gaan gebruiken als keyboard (dus om noten te produceren) en als MIDI footswitch voor Rakarrack en Guitarix. Hopelijk kan ik de controller de 29e al live gebruiken op het Rock de IJmond XL Festival.



MIDI Foot Controller