13
0
Commit Graph

34395 Commits

Author SHA1 Message Date
5f3cd26d02
Cleanup at exit, delete duplicate_routes_dialog 2022-01-24 21:25:20 +01:00
bdb91a434a
Simplify call to find_route_name()
Use std::string directly. There's no need to create a temporary
std::string from a char* when the API can use it directly.
2022-01-24 21:25:20 +01:00
7128c9958f
Fix crash when duplicating track(s)
Compare to PluginInsert::set_state(). The sidechain must not
inherit the name from the template track. That leads
to port-name ambiguities.

Also later there will be a crash when ::update_sidechain_name()
calls IO::set_name since: _name is not found in _current_name.
2022-01-24 21:25:20 +01:00
4c433106a4 add interview mode to preferences and fix up implementation 2022-01-24 11:29:36 -07:00
8a310a748a add new config variable for interview-editing
If enabled, this prevents range-selection from propagating across
all tracks when RippleAll is set
2022-01-24 11:29:36 -07:00
b6b9d9231b
Trigger page, slot property layout hacks
The layout should eventually really be simplified.
Use a HBox, remove nested tables, get rid of tables with only
one Frame inside. etc.
2022-01-24 19:28:58 +01:00
5b5d8e72f1
Tweak TB layout: same height for all slot-property frames 2022-01-24 18:53:58 +01:00
9b224a79d4
Mixbus prefers stereo-tracks when importing files as triggers 2022-01-24 18:52:51 +01:00
1c5cfdad82
..but there is a Temporal::timecnt_t modulo operation 2022-01-24 06:51:28 +01:00
dd0dcd6d59
timepos_t modulo operator is defined but not implemented 2022-01-24 06:50:52 +01:00
90ff5de6e3
Add Lua bindings for libtemporal type operations
This allows to use standard arithmetic (+ - * / %) and
relational (< <= ==) operations on Temporal::timepos_t
and Temporal::timecnt_t class instances.

Furthermore `print()` outputs the actual value (no longer
user-data pointer to the instance).
2022-01-24 06:23:16 +01:00
d51a1ccd99
Add API to modify Lua Metatable and set Metamethods
This allows to map C++ operators to be used as Lua
arithmetic and relational operations.
2022-01-24 06:23:16 +01:00
00aec4f91e Trigger page: changes to cue-recording behavior (see comments) 2022-01-23 20:24:44 -06:00
dab9f8d226 trigger page: theme the rec-enable button 2022-01-23 20:24:44 -06:00
f35cb6da8f trigger page: cue recording should be disabled by default 2022-01-23 20:24:44 -06:00
9e48633b82 trigger page: trigger cue buttons red when cues are record-enabled 2022-01-23 20:24:44 -06:00
e2b9995bb0 trigger_ui: fix typo 2022-01-23 20:24:44 -06:00
c72b6fc930 trigger page: slightly differentiate the rows of cues by color 2022-01-23 20:24:44 -06:00
92f3681977
minor translation fix -- #8862 2022-01-23 16:27:01 +01:00
fea76a4adf fix thinko in cleaning up of XML nodes in Session::memento_command_factory()
"child" is not an independent object, but points to either before or after, both of which have
already been deleted
2022-01-23 07:46:45 -07:00
Mads Kiilerich
6ff1d86cad wscript: improve configure messages slightly 2022-01-22 22:19:07 +01:00
Mads Kiilerich
8bb91099c5 wscript: drop configure statements already present in the top level wscript
Avoid repeated pointless configure messages like:
Checking for 'g++' (C++ compiler!)                   : /usr/lib64/ccache/g++
Checking for 'gcc' (C compiler)                      : /usr/lib64/ccache/gcc
2022-01-22 22:19:03 +01:00
Mads Kiilerich
7f6ce9a010 sndfile: Fix skipping of first character of file names in error logging.
Logs for a file named ABCDEF.flac showed up as

  2022-01-19T16:31:55 [ERROR]: SndFileSource: could not seek to sample 90059776 within BCDEF.flac (No Error.)

So, evidently, there is no need for the substr(1).

_name is a PBD::Property<string> which already uses .val() for <<.

The same pattern is found and fixed in sndfilesource.cc and
coreaudiosource.cc .
2022-01-22 21:48:40 +01:00
Mads Kiilerich
197ec7a943 vst2: drop unused vst2_suffix static function
Address build warning:

../libs/fst/../ardour/vst2_scan.cc:549:20: warning: ‘std::string vst2_suffix()’ defined but not used [-Wunused-function]
  549 | static std::string vst2_suffix () {
      |                    ^~~~~~~~~~~
2022-01-22 20:26:50 +01:00
Mads Kiilerich
a55ee74c4e i18n: Don't localize "" - that is a special gettext string
Address build warnings:
audio_clock.cc:911: warning: Empty msgid.  It is reserved by GNU gettext:
                             gettext("") returns the header entry with
                             meta information, not the empty string.
audio_clock.cc:912: warning: Empty msgid.  It is reserved by GNU gettext:
                             gettext("") returns the header entry with
                             meta information, not the empty string.
session_dialog.cc:604: warning: Empty msgid.  It is reserved by GNU gettext:
                                gettext("") returns the header entry with
                                meta information, not the empty string.
session_dialog.cc:605: warning: Empty msgid.  It is reserved by GNU gettext:
                                gettext("") returns the header entry with
                                meta information, not the empty string.

Use ("") instead of _("") to try to indicate syntactically that
localization markup intentionally has been left out.
2022-01-22 20:26:50 +01:00
f9f3f598c4
Address rare race condition when creating sidechain inputs
Do not run the sidechaing processor before the processor
was configured. This ensure that Route::configure_processors()
has completed and ensure_buffers() was called.

Otherwise it may happen Sidechain::run could request a buffer
that is n/a (BufferSet::get_available assertion, see also 687149d8d2)
2022-01-22 19:26:27 +01:00
0e6561b009
Fix Thread & Lock issues when adding Triggerbox w/sidechain
Track::init() must not call `add_processor` directly.
The track is not in the process graph, yet and hence various
calls (e.g. lock graph, update latency etc) are not applicable.

Furthermore ::add_midi_sidechain() calls IO::add_port()
which takes the process-lock.

The solution is to create the Triggerbox early on and let Route::init
deal with it like any other internal processors.
2022-01-22 04:20:55 +01:00
687149d8d2
Require Session MIDI buffer for Triggerbox sidechain
This fixes an issue when adding a MIDI track, but there there
are no session-buffers for it, leading to:

ARDOUR::Buffer& ARDOUR::BufferSet::get_available(ARDOUR::DataType, size_t): Assertioni < _available.get(type)' failed.
2022-01-22 04:20:54 +01:00
b3f524a78a Ruler markers: less drastic highlights in ruler bars 2022-01-21 19:25:33 -06:00
d6815d7e40 trigger page: rough-in a control for Cue Recording 2022-01-21 17:45:26 -06:00
094fbfa132 trigger page: shrink Cue column to minimum (?) 2022-01-21 17:45:26 -06:00
b0a2d678dc trigger_ui: implement direct-Jump actions from trigger slots; context-menu and icons 2022-01-21 17:45:26 -06:00
8ed6f685cf trigger_ui: remove Jump action from trigger-master (column), seems pointless? 2022-01-21 17:45:26 -06:00
f62c4908e0 trigger_ui: implement direct-Jump actions for the slot properties (left&right FA) 2022-01-21 17:45:26 -06:00
a23f3aec50 trigger_ui: implement direct Jump actions for Cues (rows) 2022-01-21 17:45:26 -06:00
fc9f796257
Revert "Process-lock is required when changing processors"
This reverts commit 0a213e71b3.
which needs a better solution to prevent deadlock in case the lock is
already taken.
2022-01-22 00:31:54 +01:00
0a213e71b3
Process-lock is required when changing processors
This is somewhat unfortunate, since session.cc also takes the
lock shortly afterward to call ->ensure_io()

This should be consolidated before release.
2022-01-22 00:06:13 +01:00
2fa8c7cd42 triggerbox: if any cues were recorded, remove all existing cue markers in transport-roll-range before adding new ones 2022-01-21 13:08:47 -07:00
fd3ddce80a do not play existing cue markers while recording cues 2022-01-21 10:55:55 -07:00
e14acfc07d prevent multiple cue markers at the same location 2022-01-21 10:55:55 -07:00
76f4813ee6 triggerbox: experimentally enable cue recording by default 2022-01-21 10:55:55 -07:00
b023b97538 triggerbox: flush newly recorded cue markers back to RT context 2022-01-21 10:55:55 -07:00
d830800ed9 triggerbox: add flush-at-transport-stop from recorded cues to locations 2022-01-21 10:55:54 -07:00
8d1684e1f7 triggerbox: store cue bangs in process thread when discovered 2022-01-21 10:55:54 -07:00
9abf6bc260 triggerbox: introduce member var to control cue recording 2022-01-21 10:55:54 -07:00
f63c049d87 triggerbox: add struct and ringbuffer for recording cues 2022-01-21 10:55:54 -07:00
d50e854b05 Rulers: restore theme-ing of ruler bars (reverts much of 60cb) 2022-01-21 11:30:14 -06:00
9239d8af06 Ruler Marker: replace some padding in Location marks, to accommodate a selected marker 2022-01-21 10:13:15 -06:00
f6813e0749 Ruler Markers: customize the menus for Cue Marks, including a way to change the Cue-ID 2022-01-21 10:13:11 -06:00
48c5974b2b Ruler Marker: watch for -my- location cue-id to change 2022-01-21 10:07:48 -06:00