Robin Gareus [Fri, 15 Feb 2019 23:31:15 +0000 (00:31 +0100)]
NO-OP: whitespace
Robin Gareus [Fri, 15 Feb 2019 23:13:30 +0000 (00:13 +0100)]
Prepare to allow to disable latency-compensation
Previously "zero custom/user latency" meant "default plugin latency".
This is now saved in a separate boolean allowing a user to reduce a
processor's latency to zero.
This also prepares for a global switch to use zero latency throughout
the whole session.
Paul Davis [Fri, 15 Feb 2019 23:36:06 +0000 (16:36 -0700)]
better and more correct bindings for monitor section
Robin Gareus [Fri, 15 Feb 2019 20:37:19 +0000 (21:37 +0100)]
Fix crash when touching stale Automation Points
Undo/Redo allows to change a region's envelope without the envelope-list
changing (AutomationList::StateChanged is not emitted).
This also catches other operations where region-length can change while
the Envelope is visible. -- Normally when using the range or object tool
to modify a Region, the Envelope is not visible.
Without this change it was possible that the GUI shows automation
points that don't have a corresponding libardour representation:
e.g. select range, change tool to "draw", press "s" (split), undo,
click on any region-gain point.
Robin Gareus [Fri, 15 Feb 2019 17:27:22 +0000 (18:27 +0100)]
Simply debugging port-registration failures
Robin Gareus [Wed, 13 Feb 2019 23:04:29 +0000 (00:04 +0100)]
Optimize DSP-load calculation, pre-calculate fall-off once
Robin Gareus [Wed, 13 Feb 2019 19:24:00 +0000 (20:24 +0100)]
Fix meterbridge to follow track/bus re-ordering
Ben Loftis [Wed, 13 Feb 2019 03:23:01 +0000 (21:23 -0600)]
Fix for automation-line edits using the Range+Draw tool, when no line is already present.
Ben Loftis [Sat, 2 Feb 2019 15:26:03 +0000 (09:26 -0600)]
midi-audition-synth-uri is deprecated (libardour part).
Ben Loftis [Sat, 2 Feb 2019 15:25:37 +0000 (09:25 -0600)]
midi-audition-synth-uri is deprecated (gtk2 part).
Ben Loftis [Fri, 1 Feb 2019 16:57:33 +0000 (10:57 -0600)]
Hard-code GMsynth as the fallback, and allow UI to select the audition synth on-the-fly.
Ben Loftis [Fri, 1 Feb 2019 16:17:48 +0000 (10:17 -0600)]
Allow the selected Instrument to be used as the auditioner synth.
Ben Loftis [Tue, 12 Feb 2019 17:30:31 +0000 (11:30 -0600)]
Summary View should use the playhead color from config.
Ben Loftis [Tue, 12 Feb 2019 17:15:34 +0000 (11:15 -0600)]
Session-range behavior (gtk2 part)
* Both the session-start and session-end point should follow the is-free option
* Rename the end-is-free option to session-range-is-free, to reflect that change
* This fixes the problem: recording before the start marker would move the Start,
even if the user had already fixed the End marker.
Ben Loftis [Wed, 6 Feb 2019 15:54:13 +0000 (09:54 -0600)]
Session-range behavior (libardour part)
Ben Loftis [Tue, 12 Feb 2019 16:29:03 +0000 (10:29 -0600)]
Selection-after-split behavior (gtk2 part)
* When splitting in MouseObject, entered_region should get priority over selected regions.
This fixes the unexpected case where you try to split an unselected a region, but
a) nothing happens OR
b) some other region (maybe off-screen) is split
* Range mode now has its own option for splits, which can be:
Clear: the selection is cleared.
Preserve: the selection is left as-is. (default)
Force: all the regions that resulted from the split are selected (forcing a tool change).
* Un-hid the additional config options to select only the regions BEFORE or AFTER a split.
* Note: splits made with Cut Tool should be unaffected by these changes.
Ben Loftis [Thu, 7 Feb 2019 19:29:59 +0000 (13:29 -0600)]
Selection-after-split behavior ( libardour part )
Robin Gareus [Sat, 9 Feb 2019 02:33:32 +0000 (03:33 +0100)]
Fix llabs() ambiguity
some older systems (e.g. OSX/PPC) fail to compile with
error: call of overloaded 'llabs(long long int)' is ambiguous
candidates are:
long long int llabs(long long int)
long long int __gnu_cxx::llabs(long long int)
Robin Gareus [Fri, 8 Feb 2019 23:38:36 +0000 (00:38 +0100)]
Fix MIDI-bypass for inplace plugins -- #7722
Robin Gareus [Fri, 8 Feb 2019 18:10:35 +0000 (19:10 +0100)]
Properly initialize atomic variable
Robin Gareus [Fri, 8 Feb 2019 16:42:14 +0000 (17:42 +0100)]
Fix some disk-buffer threading issues
Make _pending_overwrite atomic (butler + process thread).
This also addresses a potential seek before override race.
Seeking will fill the buffers and by the time overwrite_existing_buffers()
is called from there is no space to overwrite anymore.
Robin Gareus [Fri, 8 Feb 2019 16:35:05 +0000 (17:35 +0100)]
NO-OP: clarify internal API, prepare for overwrite queue
John Emmas [Fri, 8 Feb 2019 10:17:57 +0000 (10:17 +0000)]
Accommodate newly introduced source(s) in our MSVC project (libpbd)
Robin Gareus [Thu, 7 Feb 2019 20:32:20 +0000 (21:32 +0100)]
Remove disk-reader local MIDI vari-speed
Vari-speed is now handled by the engine, on port-level
Robin Gareus [Thu, 7 Feb 2019 14:27:35 +0000 (15:27 +0100)]
Prefer AudioBuffer reference over raw buffer
This allows for consistent libardour API usage, in particular Amp.
Robin Gareus [Thu, 7 Feb 2019 14:00:37 +0000 (15:00 +0100)]
Prepare dedicated Disk-reader de-click gain-stage
This allows to specify a shorter fade-duration than default
Amp::apply_gain(), also allows to unroll and vectorize the loop
Robin Gareus [Thu, 7 Feb 2019 00:30:43 +0000 (01:30 +0100)]
Allow reading future data without read-commit
This is in preparation for de-click, fade-out. A disk-reader
can keep going, reading buffered data (if any) without changing the
read-index.
Paul Davis [Wed, 6 Feb 2019 22:04:33 +0000 (15:04 -0700)]
do not use green for "OK" deltas in transport master dialog and drop delta character
Paul Davis [Wed, 6 Feb 2019 20:53:42 +0000 (13:53 -0700)]
use correct value for silent sample count delivered to LTC decoder
Paul Davis [Wed, 6 Feb 2019 20:53:17 +0000 (13:53 -0700)]
do not attempt to update transport master rows if audioengine is not running
Robin Gareus [Wed, 6 Feb 2019 19:26:44 +0000 (20:26 +0100)]
Fix rolling backwards
When speed is -1, start_sample >= end_sample and _transport_sample
needs to be decremented.
Session::process_with_events() did this correctly, this change makes
Session::process_without_events() behave identically.
Robin Gareus [Wed, 6 Feb 2019 19:22:22 +0000 (20:22 +0100)]
Implement backwards micro-locates
Robin Gareus [Wed, 6 Feb 2019 18:01:42 +0000 (19:01 +0100)]
Prepare Disk-reader for bi-directional micro-locates
Robin Gareus [Wed, 6 Feb 2019 18:00:15 +0000 (19:00 +0100)]
Prepare buffer for seeking
Keep track of safe reservation:
Data has been read (or was skipped) previously can be read again
up to the allocated "reservation" (which is never overwritten).
Robin Gareus [Wed, 6 Feb 2019 15:59:41 +0000 (16:59 +0100)]
Optimize buffer zero-filling
Robin Gareus [Tue, 5 Feb 2019 19:51:33 +0000 (20:51 +0100)]
Towards a new disk-reader ringbuffer
This is mainly a NO-OP, introducing a new PlaybackBuffer type
and preparing for its use.
At this point in time, the buffer is just a power-of-two sized
ringbuffer and the disk-reader's read-logic is still unchanged.
Eventually the read and write sample position that are currently
private to the disk-reader can be migrated to be owned by the buffer.
Also Diskreader::read() positions can be matched to read-position ..
+/- buffer reservation and de-click can read w/o committing the read.
Paul Davis [Mon, 4 Feb 2019 18:24:23 +0000 (11:24 -0700)]
use ::reset() not ::update()
Paul Davis [Mon, 4 Feb 2019 18:23:56 +0000 (11:23 -0700)]
reset "current" in LTC transport master when necessary
Paul Davis [Mon, 4 Feb 2019 18:23:35 +0000 (11:23 -0700)]
correctly initialize LTC transport master port latency (reversed boolean error)
Paul Davis [Mon, 4 Feb 2019 18:22:25 +0000 (11:22 -0700)]
NOOP: whitespace in function call
Paul Davis [Mon, 4 Feb 2019 18:22:04 +0000 (11:22 -0700)]
fully initialize all LTC transport master members
at least the ones that can be done via initialization statements
Paul Davis [Mon, 4 Feb 2019 18:21:07 +0000 (11:21 -0700)]
remove debug output
Paul Davis [Mon, 4 Feb 2019 18:20:49 +0000 (11:20 -0700)]
add DEBUG::Destruction output for Port
Paul Davis [Mon, 4 Feb 2019 18:20:32 +0000 (11:20 -0700)]
extend debug output statement
Paul Davis [Mon, 4 Feb 2019 18:20:19 +0000 (11:20 -0700)]
add new DEBUG_TRACE output for transport masters
Paul Davis [Mon, 4 Feb 2019 18:19:56 +0000 (11:19 -0700)]
remove commented code
Paul Davis [Sun, 27 Jan 2019 21:02:03 +0000 (14:02 -0700)]
force execution of ARDOUR::init_post_engine() before any handlers of AudioEngine::Running()
Paul Davis [Sun, 27 Jan 2019 21:01:05 +0000 (14:01 -0700)]
do not reset ControlProtocol state for every engine restart, it is not necessary
Paul Davis [Fri, 25 Jan 2019 18:09:31 +0000 (11:09 -0700)]
remove debug output
Paul Davis [Fri, 25 Jan 2019 05:05:56 +0000 (22:05 -0700)]
minor refactorization of how the transport master widget is rebuilt
Paul Davis [Fri, 25 Jan 2019 05:05:20 +0000 (22:05 -0700)]
new approach to handling Transport Masters when engine is restarted
Trust that ::reset() works for all transport masters, and call it when engine is stopped. This way
the transport masters are ready to be called again as soon as the engine restarts.
Robin Gareus [Wed, 23 Jan 2019 15:05:21 +0000 (16:05 +0100)]
Kill the last remaining buses
In Ardour's world, the plural of a "Bus[Bar]" is "Busses".
(some day we may or may not search/replace 'em all to "buses")
Robin Gareus [Wed, 23 Jan 2019 11:59:17 +0000 (12:59 +0100)]
NO-OP: whitespace
Robin Gareus [Wed, 23 Jan 2019 11:44:10 +0000 (12:44 +0100)]
system-exec read: allow 1 byte for null termination -- #7715
Robin Gareus [Tue, 22 Jan 2019 20:54:22 +0000 (21:54 +0100)]
LV2: Immediately respond after processing scheduled work in sync exec mode
This allows for sample-accuracy when the work is triggered by sequenced
events in offline rendering mode.
Robin Gareus [Mon, 21 Jan 2019 13:36:59 +0000 (14:36 +0100)]
NO-OP: whitespace
Robin Gareus [Mon, 21 Jan 2019 13:34:19 +0000 (14:34 +0100)]
NO-OP: remove unused code
Robin Gareus [Mon, 21 Jan 2019 13:33:08 +0000 (14:33 +0100)]
ISO-C++ compat, see
cd70c6bda5b,
91ed9840d
Robin Gareus [Sat, 19 Jan 2019 11:04:45 +0000 (12:04 +0100)]
Use correct playlist when loading Ardour5 session
Ardour5 identifies playlists by playlist-name, not by diskstream name.
Robin Gareus [Sat, 19 Jan 2019 09:24:25 +0000 (10:24 +0100)]
Optimize exponential interpolation.
Len Ovens [Tue, 27 Nov 2018 21:13:19 +0000 (13:13 -0800)]
OSC: remove unused variable
Len Ovens [Thu, 15 Nov 2018 22:11:05 +0000 (14:11 -0800)]
Hmm, balanced panner didn't seem to make it in
Len Ovens [Tue, 13 Nov 2018 23:15:18 +0000 (15:15 -0800)]
foldback sends should have unlinked balanced panner
Or 1+2 for mono sends.
Len Ovens [Tue, 13 Nov 2018 21:43:23 +0000 (13:43 -0800)]
OSC: shorten foldbackbus names
Robin Gareus [Thu, 17 Jan 2019 17:12:39 +0000 (18:12 +0100)]
Clarify auto-connect preference
Paul Davis [Thu, 17 Jan 2019 15:18:53 +0000 (09:18 -0600)]
remove unnecessary call to init_post_engine() (now called from libardour)
Paul Davis [Wed, 16 Jan 2019 21:29:25 +0000 (15:29 -0600)]
(libs) call ARDOUR::init_post_engine() from within libardour rather than requiring "users" of the library to arrange for it
Paul Davis [Wed, 16 Jan 2019 21:29:21 +0000 (15:29 -0600)]
(libs) call ARDOUR::init_post_engine() from within libardour rather than requiring "users" of the library to arrange for it
Robin Gareus [Wed, 16 Jan 2019 00:17:52 +0000 (01:17 +0100)]
Fix ambiguity introduced in
91ed9840d
(bool) false == 0 == (const char*) NULL
error: ISO C++ says that these are ambiguous, even though the worst
conversion for the first is better than the worst conversion for the second:
actions.h:92: note: candidate 1: Glib::RefPtr<Gtk::Action> ActionManager::get_action(const char*, const char*, bool)
actions.h:91: note: candidate 2: Glib::RefPtr<Gtk::Action> ActionManager::get_action(const std::string&, bool)
Robin Gareus [Mon, 14 Jan 2019 21:07:51 +0000 (22:07 +0100)]
ALSA: add locks to safely add/remove MIDI devices
Theoretically this could be lock-free by using a queue of device
ports to be added/remove in sync in the process-callback, but
realistically adding/removing devices doesn't have to be rt-safe.
John Emmas [Mon, 14 Jan 2019 14:14:23 +0000 (14:14 +0000)]
Clarify which version of 'ActionManager::get_action()' we're calling
For MSVC, the parameter 'false' (i.e. 0) can be considered as either a bool or a pointer - so it'll map to both declarations of ActionManager::get_action()
Paul Davis [Sun, 13 Jan 2019 18:01:18 +0000 (12:01 -0600)]
re-order startup process, registering actions early
Mostly to stop an error when UIConfiguration::map_parameters()
looks for an action that has not yet been registered
Paul Davis [Sun, 13 Jan 2019 18:00:31 +0000 (12:00 -0600)]
adjust debug/trace output for key bindings
Paul Davis [Sun, 13 Jan 2019 17:59:18 +0000 (11:59 -0600)]
additional API to make it nicer to get an existing action group
Paul Davis [Fri, 11 Jan 2019 18:54:44 +0000 (12:54 -0600)]
do not crash if an unknown action is used by US2400 support
Paul Davis [Fri, 11 Jan 2019 18:39:07 +0000 (12:39 -0600)]
do not crash if an unknown action is used by Mackie Control support
Nikolaus Gullotta [Fri, 4 Jan 2019 17:58:09 +0000 (11:58 -0600)]
mixer recall script will now remember the last used recall settings
Nikolaus Gullotta [Fri, 4 Jan 2019 17:14:23 +0000 (11:14 -0600)]
type is a protected word.
Jan Lentfer [Wed, 2 Jan 2019 23:03:31 +0000 (00:03 +0100)]
LCXL: Fix a problem in switch_bank
Jan Lentfer [Mon, 31 Dec 2018 16:22:15 +0000 (17:22 +0100)]
LCXL: fix special 32C handling for autom. lanes
Robin Gareus [Wed, 2 Jan 2019 21:26:19 +0000 (22:26 +0100)]
Add an example plugin to demonstrate Lua global variables
Note: this only works when loading the script action.
Window > Scripting doesn't run the factory method for upindex variables
Robin Gareus [Wed, 2 Jan 2019 17:59:03 +0000 (18:59 +0100)]
Fix a -Wunused-but-set-variable
Robin Gareus [Wed, 2 Jan 2019 16:38:34 +0000 (17:38 +0100)]
Include Volume Paths in Ardour's PathsDialog Widget
This fixes an issue on MacOS/X. Show non-root volumes to the sidebar
as shortcuts.
Robin Gareus [Wed, 2 Jan 2019 16:37:03 +0000 (17:37 +0100)]
Add external drive references for most file-browsers
This fixes an issue on MacOS/X to only show non-root volumes in
the file-open dialog. They're just as valid for save-as, export, video
files etc.
In case of a 2nd internal disk, it is also a valid choice as default
folder for new sessions.
Robin Gareus [Wed, 2 Jan 2019 14:33:23 +0000 (15:33 +0100)]
Update Fluidsynth to v2.0.3
see https://github.com/FluidSynth/fluidsynth/releases/tag/v2.0.3
Paul Davis [Wed, 2 Jan 2019 13:10:54 +0000 (08:10 -0500)]
remove dangling --lv2 waf configure option
Robin Gareus [Tue, 1 Jan 2019 22:12:37 +0000 (23:12 +0100)]
R/W test scripts are bash scripts
Julio Martinez [Tue, 1 Jan 2019 20:36:02 +0000 (21:36 +0100)]
Add Midnam for Yamaha MX 49/61/88
Midnam file with presets
Robin Gareus [Tue, 1 Jan 2019 15:19:40 +0000 (16:19 +0100)]
Bump main program's (C) year
Robin Gareus [Tue, 1 Jan 2019 15:19:05 +0000 (16:19 +0100)]
No interest in bug-reports for alpha-releases
So far all 6.0-pre bug reports are known issues due to incomplete
work-in-progress. There is no manpower to triage those.
Robin Gareus [Sun, 30 Dec 2018 21:39:20 +0000 (22:39 +0100)]
Add a script to list all plugins in the session
Robin Gareus [Fri, 28 Dec 2018 16:32:38 +0000 (17:32 +0100)]
NO-OP: whitespace
Alex Pilon [Thu, 27 Dec 2018 21:26:01 +0000 (16:26 -0500)]
Check whether punch-in is enabled and record is enabled in addition to if we are actively recording when deciding whether to run count-in clicks
Alex Pilon [Fri, 28 Dec 2018 01:58:24 +0000 (20:58 -0500)]
Observe preference to prompt for names when adding range markers
Paul Davis [Fri, 28 Dec 2018 14:47:55 +0000 (09:47 -0500)]
remove configure-time --no-lv2 option. LV2 is integral to what we do
Paul Davis [Fri, 28 Dec 2018 14:35:06 +0000 (09:35 -0500)]
new version of Boost shared ptr debugging patch
Paul Davis [Thu, 27 Dec 2018 22:17:58 +0000 (17:17 -0500)]
remove debug output
Paul Davis [Thu, 27 Dec 2018 22:07:17 +0000 (17:07 -0500)]
fix silly cycling-show-hide bug with step editing
Paul Davis [Sat, 22 Dec 2018 22:40:26 +0000 (17:40 -0500)]
div wrapping
Robin Gareus [Thu, 27 Dec 2018 11:45:36 +0000 (12:45 +0100)]
C++98 compatible map erase