/set_surface has two values the user needs to calculate before use. In general these will not be calculated at run time, but beforehand. There may be more than one button with different values to turn various kinds of feedback on or off or to determine which kinds of strips are currently viewed/controlled.

Both ,feedback and strip-types use bitsets to keep track what they are doing. Any number in a computer is made out of bits that are on or off, but we represent them as normal base 10 numbers. Any one bit turned on will add a unique value to the number as a whole. So for each kind of feedback or strip type to be used, that number should be added to the total.

strip_types

strip_types is an integer made up of bits. The easy way to deal with this is to think of strip_types items being worth a number and then adding all those numbers together for a value to send. Strip Types will determine What kind of strips will be included in bank. This would include: Audio, MIDI, busses, VCAs, Master, Monitor and hidden or selected strips.

Selected and Hidden bits are normally not needed as Ardour defaults to showing Selected strips and not showing Hidden strips. The purpose of these two flags is to allow showing only Selected strips or only Hidden strips. Using Hidden with other flags will allow Hidden strips to show inline with other strips.

Some handy numbers to use might be: 15 (all tracks and buses), 31 (add VCAs to that). Master or Monitor strips are generally not useful on a surface that has dedicated controls for these strips as there are /master* and /monitor* commands already. However, on a 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.

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 buses that can be used a number of ways. From analog days, in OSC, a bus is something that gets used as a sub mix before ending up going to Master. An auxiliary bus is used like a separate mixer and it's output goes outside the program or computer to be used as: a monitor mix, a back up recording, or what have you. In OSC where controller strips may be limited, it may be useful not to use up a strip for an aux that is not really a part of the mix. It is also useful to get a list of only aux buses if the control surface is a phone used to provide talent monitor mix control on stage. Each performer would be able to mix their own monitor. The user is free to enable both buses and auxes if they would prefer.

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 then adding all those numbers together for a value to send.

So using a value of 19 would turn on feedback for strip and master controls, but leave meters, timecode and bar/beat feedback off.