Pneuman Remix

Vorder maar langzaam met de remix van Pneuman’s Move Along track. Komt vooral door Hydrogen. Goeie sampler, past perfect in m’n workflow maar de tekortkomingen van Hydrogen beginnen me enorm tegen te staan. De irritantste tekortkomingen:

  • JACK transport werkt niet goed, vooral niet icm seq24. Dit ligt hoogstwaarschijnlijk aan seq24 maar dan nog is het hoogst irritant dat Hydrogen vaak gewoon zwijgt zodra je JACK transport start.
  • Toevoegen van nieuwe of het wijzigen van instrumenten is een drama. Ik moet bij het toevoegen van een instrument iedere keer een extra instrument toevoegen anders wordt de poortnaam niet geüpdate. Wat betreft het wijzigen, dan wordt de poortnaam pas gewijzigd na het opnieuw opstarten van de audio engine maar kennelijk op zo’n manier dat JACK er niks mee kan en Hydrogen geen geluid produceert via de hernoemde poorten. Alleen een herstart brengt soelaas maar hoe onhandig is dat.
  • Hydrogen crasht vaak. Vooral met het toevoegen of verwijderen van instruments en als JACK transport loopt kun je maar het beste helemaal niet aan Hydrogen zitten.
  • De sample-editor is fantastisch maar produceert wel ontzettend veel xruns, vooral als je intensief met rubberband aan de slag gaat.

Misschien moet ik de 0.9.6 ontwikkelaarsversie maar eens proberen. De versie die ik nu gebruik beperkt me enorm in m’n productiviteit. En ik heb al niet zo gek veel vrije tijd. Hydrogen is niet de enige applicatie die dwars ligt trouwens. Qtractor knalt er ook regelmatig uit wat waarschijnlijk komt door buggy plug-ins. Ook kan ik de nieuwste versie niet gebruiken omdat de verbeterde VST support iets heeft veranderd aan Qtractor waardoor de MDA JX10 VSTi plug-in die ik gebruik totaal anders klinkt.

Ok, dat is er uit. Heb nog wel wat kunnen doen, heb in ieder geval iets van een coupletje:

Pneuman Remix

Cannot deliver port registration request

M’n Pneuman remix sessie wilde niet meer opstarten, alles deed raar, Qtractor segfaulde, Hydrogen klapte er tijdens het opstarten uit. En ik kon de oorzaak maar niet traceren. Dus dan ga je alles maar één voor één troubleshooten. Uiteindelijk spuugde Hydrogen de volgende melding uit:

Cannot deliver port registration request

Oftewel, Hydrogen vraagt Jack poortjes aan maar krijgt van Jack nul op het orkest. Deze melding nog nooit eerder gezien en Google bracht me ook niet verder. Toch maar even in QjackCtl m’n Jack setup gecheckt. Hmmmm, Port Maximum staat op 256, wat nu als ik deze op 512 zet? Kan het me nauwelijks voorstellen dat ik al zoveel poorten in gebruik heb maar baat het niet dan schaadt het niet. Je raadt het al, sessie start weer moeiteloos op en ik kan weer verder.

Omdat ik toch benieuwd was hoeveel poorten ik nou in gebuik heb met deze sessie heb ik ze even geteld met jack_lsp | wc -l De uitkomst? 258. 258 Jack poortjes in gebuik, net 2 meer dan de Port Maximum van 256 die ik voorheen altijd gebruikte. En het worden er gestaag meer. Gelukkig ben ik gek op spaghetti, zowel analoog als digitaal.

Cannot deliver port registration request

Flux

  • Aanbieding geaccepteerd voor een nieuwe baan. Oftewel, word een Linux beheerder. Dat wil ik al sinds ik in de automatisering zit dus lijkt me een goeie stap.
  • Meissie is weer zwanger. Tweede kiddo wordt verwacht rond 19 februari.
  • Eerste kiddo kan inmiddels lopen en breekt de boel af, zichzelf niet ontziend.
  • Ben druk bezig met een nieuwe remix en ben erachter gekomen dat ondanks de bugs Hydrogen echt een vette sampler is. Pitchen, stretchen, werkt als een speer. Voor deze track gebruik ik ook voor het eerst Zita AT1 en heb bij het maken heb ik de Calf Saturator ontdekt. Heb ook een goeie drums samplepack gevonden. Wordt hopelijk een vette track. Prehear onderaan.
  • Na een korte flirt met Jack2 gebruik ik weer good ol’ Jack1. Ook heb ik de upgrades van libraw1394 en libffado2 teruggedraaid. Systeem is weer stabieler nu.

Flux

Bash Session Management

Zo af en toe krijg ik de vraag wat voor session manager ik gebruik om mijn projecten en de daarbijbehorende applicaties en JACK connecties te beheren. Mijn antwoord is dan: Bash. Dus géén Ladish, géén JACK Session en ook géén aj-snapshot maar simpele Bash scripts. Waarom? Omdat ik Bash begrijp en momenteel geen tijd en zin heb om me te verdiepen in nóg een extra tool. Daarnaast is het aantal applicaties dat Ladish en JACK Session ondersteunt echt minimaal.

Maar hoe ziet zo’n Bash script er dan uit? Nou zo:

#!/bin/bash
export SESSION=$HOME/Sessions/moneyorlove.d

hydrogen -s $SESSION/moneyorlove.h2song &
seq24 -j $SESSION/seq24-moneyorlove.midi &
sleep 2
yoshimi -N analoguebass --state=$SESSION/yoshimi-analoguebass.state &
yoshimi -N dubstep --state=$SESSION/yoshimi-dubstep.state &
sleep 2
guitarix -r default -f $SESSION/guitarix_moneyorlove_bass_rc &
sleep 2
amsynth -b $SESSION/moneyorlove.amSynth.presets &
sleep 2
qtractor $SESSION/moneyorlove.qtr &
sleep 3
export SEQ24_BASS_OUT=$(jack_lsp | grep "(capture): Yoshimi Analogue")
export SEQ24_DUBSTEP_OUT=$(jack_lsp | grep "(capture): Yoshimi Dubstep")
export DRONE1=$(jack_lsp | grep "Feedback Drone/out_1")
export DRONE2=$(jack_lsp | grep "Feedback Drone/out_2")
aconnect Hydrogen:1 MPK
jack_connect "$SEQ24_BASS_OUT" yoshimi-analoguebass:midi in
jack_connect "$SEQ24_DUBSTEP_OUT" yoshimi-dubstep:midi in
jack_disconnect "$DRONE1" "system:playback_1"
jack_disconnect "$DRONE2" "system:playback_2"

Ok, wat gebeurt hier?

export SESSION=$HOME/Sessions/moneyorlove.d

Ik maak als eerste een SESSION variable aan met als waarde de directory waar alle benodigde bestanden voor mijn sessie in staan. In mijn home staat een Sessions directory en daar staan alle sessie directories en bijbehorende Bash scripts in. Vervolgens start ik Hydrogen en seq24 op met de parameters om de bijbehorende project bestanden in te laden:

hydrogen -s $SESSION/moneyorlove.h2song &
seq24 -j $SESSION/seq24-moneyorlove.midi &

Daarna laat ik Bash even twee tellen uitrusten

sleep 2

om vervolgens twee instances van Yoshimi (respectievelijke JACK poortnamen analoguebass en dubstep, kun je opgeven met de -N optie) op te starten met de bijbehorende .state bestanden. Je kunt met Yoshimi ook .xmz (parameter) bestanden opslaan, komt bijna op hetzelfde neer.

yoshimi -N analoguebass --state=$SESSION/yoshimi-analoguebass.state &
yoshimi -N dubstep --state=$SESSION/yoshimi-dubstep.state &

Weer even pas op de plaats:

sleep 2

Guitarix opstarten met de standaard instellingen (kun je aanpassen in Guitarix) en een Guitarix state file inladen:

guitarix -r default -f $SESSION/guitarix_moneyorlove_bass_rc &

Bash weer uit laten puffen:

sleep 2

amSynth starten met de juiste .presets file:

amsynth -b $SESSION/moneyorlove.amSynth.presets &

Even wachten…

sleep 2

Qtractor laden en een .qtr sessie file laten openen:

qtractor $SESSION/moneyorlove.qtr &

Hier speel ik een beetje vals want in feite gebruik ik Qtractor voor een deel als session manager. Qtractor slaat in de .qtr sessie file namelijk alle JACK connecties op die naar en van Qtractor gemaakt worden. Nadat Qtractor is gestart laat ik Bash weer even bijkomen:

sleep 3

Aangezien Qtractor dus alleen JACK connecties opslaat van en naar Qtractor moet ik de resterende JACK connecties handmatig aanmaken. Dit doe ik met jack_connect. De benodigde ALSA MIDI connecties die Qtractor niet kan opslaan zet ik op mbv aconnect. Maar eerst moet ik wat poortnamen toewijzen aan variabelen om er zeker van te zijn dat de juiste poorten met elkaar verbonden worden. Hier gebruik ik jack_lsp voor, de CLI JACK tool om een lijstje te genereren van beschikbare JACK poorten, en hier laat ik grep op los om de juiste poorten eruit te pikken.

export SEQ24_BASS_OUT=$(jack_lsp | grep "(capture): Yoshimi Analogue")
export SEQ24_DUBSTEP_OUT=$(jack_lsp | grep "(capture): Yoshimi Dubstep")
export DRONE1=$(jack_lsp | grep "Feedback Drone/out_1")
export DRONE2=$(jack_lsp | grep "Feedback Drone/out_2")

Lest best de JACK connecties die Qtractor niet kan maken:

aconnect Hydrogen:1 MPK
jack_connect "$SEQ24_BASS_OUT" yoshimi-analoguebass:midi in
jack_connect "$SEQ24_DUBSTEP_OUT" yoshimi-dubstep:midi in

En op de valreep nog even wat onnodige poorten disconnecten:

jack_disconnect "$DRONE1" "system:playback_1"
jack_disconnect "$DRONE2" "system:playback_2"

En nu is mijn volledige sessie opgestart en klaar om mee te werken. Twee dingen vallen waarschijnlijk al meteen op: 1. de ampersands (&) en 2. de vele sleep commando’s. Waarom? 1. een ampersand toevoegen aan een commando zorgt ervoor dat het commando op de achtergrond gaat draaien en het script door kan gaan met de volgende regel, oftewel, het script stopt niet om het commando af te wachten, 2. sommige applicaties hebben even tijd nodig om op te starten en het is cruciaal dat als de sessie file van Qtractor ingeladen wordt alle applicaties zijn opgestart zodat Qtractor de JACK connecties kan aanmaken.

Ja, en wat nu als je je sessie af wilt sluiten? Moet je dan alle applicaties handmatig afsluiten? Ja. Maar zo af en toe gebruik ik ook een ‘end-session’ script die alle openstaande audio applicaties killt. Dit kun je ook netjes scripten in je sessie script zelf, zo ver ben echter nog niet en vooralsnog red ik me prima zo. Als ik klaar ben zet ik toch meestal mijn PC uit en het komt zelden voor dat ik tijdens het maken van muziek meerdere sessies na elkaar moet openen.

Bash Session Management

Tranches en Tapeutape

Vorige week eindelijk eens de kans gehad om naar deze twee appjes te kijken. Tranches is een heel simpele maar zeer bruikbare beatslicer, zoals bijv. Smasher. Alleen heeft Smasher geen JACK support en is derhalve niet real-time te gebruiken. Tranches kent die beperkingen niet en maakt het mogelijk om real-time samples op te knippen en af te spelen, ook achterstevoren. De GUI is met FLTK gemaakt dus het appje is superlicht en het werkt dan ook als een speer.

Tapeutape is een ontiegelijke simpele sampler. Heerlijk stukje software. Voor mijn toekomstige projectjes prop ik daar mijn samples in en probeer ik Hydrogen zoveel mogelijk te mijden. Heb gewoon teveel problemen met Hydrogen, sync problemen, crashes, het vreet CPU op mijn netbook en samples toevoegen aan een bestaand project is een heidens karwei omdat Hydrogen de JACK poortnamen nog steeds niet meteen update. Dus dan moet ik eerst een nieuwe instrument aanmaken, dan worden de poortnamen wél geüpdate. Maar vaak crasht Hydrogen dan en kan ik weer opnieuw beginnen. Ook Tapeutape is in FLTK gemaakt dus ook superlicht en niet zo’n zware moloch als het op Qt gebaseerde Hydrogen. Tapeutape nog niet uitgebreid getest dus nog geen idee hoe Tapeutape hiermee omgaat en hoe de software zich houdt.

Tango Studio heeft up to date pakketjes van beide appjes voor Ubuntu 10.04.

Tranches en Tapeutape

Luppp live looper

Afgelopen LAC heb ik de kans gehad om met Harry van Haaren bij te praten. Vorig jaar in Utrecht was hij er ook bij maar heb hem toen nauwelijks gesproken. Hij behoort tot de nieuwe, jonge generatie ontwikkelaars die hopelijk de continuïteit van het Linux audio ecosysteem kunnen waarborgen. Momenteel werkt hij aan een live looper, Luppp, en dat is een goeie zaak want daar zijn er wel een paar van maar die worden of niet meer onderhouden of werken gewoon niet lekker.

Wat hij me liet zien zag er veelbelovend uit en aangezien een goeie live looper ontbreekt in mijn set-up (seq24 is toch meer een MIDI sequencer en Hydrogen gebruik ik alleen als sampler) hoop ik dat hij binnenkort met een bruikbare release komt.

Luppp live looper

Nieuwe Hydrogen site in de lucht

De recentste release van Hydrogen heeft ook de ontwikkeling van de nieuwe Hydrogen site in een stroomversnelling gebracht met als resultaat dat de nieuwe site vorige week online is gegaan. Een hele verbetering, het oogt weer fris en de hele site is nu een coherenter geheel. Ook zijn er wat nuttige secties toegevoegd waaraan ik zeker nog een bijdrage wil leveren, en dan in het bijzonder het Tutorial of het Live usage gedeelte.

Nog wel wat puntjes van kritiek, sommige interne links moeten nog geüpdate worden zodat ze niet meer naar de oude, tijdelijke URL verwijzen en dat de mensen achter Hydrogen wel een biertje lusten is me inmiddels ook wel duidelijk. En er zitten wat foutjes in de gebruikte CSS templates, helaas heeft degene die de CSS bestandjes heeft aangemaakt besloten om alles achter elkaar te zetten wat het er niet overzichtelijker op maakt.

Nieuwe Hydrogen site in de lucht

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

Remix is af!

Gisteren tot een uur of één ‘s nachts mee bezig geweest, de kleine was uit logeren bij opa en oma dus kon ik de boel wat beter afmixen op mijn studio monitoren.

The Infinite Repeat – Money or Love (DJ AutoStatic Remix)

Creative Commons Licentie
Money or Love (DJ AutoStatic Remix) van The Infinite Repeat is in licentie gegeven volgens een Creative Commons Naamsvermelding-NietCommercieel-GelijkDelen 3.0 Unported licentie.
Gebaseerd op een werk op theinfiniterepeat.com.

Wat ik zoal heb gebruikt:

  • Yoshimi Analogue Bass met de C* Pre-amp en Crossover Distortion LADSPA plug-ins
  • Yoshimi Dubstep (custom patch), cut-off live gedaan met behulp van een Akai MPK Mini
  • amSynth Synth Strings 1
  • SO-666 Feedback Drone LV2 plug-in
  • WhySynth DragonPurr DSSI plug-in
  • MDA Vocoder LV2 plug-in + Yoshimi Hard Synth
  • Alle gitaren (Fender Tele and OLP Music Man) door Guitarix en de Redwirez IR Library gehaald
  • Aardig wat Calf Compressors en zowat iedere track (ongeveer 20) heeft een verschillende reverb plug-in (TAP, FreeVerb). Daarnaast een aantal Calf Vintage Delays voor de gitaren en de SO-666. En 2 of 3 Calf Phasers. O ja, en de SC3 plug-in om de SO-666 te ‘ducken’ met behulp van sidechain compressie.
  • Meeste drum samples zijn afkomstig uit de sample collectie die bij LMMS zit. Die had ik ook voor het originele nummer gebruikt en heb besloten ze te recyclen. De crashes komen uit de GSCW2 Hydrogen kit.
  • Lest best, er zit een Glockenspiel in de brug ik. Ik wilde eerst de Glockenspiel uit de SSO library gebruiken maar de kwaliteit van die specifieke samples is niet echt fantastisch dus ben naar de oefenruimte gereden en heb de Glockenspiel van onze drummer opgehaald. Mic erop, een AT2020, en gelukkig stond het er snel en goed op.

Voor deze remix heb ik Qtractor als mixer ingezet, Hydrogen als sampler en seq24 als MIDI sequencer voor de softsynths en de samples. In seq24 heb ik ook de automatisering gedaan voor de plug-ins in Qtractor naast wat volume fades en het muten/unmuten van tracks. Mixdown heb ik gedaan met behulp van jack-capture, weer importeren in Qtractor en vervolgens de linuxDSP MBC2 compressor plug-in erover heen geknald met een limiter erachter.

Reacties zijn vooralsnog goed. Vooral zo’n reactie van de ontwikkelaar van Qtractor is natuurlijk geweldig. Volgens mij heb ik de goeie workflow wel te pakken zo. Ik zal proberen er nog een screencast van te maken.

Remix is af!