ardour.git
5 years agoClean up remnants from a half eaten apple
Robin Gareus [Thu, 28 Feb 2019 17:00:08 +0000 (18:00 +0100)]
Clean up remnants from a half eaten apple

5 years agoAdd phase labels -180..180 deg for analysis display
Robin Gareus [Thu, 28 Feb 2019 03:15:37 +0000 (04:15 +0100)]
Add phase labels -180..180 deg for analysis display

5 years agoNO-OP: whitespace
Robin Gareus [Thu, 28 Feb 2019 02:43:22 +0000 (03:43 +0100)]
NO-OP: whitespace

5 years agoNO-OP: whitespace
Robin Gareus [Thu, 28 Feb 2019 02:12:04 +0000 (03:12 +0100)]
NO-OP: whitespace

5 years agoFix analysis plugin when using plugin-presets
Robin Gareus [Thu, 28 Feb 2019 03:19:16 +0000 (04:19 +0100)]
Fix analysis plugin when using plugin-presets

5 years agoAllow to special case plugins used for IR analysis
Robin Gareus [Thu, 28 Feb 2019 03:46:25 +0000 (04:46 +0100)]
Allow to special case plugins used for IR analysis

This is relevant for some VST specifics (e.g connected pins) or
similar audioMasterCallbacks that use either global or plugin-insert
specific data.

5 years agoCopy state when replicating an AU plugin
Robin Gareus [Thu, 28 Feb 2019 03:47:48 +0000 (04:47 +0100)]
Copy state when replicating an AU plugin

This is only used for plugin-analysis, AU plugins are otherwise not
replicated, and variable-i/o is used instead

5 years agoProperly copy LV2 plugin instances on replication
Robin Gareus [Thu, 28 Feb 2019 03:17:54 +0000 (04:17 +0100)]
Properly copy LV2 plugin instances on replication

This fixes issues for stateful plugins and plugins with
previously loaded preset.

5 years agoTake latency into account when analyzing live signal
Robin Gareus [Thu, 28 Feb 2019 02:09:33 +0000 (03:09 +0100)]
Take latency into account when analyzing live signal

5 years agoNO-OP: whitespace
Robin Gareus [Thu, 28 Feb 2019 02:08:21 +0000 (03:08 +0100)]
NO-OP: whitespace

5 years agoRe-work plugin-analysis (fix crashes)
Robin Gareus [Thu, 28 Feb 2019 00:26:21 +0000 (01:26 +0100)]
Re-work plugin-analysis (fix crashes)

Plugin-analysis uses a fixed number of samples, which may be larger
than the session's block-size. This caused problems for some VST
plugins that use audioMasterCallback to query the session's block-size.

Plugin FFT analysis now processes in chunks of the session's block-size
to avoid this issue. This also allows to increase accuracy for
all plugin standards (FFT size was increased to 8192).

5 years agoMore slaved_to() replacements, fix typo
Robin Gareus [Wed, 27 Feb 2019 15:49:29 +0000 (16:49 +0100)]
More slaved_to() replacements, fix typo

5 years agoConsolidate code, use dedicated API
Robin Gareus [Wed, 27 Feb 2019 15:46:16 +0000 (16:46 +0100)]
Consolidate code, use dedicated API

5 years agoAmend f474d0d4a9, remove explicit casts
Robin Gareus [Wed, 27 Feb 2019 15:44:39 +0000 (16:44 +0100)]
Amend f474d0d4a9, remove explicit casts

5 years agoPrefer to expose the virtual method for VCA and Route
Robin Gareus [Wed, 27 Feb 2019 15:43:52 +0000 (16:43 +0100)]
Prefer to expose the virtual method for VCA and Route

5 years agoUpdate Lua VCA example script
Robin Gareus [Wed, 27 Feb 2019 15:34:48 +0000 (16:34 +0100)]
Update Lua VCA example script

5 years agoExpose Lua bindings to check VCA assignments
Robin Gareus [Wed, 27 Feb 2019 15:33:59 +0000 (16:33 +0100)]
Expose Lua bindings to check VCA assignments

5 years agoFix crash when pressing "Esc" without a session
Robin Gareus [Tue, 26 Feb 2019 19:08:56 +0000 (20:08 +0100)]
Fix crash when pressing "Esc" without a session

Ardour's UI can process a key-binding or emit the Escape() signal
without a loaded session or when unloading a session.

5 years agoDo not save export format for indirect changes
Robin Gareus [Tue, 26 Feb 2019 18:57:02 +0000 (19:57 +0100)]
Do not save export format for indirect changes

Previously selecting a different export format that changed global
settings (eg. toggle analysis) triggered an indirect save of the format.

5 years agoclarifying comment
Paul Davis [Tue, 26 Feb 2019 17:17:04 +0000 (10:17 -0700)]
clarifying comment

5 years agoAdd example script to thin automation
Robin Gareus [Tue, 26 Feb 2019 17:04:06 +0000 (18:04 +0100)]
Add example script to thin automation

5 years agoinitial version of transport state machine diagram
Paul Davis [Tue, 26 Feb 2019 16:27:20 +0000 (09:27 -0700)]
initial version of transport state machine diagram

5 years agoenhanced debug trace output
Paul Davis [Tue, 26 Feb 2019 16:02:28 +0000 (09:02 -0700)]
enhanced debug trace output

5 years agoreorder call to ::track_transport_master() so that delta is computed correctly
Paul Davis [Tue, 26 Feb 2019 16:02:18 +0000 (09:02 -0700)]
reorder call to ::track_transport_master() so that delta is computed correctly

5 years agoenhanced debug trace output
Paul Davis [Tue, 26 Feb 2019 16:01:33 +0000 (09:01 -0700)]
enhanced debug trace output

5 years agoenhanced debug trace output
Paul Davis [Tue, 26 Feb 2019 16:01:16 +0000 (09:01 -0700)]
enhanced debug trace output

5 years agoExportFormatFFMPEG supports tagging meta-data
Robin Gareus [Tue, 26 Feb 2019 16:01:17 +0000 (17:01 +0100)]
ExportFormatFFMPEG supports tagging meta-data

5 years agoDisable ffmpeg/metadata by default, use "tag-metadata"
Robin Gareus [Tue, 26 Feb 2019 15:54:01 +0000 (16:54 +0100)]
Disable ffmpeg/metadata by default, use "tag-metadata"

5 years agoDebug AudioGrapher::CmdPipeWriter<> command
Robin Gareus [Tue, 26 Feb 2019 15:41:49 +0000 (16:41 +0100)]
Debug AudioGrapher::CmdPipeWriter<> command

5 years agoAmend d61efbee3 - remove check for Mixbus
Nikolaus Gullotta [Tue, 26 Feb 2019 15:45:58 +0000 (09:45 -0600)]
Amend d61efbee3 - remove check for Mixbus

5 years agoRoute::save_as_template() needs call state() with true, and add modified-with node...
Nikolaus Gullotta [Tue, 26 Feb 2019 15:42:30 +0000 (09:42 -0600)]
Route::save_as_template() needs call state() with true, and add modified-with node to state for template-files

5 years agoRemove unused define
Robin Gareus [Tue, 26 Feb 2019 02:49:02 +0000 (03:49 +0100)]
Remove unused define

5 years agoPrefer vfork() over system() when opening an URI
Robin Gareus [Tue, 26 Feb 2019 02:47:36 +0000 (03:47 +0100)]
Prefer vfork() over system() when opening an URI

see also https://github.com/surge-synthesizer/surge/issues/657

5 years agoTimeFx-Filter: do not create a region when operation is canceled
Robin Gareus [Tue, 26 Feb 2019 02:07:49 +0000 (03:07 +0100)]
TimeFx-Filter: do not create a region when operation is canceled

5 years agoRe-work TimeFX cancel/abort
Robin Gareus [Tue, 26 Feb 2019 02:01:53 +0000 (03:01 +0100)]
Re-work TimeFX cancel/abort

When processing multiple regions, apply results at the end, so that
when the action is canceled, no changes are applied.
Furthermore, do not commit an undo-command if time-stretch is a no-op.

5 years agoFix TimeFX threading (detached thread must not be joined)
Robin Gareus [Tue, 26 Feb 2019 01:16:59 +0000 (02:16 +0100)]
Fix TimeFX threading (detached thread must not be joined)

5 years agoFix never-ending timestretch
Robin Gareus [Tue, 26 Feb 2019 00:57:02 +0000 (01:57 +0100)]
Fix never-ending timestretch

This is relevant when time-stretch is canceled. In that case
stretcher.process() is never called with final=true, and hence
stretcher.available() will always return a value >=0.

5 years agoUpdate Fluidsynth to v2.0.4
Robin Gareus [Sat, 23 Feb 2019 16:58:05 +0000 (17:58 +0100)]
Update Fluidsynth to v2.0.4

see https://github.com/FluidSynth/fluidsynth/releases/tag/v2.0.4

5 years agoremove PostTransportWorkCurveReallocate (no longer used)
Paul Davis [Fri, 22 Feb 2019 21:52:08 +0000 (14:52 -0700)]
remove PostTransportWorkCurveReallocate (no longer used)

5 years agoSort route-templates by name
Robin Gareus [Fri, 22 Feb 2019 21:33:01 +0000 (22:33 +0100)]
Sort route-templates by name

5 years agoRemove unused API, unused variable
Robin Gareus [Thu, 21 Feb 2019 15:11:32 +0000 (16:11 +0100)]
Remove unused API, unused variable

5 years agoAvoid dynamic-cast, prefer virtual inheritance for performance reasons
Robin Gareus [Thu, 21 Feb 2019 15:10:45 +0000 (16:10 +0100)]
Avoid dynamic-cast, prefer virtual inheritance for performance reasons

5 years agoAdd API to check for ongoing de-click
Robin Gareus [Thu, 21 Feb 2019 00:34:58 +0000 (01:34 +0100)]
Add API to check for ongoing de-click

5 years agoRemove more cruft (unused rf-scale)
Robin Gareus [Wed, 20 Feb 2019 23:24:56 +0000 (00:24 +0100)]
Remove more cruft (unused rf-scale)

5 years agoRemove cruft (unused PostTransportInputChange)
Robin Gareus [Wed, 20 Feb 2019 18:23:37 +0000 (19:23 +0100)]
Remove cruft (unused PostTransportInputChange)

5 years agoTweak Plugin List script: output formatting and name
Robin Gareus [Wed, 20 Feb 2019 16:23:45 +0000 (17:23 +0100)]
Tweak Plugin List script: output formatting and name

5 years agoALlow Markup for LuaDialog.Message
Robin Gareus [Wed, 20 Feb 2019 16:22:36 +0000 (17:22 +0100)]
ALlow Markup for LuaDialog.Message

5 years agoScript to list and count plugins used in this session
Robin Gareus [Wed, 20 Feb 2019 15:47:51 +0000 (16:47 +0100)]
Script to list and count plugins used in this session

5 years agoAdd unified API to select plugins to show on control-surfaces
Robin Gareus [Wed, 20 Feb 2019 15:26:51 +0000 (16:26 +0100)]
Add unified API to select plugins to show on control-surfaces

e.g. Mixbus channelstrip should be hidden, also mixbus' built-in
effects are exposed as well-known controls

5 years agoMade any -> none mappings remove events
Alby M [Tue, 19 Feb 2019 04:06:08 +0000 (22:06 -0600)]
Made any -> none mappings remove events

5 years agoSimplified translation table, fixed edge cases
Alby M [Mon, 18 Feb 2019 18:29:02 +0000 (12:29 -0600)]
Simplified translation table, fixed edge cases

5 years agoMinor updates from code review
Alby M [Mon, 18 Feb 2019 16:44:49 +0000 (10:44 -0600)]
Minor updates from code review

"Off" option, improved note name handling, name change, code formatting

5 years agoAdded MIDI Remap Lua DSP plugin
Alby M [Mon, 18 Feb 2019 06:19:51 +0000 (00:19 -0600)]
Added MIDI Remap Lua DSP plugin

5 years agoAdd/remove source(s) in our MSVC project (libardour)
John Emmas [Mon, 18 Feb 2019 10:12:57 +0000 (10:12 +0000)]
Add/remove source(s) in our MSVC project (libardour)

5 years agoRemain silent while a disk-buffer is overwritten
Robin Gareus [Mon, 18 Feb 2019 01:18:13 +0000 (02:18 +0100)]
Remain silent while a disk-buffer is overwritten

This catches a case where a user-operation results in a complete
buffer re-fill during playback (e.g. split or move regions while playing)

5 years agoUpdate Latency UI, subscribe to changes
Robin Gareus [Sun, 17 Feb 2019 02:15:18 +0000 (03:15 +0100)]
Update Latency UI, subscribe to changes

5 years agoEmit signal when plugin latency changes
Robin Gareus [Sun, 17 Feb 2019 01:22:03 +0000 (02:22 +0100)]
Emit signal when plugin latency changes

5 years agoClean up Latency API (Processor vs Plugin)
Robin Gareus [Sun, 17 Feb 2019 00:51:29 +0000 (01:51 +0100)]
Clean up Latency API (Processor vs Plugin)

Plugins are only a source of Latency (Plugin delay).
The API to query, signal and override Latency is managed
by PluginInsert.

5 years agoTweak meterbridge track reordering -- amend d03574987
Robin Gareus [Sat, 16 Feb 2019 22:36:59 +0000 (23:36 +0100)]
Tweak meterbridge track reordering -- amend d03574987

5 years agoremove references to "Editor_menus" which is an action that no longer exists
Paul Davis [Sat, 16 Feb 2019 20:12:45 +0000 (13:12 -0700)]
remove references to "Editor_menus" which is an action that no longer exists

5 years agoadditional logic to avoid showing top-level menu actions in the key shortcut editor
Paul Davis [Sat, 16 Feb 2019 20:06:08 +0000 (13:06 -0700)]
additional logic to avoid showing top-level menu actions in the key shortcut editor

5 years agorename Main_menu action to Main menu
Paul Davis [Sat, 16 Feb 2019 20:05:41 +0000 (13:05 -0700)]
rename Main_menu action to Main menu

So that if it ever does show up in a list, it looks nice

5 years agofix mistaken action paths used in MonitorSection
Paul Davis [Sat, 16 Feb 2019 20:04:16 +0000 (13:04 -0700)]
fix mistaken action paths used in MonitorSection

(after recent changes to make some actions "global")

5 years agomonitor section "global actions" are only global, no MS-specific versions
Paul Davis [Sat, 16 Feb 2019 08:14:26 +0000 (01:14 -0700)]
monitor section "global actions" are only global, no MS-specific versions

5 years agoget ordering correct of global binding set creation and action registration (part2)
Paul Davis [Sat, 16 Feb 2019 08:13:56 +0000 (01:13 -0700)]
get ordering correct of global binding set creation and action registration (part2)

5 years agoMonitorSection should only define global actions for mono/dim/cut (all channels)
Paul Davis [Sat, 16 Feb 2019 08:13:21 +0000 (01:13 -0700)]
MonitorSection should only define global actions for mono/dim/cut (all channels)

If it defines local versions, we can end up with two (different) bindings for the same action, one
in global scope, one when MonitorSection has key focus. Bad.

5 years agoget ordering correct of global binding set creation and action registration
Paul Davis [Sat, 16 Feb 2019 08:12:07 +0000 (01:12 -0700)]
get ordering correct of global binding set creation and action registration

5 years agoTentative Latency GUI update
Robin Gareus [Sat, 16 Feb 2019 00:10:31 +0000 (01:10 +0100)]
Tentative Latency GUI update

5 years agoFix some signed/unsigned warnings
Robin Gareus [Fri, 15 Feb 2019 23:59:11 +0000 (00:59 +0100)]
Fix some signed/unsigned warnings

5 years agoNO-OP: whitespace
Robin Gareus [Fri, 15 Feb 2019 23:31:15 +0000 (00:31 +0100)]
NO-OP: whitespace

5 years agoPrepare to allow to disable latency-compensation
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.

5 years agobetter and more correct bindings for monitor section
Paul Davis [Fri, 15 Feb 2019 23:36:06 +0000 (16:36 -0700)]
better and more correct bindings for monitor section

5 years agoFix crash when touching stale Automation Points
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.

5 years agoSimply debugging port-registration failures
Robin Gareus [Fri, 15 Feb 2019 17:27:22 +0000 (18:27 +0100)]
Simply debugging port-registration failures

5 years agoOptimize DSP-load calculation, pre-calculate fall-off once
Robin Gareus [Wed, 13 Feb 2019 23:04:29 +0000 (00:04 +0100)]
Optimize DSP-load calculation, pre-calculate fall-off once

5 years agoFix meterbridge to follow track/bus re-ordering
Robin Gareus [Wed, 13 Feb 2019 19:24:00 +0000 (20:24 +0100)]
Fix meterbridge to follow track/bus re-ordering

5 years agoFix for automation-line edits using the Range+Draw tool, when no line is already...
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.

5 years agomidi-audition-synth-uri is deprecated (libardour part).
Ben Loftis [Sat, 2 Feb 2019 15:26:03 +0000 (09:26 -0600)]
midi-audition-synth-uri is deprecated (libardour part).

5 years agomidi-audition-synth-uri is deprecated (gtk2 part).
Ben Loftis [Sat, 2 Feb 2019 15:25:37 +0000 (09:25 -0600)]
midi-audition-synth-uri is deprecated (gtk2 part).

5 years agoHard-code GMsynth as the fallback, and allow UI to select the audition synth on-the...
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.

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.