Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Reply
 
Thread Tools Display Modes
Old 02-22-2021, 07:12 PM   #1
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default I have ported Oscii-Bot to support the Behringer X family of devices

I have ported the Oscii-Bot source code to support the Behringer X32 and and other X series family.

Previously discussion of this was in the forum: https://forum.cockos.com/showthread....46#post2410946

I will follow up with another post on this shortly ..

Last edited by jacksoonbrowne; 02-25-2021 at 08:16 PM.
jacksoonbrowne is offline   Reply With Quote
Old 02-23-2021, 12:15 AM   #2
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Works great for me.
This allowed to improve and simplify my setup with the Behringer XR18 drastically.

-Michael
mschnell is offline   Reply With Quote
Old 02-23-2021, 12:36 AM   #3
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

I have an X32 rack... Id be keen to beta test.. I sent you a PM..
EcBaPr is offline   Reply With Quote
Old 02-23-2021, 12:54 AM   #4
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by EcBaPr View Post
I have an X32 rack... Id be keen to beta test.. I sent you a PM..
I tried sending you a zip of the beta files, but your email provider blocked it because it contained a zip file
jacksoonbrowne is offline   Reply With Quote
Old 02-23-2021, 01:05 AM   #5
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

@Cocos devs:

Does Reaper itself also do automatic bundling of OSC messages ?

Due to the Bug in the Behringer Products this might lead to hard to locate problems.
Hence it would be good to allow to disable sending bundles - supposedly even as a default.
-Michael
mschnell is offline   Reply With Quote
Old 02-23-2021, 01:59 AM   #6
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

Quote:
Originally Posted by jacksoonbrowne View Post
I tried sending you a zip of the beta files, but your email provider blocked it because it contained a zip file
really ? its just a gmail account I wouldn't have thought it would block anything.. i'll PM you my other email address... if there is any other options please let me know..
EcBaPr is offline   Reply With Quote
Old 02-23-2021, 03:51 AM   #7
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Looking at the specs (-> The-Open-Sound-Control-1.0-Specification-opensoundcontrol.org_.pdf ), I found that OSC bundles are meant for specifying a time stamp to a set of OSC messages. That is why a bundle message always starts with a time tag.

Looking at the code, it seems that OSCIIBOT always sends the time tag 0, 0, 0, 0, 1, 0, 0, 0, which means a date in 1900.
Maybe this is what the Behringers dislike...
-Michael
mschnell is offline   Reply With Quote
Old 02-23-2021, 11:09 AM   #8
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by mschnell View Post
@Cocos devs:

Does Reaper itself also do automatic bundling of OSC messages ?

Due to the Bug in the Behringer Products this might lead to hard to locate problems.
Hence it would be good to allow to disable sending bundles - supposedly even as a default.
-Michael
I spent some time last night and found out Oscii-Docs spec for the "@output" command can be used for bundle prevention, although the docs don't delve into it.

IE: @output X32 OSC [optional maxpacketsize=1] will disable bundles

Probably renders my code obsolete

From the Doc's:
@output devicehandle OSC "host : port" [maxpacketsize (def=1024)] [sleepinMS (def=10)]

I found that using "@output X32 OSC 1 1" works.
With"maxpacketsize" set to 1 bundles are prevented and
with "sleepinMS" set to 1 the X32 will not miss any OSC messages.

The caveat to this is there will be a delay of 1 millisecond between each out going OSC message to the X32. Probably not an issue for most ?

My code however allows for a burst of OSC messages before sleeping 1 millisecond. A performance increase.

Last edited by jacksoonbrowne; 02-23-2021 at 07:13 PM.
jacksoonbrowne is offline   Reply With Quote
Old 02-23-2021, 11:11 AM   #9
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by mschnell View Post
Looking at the specs (-> The-Open-Sound-Control-1.0-Specification-opensoundcontrol.org_.pdf ), I found that OSC bundles are meant for specifying a time stamp to a set of OSC messages. That is why a bundle message always starts with a time tag.

Looking at the code, it seems that OSCIIBOT always sends the time tag 0, 0, 0, 0, 1, 0, 0, 0, which means a date in 1900.
Maybe this is what the Behringers dislike...
-Michael
I'll modify the code and send a proper timestamp and see if the X32 likes bundles then.
jacksoonbrowne is offline   Reply With Quote
Old 02-23-2021, 11:15 AM   #10
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

@EcBaPr I just sent an email
jacksoonbrowne is offline   Reply With Quote
Old 02-23-2021, 04:12 PM   #11
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

After spending many hours spent scouring the internet I have found many claims that "Beringher X series, Midas M32 as well as the new Beringher Wing" do not support OSC bundles.

This holds true my own experience.
jacksoonbrowne is offline   Reply With Quote
Old 02-23-2021, 06:14 PM   #12
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

Quote:
Originally Posted by jacksoonbrowne View Post
@EcBaPr I just sent an email
received it thanks.. I will get a chance to run it up later today or tomorrow..
EcBaPr is offline   Reply With Quote
Old 02-24-2021, 01:02 AM   #13
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by jacksoonbrowne View Post
I found out Oscii-Docs spec for the "@output" command can be used for bundle prevention, although the docs don't delve into it.
It would be great to hear a comment by Justin on that issue. What does he suggest ?
-Michael
mschnell is offline   Reply With Quote
Old 02-24-2021, 06:37 AM   #14
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

this new version of OSCii bot is working for me so far.. initially I was only able to send to X32 and not receive but then I realised you need to use /xremote to subscribe..

thanks Roy for the update.. i currently have a setup using a UFX and Reaper but i want to substitute the X32.. this OSCii bot update enables that..

EDIT: total noob question.. how do i send /xremote in a loop repeating every 5 seconds or so ?

Last edited by EcBaPr; 02-24-2021 at 07:27 AM.
EcBaPr is offline   Reply With Quote
Old 02-24-2021, 11:26 AM   #15
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by EcBaPr View Post
this new version of OSCii bot is working for me so far.. initially I was only able to send to X32 and not receive but then I realised you need to use /xremote to subscribe..

thanks Roy for the update.. i currently have a setup using a UFX and Reaper but i want to substitute the X32.. this OSCii bot update enables that..

EDIT: total noob question.. how do i send /xremote in a loop repeating every 5 seconds or so ?
Use @timer and every 5 seconds send /xremote.

Heres a snippet of how I do it:

@input OSC_FROM_REAPER OSC "localhost:9000" // REAPER ==> SCRIPT
@output OSC_TO_REAPER OSC "localhost:8000" // SCRIPT ==> REAPER
@output OSC_X32 OSC "192.168.1.2:10023" // SCRIPT ==> X32 ==> SCRIPT

@init
oscsend(OSC_X32, "/xremote"); // KICK OFF X32 Subscription
time(previousTime);
every_5_seconds = 0;
....
....


@timer
(
time(currentTime);
elapsedTime = currentTime - previousTime;
previousTime = currentTime;

elapsedTime > 0 ?
(
// EVERY SECOND
every_5_seconds += 1;

// PREVENT SECONDS TIMER FROM EVER OVERFLOWING
secondsTimer >= 30 ? secondsTimer = 0;

// EVERY 5 SECONDS
every_5_seconds >= 5 ?
(
// RESET TIMER
every_5_seconds = 0;

// RENEW xremote
oscsend(OSC_X32, "/xremote");
);
);


// OTHER @timer suff as required
);

Last edited by jacksoonbrowne; 02-24-2021 at 02:41 PM.
jacksoonbrowne is offline   Reply With Quote
Old 02-24-2021, 05:37 PM   #16
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

cool that's working.. I'll keep using it with my setup and report any problems, all looks good so far..

Even if there was another way of getting it working in the original OSCii, the ease of just changing the .ini makes it nice and simple.
EcBaPr is offline   Reply With Quote
Old 02-24-2021, 05:45 PM   #17
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by EcBaPr View Post
cool that's working.. I'll keep using it with my setup and report any problems, all looks good so far..

Even if there was another way of getting it working in the original OSCii, the ease of just changing the .ini makes it nice and simple.
Thanks @EcbaPr,

You and Michael are the first beta testers and I appreciate you guys for taking your time to beta test it.
jacksoonbrowne is offline   Reply With Quote
Old 02-24-2021, 10:36 PM   #18
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

no probs.. thanks for using your skills to make it better.. I'll do my best with testing, I'm new to writing scripts but I have an idea for a more complex routing setup with my gear that I will try and see how it goes..

not sure if you are aware but there is an X32 development site which is handy to keep informed about firmware updates.. I think its run by a couple of Behringer staff.

https://trello.com/b/Pky6BO3J/xm32-s...eedback-fw-404
EcBaPr is offline   Reply With Quote
Old 02-24-2021, 11:28 PM   #19
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by EcBaPr View Post
not sure if you are aware but there is an X32 development site which is handy to keep informed about firmware updates.. I think its run by a couple of Behringer staff.

https://trello.com/b/Pky6BO3J/xm32-s...eedback-fw-404
Thanks for the link @EcBaPr. Great info

I Always keep My X32 updated to the current release based on their download site.

But I will certainly keep my eyes on that link
jacksoonbrowne is offline   Reply With Quote
Old 02-27-2021, 10:15 PM   #20
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Michael(@mschnell), and @EcBaPr,

Just wondering how things are progressing with your use of my Oscii-bot X32 code?

@EcBaPr, could you tell me how you are implementing the X32?
IE: what you want your script to perform?

Cheers, Roy
jacksoonbrowne is offline   Reply With Quote
Old 02-27-2021, 10:54 PM   #21
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

hey... i was actually just about to come back and post that so far everything is going ok here.. I'm not doing the most complex stuff but its working as expected.

my setup is Reaper playing stems with some selected faders linked to X32 faders.. This allows me to automate stuff on Reaper timeline that controls X32 with live inputs.. previously I was using an RME UFX with Totalmix for this but now the same script with basic adjustments is working for X32..

I will probably add some more things to control some mutes also and if possible it would be good to find a way to sync Reapers tempo to an X32 delay time but that might be a bit of a challenge..

I will do some more tweaks through the next week or so and report back how its going.. so far its working well.
EcBaPr is offline   Reply With Quote
Old 02-27-2021, 11:06 PM   #22
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by EcBaPr View Post
hey... i was actually just about to come back and post that so far everything is going ok here.. I'm not doing the most complex stuff but its working as expected.

my setup is Reaper playing stems with some selected faders linked to X32 faders.. This allows me to automate stuff on Reaper timeline that controls X32 with live inputs.. previously I was using an RME UFX with Totalmix for this but now the same script with basic adjustments is working for X32..

I will probably add some more things to control some mutes also and if possible it would be good to find a way to sync Reapers tempo to an X32 delay time but that might be a bit of a challenge..

I will do some more tweaks through the next week or so and report back how its going.. so far its working well.
Thanks for the info EcBaPr.

I am working on a script that will do 1:1 bidirectional between reaper and the X32.

So Far I have implemented:
MASTER_VOLUME
MASTER_PAN
TRACK_NAME
TRACK_VOLUME
TRACK_SOLO
TRACK_MUTE
TRACK_PAN
TRACK_SELECT
ACTION

Meters/FX/etc to come

Last edited by jacksoonbrowne; 02-27-2021 at 11:24 PM.
jacksoonbrowne is offline   Reply With Quote
Old 02-27-2021, 11:22 PM   #23
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Just wondering how things are progressing with your use of my Oscii-bot X32 code?
Works perfectly for the XR18.

-Michael
mschnell is offline   Reply With Quote
Old 02-27-2021, 11:38 PM   #24
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

My fork of Justin's Master Oscii-bot repo https://github.com/justinfrankel/oscii-bot is at: https://github.com/rwallingford/oscii-bot

For users that don't need to modify my source code but just want to use my executable, it is in my repo as Oscii-bot.exe and requires Oscii-bot.ini from my repo as well.

It's all open source ....
jacksoonbrowne is offline   Reply With Quote
Old 02-28-2021, 03:27 AM   #25
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Thanks for the info EcBaPr.

I am working on a script that will do 1:1 bidirectional between reaper and the X32.

So Far I have implemented:
MASTER_VOLUME
MASTER_PAN
TRACK_NAME
TRACK_VOLUME
TRACK_SOLO
TRACK_MUTE
TRACK_PAN
TRACK_SELECT
ACTION

Meters/FX/etc to come
sounds good.. I love how versatile the X32 is and now with OSCii compatibility offers even more possibilities..
EcBaPr is offline   Reply With Quote
Old 03-02-2021, 01:27 AM   #26
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

I am working on adding new features to my Oscii-bot script beyond what I have already implemented above.

Next on my list is meters
Stay tuned .....
jacksoonbrowne is offline   Reply With Quote
Old 03-04-2021, 06:12 AM   #27
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

nice.. keep us posted, will be good to hear how you go..
EcBaPr is offline   Reply With Quote
Old 03-06-2021, 07:32 PM   #28
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

I have a new version of Oscii-bot.exe compiled that allows the change of the Oscii-bot.exe log screen to:

1 - modify display font size
2 - modify font boldness
3 - modify the maximum lines of text the log screen can display


The above settings are controlled by new entries added to OSCII-bot.ini

Let me know if you would like to beta this change.
jacksoonbrowne is offline   Reply With Quote
Old 03-06-2021, 11:36 PM   #29
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Of course I can test it if you want me to,
-Michael
mschnell is offline   Reply With Quote
Old 03-07-2021, 04:09 AM   #30
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Let me know if you would like to beta this change.
I would be keen to test also..
EcBaPr is offline   Reply With Quote
Old 03-09-2021, 09:49 PM   #31
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Sorry guys, I am slammed with day job (pays for my toys). I will make it available soon
jacksoonbrowne is offline   Reply With Quote
Old 03-12-2021, 11:34 PM   #32
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

@mschnell, @EcBaPr

Sorry guys, I couldn't get the Oscii-Bot update out sooner than today, due to day job and My IP provider pushing cable modem updates that are stupid and breaks my local LAN.

I have sent you guys a more detailed email, including the update

Cheers Guys,
Roy
jacksoonbrowne is offline   Reply With Quote
Old 03-14-2021, 11:56 PM   #33
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

no probs.. I have been caught up with other stuff also.. just got your email I will take a look at it ASAP and let you know.. cheers.
EcBaPr is offline   Reply With Quote
Old 03-27-2021, 09:57 PM   #34
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by mschnell View Post
Looking at the specs (-> The-Open-Sound-Control-1.0-Specification-opensoundcontrol.org_.pdf ), I found that OSC bundles are meant for specifying a time stamp to a set of OSC messages. That is why a bundle message always starts with a time tag.

Looking at the code, it seems that OSCIIBOT always sends the time tag 0, 0, 0, 0, 1, 0, 0, 0, which means a date in 1900.
Maybe this is what the Behringers dislike...
-Michael
Time tag of 1 means apply immediately
jacksoonbrowne is offline   Reply With Quote
Old 03-27-2021, 10:28 PM   #35
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

"0" would be more straight forward ?!?!?
Nonetheless it's possible that the Behringer implementation dislikes that time stamp.

-Michael
mschnell is offline   Reply With Quote
Old 03-27-2021, 10:34 PM   #36
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

From Osc 1.0 spec

"If the time represented by the OSC Time Tag is before or equal to the
current time, the OSC Server should invoke the methods immediately"
jacksoonbrowne is offline   Reply With Quote
Old 03-28-2021, 02:12 AM   #37
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Hmm...
How in fact should a mixer know the "current time" ?

-Michael
mschnell is offline   Reply With Quote
Old 03-28-2021, 06:43 PM   #38
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by mschnell View Post
Hmm...
How in fact should a mixer know the "current time" ?

-Michael
If a mixer supports OSC, such as the X32, then they are referred to as an OSC server.

However any manufacturer is free to Obey the OSC spec or implement changes as they see fit.

For example, Behringher does not support bundles.

And any OSC server may chose to discard any bundles with a time tag < current time.

OSC servers that implement Time tags must be able to have a clock.
jacksoonbrowne is offline   Reply With Quote
Old 03-28-2021, 10:13 PM   #39
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

According to this, the Behringers would be flawless (whole limited), but OSVIIBot would be bound to offer a "never bundle" mode.
-Michael
mschnell is offline   Reply With Quote
Old 06-11-2021, 02:35 AM   #40
flipotto
Human being with feelings
 
flipotto's Avatar
 
Join Date: Feb 2007
Location: VA
Posts: 885
Default OSC X32 REC/PLAY routing?

Very interesting development
Is the x32 REC/PLAY routing defined in osc?
Meaning when I change that mode on the mixer knob(button push) will it send an osc msg?
Conversely, can I send an osc msg to the X32 to toggle between REC/PLAY mode?

I'm trying to toggle between mix in console and mix in the box
https://forum.cockos.com/showpost.ph...postcount=2565
flipotto is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 09:18 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.