Mixxx Integration with LiVES VJ Software

Hi, I don’t know if any of you are familiar with LiVES (youtube.com/watch?v=8oNhr2Mvlmw

There is a little bit of setup involved (loading the controller in Mixxx and a few clips in LiVES), but once that is done it is a simple matter of starting LiVES, loading the Mixxx device map and then putting LiVES in automatic mode.

It is also possible to map the beat detector to other macros in LiVES - for example specifically change the playback direction, toggle a single effect (to make a strobe for example), etc.

I would be interested to know people’s thoughts on this. (I’ll post detailed instructions here shortly in case anybody else wants to try it out.)

Greate News.

I think we have discussed this earlier, but I cannot find it. Do you?

I am happy to receive a pull request, that the integration is installed by default.

We should make the Mixxx integration first class.
What is missing for a plug and play setup?

Feel also free to add the integration steps to our wiki.

Is mpris interesting for you?
We are working on a Version that publishes the track metadata via mpris including the cover art.
You should also be able to load a track or skip to the next one.
This is in line with almost any other media player on the Linux desktop.

The related PR is here:
github.com/mixxxdj/mixxx/pull/1 … -411643852

Thanks for the great replies ! This is my first post here so I am not sure if we have discussed it - maybe it was on some other forum - IRC perhaps ?

IIRC the only setup needed in Mixxx was to load the controller, I think I adapted the lighting controller to leave only beat detection but the other MIDI signals could also be mapped (so for example you could map the BPM to the video playback speed, or a track change in Mixxx to a clip change in LiVES). There are plenty of possibilities if people want to play around with it.

I’ll take a look at mpris, thanks. Perhaps I could implement a way to hook up external sources to the subtitler, so that for example the track name could be overlaid on the video. Some way to load or advance the playlist from within LiVES might also be nice.

I’ll try and get the instructions done in the next couple of days. It’s not very complex but I’ll have to go through all the steps again from scratch to refresh my memory.

I am also working again on porting LiVES to Windows, so it should make this even more accessible in the future.

Here is a quick summary of the steps, if anybody wants to try it. Feel free to embellish it and add it to the wiki, since I’m a bit busy.

  1. prep lives (one time setup)

start lives,

prefs -> MIDI / joystick learner, ensure check create dummy output

optional : osc startup (Prefs / Networking OSC -> set to startup now and each time)

load some clips

  1. prepare mixxx

start up mixxx, go to Preferences / Controllers, select the LiVES controller, load midi for light preset, apply, go to scripts, apply.

  1. syncing video and audio

Ensure you have at least one clip loaded. LiVES will normally automatically load your last clip set.

in LiVES, click on VJ -> Load devicemap, select mixxx.map, or start lives with -devicemap mixxx.map

start autoplay in LiVES (VJ / Automatic Mode). Just take all defaults.

start mixxx, play some tunes …

Nb: to stop playback in LiVES press “q”. After this you need to restart autoplay (step 3).


plug in projector, in LiVES go to Preferences / GUI. Set playback monitor to 2.

In LiVES, press s then f to play fullscreen on projector.

Recording the performance:

to record video only, just press r before triggering autolives.

if you want to record audio as well, then click on the External Audio source at the top of the LiVES interface. Make sure LiVES is set up to record from the Audio Monitor in pavucontrol.

you can also delay the recording playback start until audio starts:

  • in Preferences / Recording, set the playback start threshold above 0 (1 is usually enough)

  • when starting autolives, select manual playback start

  • press “r” to prepare rocording, then “p” to trigger playback

  • playback will wait until it hears something from mixxx.

(N.B due to a bug in version 2.10.0 of LiVES, playback will sometimes stop too soon in this mode. This bug will be fixed in 2.10.1).

After recording. press “q” to stop playback in LiVES. You then have the option to preview your recording, and to render it to a new clip.
After rendering you can encode the clip to video = the easiest way is via File / Quick transcode.

Nice, I was thinking of something similar to this a while ago. Hope this gets extended further at some point too :wink:

What further features would you be interested in ?

It had been a few years since I’ve really looked at LiVES and I partially caught on your comments that you have only mapped the main beat detection to anything. I thought LiVES gave two channels which could be treated as two sources on an ME bank, thus it could be useful to map Deck A/B High/Mid/Low to different parameters on each source or similar type effects. Having a quick look again now and either I was mistaken or I’m getting a little lost with a new interface…