Old 02-07-2015, 11:39 PM   #1
jteh
Human being with feelings
 
Join Date: Apr 2009
Location: Brisbane, Australia
Posts: 7
Default Automating pan/volume from a plug-in

Hi all,

For totally blind users such as myself, controlling the faders with the mouse isn't an option. Therefore, we ideally want this to be possible from the keyboard. REAPER does have nudge actions to do this, but the steps are too small to be useful in most cases. (I know there's an FR to make this configurable.) Thankfully, there are SWS actions with configurable nudge amounts. Unfortunately, while the former impact automation, the latter do not; they only affect overall trim. In API terms, it seems that setting the D_VOL and D_PAN parameters for a track don't handle automation.

After some poking, it seems it may be possible to work around this using CSurf_OnPanChange/CSurf_OnVolumeChange. However, I'm wondering about the relationship between CSurf_SetSurface* and CSurf_On*Change. I'm guessing CSurf_Set* just updates the surface. If I'm correct, does this mean CSurf_On*Change *don't* notify surfaces; i.e. they just change the value? I'm assuming other methods of changing volume/pan *do* notify surfaces? Why would you want CSurf_On*Change to *not* notify surfaces?

Aside from using CSurf_*, is there a cleaner way of doing this that I'm missing? If not, is this a valid feature request (perhaps having D_VOL_AUTO and D_PAN_AUTO or something)?

Thanks!
jteh is offline   Reply With Quote
Old 02-09-2015, 10:40 AM   #2
jteh
Human being with feelings
 
Join Date: Apr 2009
Location: Brisbane, Australia
Posts: 7
Default

With regard to retrieving the automated volume and pan, I just tried implementing a control surface and registering it with csurf_inst. However, it seems that SetSurfaceVolume doesn't get called for REAPER's "Track: Nudge track volume down/up" actions. Is there a reason for this or is this a bug? SetSurfacePan does seem to be called for the pan nudge actions.
jteh is offline   Reply With Quote
Old 02-09-2015, 06:04 PM   #3
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 5,841
Default

Quote:
Originally Posted by jteh View Post
With regard to retrieving the automated volume and pan, I just tried implementing a control surface and registering it with csurf_inst. However, it seems that SetSurfaceVolume doesn't get called for REAPER's "Track: Nudge track volume down/up" actions. Is there a reason for this or is this a bug? SetSurfacePan does seem to be called for the pan nudge actions.
If you already went to the trouble of implementing a control surface plugin, I suppose you could then implement your own volume nudging actions too in that plugin, which would call your control surface object's appropriate methods. This wouldn't be much additional code needed in the plugin. Actually though I am not entirely clear what the control surfaces have to do with your problem...? Do you also have a MIDI control surface you want to work with or did you do the control surface plugin to test this stuff or what?
__________________
For info on Reaper extension plugins (including Xenakios' previous extensions) :
http://sws.mj-s.com/
https://github.com/Jeff0S/sws
--
Xenakios blog :
http://xenakios.wordpress.com/
Xenakios is online now   Reply With Quote
Old 02-09-2015, 06:30 PM   #4
jteh
Human being with feelings
 
Join Date: Apr 2009
Location: Brisbane, Australia
Posts: 7
Default

Quote:
Originally Posted by Xenakios View Post
If you already went to the trouble of implementing a control surface plugin, I suppose you could then implement your own volume nudging actions too in that plugin, which would call your control surface object's appropriate methods.
True, and I'll certainly do this if need be. I'd just prefer to use in-built actions if I can and also wanted to understand whether I was missing something here.

Quote:
Actually though I am not entirely clear what the control surfaces have to do with your problem...? Do you also have a MIDI control surface you want to work with or did you do the control surface plugin to test this stuff or what?
Hmm. My post only really mentioned setting the value. However, there's also a need to get the value. Again, GetSetMediaTrackInfo with D_VOL/D_PAN only gets the trim value, not the automated value. I need the latter. OnSurface*Change does return the new value, but it's sometimes necessary to get the current value without changing it, which you can't do with those functions.
jteh 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:27 AM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.