Downscaling and upgrading

For years I’ve used Focusrite Firewire interfaces, first the Saffire Pro 10 IO and after that its successor, the Saffire Pro 40. Both great devices but recently I decided to make the switch to USB. The reason was twofold:

  • I was barely using more than 2 ins or outs simultaneously
  • Firewire is being phased out and my notebooks don’t have any Express Card slots either, only USB ports
  • The Pro 40 isn’t very portable

So when switching to USB I would need:

  • Same or better quality preamps and AD/DA convertors
  • At least 2 ins and outs
  • Portability
  • Possibility to achieve similar latencies as with the Pro 40
  • Works well with Linux

This narrowed down the choice significantly. I could go for a Focusrite Scarlett but from what I found on the net there were some issues with these devices. I’ve also looked at some Presonus devices but actually I had already set my mind on a different device: the RME Babyface.


RME Babyface

So when I found a webshop that offered the Babyface at a reduced price (almost 15% off) I put my Focusrite up for sale and bought the Babyface. The Focusrite was sold within a week and the Babyface easily met my expectations:

  • When in CC (Class Compliant) mode it works out of the box
  • It’s highly portable, the Babyface is actually specifically made for this purpose as it comes with a nice pouch
  • It has 2 ins and outs and the great thing is that it’s possible to extend the IO via ADAT
  • The preamps and AD/DA converters are simply top notch, they’re so good that I’m considering switching cans and studio monitors as this device is merciless, it simply doesn’t work well with my current setup
  • When connected to an USB3 port (XHCI) the Babyface can run with nominal latencies of 0.5ms (this is with 8 samples), i.e. it beats the other two OS’s mentioned on the RME product page

I can live with not being able to control the device from within Linux, almost all settings can be done on the device itself. Upgrading the firmware can be done with a VM so that’s covered too. The only real drawbacks are that it’s an USB device so it’s a bit more picky with regard to your system setup and it consumes a bit more CPU compared to Firewire. But all in all this is a great sounding device that works well with Linux when in CC mode and it fits my specific user case very well.

Downscaling and upgrading

Nieuwe FFADO versie op komst

Er zit een nieuwe FFADO release aan te komen, FFADO 2.1.0.

De laatste puntjes worden op de i gezet en hopelijk wordt de nieuwe versie begin volgende week gereleased. Naast dat er een sloot aan nieuwe devices ondersteund worden in deze versie zijn er ook een hoop bugs gefixed en is er de nodige aandacht besteed aan ffado-mixer om deze goed werkende te krijgen met bijvoorbeeld de nieuwere Focusrites (de PRO 14, 24 en 40).

Voor mij persoonlijk verandert er niet veel, mijn Focusrite Saffire PRO 40 werkt feilloos onder Ubuntu 12.04. Maar in de toekomst zou ik wel graag een RME Fireface 400 aan willen schaffen en die wordt ondersteund met de aankomende FFADO release. Een bandmaat heeft een tijdlang twee Focusrite Saffire Pro 10’s gehad en deze recentelijk omgeruild met een RME Fireface 800 en volgens hem zijn de A/D D/A convertors gewoon stukken beter dan die van Focusrite.

Nieuwe FFADO versie op komst

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

Frisse start

Eindelijk mijn muziek PC gemigreerd naar Ubuntu 10.04 Lucid Lynx. Van de week is mijn nieuwe geluidskaart binnengekomen (een Focusrite Saffire Pro 40) en Jof van Tango Studio schoot me aan op IRC met de vraag of ik zijn real-time 2.6.33 kernel wilde proberen. Twee goeie redenen om te switchen. Ten eerste omdat ik de Saffire Pro 40 al uitgebreid heb kunnen testen onder 10.04 met mijn eigen FFADO pakketjes en ten tweede omdat ik met de kernel van Tango Studio de beschikking heb over de nouveau drivers voor mijn Nvidia kaart. Ben nu dus niet meer afhankelijk van die closed source drivers van Nvidia die de laatste tijd nogal wat problemen schijnen te geven in combinatie met recentere real-time kernels. Ook heb ik nu geen last meer van de devtmpfs bug die toch niet opgelost gaat worden aangezien de maintainer van de Ubuntu real-time kernel er mee gaat stoppen.

Had nog wel een raar probleempje met JACK. Kreeg iedere keer als ik bijv. Yoshimi of PHASEX opstartte de volgende melding:

ports used in attemped connection are not of the same data type

Dacht eerst dat het misschien aan JACK lag maar na op de LAU mailinglist gevraagd te hebben wat deze melding nou precies betekende had ik al snel een vermoeden dat het waarschijnlijk aan a2jmidid lag. De Saffire Pro 40 doet er namelijk een stuk langer over om op te komen dan de Pro 10 van de band. En met de Pro 10 werkt mijn a2jmidid opstartscriptje wel goed maar met de Pro 40 start a2jmidid op voordat de audio poorten opkomen. Dit heeft als gevolg dat veel applicaties die met de eerst twee beschikbare audio JACK input poorten willen verbinden (normaliter dus ook audio poorten) nu aan de a2jmidid JACK MIDI poorten worden geknoopt (dat zijn immers de als eerste aangemaakte input poorten). Oftewel, de applicatie probeert audio poorten met MIDI poorten te verbinden en vandaar de melding. Mijn opstartscriptje voor a2jmidid ziet er nu als volgt uit:

#!/bin/bash

while [ "$JACK_TEST" != "system" ]
do
JACK_TEST=$(jack_lsp 2>/dev/null | grep -m1 -e "system" | cut -d ":" -f 1)
sleep 2
done

a2jmidid -e &

exit

Werkt weer prima. Kan nog beter uiteraard want QjackCtl blijft nu hangen zo lang de while loop actief is, maar daar vind ik nog wel een elegantere oplossing voor.


Frisse start

FFADO svn pakketje

Van de week pakketje geüpload van de svn trunk van de FFADO driverstack naar de FFADO directory van mijn PPA. Getest met de Focusrite Saffire Pro 40 op m’n werk, daar heb ik het pakketje ook voor gemaakt. Een pakketje is toch cleaner dan zelf gecompileerde software, het installeert en deïnstalleert makkelijker en is beter terug te vinden. De mixer doet het helaas nog niet vanwege wat missende Python functionaliteit in Lucid Lynx, de driver daarentegen werkt perfect.

FFADO svn pakketje

Nieuwe FireWire kaart!

Voor de vervangingsronde van de digitalisatiestudio bij mij op het werk hadden we een Focusrite Saffire Pro 24 besteld om cassettes, platen en ander analoog materiaal te digitaliseren. Voorheen ging dit met een Creative kaart maar die kan niet op tegen de kwaliteit van de AD/DA convertors van zo’n Focusrite kaart.

Vorige week is de kaart binnengekomen, alleen is er dus kennelijk door de afdeling inkoop een Pro 40 besteld in plaats van een Pro 24. Voor het digitaliseren van wat LP’tjes is dit natuurlijk enorme overkill. Maar we hebben toch besloten de kaart te houden aangezien het bestellen ervan al zo moeizaam ging en we geen zin hebben om weer een maand op een andere kaart te moeten wachten.

Nu staat er dus een schitterende Pro 40 in de studio. Uiteraard aangesloten op een Ubuntu machine aangezien er al gebruik werd gemaakt van Audacity en dat werkt onder Ubuntu ook prima. De machines zijn ook nagelnieuw trouwens, erg mooie Dell Studio XPS 8100‘s. Ubuntu 10.04 draait er als een speer op (niet anders verwacht van Dell) en met de FFADO svn drivers werkt de Focusrite vlekkeloos tot nog toe.

Wel gelijk een Belkin PCIe FireWire insteekkaart geplaatst in de Studio XPS want ik had zo’n vermoeden dat de onboard controller wel eens niet zou gaan werken. En inderdaad, de Focusrite werd niet herkend als hij aan deze controller hing. Op de Belkin werd de kaart feilloos herkend maar weigerde JACK te starten. Na het uitzetten van de onboard FireWire controller in de BIOS was dat ook opgelost. Heb het systeem flink getweaked en JACK werkt nu echt perfect met de kaart.




Nieuwe FireWire kaart!

Hydrogen Uitgifte Kandidaat 1

Een week of wat terug is Hydrogen 0.9.5 RC1 uitgekomen en heb deze gelijk geüpload naar mijn PPA. Wel mét de SELECT_NEXT_PATTERN action patch want die functionaliteit zat er niet in. De SVN ontwikkelaarsversie heeft deze functionaliteit inmiddels weer wel. Om een idee te geven van wat je met Hydrogen kan heb ik een screencastje gemaakt.

http://linux.autostatic.com/temp/live-sequencing-hydrogen.ogg

Bestandsgrootte: 35 mb
Video: ogg
Audio: vorbis

Mijn setup voor dit brouwseltje:

  • Korg nanoKONTROL om de verschillende patronen te activeren
  • Fender Telecaster aangesloten op m’n Focusrite Saffire Pro
  • Hydrogen 0.9.5 RC1 met SELECT_NEXT_PATTERN action patch in Stacked Pattern Mode
  • Twee PHASEX instances met envelope following ingeschakeld. Op de aux JACK input van de PHASEX’en zit een steady kick die het geluid triggered. Je hoort de Electro Lead en Harsh Saw patches.
  • Yoshimi met de Pizzicato Strings patch.
  • Twee Rakarrack instances, een voor de gitaar (rakarrack-01 in de video) en een voor de Melodica sample (de Rakarrack bovenaan). De ArpieVerb preset is een custom preset die een arpeggio maakt van het inkomende signaal en met behulp van de JACK Transport functionaliteit van de git versie van Rakarrack is het mogelijk om de arpeggio netjes gelijk te laten lopen met Hydrogen. De galm laat het een beetje glasachtig klinken.
  • Non-Mixer om alle signalen naar één stereo signaal te routeren zodat ik het weer makkelijk naar mijn koptelefoonoutputs, recordMyDesktop en de JACK Oscrolloscope kan doorsturen.
  • LinuxDSP JACK Patch Bay. Die gebruik ik eigenlijk alleen maar een beetje voor de show.

De gitaar is live ingespeeld en omdat ik net even te weinig tijd had is het een beetje slordig geworden. Ook moet ik nog even goed gaan zitten voor mijn ArpieVerb preset, het klinkt nu nog teveel als een houten blaasinstrument.
In Hydrogen heb ik de Stacked Pattern Mode gebruikt. In deze mode kun je patronen klaarzetten zodat ze gaan spelen als het op dat moment actieve patroon is afgelopen. Dit is echt ideaal voor live gebruik en voor zover ik weet is Hydrogen de enige sequencer onder Linux die deze functionaliteit heeft. Echt superhandig. Zoals je kan zien heb ik de patronen genummerd en deze nummers komen overeen met de strips op mijn Korg nanoKONTROL. De nanoKONTROL heb ik zo geprogrameerd dat de LEDjes aangeven welk patroon er actief is. Je kunt ook meerdere patronen tegelijk actief hebben, echt ideaal om opbouwen te creëren.
Liep nog wel tegen een Hydrogen onhebbelijkheidje aan: de maximale patternsize. Deze is 32 maar ik had voor m’n ideetje een patternsize van 64 nodig. Ik heb dit op kunnen lossen door met behulp van een rekenmachientje handmatig de h2song XML file aan te passen. Daarna kon ik het patroon toch nog redelijk bewerken door de patterneditor volledig uit te zoomen.

De uiteindelijke screencast heb ik met OpenShot bewerkt.

Hydrogen Uitgifte Kandidaat 1

Ubuntu Studio Controls

Ben nu mijn Karmic installatie op mijn notebook aan het finetunen voor audio productie en probeer de Ubuntu Studio Controls daarvoor te gebruiken. Normaal doe ik dit het liefst zelf maar ben wel benieuwd naar dit tooltje. De eerste melding voorspelt helaas niet veel goeds, Engels is niet mijn moedertaal maar ik weet wel dat privilages niet de correcte spelling is. Ik bekijk nu mijn /etc/security/limits.conf omdat er nog een bugje in Ubuntu Studio Controls zit waardoor er een regel niet correct wordt aangemaakt, die moet je zelf handmatig nog even toevoegen:

@audio - rtprio 90       # maximum realtime priority

unlimited  # maximum locked-in-memory address space (KB)

Ja, daar kan je systeem weinig mee, daar mist wel meer dan een regeltje. Dus ik pas het nu aan zodat er het volgende komt te staan:

@audio - rtprio 90       # maximum realtime priority
@audio - nice -19 # maximum nice priority (= lowest nice value, default '0')
@audio - memlock unlimited # maximum locked-in-memory address space (KB)

Dit is ook erg slordig en bovendien niet erg handig:

# do not delete static device nodes
ACTION=="remove", NAME=="", TEST=="/lib/udev/devices/%k", OPTIONS+="ignore_remove"
KERNEL=="raw1394",              GROUP="video"
ACTION=="remove", NAME=="?*", TEST=="/lib/udev/devices/$name", OPTIONS+="ignore_remove"

Die raw1394 regel is er dus gewoon ergens tussen geknald terwijl het netter zou zijn als deze regel aan de Firewire stanza van dit bestand (/lib/udev/rules.d/50-udev-default.rules) zou zijn toegevoegd. Bovendien is het handiger om deze regel toe te voegen aan een nieuw bestandje in /lib/udev/rules.d want er is dus al een update geweest die bovenstaande regel er weer uit heeft gehaald. Een andere optie is om een dergelijk bestandje aan te maken in /etc/udev/rules.d want er is altijd een kans dat met een toekomstige update er toevallig een bestandje in /lib/udev/rules.d bijkomt wat toevallig dezelfde naam heeft als jouw zelf aangemaakte bestandje. Kleine kans natuurlijk, maar het kan altijd.

Volgende bugje, als ik nu check in welke groepen ik zit ben ik dus niet in de ‘video’ groep gezet, alle andere accounts wel. Dus het account onder welke je Ubuntu Studio Controls aanroept wordt kennelijk niet toegevoegd. Maar even handmatig gedaan want anders kan ik alsnog geen Firewire apparaten gebruiken met mijn huidige account.

Nou, maar even checken of het werkt…

Hmmmmm, het werkt maar heb wel last van xruns en af en toe loopt het vast met de volgende foutmelding:

firewire ERR: wait status < 0! (= -1)
DRIVER NT: could not run driver cycle

Vervolgens floept het lampje op de Focusrite uit en wordt het apparaat uitgeschakeld:

Nov 30 22:45:01 soushi kernel: [ 1128.407152] ieee1394: Node changed: 0-01:1023 ->
0-00:1023
Nov 30 22:45:01 soushi kernel: [ 1128.407160] ieee1394: Node paused: ID:BUS[0-00:1023]
GUID[00130e01000605c2]
Nov 30 22:45:04 soushi kernel: [ 1131.423020] ieee1394: Node removed: ID:BUS[0-00:1023]
GUID[00130e01000605c2]

Dit is natuurlijk erg onhandig. Het zou aan de chipset van mijn notebook kunnen liggen (JMicron) of aan het über goedkope Firewiresnoer dat ik er nu tussen heb zitten maar onder 9.04 werkte het wel volgens mij. Nooit uitgebreid getest dus het hoeft niet specifiek aan Karmic te liggen. Nu wilde ik eigenlijk alleen Ubuntu Studio Controls even testen, ik ga mijn notebook toch niet gebruiken in combinatie met mijn Firewire kaart, dus laat het hier verder bij voor vanavond. Mijn conclusie is dat ik de boel liever zelf configureer want Ubuntu Studio Controls maakt er een beetje een potje van.

Edit: ik heb hier inmiddels melding van gemaakt op launchpad.net.

En zowel onder Jaunty als onder Karmic werkt de Focusrite niet goed, ook niet met betere kabels. Ligt dus hoogstwaarschijnlijk aan de Firewire chipset van mijn notebook (JMicron Technology Corp. IEEE 1394 Host Controller) of aan het feit dat de Firewire aansluiting op mijn notebook 4-pins is ipv. 6-pins. Alhoewel, dat hoort dus niet uit te maken.

Onder 8.04 heeft het kennelijk wel gewerkt zie ik nu net op mijn oude blogje.

Ubuntu Studio Controls