LAC2014: submission accepted!

My submission for the Linux Sound Night at LAC2014 with The Infinite Repeat has been accepted. The Call for Papers page mentions the term “danceable” so I’m going to focus on that. Making danceable music is quite a challenge for me but it should definitely be doable to produce a solid set, especially now that I’m the proud owner of a Korg Volca Keys. I’m definitely going to integrate it in my current setup as the Volca reacts great on MIDI sent from my workstation. It has some fat sounds that just scream dance floor.


Korga Volca Keys

I’m really looking forward to this year’s LAC. It seems falkTX and avlinux are going too, it’d be great to meet these guys in real life!

LAC2014: submission accepted!

Raspberry Jam Review

Last Thursday the first Dutch Raspberry Jam took place at the Ordina HQ in Nieuwegein. I offered to do a presentation slash demonstration about realtime audio and the the Raspberry Pi so I promised myself to be there at least an hour before the scheduled starting time of my demo. That way I could also join Gert van Loo‘s presentation. When I arrived at 19:15 there was no Gert van Loo though so that should’ve triggered some alarms. Also I didn’t look out for members of the organization as soon as I came in. Instead I chose to dot the i’s and cross the t’s with regards to my demo.

Wrong decision.

About half an hour later the event was closed.

WTF?

I approached the person who closed the event and introduced myself. He replied that they thought I wasn’t coming anymore. Apparently they misinterpreted my e-mail I sent earlier that day that I didn’t manage to produce something workable for the laser show guy. They took it for a cancellation. But immediately the event got kind of reopened and I set up my stuff. We had some audio issues but in the end everything went quite well actually. I showed off what is possible with a Raspberry Pi and realtime audio with the use of some of my favorite software. Guitarix featured of course. I grabbed my guitar, fired up guitarix on the RPi and played some stuff. Hooked up my MIDI foot controller and showed how to select different presets. I also demonstrated the use of the RPi as a piano with the help of LinuxSampler and the awesome Salamander Grand Piano samplepack and did some drumming by using drumkv1. Before the realtime audio demo I presented an overview of the Linux audio ecosystem and talked about the alternatives of how to get sound in and out of your Raspberry Pi. These alternatives are not bound to the onboard sound and USB, since recently it is also possible to hook up an external audio codec to the I2S bus of the Raspberry Pi. I got one in myself this week, a MikroElektronika Audio Codec PROTO board based on the WM8731 codec, so more on that soon. It’d be awesome if I can get that codec to work reliably at lower latencies.

So it all turned out well, I had a great time doing my presentation and judging by the interest shown by some attendants who came up to me after the presentation I hope I got some more people enthusiastic about doing realtime audio with the Raspberry Pi and Linux. So thanks Ordina for offering this opportunity and thanks everyone who stuck around!

Raspberry Jam Review

Ardour with video and LV2 MIDI plugins chaining support

Got so absorbed hacking my UG802 that I completely missed this: https://community.ardour.org/node/7219

So not only can you add video to your Ardour project but now it’s also possible to chain multiple LV2 plugins that accept MIDI. The video support is the great work of Robin Gareus and it was actually a presentation on this functionality that got me acquainted with the Linux Audio meetings at the HKU almost 3 years ago. So yes, he’s been working on it quite a while so I assume it works well.

I have actually never worked with Ardour, I’ve always used Qtractor. But maybe it’s getting time to check out Ardour too, especially now that the MIDI part is stabilizing.

Ardour with video and LV2 MIDI plugins chaining support

Raspberry Pi als virtuele gitaarversterker: MIDI en effecten

Live demo van m’n Raspberry Pi, guitarix en een MIDI floorboard.

Raspberry Pi als virtuele gitaarversterker: MIDI en effecten

Eerste DX bestelling binnen

M’n MIDI to USB kabel en oprolbaar USB drumpad zijn binnen.

MIDI to USB kabel:

jeremy@piertje:~$ cat /proc/asound/cards
...
 1 [USB20MIDI      ]: USB-Audio - USB2.0-MIDI
                      USB2.0-MIDI at usb-0000:00:1d.0-1, full speed

USB drumpad werd in eerste instantie niet goed herkend:

jeremy@piertje:~$ lsusb
...
Bus 005 Device 014: ID 1941:8021 Dream Link WH1080 Weather Station / USB Missile Launcher

USB Missile Launcher? Even googlen, ah: https://bugs.launchpad.net/ubuntu/+source/usbutils/+bug/377967
Maar dan nog, ik weet toch bijna zeker dat dit ding gewoon meteen hoort te werken. Dus even checken met het drumpadje wat ik in bruikleen heb:

jeremy@piertje:~$ lsusb
...
Bus 005 Device 015: ID 0218:0001 Hangzhou Worlde

Dus er klopt iets niet helemaal, moet recht te trekken zijn. Na wat verder gegoogled te hebben kwam ik hier op uit: https://code.google.com/p/drumroll

Code gecompiled en het draait. Maar vrees dat ik de drumpad niet met mijn RPi kan gebruiken want de drumroll binary verstookt op mijn notebook al 4% aan CPU. Maar zien wat ik met de drumpad ga doen, sowieso kijken of ik er ergens een kan vinden die wel een USB MIDI device is.

Eerste DX bestelling binnen

DX

Oftewel DealExtreme. Eigenlijk een beetje herontdekt door de buurtgenoot die hier laatst op bezoek was. Hij had een oprolbaar USB drumpadje mee en dat vond ik zo’n cool ding, moest ik ook hebben. Uiteindelijk kwam ik dus uit op DealExtreme waar ik wel eerder spulletjes had besteld. Het gaat om dit drumpadje:

Niet aanslaggevoelig ofzo maar het padje stuurt wel keurig MIDI CC messages uit over MIDI kanaal 10. Ik heb zo’n idee dat dit één van de goedkoopste USB MIDI controllers is die je momenteel kunt krijgen. Ik denk dat ik ‘m ga demonteren om er een USB MIDI footswitch van te maken. Heb er gelijk een USB MIDI kabel bij besteld:

$5.99, dat kun je niet laten liggen toch? Ik ga deze gebruiken om mijn Boss FC-50 MIDI footswitch aan mijn Raspberry Pi te hangen. Ik kan namelijk de MIDI poorten op mijn Edirol UA-25 niet gebruiken aangezien deze het alleen doen als de UA-25 in Advanced mode staat en dat staat momenteel uit omdat anders JACK niet werkt op mijn RPi icm. de UA-25. Hopelijk werkt het wel met dit cheapo kabeltje. Binnenkort ga ik ook deze bestellen:

Ziet er bekend uit hè? Het is gewoon hetzelfde apparaat als de Behringer UCG102!

De UCG102 is al goedkoop (rond de €25,-) maar op DealExtreme kost dit apparaatje slechts $14.80! Samen met de USB MIDI kabel ga ik deze gebruiken met mijn RPi. Kijken of ik een cheapo customizable gitaarversterkeremulatieapparaatje kan bouwen voor minder dan €50,-.

DX

De wederopstanding van PHASEX

PHASEX leeft weer! De oorspronkelijke ontwikkelaar heeft de draad weer opgepakt en een nieuwe release uitgebracht. Heb er nog niet uitgebreid naar kunnen kijken maar hij heeft de boel flink onder handen genomen. Uiteraard zijn de nodige bugs gefikst maar daarnaast is de functionaliteit van PHASEX flink uitgebreid: je kan nu meerdere parts tegelijkertijd gebruiken (dus geen losse instances meer), support voor JACK MIDI en JACK Transport en PHASEX kan nu zonder GUI gebruikt worden. Ook heeft de GUI een update gehad en zijn er de nodige filters toegevoegd en bestaande filters verbeterd.

Al met al goed nieuws, PHASEX is een erg goed klinkende synthesizer waar je echt heel veel uit kan halen. Als de ontwikkelaar dit alles nou ook nog in een LV2 plug-in zou kunnen stoppen…


PHASEX-0.14.97

PHASEX 0.14.97

De wederopstanding van PHASEX

Nog meer mididings

Mididings script voor 29 oktober is klaar:

#!/usr/bin/python

from mididings import *
from mididings.extra import *

config(
    backend='jack',
    client_name='sodap-live',
    data_offset=0,
)

run(
    Filter(PROGRAM) >> [
        [
            ProgramFilter(0) >> NoteOn(64,50),
            ProgramFilter(7) >> NoteOn(69,86),
            ProgramFilter(0) >> NoteOn(72,60),
            ProgramFilter(1) >> NoteOn(74,62),
            ProgramFilter(2) >> NoteOn(76,64),
            ProgramFilter(3) >> NoteOn(71,30),
            ProgramFilter(7) >> NoteOn(77,88),
            ProgramFilter(8) >> NoteOn(79,96),
            ProgramFilter(9) >> NoteOn(81,84),
        ] >>
        LatchNotes() >> [
            KeyFilter(64) % NoteOff(69,0),
            KeyFilter(69) % NoteOff(64,0),
        ],
        ProgramFilter(4) >> Panic(),
        ProgramFilter(10) >>
        Channel(2) >>
        NoteOn(36,64),
    ]
)

Met dit script kan ik nu de strijkers spelen in Soda P – Icon of your Time en heb een Vibraslap sample van Freesound.org in een soundfontje gezet met Swami zodat ik deze met de FluidSynth DSSI plug-in ook vanuit Qtractor kan triggeren met behulp van de Boss FC-50. De strijkers gaan via het eerste paralelle ‘blok’ waarin Program Changes worden omgezet in Note Ons, daarna gaan ze door de LatchNotes Unit en daarna worden in een genest parallel blok nog twee Note Offs gedefinieerd. Stuurt de FC-50 Program Change 4 uit dan worden alle noten uitgezet (‘Panic’), bij Program Change 10 stuurt mididings een MIDI noot 36 op MIDI kanaal 2 naar Qtractor voor de Vibraslap. Het config deel aan het begin van het script vertelt mididings dat er JACK MIDI poorten aangemaakt moeten worden met als naam ‘sodap-live’. data_offset=0 is nodig omdat de FC-50 bij 0 begint met tellen en niet bij 1.

Nog meer mididings

Boss FC-50 en mididings

De Boss FC-50 doet alleen aan MIDI Program Changes en wat Control Changes. Maar ik wil er noten mee kunnen spelen. Dat zou op zich kunnen met QMidiRoute maar het mooiste zou zijn als ik ook Note Off events zou kunnen genereren, of nog beter, als een volgende noot de vorige af zou kunnen kappen. mididings heeft deze functionaliteit en heb een scriptje gemaakt dat precies doet wat ik wil:

#!/usr/bin/python

from mididings import *
from mididings.extra import *

run(
    Filter(PROGRAM) >>
    NoteOn(EVENT_VALUE,100) >>
    Transpose(36) >>
    LatchNotes(),
)

Wat dit mididings scriptje doet is de Program Changes eruit filteren, deze omzetten naar Note On events, de gegenereerde noten 3 octaven omhoog gooien en met de LatchNotes Unit ‘latch’ je de noten (je laat ze aanhouden) en zet je elke vorige noot uit bij een nieuwe noot. Dit scriptje maakt van de FC-50 een mooi footkeyboardje.

mididings kun je vinden in de lucid-unstable repository van Tango Studio.

Boss FC-50 en mididings