ardour.git
5 years agoTweak, optimize route setup
Robin Gareus [Tue, 5 Mar 2019 23:03:46 +0000 (00:03 +0100)]
Tweak, optimize route setup

Speed up route creation: add_processor() takes a process-lock
and calls configure_processors() but this is done explicitly at the
end of init() already.

5 years agoClose stderr of child processes on MacOS
Robin Gareus [Tue, 5 Mar 2019 18:11:10 +0000 (19:11 +0100)]
Close stderr of child processes on MacOS

This fixes a bug on some modern mac systems. Related to
setup_logging() changing stderr to use ASL and write to com.apple.console.

When a forked application writes to stderr while ASL is used,
the child is terminated for some reason.

5 years agoUse enum for exec stderr parameter (2/2)
Robin Gareus [Tue, 5 Mar 2019 18:06:29 +0000 (19:06 +0100)]
Use enum for exec stderr parameter (2/2)

5 years agoUse enum for exec stderr parameter (1/2)
Robin Gareus [Tue, 5 Mar 2019 18:06:15 +0000 (19:06 +0100)]
Use enum for exec stderr parameter (1/2)

5 years agoEnable de-click in disk-reader
Robin Gareus [Tue, 5 Mar 2019 13:44:47 +0000 (14:44 +0100)]
Enable de-click in disk-reader

This breaks auto-return and other post-transport locates until
such transport-states wait for de-click before seek().

5 years agodo not disconnect MidiPortSelection-flagged ports from everything when (MIDI track...
Paul Davis [Tue, 5 Mar 2019 01:23:06 +0000 (18:23 -0700)]
do not disconnect MidiPortSelection-flagged ports  from everything when (MIDI track) selection changes

If the user manually connects such a port to something, then it is
up the user to disconnect it too

5 years agoFix recursive WriteLock crash due to signal emission
Robin Gareus [Mon, 4 Mar 2019 23:25:53 +0000 (00:25 +0100)]
Fix recursive WriteLock crash due to signal emission

Route::processors_changed() signal connects to a same thread session-slot
Session::route_processors_changed() which can end up iterating over
Routes and Processors to re-calculate latency.
This takes a ReadLock after WriteLock, which eventually leads a duplicate
unlock and segfault.

5 years agoMake it compile again
Robin Gareus [Mon, 4 Mar 2019 20:42:21 +0000 (21:42 +0100)]
Make it compile again

ISO C++ forbids applying 'sizeof' to an expression of function type

5 years agoAdd/remove source(s) in our MSVC project (audiographer)
John Emmas [Mon, 4 Mar 2019 12:16:47 +0000 (12:16 +0000)]
Add/remove source(s) in our MSVC project (audiographer)

5 years agoremove double assignments and one debug trace output; tweak second debug trace output
Paul Davis [Sun, 3 Mar 2019 20:19:01 +0000 (13:19 -0700)]
remove double assignments and one debug trace output; tweak second debug trace output

5 years agodebug trace output tweaks
Paul Davis [Sun, 3 Mar 2019 20:17:42 +0000 (13:17 -0700)]
debug trace output tweaks

5 years agoremove debug output
Paul Davis [Sun, 3 Mar 2019 20:17:30 +0000 (13:17 -0700)]
remove debug output

5 years agoremove conditional surrounding wait-for-master-to-catch-us logic
Paul Davis [Sun, 3 Mar 2019 20:16:30 +0000 (13:16 -0700)]
remove conditional surrounding wait-for-master-to-catch-us logic

5 years agoremove debug output
Paul Davis [Sun, 3 Mar 2019 20:15:12 +0000 (13:15 -0700)]
remove debug output

5 years agodo not initialize LTC timecode rate from session FPS
Paul Davis [Sun, 3 Mar 2019 18:39:56 +0000 (11:39 -0700)]
do not initialize LTC timecode rate from session FPS

5 years agofix decision about sending MTC to be based not just on whether the transport master...
Paul Davis [Sun, 3 Mar 2019 17:27:38 +0000 (10:27 -0700)]
fix decision about sending MTC to be based not just on whether the transport master is locked, but whether it is external

5 years agoaudioengine skip should trigger full LTC_Slave::reset(), not just feed silence to...
Paul Davis [Sun, 3 Mar 2019 17:26:48 +0000 (10:26 -0700)]
audioengine skip should trigger full LTC_Slave::reset(), not just feed silence to the decoder

5 years agoLTC_Slave: count frames since reset
Paul Davis [Sun, 3 Mar 2019 17:26:22 +0000 (10:26 -0700)]
LTC_Slave: count frames since reset

5 years agodebug trace output tweaks (including avoiding stderr/stdout issues)
Paul Davis [Sun, 3 Mar 2019 17:24:02 +0000 (10:24 -0700)]
debug trace output tweaks (including avoiding stderr/stdout issues)

5 years agoLTC_Slave::reset() should change _current.speed back to zero
Paul Davis [Sun, 3 Mar 2019 17:22:22 +0000 (10:22 -0700)]
LTC_Slave::reset() should change _current.speed back to zero

5 years agoNO-OP: brace position
Paul Davis [Sun, 3 Mar 2019 17:21:07 +0000 (10:21 -0700)]
NO-OP: brace position

5 years agoNO-OP: brace position
Paul Davis [Sun, 3 Mar 2019 17:20:49 +0000 (10:20 -0700)]
NO-OP: brace position

5 years agoexpand scope of LTC_Slave::reset() to include more object state
Paul Davis [Sun, 3 Mar 2019 17:20:27 +0000 (10:20 -0700)]
expand scope of LTC_Slave::reset() to include more object state

5 years agofix semantics of LTC_Slave::locked() - we must have detected FPS to be considered...
Paul Davis [Sun, 3 Mar 2019 17:19:45 +0000 (10:19 -0700)]
fix semantics of LTC_Slave::locked() - we must have detected FPS to be considered locked

5 years agofix initialization order
Paul Davis [Sun, 3 Mar 2019 17:19:06 +0000 (10:19 -0700)]
fix initialization order

5 years agorename LTC_Slave::prev_sample to prev_frame, correcting s/frame/sample/ changes
Paul Davis [Sun, 3 Mar 2019 17:17:46 +0000 (10:17 -0700)]
rename LTC_Slave::prev_sample to prev_frame, correcting s/frame/sample/ changes

5 years agoremoved _locked property from TransportMaster (it's a method, not a property)
Paul Davis [Sun, 3 Mar 2019 17:12:08 +0000 (10:12 -0700)]
removed _locked property from TransportMaster (it's a method, not a property)

5 years agoremove ill-conceived use-session-timecode-format option
Paul Davis [Sun, 3 Mar 2019 16:59:05 +0000 (09:59 -0700)]
remove ill-conceived use-session-timecode-format option

5 years agoAdd GUI option to include session-meta-data when exporting mp3
Robin Gareus [Sat, 2 Mar 2019 13:39:10 +0000 (14:39 +0100)]
Add GUI option to include session-meta-data when exporting mp3

5 years agoFFmpeg/MP3 export supports tagging
Robin Gareus [Sat, 2 Mar 2019 13:38:19 +0000 (14:38 +0100)]
FFmpeg/MP3 export supports tagging

5 years agoRemove another unused include
Robin Gareus [Sat, 2 Mar 2019 13:32:54 +0000 (14:32 +0100)]
Remove another unused include

5 years agoShow VCA pane when a new VCA is created.
Robin Gareus [Fri, 1 Mar 2019 18:02:38 +0000 (19:02 +0100)]
Show VCA pane when a new VCA is created.

5 years agoAdd a signal to indicate VCA creation
Robin Gareus [Fri, 1 Mar 2019 17:56:56 +0000 (18:56 +0100)]
Add a signal to indicate VCA creation

As opposed to VCAAdded this is not emitted when re-loading a session
and only emitted when a user creates a new VCA.

5 years agoRevert "Show VCA pane whan adding a VCA"
Robin Gareus [Fri, 1 Mar 2019 17:44:52 +0000 (18:44 +0100)]
Revert "Show VCA pane whan adding a VCA"

This reverts commit 9a0260148d7c582037bdc13aab6b412379638ab3.

5 years agoShow VCA pane whan adding a VCA
Robin Gareus [Fri, 1 Mar 2019 17:00:11 +0000 (18:00 +0100)]
Show VCA pane whan adding a VCA

5 years agoPrefix an asterisk to indicate plugin replication
Robin Gareus [Fri, 1 Mar 2019 16:48:46 +0000 (17:48 +0100)]
Prefix an asterisk to indicate plugin replication

This saves space compared to "(NxN) ", especially with narrow
mixer-strips

5 years agoReplicated plugin instances may or may not be mono
Robin Gareus [Fri, 1 Mar 2019 16:43:44 +0000 (17:43 +0100)]
Replicated plugin instances may or may not be mono

5 years agoGUI updates to handle monitor-section changes
Robin Gareus [Fri, 1 Mar 2019 15:51:08 +0000 (16:51 +0100)]
GUI updates to handle monitor-section changes

This fixes various MS related action sensitivity issues, as well
as action-states.

Also manually adding a monitor-section to a session now always
immediately shows it, regardless of prior ToggleMonitorSection
visibility.

5 years agoUpdate scripts, monitor-section API change
Robin Gareus [Fri, 1 Mar 2019 15:46:08 +0000 (16:46 +0100)]
Update scripts, monitor-section API change

5 years agoRevert Monitor-Section to be per session
Robin Gareus [Fri, 1 Mar 2019 15:45:42 +0000 (16:45 +0100)]
Revert Monitor-Section to be per session

This partially reverts 639dff3a7c7. When loading a session,
the monitor-bus that was saved with the session is used.

This changes semantics of the monitor-section/config.

Config::set_use_monitor_bus(bool) is used to initiate a change!
Notification about the change is sent asynchronously by
Session::MonitorBusAddedOrRemoved

It is no longer possible to directly call add/remove_monitor_section()
and leave the session + config in an inconsistent state.

5 years agoNO-OP: whitespace
Robin Gareus [Fri, 1 Mar 2019 14:59:41 +0000 (15:59 +0100)]
NO-OP: whitespace

5 years agoDon't use c99 (amend 959947e7f84a)
Robin Gareus [Fri, 1 Mar 2019 14:51:17 +0000 (15:51 +0100)]
Don't use c99 (amend 959947e7f84a)

5 years agoAdd/remove source(s) in our MSVC project (gtk2_ardour)
John Emmas [Fri, 1 Mar 2019 08:40:18 +0000 (08:40 +0000)]
Add/remove source(s) in our MSVC project (gtk2_ardour)

5 years agoAdd/remove source(s) in our MSVC project (libardour)
John Emmas [Fri, 1 Mar 2019 08:39:50 +0000 (08:39 +0000)]
Add/remove source(s) in our MSVC project (libardour)

5 years agosimplifications to the logic and additional comments for code that handles auto-retur...
Paul Davis [Fri, 1 Mar 2019 00:18:08 +0000 (17:18 -0700)]
simplifications to the logic and additional comments for code that handles auto-return at transport stop

5 years agoauto-return is still available if using JACK transport
Paul Davis [Thu, 28 Feb 2019 23:46:42 +0000 (16:46 -0700)]
auto-return is still available if using JACK transport

5 years agoRemove unused RulerType
Robin Gareus [Thu, 28 Feb 2019 23:52:36 +0000 (00:52 +0100)]
Remove unused RulerType

5 years agoNO-OP: whitespace
Robin Gareus [Thu, 28 Feb 2019 22:57:44 +0000 (23:57 +0100)]
NO-OP: whitespace

5 years agoAbort when Action cast failed
Robin Gareus [Thu, 28 Feb 2019 22:57:32 +0000 (23:57 +0100)]
Abort when Action cast failed

Previously the action-manager only called ::abort() when
an action could no be found. This add a further restriction
that the expected class must match.

5 years agoConsolidate ToggleAction cast, use new API
Robin Gareus [Thu, 28 Feb 2019 22:54:42 +0000 (23:54 +0100)]
Consolidate ToggleAction cast, use new API

Furthermore we can assume that all Actions are registered and
Unregistered actions will ::abort() execution.

5 years agoInitialize per session instant state
Robin Gareus [Thu, 28 Feb 2019 21:56:35 +0000 (22:56 +0100)]
Initialize per session instant state

Per session (instant.xml) GUI options do not have a sigc::slot<> backed
configuration interface to initialize the Actions.

This fixes a first-time start issue (no instant.xml) where GUI panes
may be visible (default) while the actions are "off" (default).

This is a tentative solution, instant.xml backed ToggleAction
initialization needs to be consolidated somehow.

5 years agox-fade uses cairo-generated icons, remove XPM
Robin Gareus [Thu, 28 Feb 2019 20:30:45 +0000 (21:30 +0100)]
x-fade uses cairo-generated icons, remove XPM

5 years agoNO-OP: whitespace (remove vi modelines)
Robin Gareus [Thu, 28 Feb 2019 19:56:23 +0000 (20:56 +0100)]
NO-OP: whitespace (remove vi modelines)

5 years agoConsolidate gdither noise code
Robin Gareus [Thu, 28 Feb 2019 19:40:45 +0000 (20:40 +0100)]
Consolidate gdither noise code

5 years agoAmazing PCM byte/array convert functions, unused.
Robin Gareus [Thu, 28 Feb 2019 17:52:10 +0000 (18:52 +0100)]
Amazing PCM byte/array convert functions, unused.

5 years agoThe end of long and winding "road to compiling" cdc2d055f
Robin Gareus [Thu, 28 Feb 2019 17:41:57 +0000 (18:41 +0100)]
The end of long and winding "road to compiling" cdc2d055f

5 years agoRemove unused RDF in RIFF prototype
Robin Gareus [Thu, 28 Feb 2019 17:30:06 +0000 (18:30 +0100)]
Remove unused RDF in RIFF prototype

5 years agoRemove even more cruft
Robin Gareus [Thu, 28 Feb 2019 17:28:44 +0000 (18:28 +0100)]
Remove even more cruft

http://lv2plug.in/ns/dev/host-info# doesn't exist, and nobody needs
a config.guess from 2005 :)

5 years agoMove bug-tool into the Python Museum
Robin Gareus [Thu, 28 Feb 2019 17:21:05 +0000 (18:21 +0100)]
Move bug-tool into the Python Museum

5 years agoRemove ancient, unmaintained xcode project files
Robin Gareus [Thu, 28 Feb 2019 17:12:44 +0000 (18:12 +0100)]
Remove ancient, unmaintained xcode project files

5 years agoRemove cruft, unused files
Robin Gareus [Thu, 28 Feb 2019 17:04:42 +0000 (18:04 +0100)]
Remove cruft, unused files

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)