Page 1 of 2

Proposal for OS2L implementation

Posted: Tue Jan 30, 2018 3:26 pm
by djbrandonjames
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.

Re: Proposal for OS2L implementation

Posted: Tue Jan 30, 2018 4:29 pm
by mcallegari
Hello Brandon, I've just sent you an email.

Re: Proposal for OS2L implementation

Posted: Sun Mar 31, 2019 2:13 pm
by mcallegari
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

Re: Proposal for OS2L implementation

Posted: Sun Mar 31, 2019 4:40 pm
by yokosuna
Great news ! Thx a lot !

Re: Proposal for OS2L implementation

Posted: Mon Apr 01, 2019 2:31 pm
by djbrandonjames
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.

Re: Proposal for OS2L implementation

Posted: Fri Apr 05, 2019 2:05 pm
by yokosuna
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 ?

Re: Proposal for OS2L implementation

Posted: Sat Apr 06, 2019 7:37 am
by yokosuna
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 ?

Re: Proposal for OS2L implementation

Posted: Mon Apr 15, 2019 6:33 am
by dmxfred
Did this work with Serato DJ pro too?

Re: Proposal for OS2L implementation

Posted: Mon May 06, 2019 7:27 pm
by bluescreen25
This are good news. Thanks Massimo. Next days I will test.

Regards

Re: Proposal for OS2L implementation

Posted: Fri Jun 07, 2019 10:52 pm
by okachynskyy
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?

Re: Proposal for OS2L implementation

Posted: Wed Jun 12, 2019 11:58 pm
by DHoude
Any chance I can hop on testing this? I can't seem to find the 4.12.2 test build.

Re: Proposal for OS2L implementation

Posted: Thu Jun 13, 2019 8:25 am
by mcallegari
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

Re: Proposal for OS2L implementation

Posted: Fri Jun 14, 2019 1:19 pm
by DHoude
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.

Re: Proposal for OS2L implementation

Posted: Mon Jul 01, 2019 11:03 pm
by DHoude
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

Re: Proposal for OS2L implementation

Posted: Fri Sep 13, 2019 2:28 pm
by djhubie
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.

Re: Proposal for OS2L implementation

Posted: Mon Sep 16, 2019 8:25 am
by hak4fun
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

Re: Proposal for OS2L implementation

Posted: Wed Oct 30, 2019 2:37 pm
by juski
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?

Re: Proposal for OS2L implementation

Posted: Wed Oct 30, 2019 3:18 pm
by juski
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?

Re: Proposal for OS2L implementation

Posted: Mon Nov 04, 2019 9:57 pm
by juski
Is it just me or is there an off by one error, either in the OSC channel calculator or OS2L ?

Re: Proposal for OS2L implementation

Posted: Wed Nov 06, 2019 9:16 pm
by dben41
@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?