Midi events vertalen naar toetscombinaties

PS: Inmiddels weet ik wat meer van MIDI en ben ik erachter gekomen dat Qtractor MMC opdrachten kan verwerken en dat je de nanoKONTROL zo kan programmeren dat de transport knopjes MMC opdrachten versturen. Onderstaand blogje is dan ook niet meer echt relevant.

Harde waren: Korg nanoKONTROL
Zachte waren: Qtractor en nanonoise

Qtractor maakt gebruik van toetscombinaties om bepaalde acties te starten (bijv. transport functies als afspelen, opnemen, terugspoelen) en op mijn nanoKONTROL zitten van die mooie transport knopjes. Maar die sturen een MIDI signaal uit en Qtractor kan heel veel met MIDI maar je kan er dus niet de transport functies binnen Qtractor mee aansturen. Het zou dus mooi zijn als er een programmaatje zou zijn dat MIDI events om zou kunnen zetten naar toetscombinaties. Na een tijdje zoeken kwam ik nanonoise tegen en dat doet precies wat ik wil en bovendien is het nog speciaal voor de nanoKONTROL geschreven ook. Weliswaar genereert nanonoise specifieke toetscombinaties voor gebruik binnen Renoise maar een toetscombinatie is een toetscombinatie dus dat maakt voor Qtractor niet uit. Bovendien kun je in Qtractor toetscombinaties aanpassen via Help – Shortcuts dus je hebt er nog de nodige vrijheid in ook.

Om dit allemaal werkende te krijgen moet je eerst het nanonoise pakketje downloaden en installeren.

nanonoise voor Ubuntu Jaunty Jackalope (64-bits)
nanonoise voor Ubuntu Jaunty Jackalope (32-bits)

Vervolgens sluit je je nanoKONTROL aan, start je achtereenvolgens qjackctl, nanonoise en Qtractor op en knoop je de boel aan elkaar via het Connections knopje:

MIDI to keystrokes

Nu komt even een rotklusje want je moet eerst alle MIDI events mappen in nanonoise door in het nanonoise schermpje rechts te klikken en voor Map MIDI te kiezen en daarna dus even knopje voor knopje en schuifje voor schuifje de boel te mappen:

nanonoise MIDI mapping

Als dat klaar is kun je de toetscombinaties in gaan stellen door weer rechts te klikken en Map Renoise te kiezen.

nanonoise Renoise

Ik heb het als volgt ingesteld:
Rewind: Pattern Sequencer – Navigation – Decrease Pattern Number (toetscombi/-code: Left)
Play: Global – Transport – Play/Stop/Edit (toetscombi/-code: Space)
Fast Forward: Pattern Sequencer – Navigation – Increase Pattern Number (toetscombi/-code: Right)
Loop: Global – Transport – Toggle Loop Pattern (toetscombi/-code: =)
Stop: hetzelfde als Play, Qtractor heeft geen Stop knopje
Record: Global – Transport – Pause/Continue (toetscombi/-code: Shift+Space)

Je kan ook onderstaand config bestandje kopiëren naar het mapje ~/.config/koppi/, dat gaat wellicht sneller.

Qtractor shortcuts

Daarnaast kun je ook nog MIDI events mappen binnen Qtractor. Op deze manier heb ik alle schuifjes en draaiknopjes van de nanoKontrol gemapt zodat ik van de afzonderlijke tracks het volume en de panning kan regelen via de nanoKONTROL. Ook heb ik zo de trigger knopjes gemapt om tracks op Record of Mute te zetten maar dat werkt nog niet optimaal. Ik heb hier een .qtc bestandje van gemaakt dat je in Qtractor kan importeren.

Midi events vertalen naar toetscombinaties

JACK in plaats van PulseAudio

Onder mijn muziekaccount op mijn netbookje gebruik ik PulseAudio helemaal niet dus heb ik een kleine aanpassing gemaakt om PulseAudio te killen en daarvoor in de plaats JACK te starten. PulseAudio heeft wel de leuke eigenschap om automatisch opnieuw op te starten als het wordt gekilld dus om dat te omzeilen heb ik het bestandje ~/.pulse/client.conf aangemaakt met als inhoud:

autospawn = no

Vervolgens heb ik het bestandje ~/bin/jackstart aangemaakt waar het volgende instaat en deze toegevoegd aan de Startup Applications:

#!/bin/bash

killall -9 pulseaudio &&
sleep 3
/usr/bin/jackd -R -m -dalsa -dhw:0 -r48000 -p256 -n2
exit

Als ik nu inlog wordt PulseAudio de nek omgedraaid en vervolgens JACK gestart en kan ik gelijk aan de slag. Iets luxer kan ook nog, je kunt namelijk ook JACK als standaard soundserver gebruiken en PulseAudio via JACK laten draaien. Hier heb je wel een extra pakketje voor nodig (pulseaudio-module-jack), ook moet je het bestandje ~/.pulse/client.conf dan weer weggooien of de autospawn regel even uitcommenten en het bestandje ~/bin/jackstart aanpassen:

#!/bin/bash

/usr/bin/pasuspender -- /usr/bin/jackd -dalsa -dhw:0 -r44100 -p1024 -n2 &
sleep 5
pactl load-module module-jack-source
pactl load-module module-jack-sink
exit

De waardes die je gebruikt om JACK op te starten moet je wel aanpassen naar de meest ideale waardes voor jouw setup. Als je het eenmaal aan de praat hebt en qjackctl opstart zou het er ongeveer zo uit moeten zien:

JACK vs PulseAudio

Nu kun je dus tegelijkertijd gebruik maken van software met JACK ondersteuning zoals bijv. Qtractor of JACK-Rack met allerlei effecten en programma’s die gebruik maken van PulseAudio (Rhythmbox, Totem).

JACK in plaats van PulseAudio

Als je het over de duivel hebt…

Trap je ‘m op zijn staart! Vandaag is er dus een nieuwe release beschikbaar van Qtractor, 0.4.3 oftewel Fussy Doula. Zit ik moeilijk te doen met pakketjes te fabrieken voor versie 0.4.2 met checkinstall, heeft de goede man gewoon de hele rambam al kant en klaar staan:

Qtractor 0.4.3 voor Ubuntu Jaunty Jackalope (64-bits)

Librubberband 1.4.0 voor Ubuntu Jaunty Jackalope (64-bits)

Rubberband 1.4.0 voor Ubuntu Jaunty Jackalope (64-bits)

Rubberband-LADSPA 1.4.0 voor Ubuntu Jaunty Jackalope (64-bits)

Misschien maar wat vaker op ctrl+F5 drukken of een RSS feed bookmarken. Heb gelijk wat geld gedoneerd via Sourceforge.

Als je het over de duivel hebt…

Qtractor 0.4.2 checkinstall deb

Omdat ik nergens een 64-bits PPA of debje van de laatste versie van Qtractor voor Ubuntu Jaunty kon vinden heb ik zelf maar twee checkinstall pakketjes gebrouwen (32- en 64-bits). Gebruik is op eigen risico, bij mij werken de pakketjes in ieder geval prima. Maar als er vragen over zijn, schroom dan niet om een berichtje achter te laten.

Qtractor 0.4.2 voor Ubuntu Jaunty Jackalope (32-bits)

Qtractor 0.4.2 voor Ubuntu Jaunty Jackalope (64-bits)

Rui Nuno Capela, de man achter Qtractor heeft ook een 32-bits debje op zijn site staan:

Qtractor 0.4.2 voor Ubuntu Jaunty Jackalope (32-bits, rncbc.org)

Qtractor 0.4.2 checkinstall deb

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