Paul Davis [Thu, 12 Dec 2019 18:24:32 +0000 (11:24 -0700)]
expand DEBUG_TRACE() statement
Robin Gareus [Thu, 12 Dec 2019 15:06:46 +0000 (16:06 +0100)]
BOOST_SP_NOEXCEPT is n/a in boost 1.62
Even though the method that is overridden (shared_ptr<t>::operator=),
has that signature in modern boost, it's of no real significance
for the case at hand (ExportChannel, ExportTimespan)
Paul Davis [Thu, 12 Dec 2019 03:36:00 +0000 (20:36 -0700)]
use process lock to lock out process() during playback buffer resizing
Paul Davis [Thu, 12 Dec 2019 01:08:01 +0000 (18:08 -0700)]
remove MIDI readahead parameter
We just don't do this anymore
Paul Davis [Thu, 12 Dec 2019 01:00:56 +0000 (18:00 -0700)]
variable renaming in Butler for various buffer sizes
Robin Gareus [Thu, 12 Dec 2019 02:57:58 +0000 (03:57 +0100)]
Fix stackoverflow, endless recursion on ComparableSharedPtr assignment
boost::shared_ptr & operator=(shared_ptr const & r);
is not declared virtual and cannot safely be overloaded.
Robin Gareus [Thu, 12 Dec 2019 02:01:31 +0000 (03:01 +0100)]
Fix automation dropdown menu-item active state
Extra XML/GUI has not been in use since ages.
Automation Lane visibility is saved as GUIObjectState.
This properly marks DropDown Menu items as active when a
Plugin Automation Lane is displayed
Paul Davis [Wed, 11 Dec 2019 21:52:46 +0000 (14:52 -0700)]
when loading a session into a running instance, if the SR doesn't match the engine, stop engine and show dialog
Paul Davis [Wed, 11 Dec 2019 21:36:30 +0000 (14:36 -0700)]
NOOP: line merge
Robin Gareus [Wed, 11 Dec 2019 15:21:23 +0000 (16:21 +0100)]
Fix loading plugin state from sessions
While loading a session XML state, set_state must use
`Stateful::loading_state_version`.
When later copying processor state,
`Stateful::current_state_version` is correct.
Robin Gareus [Wed, 11 Dec 2019 12:55:51 +0000 (13:55 +0100)]
Remove hardcoded session-state versions
Paul Davis [Wed, 11 Dec 2019 04:27:10 +0000 (21:27 -0700)]
should probably resolve MIDI notes when loop bounds change
We don't really need to do this if the bounds have moved "outwards", but
at present we don't know if that is the case, so be safe and resolve in
case the loop bounds moved "inwards" and we would otherwise get stuck notes
caused by the now-missing noteOffs
Paul Davis [Wed, 11 Dec 2019 02:30:28 +0000 (19:30 -0700)]
fix unnecssary disruption of MIDI stream when disabling loop
Ben Loftis [Tue, 10 Dec 2019 20:35:03 +0000 (14:35 -0600)]
Monitor Section: Add a spacer so the topmost buttons are not visually grouped with buttons in the editor toolbar.
Ben Loftis [Tue, 10 Dec 2019 20:10:11 +0000 (14:10 -0600)]
Source List nomenclature: Whole files get imported to the SOURCE list.
Paul Davis [Tue, 10 Dec 2019 19:22:05 +0000 (12:22 -0700)]
use PlayistChanged appropriately to fix MIDI output
We didn't render the MIDI data when a playlist was set, only when modified.
Paul Davis [Tue, 10 Dec 2019 19:21:28 +0000 (12:21 -0700)]
use bitmask values for OverwriteReason, as was intended
Paul Davis [Tue, 10 Dec 2019 16:28:41 +0000 (09:28 -0700)]
revert to single buffer for disk playback, and 5.x-style overwrite
Also address issues with MIDI and also atomicity of _pending_overwrite
Ben Loftis [Fri, 6 Dec 2019 19:25:44 +0000 (13:25 -0600)]
Autostart must {try to} use the session sample-rate. There is no ambiguity here.
David Robillard [Mon, 9 Dec 2019 22:38:10 +0000 (23:38 +0100)]
Fix font size on Push2
At least on my machine, the fonts on the Push display were ridiculously large,
making everything overlapping and unusable. I suspect this is because
pango_cairo_font_map_get_default() inherits DPI from the system, so the
monitor scaling factor got applied to the Push display as well.
This commit instead creates a new plain font map, and sets the resolution to
96, which looks like what the UI was designed for. Some more tweaking of the
Pango context might make things more optimal on the Push, but just setting the
resolution makes things look reasonable to me anyway.
David Robillard [Mon, 9 Dec 2019 22:27:04 +0000 (23:27 +0100)]
Suppress warnings in Gtk headers
David Robillard [Mon, 9 Dec 2019 21:59:40 +0000 (22:59 +0100)]
Fix deprecated-copy warnings
It's long been a guideline (and IIRC a Weff-c++ warning) that either all, or
none, of the copy methods should be defined, but this became a standard warning
in GCC9. Presumably to account for a later language change though I'm not sure
which.
I don't remember why the ChanMapping copy constructor can't just be a simple
copy (it's just a map of POD), but figure it's safer to just copy what that
does.
David Robillard [Mon, 9 Dec 2019 21:58:40 +0000 (22:58 +0100)]
Use labs() for long instead of abs()
David Robillard [Mon, 9 Dec 2019 21:58:08 +0000 (22:58 +0100)]
Fix catch of polymorphic type by value
David Robillard [Mon, 9 Dec 2019 21:56:14 +0000 (22:56 +0100)]
Remove unused variable
David Robillard [Mon, 9 Dec 2019 21:50:37 +0000 (22:50 +0100)]
Fix incorrect parameter type
This takes a bool.
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.
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.
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.
Robin Gareus [Mon, 9 Dec 2019 00:10:50 +0000 (01:10 +0100)]
Fix two compiler warnings
Paul Davis [Mon, 9 Dec 2019 00:01:05 +0000 (17:01 -0700)]
more debug output
Paul Davis [Mon, 9 Dec 2019 00:00:30 +0000 (17:00 -0700)]
avoid a locate-to-loop-start from cancelling looping
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
Paul Davis [Sun, 8 Dec 2019 23:56:11 +0000 (16:56 -0700)]
fix missing SessionEvent when **all** tracks need a buffer overwrite
Robin Gareus [Sun, 8 Dec 2019 23:07:33 +0000 (00:07 +0100)]
Better, more consistent fix for
d0dcca109
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.
Daniel Appelt [Sun, 8 Dec 2019 16:40:38 +0000 (17:40 +0100)]
Update lua script to current playlist API
John Emmas [Sun, 8 Dec 2019 15:04:02 +0000 (15:04 +0000)]
MSVC project changes needed to support the new 'mp3 import' stuff
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...)
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
Robin Gareus [Sun, 8 Dec 2019 14:20:26 +0000 (15:20 +0100)]
NO-OP: whitespace
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
Paul Davis [Sat, 7 Dec 2019 17:28:56 +0000 (10:28 -0700)]
"revert" back to previous loop rect in editor color
Paul Davis [Fri, 6 Dec 2019 21:21:40 +0000 (14:21 -0700)]
functional double buffering when using DiskReader::overwrite_existing_buffers
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
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.
Robin Gareus [Sat, 7 Dec 2019 14:46:20 +0000 (15:46 +0100)]
Fix 64bit OSX/MacOS builds
Robin Gareus [Sat, 7 Dec 2019 14:38:09 +0000 (15:38 +0100)]
Do not allow to embed ogg/vorbis files, require import
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.
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
Robin Gareus [Sat, 7 Dec 2019 10:32:07 +0000 (11:32 +0100)]
Remove unused API, reduce sndfile/coreaudio specialization
Robin Gareus [Sat, 7 Dec 2019 00:13:38 +0000 (01:13 +0100)]
Fix nested comments
Robin Gareus [Fri, 6 Dec 2019 23:46:33 +0000 (00:46 +0100)]
Add tsan option to trace data-races
Robin Gareus [Fri, 6 Dec 2019 22:13:20 +0000 (23:13 +0100)]
Speed up seeking in mp3s
Robin Gareus [Fri, 6 Dec 2019 20:53:03 +0000 (21:53 +0100)]
Fix issues with VBR mp3s, detect duration by decoding
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).
Robin Gareus [Fri, 6 Dec 2019 19:22:00 +0000 (20:22 +0100)]
Fix Windows build
Robin Gareus [Fri, 6 Dec 2019 17:30:53 +0000 (18:30 +0100)]
Mark .mp2 and .mp3 as valid file-extensions
Robin Gareus [Fri, 6 Dec 2019 17:11:19 +0000 (18:11 +0100)]
UI limitations for mp3 import
Robin Gareus [Fri, 6 Dec 2019 17:18:33 +0000 (18:18 +0100)]
Implement mp3 import, using minimp3
Robin Gareus [Fri, 6 Dec 2019 17:08:38 +0000 (18:08 +0100)]
Add "seekable" SoundFile info (in prep for mp3 import)
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
Robin Gareus [Thu, 5 Dec 2019 22:40:29 +0000 (23:40 +0100)]
VKeybd: Set default MIDI port flags
Robin Gareus [Thu, 5 Dec 2019 22:33:27 +0000 (23:33 +0100)]
Undo habits of a Serif font lover
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.
Paul Davis [Thu, 5 Dec 2019 20:12:58 +0000 (13:12 -0700)]
remove mistakenly left in session event enum
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
Robin Gareus [Thu, 5 Dec 2019 17:23:49 +0000 (18:23 +0100)]
Fix for-loop condition (comma has no effect)
Robin Gareus [Thu, 5 Dec 2019 15:43:20 +0000 (16:43 +0100)]
Fix well-known control LPF/HPF order.
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
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)
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
Robin Gareus [Wed, 4 Dec 2019 21:59:51 +0000 (22:59 +0100)]
Allow using ArdourSans as optional default font
Robin Gareus [Wed, 4 Dec 2019 18:02:16 +0000 (19:02 +0100)]
Clear AudioEngine Error at app start
Robin Gareus [Wed, 4 Dec 2019 18:02:00 +0000 (19:02 +0100)]
Bundle ArdourSans with packages
Robin Gareus [Wed, 4 Dec 2019 18:01:44 +0000 (19:01 +0100)]
Load and register ArdourSans font at application start
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.
Robin Gareus [Tue, 3 Dec 2019 21:02:46 +0000 (22:02 +0100)]
Remove cruft - amend
279faad7
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
Robin Gareus [Tue, 3 Dec 2019 02:29:35 +0000 (03:29 +0100)]
Amend
1caef183 (Windows Lua bindings)
Robin Gareus [Tue, 3 Dec 2019 01:29:37 +0000 (02:29 +0100)]
Libardour part of
1caef18 (Windows Lua bindings)
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]
Robin Gareus [Mon, 2 Dec 2019 23:22:33 +0000 (00:22 +0100)]
Amend previous commit, fluidsynth tables
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
...
Robin Gareus [Sun, 1 Dec 2019 20:32:51 +0000 (21:32 +0100)]
Lua MIDI genertors
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
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
Robin Gareus [Wed, 27 Nov 2019 23:54:30 +0000 (00:54 +0100)]
Update tomsloop script for A6 - Thanks to Tom Brand
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
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.
Robin Gareus [Tue, 26 Nov 2019 16:02:41 +0000 (17:02 +0100)]
Update Lua scripts to use new transport request API
Paul Davis [Sun, 24 Nov 2019 18:32:34 +0000 (11:32 -0700)]
fix crash when using Region > Loop
Robin Gareus [Sun, 24 Nov 2019 17:20:49 +0000 (18:20 +0100)]
Remember Virtual-Keyboard window size and position
Paul Davis [Sat, 23 Nov 2019 22:54:34 +0000 (15:54 -0700)]
remove debug output
Paul Davis [Sat, 23 Nov 2019 22:54:21 +0000 (15:54 -0700)]
remove debug output
Paul Davis [Sat, 23 Nov 2019 22:54:09 +0000 (15:54 -0700)]
tweak comment text
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
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
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
Paul Davis [Sat, 23 Nov 2019 22:51:30 +0000 (15:51 -0700)]
fix locate-while-rolling