ardour.git
5 years agoAllow the selected Instrument to be used as the auditioner synth.
Ben Loftis [Fri, 1 Feb 2019 16:17:48 +0000 (10:17 -0600)]
Allow the selected Instrument to be used as the auditioner synth.

5 years agoSummary View should use the playhead color from config.
Ben Loftis [Tue, 12 Feb 2019 17:30:31 +0000 (11:30 -0600)]
Summary View should use the playhead color from config.

5 years agoSession-range behavior (gtk2 part)
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.

5 years agoSession-range behavior (libardour part)
Ben Loftis [Wed, 6 Feb 2019 15:54:13 +0000 (09:54 -0600)]
Session-range behavior (libardour part)

5 years agoSelection-after-split behavior (gtk2 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.

5 years agoSelection-after-split behavior ( libardour part )
Ben Loftis [Thu, 7 Feb 2019 19:29:59 +0000 (13:29 -0600)]
Selection-after-split behavior  ( libardour part )

5 years agoFix llabs() ambiguity
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)

5 years agoFix MIDI-bypass for inplace plugins -- #7722
Robin Gareus [Fri, 8 Feb 2019 23:38:36 +0000 (00:38 +0100)]
Fix MIDI-bypass for inplace plugins -- #7722

5 years agoProperly initialize atomic variable
Robin Gareus [Fri, 8 Feb 2019 18:10:35 +0000 (19:10 +0100)]
Properly initialize atomic variable

5 years agoFix some disk-buffer threading issues
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.

5 years agoNO-OP: clarify internal API, prepare for overwrite queue
Robin Gareus [Fri, 8 Feb 2019 16:35:05 +0000 (17:35 +0100)]
NO-OP: clarify internal API, prepare for overwrite queue

5 years agoAccommodate newly introduced source(s) in our MSVC project (libpbd)
John Emmas [Fri, 8 Feb 2019 10:17:57 +0000 (10:17 +0000)]
Accommodate newly introduced source(s) in our MSVC project (libpbd)

5 years agoRemove disk-reader local MIDI vari-speed
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

5 years agoPrefer AudioBuffer reference over raw buffer
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.

5 years agoPrepare dedicated Disk-reader de-click gain-stage
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

5 years agoAllow reading future data without read-commit
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.

5 years agodo not use green for "OK" deltas in transport master dialog and drop delta character
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

5 years agouse correct value for silent sample count delivered to LTC decoder
Paul Davis [Wed, 6 Feb 2019 20:53:42 +0000 (13:53 -0700)]
use correct value for silent sample count delivered to LTC decoder

5 years agodo not attempt to update transport master rows if audioengine is not running
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

5 years agoFix rolling backwards
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.

5 years agoImplement backwards micro-locates
Robin Gareus [Wed, 6 Feb 2019 19:22:22 +0000 (20:22 +0100)]
Implement backwards micro-locates

5 years agoPrepare Disk-reader for bi-directional micro-locates
Robin Gareus [Wed, 6 Feb 2019 18:01:42 +0000 (19:01 +0100)]
Prepare Disk-reader for bi-directional micro-locates

5 years agoPrepare buffer for seeking
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).

5 years agoOptimize buffer zero-filling
Robin Gareus [Wed, 6 Feb 2019 15:59:41 +0000 (16:59 +0100)]
Optimize buffer zero-filling

5 years agoTowards a new disk-reader ringbuffer
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.

5 years agouse ::reset() not ::update()
Paul Davis [Mon, 4 Feb 2019 18:24:23 +0000 (11:24 -0700)]
use ::reset() not ::update()

5 years agoreset "current" in LTC transport master when necessary
Paul Davis [Mon, 4 Feb 2019 18:23:56 +0000 (11:23 -0700)]
reset "current" in LTC transport master when necessary

5 years agocorrectly initialize LTC transport master port latency (reversed boolean error)
Paul Davis [Mon, 4 Feb 2019 18:23:35 +0000 (11:23 -0700)]
correctly initialize LTC transport master port latency (reversed boolean error)

5 years agoNOOP: whitespace in function call
Paul Davis [Mon, 4 Feb 2019 18:22:25 +0000 (11:22 -0700)]
NOOP: whitespace in function call

5 years agofully initialize all LTC transport master members
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

5 years agoremove debug output
Paul Davis [Mon, 4 Feb 2019 18:21:07 +0000 (11:21 -0700)]
remove debug output

5 years agoadd DEBUG::Destruction output for Port
Paul Davis [Mon, 4 Feb 2019 18:20:49 +0000 (11:20 -0700)]
add DEBUG::Destruction output for Port

5 years agoextend debug output statement
Paul Davis [Mon, 4 Feb 2019 18:20:32 +0000 (11:20 -0700)]
extend debug output statement

5 years agoadd new DEBUG_TRACE output for transport masters
Paul Davis [Mon, 4 Feb 2019 18:20:19 +0000 (11:20 -0700)]
add new DEBUG_TRACE output for transport masters

5 years agoremove commented code
Paul Davis [Mon, 4 Feb 2019 18:19:56 +0000 (11:19 -0700)]
remove commented code

5 years agoforce execution of ARDOUR::init_post_engine() before any handlers of AudioEngine...
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()

5 years agodo not reset ControlProtocol state for every engine restart, it is not necessary
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

5 years agoremove debug output
Paul Davis [Fri, 25 Jan 2019 18:09:31 +0000 (11:09 -0700)]
remove debug output

5 years agominor refactorization of how the transport master widget is rebuilt
Paul Davis [Fri, 25 Jan 2019 05:05:56 +0000 (22:05 -0700)]
minor refactorization of how the transport master widget is rebuilt

5 years agonew approach to handling Transport Masters when engine is restarted
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.

5 years agoKill the last remaining buses
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")

5 years agoNO-OP: whitespace
Robin Gareus [Wed, 23 Jan 2019 11:59:17 +0000 (12:59 +0100)]
NO-OP: whitespace

5 years agosystem-exec read: allow 1 byte for null termination -- #7715
Robin Gareus [Wed, 23 Jan 2019 11:44:10 +0000 (12:44 +0100)]
system-exec read: allow 1 byte for null termination -- #7715

5 years agoLV2: Immediately respond after processing scheduled work in sync exec mode
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.

5 years agoNO-OP: whitespace
Robin Gareus [Mon, 21 Jan 2019 13:36:59 +0000 (14:36 +0100)]
NO-OP: whitespace

5 years agoNO-OP: remove unused code
Robin Gareus [Mon, 21 Jan 2019 13:34:19 +0000 (14:34 +0100)]
NO-OP: remove unused code

5 years agoISO-C++ compat, see cd70c6bda5b, 91ed9840d
Robin Gareus [Mon, 21 Jan 2019 13:33:08 +0000 (14:33 +0100)]
ISO-C++ compat, see cd70c6bda5b91ed9840d

5 years agoUse correct playlist when loading Ardour5 session
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.

5 years agoOptimize exponential interpolation.
Robin Gareus [Sat, 19 Jan 2019 09:24:25 +0000 (10:24 +0100)]
Optimize exponential interpolation.

5 years agoOSC: remove unused variable
Len Ovens [Tue, 27 Nov 2018 21:13:19 +0000 (13:13 -0800)]
OSC: remove unused variable

5 years agoHmm, balanced panner didn't seem to make it in
Len Ovens [Thu, 15 Nov 2018 22:11:05 +0000 (14:11 -0800)]
Hmm, balanced panner didn't seem to make it in

5 years agofoldback sends should have unlinked balanced panner
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.

5 years agoOSC: shorten foldbackbus names
Len Ovens [Tue, 13 Nov 2018 21:43:23 +0000 (13:43 -0800)]
OSC: shorten foldbackbus names

5 years agoClarify auto-connect preference
Robin Gareus [Thu, 17 Jan 2019 17:12:39 +0000 (18:12 +0100)]
Clarify auto-connect preference

5 years agoremove unnecessary call to init_post_engine() (now called from libardour)
Paul Davis [Thu, 17 Jan 2019 15:18:53 +0000 (09:18 -0600)]
remove unnecessary call to init_post_engine() (now called from libardour)

5 years ago(libs) call ARDOUR::init_post_engine() from within libardour rather than requiring...
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

5 years ago(libs) call ARDOUR::init_post_engine() from within libardour rather than requiring...
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

5 years agoFix ambiguity introduced in 91ed9840d
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)

5 years agoALSA: add locks to safely add/remove MIDI devices
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.

5 years agoClarify which version of 'ActionManager::get_action()' we're calling
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()

5 years agore-order startup process, registering actions early
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

5 years agoadjust debug/trace output for key bindings
Paul Davis [Sun, 13 Jan 2019 18:00:31 +0000 (12:00 -0600)]
adjust debug/trace output for key bindings

5 years agoadditional API to make it nicer to get an existing action group
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

5 years agodo not crash if an unknown action is used by US2400 support
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

5 years agodo not crash if an unknown action is used by Mackie Control 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

5 years agomixer recall script will now remember the last used recall settings
Nikolaus Gullotta [Fri, 4 Jan 2019 17:58:09 +0000 (11:58 -0600)]
mixer recall script will now remember the last used recall settings

5 years agotype is a protected word.
Nikolaus Gullotta [Fri, 4 Jan 2019 17:14:23 +0000 (11:14 -0600)]
type is a protected word.

5 years agoLCXL: Fix a problem in switch_bank
Jan Lentfer [Wed, 2 Jan 2019 23:03:31 +0000 (00:03 +0100)]
LCXL: Fix a problem in switch_bank

5 years agoLCXL: fix special 32C handling for autom. lanes
Jan Lentfer [Mon, 31 Dec 2018 16:22:15 +0000 (17:22 +0100)]
LCXL: fix special 32C handling for autom. lanes

5 years agoAdd an example plugin to demonstrate Lua global variables
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

5 years agoFix a -Wunused-but-set-variable
Robin Gareus [Wed, 2 Jan 2019 17:59:03 +0000 (18:59 +0100)]
Fix a -Wunused-but-set-variable

5 years agoInclude Volume Paths in Ardour's PathsDialog Widget
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.

5 years agoAdd external drive references for most file-browsers
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.

5 years agoUpdate Fluidsynth to v2.0.3
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

5 years agoremove dangling --lv2 waf configure option
Paul Davis [Wed, 2 Jan 2019 13:10:54 +0000 (08:10 -0500)]
remove dangling --lv2 waf configure option

5 years agoR/W test scripts are bash scripts
Robin Gareus [Tue, 1 Jan 2019 22:12:37 +0000 (23:12 +0100)]
R/W test scripts are bash scripts

5 years agoAdd Midnam for Yamaha MX 49/61/88
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

5 years agoBump main program's (C) year
Robin Gareus [Tue, 1 Jan 2019 15:19:40 +0000 (16:19 +0100)]
Bump main program's (C) year

5 years agoNo interest in bug-reports for alpha-releases
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.

5 years agoAdd a script to list all plugins in the session
Robin Gareus [Sun, 30 Dec 2018 21:39:20 +0000 (22:39 +0100)]
Add a script to list all plugins in the session

5 years agoNO-OP: whitespace
Robin Gareus [Fri, 28 Dec 2018 16:32:38 +0000 (17:32 +0100)]
NO-OP: whitespace

5 years agoCheck whether punch-in is enabled and record is enabled in addition to if we are...
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

5 years agoObserve preference to prompt for names when adding range markers
Alex Pilon [Fri, 28 Dec 2018 01:58:24 +0000 (20:58 -0500)]
Observe preference to prompt for names when adding range markers

5 years agoremove configure-time --no-lv2 option. LV2 is integral to what we do
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

5 years agonew version of Boost shared ptr debugging patch
Paul Davis [Fri, 28 Dec 2018 14:35:06 +0000 (09:35 -0500)]
new version of Boost shared ptr debugging patch

5 years agoremove debug output
Paul Davis [Thu, 27 Dec 2018 22:17:58 +0000 (17:17 -0500)]
remove debug output

5 years agofix silly cycling-show-hide bug with step editing
Paul Davis [Thu, 27 Dec 2018 22:07:17 +0000 (17:07 -0500)]
fix silly cycling-show-hide bug with step editing

5 years agodiv wrapping
Paul Davis [Sat, 22 Dec 2018 22:40:26 +0000 (17:40 -0500)]
div wrapping

5 years agoC++98 compatible map erase
Robin Gareus [Thu, 27 Dec 2018 11:45:36 +0000 (12:45 +0100)]
C++98 compatible map erase

5 years agoNO-OP: whitespace
Robin Gareus [Mon, 24 Dec 2018 01:30:00 +0000 (02:30 +0100)]
NO-OP: whitespace

5 years agoUpdate Convolver/LuaConvolver
Robin Gareus [Mon, 24 Dec 2018 01:29:24 +0000 (02:29 +0100)]
Update Convolver/LuaConvolver

* Add API to allow per-channnel gain and delay
* Fix channel-mapping for stereo IRs w/o true-stereo

5 years agoUse same has for ALSA-seq and ALSA-raw devices
Robin Gareus [Sun, 23 Dec 2018 20:57:28 +0000 (21:57 +0100)]
Use same has for ALSA-seq and ALSA-raw devices

5 years agoEngine Dialog MIDI tweaks
Robin Gareus [Sun, 23 Dec 2018 20:51:09 +0000 (21:51 +0100)]
Engine Dialog MIDI tweaks

* Allow to dynamically en/disable MIDI devices when running
* Push midi latencies directly to running backend

5 years agoDynamic ALSA MIDI I/O device discovery and re/connect
Robin Gareus [Sun, 23 Dec 2018 20:48:07 +0000 (21:48 +0100)]
Dynamic ALSA MIDI I/O device discovery and re/connect

5 years agoEngine-dialog: skip audio device update when running
Robin Gareus [Sun, 23 Dec 2018 18:51:17 +0000 (19:51 +0100)]
Engine-dialog: skip audio device update when running

Only update MIDI devices list, which can be dynamic. Audio devices
which are in-use can't be updated, and the GUI may no longer show
the current device (since it is in use).

5 years agoUse hash for ALSA-MIDI device name/ID
Robin Gareus [Sun, 23 Dec 2018 18:40:48 +0000 (19:40 +0100)]
Use hash for ALSA-MIDI device name/ID

5 years agoAdd/remove source(s) in our MSVC project (gtk2_ardour)
John Emmas [Sun, 23 Dec 2018 13:29:36 +0000 (13:29 +0000)]
Add/remove source(s) in our MSVC project (gtk2_ardour)

5 years agoFix dead-link to manual
Robin Gareus [Sun, 23 Dec 2018 03:50:58 +0000 (04:50 +0100)]
Fix dead-link to manual

5 years agoFix cases where there's no MIDI buffer (e.g. audio audition)
Robin Gareus [Sun, 23 Dec 2018 00:57:38 +0000 (01:57 +0100)]
Fix cases where there's no MIDI buffer (e.g. audio audition)

5 years agoIncrease pitch-shifting quality a bit
Robin Gareus [Sun, 23 Dec 2018 00:57:16 +0000 (01:57 +0100)]
Increase pitch-shifting quality a bit

OptionPitchHighQuality - Use the highest quality
 method for pitch shifting.  This method has a CPU cost
 approximately proportional to the required frequency shift