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

Laagst mogelijke latency met USB

Een tijdje terug kwam er een draadje voorbij op de Linux Audio User mailinglijst over wat de laagst mogelijke softwarematige latency zou kunnen zijn. USB geluidskaarten draaien kennelijk het beste met een latency die een veelvoud is van 1ms omdat dat de “interrupt period” van USB apparaten is. Kan zo snel niet vinden wat dat nou precies inhoudt, een “interrupt period”, maar dit verklaart wel waarom er veelal wordt aangeraden om USB geluidskaarten op 48000Hz en een buffer van 3 in te stellen. Hierdoor wordt de latency inderdaad een veelvoud van 1ms. De minimale latency die je op deze manier met een USB geluidskaart zou kunnen bereiken zou dan 4ms moeten zijn (48000 Hz en een buffer van 3 met 64 frames: 64/48000 * 3 = 4ms) want met een frames waarde van 32 zal JACK gaan protesteren. Maar is de waarde 64 voor het aantal frames echt het laagste wat je kunt gaan? Wat nu als je bijvoorbeeld 48 frames gebruikt en een buffer van 2 zodat het rekensommetje 48/48000 * 2 = 2ms wordt? Heb de proef op de som genomen met mijn Edirol UA-25 en inderdaad, het werkt. En nog redelijk stabiel ook. Niet dat het veel zin heeft want wat is nou een verschil van 2ms op de totale latency, maar voor real-time applicaties, zoals effecten op akoestische analoge bronnen, kan het nog van pas komen.

Laagst mogelijke latency met USB

De Harde Waren

Hardware ondersteuning en Linux. De een krijgt zijn computer feilloos aan de praat en de ander zit dagen, zo niet weken te klooien om er een simpel geluidje uit te krijgen of om draadloos te kunnen internetten. Linux is een open source besturingssysteem met een klein marktaandeel dus voor de grote spelers absoluut niet interessant en bovendien zijn een aantal nogal huiverig voor het open source model. Kort samengevat heeft dat de volgende consequenties voor Linux gebruikers:

  • Apparaten werken gewoon helemaal niet en gaan dat waarschijnlijk ook nooit doen. Schoolvoorbeeld hiervan is MOTU, een producent van hoogwaardige audio- en videohardware. Voor hen is Linux het “L-word” zoals Paul Davis, een van de auteurs van Ardour, hier toelicht.
  • Apparaten doen het wel maar alleen met closed source drivers. Vaak hobbelen deze drivers achter hun Windows en Mac OSX equivalenten aan en als er bijv. een bug insluipt kan het soms een aardige tijd duren voordat deze bug eruit gehaald wordt omdat de ontwikkeling van dit soort drivers geen prioriteit heeft. Goed voorbeeld zijn de WiFi devices van Broadcom.
  • Apparaten doen het ook met open source drivers maar niet zo goed als met closed source drivers. Twee voorbeelden: nVidia en Ati.  Veel grafische kaarten van deze producenten werken ook met open source drivers maar missen dan wel vaak de nodige functionaliteit. Maar de ontwikkelingen gaan hard en vooral wat oudere kaarten doen het prima met deze drivers.
  • Apparaten werken prima met open source drivers. Het bekendste voorbeeld: HP printers. Die doen het praktisch altijd onder Linux. Wat ook meespeelt is of een apparaat volgens bepaalde (open) standaarden is ontwikkeld of niet. Zo is er bijvoorbeeld een USB 1.x audio standaard afgesproken en alle apparaten die hier aan voldoen worden “class compliant” genoemd. Deze apparaten kun je aan je Mac of PC met Windows hangen zonder dat je drivers hoeft te installeren om het apparaat te kunnen gebruiken. En voor veel van dit soort standaarden zijn er ook Linux drivers, ook voor “class compliant” USB 1.x apparaten. De Edirol UA-25 USB geluidskaart is zo’n apparaat, doet het dan ook prima onder Linux.

Vorig jaar heb ik een nieuwe notebook gekocht en omdat ik alléén Linux gebruik moest en zou deze het doen onder Linux. Vantevoren heb ik eerst een lijstje gemaakt met mijn eisen en vervolgens heb ik uitgezocht of die eisen haalbaar waren onder Linux en met welke hardware. Dit waren mijn eisen en de haalbaarheidsfactor:

  • Goeie grafische kaart. Dan kom je al snel bij nVidia uit, ondanks dat de divers closed source zijn werken praktisch alle nVidia kaarten goed en zonder problemen onder Linux, ook redelijk recente kaarten. Ati kaarten geven toch meer problemen. AMD notebooks vielen dan ook gelijk af aangezien die praktisch altijd Ati kaarten aan boord hebben. Het zou dus een Intel systeem moeten worden. Haalbaarheidsfactor: zeer hoog.
  • 17″ scherm, minimaal WSXGA. Beeldschermen doen het praktisch altijd, is ook min of meer een open standaard, voor het gros van de schermen zijn geen specifieke drivers. Haalbaarheidsfactor: zeer hoog.
  • Gigabit ethernet. Netwerkkaarten doen het ook vrijwel altijd onder Linux, dit heeft te maken met het feit dat Linux veel op servers gebruikt wordt dus goeie ondersteuning voor netwerkkaarten is essentieel. Haalbaarheidsfactor: zeer hoog.
  • WiFi. Hoefde niet per sé omdat ik ten tijde van de aanschaf alleen bedraad netwerk had, maar achteraf gezien toch wel belangrijk gebleken. WiFi is nog steeds een zorgenkindje onder Linux. dat komt waarschijnlijk vooral omdat producenten hun code gesloten houden en het uitbrengen van n-draft WiFi producten zondar dat die specificatie überhaupt al officieel is helpt ook niet veel bij de ontwikkeling van Linux drivers. Haalbaarheidsfactor: redelijk, vooral met producten van Broadcom, Atheros en Intel.
  • Dual Core CPU met minimaal 1066Mhz FSB. Dit wordt sowieso ondersteund onder Linux, dus haalbaarheidsfactor: NVT.
  • Aangezien het een desktopvervanger betreft heb ik niet op accuduur gelet. Ook dingen als Bluetooth, infrarood en webcam vind ik niet interessant. Zou mooi zijn als het werkt maar meer ook niet.
  • Prijs onder de €1000,-
  • Indien mogelijk zonder voorgeïnstalleerd OS of de mogelijkheid tot restitutie.

Vervolgens ben ik gaan zoeken op internet naar geschikte kandidaten, vooral de Pricewatch van tweakers.net heeft me hierbij veel geholpen. Uiteindelijk een drietal kandidaten bij elkaar gezocht (Een HP, een Acer en een MSI) waarvan er dus twee niet meer verkrijgbaar waren (de Acer en de MSI) en de enige die nog wel verkrijgbaar was onder andere bij de BCC stond. Dus daar langs gegaan en het apparaat bekeken. Mooi ding. Maar wel €100,- duurder dan bij diverse webshops. Dus heb ik diverse prijsopgaves uitgeprint en ben daarmee naar de BCC gegaan. Na een gesprek met de filiaalmanager kon ik de notebook die ik had uitgekozen voor €50,- minder meenemen waardoor ik binnen mijn vooropgestelde budget bleef. Ik koop zo iets toch liever in een winkel dan via een webshop, als er onverhoopt wat stuk gaat hoef ik niks op te sturen en heb ik een fysiek aanspreekpunt.

Bij thuiskomst volgde de eerste verassing toen ik de HP DV7-1070ED aanzette en in het BIOS keek. Volgens de specificaties zat er een P7350 in maar het BIOS zei toch echt P8400. Toch weer 0.2 Ghz sneller. Gelijk Fedora 9 erop gezet en goed gegokt, de meeste hardware werkte meteen. Helaas geen wireless en ook het geluid was wat problematisch. Ubuntu 8.04 naast Fedora er op gezet en dat werkte al beter, wireless werkte en het geluid kreeg ik met een simpele fix ook al snel goed. Helaas deed het bedrade netwerk het wat minder goed maar met de drivers van de producent zelf (Realtek) was dat gelukkig ook zo opgelost. Nog contact gezocht met HP met de vraag of ik eventueel geld terug zou kunnen krijgen voor de Windows Vista licentie die bij de notebook geleverd was maar dat is helaas op niets uitgelopen.

Intussen staat 9.10 Karmic Koala op de notebook en het werkt allemaal nog prima. Ook de webcam, Bluetooth en de mediatoetsen. Het enige wat het niet doet maar waar ik ook nooit echt naar gekeken heb is de afstandsbediening die erbij zit. Kansloos apparaatje, geen behoeft aan om dat ding te gebruiken dus vind het prima zo. Ook heb ik inmiddels mijn Firewire kaart aan de gang gekregen op de notebook maar daar wijd ik nog wel een apart blogje aan. Verwacht ook nog wat vervolgblogjes over mijn netbookje, mijn audio productie PC en de randapparatuur die ik gebruik.

De Harde Waren

De zachte en harde waren

Mijn huidige setup bestaat uit:

  • Edirol UA-25 USB geluidskaart. Ik heb dit ding al jaren maar hij doet het nog prima. De latency is lekker laag (4ms), het ding is niet kapot te krijgen (aluminium behuizing), doet het altijd en werkt ook nog eens feilloos onder Linux zonder dat je extra modules nodig hebt.
  • HP DV7-1070ed notebook. Prima notebook, het enige manco is de lange opstarttijd door een EHCI BIOS bug. En het scherm is wat aan de fletse kant ondanks de redelijk dikke Nvidia chipset die er in zit. Maar alles werkt erop, zelfs de Firewire aansluiting icm de Focusrite Saffire Pro 10 van de band.
  • Packard Bell Dot M/A.NL/202 netbookje. Vooral voor onderweg. Was al een tijdje op zoek naar een dergelijk netbookje maar moest toch wel minimaal 11,6″ zijn en redelijk wat geheugen. Dat zit bij dit Dotje wel goed, 2Gb geheugen en door de onboard Ati kaart is het beeld echt subliem. En Ubuntu 9.04 draait er als een speer op, heb er wel een custom kernel voor gebakken ivm wat extra ACPI functionaliteit. En met een 2.6.31 RT kernel draait zelfs de onboard geluidschip zonder morren met lage latencies. Fijn apparaat, aanrader.
  • Een ouwe Asus A2500h notebook die het onder 9.04 eindelijk een beetje redelijk doet. Zo ingesteld dat Jack meteen opstart gevolgd door Qtractor zodat ik gelijk ideetjes kan opnemen.
  • Studio Projects B1 mic. Deze staat altijd paraat. Gewoon een prima condensatormicrofoon. Verder gebruik ik wat mics van de band: Shure SM57, Audio Technica AT2020 en een AKG D112.

Deze apparatuur wordt aangestuurd door:

  • OS: Ubuntu 9.04 met 2.6.31 realtime kernels. Op de een of andere manier draait dat het stabielst. Heb heel lang 8.04 gebruikt maar heb altijd redelijk last gehad van xruns met 2.6.24 kernels. Daarnaast gaan de ontwikkelingen op Linux audio gebied momenteel als een speer dus is het zaak om je systemen wel een beetje up to date te houden omdat je anders al snel tegen de beperkingen van een wat oudere release loopt.
  • Recording software: ben gek op Qtractor. Wat een heerlijk programmaatje is dat, klein, snel en het doet precies wat ik wil: opnemen en mij de mogelijkheid geven simpel dingetjes toe te voegen, zij het MIDI, zij het effecten.
  • Beats programming/sequencing: LMMS! Ook zo’n fijn programma, op de vele bugs na dan en de gebrekkige JACK implementatie. Maar hoe actief zijn de ontwikkelaars momenteel, volgens mij zitten die dag en nacht te coden om LMMS nóg beter te maken. Met LMMS kan ik heerlijk beats en basslines maken of als ik echt zin heb complete nummers in elkaar flansen.
  • Plugins: diverse LADSPA en DSSI plugins. Moet ik nog een beetje induiken, er zijn er aardig wat en de kwaliteit van de verschillende plugins loopt nogal uiteen.
  • Softsynth: ZynAddSubFX. Hier kan je echt alles uithalen. Helaas heeft de JACK implementatie soms nog wel eens kuren. Ik gebruik momenteel ook wel de CALF Organ DSSI plugin.
  • Audio editing: Audacity.
  • Mastering: ha ha, zo ver ben ik nog niet, daar moet ik echt nog even goed voor gaan zitten want van dat Jamin begrijp ik nog niet echt heel veel.

Packard Bell Dot M/A.NL/202

De zachte en harde waren