Building Mixxx 2.1.1 on a Raspberry Pi

For an upcoming holiday with a few of my friends I needed a Midi-controllable software which allows me to play different audio-samples – some might call this a ‘soundboard’. On top of my wishlist were things like

-open source

-runs on Linux (Raspberry)

-fully customizable

Fortunately, before starting a new project myself I came across Mixxx. It’s an open source DJ-Software with a completely customizable user-interface that also includes a multi-cell sample-player. Mixxx version 1.10 is readily available for various platforms (“sudo apt-gt install mixxx” on a Raspberry PI) but has been superseded by version 2.1.1 (as time of writing). There are no precompiled binaries for Mixxx 2.1 on a Raspberry PI yet so the first step was to build a version myself. The necessary steps are documented in Mixxx’s own Wiki but it’s partially outdated and not everything is located in one place.

Building Mixxx 2.1 on a Raspberry PI is not that complicated but if you are like me and not knee-deep into Mixxx’s development it might be a little hard to get it all together. This is mostly copy-pasted from here and a little bit from here:

 

First set your Raspberry’s memory split to 256MB. Then issue the following commands:

 

sudo apt-get update

sudo apt-get upgrade

(reboot)

sudo apt-get remove libtag1-vanilla

sudo apt-get install g++ git scons libqt4-dev libqt4-sql-sqlite 
libportmidi-dev libopusfile-dev libshout3-dev libtag1-dev libprotobuf-dev protobuf-compiler 
libusb-1.0-0-dev libfftw3-dev libmad0-dev
portaudio19-dev libchromaprint-dev librubberband-dev libsqlite3-dev
libid3tag0-dev libflac-dev libsndfile1-dev libupower-glib-dev liblilv-dev

sudo apt-get install libjack-dev libjack0 portaudio19-dev # because of Bug #1464120

sudo apt-get install libfaad-dev libmp4v2-dev # required for M4A support

sudo apt-get install libmp3lame-dev 
sudo apt-get remove g++ g++-4.7 
sudo apt-get autoremove 
sudo apt-get install g++-5 
sudo ln /usr/bin/g++-5 /usr/bin/g++ 

For Version 2.1:

sudo apt-get install libqt4-dev libqt4-sql-sqlite libqt4-opengl-dev libqt4-svg libqt4-xmlpatterns libqt4-sql
git clone -b 2.1 https://github.com/mixxxdj/mixxx.git

Or when pulling from the master branch:

sudo apt-get install qt5-default libqt5opengl5-dev qtscript5-dev libqt5svg5-dev
git clone https://github.com/mixxxdj/mixxx.git
cd mixxx
sudo scons -c && sudo scons -j 3 opengles=1 staticlibs=1 optimize=native # -j 3 is okay, if you keep your RPI well ventilated

Now wait for ~1.5 hours . If everything went fine you are granted with a shiny new version of a Mixxx executable in your ~/mixxx – folder. To install it systemwide run

sudo scons install

Custom Volumio2 UI (pseudo party mode)

Use this to add songs to the Volumio queue without playing them instantly.

As you might have derived from the last posts I have become a fan of Volumio recently. However, one thing that I thought was implemented incorrectly (from my very very personal point of view) is how tracks are handled when they are added to the playing queue.

The image shows the results of the search for a track. Volumio is running on a Raspberry PI somewhere in my home network. The user interface is accessed with the browser of my current mobile phone. Clicking a track in the list of results will add that track to the active queue (which is good) AND will instantly play it regardless of what’s been playing at that moment (which is bad – insanely bad).

Continue reading

Volumio box

Derzeit baue ich einen ganzen Stapel an Gerätschaften, um beim nächsten Festival-Besuch entertainment-technisch auf einem angemessenen Level zu sein. Dazu gehört selbstverständlich irgendetwas mit Musik. Bisher hatten wir immer ein Laptop mit einer uralt-Version von Virtual-DJ dabei. Das war halbwegs okay, aber bei der diesjährigen Vorplanung für’s Deichbrand Festival hatten wir Lust darauf, irgendetwas mit mehr CYBER zu machen: Steuerung per Handy und so’n Schiet.

Unsere Wahl fiel relativ schnell auf Volumio, das wir auf einem Raspberry betreiben werden.

Continue reading

Quick ‘n Dirty USB Verlängerung

Für “so Sachen” benötige ich eine USB-Verlängerung. Irgendwas bei 7-10 Metern. Das kann man kaufen, da hatte ich aber keine Lust drauf. Aus einem anderen Projekt hatte ich noch RJ45-Buchsen und passende Adapterplatinen herumliegen und dachte mir, ich probier’s einfach mal. Der Plan ist also, eine USB-Leitung per Netzwerkkabel und entsprechendem Adapter passiv zu verlängern.

Continue reading

Midi Fighter Clone

Es ist mal wieder soweit – Doktor Andy ihm selbst sein Vater dem sein Sohn baut einen weiteren Midi-Controller. Hintergrund ist, dass wir unsere diesjährige Festivaltour etwas mehr aufpeppen wollen, als es bislang der Fall gewesen ist. Und -frag’ mich nicht warum- im Kopf war das Flag gesetzt für ‘einen Midi-Controller bauen’. So ganz ist noch nicht klar, was damit eigentlich gemacht werden soll, der Gedanke kam mir aber erst ins Bewußtsein, als ich schon 4 Stunden dabei war. Die Zeit bis dahin hatte ich quasi aus dem Muskelgedächtnis abgespult.

Continue reading

Midi Timecode Generator with Tempo-tap and Nudge

This post is about building an arduino-based Midi Timecode generator. It incorporates tempo-tap, nudge and a granular tempo-control via an endless encoder. It aims to providing nudge-funtionality (and improved tempo-control) for Native Instruments Maschine MK2 but can easily be used with other devices and programs as well.

Continue reading

Scope-isierung

Über Twitter und WhatsApp hatte ich das neulich schon verteilt: Hab’ mir ein Scope gegönnt. (Bammdiggi!)

Tatsächlich habe ich während meiner ersten Ausbildung ( natürlich? ) schon vereinzelt mit einem Scope gearbeitet. Das war seinerzeit allerdings eine analoge Gurke und -sagen wir es ganz ganz vorsichtig- manches ist mir neu. Sei es drum, muss man halt lernen.

 

Continue reading