|
|
|
06-14-2020, 02:30 AM
|
#721
|
Human being with feelings
Join Date: Jun 2020
Posts: 5
|
OSC in browser
I created a OSC <-> WebSockets bridge that brings REAPER's OSC API to web applications, it can be grabbed from here https://github.com/lucianoiam/reaper-websockets . Includes a JS client library for easy control of some mixer features. A set of mixer-related widgets is on the way...
|
|
|
08-05-2020, 09:53 AM
|
#722
|
Human being with feelings
Join Date: Mar 2018
Posts: 13
|
OSC -> track grouping
Hi,
Do anybody found how to get any message when track is moved to group ( under another track ) ?
Thanx
R.
|
|
|
08-16-2020, 01:16 AM
|
#723
|
Human being with feelings
Join Date: Aug 2020
Location: Germany
Posts: 11
|
Quote:
Originally Posted by galileon
Hi,
Do anybody found how to get any message when track is moved to group ( under another track ) ?
Thanx
R.
|
this would also interest me! thanks
|
|
|
08-24-2020, 03:44 PM
|
#724
|
Human being with feelings
Join Date: Oct 2019
Posts: 7
|
Looking for simple OSC example
I am looking without much luck so far in these forums for an example, or script, etc that would show me how to translate a MIDI note-on and note-off generated by ReaGate into two corresponding OSC paths and sending that. It must be here somewhere I just haven't found it.
I've found and read the .ReaperOSC file, and THINK I know how, but I'd like to avoid any rabbit hole, dumb approach, or reinventing wheels. Any pointer would be appreciated.
|
|
|
08-25-2020, 06:50 AM
|
#725
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,789
|
This can be done by OSCIIBot linked to Reaper by (e.g.) LoopMidi.
Another way might be to move some standard slider or button or so that can be configured to send OSC messages from Reaper (in fact I have no idea which and how to enable the sending of OSC medssages).
To do this you would need to use (e.g.) Midi Conver To CC to create a CC message from the Note, then MidiToReaControlPath to create a Message in the control path and then you can "learn" such a slider/switch/button to it.
-Michael
Last edited by mschnell; 08-25-2020 at 06:57 AM.
|
|
|
08-25-2020, 10:52 AM
|
#726
|
Human being with feelings
Join Date: Oct 2019
Posts: 7
|
Thanks for your quick reply and for these suggestions. I still need to find a solution to the simple problem I described.
|
|
|
09-08-2020, 08:04 AM
|
#727
|
Human being with feelings
Join Date: Jun 2011
Posts: 97
|
Quote:
Originally Posted by schwa
|
Is there a yet a way to poll via OSC for a current value? My thought would be that it would be a simple as not supplying a value for the function.
If a normal command is the request/poll command is (without any value) and reaper would reply Being able to poll a track for it's name or a marker for it's name would be amazeballs.
ATM the biggest issue for me is retrieving the current track and marker counts from a project. I can set how many markers and tracks I'd like to receive information from, but no way to determine how many tracks and markers there are in a project.
Maybe if the were changes to the commands like:
Code:
DEVICE_TRACK_COUNT *
and
Code:
DEVICE_MARKER_COUNT *
Where the * means "how ever many the project has". Also, can these values be changed dynamically?
|
|
|
09-08-2020, 11:39 AM
|
#728
|
Human being with feelings
Join Date: Sep 2020
Posts: 1
|
error pasing
i try to open my project file and it says ( parsing error) and will not open the project please help
. bak file does not load either
Last edited by Ayejay; 09-08-2020 at 11:41 AM.
Reason: put project file in
|
|
|
10-02-2020, 01:51 PM
|
#729
|
Human being with feelings
Join Date: Sep 2020
Posts: 5
|
Quote:
Originally Posted by airon
FR
Smart control resource management.
Nobody can anticipate how many control resources you need for the next mix, which is why consoles have things like focus sections, plugin maps, custom fader groups, group spills(members of group spilled on a set of controls).
In other words, control resources are being reused in different contexts. This is a more general FR, but it applies to OSC as much as it does to midi control sources as well as any natively supported control surface.
The present control resource management is slow to setup because it is buried in submenus and can only be changed one at a time through access to several submenus per parameter.
Default plugin maps can be saved, but you can't use all control resources at your fingertips to do so. If the Mackie control universal is used a control surface, a custom plugin takes over, and the possibility of setting up a default plugin map with that control surface is gone.
I propose to abandon any custom development on your part for control surfaces and instead focus on getting whatever control resources there are available used in a more efficient and useful fashion, and that goes especially for OSC control resources.
The simpler method of accessing plugin parameters is to have a couple of simple methods and controls. You need direct access to these modes plus at least two sets of banking switches in addition to the ones used for track banking(sets) and nudging(single). Each mode access switch toggles in and out of the mode.
- Mode access switches for changing control access of a bunch of control resources to control
- Sends
Bank switches A control access to the next/previous set of sends on all tracks. More stuff in regard to access to control parameters like send mute, prefx/postfx/postfader, send type, send source/target,phase,channel count has to be figured out.
- Plugins
Banking switches A control access to the previous and next plugin
Banking switches B control access to the plugin parameter pages
Usually this type of parameter access is limited to the knobs of one channel on control surfaces.
- Custom plugin maps
Banking switches A control access to the previous and next plugin on the channel(not all channels)
Banking switches B control access to the previous and next pages of plugin parameters.
This kind of plugin control usually takes over a large set of control resources. Most often all controls on sets of four or eight tracks are used.
- Group spills
Spreads all members of group that the currently selected track belongs to on to all track control resources.
Banking switches A control access to the previous and next group.
- VCA Masters
Access all VCA masters and thus give access to
- VCA Master Group Spill(accessed from the VCA Masters mode)
Access the members of the VCA master. This has proven to be highly usefull in almost any show I've had the chance to use this.
- Custom track configurations
First layer picks the track configuration via any control resources selected to do so. It could be any OSC message, a button or touching a fader.
Ok, so this all looks like hardware control surface stuff, but OSC is actually way more flexible.
With OSC, you can setup commands to go along with the mode switches, to flip to a specific page for TouchOSC for example.
The difficult thing here is presenting this to the user so they can set this stuff up, share it, customize it and back it up.
OSC is just perfect for this, since all the feedback stuff is setup anyway. The hardware control surface folks will require one plugin to present the control resources and the feedback paths correctly to the system.
The editor, that you, Cockos, need to provide for this to work, is a difficult project. I realize that it's asking a lot.
The payoff is that nobody will need to be a programmer any longer to create exceptional control solutions. You will multiplied the number of people that can do this by at least a thousand.
All the MCU folks will be able to share setups for plugins, VCA group spills, custom fader maps. Behringer BCR2000 and BCF2000 can share their most efficient setups, without having to become programmers.
Cockos provides the tools to manage the control resources and control feedback, and the users make the rest happen.
|
I love the way you think.
|
|
|
10-16-2020, 07:24 AM
|
#730
|
Human being with feelings
Join Date: Feb 2020
Location: nice (fr)
Posts: 5
|
fx enable/disable
We don't know if [fx] is enable or disabled through OSC, it would be worth to do it, and be able to enable or disable from OSC interface.
|
|
|
10-17-2020, 07:30 AM
|
#731
|
Human being with feelings
Join Date: Feb 2020
Location: nice (fr)
Posts: 5
|
OSC interface messages when on tab switch
The OSC interface send twice all parameters on tab switch. I don't know if it's intentional, it looks like a buggy behavior.
My reaper version is w64 6.14
|
|
|
10-17-2020, 12:02 PM
|
#732
|
Human being with feelings
Join Date: Feb 2020
Location: nice (fr)
Posts: 5
|
Quote:
Originally Posted by patko
The OSC interface send twice all parameters on tab switch. I don't know if it's intentional, it looks like a buggy behavior.
My reaper version is w64 6.14
|
In fact reaper sends all OSC parameters at session closing, that is quite useless. I haven't found an option to prevent this behavior.
So reaper doesn't really send same OSC parameters twice, but send once at session opening and once at session closing, that's why I thought it sent OSC parameters twice at tab switching.
|
|
|
12-23-2020, 06:08 AM
|
#733
|
Human being with feelings
Join Date: Jan 2013
Location: Bochum, Germany
Posts: 103
|
Hi, is there an api to tell reaper that a new OSC device is in use so that it gets all current values sent? Switching banks results in most needed values being sent, but e.g. pan values are not sent, if they are on the default (0). Not sure if this is a bug.
Also,
TRACK_MONITOR b/track/monitor b/track/@/monitor i/track/monitor i/track/@/monitor
feedback is only given sometimes. This seems to be dependent on the state of the button in Reaper.
One more,
FX_BYPASS b/track/@/fx/bypass
Should bypass the whole fx chain. I don't see an API yet that does that.
Last edited by Burtan; 12-23-2020 at 07:19 AM.
|
|
|
01-31-2021, 03:00 PM
|
#734
|
Human being with feelings
Join Date: Mar 2014
Posts: 3
|
Autotouch issues with Ipad
Dear Reaper Users,
I am a long term Reaper user as well but not big poster.
Hopefully I am not going to ask stupid questions.
I am programming an Ipad Mini with Touchosc.
It is working except for 2 things which are related to autotouch mode:
Channel fader is not going into write mode when touched on the Ipad.
Channel send goes into write mode when touched on the Ipad but will not go back to read when released (need to stop playback).
Any ideas?
Last edited by Lorenzo; 01-31-2021 at 03:18 PM.
|
|
|
02-28-2021, 02:50 AM
|
#735
|
Human being with feelings
Join Date: Jan 2013
Location: Bochum, Germany
Posts: 103
|
OSC performance issues. Hey, I'm using this stash project https://stash.reaper.fm/v/33619/Trance%20loop.rpp to do OSC testing. However when the noise track is activated, REAPER reacts pretty slow to incoming messages. Is there a known performance limit?
|
|
|
03-06-2021, 03:01 AM
|
#736
|
Human being with feelings
Join Date: Mar 2018
Posts: 63
|
Any DEVs like to collab on a new OSC plugin
It occured to me not long ago that, for my project, I coukd dump the OSC layer and write a new plugin for reaper to work directly with the API.
I was then thinking what a reasonable interchange language would be. OSC actually works fine here.
So the problem is really just the current state of the OSC implementation
;(
So are there any devs out there that might be interested in a collaboration to make a new OSC csurf plugin?
|
|
|
07-14-2021, 07:02 AM
|
#737
|
Human being with feelings
Join Date: Jul 2021
Posts: 2
|
OSC TimeTag "immediately" has wrong fractional part (endianness issue?)
Hi!
I'm playing around with writing OSC software to control Reaper, and I noticed that (at least in the default configuration) whenever Reaper *emits* an OSC bundle to report its state (for example in response to raw action 41743 -- refresh all control surfaces -- or after starting/stopping playback), the sequence starts like so:
Code:
0x23 0x62 0x75 0x6e 0x64 0x6c 0x65 0x00 // "#bundle" (zero-terminated)
0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 // timetag
The timetag, as parsed according to the spec at https://ccrma.stanford.edu/groups/os...-osc-time-tags , resolves to the following:
seconds = 0
fractional = 16777216
I'm *guessing* that this is meant to be the "immediately" timetag instead, which *should* actually read:
Code:
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
That is, the 0x01 should be the least-significant byte of the fractional part, not the most-significant byte (remember: OSC timetags are two network-endian -- that is, *big-endian* -- 32-bit unsigned ints). Indeed, the spec states The time tag value consisting of 63 zero bits followed by a one in the least signifigant bit is a special case meaning “immediately.”
I don't think it causes any problems with existing control surfaces and software, because detecting seconds=0 is sufficient in most cases to infer "immediately" (unless you intend to time travel to 1900 with your DAW, I guess).
However, this causes me to wonder if maybe Reaper (contrary to the OSC spec) uses *little-endian* uint32 for timetag components, both while sending and receiving, which means I will run into trouble later on. Does anyone know? If so, is a fix planned?
(I suppose I'll find out soon enough in the course of my experiments)
|
|
|
07-14-2021, 09:02 AM
|
#738
|
Human being with feelings
Join Date: Sep 2017
Posts: 998
|
Quote:
Originally Posted by phunkyg
It occured to me not long ago that, for my project, I coukd dump the OSC layer and write a new plugin for reaper to work directly with the API.
I was then thinking what a reasonable interchange language would be. OSC actually works fine here.
So the problem is really just the current state of the OSC implementation
;(
So are there any devs out there that might be interested in a collaboration to make a new OSC csurf plugin?
|
Hey there (also to the person who commented after you)
This is me just trying to play matchmaker here. Have either of you checked out CSI?
It's an open source csurf extension that has a limited OSC implementation but it's a very interesting project with a brilliant developer and a passionate community. Perhaps there is some ground to be gained for everyone by one or both of you checking it out
|
|
|
07-14-2021, 11:34 AM
|
#739
|
Human being with feelings
Join Date: Mar 2018
Posts: 63
|
Quote:
Originally Posted by cjewellstudios
Hey there (also to the person who commented after you)
This is me just trying to play matchmaker here. Have either of you checked out CSI?
It's an open source csurf extension that has a limited OSC implementation but it's a very interesting project with a brilliant developer and a passionate community. Perhaps there is some ground to be gained for everyone by one or both of you checking it out
|
You're not wrong Geoff Waddington and our guys did exchange a few messages, then we all went quiet.
We did get sidetracked in supporting Pro Control devices which sucked up the immediate dev time.
There is absolutely some mileage in this though, at the time I thought CSI might be a much better layer than the supplied OSC csurf
|
|
|
07-14-2021, 08:27 PM
|
#740
|
Human being with feelings
Join Date: Jul 2021
Posts: 2
|
Quote:
Originally Posted by cjewellstudios
Hey there (also to the person who commented after you)
This is me just trying to play matchmaker here. Have either of you checked out CSI?
It's an open source csurf extension that has a limited OSC implementation but it's a very interesting project with a brilliant developer and a passionate community. Perhaps there is some ground to be gained for everyone by one or both of you checking it out
|
Hi! Thanks for the suggestion, but it's not at all what I'm after. I've got a very specific use case that I want to experiment with before I reveal it.
That being said, my post was solely meant as a bug report (i.e. I believe Reaper is in violation of the OSC spec with regard to the representation of the "immediately" timetag). The rest of my development is going smoothly so far.
|
|
|
07-26-2021, 11:38 PM
|
#741
|
Human being with feelings
Join Date: Jun 2019
Posts: 3
|
Kontakt 6.6.0 stuck notes in reaper
After the kontakt update to 6.6.0, in reaper if you use this new 6.6.0 update and you have old midi keyboard, it won't register notes off in kontakt.
Old version of kontakt works fine though.
In this thread on native instruments forum https://www.native-instruments.com/f...reaper.457911/
One user described a solution, maybe in next reaper update this can be fixed, or i will have to buy new midi keyboard
|
|
|
07-29-2021, 10:07 PM
|
#742
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,789
|
I use Kontakt in reaper for live playing and found no such isue after upgrading to 6.6.
It there is a problem with Note_Off as Note_On with vel 0, you can do a JSFX that converts those.
-Michael
|
|
|
08-08-2021, 06:13 AM
|
#743
|
Human being with feelings
Join Date: Jun 2019
Posts: 3
|
Quote:
Originally Posted by mschnell
I use Kontakt in reaper for live playing and found no such isue after upgrading to 6.6.
It there is a problem with Note_Off as Note_On with vel 0, you can do a JSFX that converts those.
-Michael
|
again,this problem is only with old midi keyboards.
Also i use pretty large template, like 300+ tracks so i would rather avoid adding 300 jsx vst to my template.
|
|
|
08-08-2021, 09:34 AM
|
#744
|
Human being with feelings
Join Date: Jul 2007
Location: Netherlands
Posts: 1,203
|
Problem resurfaced after a long time. I have an iPad with TouchOSC. When I start Reaper the midi connections are sleeping. So all OSC messages are transported correctly. But for the cc connections to work I need to open the preferences screen. I don't need to do anything. Just open it and close again. Then everything's fine.
It used to be a problem a long time ago. Then it was solved and now it's there again.I cannot pinpoint it but I think it's since 6.32 or 6.33. it persists on 6.34
|
|
|
08-14-2021, 01:03 PM
|
#745
|
Human being with feelings
Join Date: Feb 2008
Location: So Florida
Posts: 1,395
|
Rewrite Default script
Can I add something to the code so that it works like this with both checked?
https://www.dropbox.com/s/pwr5x45bh0...Learn.PNG?dl=0
Thx, Jeff
__________________
Win 10 I9 20 core 48g Ram always on the latest update
|
|
|
09-06-2021, 10:34 AM
|
#746
|
Human being with feelings
Join Date: Jul 2021
Location: Arizona USA
Posts: 4
|
MASTER_VOLUME Not Sending OSC
I have the latest version of Reaper and using OSC. It seems this OSC configuration line is not working as expected:
MASTER_VOLUME n/master/volume s/master/volume/str
I am able to control the MASTER_VOLUME slider in Reaper using OSC, but I do not receive feedback from Reaper when using the master slider in Reaper. I get no "/str" values what-so-ever either.
In addition I found several OSC "/action" that do not work. They work when I use the action list in Reaper, but not when I send the same OSC to Reaper Example:
/action/14
This should mute the master, but it does nothing. The only way I can toggle mute on the Master track is by selecting tracks and then muting the master track. You can not be on Track 1 and then send "/action/14" or any other Master track "/action/". I feel this is possibly a bug as I see no reason you can not access the Master track no matter what. That's why Reaper places this track "sticky" at the top if you configure it for view. It's a Master track (can we still say that?) and feedback from that track should always be available.
Last edited by ricoinaz; 09-14-2021 at 08:38 AM.
Reason: Found reason for Reaper's way of doing things. Needed to update because of that. It's still a valid post.
|
|
|
10-23-2021, 04:06 PM
|
#747
|
Human being with feelings
Join Date: Feb 2020
Posts: 39
|
Hello, posting my request here:
LAST_TOUCHED_FX_PARAM_NUMBER s/fxparam/last_touched/number/str
Would be nice to be able to access the previous last_touched by saving the index and then calling fxparam/@/value. Any scriptable OSC controller can do it but we are currently missing the ability to get the index of the fxparam. We can get the index of the last touched fx right now, but not the index of the last touched fxparam, at least it's not in the Default.ReaperOSC file.
This would make a faster workflow over having to learn or design everything beforehand. So if an fx has the fxparams of Filter Freq and Filter Q, you can touch Filter Q and Filter Freq in that order and use an XY controller that stores previous last touched parameters, or any other combination of values and controllers.
Hope it makes sense. Thanks.
|
|
|
10-24-2021, 03:33 AM
|
#748
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,789
|
Quote:
Originally Posted by AlbertoV5
revious last touched parameters, or any other combination of values and controllers.
Hope it makes sense. Thanks.
|
Seems totally unrelated to this thread's title.
-Michael
|
|
|
10-25-2021, 09:40 AM
|
#749
|
Human being with feelings
Join Date: Feb 2020
Posts: 39
|
Quote:
Originally Posted by mschnell
Seems totally unrelated to this thread's title.
-Michael
|
Where do I request an OSC message to be implemented then? Thanks.
|
|
|
01-06-2022, 04:12 PM
|
#750
|
Human being with feelings
Join Date: Nov 2015
Posts: 607
|
Here, Alberto, here.
|
|
|
01-06-2022, 08:50 PM
|
#751
|
Human being with feelings
Join Date: Jan 2013
Location: Armenia
Posts: 88
|
Quote:
Originally Posted by ricoinaz
I have the latest version of Reaper and using OSC. It seems this OSC configuration line is not working as expected:
MASTER_VOLUME n/master/volume s/master/volume/str
I am able to control the MASTER_VOLUME slider in Reaper using OSC, but I do not receive feedback from Reaper when using the master slider in Reaper. I get no "/str" values what-so-ever either.
In addition I found several OSC "/action" that do not work. They work when I use the action list in Reaper, but not when I send the same OSC to Reaper Example:
/action/14
This should mute the master, but it does nothing. The only way I can toggle mute on the Master track is by selecting tracks and then muting the master track. You can not be on Track 1 and then send "/action/14" or any other Master track "/action/". I feel this is possibly a bug as I see no reason you can not access the Master track no matter what. That's why Reaper places this track "sticky" at the top if you configure it for view. It's a Master track (can we still say that?) and feedback from that track should always be available.
|
Old bug, seems like fixing OSC bugs is not a priority for like last 5 years...
|
|
|
01-06-2022, 10:46 PM
|
#752
|
Human being with feelings
Join Date: Aug 2009
Posts: 402
|
another problem is when you lock tracks you can still make changes to them via OSC input.. so all the locking features become useless if you use OSC.. hopefully they look at this at some stage..
|
|
|
01-13-2022, 03:40 PM
|
#753
|
Human being with feelings
Join Date: Jun 2021
Location: Moscow, Russia
Posts: 282
|
Sorry if the answer is already somewhere here, but how can I send special “init” message on Reaper initialization, so my TouchOSC device could understand it and make some changes in its interface? I did it on device init itself and now I need to make the same init actions when Reaper loads a new project. Or with other words can I trace somehow by osc messages when Reaper initialized? Thanks!
|
|
|
02-11-2022, 12:08 PM
|
#754
|
Human being with feelings
Join Date: Feb 2022
Posts: 16
|
Hi!
Is there any way to reorder/filter/manually assign fx parameters of a plugin?
I've made a controller that returns the fx parameters of the selected plugin. The issue is that there are VSTs that report hundreds of parameters, leading to endless banking to find what we need, and with no standardization.
OSC is such an awesome protocol, without the limits of feedback that we get with MIDI devices, but without a way to organize all this information, it turns almost useless for some workflows.
I'm still a beginner in OSC, so I'm hoping there's something I'm not aware of that can help with this.
|
|
|
02-19-2022, 11:19 PM
|
#755
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,789
|
I suggest trying ReaPack->ReaLearn .
-Michael
|
|
|
03-02-2022, 05:38 AM
|
#756
|
Human being with feelings
Join Date: Feb 2022
Posts: 16
|
Quote:
Originally Posted by mschnell
I suggest trying ReaPack->ReaLearn .
-Michael
|
Hi Michael!
Thanks for your suggestion. I did try to use ReaLearn, but I was hoping to find a solution that I could integrate into an already implemented and working native OSC controller device. Using ReaLearn would force me to try to merge two different implementations, with the extra work and flexibility compromises involved (assuming it's even possible).
I was looking into a solution using the native implementation of OSC.
|
|
|
03-05-2022, 11:12 PM
|
#757
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,789
|
Of course CSI is another option. But might be a steep process when it comes to a fully custom configuration.
-Michael
|
|
|
03-18-2023, 03:54 PM
|
#758
|
Human being with feelings
Join Date: Jul 2010
Posts: 49
|
Send / receive mute
Hi, it'd be awesome if there was a TRACK_SEND_MUTE & TRACK_RECEIVE_MUTE pattern available, currently the only way to mute sends is to set their volume to -infinity, which isn't ideal. Also I'd like to second the question for a way to query current OSC values e.g. by sending a message with no arguments - I'm aware of the "toggle" mode for patterns (e.g. "t/action/@" in the default config) which would conflict with this, but maybe there could either be a setting which disables toggles without an argument (since they also work with a "1"), or it could be configured on a per-pattern basis (e.g. something like a "q/track/@/name" pattern option). Thanks for reading!
|
|
|
05-17-2023, 06:57 PM
|
#759
|
Human being with feelings
Join Date: Apr 2019
Posts: 12
|
Hello! Is there any way that i can get reaper to send “the current active project title” to touch osc to display the name? This would be amazing as where im using it for live performance and project tabs are very important in this.
|
|
|
07-17-2023, 05:43 PM
|
#760
|
Human being with feelings
Join Date: Jan 2023
Location: Kent Island, MD USA
Posts: 20
|
Sending the current project name to TouchOSC
Quote:
Originally Posted by Koley
Hello! Is there any way that i can get reaper to send “the current active project title” to touch osc to display the name? This would be amazing as where im using it for live performance and project tabs are very important in this.
|
Yes...but it's a little complicated. Here's a boilerplate setup that uses a button to retrieve the current project name. There is also a way to monitor Reaper with a defer loop and update TouchOSC whenever the active project changes; but for now here's the basic approach:
1. Create a button in TouchOSC that, when clicked, sends the OSC message /OSCgetProject with a string argument of 90 (or any unused MIDI CC number). Trigger it with RISE or FALL so it doesn't get sent twice.
2. Create a label to receive the name and add a MIDI message set up as follows: - Receive only, no send, no trigger
- Type: CONTROL CHANGE
- Channel: 16/CONSTANT - I use channel 16 for all TOSC messages, but any will work
- Controller: 90/CONSTANT - or whatever CC you're using
- Value: text/VALUE - this is the only way that TOSC will receive variable control values
- Scale: 0 to 127
3. Use this for the label's Script:
Code:
local str = {}
function onReceiveMIDI(msg, cnx)
local val = msg[3]
if val==0 then
str = {}
elseif val==127 then
self.values.text=table.concat(str)
else
str[#str+1]=string.char(val)
end
return true -- indicates msg is handled
end
4. In Reaper, create a script named OSCgetProject.lua with this code:
Code:
local r = reaper
local SMM = r.StuffMIDIMessage
-- this the device ID for Bridge on my system
local id = 20
-- this is only needed if run locally
r.midi_init(id,-1)
local _,_,_,_,_,_,_,conStr = r.get_action_context()
local CCstr = string.match(conStr,".+:s=(%d+)")
local CC = tonumber(CCstr)
local ProjName = r.GetProjectName(0)
id = id + 16
-- device = 16+(device ID), chan = 0xB0+(16-1)
SMM( id, 0xBF, CC,0)
ProjName:gsub(".", function(c) SMM( id, 0xBF, CC, c:byte()) end)
SMM( id, 0xBF, CC,127)
A few notes:
I use local references for reaper functions because they run faster and are easier to type.
The id is the MIDI device ID for TouchOSC Bridge as defined in Reaper's settings, but you can use any device that is set up in TouchOSC's connections. The line r.midi_init(id,-1) is only needed if you are running TouchOSC locally on a touch screen attached to your computer. It resolves a focus issue that occurs when TouchOSC becomes the active app ( this was a real hair-puller). The channel # starts at 0xB0.
5. Assign a shortcut to the script with Add... in the Action List and tapping the TouchOSC button to send the OSC message.
And that's it, the next time you tap the button in TouchOSC the label should display the project name. If anyone finds this useful and would like to see the version that does monitoring and updates the label when the current project changes, I'll post a GitHub link.
__________________
Windows is your punishment for wanting a Macintosh...
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 04:49 AM.
|