X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fosc58-feedback.html;fp=include%2Fosc58-feedback.html;h=380e993d45380fff3e88d7969ffb9baed44307bf;hb=2098e011e638b5c86c56e68df7757975fc4d728f;hp=0000000000000000000000000000000000000000;hpb=0e127ce41d7120d505f3aa9ae18dce679f403a3f;p=ardour-manual diff --git a/include/osc58-feedback.html b/include/osc58-feedback.html new file mode 100644 index 0000000..380e993 --- /dev/null +++ b/include/osc58-feedback.html @@ -0,0 +1,240 @@ + +

+ Feedback from the Ardour to the the control surface is very useful for + a number of things. Motor faders need to know where the the track + they have been attached to is at before they were assigned otherwise + the DAW fader will jump to where the controller fader is. Likewise, + the buttons on each strip need to know what their value is so they can + light their LED correctly. Transport controls should let you know if + they are active too. This is what feedback is all about. +

+

+ Ardour does feedback by sending the same path back that is used to + control the same function. As such any controls that have feedback + have a parameter that is the value of the control or it's state + (on or off). In the case of OSC paths listed on the main OSC page + as having no parameter, if they have feedback, they will also work + with a 1 for button press and 0 for button release. This is because + many OSC controllers will only use exactly the same path for feedback + as for control. For example: +

+ +
+
/transport_stop
+
+
+

can be used also in the form:

+ +
+
/transport_stop press
+
where press is an int/bool indicating if the button is pressed or not.
+
+ +

+ The feedback does not have the same meaning as the control message. + Where the button release sent to Ardour will be ignored and has no + meaning. Both states have meaning in feedback to the controller. + The feedback will be: +

+ +
+
/transport_stop state
+
where state is an int/bool indicating if the transport is stopped or not.
+
+

+ With feedback turned on, OSC control commands that try to change a + control that does not exist will get feedback that resets that control + to off. For example, sending a /strip/recenable to a buss will not work + and Ardour will try to turn the controller LED off in that case. Also + note that Pan operation may be limited by pan width in some cases. + That is with pan width at 100% (or -100%) there is no pan position + movement available. +

+

+ It may come as a surprise, but feedback often generates more network + traffic than control itself does. Some things are more obvious like + head position or meters. But even a simple button push like transport + start sends not only a signal to turn on the play LED, but also one to + turn off the stop LED, the Rewind LED, the Fast Forward LED and the + Loop LED. That is still minor, think instead of a surface refresh + such as happens when the surface is first connected and then most of + that happens every time the fader strips are banked. This is why + feedback is enabled in sections so that as little feedback as is + actually needed is sent. This is also a consideration if the surface + is connected via wifi. +

+

List of OSC feedback messages

+ +

Feedback only

+

+ These messages are feedback only. They are sent as status from Ardour + and some of them may be enabled separately from other feedback. See: + + Calculating Feedback and Strip-types Values. +

+

+ See strip section below for info about ssid and wrapping it into the + path. Also /master and /monitor support what the /strip does. +

+

+ In the case where Gainmode is set to position, the track name will + show the dB value while values are changing. +

+
+
/strip/name ssid track_name
+
where track_name is a string representing the name of the track
+
/session_name session_name
+
where session_name is a string representing the name of the session
+
/strip/meter ssid meter
+
where meter is a value repesenting the current audio level. + (the exact math used is determined by the feedback bits set)
+
/strip/signal ssid signal
+
where signal is a float indicating the instantaneous + audio level is -40dB or higher.
+
/position/smpte time
+
where time is a string with the current play head time. Seconds as per smpte.
+
/position/bbt beat
+
where beat is a string with the current play head bar/beat.
+
/position/time time
+
where time is a string with the current play head time. Seconds are in milliseconds
+
/position/samples samples
+
where samples is a string with the current play head position in samples.
+
/heartbeat LED
+
where LED is a float that cycles 1/0 at 1 second intervals.
+
/record_tally state
+
Some record enable is true or "ready to record". For a "Recording" sign at studio door.
+
+ +

Transport Control

+
+
/transport_stop state
+
state is true when transport is stopped
+
/transport_play state
+
state is true when transport speed is 1.0
+
/ffwd state
+
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
+
/loop_toggle state
+
state is true when loop mode is true
+
/cancel_all_solos state
+
Where state true indicates there are active solos that can be canceled.
+
+ +

Recording control

+
+ +
/rec_enable_toggle state
+
Master record enabled.
+
+ +

Master and monitor strips

+

+ Master and monitor strips are similar to track strips but do not use + the SSID. Rather they use their name as part of the path: +

+
+
/master/gain dB
+
where dB is a float ranging from -193 to +6 representing the actual gain of master in dB
+
/master/fader position
+
where position is an int ranging from 0 to 1023 representing the fader control position
+
/master/trimdB dB
+
where dB is a float ranging from -20 to +20 representing the actual trim for master in dB
+
/master/pan_stereo_position position
+
where position is a float ranging from 0 to 1 representing the actual pan position for master
+
/master/mute yn
+
where yn is a bool/int representing the actual mute state of the Master strip
+
/monitor/gain dB
+
where dB is a float ranging from -193 to 6 representing the actual gain of monitor in dB
+
/monitor/fader position
+
where position is an int ranging from 0 to 1023 representing the fader control position
+
+ +

Track specific operations

+

+ For each of the following, ssid is the surface strip ID for the track +

+

+ Some Surfaces (many Android applets) are not able to deal with more + than one parameter in a command. However, the two parameter commands + below can also be sent as /strip/command/ssid param. Feedback can be + set to match this with the /set_surface/feedback state + command. See + Calculating Feedback and Strip-types Values. +

+ +
+
/bank_up LED
+
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 coresponding command to set the track name)
+
/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
+
where solo_st is a bool/int representing the actual solo state of the track
+
/strip/monitor_input ssid monitor_st
+
where monitor_st is a bool/int. True/1 meaning the track is force to monitor input
+
/strip/monitor_disk ssid monitor_st
+
where monitor_st is a bool/int. True/1 meaning the track is force to monitor disk, + where both disk and input are false/0, auto monitoring is used.
+
/strip/recenable ssid rec_st
+
where rec_st is a bool/int representing the actual rec state of the track
+
/strip/record_safe ssid rec_st
+
where rec_st is a bool/int representing the actual record safe state of the track
+
/strip/gain ssid gain
+
where gain is a float ranging from -193 to 6 representing the actual gain of the track in dB.
+
/strip/fader ssid position
+
where position is an float ranging from 0 to 1 representing the actual fader position of the track.
+
/strip/trimdB ssid trim_db
+
where trim_db is a float ranging from -20 to 20 representing the actual trim of the track in dB.
+
/strip/pan_stereo_position ssid position
+
where position is a float ranging from 0 to 1 representing the actual pan position of the track
+
+

Selection Operations

+

+ Selection feedback is the same as for strips, only the path changes + from /strip to /select and there is no ssid. + there are some extra feedback and commands that will be listed here. +

+
+
/select/n_inputs number
+
where number number of inputs for this strip
+
/select/n_outputs number
+
where number number of outputs for this strip
+
/select/comment text
+
where text is the strip comment
+
/select/solo_iso state
+
where state is a bool/int representing the Actual solo isolate state of the track
+
/select/solo_safe state
+
where state is a bool/int representing the actual solo safe/lock state of the track
+
/select/polarity invert
+
where invert is a bool/int representing the actual polarity of the track
+
/select/pan_stereo_width width
+
where width is a float ranging from 0 to 1 representing the actual pan width of the track
+
/select/send_gain", sendid send_gain
+
where sendid = nth_send, send_gainis a float + ranging from -193 to +6 representing the actual gain in dB for the send
+
/select/send_fader", sendid send_gain
+
where sendid = nth_send, send_gainis a float + ranging from 0 to 1 representing the actual position for the send as a fader
+
/select/send_name sendid send_name
+
where send_name is a string representing the name of the buss + this send goes to.
+
+

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. + This is not a bad thing as most menu items either do not have an on/off + state or that state is quite visible. Binding that affect other parameters + that OSC does track will show on those OSC controls. Examples of this + might be track record enable for tracks 1 to 32, play or stop. +

+