mixxx and raspberry pi

hi folks,

only found mixxx about 5 mins ago, so as yet, untested, but from what i see, wow, great work.
i am still exploring the forums, as I have a small project in mind, and using mixxx may help me with finding my solution.
I will throw my idea out there for discussion, and it will maybe help the mixxx folk with a heads up.

I was recently shown details of a new mini computer that is hitting the shelves very soon, called Raspberry Pi, and I think this could be a new big thing in computing.

It is a mini computer, not much bigger than a pack of cards. runs on 5 volts, hes a 700 MHz ARM1176JZF-S core CPU and either 128 or 258 MiB memory. with a price tag of either $25 or $35 (depending on which memory you go for) it is going to be a computer that will appear in every home. storage space is going to be via an SD card slot, so whatever SD card you can afford is going to be the size of your drive on it.
there will also be USB and HDMI ports, and a few other features.
running Debian GNU/Linux, Fedora, Arch Linux it is going to be geared towards educational use, and open source development, and it should be on the shelves very soon
( details from raspberrypi.org/ )

so, my question… would mixxx be able to run on this simple little computer?

I am in the process of setting up a small online radio station, and aim on getting my hands on a raspberry pi at the first chance I get. i would love to use something like mixxx on it, enabling me to set up a station on something that is small and not draining lots of power, that can just run 24/7 sat in the corner of the room, left to its own devices. I am assuming that mixxx has an auto play feature, allowing it to just run through its playlist, mixing from one track to the next, all on its own, which means it would then be able to be a station that does not need to be manned 24/7.

if mixxx can run on something like this, then you will find bedroom dj’s popping up all over the place. I do not have the know how to adapt mixxx to this piece of kit, if it does not already run on it, so would be looking for something that can be used pretty much as supplied.

with the potential of raspberry pi, i think you guys could do well in developing a release especially for this cheap mini computer, and just a thought, it would be fantastic if it had the facility to stream already built into it (as i said, not explored it fully yet, so not sure if this facility is already in place).
at the price of this computer, i would buy 3 or 4, so i could run multiple stations at the same time, for different music tastes. at $25 a pop, everyone could be a radio star.

look forward to getting some feedback, and finding out if mixxx would posibbly work on the pi

cheers in advance

DJ yorkie

I’ve been thinking about using the Pi too and want to get one ASAP. Can`t say if Mixxx will run, but its the waveform display Linux users have often problems with - even on more powerful devices.

well, my little project is now in full swing, getting all the basics into place at the moment, web space, server for handling the streaming, i even have the debian pack from raspberry pi sitting on my pc, ready for recieveing the unit.
only thing i really need to do, and the part that is hardest for me, is finding the dj software that will run on debian, and a low resource pc. this is proving a little tricky. i do have mixxx in mind, but i am looking around for other software to use in case this does not work for me. I am not one for scripting/coding, so if this does not work out of the box, or needs more than basic tweeking, it will probably be beyond my capabilities lol.
just keeping my fingers crossed that mixxx will do the job, as it looks a nice piece of kit.
glad to see others have been looking into the uses of the raspberry pi

1 Like

just a quick follow up question… does mixxx have the ability to auto play?
this way, i can let the system just run itself at times when i am not running live shows.
It is important to the project that the raspberry pi can handle the running of the station in auto mode.

also, you mention the waveform display causes issues to linux users… is this just a matter of issues with the display of the tracks, or does it actually affect the tracks when they are trying to play? if it is just a matter of not being able to see the waveform of the track while it plays, then i can live with this, as the station will not be doing dance mixes or such like, so not so important.

last thing, what is the reccomended minimum memory for running mixx? the pi is not very well kitted on this side of things, so just curious if it can actually handle it.

cheers in advance

There is a basic automixing feature “AutoDJ” which allows too continuos playback. It will improve in the next version but Mixxx is basically design for attended live playback, you won`t have fully automated/scheduled playback possibilities as this is out of scope for the project.

I may recommend to have a look at AIRTIME software from the sourcefabric guys. Airtime is " free open source radio automation software that lets you take total control of your radio station via the web with intelligent archive management, powerful search, an easy playlist builder, a simple scheduling calendar and rock-solid automated playout". It might be better suited for your project.

You can disable the waveforms without loosing the ability to play tracks. You could even mod a skin which fits exactly your needs and displays only elementary informations. There is no headless mode though.

For maximum experience suggested requirements are a 2GHz or faster CPU & at least 1GB of RAM but people working with Mixxx on 1st gen netbooks with much lower specs.

My Pi has shipped so I’ll give it a try when it arrives and see if it can handle mixxx. Tho I suspect it’ll be little underpowered.

If it does work tho it’s make a great little portable rig, maybe even small enough to build into a controller enclosure.

i think you guys could possable maybe have some kinda of way looking in to selling these for use a mini dj pc could be a way to help you huys fundpay for webhosting and some mayebe new features

No luck so far.

I’ve been able to install all the dependancies (except vamp-dev) on debian. Tweaked the scons file to allow it recognise the machine type (armv6l) and compile started fine.

After a long time I get an error:

In file included from src/soundmanager.cpp:27:
src/sounddeviceportaudio.h:50: error: ‘PaDeviceIndex’ does not name a type
src/sounddeviceportaudio.h:58: error: ‘PaStreamParameters’ does not name a type
src/sounddeviceportaudio.h:60: error: ‘PaStreamParameters’ does not name a type
src/sounddeviceportaudio.h:71: error: ISO C++ forbids declaration of ‘PaStreamCallbackTimeInfo’ with no type
src/sounddeviceportaudio.h:71: error: expected ‘,’ or ‘…’ before ‘’ token
src/soundmanager.cpp: In member function ‘QList SoundManager::getHostAPIList() const’:
src/soundmanager.cpp:197: error: ‘PaHostApiIndex’ was not declared in this scope
src/soundmanager.cpp:197: error: expected ‘;’ before ‘i’
src/soundmanager.cpp:197: error: ‘i’ was not declared in this scope
src/soundmanager.cpp:197: error: ‘Pa_GetHostApiCount’ was not declared in this scope
src/soundmanager.cpp:199: error: expected initializer before ‘
’ token
src/soundmanager.cpp:200: error: ‘api’ was not declared in this scope
src/soundmanager.cpp: In member function ‘void SoundManager::queryDevices()’:
src/soundmanager.cpp:326: error: ‘Pa_GetDeviceCount’ was not declared in this scope
src/soundmanager.cpp:353: error: ‘const struct PaDeviceInfo’ has no member named ‘hostApi’
src/soundmanager.cpp:353: error: ‘Pa_GetHostApiInfo’ was not declared in this scope
src/soundmanager.cpp:355: error: ‘const struct PaDeviceInfo’ has no member named ‘defaultSampleRate’
src/soundmanager.cpp: At global scope:
src/soundmanager.cpp:514: warning: unused parameter ‘streamTime’
scons: *** [lin32_build/soundmanager.o] Error 1
scons: building terminated because of errors.

Make sure you installed portaudio19-dev and not libportaudio-dev (which is version 18).

Thanks, that did it.

It compiles and runs fine but when I try to drag a track to a deck it won’t load, it gives the same icon as when you try to drag a track to a playing deck. Any thoughts?

Hm, sounds like you don’t have an audio device selected. Can you check the preferences and list your sound API, latency, and devices selected?

Hm, some disturbing news about the USB implementation in raspberry pi:

raspberrypi.org/phpBB3/viewt … 57ef4c58c6

It looks like there might be trouble for USB controllers that draw their power from the device. A dedicated hub or a controller powered by an external supply might be necessary.

Hi, neufena! Can you post your compile commands?

I use Mixxx on a Raspberry Pi 3 with Raspbian.
I only use ALSA, because PulseAudio crashes.

The repository version is version 1. Which is a problem, because in that version, you can’t use a splitter cable to split stereo in prelisten-channel and master-channel.

You can select a non OpenGL-using waveform display.

The default audio output works for Audacious, but somehow on Mixxx it’s horrible. Therefor, I use an external USB-soundcard. That seems to improve the general speed in Mixxx also (otherwise, the analysing of tracks would take too long and song play would slow down).
Since I can’t use a splitter cable, I tried 2 external USB-soundcards but for now, that crashes my system.

I think you could use JACK for the splitsing stuff, but I didn’t find out how yet.

Any hints on how to update Mixxx to version 2?
On how to use JACK to split left and right channel for use with a splitter cable (Griffin).

I’m not very familiar with Raspbian or Debian, so I don’t know if there are more up to date Mixxx packages for ARM. You may have to compile it yourself.

Generally, using one sound card with 4 channels of output is recommended because it is most reliable and easiest to configure. It is weird that using two USB sound cards crashes your system. Can you provide more information? Does Mixxx crash or your whole system? Could you attach your ~/.mixxx/mixxx.log file from after that happens? What sound cards are you using?

As for setting up JACK to use a splitter cable, you can do it with QJackCtl by routing Mixxx’s master and headphones outputs to only one channel each of your sound card instead of going to both channels.

Hi all,

If you’re having problems with Mixxx, this seemed to work on RPi2/3:

gist.github.com/fayaaz/8800d520 … 1a54c5b6c0

sudo apt-get install libjack-dev libjack0 portaudio19-dev sudo apt-get build-dep mixxx sudo apt-get install g++ git scons libqt4-dev libqt4-sql-sqlite libportmidi-dev \ libopusfile-dev libshout-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 libsndfile-dev libupower-glib-dev sudo apt-get install libfaad-dev libmp4v2-dev git clone https://github.com/mixxxdj/mixxx.git cd mixxx scons -j4 optimize=native opengles=1 machine=armhf faad=1 sudo scons -j4 install

The speed of analysing files on the RPI leaves a lot to be desired but I got two USB soundcards (ODAC for main output, Numark Mixtrack Pro for headphones) to work fine and everything was responsive.

Thanks Fayaaz. I made a note about those scons arguments on the wiki.

The soundcards are two unknow-brand usb-stick-thingies. I get it to work by selecting one of them as “default” in the system audio preferences and then select that default as headphone-output in Mixxx. The crash is only with that soundcard: a freeze of mouse and keyboard, but things on the screen, keep running (like drawing a waveform, or scanning the library). It’s a cheap “5.1 surround” soundcard, which sometimes gives a long list of possible outputs in Mixxx (“front and rear speakers”, “front and woofer”, …), it’s when I select some of those that everything freezes. I have to pull the plug, because I don’t know the key-combination to call the task manager (which wouldn’t work, since keyboard isn’t responding) or force quit running apps.

I’ll try to attach the log file later!

I guess the usefull part in mixxx.log is:

How are you starting Mixxx? From a launcher icon/menu or from the command line? If you’re starting from the command line, you likely need to suspend PulseAudio so Mixxx can use your sound cards directly with ALSA.

The log just shows you have some HID devices plugged in that you do not have permission to use. Unless there is an HID controller you are trying to use, that does not matter. That is separate from issues with the sound cards. Could you attach your whole log?