JACK en meerdere geluidskaarten

JACK kan meerdere geluidskaarten aan, als ze maar dezelfde backend gebruiken (ALSA, FFADO, OSS). Je kan verschillende kaarten instellen voor de in- en output devices maar mocht je meerdere input en/of output devices willen gebruiken, bijvoorbeeld twee verschillende geluidskaarten voor de output tbv monitoring, dan is er de mogelijkheid om dat met de tooltjes alsa_in en alsa_out te doen.

Op mijn Fedora 12 installatie werkt dat prima maar op mijn Ubuntu machines kon ik deze tooltjes niet vinden. Even Googlen en snel de oorzaak achterhaald, kennelijk vergeten ze bij Ubuntu iedere keer JACK te compileren met libsamplerate. Mocht er behoefte aan zijn dan kan ik JACK packagen met de tooltjes die afhankelijk zijn van libsamplerate, zoals alsa_in en alsa_out. Heb wel al Karmic 64-bits pakketjes geüpload.

Een programma waar het tooltje alsa_out van pas zou kunnen komen is Mixxx met JACK als Sound API. Als je Mixxx samen met JACK gebruikt kun je voor je Master en je Headphones kanalen geen verschillende geluidskaarten instellen. Maar als je nadat je JACK hebt opgestart en voordat je Mixxx opstart het volgende terminal commando opgeeft kan dat wel:

alsa_out -j cmedia -d hw:1 -c 2 &

Dit commando is uiteraard wel afhankelijk van de configuratie van je geluidskaarten. Hoe dat ingesteld is kun je oproepen met het terminal commando aplay -l:

[jeremy@werkpc ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: AD198x Analog [AD198x Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: AD198x Digital [AD198x Digital]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: default [C-Media USB Headphone Set  ], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ALSA ziet de onboard HDA Intel kaart dus als card 0 (oftewel hw:0) en het ingeplugde C-Media USB geluidskaartje als card 1 (hw:1). Nu wordt het alsa_out commando hierboven ook gelijk duidelijker, als ik dat even snel ontleed staat er eigenlijk het volgende: gebruik device (-d) hw:1 (de C-Media USB geluidskaart) met 2 kanalen (-c 2) en geef deze ‘cmedia’ als naam voor JACK (-j cmedia). Je kunt nog meer instellingen meegeven maar voor dit voorbeeld volstaat bovengenoemd commando. Wat er nu gebeurt is dat er een nieuwe JACK ‘Writable Client/Input Port’ verschijnt in QjackCtl met de naam ‘cmedia’. Als je nu Mixxx opent kun je inderdaad via Options – Preferences – Sound Hardware de verschillende geluidskaarten instellen onder ‘Master’ en ‘Headphones’. ‘Master’ zet je dan op ‘system’ (in mijn geval de onboard HDA Intel) en ‘Headphones’ op ‘cmedia’. Koptelefoon aansluiten op de C-Media stick en stereotoren op de onboard kaart, voilà, monitoring op je koptelefoon en snoeiharde deathmetalitalodisco van Giörgiö Möröder op je stereo.

Al het bovenstaande gaat op voor wat in de wandelgangen wel jack1 wordt genoemd (versie 0.116.x), jack2 (versie 1.9.x, ook wel jackdmp genoemd, mp staat voor multiple processors) heeft deze functionaliteit al ingebakken, dus dan heb je alsa_in en alsa_out niet meer nodig.

JACK en meerdere geluidskaarten

Helaas geen LAC 2010 voor mij

Maar wel vanwege een heul goeie reden: m’n meissie is 7 mei uitgerekend. Dus als Gnup (ja, dat is zijn bijnaam, Gnup, van “Gnup is Not a Unix Person”) iets vroeger komt kan ik sowieso niet, komt hij iets later dan zou ik wel heen kunnen gaan maar verder niet kunnen participeren, ook omdat je zoiets niet vantevoren in kunt plannen.

Oja, de naam is Gnup is geïnspireerd door Irem, aka Hompie.

Helaas geen LAC 2010 voor mij

Hydrogen 0.9.5 64-bit

Van de laatste release van Hydrogen zijn voor Jaunty alleen 32-bit pakketjes beschikbaar. Maar aangezien we in 2010 leven en praktisch alle nieuwe PC’s met 64-bit CPU’s worden geleverd heb ik een 64-bit pakketje gepackaged. Waarom nog steeds die focus op 32-bit? Wat werkt er nou nog niet goed op 64-bit Linuces? Misschien toch te druk geweest met kalkoenen vullen?

hydrogen_0.9.5-beta1_jaunty_amd64.deb (Jaunty Jackalope 9.04 64-bit)

Hydrogen 0.9.5 64-bit

Ardour setups

We zijn met de band aan het kijken of we over kunnen stappen naar Ardour om onze nummers op te nemen. We gebruiken nu nog een oude versie van Cubase maar persoonlijk wil ik het liefst met FOSS aan de gang en het voordeel van Ardour is dat het zowel onder Linux als OSX draait, dus dan kunnen ik en de drummer (graficus en echte Apple man) thuis ook nog wat aan de opnamen schaven.
Op de Ardour site staat nu een blog entry waarin aan Ardour gebruikers gevraagd wordt om foto’s van Ardour setups door te geven, erg tof om inspiratie op te doen voor mijn eigen thuisstudiootje in opbouw.

Ardour setups

MilkyTracker JACK fix

MilkyTracker bleef iedere keer ergens hangen als ik mijn XM’tjes afspeelde met JACK als driver. Ik wil weer wat gaan trackeren en MilkyTracker is dé open source FastTracker 2 opvolger. Maar na wat googlen kwam ik er achter dat er dus een bug zit in de JACK playback functie. Aan de patch te zien zijn ze één regeltje code vergeten. Heb een nieuw pakketje gemaakt met de patch, staat op mijn Downloads pagina. Heb mijn oude FastTracker handleiding nog liggen, kijken of ik weer eens wat nieuws kan brouwen voor Phonetik Cluster.

MilkyTracker JACK fix

Bombarie

Al een tijdje organiseer ik samen met DJ Brodsky redelijk succesvolle dansavondjes onder de naam StroomStoring. Beetje indie, beetje electro, beetje new-wave, gewoon lekkere dansmuziek. Kennelijk is de word enigszins gespread en nou hebben we allebei ook wel wat connecties maar als het Bombarie avondje volgende week aanslaat worden we residential DJ’s van Patronaat.

De bedoeling is dat deze avonden de Fietsznfabriek vibe een beetje terug gaan brengen. Brodski en ik kwamen daar vaak, erg toffe plek om uit te gaan. Op een gegeven moment kwam Patronaat in het gebouw van de Fietsz te zitten vanwege de nieuwbouw en is de Fietsz wat later naar het Westergasterrein verhuisd na eerst geprobeerd te hebben de lokatie te delen met de Patro. Ben daar nooit geweest maar volgens mij is het helemaal dood gebloed.

Meer info op de site van Patronaat.

Bombarie

LMMS Kersteditie

Ook van LMMS is vannacht een nieuwe release uitgekomen, 0.4.6. Met een hoop bugfixes en de nodige andere verbeteringen. Hopelijk wordt de LMMS PPA snel geüpdate dan kan ik de nieuwe versie gaan uitproberen. Net ook even wat gedoneerd aan het project, die gasten verdienen alle support, volgens mij ontwikkelen, coden en bugfiksen ze zich een slag in de rondte.

Edit: de LMMS PPA staat inmiddels vol met pakketjes voor Hardy, Jaunty en Karmic.

LMMS Kersteditie

LMMS aanzwengelen

Standaard gebruikt LMMS ALSA als backend voor het geluid. Maar ALSA kan maar één applicatie tegelijkertijd van geluid voorzien. Om ervoor te zorgen dat meerdere programma’s samen geluid kunnen produceren gebruikt Karmic Koala de PulseAudio sound server. En mocht PulseAudio nou net die ene applicatie zijn die de ALSA backend dus al geclaimd heeft. Oftewel, LMMS zal niet meer zijn dan de Linux Multi Media Silence (ipv. Studio). Nu kun je in LMMS de Audio Interface op PulseAudio zetten, maar in het desbetreffende venstertje staat al een waarschuwing: bad latency!

Setup LMMS

Er zal nu wel geluid komen uit LMMS maar echt optimaal werkt het niet. Als je bijv. met MIDI aan de slag wilt of met wat grotere samples dan zul je al snel tegen de beperking van PulseAudio aanlopen. ALSA kent die beperkingen nauwelijks dus het zou fijn zijn als je ALSA als backend zou kunnen gebruiken. Hier komt het programaatje pasuspender van pas. Met het pasuspender commando kun je PulseAudio tijdelijk uitzetten zodat een ander programma gebruik kan maken van ALSA, het ‘suspend’ pa, oftewel PulseAudio. LMMS kun je op deze manier ook geluid door laten geven aan ALSA, het volledige commando daarvoor is pasuspender — lmms
Voordat je LMMS op deze manier opstart moet je in een terminal eerst even aplay -l uitvoeren om erachter te komen wat de ALSA naam van je standaard geluidskaart is:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: STAC92xx Digital [STAC92xx Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Bij mij heet deze dus ‘Intel’ en als ik vervolgens in LMMS in het Audio Settings schermpje bij SETTINGS FOR ALSA ‘hw:Intel’ ingeef dan weet ALSA welk apparaat hij aan moet spreken:

Settings ALSA LMMS

Als ik nu LMMS opstart met pasuspender — lmms wordt PulseAudio tijdelijk uitgeschakeld en gebruikt LMMS ALSA als backend met de juiste geluidskaart. En dat werkt al een stuk beter. Kan nog beter natuurlijk mbv JACK maar daar wijdt ik nog wel een apart blogje aan aangezien JACK en LMMS niet zo heel goed met elkaar door één bocht kunnen. Maar met wat tweaken kun je al een heel eind komen. En LMMS 0.4.6 komt er aan, hopelijk met wat betere JACK ondersteuning.

LMMS aanzwengelen

My First Little Grand Piano

LinuxSampler is zoals de naam al zegt een software sampler, maar wel een bijzondere want met LinuxSampler kun je zogenaamde Gigasampler/GigaStudio bestanden gebruiken, en daar zijn er aardig wat van, ook enkele van een hele goeie kwaliteit. Maar helaas, omdat LinuxSampler niet voldoet aan de Debian Free Software Guidelines wordt het niet meer gepackaged voor Ubuntu. Hoe het allemaal precies zit staat in een bugreport, het komt erop neer dat de makers van LinuxSampler een extra clausule aan de GPL licentie hebben toegevoegd (“commercial exception“) terwijl een GPL licentie kennelijk clausules uitsluit.

Op de LinuxSampler site zelf zijn wel pakketjes beschikbaar, echter alleen voor Ubuntu 8.04 32-bits en ja, dat gebruik ik al een tijdje niet meer. Gelukkig heeft iemand ze gepackaged voor 9.04 64-bits en in een PPA neergezet. Vanuit deze PPA zou je dus de benodigde pakketjes voor LinuxSampler kunnen downladen en installeren, ware het niet dat er in een tweetal pakketjes wat fouten zitten mbt. de afhankelijkheden van andere pakketjes. Ik heb die eruit gehaald en de gefikste pakketjes op mijn Downloads pagina neergezet. Je kunt de fouten er ook zelf uithalen of de pakketjes uit de PPA geforceerd installeren met het dpkg -i –force-depends pakketnaam commando. Maar downloaden en dubbelklikken werkt nou eenmaal wat makkelijker.

Download dus eerst de benodigde bestanden:

libgig6_3.3.0-1_amd64.deb
liblinuxsampler_1.0.0-5_amd64.deb
linuxsampler_1.0.0-5_amd64.deb

Installeer deze in bovenstaande volgorde door de bestanden dubbel te klikken en je wachtwoord in te geven. Nu heb je alleen de backend geïnstalleerd, we hebben ook nog een frontend nodig. Daar zijn er een aantal van (Qsampler, Jsampler, Fantasia) maar Fantasia wordt het meest gebruikt en bevat de minste bugs. Om Fantasia te kunnen gebruiken heb je wel Java nodig dus mocht je dat nog niet geïnstalleerd hebben dan moet je dat eerst doen (sun-java6-bin, sun-java6-jre en sun-java6-plugin). De Fantasia frontend kun je vinden op Sourceforge:

Fantasia-0.9.jar

Zelf heb ik in mijn home mapje een mapje LinuxSampler aangemaakt en hier Fantasia ingezet. Backend hebben we, frontend ook, nu nog een mooie samplepack:

Maestro Concert Grand v2

Maestro Concert Grand v2 is a big giga bank using 792 stereo samples of a concert piano, a Yamaha CF3 from the early 90s, It was chromatically sampled to maintain the tempered tuning. The samples were recorded with two Neumann KM84 microphones, disposed in X/Y, with 5 velocity layers, and weighs 932 MB ! The piano alone, without release samples, weighs 887 Mb and 440 samples. The release samples are 352 and weigh 45 MB. You can play with or without them.

Mocht je geen RAR bestanden kunnen openen installeer dan het pakketje unrar (dus niet unrar-free!). Nu kun je het samplepack uitpakken met de Archive Manager, ik heb dat zelf gedaan in het LinuxSampler folder in mijn home folder. Als het goed is heb je nu een mooi groot gig bestand in dat mapje staan. Ok, laten we een potje piano gaan spelen:

  • Start QjackCtl en start JACK.
  • Open een terminal en geef het volgende commando in: java -jar /pad/naar/Fantasia-0.9.jar
  • Mocht je een MIDI keyboard hebben wijs dan een MIDI kanaal toe aan LinuxSampler door in Fantasia aan de rechterkant onder ‘MIDI devices’ op het aan/uit knopje te drukken. De default instellingen zijn prima dus druk op ‘Create’.
  • Druk op de aan/uit knop onder ‘Audio Devices’, selecteer bij ‘Driver’ JACK en pas de samplerate aan naar de samplerate die je in QjackCtl hebt ingesteld en druk daarna op ‘Create’. In je ‘Connections’ venster van QjackCtl moet nu onder ‘Readable Clients’ ‘LinuxSampler’ verschijnen. Klik die aan zodat deze actief wordt, klik onder ‘Writable Clients’ op ‘system’ om deze actief te maken en klik vervolgens op het ‘Connect’ knopje linksonder.
  • In Fantasia moet je nu nog het gig bestand laden. Dit doe je door in het middelste stuk van het venster op het aan/uit knopje te drukken wat onder het luidspreker icoontje staat. Druk vervolgens op ‘Load Instrument…’ en blader bij ‘Select instrument from file’ naar je gig bestand. Bij ‘Instrument index’ kun je nu nog een bepaalde laag uit het gig bestand laden maar de laag die aangegeven wordt (0 – Maestro Concert Grand) voldoet om een lekker potje op de toetsen te rammen.
  • Klik op OK, het bestand wordt geladen en als je nu op wat rondklikt op het virtuele keyboard onderin het Fantasia venster zou je pianoklanken uit je speakertjes moeten horen komen.
  • Mocht je niks horen, het moet er zo uitzien als op het 


    Fantasia screenshot
    .

  • Leuk? Op de site van Sonart Audio staat ook nog een mooie samplepack.

Zelf heb ik op mijn bureaublad een snelkoppeling aangemaakt met een passend icoontje erbij die het java -jar /pad/naar/Fantasia-0.9.jar commando uitvoert. En het draait zelfs prima op mijn netbookje, wel grappig zo’n draagbare mini concert piano. Nu nog een mooi USB MIDI keyboard erbij met gewogen toetsen en een sustain pedaal…

My First Little Grand Piano