]> Shamusworld >> Repos - ardour-manual/blob - include/osc58-feedback-and-strip-types-values.html
Remove trailing spaces
[ardour-manual] / include / osc58-feedback-and-strip-types-values.html
1
2 <p><em>/set_surface</em> has two values the user needs to calculate before
3   use. In general these will not be calculated at run time, but
4   beforehand. There may be more than one button with different values
5   to turn various kinds of feedback on or off or to determine which
6   kinds of strips are currently viewed/controlled.
7 </p>
8 <p>Both <em>feedback</em> and <em>strip-types</em> use bitsets to keep
9   track what they are doing. Any number in a computer is made out of
10   bits that are on or off, but we represent them as normal base 10
11   numbers. Any one bit turned on will add a unique value to the
12   number as a whole. So for each kind of feedback or strip type
13   to be used, that number should be added to the total.</p>
14 <h2>strip_types</h2>
15 <p>
16   strip_types is an integer made up of bits. The easy way to
17   deal with this is to think of strip_types items being worth a number and
18   then adding all those numbers together for a value to send.
19   Strip Types will determine What kind of strips will be included in
20   bank. This would include: Audio, MIDI, busses, VCAs, Master, Monitor
21   and hidden or selected strips.
22 </p>
23   <ul>
24         <li>
25                 1: AudioTracks.
26         </li>
27         <li>
28                 2: MidiTracks.
29         </li>
30         <li>
31                 4: AudioBusses.
32         </li>
33         <li>
34                 8: MidiBusses.
35         </li>
36         <li>
37                 16: VCAs.
38         </li>
39         <li>
40                 32: Master.
41         </li>
42         <li>
43                 64: Monitor.
44         </li>
45         <li>
46                 128: Audio Aux.
47         </li>
48         <li>
49                 256: Selected.
50         </li>
51         <li>
52                 512: Hidden.
53         </li>
54         <li>
55                 1024: Use Group.
56         </li>
57   </ul>
58 <p class="note">
59   Selected and Hidden bits are normally not needed as Ardour defaults to
60   showing Selected strips and not showing Hidden strips. The purpose of
61   these two flags is to allow showing only Selected strips or only
62   Hidden strips. Using Hidden with other flags will allow Hidden strips
63   to show inline with other strips.
64 </p>
65 <p class="note" id="use-group">
66         Use Group on will tell ardour that any control on a strip that is part
67         of a group will affect all strips within that group. Default is off
68         or the control should only affect the strip the control is applied to.
69         The <code>/use_group f state</code> command can be used to temporarily
70         change this on the fly.
71 </p>
72 <p>
73   Some handy numbers to use might be: 15 (all tracks and busses -
74   1 + 2 + 4 + 8), 31
75   (add VCAs to that - 15 + 16). Master or Monitor strips are generally
76   not useful on a surface that has dedicated controls for these strips
77   as there are /master* and /monitor* commands already. However, on a
78   surface with just a bank of fader strips, adding master or monitor
79   would allow access to them within the banks. Selected would be useful
80   for working on a group or a set of user selected strips. Hidden shows
81   strips the GUI has hidden. As such, a control surface will likely have
82   a number of buttons with different strip_types for convenience.
83   <ul>
84           <li>
85                 Mixer - All strip types <kbd class="osc">/set_surface/strip_types 159</kbd>
86           </li>
87           <li>
88                 Audio Tracks - Just Audio tracks that can record <kbd class="osc">/set_surface/strip_types 1</kbd>
89           </li>
90           <li>
91                 MIDI Tracks - Tracks with at least 1 MIDI input that can record
92                 <kbd class="osc">/set_surface/strip_types 2</kbd>
93           </li>
94           <li>
95                 Busses - A mix of all busses, possibly including VCAs
96                 <kbd class="osc">/set_surface/strip_types 156</kbd>
97           </li>
98           <li>
99                 Selected - All strips that are currently selected
100                 <kbd class="osc">/set_surface/strip_types 256</kbd>
101           </li>
102           <li>
103                 Hidden - All hidden strips <kbd class="osc">/set_surface/strip_types 512</kbd>
104           </li>
105           <li>
106                 Custom - see <a href="@@osc58-custom-strips">
107                 Making a user selected strip list.</a>
108                 <kbd class="osc">/strip/custom/mode 1</kbd>
109           </li>
110
111   </ul>
112 </p>
113 <p class="note">
114   Audio Aux? say what? I am sure most people will have noticed that they
115   can find no <em>Aux</em> strips in the Ardour mixer. There are none.
116   There are busses that can be used a number of ways. From analog days,
117   in OSC, a bus is something that gets used as a sub mix before ending up
118   going to Master. An auxiliary bus is used like a separate mixer and
119   its output goes outside the program or computer to be used as:
120   a monitor mix, a back up recording, or what have you. In OSC where
121   controller strips may be limited, it may be useful not to use up a
122   strip for an aux that is not really a part of the mix. It is also
123   useful to get a list of only aux busses if the control surface is a
124   phone used to provide talent monitor mix control on stage. Each
125   performer would be able to mix their own monitor. The user is free
126   to enable both busses and auxes if they would prefer.
127 </p>
128 <h3 id="hidden">Using hidden strips</h3>
129 <p>
130         Ardour allows any of it's strips to be hidden so that they do not show
131         up on the GUI mixer or editor. OSC follows the GUI by default and will
132         not show hidden strips. As of Ardour 6.0 the OSC commands include
133         <kbd class="osc">/select/hide <em>y/n</em></kbd> for the selected
134         strip and <kbd class="osc">/strip/hide <em>ssid</em> <em>y/n</em></kbd>
135         for any strip. This allows the control surface to hide or unhide a strip.
136         What may not be obvious is that hiding a strip makes it disappear and
137         become unselected. So if a selected strip is hidden, it is no longer
138         selected and the select channel will show the default select strip
139         (Master). In order to show a hidden strip, the hidden strips need to
140         be shown first using the <kbd class="osc">/set_surface/strip_types 512</kbd>
141         command to show only hidden strips. Then use the
142         <kbd class="osc">/strip/hide <em>SSID</em> 0</kbd> or
143         <kbd class="osc">/select/hide 0</kbd>
144         to show that strip. Of course, because only hidden strips are showing,
145         the strip you have set to no long hide will seem to vanish. A
146         <kbd class="osc">/set_surface/strip_types 159</kbd> will then show
147         the default strip types or replace the 159 with the desired strip_types.
148 </p>
149 <p class="note">
150         When hiding more than one strip in a row, check the strip name before
151         hiding as the strips will move as each strip is hidden just as it does
152         with the GUI mixer. So to hide strips 5, 6 and 7, the hide button
153         for <code>ssid</code> 5 is pressed 3 times. A more intuitive method
154         would be to hide strips from right to left (7, 6 and 5) which will
155         work as expected.
156 <p>
157         In short, shown strips can only be hidden when they are viewable and
158         hidden strip can only shown (or un-hid) when strip_types include hidden
159         strips.
160 </p>
161 <h2 id="feedback">feedback</h2>
162 <p>Feedback is an integer made up of bits. The easy way to
163   deal with this is to think of feedback items being worth a number and
164   then adding all those numbers together for a value to send.
165 </p>
166   <ul>
167         <li>
168                 1: Button status for strips.
169         </li>
170         <li>
171                 2: Variable control values for strips.
172         </li>
173         <li>
174                 4: Send SSID as path extension.
175         </li>
176         <li>
177                 8: heartbeat to surface.
178         </li>
179         <li>
180                 16: Enable master section feedback.
181         </li>
182         <li>
183                 32: Send Bar and Beat.
184         </li>
185         <li>
186                 64: Send timecode.
187         </li>
188         <li>
189                 128: Send meter as dB (-193 to +6) or 0 to 1 depending on gainmode
190         </li>
191         <li>
192                 256: Send meter a 16 bit value where each bit is a level
193                 and all bits of lower level are on. For use in a LED strip. This
194                 will not work if the above option is turned on.
195         </li>
196         <li>
197                 512: Send signal present, true if level is higher than -40dB
198         </li>
199         <li>
200                 1024: Send position in samples
201         </li>
202         <li>
203                 2048: Send position in time, hours, minutes, seconds and milliseconds
204         </li>
205         <li>
206                 8192: Turn on select channel feedback
207         </li>
208         <li>
209                 16384: Use OSC 1.0 /reply instead of #reply
210         </li>
211   </ul>
212 <p>
213   So using a value of 19 (1 + 2 + 16) would turn on feedback for strip
214   and master controls, but leave meters, timecode and bar/beat feedback off.
215 </p>
216