79db43a9022b38080fb3a2ad40b2e2144d32609a
[ardour.git] / libs / ardour / ardour / rc_configuration_vars.h
1 /*
2     Copyright (C) 2000-2007 Paul Davis
3
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with this program; if not, write to the Free Software
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18 */
19
20 /*****************************************************
21     DO NOT USE uint8_t or any other type that resolves
22     to a single char, because the value will be
23     stored incorrectly when serialized. Use int32_t
24     instead and ensure that code correctly limits
25     the value of the variable.
26 *****************************************************/
27
28 /*****************************************************
29     DO dump the config using cfgtool to system_config
30     after modifying this file.
31
32     ./waf && gtk2_ardour/arcfg system_config
33 *****************************************************/
34
35 /* IO connection */
36
37 CONFIG_VARIABLE (bool, auto_connect_standard_busses, "auto-connect-standard-busses", true)
38 /* this variable is used to indicate output mode in Waves Tracks:
39    "Multi Out" == AutoConnectPhysical and "Stereo Out" == AutoConnectMaster
40 */
41 CONFIG_VARIABLE (AutoConnectOption, output_auto_connect, "output-auto-connect", AutoConnectMaster)
42 CONFIG_VARIABLE (AutoConnectOption, input_auto_connect, "input-auto-connect", AutoConnectPhysical)
43 CONFIG_VARIABLE (bool, strict_io, "strict-io", true)
44
45 /* Naming */
46 CONFIG_VARIABLE (TracksAutoNamingRule, tracks_auto_naming, "tracks-auto-naming", UseDefaultNames)
47
48 /* MIDI and MIDI related */
49
50 CONFIG_VARIABLE (bool, trace_midi_input, "trace-midi-input", false)
51 CONFIG_VARIABLE (bool, trace_midi_output, "trace-midi-output", false)
52 CONFIG_VARIABLE (bool, send_mtc, "send-mtc", false)
53 CONFIG_VARIABLE (bool, send_mmc, "send-mmc", true)
54 CONFIG_VARIABLE (bool, send_midi_clock, "send-midi-clock", false)
55 CONFIG_VARIABLE (bool, mmc_control, "mmc-control", true)
56 CONFIG_VARIABLE (bool, midi_feedback, "midi-feedback", false)
57 CONFIG_VARIABLE (int32_t, mmc_receive_device_id, "mmc-receive-device-id", 0x7f)
58 CONFIG_VARIABLE (int32_t, mmc_send_device_id, "mmc-send-device-id", 0)
59 CONFIG_VARIABLE (int32_t, initial_program_change, "initial-program-change", -1)
60 CONFIG_VARIABLE (bool, first_midi_bank_is_zero, "display-first-midi-bank-as-zero", false)
61 CONFIG_VARIABLE (int32_t, inter_scene_gap_frames, "inter-scene-gap-frames", 1)
62 CONFIG_VARIABLE (bool, midi_input_follows_selection, "midi-input-follows-selection", 1)
63
64 /* Timecode and related */
65
66 CONFIG_VARIABLE (int, mtc_qf_speed_tolerance, "mtc-qf-speed-tolerance", 5)
67 CONFIG_VARIABLE (bool, timecode_sync_frame_rate, "timecode-sync-frame-rate", true)
68 #ifdef USE_TRACKS_CODE_FEATURES
69 CONFIG_VARIABLE (bool, timecode_source_is_synced, "timecode-source-is-synced", true)
70 #else
71 CONFIG_VARIABLE (bool, timecode_source_is_synced, "timecode-source-is-synced", false)
72 #endif
73 CONFIG_VARIABLE (bool, timecode_source_2997, "timecode-source-2997", false)
74 #ifdef USE_TRACKS_CODE_FEATURES
75 CONFIG_VARIABLE (SyncSource, sync_source, "sync-source", MTC)
76 #else
77 CONFIG_VARIABLE (SyncSource, sync_source, "sync-source", Engine)
78 #endif
79 CONFIG_VARIABLE (std::string, ltc_source_port, "ltc-source-port", "system:capture_1")
80 CONFIG_VARIABLE (bool, send_ltc, "send-ltc", false)
81 CONFIG_VARIABLE (bool, ltc_send_continuously, "ltc-send-continuously", true)
82 CONFIG_VARIABLE (std::string, ltc_output_port, "ltc-output-port", "")
83 CONFIG_VARIABLE (float, ltc_output_volume, "ltc-output-volume", 0.125893)
84
85 /* control surfaces */
86
87 CONFIG_VARIABLE (uint32_t, feedback_interval_ms,  "feedback-interval-ms", 100)
88 CONFIG_VARIABLE (bool, use_tranzport,  "use-tranzport", false)
89
90 /* disk operations */
91
92 CONFIG_VARIABLE (uint32_t, minimum_disk_read_bytes,  "minimum-disk-read-bytes", ARDOUR::Diskstream::default_disk_read_chunk_frames() * sizeof (ARDOUR::Sample))
93 CONFIG_VARIABLE (uint32_t, minimum_disk_write_bytes,  "minimum-disk-write-bytes", ARDOUR::Diskstream::default_disk_write_chunk_frames() * sizeof (ARDOUR::Sample))
94 CONFIG_VARIABLE (float, midi_readahead,  "midi-readahead", 1.0)
95 CONFIG_VARIABLE (BufferingPreset, buffering_preset, "buffering-preset", Medium)
96 CONFIG_VARIABLE (float, audio_capture_buffer_seconds, "capture-buffer-seconds", 5.0)
97 CONFIG_VARIABLE (float, audio_playback_buffer_seconds, "playback-buffer-seconds", 5.0)
98 CONFIG_VARIABLE (float, midi_track_buffer_seconds, "midi-track-buffer-seconds", 1.0)
99 CONFIG_VARIABLE (uint32_t, disk_choice_space_threshold,  "disk-choice-space-threshold", 57600000)
100 CONFIG_VARIABLE (bool, auto_analyse_audio, "auto-analyse-audio", false)
101 CONFIG_VARIABLE (float, transient_sensitivity, "transient-sensitivity", 50)
102
103 /* OSC */
104
105 CONFIG_VARIABLE (uint32_t, osc_port, "osc-port", 3819)
106 CONFIG_VARIABLE (bool, use_osc, "use-osc", false)
107
108 /* editing related */
109
110 CONFIG_VARIABLE (LayerModel, layer_model, "layer-model", Manual)
111 CONFIG_VARIABLE (bool, automation_follows_regions, "automation-follows-regions", true)
112 CONFIG_VARIABLE (bool, region_boundaries_from_selected_tracks, "region-boundaries-from-selected-tracks", true)
113 CONFIG_VARIABLE (bool, region_boundaries_from_onscreen_tracks, "region-boundaries-from-onscreen_tracks", true)
114 CONFIG_VARIABLE (FadeShape, default_fade_shape, "default-fade-shape", FadeLinear)
115 CONFIG_VARIABLE (RegionSelectionAfterSplit, region_selection_after_split, "region-selection-after-split", None)
116
117 /* monitoring, mute, solo etc */
118
119 #ifdef USE_TRACKS_CODE_FEATURES
120 CONFIG_VARIABLE (bool, mute_affects_pre_fader, "mute-affects-pre-fader", true)
121 #else
122 CONFIG_VARIABLE (bool, mute_affects_pre_fader, "mute-affects-pre-fader", false)
123 #endif
124 CONFIG_VARIABLE (bool, mute_affects_post_fader, "mute-affects-post-fader", true)
125 CONFIG_VARIABLE (bool, mute_affects_control_outs, "mute-affects-control-outs", true)
126 CONFIG_VARIABLE (bool, mute_affects_main_outs, "mute-affects-main-outs", true)
127 CONFIG_VARIABLE (MonitorModel, monitoring_model, "monitoring-model", ExternalMonitoring)
128 CONFIG_VARIABLE (ListenPosition, listen_position, "listen-position", AfterFaderListen)
129 CONFIG_VARIABLE (PFLPosition, pfl_position, "pfl-position", PFLFromAfterProcessors)
130 CONFIG_VARIABLE (AFLPosition, afl_position, "afl-position", AFLFromAfterProcessors)
131 CONFIG_VARIABLE (bool, use_monitor_bus, "use-monitor-bus", false)
132
133 CONFIG_VARIABLE (bool, solo_control_is_listen_control, "solo-control-is-listen-control", false)
134 CONFIG_VARIABLE (bool, exclusive_solo, "exclusive-solo", false)
135 CONFIG_VARIABLE (bool, latched_record_enable, "latched-record-enable", false)
136 CONFIG_VARIABLE (bool, all_safe, "all-safe", false)
137 CONFIG_VARIABLE (bool, show_solo_mutes, "show-solo-mutes", true)
138 CONFIG_VARIABLE (bool, solo_mute_override, "solo-mute-override", false)
139 CONFIG_VARIABLE (bool, tape_machine_mode, "tape-machine-mode", false)
140 CONFIG_VARIABLE (gain_t, solo_mute_gain, "solo-mute-gain", 0.0)
141 CONFIG_VARIABLE (std::string, monitor_bus_preferred_bundle, "monitor-bus-preferred-bundle", "")
142 CONFIG_VARIABLE (bool, quieten_at_speed, "quieten-at-speed", true)
143
144 CONFIG_VARIABLE (bool, link_send_and_route_panner, "link-send-and-route-panner", true)
145 CONFIG_VARIABLE (std::string, midi_audition_synth_uri, "midi-audition-synth-uri", "https://community.ardour.org/node/7596")
146
147 /* click */
148
149 CONFIG_VARIABLE (bool, clicking, "clicking", false)
150 CONFIG_VARIABLE (std::string, click_sound, "click-sound", "")
151 CONFIG_VARIABLE (std::string, click_emphasis_sound, "click-emphasis-sound", "")
152 CONFIG_VARIABLE (gain_t, click_gain, "click-gain", 1.0)
153 CONFIG_VARIABLE (bool, use_click_emphasis, "use-click-emphasis", true)
154
155 /* transport control and related */
156
157 /** if true, we call Processor::flush() on all processors when the transport is stopped.
158  *  Note that processors are still run when the transport is not moving.
159  */
160 CONFIG_VARIABLE (bool, skip_playback, "skip-playback", true)
161 CONFIG_VARIABLE (bool, plugins_stop_with_transport, "plugins-stop-with-transport", false)
162 CONFIG_VARIABLE (bool, stop_recording_on_xrun, "stop-recording-on-xrun", false)
163 CONFIG_VARIABLE (bool, create_xrun_marker, "create-xrun-marker", true)
164 CONFIG_VARIABLE (bool, stop_at_session_end, "stop-at-session-end", false)
165 CONFIG_VARIABLE (bool, seamless_loop, "seamless-loop", false)
166 CONFIG_VARIABLE (float, preroll_seconds, "preroll-seconds", 1.0f)
167 #ifdef USE_TRACKS_CODE_FEATURES
168 CONFIG_VARIABLE (bool, loop_is_mode, "loop-is-mode", true)
169 #else
170 CONFIG_VARIABLE (bool, loop_is_mode, "loop-is-mode", false)
171 #endif
172 CONFIG_VARIABLE (framecnt_t, preroll, "preroll", 0)
173 CONFIG_VARIABLE (framecnt_t, postroll, "postroll", 0)
174 CONFIG_VARIABLE (float, rf_speed, "rf-speed", 2.0f)
175 CONFIG_VARIABLE (float, shuttle_speed_factor, "shuttle-speed-factor", 1.0f) // used for MMC shuttle
176 CONFIG_VARIABLE (float, shuttle_speed_threshold, "shuttle-speed-threshold", 5.0f) // used for MMC shuttle
177 CONFIG_VARIABLE (ShuttleBehaviour, shuttle_behaviour, "shuttle-behaviour", Sprung)
178 CONFIG_VARIABLE (ShuttleUnits, shuttle_units, "shuttle-units", Percentage)
179 CONFIG_VARIABLE (float, shuttle_max_speed, "shuttle-max-speed", 8.0f)
180 CONFIG_VARIABLE (bool, locate_while_waiting_for_sync, "locate-while-waiting-for-sync", false)
181 CONFIG_VARIABLE (bool, disable_disarm_during_roll, "disable-disarm-during-roll", false)
182 #ifdef USE_TRACKS_CODE_FEATURES
183 CONFIG_VARIABLE (AutoReturnTarget, auto_return_target_list, "auto-return-target-list", AutoReturnTarget(LastLocate) )
184 #else
185 CONFIG_VARIABLE (AutoReturnTarget, auto_return_target_list, "auto-return-target-list", AutoReturnTarget(LastLocate|RangeSelectionStart|Loop|RegionSelectionStart))
186 #endif
187
188 /* metering */
189
190 #ifdef USE_TRACKS_CODE_FEATURES
191 CONFIG_VARIABLE (float, meter_falloff, "meter-falloff", 60.0f)
192 CONFIG_VARIABLE (MeterType, meter_type_master, "meter-type-master", MeterPeak)
193 #else
194 CONFIG_VARIABLE (float, meter_falloff, "meter-falloff", 13.3f)
195 CONFIG_VARIABLE (MeterType, meter_type_master, "meter-type-master", MeterK20)
196 #endif
197 CONFIG_VARIABLE (MeterType, meter_type_track, "meter-type-track", MeterPeak)
198 CONFIG_VARIABLE (MeterType, meter_type_bus, "meter-type-bus", MeterPeak)
199
200
201 /* miscellany */
202
203 CONFIG_VARIABLE (bool, try_autostart_engine, "try-autostart-engine", false)
204 CONFIG_VARIABLE (bool, copy_demo_sessions, "copy-demo-sessions", true)
205 CONFIG_VARIABLE (std::string, auditioner_output_left, "auditioner-output-left", "default")
206 CONFIG_VARIABLE (std::string, auditioner_output_right, "auditioner-output-right", "default")
207 CONFIG_VARIABLE (bool, replicate_missing_region_channels, "replicate-missing-region-channels", false)
208 CONFIG_VARIABLE (bool, hiding_groups_deactivates_groups, "hiding-groups-deactivates-groups", true)
209 CONFIG_VARIABLE (bool, verify_remove_last_capture, "verify-remove-last-capture", true)
210 CONFIG_VARIABLE (bool, save_history, "save-history", true)
211 CONFIG_VARIABLE (int32_t, saved_history_depth, "save-history-depth", 20)
212 CONFIG_VARIABLE (int32_t, history_depth, "history-depth", 20)
213 CONFIG_VARIABLE (bool, use_overlap_equivalency, "use-overlap-equivalency", false)
214 CONFIG_VARIABLE (bool, periodic_safety_backups, "periodic-safety-backups", true)
215 CONFIG_VARIABLE (uint32_t, periodic_safety_backup_interval, "periodic-safety-backup-interval", 120)
216 CONFIG_VARIABLE (float, automation_interval_msecs, "automation-interval-msecs", 30)
217 #ifdef __APPLE__
218 CONFIG_VARIABLE_SPECIAL (std::string, default_session_parent_dir, "default-session-parent-dir", "~/Music", poor_mans_glob)
219 #elif defined (PLATFORM_WINDOWS)
220 CONFIG_VARIABLE_SPECIAL (std::string, default_session_parent_dir, "default-session-parent-dir", "~\\Documents", poor_mans_glob)
221 #else
222 CONFIG_VARIABLE_SPECIAL (std::string, default_session_parent_dir, "default-session-parent-dir", "~", poor_mans_glob)
223 #endif
224 CONFIG_VARIABLE (bool, allow_special_bus_removal, "allow-special-bus-removal", false)
225 CONFIG_VARIABLE (int32_t, processor_usage, "processor-usage", -1)
226 CONFIG_VARIABLE (gain_t, max_gain, "max-gain", 2.0) /* +6.0dB */
227 CONFIG_VARIABLE (uint32_t, max_recent_sessions, "max-recent-sessions", 10)
228 CONFIG_VARIABLE (uint32_t, max_recent_templates, "max-recent-templates", 10)
229 CONFIG_VARIABLE (double, automation_thinning_factor, "automation-thinning-factor", 20.0)
230 CONFIG_VARIABLE (std::string, freesound_download_dir, "freesound-download-dir", Glib::get_home_dir() + "/Freesound/snd")
231 CONFIG_VARIABLE (framecnt_t, range_location_minimum, "range-location-minimum", 128) /* samples */
232 CONFIG_VARIABLE (EditMode, edit_mode, "edit-mode", Slide)
233
234 /* plugin related */
235
236 CONFIG_VARIABLE (bool, new_plugins_active, "new-plugins-active", true)
237 CONFIG_VARIABLE (bool, use_plugin_own_gui, "use-plugin-own-gui", true)
238 CONFIG_VARIABLE (bool, use_windows_vst, "use-windows-vst", true)
239 CONFIG_VARIABLE (bool, use_lxvst, "use-lxvst", true)
240 CONFIG_VARIABLE (bool, use_macvst, "use-macvst", true)
241 CONFIG_VARIABLE (bool, discover_vst_on_start, "discover-vst-on-start", false)
242 CONFIG_VARIABLE (bool, verbose_plugin_scan, "verbose-plugin-scan", true)
243 CONFIG_VARIABLE (int, vst_scan_timeout, "vst-scan-timeout", 600) /* deciseconds, per plugin, <= 0 no timeout */
244 CONFIG_VARIABLE (bool, discover_audio_units, "discover-audio-units", false)
245 CONFIG_VARIABLE (bool, ask_replace_instrument, "ask-replace-instrument", true)
246 CONFIG_VARIABLE (bool, ask_setup_instrument, "ask-setup-instrument", true)
247
248 /* custom user plugin paths */
249 CONFIG_VARIABLE (std::string, plugin_path_vst, "plugin-path-vst", "@default@")
250 CONFIG_VARIABLE (std::string, plugin_path_lxvst, "plugin-path-lxvst", "@default@")
251
252 /* denormal management */
253
254 CONFIG_VARIABLE (bool, denormal_protection, "denormal-protection", false)
255 CONFIG_VARIABLE (DenormalModel, denormal_model, "denormal-model", DenormalFTZDAZ)
256
257 /* visibility of various things */
258
259
260 /* web addresses used in the program */
261
262 CONFIG_VARIABLE (std::string, osx_pingback_url, "osx-pingback-url", "http://community.ardour.org/pingback/osx/")
263 CONFIG_VARIABLE (std::string, linux_pingback_url, "linux-pingback-url", "http://community.ardour.org/pingback/linux/")
264 CONFIG_VARIABLE (std::string, windows_pingback_url, "windows-pingback-url", "http://community.ardour.org/pingback/windows/")
265 CONFIG_VARIABLE (std::string, tutorial_manual_url, "tutorial-manual-url", "http://ardour.org/tutorial")
266 CONFIG_VARIABLE (std::string, reference_manual_url, "reference-manual-url", "http://manual.ardour.org/")
267 CONFIG_VARIABLE (std::string, updates_url, "updates-url", "http://ardour.org/whatsnew.html")
268 CONFIG_VARIABLE (std::string, donate_url, "donate-url", "http://ardour.org/donate")
269
270 /* video timeline configuration */
271 CONFIG_VARIABLE (bool, video_advanced_setup, "video-advanced-setup", false)
272 CONFIG_VARIABLE (std::string, video_server_url, "video-server-url", "http://127.0.0.1:1554")
273 #ifndef PLATFORM_WINDOWS
274 CONFIG_VARIABLE (std::string, video_server_docroot, "video-server-docroot", "/")
275 #else
276 CONFIG_VARIABLE (std::string, video_server_docroot, "video-server-docroot", "C:\\")
277 #endif
278 CONFIG_VARIABLE (bool, show_video_export_info, "show-video-export-info", true)
279 CONFIG_VARIABLE (bool, show_video_server_dialog, "show-video-server-dialog", false)
280
281 CONFIG_VARIABLE (float, export_preroll, "export-preroll", 10.0) // seconds
282 CONFIG_VARIABLE (float, export_silence_threshold, "export-silence-threshold", -INFINITY) // dB