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

Reply
 
Thread Tools Display Modes
Old 02-09-2020, 01:31 AM   #41
jrp
Human being with feelings
 
Join Date: Nov 2014
Posts: 194
Default

question 1: Can a C++ extention be made to speak OSC?
question 2: Could it then "grab" info from reaper, for example track color or number of tracks in mixer (just sticking to my usecase), put it in a defined format and send it out to an OSC port?
question 3: could it then (in theory) expose parts of the api to osc messages to make it fit for more users?

Like OSC from device: /ReaperAPI/getSelectedTrack/
C++Plugin answers /ReaperAPI/SelectedTrack 24
jrp is offline   Reply With Quote
Old 02-09-2020, 02:11 AM   #42
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
Default

Quote:
Originally Posted by rncwalker View Post
... fully support OSC ...
This is a question that does not make much sense.
OSC only defines the frame of the massages, but the content of the messages is completely propriety and needs to be individually agreed upon by the manufactures of the software / hardware in question.
-Michael
mschnell is offline   Reply With Quote
Old 02-09-2020, 02:25 AM   #43
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default

Quote:
Originally Posted by rncwalker View Post
Did you ever think, that maybe your hardware does not fully support OSC yet?

Robert
I build the hardware myself, and program the micro controllers. Though, I do not program the library I use, but it's open source and Written by Yotam Mann (The Center for New Music and Audio Technologies, University of California, Berkeley). Its good.

I find it extremely peculiar that *no one* seems to have the same complaints as myself regarding addressing objects without a proper ID. And by that I mean the same thing I've moaning about all this thread - just track number, no track id. Usually I have a good look in the mirror in these situations, since I'm unlikely to be right when no one else agree...
netphreak is offline   Reply With Quote
Old 02-09-2020, 02:29 AM   #44
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default

Quote:
Originally Posted by mschnell View Post
This is a question that does not make much sense.
OSC only defines the frame of the massages, but the content of the messages is completely propriety and needs to be individually agreed upon by the manufactures of the software / hardware in question.
-Michael
100% correct. OSC works fine, the complaints (well, mostly from my side it seems) are aimed against what reaper fill the frames with, and expect to be in the frames received.
netphreak is offline   Reply With Quote
Old 02-09-2020, 02:37 AM   #45
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default

Quote:
Originally Posted by jrp View Post
question 1: Can a C++ extention be made to speak OSC?
question 2: Could it then "grab" info from reaper, for example track color or number of tracks in mixer (just sticking to my usecase), put it in a defined format and send it out to an OSC port?
question 3: could it then (in theory) expose parts of the api to osc messages to make it fit for more users?

Like OSC from device: /ReaperAPI/getSelectedTrack/
C++Plugin answers /ReaperAPI/SelectedTrack 24
As for question 1: yes, no problem. Question 2: since it seems possible via scripts, I can't see why not. 3: sure.

The problem is - how effective will this be? What's the CPU/memory cost. How fast will it be? Could it crash Reaper in unfortunate situations?
netphreak is offline   Reply With Quote
Old 02-09-2020, 03:23 AM   #46
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
Default

Quote:
Originally Posted by netphreak View Post
Questions 1, 2, 3 ...
I build the hardware myself...
In fact "Beyond Reaper" - a Python script - provides the complete internal Reap API via OSC.

Hence theoretically your controller can use it.

If your controller can do Python this even might be rather easy, as there is Python code for the remote site that converts the Reaper API (via OSC) to Python objects.

If there is no Python for your controller, manually doing this might be rather hard work.
-Michael

Last edited by mschnell; 02-09-2020 at 11:27 AM.
mschnell is offline   Reply With Quote
Old 02-09-2020, 03:45 AM   #47
jrp
Human being with feelings
 
Join Date: Nov 2014
Posts: 194
Default

Quote: As for question 1: yes, no problem. Question 2: since it seems possible via scripts, I can't see why not. 3: sure.

The problem is - how effective will this be? What's the CPU/memory cost. How fast will it be? Could it crash Reaper in unfortunate situations?
--- (sorry, cant figure out right now how to quote - still want to write c++

I dont see OSC as a protocoll for doing timing and performance sensitive stuff at all.
Although of course there may be many things people might like to develop that are exaclty that: Timing and performance critical.

In my case iīm really just interested in getting info into lemur about track color, folder state, number of channels shown in mixer.
I will try to dig into beyond reaper or the c++ plugin development. Both seem far away right now...
Am i correct that the C++ extention is the more direct, maybe robust and "up to date" solution?
Sorry for highjacking this thread, but the title subject seems non specific enough.
And at this point:Sorry for my bad spelling, i know i have a problem


Then, to adress the problem of the OP about adressing a speciffic track id via OSC:
Have you considered binding a lua script to (any) OSC-command that selects your track by ID?
A second script could be used to assign any track to an external variable to be used by the first script.
Not great, i know, but maybe a workaround to at least get you going.

Your usecase seems rather special, so i really hadnīt thought about stuff like that. (I do "traditional" composing and multitracking).
But thatīs what Reaper is all about most of the time: Making stuff possible to cover any usecase and provide a perfect workflow in the end, no matter what you are doing.
Only with OSC (and propably some other stuff (midi feddback)) itīs not going sooo far. I totally get your desire.
If you design your perfect workflow, start setting up reaper, doing scripting, building controllers... and then maybe months into doing so you realize that you have hit a wall you would never have expected to be there... thats not nice.
I guess in one way or another we have all been there...



Another thing about building your own devices, just a side note for those who are interested: Your solution using that library you linked looks great. Another excellent option is the Midibox project.
Its over at ucapps.de
German site, but itīs all english.
It provides a framework for handling OSC and Midi and itīs a modular Hardware solution.
The MidiboxNG project is especially usefull for doing OSC handling. It can have itīs own Control elements, translate and process data and next to having midi ins and outs it can also be a USB Host, so you can hook up your (USB) midi devices directly without the need of going into the computer first and thaen routing it back using some fuzzy tool.

Last edited by jrp; 02-09-2020 at 03:57 AM.
jrp is offline   Reply With Quote
Old 02-09-2020, 04:22 AM   #48
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by jrp View Post
question 1: Can a C++ extention be made to speak OSC?
question 2: Could it then "grab" info from reaper, for example track color or number of tracks in mixer (just sticking to my usecase), put it in a defined format and send it out to an OSC port?
question 3: could it then (in theory) expose parts of the api to osc messages to make it fit for more users?
The secret is out

You just described the 50,000 ft view of how CSI does it.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 02-09-2020, 04:28 AM   #49
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by jrp View Post
In my case iīm really just interested in getting info into lemur about track color, folder state, number of channels shown in mixer.
I will try to dig into beyond reaper or the c++ plugin development. Both seem far away right now...
Am i correct that the C++ extention is the more direct, maybe robust and "up to date" solution?
Sorry for highjacking this thread, but the title subject seems non specific enough.
And at this point:Sorry for my bad spelling, i know i have a problem
CSI (which is written in C++) with a mix of Midi and OSC:

https://www.youtube.com/watch?v=byqW...ature=youtu.be
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 02-09-2020, 05:56 AM   #50
jrp
Human being with feelings
 
Join Date: Nov 2014
Posts: 194
Default

Iīll have to take alook at your code, mayne i can figure out a bit of whatīs going on.
I already watched your video and read quite a bit in that huge thread.

The thing is, despite of how much work has gone into csi, i kind of already have taken another route.
I am sure it would be smarter to follow along what you are doing, and i am sure many people will. But i have that diy-gene and i want my controller to act exactly like i imagined it

In my case, reaper is only sending and responding to messages.
All the logic i have scripted in Lemur.
A Lua script handles selecting all my plugins from Lemur.
So the approach is sort of the other way around.
It works great, but i am just missing a few bits of information that would make my template represent what i have on screen even more...

I can already dial in how many tracks i want to display, but it would be nice for example to set my mixer view to 6 tracks automatically if i only have 6 tracks in reaper mixer, color them acordingly, display if a track is folder parent...
Other than that, i am set up and happy.
jrp is offline   Reply With Quote
Old 02-09-2020, 11:34 AM   #51
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
Default

Quote:
Originally Posted by jrp View Post
i kind of already have taken another route.
I really don't understand.

For that project you need two separate functionalities:
1) Controller -> OSC (by the controller software) and
2) OSC -> Reaper actions (by some functionality provided within Reaper).

Both are independent but need to agree on the details of the mutual OSC protocol message content.

Your quote primarily demands (1). So why not use CSI for (2) - defining appropriate configuration files.

-Michael

Last edited by mschnell; 02-09-2020 at 03:16 PM.
mschnell is offline   Reply With Quote
Old 02-09-2020, 12:26 PM   #52
jrp
Human being with feelings
 
Join Date: Nov 2014
Posts: 194
Default

Danke!
I guess the reason is that i simply donīt quite understand CSI yet...
I should sit down, do my homework instead of causing confusion around here!

The standard .ReaperOSC methode has been 95% sufficient for me, so i didnīt really consider to replace it with something else.
But if CSI can bring me these other 5% i will look no further.
jrp is offline   Reply With Quote
Old 02-12-2020, 02:29 AM   #53
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 11,817
Default

An interesting point.

I've been bitching about OSC in Reaper missing send mute capabilities, which would include feedback.

Does anyone know if CSI and Reapers own OSC control capabilities can be used at the same time ?
__________________
Using Latch Preview (Video) - Faderport 16 setup for CSI 1.1 , CSI 3.10
Website
"My ego comes pre-shrunk" - Randy Thom
airon is offline   Reply With Quote
Old 02-12-2020, 05:25 AM   #54
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by airon View Post
An interesting point.

I've been bitching about OSC in Reaper missing send mute capabilities, which would include feedback.

Does anyone know if CSI and Reapers own OSC control capabilities can be used at the same time ?
Maybe, if you use different ports, worth a try
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington 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 02:46 PM.


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