diff --git a/include/osc58-controlling-ardour-with-osc.html b/include/osc58-controlling-ardour-with-osc.html index e6ba85f6..8ad91057 100644 --- a/include/osc58-controlling-ardour-with-osc.html +++ b/include/osc58-controlling-ardour-with-osc.html @@ -10,13 +10,44 @@ Note: OSC control has changed dramatically since Ardour 4.7. The Path structure has been completely redone, Banking has been introduced, The controller is now able to tell Ardour what kind of feedback it can - work with (including bank size) and two new math styles have been added - to gain controls. If you are using an Ardour version of 4.7 or less, + work with (including bank size) and the gain controls have new math + calculations. If you are using an Ardour version of 4.7 or less, please read Osc control in Ardour 4.7 and prior.

- +

Ardour is probably one of the most OSC-controllable audio applications around, but as with all OSC-controllable apps, you can't do much without @@ -39,7 +70,8 @@ here"/>

Ardour sends any feedback to the port and address that sent any - feedback request. The port does not have to match Ardour's port. In + feedback request or to a port set manually in the setup dialog. + The port does not have to match Ardour's port. In fact it is better not to. This means that Ardour can deal with more than one controller at a time. The two controllers can bank independently and even use different math for faders. This could be @@ -50,7 +82,7 @@ here"/> OSC feedback In Ardour.

-

Control Surface Set Up

+

Control Surface Set Up

Control surface set up allows the controller to tell Ardour about its @@ -65,9 +97,6 @@ here"/> strip's controls are sent (or refreshed) as well. This will also refresh the Master feedback setup.

-

- Surface Port Setting is available in the OSC GUI. -

As of Ardour 5.1, There is now a GUI setup in response to those using tablets with applications such as touchOSC or AndrOSC who need to be @@ -79,24 +108,27 @@ here"/>

If /set_surface is not sent, the default values are used:

These values give the same behaviour as prior versions of Ardour. (or the closest possible)

- - - -
/set_surface bank_size strip_types - feedback fadermode send_page_size plugin_page_size - See below for an explanation of each parameter. -
+ + /set_surface bank_size strip_types + feedback fadermode send_page_size + plugin_page_size port linkset linkid +

+ See below for an explanation of each parameter. +

The /set_surface message may have all values except the last in-line. For example: /set_surface/8/31/8403/0/8 i 16 would be valid. @@ -166,13 +198,23 @@ here"/>

gainmode

- Gainmode is a an int that acts as a bool: + Gainmode is an int:

@@ -205,7 +247,43 @@ here"/>

Plugin page size can also be set with /set_surface/plugin_page_size plugin_page_size.

- +

port

+

+ The port the controller would like to receive it's feedback on. Starting + with Ardour 6.0, the surface can directly set the manual port or set + it's host to auto port mode. +

+

+ The value for port can be 0 for auto port mode or any + port value above 1024. It is suggested not to use Ardour's port number + of 3819 as controllers on the same machine that try to use the same + port will fail. +

+

+ If the surface does not + tell Ardour which port to use, the default is 8000 or the setting + set up in the OSC setup GUI. There can only be one port setting per + host. If that setting is auto, than more than one + controller can be run on that host, but if a manual port is set there + can only be one. In the case of auto mode, the control + surface must set it's receive port to be the same as it's send port. + If that is not possible, then manual port mode must be used. This + allows a smart controller to use a number of ports on the same ip while + a smartphone set up as a personal monitor control can use the default + manual port. +

+

+ The host's port can also be set with /set_surface/port port. +

+

+ Changing the port will remove feedback from a device on the same host + using a different port. +

+

Link set and Link ID

+

+ Please see Linking Surfaces + For more information. +

Querying Ardour for information

The control Surface may wish to control the type a frequency of @@ -213,7 +291,14 @@ here"/> href="@@osc58-querying-ardour"> Querying Ardour with OSC.

- +

Using more than one surface

+

+ Ardour can use more than one surface at a time that both control the + same controls in Ardour. It is also possible to use two surfaces in + concert with each other. See: + Linking Surfaces for more information. +

List of OSC messages

Parameter types show how the value will be used. However, they may @@ -221,9 +306,9 @@ here"/> href="@@osc58-parameter-types"> Parameter Types in OSC.

-

Master or Global messages

+

Master or Global messages

-

Transport Control

+

Transport Control

@@ -249,6 +334,11 @@ here"/> + + @@ -277,7 +367,7 @@ here"/>
/transport_stop Stops a rolling transport
Where seconds is a float (+/-) of the number of seconds to jump
/toggle_click Toggle metronome click on and off
/marker markerWhere marker may be a float or int of the nth marker or a + string with the marker name to locate to (new Ardour 6.0). If the playhead + is at a marker and the marker is unique, the marker at the playhead + will be renamed to the string sent
/add_marker (adds marker to the current transport position)
/remove_marker
+ See OSC Scrub Modes @@ -286,7 +376,7 @@ here"/> OSC Jog Modes
/scrub delta Where delta is a float indicating forward or reverse movement. - See OSC Scrub Modes
/jog delta Where delta is a float indicating forward or reverse movement
/jog/mode mode
-

Recording control

+

Recording control

@@ -296,7 +386,7 @@ here"/>
/toggle_punch_in
Toggles master record enable
-

Transport Information

+

Transport Information

@@ -306,7 +396,7 @@ here"/>
/transport_frame Ardour sends /transport_frame current_frame
Ardour sends /record_enabled recordenable_status
-

Editing-related

+

Editing-related

@@ -315,9 +405,11 @@ here"/> + +
/undo
/save_state (this is the regular Session > Save operation)
/session_name new_nameSet session name to new_name (if new_name is legal and unique)
-

Master and Monitor strip control

+

Master and Monitor strip control

@@ -347,10 +439,15 @@ here"/>
/master/gain dB dB is a float indicating the desired gain in dB
state is an int of 0 or 1 where 1 is mono mode
-

Track specific operations

+

Track specific operations

For each of the following, ssid is the Surface Strip ID for the track

+

+ As of Ardour 6.0, the user may use a subset all available strips. See: + + Making a user selected strip list. +

SSID has a different meaning than RID in Ardour version 4.7 and before. Effectively, banking is always being used and the SSID is generated on @@ -376,6 +473,19 @@ here"/> /use_group state Where state is a float of 1 to use group or 0 to not use group. more info on use_group + /strip/spill ssid + Use strips this strip is grouped with or those that feed this bus + (if this strip is a bus) or that this vca (if this is a VCA) controls. + See Spill Strips for more details + /strip/hide ssid y/n + Where y/n = 1 hide this strip, 0 for show this track. + + Hiding strips. + /strip/name ssid strip_name + where strip_name is a string representing the desired name for the strip + /strip/group ssid group_name + where group_name is a string representing the name of the group desired. + See groups for more details /strip/mute ssid mute_st where mute_st is a bool/int representing the desired mute state of the track /strip/solo ssid solo_st @@ -448,7 +558,7 @@ here"/> /strip/name ssid name where name is a string for the desired name of the track -

Selected Strip Operations

+

Selected Strip Operations

New for Ardour 5, A whole set of operations that work on the selected or expanded strip. @@ -491,6 +601,56 @@ here"/> Expanded. Setting to 0 resets the expansion to follow selection. /select/expand y/n Where y/n = 1 for expanded mode, 0 for Select mode. + /select/hide y/n + Where y/n = 1 hide this strip, 0 for show this track. + + Hiding strips. + /select/name strip_name + where strip_name is a string representing the desired name for the strip + /select/comment comment + where comment is a string representing the desired comment for the strip + /select/group group_name + where group_name is a string representing the name of the group desired. + See groups for more details + /select/group/enable state + where state is an int representing the desired enable state + of the group the selected strip is a part of + /select/group/gain state + where state is an int which sets the gain sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/relative state + where state is an int which sets relative state of thew + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/mute state + where state is an int which sets the mute sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/solo state + where state is an int which sets the solo sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/recenable state + where state is an int which sets the recenable sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/select state + where state is an int which sets the select sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/active state + where state is an int which sets the route active sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/color state + where state is an int which sets the color sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/monitoring state + where state is an int which sets the monitoring sharing of the + group the strip belongs to. See + Track and Bus Groups for more details /select/recenable y/n Where y/n is 1 for enabled and 0 for disabled /select/record_safe y/n @@ -514,7 +674,20 @@ here"/> /select/fader position Where position is an float ranging from 0 to 1 representing the fader control position. /select/db_delta delta - where delta is a float that will increase or decrease the gain of the selected track by the amount of the delta. (Ardour 5.11+) + where delta is a float that will increase or decrease the + gain of the selected track by the amount of the delta. (Ardour 5.11+) + /select/vca name state + where name is a string with the name of the VCA, and + state is an int that determines if the named VCA will control + this strip. (Ardour 6.0) + /select/vca/toggle name + where name is a string with the name of the VCA. This toggles the + use of the named vca with this strip. Any trailing "[_]" will be ignored. + (Ardour 6.0) + /select/spill + show only strips this strip is grouped with or + those that feed this bus or that this vca controls. + See Spill Strips for more details /select/*/automation mode where mode is an int ranging from 0 to 3 representing the desired automation mode for the control. See OSC Automation. @@ -545,6 +718,8 @@ here"/> where delta is an int or float selecting another send as a delta from the current send. /select/plugin_page", delta where delta is an int or float selecting another plugin parameter as a delta from the current parameter. + /select/plugin/activate", state + where state is an int or float with the desired state of the current plugin activation.(new Ardour 6.0) /select/plugin/parameter", plugin parameter value where plugin = nth plugin, parameter = nth parameter and value is a float from 0 to 1 @@ -554,7 +729,85 @@ here"/> for page up and a switch with a value of -1 for page down. An encoder can be used as well. (these commands were added in Ardour version 5.10)

-

Menu actions

+

Using groups with strip and select (new for Ardour 6.0)

+

+ No grouping will occure unless use_group is set either + by using /set_surface/strip_types with the use groups bit set + or by using /use_group i 1. +

+

+ The result for /strip/group or + /select/group is determined by the parameter + passed in the command and the current group and available list of + groups. The group name the control surface sends may be: +

+ +

To create a new group from a strip that is already joined to a group, + the strip must first remove itself from the current group. +

+

Spill Strips

+

/select/spill or /strip/spill + will:

+ +

spill/group, spill/bus or spill/vca can also be used to force + the type of spilling that is done. This may be useful if the strip + is a bus that is a part of a group and the group variation is required.

+

In all cases, if there is a bus or VCA attached to the group of strips + it will be included as well.

+

What is less obvious, is how to return to the normal set of strips. + There are a number of ways of doing so depending on the operator's wishes. + The most obvious way is to use /set_surface/strip_types + to set the strip list as desired. It is expected that a control surface + may have more than one strip types button in any case to see only + inputs or only busses etc and of course one to give a full mix. Another + option is to reselect the custom set of strips with + /strip/custom/mode mode. +

+ +

Every single menu item in Ardour's GUI is accessible via OSC. There is a single common syntax to trigger the action as if it was selected diff --git a/include/osc58-custom-strips.html b/include/osc58-custom-strips.html new file mode 100644 index 00000000..a1946a08 --- /dev/null +++ b/include/osc58-custom-strips.html @@ -0,0 +1,142 @@ + +

+ It is sometimes desirable to work only with a set of strips out of the whole + list of available strips. This could be in any case where there is more than + one engineer and one of them is responsible for only a group of strips such + as all percussion, all sound effects, choir only, orchestra only, etc. +

+

+ New Ardour 6.0 +

+

+ After a strip is added to the custom strip list, it will retain the same + SSID for the life of the session so long as banking is not used. If a strip + is removed it will leave a gap in the SSID list. Custom strip lists do + not survive a session reload and need to be recreated at session start. +

+

+ A custom strip list will only affect the surface that sets it. Any + other surface will continue to operate on all strips or may have it's + own set of custom strips. +

+

+ The commands below control the use of a custom strip set. +

+ + + + + + + + + + +
/strip/listen ssid ...where ssid is an integer or list of integers representing + tracks to add to the custom track list
/strip/ignore ssid ...where ssid is an integer or list of integers representing + tracks to remove from the custom track list
/strip/custom/mode modewhere mode is an integer representing the desired mode + of custom strips.
/strip/custom/clear disables custom strips and clears the previously set custom strip list
+ +

Setting up a custom strip set

+

+ The control surface may set up a custom strip list all at once or one + strip at a time. A control surface that uses banking would probably + be best served by setting up one strip at a time, while one that does + no banking (bank_size = 0) and uses /strip/list would + probably be best served by having them all selected at once. +

+ +

+ /strip/listen will only work with custom enable turned off. + Using /strip/listen while in custom mode will have no effect. +

+

Using the custom strip set

+

+ Once the custom strip set has been set up as shown above, it must be enabled. + This is done from the control surface with the /strip/custom/mode mode + OSC command. Mode may be 0: Off, 1: Use custom + strip set in selected order or 2: Use custom strip set + in mixer order. /strip/list will now show the custom strip list + and and its SSIDs. No more strips may be added to the custom strip list while + in custom mode. To add more strips to the end of the list, first send the + /strip/custom/mode 0 then more strips can be added to the end + of the list. After adding the next strips send the + /strip/custom/mode mode + to re-enable custom mode. It is possible to switch back and forth between + normal and custom mode as desired. +

+

Custom Strip ordering

+

+ The ordering of strips in the custom strip set is affected by both the + custom mode and the bank_size setting for the + surface. +

+

+ A bank_size of 0 is also described as having + banking turned off. In such a case all strips are shown. +

+ +

Removing a strip from the custom strip list

+

+ /strip/ignore ssid will remove that strip from the + custom strip list if custom strip use is enabled. In mode + 1 there will be a blank strip at that SSID and all other + SSIDs will remain the same for no banking. With banking + in use, strip_types are honored and so removed strips + which have no type, will not be shown. +

+

+ /strip/custom/clear will remove + all strips and SSIDs allowing custom strip lists to be restarted from + SSID 1. Custom mode will be set to 0. +

diff --git a/include/osc58-feedback-and-strip-types-values.html b/include/osc58-feedback-and-strip-types-values.html index f64ad7f3..8785ae89 100644 --- a/include/osc58-feedback-and-strip-types-values.html +++ b/include/osc58-feedback-and-strip-types-values.html @@ -68,6 +68,7 @@ or the control should only affect the strip the control is applied to. The /use_group f state command can be used to temporarily change this on the fly. +

Some handy numbers to use might be: 15 (all tracks and busses - 1 + 2 + 4 + 8), 31 @@ -77,9 +78,39 @@ surface with just a bank of fader strips, adding master or monitor would allow access to them within the banks. Selected would be useful for working on a group or a set of user selected strips. Hidden shows - strips the GUI has hidden. + strips the GUI has hidden. As such, a control surface will likely have + a number of buttons with different strip_types for convenience. +

-

+

Audio Aux? say what? I am sure most people will have noticed that they can find no Aux strips in the Ardour mixer. There are none. There are busses that can be used a number of ways. From analog days, @@ -94,7 +125,39 @@ performer would be able to mix their own monitor. The user is free to enable both busses and auxes if they would prefer.

- +

Using hidden strips

+

+ Ardour allows any of it's strips to be hidden so that they do not show + up on the GUI mixer or editor. OSC follows the GUI by default and will + not show hidden strips. As of Ardour 6.0 the OSC commands include + /select/hide y/n for the selected + strip and /strip/hide ssid y/n + for any strip. This allows the control surface to hide or unhide a strip. + What may not be obvious is that hiding a strip makes it disappear and + become unselected. So if a selected strip is hidden, it is no longer + selected and the select channel will show the default select strip + (Master). In order to show a hidden strip, the hidden strips need to + be shown first using the /set_surface/strip_types 512 + command to show only hidden strips. Then use the + /strip/hide SSID 0 or + /select/hide 0 + to show that strip. Of course, because only hidden strips are showing, + the strip you have set to no long hide will seem to vanish. A + /set_surface/strip_types 159 will then show + the default strip types or replace the 159 with the desired strip_types. +

+

+ When hiding more than one strip in a row, check the strip name before + hiding as the strips will move as each strip is hidden just as it does + with the GUI mixer. So to hide strips 5, 6 and 7, the hide button + for ssid 5 is pressed 3 times. A more intuitive method + would be to hide strips from right to left (7, 6 and 5) which will + work as expected. +

+ In short, shown strips can only be hidden when they are viewable and + hidden strip can only shown (or un-hid) when strip_types include hidden + strips. +

feedback

Feedback is an integer made up of bits. The easy way to deal with this is to think of feedback items being worth a number and diff --git a/include/osc58-feedback.html b/include/osc58-feedback.html index b7d82aac..cf741ed9 100644 --- a/include/osc58-feedback.html +++ b/include/osc58-feedback.html @@ -118,6 +118,9 @@ state is true when transport is moving forward but not at speed 1.0 /rewind state state is true when transport speed is less than 0.0 + /marker position + position is a string in the form previous <-> next + or current (new Ardour 6.0) /loop_toggle state state is true when loop mode is true /cancel_all_solos state @@ -183,9 +186,10 @@ where LED is a bool that indicates another bank_up operation is possible. /bank_down LED where LED is a bool that indicates another bank_down operation is possible. - /strip/name ssid track_name - where track_name is a string representing the name of the track - (note there is no corresponding command to set the track name) + /strip/name ssid strip_name + where strip_name is a string representing the name of the strip + /strip/group ssid group_name + where group_name is a string representing the name of the group the track belongs to /strip/mute ssid mute_st where mute_st is a bool/int representing the actual mute state of the track /strip/solo ssid solo_st @@ -241,8 +245,54 @@ /select/send_name sendid send_name where send_name is a string representing the name of the buss this send goes to. + /select/group/enable state + where state is an int representing the current enable state + of the group the selected strip is a part of + /select/group/gain state + where state is an int which shows the gain sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/relative state + where state is an int which shows relative state of thew + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/mute state + where state is an int which shows the mute sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/solo state + where state is an int which shows the solo sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/recenable state + where state is an int which shows the recenable sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/select state + where state is an int which shows the select sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/active state + where state is an int which shows the route active sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/color state + where state is an int which shows the color sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/group/monitoring state + where state is an int which shows the monitoring sharing of the + group the strip belongs to. See + Track and Bus Groups for more details + /select/vcas name state ... + where name is a string with the name of the VCA, and + state is an int that determines if the named VCA will control + this strip. Note that this lists all VCAs in a session. (Ardour 6.0)

Menu actions

+

+ There is no feedback for Menu actions. +

Every single menu item in Ardour's GUI is accessible via OSC. However, there is no provision for returning the state of anything set this way. diff --git a/include/osc58-linking-surfaces.html b/include/osc58-linking-surfaces.html new file mode 100644 index 00000000..a7683c9d --- /dev/null +++ b/include/osc58-linking-surfaces.html @@ -0,0 +1,170 @@ + +

+ As of Ardour 6.0, Ardour provides the possibility of linking two or + more surface to work as one surface. This means that two surfaces, + one with 8 strips and one with 6 strips would look like a single 14 + strip surface. A /bank_up or down on either surface with bank the two + so that they bank in 14 strip increments. +

+

+ Ardour 5.0 to 5.12 can use two surfaces as shown in Example 3. +

+

Surface Linking Concepts

+

+

+

+

Setting Up a Link Set

+

+ There are only two OSC commands needed to set up a Link Set: +

+ + + + + +
/link/set linkset linkidWhere linkset is the Link Set this surface will be added to and + linkid is the Link Id of this surface.
/link/bank_size linkset banksizeWhere linkset is the Link Set this surface will be added to and + banksize is the target bank size for this Link Set. This Link Set + will not operate unless the total strip numbers is banksize.
+

+ It is also possible to send link set and ID values as part of a + /set_surface command. + + /set_surface bank_size strip_types + feedback fadermode send_page_size plugin_page_size + port linkset linkid + +

+

The /link/bank_size command is optional. Ardour defaults + to linking with auto sizing banks where the Link Set + bank size is determined by adding the available surface bank sizes + together. So long as the Link Ids are consecutive, the + Link Set is considered ready. If the surface wants to make + sure all surfaces are present before the Link Set is + ready, the /link/bank_size command will not allow the + Link Set to be ready until the surface bank sizes add up + to the Link Set's bank size. +

+

+ Setting up a linked set of surfaces is a simple as choosing a number + for the Link Set, 1 will work fine if there is + only one linked set of surfaces, and giving each surface a + Link Id. This can be done with the same method as the + /set_surface command is sent or by having each surface send + the /link/set command. As with other commands, the first + parameter (linkset) may be sent inline: /link/set/1 linkid + for those surfaces unable to send multi parameter OSC messages. +

+

Example Multi Device Surfaces

+

Example 1

+

+ Assuming two devices, the left device has 8 strips and very little + else on it's main page or tab. It may have secondary pages or tabs or + a physical control section to access the extra selected strip controls + like send levels or plugin controls. The right device has only 6 + strips because it also has Master and Monitor channel as well as + transport controls. It also has a select section. As part of it's + Global controls it has a Bank up and a bank down button. (there is + nothing stopping the left surface from also having banking buttons) + The left surface will be linkid 1 and the right surface will be + linkid 2. For this example the linkset will be 1. +

+

+ Device 1 will have a "Connect" button that will send: + /set_surface iiiiiiiii 8 159 8323 0 0 0 0 1 1 and the second + device will have two buttons. One will be a "Connect" button that + sends: /set_surface iiii 6 159 8403 0 and the other + will be a "Link" button that will send: /link/set ii 1 2. + These devices use two different methods of setup both to illustrate + their use and because this will allow them to be used unlinked. Device + 1 even as a linked device will operate on it's own as a one + device Link Set. However, device 2 would show + an error condition if device 1 is not present so we have a + seperate "Link" button. This is an optional way of doing things and + both could use just one "Connect" button or both could have a separate + "Link" button. Device 2 could also have an "Unlink" button + that sends: /link/set ii 0 0 if desired. +

+

+ To use these two devices as one, the "Connect" button on both devices and + the "Link" button on the second device are pressed in any order. The two + surfaces will now act as one surface with 14 bankable strips. +

+

Example 2

+

+ This example will be more complex and use a total of five devices. The + first three devices will form Link Set 1 and have 8 strips each. + They are similar to the left device above, but will only show "input" + strips. The last two devices will form Link Set 2. Device 1 + will be similar to the first three devices with 8 strips and the other + will be similar to the 6 strip device in example 1 having Master and + transport controls as well. The devices in Link Set 2 will be set up + to only use bus and VCA strips and so don't need to include record + enable buttons etc. It is expected that all devices have + banking buttons, but at least one surface in each Link Set would have + to have them. +

+

+ Devices 1 to 3 (from left to right) would each have a "Connect" + button that sends: /set_surface iiiiiiiii 8 3 8323 0 0 0 0 1 n + where n is the position or Link Id of that surface from 1 to + 3, left to right. Device 4 would use: /set_surface iiiiiiiii 8 + 156 8323 0 0 0 0 2 1 and device 5 would use: /set_surface + iiiiiiiii 6 156 8403 0 0 0 0 2 2. +

+

+ As before, the "Connect" on each surface is pressed in any order and + the resulting surface would have 24 input strips where the banking + buttons on any of the first three surfaces would bank those three + surfaces 24 strips at a time through the input strips (assuming more + than 24 input strips are available). The last two strips would form + a master and bus section with 14 bus only strips that will bank through + the bus strips (assuming more than 14 bus strips). This combined + surface would have 38 strips (plus Master) all together. +

+

Example 3

+

+ In this example there are two devices as in example 1. However, the + goal is to have only input strips on the left device and only bus strips, + Master and transport controls on the right device. In this case linking + is not needed. The left device would use a "Connect" button that sent: + /set_surface iiii 8 3 8323 0 and the right device would + use a "Connect" button that sent: /set_surface iiii 6 156 8403 0. + The banking buttons on the left surface would bank through the input + channels and the banking buttons on the right surface would bank + through the buses and VCAs. As this example does not use Ardours OSC + linking commands, it will also work with Ardour versions 5.0 to 5.12. +

diff --git a/include/osc58-querying-ardour.html b/include/osc58-querying-ardour.html index 018ded02..f94e28c5 100644 --- a/include/osc58-querying-ardour.html +++ b/include/osc58-querying-ardour.html @@ -25,6 +25,8 @@ Asks for a list of descriptors for plug-in piid on strip ssid /set_surface Ask for the current surface setting. Reply is in the same form as setting the surface would be. + /surface/list + Print a list of known surfaces and Link Sets to the log window.

A list of strips

@@ -181,4 +183,21 @@ access to plug-ins, the /select/plugin/ set of commands will handle most needs.

+

Obtaining a list of surfaces Ardour knows about

+

+ Ardour can work with more than one OSC control surface at a time. + Sometimes it is useful to know the information stored about all + surfaces. Sending /surface/list from any surface or selecting: + Print surface information to Log window from + the Debug dropdown in the OSC setup dialog, + will list all the information Ardour uses to calculate the feedback + it sends. The Log window can be opened from the menu with + Window > Log. + This would be useful information to include with any OSC + related Bug report. The output is printed in this format: +

+

+Surface Output +

diff --git a/include/osc58-using-the-setup-dialog.html b/include/osc58-using-the-setup-dialog.html index 121a7652..171321b0 100644 --- a/include/osc58-using-the-setup-dialog.html +++ b/include/osc58-using-the-setup-dialog.html @@ -12,11 +12,9 @@ Many OSC devices get their IP from a DHCP making it difficult to set an IP in Ardour's OSC settings. Therefore, most of the settings are default settings. Values are set and the next OSC surface to - send an OSC message to Ardour will use those settings. An OSC - surface that has previously sent a message to Ardour will retain the - settings it already had. Any change to a setting will reset all - device settings. A /refresh message will set that device to - any new settings. The use of /set_surface will override all + send an OSC message to Ardour will use those settings. Any change to a + setting will reset all + device settings. The use of /set_surface will override all settings except Port Mode. Port Mode affects all connected surfaces and so all surfaces must use either the set manual port or send OSC messages from the same port they expect to receive @@ -102,9 +100,11 @@ Sets the faders (and sends faders) feedback math to position where a value between 0 and 1 represents the fader position of the same fader in the mixer GUI or dB where the feedback from fader movement will be - returned as a dB value. When the Gain Mode is set to position, the + returned as a dB value. When the Gain Mode is set to position, there + are also options to send the gain in dB either to the channel name, /*/name feedback for the channel will show dB values in text while the - fader is being adjusted and then return the name text. + fader is being adjusted and then return the name text. It can also be + set to send both position and gain or just position.

Debug:

@@ -117,7 +117,10 @@

For debugging purposes this allows logging either all OSC messages - Ardour receives or invalid messages received or none. + Ardour receives or invalid messages received or none. The last option: + Print surface information to Log window prints + the internal information that Ardour uses to create feedback for all + surfaces Ardour knows about.

Preset:

diff --git a/master-doc.txt b/master-doc.txt index b5c092e7..3142f9bc 100644 --- a/master-doc.txt +++ b/master-doc.txt @@ -1792,6 +1792,14 @@ uri: using-control-surfaces/controlling-ardour-with-osc/osc-setup-dialog part: subchapter --- +--- +title: OSC: Linking Surfaces +include: osc58-linking-surfaces.html +link: osc58-linking-surfaces +uri: using-control-surfaces/controlling-ardour-with-osc/linking-surfaces +part: subchapter +--- + --- title: OSC: Querying Ardour include: osc58-querying-ardour.html @@ -1824,6 +1832,14 @@ uri: using-control-surfaces/controlling-ardour-with-osc/jog-modes part: subchapter --- +--- +title: OSC: Custom Strip Lists +include: osc58-custom-strips.html +link: osc58-custom-strips +uri: using-control-surfaces/controlling-ardour-with-osc/custom-strips +part: subchapter +--- + --- title: OSC: Automation include: osc58-automation.html diff --git a/source/images/osc-debug.png b/source/images/osc-debug.png index 7aac0bb0..5eff31a2 100644 Binary files a/source/images/osc-debug.png and b/source/images/osc-debug.png differ diff --git a/source/images/osc-gainmode.png b/source/images/osc-gainmode.png index e5ef235d..72b1fb33 100644 Binary files a/source/images/osc-gainmode.png and b/source/images/osc-gainmode.png differ diff --git a/source/images/osc-strip-types.png b/source/images/osc-strip-types.png index 45f5f71c..3d6ce97f 100644 Binary files a/source/images/osc-strip-types.png and b/source/images/osc-strip-types.png differ diff --git a/source/images/osc-surface-log.png b/source/images/osc-surface-log.png new file mode 100644 index 00000000..df1e6106 Binary files /dev/null and b/source/images/osc-surface-log.png differ