ardour.git
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.

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