Building Mixxx 2.2 for Raspberry Pi Zero

A few weeks ago I successfully managed to build Mixxx 2.x on a Raspberry Pi 3. Once I got that done I immediately identified “more than enough” (that is: one) situations where it would be great to have yet a smaller piece of hardware to run Mixxx on (placing a link. Just in case you might not already know what we’re talking about). That’s why I think running Mixxx on a Raspberry PI Zero ist the next logical consequence.

I once (and only once) managed to successfully build the latest branch on a Pi Zero (2.3.0 alpha pre, as of time of this writing) but was not able to reproduce it. Good thing: After some tedious trial-and-error I finally found a way to reliably build Mixxx 2.2 for (and on!) a Raspberry Pi Zero.

Continue reading

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.

Continue reading

Improving the stability of the TCPSClient

This script is quite helpful when you want to run the TCPSClient (beta 3) somewhat completely unattended.

If the program hangs up, fails or anything doesn’t work as expected the CPU load increased drastically. This is taken as an indicator and the TCPSClient will be terminated and restarted.

!/bin/bash
PROCESSNAME=TCPSClient.bin
CPU_USAGE_THRESHOLD=1010
declare -i MULTIPLIER=10

killall -v $PROCESSNAME
sleep 3
while true; do
	if ps ax | grep -v grep | grep TCPSClient > /dev/null 
	then
		CPU_TEMP_USAGE=$(top -bn1 |grep TCPSClient | awk -F' ' '{print $9}')
		CPU_USAGE=$(echo "scale=2;$CPU_TEMP_USAGE*$MULTIPLIER"|bc)
		CPU_INT=${CPU_USAGE%.*}
		if [ $CPU_INT -gt $CPU_USAGE_THRESHOLD ] ; then
			echo KILLING
			killall -v $PROCESSNAME
			sleep 3
		fi
	else
		/home/pi/TCPSClient/TCPSClient.bin &
		sleep 3
	fi
done

 

This is one of the very few Linux scripts I did. Be gentle. Feel free to contact me if there are questions, suggestions, etc.

Thekenmeldesystem

Im Auftrag eines Kunden habe ich ein Thekenmeldesystem entwickelt und gebaut.

Ziel ist es, in einer Diskothek von mehreren (bis zu 10) Theken aus an zentraler Stelle Meldungen absetzen zu können (Ruf nach Security, Geschäftsführung, etc). Meldungen sollen durch einen Text und farblich entsprechendes Blinken auf einem Bildschirm dargestellt werden. Zum Beispiel: Rotes Blinken + Name der Theke, wenn es darum geht, die Security zu informieren. Für den Fall, dass von keiner Theke eine Meldung kommt, sollen Animationen abgespielt werden (Veranstaltungshinweise etc). Die Texte, Farben und Videos sollen vom Kunden angepasst werden können. Das Ganze soll Luft nach oben haben: Erweiterung um den Anschluss an ein Bussystem, mehrere Monitore, Ethernet, etc .. .

Continue reading

TCPSyphon

<TL; DR> I’ve built a TCPSyphon Server myself in Java and tried to circumvent some of the flaws of the original Version </TL; DR>

 

Maybe you heard about Syphon. “Syphon is an open source Mac OS X technology that allows applications to share frames – full frame rate video or stills – with one another in realtime” (Link). It was originally intended to only work locally and not be shared between different Hosts on a Network. Fortunately someone took care of this and built a set of applications to share “Syphon data” between multiple Computers. Actually it doesn’t: It renders local Syphon data into single images (jpeg, for example), applies a compression and sends them over the network. Anyways, this is one of the applications you don’t get around as a VJ. You just HAVE to have it: TCPSyphon.

The person behind the TCPSyphon-apps also built a client for the Raspberry Pi. The TCPSClient. Now things become really interesting.

Continue reading