Robin Gareus [Wed, 18 Sep 2019 15:27:09 +0000 (17:27 +0200)]
NO-OP: fix some Wimplicit-fallthrough
gcc can recognize various regexps in comments. Since C++17 provides
[[fallthrough]], using /* fallthrough */ consistently seems
appropriate until we switch to C++17.
see also https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
John Emmas [Wed, 18 Sep 2019 14:08:26 +0000 (15:08 +0100)]
Introduce the BOOST_MPL stuff (though it all seems a bit flaky with MSVC...)
John Emmas [Wed, 18 Sep 2019 14:05:16 +0000 (15:05 +0100)]
Remove a (no longer needed) source file from our MSVC project (evoral)
John Emmas [Wed, 18 Sep 2019 14:03:51 +0000 (15:03 +0100)]
Add/remove source(s) in our MSVC project (libardour)
Robin Gareus [Wed, 18 Sep 2019 04:23:40 +0000 (06:23 +0200)]
Fix OSX builds: undef Apples's odd nil macro
Robin Gareus [Wed, 18 Sep 2019 03:57:26 +0000 (05:57 +0200)]
Consistent use of abort() /* NOTREACHED */
This fixes some static analysis warnings:
PBD::fatal transmitter needs to be connected to a function
that aborts. This is usually the case with GUI
Robin Gareus [Wed, 18 Sep 2019 02:43:09 +0000 (04:43 +0200)]
Fix Wdeprecated, dynamic exception
Dynamic exception specifications are deprecated in C++11,
and were removed in C++17.
Robin Gareus [Wed, 18 Sep 2019 02:37:12 +0000 (04:37 +0200)]
Remove old unused source file
Robin Gareus [Wed, 18 Sep 2019 02:32:51 +0000 (04:32 +0200)]
Add missing i18n include (after
7f3f2018334)
Robin Gareus [Wed, 18 Sep 2019 02:14:31 +0000 (04:14 +0200)]
Re-order includes
* external, system-wide first <>
* next "pbd/*"
...
Robin Gareus [Wed, 18 Sep 2019 02:09:26 +0000 (04:09 +0200)]
Remove "i18n.h" include from header - fix builds
i18n alsways needs to be included last. This fixes an ambiguity of "_"
boost/function_types/detail/class_transform.hpp:23:26:
error: ‘boost::mpl::placeholders::_’ has not been declared
using mpl::placeholders::_;
Paul Davis [Wed, 18 Sep 2019 01:16:53 +0000 (19:16 -0600)]
deepen stacktrace to show where non-process calls to supposedly process-stack-only methods are called
Paul Davis [Wed, 18 Sep 2019 00:26:03 +0000 (18:26 -0600)]
add finite state machine to control/manage transport state
Paul Davis [Wed, 18 Sep 2019 00:20:51 +0000 (18:20 -0600)]
correct mistakenly left-in debugging condition that removed parallelism for PortManager::cycle_start()
Paul Davis [Wed, 27 Mar 2019 16:58:12 +0000 (09:58 -0700)]
minor tweaks to use initialization rather than assignment
Paul Davis [Mon, 8 Jul 2019 15:59:14 +0000 (09:59 -0600)]
remove unused local variable
Paul Davis [Thu, 5 Sep 2019 20:04:20 +0000 (14:04 -0600)]
fix thinko when testing for internal seek with negative distance
Paul Davis [Thu, 11 Jul 2019 15:15:42 +0000 (09:15 -0600)]
use const int rather than macro
Paul Davis [Thu, 11 Jul 2019 05:32:14 +0000 (23:32 -0600)]
parametize the maximum transport speed.
No GUI to adjust this at this, nor is any planned. This just makes it easier if
we ever feel we can change this.
Paul Davis [Thu, 11 Jul 2019 05:39:02 +0000 (23:39 -0600)]
resize audio port _data buffer based on current buffer size
Paul Davis [Mon, 8 Jul 2019 16:01:25 +0000 (10:01 -0600)]
manually correct cherry-pick of
cdbabe40ed4e
Paul Davis [Mon, 8 Jul 2019 15:58:01 +0000 (09:58 -0600)]
add new port flag to identify those owned by a transport master
These ports are handled without SRC
Paul Davis [Mon, 16 Sep 2019 19:46:06 +0000 (13:46 -0600)]
add ::usable() method to TransportMaster objects to allow GUI to show their usability after backend/engine changes
Robin Gareus [Tue, 17 Sep 2019 14:56:15 +0000 (16:56 +0200)]
Correctly handle Zoom > Edit-point > Mouse
Previously this failed if the event was initiated outside
of the canvas (e.g. Zoom buttons).
This also fixes a special case of Zooming to an edit-point at zero.
Len Ovens [Mon, 16 Sep 2019 23:23:01 +0000 (16:23 -0700)]
foldback gui: removed mute, solo button hide in SIP
Mute removed, Solo renamed to listen only shows when
not in SIP mode.
Robin Gareus [Mon, 16 Sep 2019 20:56:54 +0000 (22:56 +0200)]
Clarify splash-screen boot messages
Parsing MIDNAM is what takes the most time.
"Reset Remote Controls" message is misleading (it means MMC), not
control-surfaces, which a user may have none.
Len Ovens [Sun, 15 Sep 2019 21:48:09 +0000 (14:48 -0700)]
Foldback gui: desensitize solo button when in SIP mode
Because foldback by design goes to physical outputs
rather than master or monitor, SIP solo does not work
or make sense. PFL/AFL allow a foldback to be rough
adjusted using the control room monitoring.
A soloed Foldback bus will be released when the foldback
strip is switched to a different foldback bus
Len Ovens [Sun, 15 Sep 2019 14:00:11 +0000 (07:00 -0700)]
Foldback gui:Removed unused calls and parameters
Len Ovens [Sat, 14 Sep 2019 17:19:01 +0000 (10:19 -0700)]
Set Foldback strip width and ellipsize to work
Len Ovens [Fri, 13 Sep 2019 15:18:35 +0000 (08:18 -0700)]
desensitize foldback show unless there is a foldback bus
The view menu should not show the foldback item
if there is no foldback bus available.
Robin Gareus [Thu, 12 Sep 2019 21:35:57 +0000 (23:35 +0200)]
Use new icons in mixer window
Robin Gareus [Thu, 12 Sep 2019 21:30:48 +0000 (23:30 +0200)]
Add new icons: hide, prev/next
Len Ovens [Thu, 12 Sep 2019 19:44:38 +0000 (12:44 -0700)]
foldback gui: simplify foldback strip menus
This uses less code and fixes the odd crash as well
(there was sometimes a crash when using the send
display context menu)
Len Ovens [Thu, 12 Sep 2019 16:39:38 +0000 (09:39 -0700)]
foldback gui: simplify button code where possible
use signal_clicked rather than signal_button_press_event
for cases where a menu is not launched.
Len Ovens [Wed, 11 Sep 2019 23:36:05 +0000 (16:36 -0700)]
Foldback gui: Added hide and show
- New menu item in view menu
- Foldback strip has hide button
- Adding a new foldback bus sets show
- setting is saved and restored
Len Ovens [Wed, 11 Sep 2019 04:40:39 +0000 (21:40 -0700)]
foldback gui: added tool tips for previous and next
Len Ovens [Wed, 11 Sep 2019 04:09:54 +0000 (21:09 -0700)]
Foldback gui: previous and next buttons don't wrap around
I had set the previous next buttons to wrap around
but Robin felt dead ending was better. The previous
button becomes insensitive when the first foldback bus
is displayed and next is insensitive when the last is
displayed.
Len Ovens [Wed, 11 Sep 2019 02:26:00 +0000 (19:26 -0700)]
Foldback GUI: sort send controls by mixer order
also found send button name did not follow sending
route name after change and tool tip was wrong. Fixed
both.
Robin Gareus [Wed, 11 Sep 2019 01:00:26 +0000 (03:00 +0200)]
Who needs semicolons?
Robin Gareus [Wed, 11 Sep 2019 00:40:57 +0000 (02:40 +0200)]
AU: fix optional buffers
The spec [1] says:
"If the mData pointers are null, the audio unit can
provide pointers to its own buffers. In this case,
the audio unit must keep those buffers valid for
the duration of the calling thread’s I/O cycle."
A plugin *can* do this, but it does not need to. An extra
NULL test is required.
furthermore [2] specifies
"mDataByteSize - The number of bytes in the buffer pointed
at by the mData field."
In case the host does not provide any buffers, this is obviously zero.
[1] https://developer.apple.com/documentation/audiotoolbox/
1438430-audiounitrender?language=objc
[2] https://developer.apple.com/documentation/coreaudiotypes/audiobuffer?language=objc
Robin Gareus [Wed, 11 Sep 2019 00:31:19 +0000 (02:31 +0200)]
AU: don't consider in-place if there are no inputs
Len Ovens [Tue, 10 Sep 2019 23:08:24 +0000 (16:08 -0700)]
Foldback GUI: size and position tweaks
- Set width so added pan controls in send controls don't change size
- output button shows only ports applicable to foldback use
- Size text to leave widget width alone
- Center level control
-
Robin Gareus [Tue, 10 Sep 2019 15:03:16 +0000 (17:03 +0200)]
Add note about Denormal protection pref changes
Modifications to the MXCSR register are pre thread. Changing this
setting only directly affects the GUI thread.
Robin Gareus [Tue, 10 Sep 2019 14:59:04 +0000 (16:59 +0200)]
MXCSR is a 32bit unsigned int register
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_setcsr
Robin Gareus [Tue, 10 Sep 2019 02:09:22 +0000 (04:09 +0200)]
Fix ARM compilation
Robin Gareus [Tue, 10 Sep 2019 01:07:17 +0000 (03:07 +0200)]
Remove redundant call (moved to libardour)
Robin Gareus [Tue, 10 Sep 2019 01:06:21 +0000 (03:06 +0200)]
Engage thread-safe fftw planner in libardour
This way initialization happens constently, and independent from the GUI,
for session-utils, lua, headless..
Robin Gareus [Mon, 9 Sep 2019 16:54:49 +0000 (18:54 +0200)]
Implement denormal protection for ARM
Robin Gareus [Mon, 9 Sep 2019 16:48:16 +0000 (18:48 +0200)]
Use ProcessThread::init () to set up denormal protection
Modifying the MXCSR register only affects the current thread.
Robin Gareus [Mon, 9 Sep 2019 16:44:24 +0000 (18:44 +0200)]
Remove NO-OP; ProcessThread::init() does nothing
Robin Gareus [Mon, 9 Sep 2019 16:43:57 +0000 (18:43 +0200)]
Remove NO-OP, ProcessThread::init() does nothing
Robin Gareus [Mon, 9 Sep 2019 15:10:04 +0000 (17:10 +0200)]
When muting MIDI, silence all playing notes
All-note-off event (CC 123) needs to be accompanied
with raising the sustain-pedal (CC 64).
Robin Gareus [Mon, 9 Sep 2019 03:01:26 +0000 (05:01 +0200)]
Fix MIDI velocity scale for muted sends and manual faders
Do not send continuous stream of note-evens with zero velocity
after muting a MIDI track or after a fade to silence completed
(and all-notes-off has been sent).
NB. Automated Faders are left untouched (no panic is sent for -infdB gain),
Note-on events with zero velocity are sent.
Robin Gareus [Mon, 9 Sep 2019 02:14:57 +0000 (04:14 +0200)]
Report whether arlua is being built
Robin Gareus [Mon, 9 Sep 2019 02:10:59 +0000 (04:10 +0200)]
Send NoteOff on when muting MIDI, drop note events when silent
Len Ovens [Sun, 8 Sep 2019 17:04:14 +0000 (10:04 -0700)]
NO OP: clean up and rearrange things
Robin Gareus [Sun, 8 Sep 2019 20:33:01 +0000 (22:33 +0200)]
Tweak foldback style and tweak alignment
This tentatively re-uses nudge arrows for prev/next buttons,
and matches alignment of the top of the strips.
Len Ovens [Sat, 7 Sep 2019 21:51:01 +0000 (14:51 -0700)]
Foldback GUI: Add menus to send box
Len Ovens [Fri, 6 Sep 2019 18:26:43 +0000 (11:26 -0700)]
Match foldback strip BG to dark theme better
Robin Gareus [Fri, 6 Sep 2019 18:43:20 +0000 (20:43 +0200)]
NO-OP: whitespace
Robin Gareus [Fri, 6 Sep 2019 18:35:49 +0000 (20:35 +0200)]
Fix MSVC compilation
This resolves a circular dependency:
libardour calls methods from libardour_cp and vice versa.
Since
9bb2f2bb libardour is also calling active() and that method
needs to be forced to use late binding. -- compare to
b9bbea71748
Johannes Maibaum [Sun, 14 Jul 2019 12:47:47 +0000 (14:47 +0200)]
Add patchfiles/Moog_Slim_Phatty.midnam
Robin Gareus [Fri, 6 Sep 2019 16:33:48 +0000 (18:33 +0200)]
Improve Lua unit-test report
Robin Gareus [Fri, 6 Sep 2019 16:18:29 +0000 (18:18 +0200)]
Add Readme to the Lua script folder
Robin Gareus [Fri, 6 Sep 2019 16:17:23 +0000 (18:17 +0200)]
Another script to skip during unit-tests
Robin Gareus [Fri, 6 Sep 2019 13:39:54 +0000 (15:39 +0200)]
Fix LuaProc script-parse return status
Robin Gareus [Fri, 6 Sep 2019 01:09:39 +0000 (03:09 +0200)]
Remove ancient unit-test data
Evoral MIDI automation interpolation is tested separately,
there is no need to evaluate a complete old session
Robin Gareus [Fri, 6 Sep 2019 00:58:34 +0000 (02:58 +0200)]
Update template test session
Robin Gareus [Thu, 5 Sep 2019 23:37:00 +0000 (01:37 +0200)]
Shuttle Surface: handle libusb_init() failure
USB stack may not be available on some systems, e.g. unit-test VM.
When libusb_init(0) fails to create default context, further calls
into the libusb API will cause segfaults.
Robin Gareus [Thu, 5 Sep 2019 23:31:43 +0000 (01:31 +0200)]
Lua Fluid Synth example needs FluidR3_GM.sf2, skip unit-test
Robin Gareus [Thu, 5 Sep 2019 20:37:06 +0000 (22:37 +0200)]
Unit-test: parameter ranges outside [0..1]
More updates after
3d15499cdacacbafa32c8f
* set parameter-range for MIDI sequences
* set parameter-range for cubic spline
Robin Gareus [Thu, 5 Sep 2019 20:07:41 +0000 (22:07 +0200)]
Unit test all RegionEquivalence options
Robin Gareus [Thu, 5 Sep 2019 19:03:50 +0000 (21:03 +0200)]
Unit-test update: honor FadeInAutomation parameter-range
Since
3d15499cdacacbafa32c8f, libevoral enforces Parameter min/max
range. Ardour::ParameterDescriptor sets FadeInAutomation range to 0..2.
Hence all unit-test data needs to be in this range.
Robin Gareus [Thu, 5 Sep 2019 18:17:57 +0000 (20:17 +0200)]
Exclude Lua Convovler from unit-test (fails because of missing IR)
Robin Gareus [Thu, 5 Sep 2019 17:32:51 +0000 (19:32 +0200)]
Strict Ctrl surface unit-test: check re-activate.
Robin Gareus [Thu, 5 Sep 2019 17:04:32 +0000 (19:04 +0200)]
Reduce stdout/stderr clutter, prefer DEBUG_TRACE
Robin Gareus [Thu, 5 Sep 2019 16:59:26 +0000 (18:59 +0200)]
Prevent duplicate Ctrl-protocol instances
ControlProtocols are single instance.
Activating an already active protocol leads to crashes due to
various rasons (e.g. port already registered), re-used singleton
event_loop_name and request-buffers, duplicate free of
AbstractUI request buffers during deactivate,..
Robin Gareus [Thu, 5 Sep 2019 15:45:58 +0000 (17:45 +0200)]
Ignore <ExtendingDeviceNames> midnam during unit-test
So far Ardour only supports midnam descriptions that specify a
<MasterDeviceNames> directly.
Robin Gareus [Thu, 5 Sep 2019 15:42:19 +0000 (17:42 +0200)]
Fix paths to .midnam file
Robin Gareus [Thu, 5 Sep 2019 15:01:19 +0000 (17:01 +0200)]
New sessions are saved implicitly, remove explicit call
Robin Gareus [Thu, 5 Sep 2019 15:00:14 +0000 (17:00 +0200)]
Skip duplicate early session-save for new sessions
Identical code is called unconditionally at the end of
the Session c'tor via Session::session_loaded()
Robin Gareus [Thu, 5 Sep 2019 14:57:19 +0000 (16:57 +0200)]
Reset write-source only when necessary
When I/O port-counts do not change, plugin re-order happens
in sync in the process-thread. ::configure_io() is only called
to ensure that the current configuration is valid.
In case that the ChanCount does not change, the method must
be realtime-safe and not block.
DiskWriter::reset_write_sources() is not realtime-safe and
implicitly causes a session-save:
Write-sources are destroyed and re-created. This includes
a call to write_source->drop_references(), which triggers
ARDOUR::Session::remove_source(), which saves the session.
Furthermore adding/removing plugins will likewise call
::configure_io().
Previously any processor change on a track lead to
saving the session!
Robin Gareus [Thu, 5 Sep 2019 13:29:15 +0000 (15:29 +0200)]
Report Lua script that failed a unit-test
Robin Gareus [Thu, 5 Sep 2019 12:56:39 +0000 (14:56 +0200)]
Fix thinko/typo bug introduced in
e6c9bcfd07
Robin Gareus [Thu, 5 Sep 2019 12:52:08 +0000 (14:52 +0200)]
Update MClk unit-test - new transportmaster API
Robin Gareus [Thu, 5 Sep 2019 12:09:22 +0000 (14:09 +0200)]
Remove unused header (superseded by libtemporal)
Robin Gareus [Thu, 5 Sep 2019 12:08:31 +0000 (14:08 +0200)]
Fix libevoal unit-test compilation
Robin Gareus [Wed, 4 Sep 2019 22:40:48 +0000 (00:40 +0200)]
Use Fixed-length when drawing percussive events
Previously adding percussive-hits created sustained notes
using the current grid as duration. This allowed to create
overlapping notes with the overlap not being visible.
Most hardware MIDI drumkits do send an immediate note-off event
after each hit (if they send note-offs at all).
Ardour now follows suit and does the same when using the draw/edit tool.
Robin Gareus [Wed, 4 Sep 2019 20:56:31 +0000 (22:56 +0200)]
Amend
69a3b0b46e, remove CCs not used by fluidsynth
Robin Gareus [Wed, 4 Sep 2019 14:34:45 +0000 (16:34 +0200)]
Add script to set automation states of multiple controls
Len Ovens [Wed, 4 Sep 2019 04:44:14 +0000 (21:44 -0700)]
Move foldback strip to left of Master
Len Ovens [Wed, 4 Sep 2019 04:16:42 +0000 (21:16 -0700)]
Change back ground color for foldback strip
Robin Gareus [Wed, 4 Sep 2019 02:22:24 +0000 (04:22 +0200)]
Update Fluidsynth to v2.0.6-git
Robin Gareus [Wed, 4 Sep 2019 02:11:45 +0000 (04:11 +0200)]
Expose CCs that fluidsynth uses by default in midnam
Len Ovens [Wed, 4 Sep 2019 00:12:51 +0000 (17:12 -0700)]
Resize and color the foldback level knob
Robin Gareus [Tue, 3 Sep 2019 20:01:35 +0000 (22:01 +0200)]
Fix mute toggle actions when mute is automated
Track menu, as well as mixer-shortcut to set/unset mute
of selected tracks needs to send a start_touch() event, otherwise
the change is not effective.
Robin Gareus [Tue, 3 Sep 2019 12:26:01 +0000 (14:26 +0200)]
Scroll Lua scripts, now that there can be many
Robin Gareus [Tue, 3 Sep 2019 03:01:59 +0000 (05:01 +0200)]
Fix -Wsign-compare
Robin Gareus [Tue, 3 Sep 2019 02:55:08 +0000 (04:55 +0200)]
Fix -Wnon-virtual-dtor
Robin Gareus [Tue, 3 Sep 2019 02:52:01 +0000 (04:52 +0200)]
NO-OP: remove trailing whitespace