Zelf een real-time kernel bouwen voor Ubuntu 12.04

De real-time kernel uit de PPA van Alessio Bogani liep bij mij nog wel eens vast dus heb ik er zelf een gebouwd met de meest recente 3.2 kernel en bijbehorende RT patchset. En dit draait een stuk stabieler, nog geen lockups gehad.

Een eigen kernel bouwen is gelukkig nog steeds niet zo heel moeilijk, met Ubuntu kun je zelfs heel gemakkelijk pakketten maken met behulp van de make-kpkg utility. Na wat googlen kwam ik onderstaande handleiding tegen en simpeler kan het bijna niet.

Installeer de benodigde pakketten:

sudo apt-get install kernel-package fakeroot build-essential libncurses5-dev

Download de kernel sources en de RT patchset:

mkdir -p ~/tmp/linux-rt
cd ~/tmp/linux-rt
wget -c http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.28.tar.bz2
wget -c
http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.28-rt42.patch.bz2

Pak de kernel sources uit en patch deze met de RT patchset:

tar xjvf linux-3.2.28.tar.bz2
cd linux-3.2.28
patch -p1 < <(bunzip2 -c ../patch-3.2.28-rt42.patch.bz2)

Nu moet je de kernel nog configureren. De gemakkelijkste manier is om een bestaande kernel config te nemen, deze staan in de /boot directory van je systeem. Kopieer een config naar je werkdirectory en gebruik deze als uitgangspunt:

cp /boot/config-$(uname -r) .config

Dit commando kopieert de kernel config van de kernel die je op dat moment gebruikt. Je kunt ook de config van een andere kernel gebruiken, bijv. die van de Ubuntu lowlatency kernel aangezien deze al geoptimaliseerd is voor Linux audio toepassingen. De volgende stap is om een kernel config aan te maken met full preemption ingeschakeld aan de hand van de gekopieerde kernel config:

make oldconfig

Je kunt alle prompts wegklikken met Enter, behalve de prompt welk Preemption Model je wilt gebruiken. Selecteer daar 5 (Fully Preemtible Kernel):

Preemption Model
> 1. No Forced Preemption (Server) (PREEMPT_NONE)
  2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)
  3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT__LL) (NEW)
  4. Preemptible Kernel (Basic RT) (PREEMPT_RTB) (NEW)
  5. Fully Preemptible Kernel (RT) (PREEMPT_RT_FULL) (NEW)
choice[1-5]: 5 <Enter>

Workaround voor https://bugs.launchpad.net/ubuntu/+source/kernel-package/+bug/602405:

sed -rie 's/echo "+"/#echo "+"/' scripts/setlocalversion

Nu kun je de kernel gaan bouwen:

make-kpkg clean
CONCURRENCY_LEVEL=$(getconf _NPROCESSORS_ONLN) fakeroot make-kpkg
--initrd --revision=0 kernel_image kernel_headers

Als het bouwen klaar is (kan een tijd duren) kun je de kernel pakketjes installeren:

cd ..
sudo dpkg -i linux-{headers,image}-3.2.28-rt42_0_*.deb

Rebooten, nieuwe real-time kernel selecteren in je bootloader (GRUB) en je systeem zou nu moeten booten met de net gebouwde real-time kernel.

Zelf een real-time kernel bouwen voor Ubuntu 12.04

amSynth Galore!

Eigenlijk moet ik gewoon meer muziek maken maar dan zie ik m’n BCR2000 staan naast m’n scherm met de laatste beta van amSynth erop die je kunt skinnen en dan ben ik alweer afgeleid. Oftewel, heb een amSynth skin gemaakt voor gebruik met de BCR2000.


text-align: center;

amSynth 1.3 beta 2 met BCR2000 skin

amSynth zelf is inmiddels bij de tweede beta van de 1.3 release aangekomen. Zowel deze beta versie als de BCR2000 skin staan in mijn PPA. De skin staat trouwens ook op mijn Sourceforge pagina. Daarnaast heb ik de laatste git versie van de amSynth DSSI plug-in geüpload naar mijn PPA aangezien de plug-in uit het eerdere pakketje de boel liet crashen op sommige 64-bits machines.

amSynth Galore!

TYOQA is aangebroken!

The Year Of Qtractor Automation is aangebroken, oftewel Rui, de ontwikkelaar van Qtractor, is begonnen met het implementeren van automatisering in Qtractor. En het ziet er goed uit, het werkt goed en het voelt goed. Dat laatste klinkt misschien vreemd maar zulke ingrijpende veranderingen aan een applicatie die je bijna dagelijks gebruikt kunnen je ook tegenvallen of je zelfs tegen gaan staan.


text-align: center;

Qtractor hoofdscherm met MIDI track en automatiseringscurve

En op de een of andere manier voelt de manier waarop Rui dit implementeert bijna als vanzelfsprekend. Ik kan er gelijk mee overweg, begrijp hoe het werkt en zie van allerlei mogelijkheden die deze functionaliteit biedt voorbij trekken in m’n hoofd.

Gebruik je net zoals ik Ubuntu Lucid Lynx 10.04 dan heb ik goed nieuws, heb een Qtractor-SVN PPA opgezet waarnaar ik m.b.v. een script nieuwe bronpakketten upload zodra er aanpassingen zijn in de SVN trunk:

#!/bin/bash

MAINDIR=$HOME/PPA/qtractor/daily-builds

SVNREV=$(svn info https://qtractor.svn.sourceforge.net/svnroot/qtractor/trunk
| grep Revision | cut -d " " -f 2)

CURRENTREV=$(cat $MAINDIR/current.rev)

if [ $SVNREV = $CURRENTREV ]
 then echo "Current build is up to date."
 exit
else
 echo $SVNREV | tee $MAINDIR/current.rev

 VERSION=$(svn cat
https://qtractor.svn.sourceforge.net/svnroot/qtractor/trunk/configure.ac
| grep AC_INIT | cut -d " " -f 2 | cut -c 1-8)

 SVNDIR=$MAINDIR/qtractor-$VERSION+svn$SVNREV

 svn co https://qtractor.svn.sourceforge.net/svnroot/qtractor/trunk $SVNDIR

 rm -rf `find $SVNDIR -type d -name .svn && find $SVNDIR -type d -name debian`

 cp -a $MAINDIR/debian $SVNDIR

 cd $SVNDIR

 dch -v "$VERSION+svn$SVNREV-0lucid0~autostatic0"
 "Daily build, Qtractor SVN trunk checkout $SVNREV"

 rsync -av $SVNDIR/debian/changelog $MAINDIR/debian/changelog

 debuild -S -sa -k12345678

 dput ppa:autostatic/qtractor-svn
 $MAINDIR/qtractor_$VERSION+svn$SVNREV-0lucid0~autostatic0_source.changes

fi

TYOQA is aangebroken!

aj-snapshot

Met aj-snapshot van de hand van Lieven Moors kun je een snapshot maken van de actieve ALSA en JACK connecties. Heb een bronpakketje geüpload naar mijn PPA en aj-snapshot pakketjes voor Ubuntu 10.04 zijn dan ook inmiddels beschikbaar. Heb deze tool zelf nog niet gebruikt maar ga dat waarschijnlijk wel doen, het lijkt me toch wel een erg handige command line tool om JACK en ALSA connecties te herstellen en op deze manier hoef ik dat niet meer zelf te scripten met aconnect en jack_connect regels.

aj-snapshot

amSynth DSSI plug-in

De ontwikkelversie van amSynth heeft twee extra Makefiles in de broncode zitten waarmee je amSynth ook als DSSI en als (Linux) VST plug-in kan compileren. Vooral de DSSI plug-in leek me interessant dus ben aan het testen gegaan. Na het maken van Ubuntu pakketjes, waarvoor ik wel de DSSI Makefile moest aanpassen, en het installeren van het amsynth-dssi pakketje kon ik zonder problemen de plug-in openen en gebruiken in mijn favoriete host, Qtractor.

Een belangrijke functionaliteit miste wel: het selecteren van bestaande amSynth presets. De meeste DSSI plug-ins kunnen wel presets inladen, dit is ook een belangrijk voordeel van het DSSI plug-in framework, dus heb een feature request gedaan op de amSynth Google code site. En wie schetst mijn verbazing, dit verzoek werd gelijk opgepikt door de ontwikkelaar van amSynth en inmiddels is het mogelijk om met de laatste SVN versie bestaande amSynth presets te selecteren in het Track Properties venster van Qtractor!

text-align: center;

Qtractor Track Properties venster met amSynth DSSI plug-in

Inmiddels zijn mijn DSSI Makefile patch en een patch voor de DSSI plug-in zelf toegevoegd aan de source tree dus de DSSI plug-in in SVN versie laat zich nu heel makkelijk packagen voor Ubuntu, resultaat is terug te vinden in mijn PPA.

amSynth DSSI plug-in

Nieuwe pakketjes in de PPA

Pakketjes gebrouwen van een tweetal nieuwe releases (Qtractor 0.4.9 en QMidiArp 0.4.1) en van de amSynth DSSI plug-in die in de SVN repository van amSynth staat. Ben vooral benieuwd naar QMidiArp, had twee tutorials gevonden op YouTube en daar werd ik nieuwsgierig door want het ziet er zeer veelbelovend uit.


text-align: center;

Hoofdscherm van QMidiArp met een LFO, Sequencer en twee Arpeggiator modules

Nieuwe pakketjes in de PPA

Hydrogen 0.9.5 is gearriveerd

Vorige week is dan eindelijk de definitieve versie van Hydrogen 0.9.5 uitgebracht. Heb contact gehad via het LinuxMusicians forum met één van de hoofdontwikkelaars en als het goed is zijn een aantal irritante bugs die nog wel in RC1 zaten verholpen. Heb Hydrogen 0.9.5 pas gisteren geüpload naar mijn PPA dus heb er nog niet uitgebreid naar kunnen kijken.

Persoonlijk vind ik de communicatie rond de feitelijke release van deze versie wel een beetje vreemd gegaan. Op de officiële Hydrogen site staat geen aankondiging en op de onofficiële, toekomstige site staat dan wel een aankondiging maar rond die tijd (eind februari) waren er geen tarballs of binaries beschikbaar, die zijn pas 15 maart geüpload naar SourceForge voor zo ver ik weet. Als je graag wilt dat mensen je pakket gaan gebruiken moet je je communicatie en aanwezigheid op het web wel een beetje op orde hebben, vooral in het geval van Hydrogen aangezien dat een mooi en zeer bruikbaar pakket is.

We gaan het zien hoe de definitieve versie van Hydrogen 0.9.5 zal presteren. Zelf kon ik RC1 vrij snel de nek omdraaien, heeft denk ik ook te maken met de lage latencies die ik gebruik (64 frames/period @48Khz, oftewel 4ms), RC1 had daar wel wat moeite mee. Ook de sample editor was onbruikbaar voor wat complexere operaties.

Hydrogen 0.9.5 is gearriveerd

abGate Noise Gate

Helemaal vergeten te bloggen over abGate, een LV2 noise gate die een anderhalve maand geleden is uitgebracht. Over een gate valt weinig te vertellen dus:

abGate

abGate Noise Gate

De abGate LV2 plug-in staat in mijn PPA. Werkt prima met Ardour en Ingen en gedeeltelijk met Qtractor. De GUI laadt niet goed in Qtractor omdat de GUI van de plug-in gemaakt is met de GTK toolkit en Qtractor is een Qt applicatie. Momenteel is er dan ook een heftige discussie gaande welke kant het op moet gaan met de GUI’s voor LV2 want eigenlijk zou een LV2 GUI toolkit onafhankelijk moeten zijn zodat een maker van Qtractor bijv. zich niet met GTK implementaties bezig zou hoeven houden.

abGate Noise Gate

Sonatina Symphonic Orchestra

Kort geleden is de Sonatina Symphonic Orchestra sample bibliotheek gepubliceerd. Dit is een sample bibliotheek om orkestraties mee te maken, uitgegeven onder een Creative Commons Sampling Plus 1.0 licentie. De bibliotheek is beschikbaar als SFZ file dus met de LinuxSampler pakketten uit mijn PPA kun je de SSO SFZ file inladen en gebruiken. Ik heb aangeboden om de SFZ file te mirroren en autostatic.com staat inmiddels tussen de SSO HTTP mirrors. Het SFZ bestand wat ik beschikbaar stel is gepatched met de aanpassingen van pneuman/lsd/[lsd]. Niet alle samples zijn even bruikbaar, ik wilde bijv. de Glockenspiel gebruiken voor een track maar heb deze uiteindelijk zelf opgenomen, maar er zitten wel een aantal erg goeie tussen. Aanrader!

Sonatina Symphonic Orchestra