--- layout: default title: OSC: Querying Ardour ---

In order to make a custom controller that knows what strips Ardour has, the controller needs to be able to query Ardour for that information. These set of commands are for smarter control surfaces That have the logic to figure out what to do with the information. These are not of value for mapped controllers like touchOSC and friends. The controller will need to send these queries to ardour as often as it needs this information. It may well make sense to use regular feedback for things that need to be updated often such as position or metering. Here are the commands used to query Ardour:

/strip/list
Ask for a list of strips
/strip/sends ssid
Asks for a list of sends on the strip ssid
/strip/receives ssid
Asks for a list of tracks that have sends to the strip ssid points to
/strip/plugin/list ssid
Asks for a list of plug-ins for strip ssid.
/plugin/descriptor ssid piid
Asks for a list of descriptors for plug-in piid on strip ssid

A list of strips

/strip/list asks Ardour for a list of strips that the current session has. Ardour replies with a message for each strip with the following information:

After all the strip messages have been sent, one final message is sent with:

A bus will not have a record enable and so a bus message will have one less parameter than a track. It is the controllers responsability to deal with this.

A list of sends

/strip/sends ssid asks Ardour for a list of sends for strip number ssid. The reply is sent back to the controller as one message with the following information:

The controller can tell how many sends there are from the number of parameters as each send has 5 parameters and there is one extra for ssid.

A list if tracks that send audio to a bus

/strip/receives ssid will return a list of tracks that have sends to the bus at the ssid. The reply will contain the following information for each track conntected to this bus:

A list of plug-ins for strip

/strip/plugin/list ssid will return a list of plug-ins that strip ssid has. The reply will contain the following information:

A list of a plug-in's parameters

/plugin/descriptor ssid piid will return the plug-in parameters for ppid plug-in on the ssid strip. The reply will contain the following information:

The flag bitset above has been defined as (from lsb):

While this seems complex, it is really not that bad. Minimum, maximum and value will in most cases give you all you need.