Geniaal spul

In de KLANG discussie geeft datenwolf aan dat het niet vaak voorkomt dat je meer dan 256 kanalen tegelijkertijd nodig hebt dus met dat soort usercases hoef je niet zo veel rekening te houden. Prompt komt Paul Davis met een reply waar je eigenlijk niks tegenin kan brengen (behalve dan dat het misschien inderdaad wel een erg extreme usercase is). Een topic over een mixing console van ruim 6 meter lang met 384 inputs, een monsterlijk apparaat van Harrison Consoles (de MPC4-D) die dus op Linux draait.

Harrison MPC4-D console, 384 inputs, 112 faders en 3000 EQ bands

De CPU power voor de console, zo te zien 12 servers waarop Linux draait, aan elkaar geknoopt via gigabit ethernet

Geniaal spul

De beer is los

En hij heet KLANG – Kernel Level Audio Next Generation. Een medewerker van een universiteit In München vindt de hele Linux audio stack maar niks, al dat user space gedoe, dat moet allemaal in kernel space gebeuren. En op basis van OSS want ook de ALSA driver stack is natuurlijk helemaal crap. En omdat het allemaal fundamenteel verkeerd is gaat hij van de grond af iets nieuws bouwen. Dus hij legt een websiteje aan, doet een aankondiginkje en verwondert zich er vervolgens over dat het wordt opgepikt.

En als vervolgens Phoronix en zelfs Paul Davis (de belangrijkste man achter Ardour en JACK) er aandacht aan gaan besteden heeft datenwolf heel wat uit te leggen. Ik wens hem heel veel succes, zowel met KLANG als met het uitleggen waar hij nou mee bezig denkt te zijn.

De beer is los

Vakantie

We waren twee weekjes op vakantie. En dan kom je terug en zie je dat er allerlei coole dingen zijn gebeurd:

  • In de laatste editie van Linux Format staat een zeer prositieve review van Qtractor 0.5.5
  • setBfree is gereleased, een op Beatrix gebaseerde Hammond kloon, maar dan met een GPL licentie
  • Guitarix is ook weer een versie verder, 0.23.3. Gebruik guitarix de laatste tijd veel. Fijn stukkie zachte waar.
  • Rui heeft z’n proto-toys geüpdate naar versie 0.0.8. Zijn al erg bruikbare LV2 plug-ins!

Later meer over dit alles in aparte blog entries.

Vakantie

Yoshimi 1.0.0

Op 2 juli is Yoshimi 1.0.0 uitgekomen ter nagedachtenis van Alan “Cal” Calvert die op die dag precies een jaar geleden overleden is. Naast wat kleine aanpassingen en patches is het vooral een eerbetoon aan Alan Calvert. En Yoshimi is stabiel genoeg voor een 1.0.0 release. De planning is nu dat ik ga werken aan het aanpassen van de sources om Yoshimi 1.x.x weer dichter bij ZynAddSubFX te brengen zodat op de lange duur de projecten samen zouden kunnen smelten. De ontwikkelbranch (nu 0.062.x) zal wel blijven bestaan.

Yoshimi 1.0.0

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

Homestudio migratie

Migratie voorloopt voorspoedig. Bijna alles draait weer en het systeem voelt weer lekker fris en fruitig aan. Enige echte lastpost is de real-time kernel die ik heb geïnstalleerd, die wil nog wel eens vastlopen (kernel panics). Maar dat komt waarschijnlijk omdat het al een oudere versie is (zo te zien 3.2.14-rt24, recentste versie is 3.2.19-rt30). Zal dus de lowlatency kernel moeten gebruiken, nog niet uitgebreid getest maar ik denk dat dat wel goed komt. Dan kan ik ook zonder problemen de plug-ins gebruiken van het Distrho project. Die maken bijna allemaal gebuik van het Juce framework en dat framework is voor zover ik het heb begrepen niet helemaal real-time safe zoals dat heet. Oftewel, plug-ins gebaseerd op dat framework doen het niet goed met een real-time kernel en kunnen zelfs je systeem laten crashen.

Homestudio migratie

Lubuntu onvolkomenheden

Na het installeren van Lubuntu 12.04 via een minimal install en een apt-get install lubuntu-core op de CLI ziet de desktop waarmee je geconfronteerd wordt er nog niet echt jofel uit.


text-align: center;

Desktop na installatie lubuntu-core

Dit is simpel op te lossen door het pakketje gtk2-engines-pixbuf te installeren. Dit pakketje zorgt ervoor dat GTK2 applicaties het correcte Lubuntu-default GTK2 theme krijgen.


text-align: center;

Desktop na installatie pixbuf GTK2 engine

En Qt applicaties? Die pikken helaas nog niet de juiste GTK instellingen op ondanks dat de GUI Style standaard op GTK+ staat.


text-align: center;

Qt houdt het op een Clearlooks GUI Style

Na het installeren van het pakketje libgnome2-common is dit ook opgelost en hebben alle applicaties een homogenere feel.


text-align: center;

qtconfig met correcte GTK+ GUI Style

Lubuntu onvolkomenheden

Homestudio migreren naar Precise

De Arch install die ik draaide naast good ol’  Lucid gaat toch plaats maken voor Precise. Arch is cool maar gewoon te veel werk voor mij. Ook kreeg ik de font rendering niet goed en na een update waarna yaourt niet meer werkte heb ik Arch niet meer opgestart.

Op mijn studio PC ga ik ook LXDE gebruiken. Heb een minimal install gedaan en vervolgens lubuntu-core geïnstalleerd. FFADO erop en de real-time kernel van Alessio Abogani en dat lijkt goed te draaien dus ga de boel nu verder inrichten. Hou jullie op de hoogte van de vorderingen.

Homestudio migreren naar Precise