Proposal for OS2L implementation

djbrandonjames
Posts: 3
Joined: Wed Nov 30, 2016 4:39 pm
Real Name: Brandon James

Hello,

I know the devs do not enjoy private emails and DM's so i am using this thread instead. I am customer service & marketing rep for one of the major Pro DJ applications and we have implemented OS2L ( http://os2l.org/ ) in our application in order for our customers to sync & control their DMX software directly from within our app and their DJ controllers. From my research (and personal use ) OLC+ is a very popular DMX solution for many of our Mobile DJ market users. I think it would be a great fit to have OLC+ and our application be able to work together. If any of the developer's are interested please pm me so we can discuss in further detail.
User avatar
mcallegari
Posts: 4461
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Hello Brandon, I've just sent you an email.
User avatar
mcallegari
Posts: 4461
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I'm glad to inform everyone that a preliminary OS2L plugin has been included in QLC+.

I tested it with Virtual DJ and works OK. Just place the attached file in your Windows Document folder / Virtual DJ / Pads.
Then check the updated QLC+ documentation to see how to configure VDJ
Note: OS2L feedbacks are not implemented yet.

Windows test build available
(if you build from sources you can either use Linux+Windows or macOS+Windows)

Comments and feedback are appreciated. Thanks
Attachments
dmx.xml
(488 Bytes) Downloaded 311 times
yokosuna
Posts: 204
Joined: Tue Mar 22, 2016 9:07 am
Real Name:

Great news ! Thx a lot !
djbrandonjames
Posts: 3
Joined: Wed Nov 30, 2016 4:39 pm
Real Name: Brandon James

Hi,

The DMX.xml file is no longer required for you to add manually to your virtualdj->pads folder as the page is embedded in the newer versions of VDJ.
yokosuna
Posts: 204
Joined: Tue Mar 22, 2016 9:07 am
Real Name:

works like a charm - but you should mention that
one has to create a profile for virtual dj ;-)

Here is a step by step for those who a curious:

- be sure that the connection to vdj is establish and start some playback
- go to the "input/output" page
- select "profile"
- press the "+" button
- enter desired values and select "os2l" as type
- switch to the "channel" page
- press the "magic wand" button - your "beat" should appear within seconds
- if you have assigned more "pads" in virtual dj, press them to add them to qlc+
- when your are done, stop the automatic and your are finished

After that, remember and use the "channel" numbers from vdj to use them in the VC

HTH

PS: anyone knows how to get - say - "get_vu_meter_peak" from VDJ over os2l ?
yokosuna
Posts: 204
Joined: Tue Mar 22, 2016 9:07 am
Real Name:

After some further research, I´m pretty sure that beside the "cmd"/"btn" and "beat" message, there are no more messages send by VDJ.
Looking at the github source os2l.cpp I can see, that the "beat" message is only implemented on it´s pure base. According to os2l.org the are some more parameter to this message that could be interresting. Looking at the qlc+ implementation, it seems, that the beat channel is choosen to be "8341" by coincidence. So my sugesstion is, to use the "pos" parameter to extend the functionality like this:

Code: Select all

// pseudocode !
// set the "pos" as a value 
emit valueChanged(m_inputUniverse, 0, 8342, jsonObj.value("pos"), "beat");

// emit a signal at the very first beat
if( jsonObj.value("pos") == 0)
    emit valueChanged(m_inputUniverse, 0, 8342 + 1, 255, "beat");

// emit a signal every second beat
if( jsonObj.value("pos") % 2) == 0)
    emit valueChanged(m_inputUniverse, 0, 8342 + 2, 255, "beat");

// emit a signal every third beat
if( jsonObj.value("pos") % 3) == 0)
    emit valueChanged(m_inputUniverse, 0, 8342 + 3, 255, "beat");

// emit a signal every fourt beat
if( jsonObj.value("pos") % 4) == 0)
    emit valueChanged(m_inputUniverse, 0, 8342 + 4, 255, "beat");

and/or add the "strength " to the "beat" , either on a seperate channel or not.
What do you think ?
dmxfred
Posts: 1
Joined: Thu Mar 28, 2019 3:45 pm
Real Name: Manfred Götz

Did this work with Serato DJ pro too?
bluescreen25
Posts: 55
Joined: Fri Jul 21, 2017 4:52 pm
Real Name: Ralf Janssen

This are good news. Thanks Massimo. Next days I will test.

Regards
okachynskyy
Posts: 2
Joined: Fri Jun 07, 2019 10:35 pm
Real Name: Oleksiy

Hi! I have installed QLC+_4.12.2-TEST-20190508.dmg

And OS2L works fine for the single command (e.g. "strobe" or "next" button from VDJ).
But I have troubles with running queue in sync beat.

Here is my config:
OSTL Queue.png
And in Inputs/Outputs I can see the beat indicator:
Beat Indicator.png
When I change Input Channel to e.g. "64560: next", and click "next" button in VDJ - Queue list change scene as expected.

What I'm doing wrong? How can I sync smth in QLC+ with a beat from VDJ?
DHoude
Posts: 6
Joined: Mon Jun 10, 2019 6:24 pm
Real Name: Don Houde

Any chance I can hop on testing this? I can't seem to find the 4.12.2 test build.
User avatar
mcallegari
Posts: 4461
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

DHoude wrote: Wed Jun 12, 2019 11:58 pm Any chance I can hop on testing this? I can't seem to find the 4.12.2 test build.
First post in software development area: viewtopic.php?f=12&t=3135
DHoude
Posts: 6
Joined: Mon Jun 10, 2019 6:24 pm
Real Name: Don Houde

Awesome, thank you so much. While new to QLC I would be a good fit for this one. Been using VDJ for a long time and dying to try OS2L. I will test after my next show in a week.
DHoude
Posts: 6
Joined: Mon Jun 10, 2019 6:24 pm
Real Name: Don Houde

I was testing this last night and today. I can't get the OS2L beat trigger to sense VDJ. OS2L is enabled in VDJ (set to Yes) and I set the OS2L IP in VDJ as 1504627.0.0.1:9996 per the QLC documentation. Then I restart VDJ.

In QLC I added the OS2L profile on my universe. In that OS2L profile, in the Channels tab I used the the Magic Wand to sense VDJ. But nothing happens after that, even if I play a track in VDJ. Both VDJ and QLC are on the same PC. I have even taken down the Windows filewall.

I was a little confused by this part of the documentation "If you have set a specific port in VDJ, open the OS2L configuration dialog and set the same port there." I assume the "OS2L configuration dialog" is the OS2L conig box in QLC. But I don't see how I can enter an IP and port like I can do in VDJ. Because I used the loopback address and default port, maybe I don't have to? Just can't figure out where it is stopping yet.

I feel like I am so close! :D Any advice? Maybe I need to wait a bit? I can ask over there too if needed.

Running VDJ 32 bit v8.3 b5046
djhubie
Posts: 1
Joined: Fri Sep 13, 2019 1:30 pm
Real Name: Hubert R Meagher

This is my first post in the forum, so bear with me.

I am running vdj8 64-bit and QLC+ 4.12.2 and doing my best to understand the OS2L implementation.

I was able to get communication working between vdj and QLC+ and was able to trigger some simple actions using the Button cue trigger in the POI editor, so I understand that.

The Beat command does seem to work, however, I created a simple scene to flash a fixture on when a button is triggered and have set the input trigger to the Beat channel of the OS2L profile for that button. When the Beat signal is received, it does trigger the scene, but instead of flashing, it just stays on. If I hit the button manually it turns the simple scene off and then it turns back on, on the next Beat signal and stays on again.

Am I doing something wrong or is normal? I thought the Beat signal should flash scene if the button is set to flash.

Thanks for your help.
hak4fun
Posts: 13
Joined: Wed May 16, 2018 8:00 am
Real Name:

Hello all,

i have configured os2l between VirtualDJ and QLC+,
bur if i link the beat signal to the NEXT-Button of the CUE-List to sync with BPM
nothing happens. Linking the beat to other VC buttons works fine...
any ideas what what i'm doing wrong?

Another question: how can i make half-beat or 1/4-Beat signal with this

Thanks for your support
juski
Posts: 50
Joined: Wed Jun 24, 2015 10:28 pm
Real Name: Justin Hornsby

I've started playing with OS2L from VDJ too.

A few observations so far.. VDJ won't send ANY OS2L without its 'server' being started. That is, it won't send a BEAT command without some other OS2L command being sent first. To work around this for now I've made a custom button to send an arbitrary OS2L command.

Next.. I have a master speed dial in my QLC workspace which sets the speed of many different functions. Up til now I've been using the VDJARNET plugin to send beats on artnet channel 200 & using that to 'tap' the speed dial. But with OS2L, QLC has somehow 'got' the channel of VDJ's OS2L beat event thing as 'channel 8342'. I've looked at the datagram in wireshark & just can't figure out how

0000 02 00 00 00 45 00 00 68 20 12 40 00 80 06 00 00 ....E..h .@.....
0010 7f 00 00 01 7f 00 00 01 c4 0a 27 0c 71 2a 55 28 ..........'.q*U(
0020 99 d2 15 93 50 18 00 20 fe 5c 00 00 7b 22 65 76 ....P.. .\..{"ev
0030 74 22 3a 22 62 65 61 74 22 2c 22 63 68 61 6e 67 t":"beat","chang
0040 65 22 3a 66 61 6c 73 65 2c 22 70 6f 73 22 3a 36 e":false,"pos":6
0050 33 34 2c 22 62 70 6d 22 3a 31 32 32 2c 22 73 74 34,"bpm":122,"st
0060 72 65 6e 67 74 68 22 3a 30 2e 34 7d rength":0.4}

translates to 8342 as a 'channel number'. 8342 is 0x2096 in hex...

Can anyone enlighten me as to what the relationship is?
juski
Posts: 50
Joined: Wed Jun 24, 2015 10:28 pm
Real Name: Justin Hornsby

Ahh so apparently, we can use the QLC+ OSC channel calculator to transform OS2L button names to the hashed 'channel number' QLC+ uses internally.

So 'beat' becomes '8432', or a custom button called 'sandyb' becomes '41542'.

This is really only better than using VDJartnet because at least now we don't need to use a plugin anymore.

I wonder. Would it be much of a job to let us be able to enter OSC or OS2L text as button triggers?
juski
Posts: 50
Joined: Wed Jun 24, 2015 10:28 pm
Real Name: Justin Hornsby

Is it just me or is there an off by one error, either in the OSC channel calculator or OS2L ?
dben41
Posts: 18
Joined: Thu Apr 11, 2019 5:22 pm
Real Name: Daryl Bennett
Contact:

@juski hey Justin,

The ArtNet plugin could send a beat signal on the beat, or two signals every beat, etc... Is this possible with OS2L? I'm trying to send POI commands, but am not having any luck with this syntax. os2l_cmd 1 50%, have you had any luck with the os2l_cmd?
Post Reply