0e85655c38
right click on tempo curve should be equivalent to right click on empty bar
2022-06-03 15:02:37 -06:00
cc021f9e94
complete list of return values for ::get_grid_type_as_beats()
...
Except triplets
2022-06-03 15:02:37 -06:00
543bb85157
Use process-graph for silencing routes during audition
...
Route::silence() runs plugins. With a heavy session
that relies on multi-core processing, sending silence
to processors will have to be done in parallel.
Otherwise it can result in large DSP load and xruns.
This may allow to revert b3497b3f8f
, which was
a prior attempt to resolve this, before understanding
the actual cause.
2022-06-03 22:50:13 +02:00
3e1e0d94c5
Add Process Graph API for Route::silence() processing
2022-06-03 22:50:13 +02:00
57a1dbb375
Update route API for silent processing
2022-06-03 22:50:13 +02:00
191fdfda72
Leave a note for RT-Tasklists (need macOS workgroups)
2022-06-03 22:50:13 +02:00
99e785541a
Coreaudio/M1: prefer device IOThread Workgroup
2022-06-03 22:50:13 +02:00
de2c553e1a
improvements to BBT marker dialog appearance and behavior
2022-06-03 13:20:13 -06:00
88a035b000
temporal: changes in API to better support BBT markers
2022-06-03 13:19:56 -06:00
531db75a27
temporal: when dragging tempo/meter, move in points list as well
...
We spliced the point back into the tempo and meter lists correctly, but failed
to do the same thing for the same object's position in the points list.
2022-06-03 10:53:01 -06:00
7dadb1407b
temporal: when copying points between TempoMaps do not double-count MusicTimePoints
...
They were counted as tempos, and meters, and bartimes individually, which
generated new tempo and meter points in the map, which is incorrect.
2022-06-03 10:53:01 -06:00
1b904285be
temporal: improve utility of TempoMap::dump() output
2022-06-03 10:53:01 -06:00
b3497b3f8f
Debug noseq's audition issue - silent plugin processing
...
When auditioning, ardour's process_audition calls Route::silence
for all routes. PluginInsert::silence simply fed all [ports of all
[replicated] plugins with silence, regardless of port-mapping.
This can cause some VST2/3 plugins to change state, and enable ports
(e.g. stereo VST2 plugins on mono tracks), causing glitches.
This commit is mainly intended to investigate how significant
this glitch is when starting to audition.
2022-06-03 17:17:07 +02:00
fa8f75c145
Fix yet another oversight when coding blindly in 6a513a11f
2022-06-03 07:29:23 +02:00
5417ddd792
Fix typo in 6a513a11f
2022-06-03 07:24:42 +02:00
58979af4f2
Coreaudio: update workgroup query
2022-06-03 06:42:42 +02:00
6a513a11fa
Coreaudio: set real-time constraint before joining the workgroup
...
The worker thread needs to have a real-time constraint set,
before it cab be joined to the workgroup.
2022-06-03 06:42:38 +02:00
87ee609339
Amend previous commit, fix debug print format
2022-06-03 05:32:19 +02:00
fd5d290217
Fix mach thread time constraints on M1
...
or any system where timebase is not 1 tick per ns.
2022-06-03 05:27:42 +02:00
74ee7ee091
Add parallel realtime threads to CoreAudio workgroup
...
This API is only available since BigSur (11.0), see also
https://developer.apple.com/documentation/audiotoolbox/workgroup_management/adding_parallel_real-time_threads_to_audio_workgroups?language=objc
2022-06-03 04:56:28 +02:00
88e9fc3e22
Remove unneccesary include (now handled by libpbd)
2022-06-03 04:52:38 +02:00
c2cff575b7
Add debug info to track down M1 time-constraint issue
2022-06-03 03:52:43 +02:00
b6907cffba
LuaDialog: only hide border if scrollbar is n/a
2022-06-03 01:52:02 +02:00
972389e1bd
Tweak PluginInsert::silence (used during audition, etc)
...
Actually run plugins (use _pending_active), and feed silence
to the plugin. Also update timing stats accordingly.
2022-06-03 01:30:02 +02:00
64f8f6c31a
Hide the border of the Lua dialog scrollbar frame
...
This results in much cleaner look/feel, which was apparently the
motivation for 817fccb3e5
.
2022-06-02 22:32:26 +02:00
5db59b9fd6
Update scroll-window policy of Lua dialog windows
...
Better version of 817fccb3e5
, the visibility should not depend
on the number of items in the dialog, but its requested height
vs screen height.
The main use-case is to not show the scroll-bar if the dialog has only
a few rows. Then again if the scrollbar is visible, the dialog
should not shrink below a reasonable min. height.
2022-06-02 22:04:23 +02:00
2cef35247c
Revert "Lua Dialogs: only add a scroller if we have 16+ items in the dialog"
...
This reverts commit 817fccb3e5
.
2022-06-02 22:04:23 +02:00
10bbcd167d
Mixer Scenes: scene buttons should look 'pushed in' when clicked
...
* trigger the actual recall on button_release
2022-06-02 13:53:45 -05:00
eb0e9616f0
Implement temporary mixer scene restore, clean up code
2022-06-02 19:07:28 +02:00
8f074200cc
Fix Ferret when using onset detection + split
...
When not starting at a silent area, onset detection can have
a transient at 0 (region start). This needs to be ignored.
2022-06-02 01:45:47 +02:00
9ef9277d47
Clear mixer scene buttons when closing session
2022-06-02 00:52:25 +02:00
d79a1aaa98
Fix mixer-scene signaling
...
Mixer-scenes are session objects, and the signal must not be
connected across session instances.
This fixes a read-lock after write-lock when switching snapshots:
Session::set_state -> MixerScene::set_state ->
MixerScene::set_name -> Change(); /* emit signal */
... -> Mixer_UI::update_scene_buttons -> Session::nth_mixer_scene
2022-06-02 00:19:32 +02:00
69179117a5
Amend ca8dddcd
, handle nullptr mixer scenes
...
This fixes an assert/crash when loading sessions without scenes.
Also only show "Right-Click to Store" label if all slots are empty
2022-06-01 16:57:21 +02:00
ef4bbae02e
Fix logic in nth_mixer_scene (amend 00bd313e6e
)
...
_mixer_scenes[nth] may not exist, size check condition needs
to happen first. Writer lock is only required when changing the
vector.
2022-06-01 16:26:51 +02:00
ca8dddcd37
Mixer Scenes: first-draft GUI for mixer scenes
2022-06-01 08:53:50 -05:00
00bd313e6e
Mixer Scenes: fix code thinkos for sparsely-populated vector of scenes
...
* don't create a new MixerScene if one already exists
* only resize the vector when necessary
* adding a new scene at position N should not shrink the vector size
2022-06-01 08:53:50 -05:00
b3e4f243b0
Mixer Scenes: tweak action names; add mother-may-i for scene overwrites
2022-06-01 08:53:50 -05:00
3fe6bf3cf7
Mixer Scenes: add bindings for F1..F12 on the mix window
2022-06-01 08:53:50 -05:00
e8058792a3
Mixer Save+Recall (Lua): add option to recall the route names stored in the file
2022-06-01 08:53:50 -05:00
9a580078f0
Mixer Save+Recall (Lua): support args for local+global separation
2022-06-01 08:53:50 -05:00
3387d127e7
Lua: add arguments to trigger_script_by_name
2022-06-01 08:53:50 -05:00
817fccb3e5
Lua Dialogs: only add a scroller if we have 16+ items in the dialog
2022-06-01 08:53:50 -05:00
a127399f5e
click on a region in TimeFX mode should not switch back to grab mouse mode
2022-05-31 13:21:11 -06:00
763d92a294
timefx: fix interactions with duration clock and percentage spinner in timefx dialog
2022-05-31 13:15:36 -06:00
b806ccf373
timestretching: fix inaccuracies in generated length
...
The design ignored the ratio computed by the drag interaction, and relied on getting the stretch
ratio from the dialog. This truncated the actual ratio, leading to (relatively) small errors
in the length of the generated region.
Now, if the ratio provided by the drag is not (1/1) (i.e. a single click while in timefx mode)
then the percentage stretch spinner is marked insensitive and the stretch ratio is taken from
the given ratio. For single clicks, the user can still adjust the percentage as they wish
2022-05-31 12:36:54 -06:00
2d24bcdf4a
temporal: add operator== and operator!= for ratio_t
2022-05-31 12:36:54 -06:00
43f58f88a6
Allow input meters without session when backend is connected
...
This also fixes a race with ARDOUR::AudioEngine::start() emitting
a Running() signal being emitted without a valid session.
2022-05-31 19:08:19 +02:00
265f5d8342
numerous fixes for meter marker drag
2022-05-30 21:14:57 -06:00
192b2fd839
temporal: fixes for TempoMap::move_meter()
2022-05-30 21:14:57 -06:00
60db5a827f
Use SYS_futex instead of __NR_futex
...
Use the C library definition for portability; also test
for support instead of unconditionally enabling it.
2022-05-30 21:56:49 +02:00