ardour.git
4 years agoFix catch of polymorphic type by value
David Robillard [Mon, 9 Dec 2019 21:58:08 +0000 (22:58 +0100)]
Fix catch of polymorphic type by value

4 years agoRemove unused variable
David Robillard [Mon, 9 Dec 2019 21:56:14 +0000 (22:56 +0100)]
Remove unused variable

4 years agoFix incorrect parameter type
David Robillard [Mon, 9 Dec 2019 21:50:37 +0000 (22:50 +0100)]
Fix incorrect parameter type

This takes a bool.

4 years agoFix automation alignment for latent plugins
Robin Gareus [Mon, 9 Dec 2019 17:23:17 +0000 (18:23 +0100)]
Fix automation alignment for latent plugins

This also solves bi-stable automation for plugins where latency
can change due to automation. e.g.

cycle 1: run (t): automation (t) = on: -> increase latency
cycle 2: run (t-latency): automation (t-latency) = off -> decrease latency
repeat.

4 years agoWhen a marker is selected, change the marker color in addition to the line color.
Ben Loftis [Mon, 9 Dec 2019 13:49:16 +0000 (07:49 -0600)]
When a marker is selected, change the marker color in addition to the line color.

4 years agofix error when continuing to refill audio playback buffers after a buffer switch
Paul Davis [Mon, 9 Dec 2019 05:37:07 +0000 (22:37 -0700)]
fix error when continuing to refill audio playback buffers after a buffer switch

The file_sample[AUDIO] member was not updated to reflect the last-read sample in the
switched-to buffer.

Also move several methods and members from DiskIO to DiskReader where they belong.

4 years agoFix two compiler warnings
Robin Gareus [Mon, 9 Dec 2019 00:10:50 +0000 (01:10 +0100)]
Fix two compiler warnings

4 years agomore debug output
Paul Davis [Mon, 9 Dec 2019 00:01:05 +0000 (17:01 -0700)]
more debug output

4 years agoavoid a locate-to-loop-start from cancelling looping
Paul Davis [Mon, 9 Dec 2019 00:00:30 +0000 (17:00 -0700)]
avoid a locate-to-loop-start from cancelling looping

4 years agocorrect logic errors related to roll-after-locate in TransportFSM
Paul Davis [Mon, 9 Dec 2019 00:00:08 +0000 (17:00 -0700)]
correct logic errors related to roll-after-locate in TransportFSM

This might have broken some other subtle behavior, but testing hasn't shown it thus far

4 years agofix missing SessionEvent when **all** tracks need a buffer overwrite
Paul Davis [Sun, 8 Dec 2019 23:56:11 +0000 (16:56 -0700)]
fix missing SessionEvent when **all** tracks need a buffer overwrite

4 years agoBetter, more consistent fix for d0dcca109
Robin Gareus [Sun, 8 Dec 2019 23:07:33 +0000 (00:07 +0100)]
Better, more consistent fix for d0dcca109

4 years agoFix Pan automation when using "Touch"
Robin Gareus [Sun, 8 Dec 2019 22:52:48 +0000 (23:52 +0100)]
Fix Pan automation when using "Touch"

Pan->touching was left uninitialized, and usually non-zero.
So pan automation was assumed to be currently touched,
and hence never interpolated.

4 years agoUpdate lua script to current playlist API
Daniel Appelt [Sun, 8 Dec 2019 16:40:38 +0000 (17:40 +0100)]
Update lua script to current playlist API

4 years agoMSVC project changes needed to support the new 'mp3 import' stuff
John Emmas [Sun, 8 Dec 2019 15:04:02 +0000 (15:04 +0000)]
MSVC project changes needed to support the new 'mp3 import' stuff

4 years agoMinor changes needed to make the 'mp3 import' sources build with MSVC
John Emmas [Sun, 8 Dec 2019 15:01:59 +0000 (15:01 +0000)]
Minor changes needed to make the 'mp3 import' sources build with MSVC

(MSVC project changes to follow...)

4 years agoAdd support for LV2 state:freePath feature
Robin Gareus [Sun, 8 Dec 2019 14:21:30 +0000 (15:21 +0100)]
Add support for LV2 state:freePath feature

This fixes a memory-leak issue for Windows builds.
see also https://github.com/drobilla/lilv/issues/14

4 years agoNO-OP: whitespace
Robin Gareus [Sun, 8 Dec 2019 14:20:26 +0000 (15:20 +0100)]
NO-OP: whitespace

4 years agofix behavior when pressing l to loop (not in loop-is-mode) and the required stop...
Paul Davis [Sat, 7 Dec 2019 17:30:27 +0000 (10:30 -0700)]
fix behavior when pressing l to loop (not in loop-is-mode) and the required stop-during locate cancels looping

4 years ago"revert" back to previous loop rect in editor color
Paul Davis [Sat, 7 Dec 2019 17:28:56 +0000 (10:28 -0700)]
"revert" back to previous loop rect in editor color

4 years agofunctional double buffering when using DiskReader::overwrite_existing_buffers
Paul Davis [Fri, 6 Dec 2019 21:21:40 +0000 (14:21 -0700)]
functional double buffering when using DiskReader::overwrite_existing_buffers

4 years agoa few parameter changes, and flesh out code to switch rbufs in DiskReader
Paul Davis [Thu, 5 Dec 2019 22:34:51 +0000 (15:34 -0700)]
a few parameter changes, and flesh out code to switch rbufs in DiskReader

4 years agoinitial conversion to double buffering inside DiskReader
Paul Davis [Thu, 5 Dec 2019 22:01:41 +0000 (15:01 -0700)]
initial conversion to double buffering inside DiskReader

Second buffer is not used (or allocated) yet.

4 years agoFix 64bit OSX/MacOS builds
Robin Gareus [Sat, 7 Dec 2019 14:46:20 +0000 (15:46 +0100)]
Fix 64bit OSX/MacOS builds

4 years agoDo not allow to embed ogg/vorbis files, require import
Robin Gareus [Sat, 7 Dec 2019 14:38:09 +0000 (15:38 +0100)]
Do not allow to embed ogg/vorbis files, require import

4 years agoRemove #ifdef'ed format-specific error-log messages
Robin Gareus [Sat, 7 Dec 2019 14:09:20 +0000 (15:09 +0100)]
Remove #ifdef'ed format-specific error-log messages

With inclusion of Mp3FileSource, this would get tricky.
On MacOS, the SndFileSource's sf_error_str message is never displayed,
anyway, also calling methods all handle failed-constructor.
So error-log is less important.

4 years agoFlatten nested try/catch clauses
Robin Gareus [Sat, 7 Dec 2019 10:39:09 +0000 (11:39 +0100)]
Flatten nested try/catch clauses

This also consistently throws a failed_constructor() when instantiating
a CoreAudioSource fails, regardless of the actual exception

4 years agoRemove unused API, reduce sndfile/coreaudio specialization
Robin Gareus [Sat, 7 Dec 2019 10:32:07 +0000 (11:32 +0100)]
Remove unused API, reduce sndfile/coreaudio specialization

4 years agoFix nested comments
Robin Gareus [Sat, 7 Dec 2019 00:13:38 +0000 (01:13 +0100)]
Fix nested comments

4 years agoAdd tsan option to trace data-races
Robin Gareus [Fri, 6 Dec 2019 23:46:33 +0000 (00:46 +0100)]
Add tsan option to trace data-races

4 years agoSpeed up seeking in mp3s
Robin Gareus [Fri, 6 Dec 2019 22:13:20 +0000 (23:13 +0100)]
Speed up seeking in mp3s

4 years agoFix issues with VBR mp3s, detect duration by decoding
Robin Gareus [Fri, 6 Dec 2019 20:53:03 +0000 (21:53 +0100)]
Fix issues with VBR mp3s, detect duration by decoding

4 years agoClear TransportAbort flag after stop
Robin Gareus [Fri, 6 Dec 2019 20:28:48 +0000 (21:28 +0100)]
Clear TransportAbort flag after stop

This fixes an issue with unresponsive transport controls after
an abort (e.g. post-export).

4 years agoFix Windows build
Robin Gareus [Fri, 6 Dec 2019 19:22:00 +0000 (20:22 +0100)]
Fix Windows build

4 years agoMark .mp2 and .mp3 as valid file-extensions
Robin Gareus [Fri, 6 Dec 2019 17:30:53 +0000 (18:30 +0100)]
Mark .mp2 and .mp3 as valid file-extensions

4 years agoUI limitations for mp3 import
Robin Gareus [Fri, 6 Dec 2019 17:11:19 +0000 (18:11 +0100)]
UI limitations for mp3 import

4 years agoImplement mp3 import, using minimp3
Robin Gareus [Fri, 6 Dec 2019 17:18:33 +0000 (18:18 +0100)]
Implement mp3 import, using minimp3

4 years agoAdd "seekable" SoundFile info (in prep for mp3 import)
Robin Gareus [Fri, 6 Dec 2019 17:08:38 +0000 (18:08 +0100)]
Add "seekable" SoundFile info (in prep for mp3 import)

4 years agoFlatten nested try/catch clauses
Robin Gareus [Fri, 6 Dec 2019 17:06:13 +0000 (18:06 +0100)]
Flatten nested try/catch clauses

This also consistently throws a failed_constructor() when instantiating
SoundFile fails, regardless of the actual exception

4 years agoVKeybd: Set default MIDI port flags
Robin Gareus [Thu, 5 Dec 2019 22:40:29 +0000 (23:40 +0100)]
VKeybd: Set default MIDI port flags

4 years agoUndo habits of a Serif font lover
Robin Gareus [Thu, 5 Dec 2019 22:33:27 +0000 (23:33 +0100)]
Undo habits of a Serif font lover

4 years agoVKeybd: grab and ignore some keys
Robin Gareus [Thu, 5 Dec 2019 21:12:49 +0000 (22:12 +0100)]
VKeybd: grab and ignore some keys

With default QWERTY and QWERTZ layout some keys that are easily
accidentally pressed. Those triggered editor actions,
(e.g. "a" (audition), or "1" (edit-tool)) and are now ignored.

4 years agoremove mistakenly left in session event enum
Paul Davis [Thu, 5 Dec 2019 20:12:58 +0000 (13:12 -0700)]
remove mistakenly left in session event enum

4 years agochanges to use overwrite-buffers when loop is disabled or loop range changed
Paul Davis [Thu, 5 Dec 2019 20:00:24 +0000 (13:00 -0700)]
changes to use overwrite-buffers when loop is disabled or loop range changed

4 years agoFix for-loop condition (comma has no effect)
Robin Gareus [Thu, 5 Dec 2019 17:23:49 +0000 (18:23 +0100)]
Fix for-loop condition (comma has no effect)

4 years agoFix well-known control LPF/HPF order.
Robin Gareus [Thu, 5 Dec 2019 15:43:20 +0000 (16:43 +0100)]
Fix well-known control LPF/HPF order.

4 years agoPrefer wider/fatter Sans font
Robin Gareus [Wed, 4 Dec 2019 23:50:36 +0000 (00:50 +0100)]
Prefer wider/fatter Sans font

ArdourSans is now based on "Noto Sans"
https://fonts.google.com/specimen/Noto+Sans
(C) by Google - Apache License 2.0

4 years agoReduce script button width
Robin Gareus [Wed, 4 Dec 2019 23:44:10 +0000 (00:44 +0100)]
Reduce script button width

The default text is single digit hex number (0..c)

4 years agoArdour 6.0 Alpha - Enterprise Edition
Robin Gareus [Wed, 4 Dec 2019 22:07:42 +0000 (23:07 +0100)]
Ardour 6.0 Alpha - Enterprise Edition

Its 5 year mission
To explore strange new sounds
To seek out new bugs and new users
To boldly go where no Ardour session has gone before

4 years agoAllow using ArdourSans as optional default font
Robin Gareus [Wed, 4 Dec 2019 21:59:51 +0000 (22:59 +0100)]
Allow using ArdourSans as optional default font

4 years agoClear AudioEngine Error at app start
Robin Gareus [Wed, 4 Dec 2019 18:02:16 +0000 (19:02 +0100)]
Clear AudioEngine Error at app start

4 years agoBundle ArdourSans with packages
Robin Gareus [Wed, 4 Dec 2019 18:02:00 +0000 (19:02 +0100)]
Bundle ArdourSans with packages

4 years agoLoad and register ArdourSans font at application start
Robin Gareus [Wed, 4 Dec 2019 18:01:44 +0000 (19:01 +0100)]
Load and register ArdourSans font at application start

4 years agoBundle a common Sans Font
Robin Gareus [Wed, 4 Dec 2019 18:01:20 +0000 (19:01 +0100)]
Bundle a common Sans Font

ArdourSans is based on Oxygen from https://fonts.google.com/
Copyright (c) 2012, vernon adams (vern@newtypography.co.uk)
This Font Software is licensed under the SIL Open Font License, Version 1.1.

4 years agoRemove cruft - amend 279faad7
Robin Gareus [Tue, 3 Dec 2019 21:02:46 +0000 (22:02 +0100)]
Remove cruft - amend 279faad7

4 years agoNew approach for Lua bindings to avoid LuaBridge_API in GUI code
Robin Gareus [Tue, 3 Dec 2019 16:55:37 +0000 (17:55 +0100)]
New approach for Lua bindings to avoid LuaBridge_API in GUI code

Declare DoubleArray in GUI context so that runtime uses the symbol
from the .exe (not the .dll).

This is mainly for the benefit of MSVC, that does not allow to use
LuaBridge_API in .exe

4 years agoAmend 1caef183 (Windows Lua bindings)
Robin Gareus [Tue, 3 Dec 2019 02:29:35 +0000 (03:29 +0100)]
Amend 1caef183 (Windows Lua bindings)

4 years agoLibardour part of 1caef18 (Windows Lua bindings)
Robin Gareus [Tue, 3 Dec 2019 01:29:37 +0000 (02:29 +0100)]
Libardour part of 1caef18 (Windows Lua bindings)

4 years agoFix Windows builds
Robin Gareus [Tue, 3 Dec 2019 01:27:44 +0000 (02:27 +0100)]
Fix Windows builds

This fixes a missing symbol error due to the weird way how
Windows maps the same, identical symbols using different addresses
in .dll and .exe.  Here specifically for

int luabridge::CFunc::vectorToArray<double, std::vector<double, std::allocator<double> > >(lua_State*)

which was added in 5e1a73a28c07 resulting in

gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getStaticKey() [with T = std::vector<double>]' but no definition available [-fpermissive]
gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getClassKey() [with T = std::vector<double>]' but no definition available [-fpermissive]
gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getConstKey() [with T = std::vector<double>]' but no definition available [-fpermissive]

4 years agoAmend previous commit, fluidsynth tables
Robin Gareus [Mon, 2 Dec 2019 23:22:33 +0000 (00:22 +0100)]
Amend previous commit, fluidsynth tables

4 years agoUpdate to fluidsynth-2.1
Robin Gareus [Mon, 2 Dec 2019 22:58:15 +0000 (23:58 +0100)]
Update to fluidsynth-2.1

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

- new, less "ringing" reverb engine
- new, stereophonic chorus engine
- improved integrity checking of SoundFont modulators
...

4 years agoLua MIDI genertors
Robin Gareus [Sun, 1 Dec 2019 20:32:51 +0000 (21:32 +0100)]
Lua MIDI genertors

4 years agoAdd Lua typecast from C++ vector to C-Array
Robin Gareus [Sun, 1 Dec 2019 20:32:10 +0000 (21:32 +0100)]
Add Lua typecast from C++ vector to C-Array

This is useful for MIDI bytes amongst other things

4 years agoUse a detached window for Preferences at first run
Robin Gareus [Fri, 29 Nov 2019 15:27:37 +0000 (16:27 +0100)]
Use a detached window for Preferences at first run

Once a user explicitly attaches the Window as Tab, we
expect the user to know about tabbing, tab-cycling, related
window/tab actions, and relevant shortcuts.

Otherwise it can confusing:
https://discourse.ardour.org/t/cant-get-out-of-preferences/102147

4 years agoUpdate tomsloop script for A6 - Thanks to Tom Brand
Robin Gareus [Wed, 27 Nov 2019 23:54:30 +0000 (00:54 +0100)]
Update tomsloop script for A6 - Thanks to Tom Brand

4 years agoReset paste-count, paste-offset on undo/redo
Robin Gareus [Tue, 26 Nov 2019 22:49:06 +0000 (23:49 +0100)]
Reset paste-count, paste-offset on undo/redo

This fixes an workflow edge-case when undoing a paste in order
to paste at a different location on the same track or automation lane.
After undo, any accumulated paste-offset needs to be reset

4 years agoFix thread-safety issue in a-fluidsynth.
Stefan Westerfeld [Tue, 26 Nov 2019 10:22:04 +0000 (11:22 +0100)]
Fix thread-safety issue in a-fluidsynth.

This fix ensures that the a-fluidsynth "synth" object is not used in two
threads at the same time during midi event handling (run() in RT thread vs.
load_sf2() in worker thread), which could result in crashes.

4 years agoUpdate Lua scripts to use new transport request API
Robin Gareus [Tue, 26 Nov 2019 16:02:41 +0000 (17:02 +0100)]
Update Lua scripts to use new transport request API

4 years agofix crash when using Region > Loop
Paul Davis [Sun, 24 Nov 2019 18:32:34 +0000 (11:32 -0700)]
fix crash when using Region > Loop

4 years agoRemember Virtual-Keyboard window size and position
Robin Gareus [Sun, 24 Nov 2019 17:20:49 +0000 (18:20 +0100)]
Remember Virtual-Keyboard window size and position

4 years agoremove debug output
Paul Davis [Sat, 23 Nov 2019 22:54:34 +0000 (15:54 -0700)]
remove debug output

4 years agoremove debug output
Paul Davis [Sat, 23 Nov 2019 22:54:21 +0000 (15:54 -0700)]
remove debug output

4 years agotweak comment text
Paul Davis [Sat, 23 Nov 2019 22:54:09 +0000 (15:54 -0700)]
tweak comment text

4 years ago2nd part of fix for autoloop event removal when loop bounds are changed while looping
Paul Davis [Sat, 23 Nov 2019 22:53:54 +0000 (15:53 -0700)]
2nd part of fix for autoloop event removal when loop bounds are changed while looping

4 years agoremove debug message about LOCATE WITHOUT DECLICK. This behavior is normal and legal...
Paul Davis [Sat, 23 Nov 2019 22:52:49 +0000 (15:52 -0700)]
remove debug message about LOCATE WITHOUT DECLICK. This behavior is normal and legal when looping

4 years agofix incorrect removal of autoloop event when loop bounds are changed while looping
Paul Davis [Sat, 23 Nov 2019 22:52:05 +0000 (15:52 -0700)]
fix incorrect removal of autoloop event when loop bounds are changed while looping

4 years agofix locate-while-rolling
Paul Davis [Sat, 23 Nov 2019 22:51:30 +0000 (15:51 -0700)]
fix locate-while-rolling

4 years agofix startup crash if no loop range is defined
Paul Davis [Sat, 23 Nov 2019 20:37:00 +0000 (13:37 -0700)]
fix startup crash if no loop range is defined

4 years agomore tweaks to correctly (or more correctly) reload disk reader buffers when loop...
Paul Davis [Sat, 23 Nov 2019 07:09:46 +0000 (00:09 -0700)]
more tweaks to correctly (or more correctly) reload disk reader buffers when loop fade choice changes

4 years agoredesign of declicking and fades around loop boundaries
Paul Davis [Sat, 23 Nov 2019 06:41:56 +0000 (23:41 -0700)]
redesign of declicking and fades around loop boundaries

4 years agoEnable some key release event forwarding
Robin Gareus [Fri, 22 Nov 2019 21:12:48 +0000 (22:12 +0100)]
Enable some key release event forwarding

This is needed for the virtual MIDI keyboard to trigger note-off events

4 years agoVirtual MIDI keyboard, when visible, gets to handle keyboard input first
Robin Gareus [Fri, 22 Nov 2019 21:11:55 +0000 (22:11 +0100)]
Virtual MIDI keyboard, when visible, gets to handle keyboard input first

4 years agoSave VST paths after successful scan
Robin Gareus [Fri, 22 Nov 2019 19:06:43 +0000 (20:06 +0100)]
Save VST paths after successful scan

Ardour only saves Config when the session is saved.
When changing the VST Path and starting a plugin-scan the newly
discovered plugins would otherwise not be avalable unless
the session is explicitly saved after a scan.

4 years agoInform LV2 plugins about main window ID
Robin Gareus [Fri, 22 Nov 2019 19:05:04 +0000 (20:05 +0100)]
Inform LV2 plugins about main window ID

4 years agoAdd support for LV2/KX transient-ID option
Robin Gareus [Fri, 22 Nov 2019 19:01:32 +0000 (20:01 +0100)]
Add support for LV2/KX transient-ID option

4 years agoFix buffer-overflow when vari-speeding
Robin Gareus [Thu, 21 Nov 2019 22:37:31 +0000 (23:37 +0100)]
Fix buffer-overflow when vari-speeding

Session::process() can call split-cycle which offset the
buffer pointers. When vari-speeding at speed > 1.0, the
engine also splits the cycle every n_samples, to not exceed
the configured buffersize. This needs to take prior buffer
offsets into account.

4 years agoGUI: Use new boost::optional API
Robin Gareus [Thu, 21 Nov 2019 16:49:20 +0000 (17:49 +0100)]
GUI: Use new boost::optional API

get_value_or() has been deprecated since boost 1.56

4 years agoUse new boost::optional API
Robin Gareus [Thu, 21 Nov 2019 16:48:56 +0000 (17:48 +0100)]
Use new boost::optional API

get_value_or() has been deprecated since boost 1.56

4 years agoBump boost version requirement
Robin Gareus [Thu, 21 Nov 2019 16:43:32 +0000 (17:43 +0100)]
Bump boost version requirement

1.56 is needed for boost::optional::value_or

4 years agoFix multi-channel de-click
Robin Gareus [Thu, 21 Nov 2019 01:54:19 +0000 (02:54 +0100)]
Fix multi-channel de-click

_declick_amp gain needs to be reset for each channel before
the test (_declick_amp.gain() != target_gain) if de-clicking
is needed.

4 years agoadd mixer actions for toggle disk & input monitoring; bind to d and i in mixer bindings
Paul Davis [Wed, 20 Nov 2019 16:37:14 +0000 (09:37 -0700)]
add mixer actions for toggle disk & input monitoring; bind to d and i in mixer bindings

4 years agoFix declick offset position for multi-channel tracks
Robin Gareus [Tue, 19 Nov 2019 15:20:28 +0000 (16:20 +0100)]
Fix declick offset position for multi-channel tracks

4 years agoDiskReader::_declick_offs should only advance once per ::run() call
Paul Davis [Tue, 19 Nov 2019 04:38:46 +0000 (21:38 -0700)]
DiskReader::_declick_offs should only advance once per ::run() call

4 years agoDiskReader::_declick_amp needs to repeat the same work for each audio channel handled
Paul Davis [Tue, 19 Nov 2019 04:38:25 +0000 (21:38 -0700)]
DiskReader::_declick_amp needs to repeat the same work for each audio channel handled

4 years agofix transport FSM to stop first and declick later
Paul Davis [Tue, 19 Nov 2019 04:29:32 +0000 (21:29 -0700)]
fix transport FSM to stop first and declick later

4 years agosmall changes to make declick out triggered by just stopping
Paul Davis [Tue, 19 Nov 2019 03:47:47 +0000 (20:47 -0700)]
small changes to make declick out triggered by just stopping

4 years agoFix some script icons for non-square buttons
Robin Gareus [Tue, 19 Nov 2019 02:33:28 +0000 (03:33 +0100)]
Fix some script icons for non-square buttons

4 years agoFix Lua Pangolayout ellipsis width
Robin Gareus [Tue, 19 Nov 2019 02:19:08 +0000 (03:19 +0100)]
Fix Lua Pangolayout ellipsis width

4 years agoConsistent toolbar button height
Robin Gareus [Tue, 19 Nov 2019 01:52:35 +0000 (02:52 +0100)]
Consistent toolbar button height

4 years agoImprove toolbar layout consistency
Robin Gareus [Tue, 19 Nov 2019 01:47:11 +0000 (02:47 +0100)]
Improve toolbar layout consistency

Directly pack Lua Script buttons into top-level table,
use same size-constraints.

Use consistent Lua Action button width, in particular for buttons 10..12.
prefer "a" instead of "10" for default numeric label