Commit Graph

31639 Commits

Author SHA1 Message Date
Robin Gareus
80405e41b0 Fix shuttle wheel unit granularity
When switching to Semitones, round speed to nearest semitone.

This fixes an issue when rolling forward at < 25% which is
less that -24st and then scrolling right (increase pitch).
The result may still be < -24st and playback reverses.

When changing max-speed, directly constrain speed.
2021-04-20 14:14:45 +02:00
Robin Gareus
2c8746eda9 Fix shuttle wheel semi-tone mode
Previously it was not possible to return from reverse playback
since left-scroll decreased pitch, even during reverse playback.

This also fixes an edge-case when quickly scrolling through
zero. use_shuttle_fract() ignores rapid events, map_transport_state()
can round speed to zero and next scroll-event set the default +1st
speed (really should have been 0st).This is solved by starting at
-24st, similar to how percentage does not start at 100%.
2021-04-20 13:53:35 +02:00
Paul Davis
62f47e75c9 fix double semi-colon 2021-04-19 16:38:23 -06:00
Paul Davis
180f333cd7 export needs to start transport, not just set speed 2021-04-19 16:14:09 -06:00
Paul Davis
f94aec5a59 fix/improve BasicUI's methods for rewind/ffwd/play (used by various surfaces) 2021-04-19 16:14:09 -06:00
Paul Davis
4b095aad62 additional debugging for TransportFSM events 2021-04-19 16:14:09 -06:00
Paul Davis
48f3719661 correctly initialize transport FSM's last speed request 2021-04-19 16:14:09 -06:00
Paul Davis
5f2d043ca4 update macro and call site for sending a TransportFSM::SetSpeed event 2021-04-19 16:14:09 -06:00
Paul Davis
12d361f43d clear clicks when starting transport 2021-04-19 16:14:08 -06:00
Paul Davis
fc6cf7ddac simplify, improve and correct logic in Session::set_transport_speed() 2021-04-19 16:14:08 -06:00
Paul Davis
14c2fdccf4 use correct API in a do-nothing-but-forced locate to start rolling 2021-04-19 16:14:08 -06:00
Paul Davis
b8c7ad6a9b better/correct logic (and macro) to reset default speed at stop (when relevant)
This also resets things after rewind/ffwd
2021-04-19 16:14:08 -06:00
Paul Davis
3fa027f19d correctly use a valid out-of-bounds value for Session::_requested_transport_speed 2021-04-19 16:14:08 -06:00
Paul Davis
eb1468718a fix ambiguity in TransportFSM Event constructors 2021-04-19 16:14:08 -06:00
Paul Davis
dc19aa866b change API for Session::set_transport_speed() to include "at-next-start" option 2021-04-19 16:14:08 -06:00
Paul Davis
81c08b6efb restore sprung shuttle behavior (mistakenly altered in a recent commit 2021-04-19 16:14:08 -06:00
Paul Davis
0bc5f88a65 fix logic error in transport FSM (compare with adjacent conditionals) 2021-04-19 16:14:08 -06:00
Paul Davis
48e5607f7c use Session::request_roll() instead of request_transport_speed (1.0, ...) 2021-04-19 16:14:08 -06:00
Paul Davis
52b7e68102 use new Session transport API calls in GUI 2021-04-19 16:14:08 -06:00
Paul Davis
0bccc4bffd fix mispelling of actual in shuttle control code 2021-04-19 16:14:08 -06:00
Paul Davis
cc8dcb9859 use StartRoll and EndRoll events in request_start() and request_roll()
Rather than ::request_transport_speed
2021-04-19 16:14:08 -06:00
Paul Davis
6d5cafb3b6 move various transport logic chunks into Session::realtime_stop(), Session::stop_transport() and Session::start_transport 2021-04-19 16:14:08 -06:00
Paul Davis
79f1ff3df3 fix thinko in TransportFSM's handling of deferred events
If a deferred event was used in process_event() but was deferred again, we deleted it. That was wrong,
it should remain in the deferred_events queue.
2021-04-19 16:14:08 -06:00
Paul Davis
11416bf9d1 improve/fix/simplify logic for TransportFSM speed handling 2021-04-19 16:14:08 -06:00
Paul Davis
c65daaa3d6 libardour: change API for Session::set_transport_speed()
We no longer need the abort/clear_state arguments because this method only controls speed,
not transport state
2021-04-19 16:14:08 -06:00
Paul Davis
229ea31f34 transport masters: use Session::request_stop() rather than Session::request_transport_speed() 2021-04-19 16:14:08 -06:00
Paul Davis
e5790c6b70 incoming MIDI: use Session::request_stop() rather than Session::request_transport_speed() 2021-04-19 16:14:08 -06:00
Paul Davis
6b7be1083b no need to request stop if locating with MustStop 2021-04-19 16:14:08 -06:00
Paul Davis
5a159abe1f new SessionEvents for start/stop transport 2021-04-19 16:14:08 -06:00
Paul Davis
aeed50b1cc add Session::reset_transport_speed() 2021-04-19 16:14:08 -06:00
Paul Davis
1d97220cff use Session::request_transport_roll() in main GUI call site 2021-04-19 16:13:38 -06:00
Paul Davis
ec367f49e1 add Session::request_transport_roll()
Start separation of API for controlling rolling state from that used for speed
2021-04-19 16:13:38 -06:00
Paul Davis
7cbecaedff improve GUI behavior of the tempo dialog by preselecting the start bpm text field
most common user action will be: show dialog, type keys, press return. This works now.
2021-04-19 16:13:38 -06:00
Robin Gareus
905ea49f05 Prevent libXML read error in case file does not exist 2021-04-19 04:55:17 +02:00
Robin Gareus
71788ecfe4 Update to fluidsynth-2.2 2021-04-18 22:02:57 +02:00
Robin Gareus
dd060b04dc RecorderUI: Fix monitoring when hot-plugging devices
When there are no input ports at the time the engine starts
running, MonitorInputChanged signal was not subscribed to.
This breaks AFL solo. This happens e.g. when re-starting the
engine with ALSA slave devices.
2021-04-18 19:03:35 +02:00
John Emmas
d0f4665d5e Add/remove source(s) in our MSVC project (gtk2_ardour) 2021-04-17 11:22:11 +01:00
John Emmas
8437d0a54a Add/remove source(s) in our MSVC project (audiographer) 2021-04-17 11:21:33 +01:00
Robin Gareus
e0a6aba28d Ignore saved port-name when loading ctrl-surface state
In some cases old and/or conflicting port names were saved
with the session (e.g. "Faderport" for FP1,8). Loading old sessions
then merges this state into the config, which could lead to
port-registration failure when the surfaces was enabled.
2021-04-17 02:07:09 +02:00
Robin Gareus
c212909282 Ctrl-surface: do not name single-channel bundle ports
Follow Session::setup_bundles() lead for single channel
MIDI bundles. This cleans-up the port-matrix display and
removes redundant names. The underlying engine port-name
is not of interest to the user.
2021-04-17 00:43:20 +02:00
Robin Gareus
271860f630 Consistent port-matrix channel name display
Previously the columns always displayed port-names unconditionally,
while rows only showed them if there was one more port per bundle.
2021-04-17 00:27:38 +02:00
Robin Gareus
209536a967 Option to hide "-none-" from instrument dropdown
This is useful for the audition instrument selector.
2021-04-16 22:25:41 +02:00
Robin Gareus
c0fe67427d Fix crash if no audition synth is unset
This was possible if a user explicitly selects "-none-" from
the instrument dropdown.
2021-04-16 22:14:25 +02:00
Robin Gareus
b928c62e49 Remove unused auditioner MIDI port
Since 2014 Ardour always has and uses a synth for MIDI
auditioning. External synth for audition was never really
supported.
2021-04-16 22:13:12 +02:00
Robin Gareus
32acfbd52c Fix blurry text in connection manager
Text that that is not on extract pixels will be anti-aliased
leading to blurry rendering.
2021-04-16 21:42:49 +02:00
Robin Gareus
b23f260d21 Move glib include out of PBD namespace
strictly speaking the include is not needed here since
g_atomic_compat.h includes glib.h. However it is idempotent,
the file does use glib methods, and g_atomic_compat.h may
one day be removed again.
2021-04-16 17:43:31 +02:00
Robin Gareus
f40973658e Update export preset dithering
amend 7c087839f8
prefer triangular dither over white noise
2021-04-16 15:25:23 +02:00
Robin Gareus
725c00236c Disambiguate export formats with same loudness but different true-peal
Amend 75829d20f2
2021-04-16 04:29:16 +02:00
Robin Gareus
861417c07c Disable rec-arm on export
Previously this wasn't the case when latched-record-enable
preference was enabled.
2021-04-16 04:29:12 +02:00
Robin Gareus
7c087839f8 Update Streaming Preset 2021-04-16 04:29:05 +02:00