Old 02-28-2017, 07:08 PM   #1
leighhunt
Human being with feelings
 
Join Date: Jun 2016
Location: London, UK
Posts: 26
Default Reaper touchscreen controller thread

Hi all,
For those that might be interested...

I've been working somewhat on building a touchscreen controller for Reaper.
More details to be added as and when progress is made.
Touchscreen is a 1920x1060 24" iiyama.
Touch communication is provided by UPDD TUIO, received in a Max patch using TuioClient external.
Graphics in Max are all inside one gui external, which basically acts like a dumb(ish) controller.
Communication at the Reaper end of things is using a vst plugin built using wdl-ol, via osc.
The plugin accesses the reaper api and sends data accordingly when requested from the Max touchscreen external..
I chose the vst route for communicating as the built in osc control surface is limited in the data that it can transmit (so far as I understand it). I was wanting this project to be somewhat more than a typical midi controller can handle.
At the moment it is 4 point touch compatible with the faders, although the display is 10 point touch. This seems to be a limitation or bug in TUIO server or client, I haven't really had the time to investigate too far.
There's a basic animated gif on my blog (far too big for here) if you want to see a rough idea of what is going on.
The Reaper mixer panel is covering what will be a display for two rows of 16 encoders that sit below the screen. I placed it there to show the fader communication.
Anyway, I'll be updating this thread from time to time as this project progresses.
Link here to my blog of the project. More to be added soon.
http://www.collapsingsound.net
leighhunt is offline   Reply With Quote
Old 03-19-2017, 04:26 AM   #2
GP_Hawk
Human being with feelings
 
GP_Hawk's Avatar
 
Join Date: Sep 2008
Posts: 94
Default

Quote:
Originally Posted by leighhunt View Post
Hi all,
For those that might be interested...

I've been working somewhat on building a touchscreen controller for Reaper.
More details to be added as and when progress is made.
Touchscreen is a 1920x1060 24" iiyama.
Touch communication is provided by UPDD TUIO, received in a Max patch using TuioClient external.
Graphics in Max are all inside one gui external, which basically acts like a dumb(ish) controller.
Communication at the Reaper end of things is using a vst plugin built using wdl-ol, via osc.
The plugin accesses the reaper api and sends data accordingly when requested from the Max touchscreen external..
I chose the vst route for communicating as the built in osc control surface is limited in the data that it can transmit (so far as I understand it). I was wanting this project to be somewhat more than a typical midi controller can handle.
At the moment it is 4 point touch compatible with the faders, although the display is 10 point touch. This seems to be a limitation or bug in TUIO server or client, I haven't really had the time to investigate too far.
There's a basic animated gif on my blog (far too big for here) if you want to see a rough idea of what is going on.
The Reaper mixer panel is covering what will be a display for two rows of 16 encoders that sit below the screen. I placed it there to show the fader communication.
Anyway, I'll be updating this thread from time to time as this project progresses.
Link here to my blog of the project. More to be added soon.
http://www.collapsingsound.net
How's this coming along?
GP_Hawk is offline   Reply With Quote
Old 03-19-2017, 01:34 PM   #3
leighhunt
Human being with feelings
 
Join Date: Jun 2016
Location: London, UK
Posts: 26
Default

Quote:
Originally Posted by GP_Hawk View Post
How's this coming along?
Hi Mr Hawk!
I noticed from your post history that you have some interest in touchscreen interaction....
So far, programming is going quite well on this project, though I have spent a lot of time brushing up and learning in a number of areas (it took me a couple of evenings to just get a suitable plugin parameter array set up at the Reaper end of things, which ended up being a combination of std::vector / std::array / std::map and std::tuple - further, I learned how to get C+11 working in my Xcode project - this is all new stuff to me!).

The fader section of the display is working without fault at the moment, including 4 views for:
1 - All Tracks
2 - TCP Tracks
3 - TCP Tracks with minimised folder tracks hidden
4 - MCP Tracks
I can still only access 4 touches using TUIO. I've had a prod around trying to work out what is going on there but to no avail as of yet.
There is a scroll bar at the bottom of the faders for scrolling when there are more than 24 tracks.
I haven't yet implemented adding the master track as of yet
I also have 3 modifiers for fader touches. For my way of thinking they are quite useful:
1 - Fader Fine adjust
2 - Fader to -inf
3 - Fader to 0dB
Track additions, subtractions, names and colours are immediately updated from Reaper when changed.

'Layer' wise, I have settled for 8 possible layers.
for now I am working on the 'Selected Track' Layer.
This gives a sub menu of:
1 - Track Settings
2 - Record FX
3 - Plugins
4 - Sends
5 - Receives
6 - Track Controls
The first sub menu I am working on is for plugins.
This has a horizontal list of plugins, underneath that is a horizontal list of plugin banks (32 parameters per bank), below which lies the display sections for my 2 rows of 16 encoders (2 x deeper pocket dials).

I think so far, the hardest part was working out a logic for drawing in the max-external.

I now have that sorted and pretty fluid with lots of jbox_layers that are invalidated and redrawn only when necessary.
Also, every single gui object in the max-external is instantiated from json files imported on loading, which makes adjusting and trying out things a lot easier.

I am using Reaper 64bit for mac here, and one thing I found out today to my dismay, was that polling 32 parameters in my reaper end plugin scores an immense and unusable cpu hit when bridged 32bit vsts are used, so I'm now getting round to the idea that my old 32 bit plugins are now defunct as far as this project is concerned. I never really liked the way Reaper added an extra window for bridged plugins anyway, so maybe it's for the best to move on to 64 bit plugins only, though I might have to invest a couple of hundred quid in new plugins!

So, a long way to go, but a lot of the underlying structure is tested and working.

I've just uploaded a few pics onto my blog to give an idea (pic size restrictions on the forum here).

Cheers for now,
Leigh
leighhunt 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 08:50 AM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.