The easiest way to sync lights to music?

Archive of the non-categorized posts related to the QLC+ technical support.
Please do not create new threads here, instead, use the categories above !
Post Reply
User avatar
Moskus
Posts: 3
Joined: Fri Nov 06, 2015 8:48 pm
Real Name:

I'm no professional in controlling lights or anything. We do have a "smarthouse" which I've spent the last 7-8 years tuning, and my daughters (2 and 4) thought our regular Christmas lights last year "were so booring". So, what's a dad to do? ;)

I've gotten some lights, RGB strips, a DMX-King controller and some DMX receivers. All hooked up and ready to play. And here's where I get stuck!

I have a little studio in my basement, and I'm used to multitrack recording and MIDI-editing. I thought QLC+ would give me some of the same options. And perhaps it does, I just can't figure it out. My inital idea was to bind various functions and each light individually to a key on my MIDI-keyboard and just "play" long with the music. Repeat alot of time, and then you have a song. I don't see anything resembling a "record" button in QLC+, so perhaps I should just keep it MIDI and play it from my sequencer.

Or am I missing some cool functions in QLC+?

So I guess what I'm asking:
What's the easiest way to make some lights blink synced to music?


Thank you for your help! :)
bestdani
Posts: 46
Joined: Tue May 26, 2015 11:13 am
Real Name: Daniel

Hi,
as far as I know (I'm pretty sure) it's not possible to record a timed sequence (That's quite the same question) but I think it's a nice idea.

If you're already used to MIDI sequencers it's maybe the best option to do it using the sequencer and MIDI input in QLC+ when it works fine for you.

But QLC+ also has a show editor which is quite comparable to a MIDI sequencer track (however operated a bit different) and I've programmed some shows for my nephew using it, but you don't play it live, you can create some light sequences in the show editor directly and use the timing (fade in time, fade out time, duration) of a time step to match it to the music.

I used the waveform display of the track for orientation, placed a sequence at the first beat, then I created some steps of the sequence, copied them (sometimes reordered them randomly) and used the timing control to match the sequence to the beats that could be seen on the waveform. This works the fastest for constant BPM songs but it works also quite fast for human played songs with fluctuating BPM. I always set the timing to be "per step", so you can use the average BPM and then just nudge some single steps that got offbeat. It works the same if you want to match a sequence to a melody instead to beats.

A Screenshot of this is in the Attachement.
Attachments
qlcplus.png
User avatar
Moskus
Posts: 3
Joined: Fri Nov 06, 2015 8:48 pm
Real Name:

Thanks for your input! :)

As far as I see I have two options, and they both have different strengths and drawbacks. I'll see if I have understood it correctly:

1. MIDI
Send MIDI from my sequencer to QLC+. That may give me a fairly good control over each light. Editing MIDI is very easy, especially if I can map one note and it's velocity to a specific channel and level. I don't really know how to do that, but I guess I can use the Layout and map custom buttons to MIDI there.

This has the advantage of giving me easy but total control of each light as well as of already defined Effects. The drawback is that I need a third party playing a MIDI-file (or even worse, having my sequencer running non-stop for a month).


2. Use QLC+
As far as I can see, I have to create different Functions and trigger them in the "step sequencer" in QLC+. Having created some functions with 15 lights in each, I think this will require alot of work compared to the MIDI-method. There's a lot of clicking around, but then again, I might be doing it wrong.

The advantage is that I don't have to run multiple programs to get around the sync issue, and I'm betting it will be more reliable.



I guess the follow up questions are:
1. Is it as easy to map MIDI as I think?
2. Is the Show function as hard to use as I think, or did I miss something?
bestdani
Posts: 46
Joined: Tue May 26, 2015 11:13 am
Real Name: Daniel

Mapping MIDI is quite easy, you would have to create a slider for each DMX-Channel that you want to control on the virtual workspace and assign the MIDI input to it, I'm not sure if QLC+ supports note velocities for the sliders, so if not you would have to use another software in between to convert the note on velocity to a control change message.
This is maybe a disadvantage and also the MIDI resolution is 128 steps instead of 256 steps (DMX) - an alternative would be OSC instead of midi which is not limited to 128 steps.

The real advantage is that you can then really play the light show on a piano and just record it (if your MIDI sequencer supports this, but this should be the case for every sequencer normally), if your sequencer supports this, you can also record fades using CC channels for instance if you have some controllers with faders to do so, I once saw a video about a professional show that was driven that way where MIDI was sent by Ableton Live to a GrandMA2 console.

If you want to use the internal show timelime of QLC+, you can create new sequence directly there (choose the fixtures and functions you want to be affected by the sequence), they are also visualized on the timeline (look at my screenshot in the previous post), the usage is just a bit "uncomfortable" since you will have to manipulate the time steps in a seperate view (shown on the right) instead of manipulating it directly in the timelime by dragging it with the mouse, but I got used to it and it works almost as fast as direct dragging, you can of course also duplicate complete short sequences and drag them with the mouse (look at the newly attached screenshot).

The disadvantage:
You cannot record a DMX sequence in QLC+ as it could be done with a midi sequencer by just playing it live.

Another alternative:
I'm pretty sure freeware DMX recording and playback software exists (you can also buy standalone devices), at least for DMX-Control a recording Plugin exists. So you could perform the lights to the music in QLC+, record the output with a recorder and then just start the music and the DMX playback synchronized (and hope that they keep in sync). If you want to do it locally on your PC the best option is to use ArtNet (which is DMX over ethernet), but this would require a bit more explanation.
Attachments
qlcplus2.png
User avatar
darrow
Posts: 18
Joined: Sun Aug 16, 2015 1:42 pm
Location: Leicester UK
Real Name: John Ryder

The best way I know to achieve what you want is to use the free open source DJ app MIXXX from MIXXX.org. This has a very good beat detection plug-in. It also has Java script support and scripts have been written to output a midi message on each beat which you can use with QLC+. Search the MIXXX forums for the scripts. I use MIXXX for my Xmas and New year party light shows. It works really well.

Mixxx has lots of DJ specific stuff you probably won't want to use but it has the very big advantage that you can point it at your music files and it will analyse them and produce accurate BPM data. I don't know any other app that can do this.
User avatar
fooschnickens
Posts: 73
Joined: Fri Aug 14, 2015 2:39 am
Real Name: Taylor

darrow wrote:The best way I know to achieve what you want is to use the free open source DJ app MIXXX from MIXXX.org. This has a very good beat detection plug-in. It also has Java script support and scripts have been written to output a midi message on each beat which you can use with QLC+. Search the MIXXX forums for the scripts. I use MIXXX for my Xmas and New year party light shows. It works really well.

Mixxx has lots of DJ specific stuff you probably won't want to use but it has the very big advantage that you can point it at your music files and it will analyse them and produce accurate BPM data. I don't know any other app that can do this.
Can it do this with a live feed being pumped into it? Like if I patched our soundboard output through a line-in on a laptop running mixxx, is it able to do that same beat detection?
User avatar
Moskus
Posts: 3
Joined: Fri Nov 06, 2015 8:48 pm
Real Name:

I apologize for the very, VERY late reply. Being sick and having sick kids is no fun. :(

I tried giving the Show function in QLC+ a try, but being too used to MIDI, this was a no-go in the end. However, setting up MIDI over LAN (rtpMIDI) was easy as you both have said, so now I'm controlling the lights with Cakewalk Sonar, and can take advantage of all the MIDI (and audio) manipulation tools I'm used too (like arpegiator, quantize, delay, echo, etc). Not to mention easy copy/paste.


Thank you all for your input. I'll see if I can get around to post a Youtube video of my little setup. (Just 15 small light chains and 5 RGB led strips).
topasrec
Posts: 4
Joined: Fri Jul 07, 2017 8:44 pm
Real Name:

Hello everyone,

I'm using qlcplus together with "aubio" (audio labelling library) running in real-time on Jack server.
The sound of the OS is fed to Jack audio server using the pulseaudio Jack bridge. From there it is routed/splitted to the aubio real-time instance and out to the speakers.
aubiotrack (one of the examples of aubio) performs the beat detection and feeds the output midi "tick" to qlcplus.
(I had problems with the output midi tick which was not implemented in an older version of aubiotrack, but after fixing this it works like a charm. aubio is open source)
I am using Ubuntu.
athomsen
Posts: 5
Joined: Sun Jul 12, 2015 2:47 pm
Real Name: Anders Thomsen

@topasrec - that's great! I've been trying to do this for a long time :-)

I've got aubio running and it's ticking along just fine. Would you care to explain how you connect it to QLC?
topasrec
Posts: 4
Joined: Fri Jul 07, 2017 8:44 pm
Real Name:

athomsen wrote: Mon Jan 08, 2018 9:35 pm @topasrec - that's great! I've been trying to do this for a long time :-)

I've got aubio running and it's ticking along just fine. Would you care to explain how you connect it to QLC?
Hey sure.
aubio generates midi notes as output in parallel to the audio signal "tick". I use that output from aubio and feed it into qlc midi input. All that happens inside jack. (Jack midi bridge needed and activated (Use KXStudio repositories with Claudia and Cadence - really useful)
Screenshot from 2020-03-13 14-43-27.png
The following things have to be done but I don't know in which oder:

1. / 2.?
Connect the universe to the midi input (Input/Output tab):
Note the blinking Joystick symbol on that universe and the connected input midi "port" line.
Screenshot from 2020-03-13 14-52-04.png

2. /1.?

In QLC I created a MIDI profile in Input/Output Tab:
* Channels automatically added (use the wand icon - see the screenshots - when wand icon is activated and the input is fed through midi a channel (button) is found)
* Important: Select the found channel and tick the option: "Generate an extra Press/Release when toggled"
Screenshot from 2020-03-13 14-55-50.png
That channel can be selected as trigger for "next cue in a cue list.

I cannot add more screenshots.
mattallmighty
Posts: 8
Joined: Tue Jan 14, 2020 7:36 am
Real Name: Matt Muller

Perfect, I will look at adding this on Github project: https://github.com/Mattallmighty/LedFx/tree/dev
LedFx uses aubio already so should be quite easy.
We will first work on LedFx sending an output to the QLC API widget when a preset is activated, and then bring work on MIDI output after.
MKUltraMkII
Posts: 21
Joined: Thu Nov 05, 2020 6:35 pm
Real Name: Jay Aich

I am hoping to control an input in QLC+ Virtual Console based on detected BPM of audio in real time. Based on this thread, I'm trying to accomplish this with JACK and Aubio.

I think I'm pretty close.. but I can't figure out the step of mapping Aubio's midi output to an input in QLC+. Aubio shows up in JACK, but I can't seem to get any other MIDI in our Out to show up, despite messing with JACK settings, macOS's Audio MIDI Setup / IAC settings, plugging in USB MIDI devices, and running QLC.

I'm on macOS, fwiw.

Could anyone here offer any input on how I can route Aubio's midi out (via aubiotrack) to be used as an input in QLC+?

Thanks

Screenshot of my setup attached.
Attachments
Screen Shot 2021-01-08 at 7.58.26 PM.png
MKUltraMkII
Posts: 21
Joined: Thu Nov 05, 2020 6:35 pm
Real Name: Jay Aich

Update-

I think I figured it out! I ended up installing JackOSX 0.92- I previously was using Jack2 1.9.16.
With that version of JACKOSX I was able to enable MIDI, and in the JackPilot Connections window I was able to route aubio's midi out to system_midi playback_1.

Then in QLC+ I enabled IAC Midi as an input, and aubio's midi "beat" was then being received.
topasrec
Posts: 4
Joined: Fri Jul 07, 2017 8:44 pm
Real Name:

MKUltraMkII wrote: Sat Jan 09, 2021 2:06 am I am hoping to control an input in QLC+ Virtual Console based on detected BPM of audio in real time. Based on this thread, I'm trying to accomplish this with JACK and Aubio.

I think I'm pretty close.. but I can't figure out the step of mapping Aubio's midi output to an input in QLC+. Aubio shows up in JACK, but I can't seem to get any other MIDI in our Out to show up, despite messing with JACK settings, macOS's Audio MIDI Setup / IAC settings, plugging in USB MIDI devices, and running QLC.

I'm on macOS, fwiw.

Could anyone here offer any input on how I can route Aubio's midi out (via aubiotrack) to be used as an input in QLC+?

Thanks

Screenshot of my setup attached.
Hello @MKUltraMKII,

I cannot see QLC as an entry in the graph your screenshot. It should be there to be able to make a connection shown in my screenshot earlier in this thread. Here is a direct link to the screenshot:
https://www.qlcplus.org/forum/download/ ... &mode=view

I think the entry is missing because the jack midi bridge is not enabled. It bridges midi from the applications running into jack. (I use it in linux. Don't know if it exists in MacOS) In linux I can enable it while jack is already running. There are two midi settings. One enables hardware midi, that one is in the jack setup settings and one that enables the software bridge and is located somewhere else (tools menu in KXStudio Claudia on Linux i think). You need to enable the midi bridge for applications.
After enabling the bridge, QLC+ has tp be restarted. Else it won't show up in jack I guess.
When the QLC entry is present connect it to aubiotracks midi out.

After that is done I chose the "port" input in QLC. That is the QLC midi input when using midi bridge - at least on Linux.
See the screenshot from me earlier in this thread. (Direct link: https://www.qlcplus.org/forum/download/ ... &mode=view)

Good luck!
topasrec
Posts: 4
Joined: Fri Jul 07, 2017 8:44 pm
Real Name:

MKUltraMkII wrote: Sat Jan 09, 2021 5:02 pm Update-

I think I figured it out! I ended up installing JackOSX 0.92- I previously was using Jack2 1.9.16.
With that version of JACKOSX I was able to enable MIDI, and in the JackPilot Connections window I was able to route aubio's midi out to system_midi playback_1.

Then in QLC+ I enabled IAC Midi as an input, and aubio's midi "beat" was then being received.
This might be a workaround for the solution mentioned in my previous reply. Perhaps using a visible link in jacks graph would be better.
MKUltraMkII
Posts: 21
Joined: Thu Nov 05, 2020 6:35 pm
Real Name: Jay Aich

Thanks for the reply-

I couldn't figure out how to get QLC to show up in the jack graph. But what I did figure out was how to send midi to mac's IAC bus, and QLC can use that as an input.

According to the JackOSX docs:
https://www.uio.no/ritmo/english/resear ... e/jack.pdf

page 20, it appears JackOSX includes a CoreMIDI bridge.

So in the case of Mac, I think the key may be using JackOSX rather than the regular Jack2


I was able to get Aubio running for bpm detection with aubiotrack, and it does work. But for my use case I'm now moving towards networked MIDI (via Mac Audio MIDI Settings) to send a midi clock from one Mac running Traktor to another Mac running QLC+. Networked MIDI clock will be more accurate than aubiotrack.
Post Reply