View Single Post
Old 02-15-2012, 06:35 AM   #43
schwa's Avatar
Join Date: Mar 2007
Location: NY
Posts: 11,086

Anton9, the OSC control surface has its own state -- it has a currently active track bank, track, fx, fx parameter bank, and fx, which are separate from the selections showing in the REAPER UI. At startup the active track is the master track, and the active FX is the first slot. So sending the message /fxparam/5/value without any prior state will set the 5th parameter of the first FX slot on the master track.

If you want to target some other FX, you can either use messages to change the current FX state (all of the PREV/NEXT/EDIT messages), or use longer patter forms, such as /fx/@/fxparam/@/value to target a different FX slot in the active track, or track/@/fx/@/fxparam/@/value to target a different track.

Also, the current active track and fxparam are always relative to the current track bank and fxparam bank. The idea is, if you have a control surface that can display 16 fx knobs, the message /fxparam/5/value will target the 5th FX parameter. If you send the message NEXT_FX_PARAM_BANK, the message /fxparam/5/value will target the 21st FX parameter.

If your control surface does not have a display limit (because it's software and not a control surface, or for any other reason), the NUM_ messages are irrelevant. Even if NUM_TRACKS is set to 8, the message /track/24/volume will target track 24, as long as the current track bank has not changed.

Last edited by schwa; 02-15-2012 at 06:48 AM.
schwa is offline   Reply With Quote