Nieuwe release RT patchset

Ook al zijn forced threaded interrupt handlers inmiddels onderdeel van de mainline kernel (vanaf 2.6.39), neemt niet weg dat er nog het nodige verbeterd kan worden aan de real-time performance van recentere kernels. Thomas Gleixner en co. hebben de aankomende release van de 3.0 kernel aangegrepen om met een nieuwe release van hun real-time patchset te komen. 3.0-rc7-rt0 is inmiddels beschikbaar en de eerste reacties zijn postief.

Nieuwe release RT patchset

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

Ubuntu 10.10 Maverick Meerkat

Maverick laat ik aan me voorbij gaan. Géén real-time kernel, de packager daarvoor heeft het bijltje erbij neergegooid, en nog geen up-to-date PPA’s. Dus is het wachten op 11.04 Natty Narwhal. De projectleider van Ubuntu Studio heeft de wens uitgesproken dat er een up-to-date gespecialiseerde Ubuntu Studio PPA moet komen vanaf Natty Narwhal en volgens mij is het de bedoeling dat ik daar dan ook voor ga packagen. Eerst het idee maar helder krijgen en de goede mensen vinden, dan zien we wel verder.

Ubuntu 10.10 Maverick Meerkat

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

JACK in main!

Voor Ubuntu Lucid Lynx zal de JACK sound daemon weer in de main repository worden opgenomen (link). Nu zit JACK nog in universe en dat zorgt voor een hoop ongemak. Daar staat helaas wel tegenover dat er geen real-time patch komt voor de kernel branch die 10.04 gaat gebruiken (2.6.32):

I’m going to switch 31-rt into maintaince mode (with or without he VFS patches) and concentrate on getting .33-rcX-rt out. Yes, there will be no .32-rt. The reason is simply that the locking changes which got merged into .33 are making my life easier and are the base to sort out more ready for the mainline stuff.

Bron: LWN.net

JACK in main!

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…