Ben Loftis [Wed, 2 May 2018 21:37:14 +0000 (16:37 -0500)]
Replace the check for SnapPref, which went missing. Some functions (like playhead_to_next_grid) can request GridOnly.
Paul Davis [Fri, 4 May 2018 22:36:53 +0000 (18:36 -0400)]
fix more cut-n-paste coding errors
Paul Davis [Fri, 4 May 2018 13:40:28 +0000 (09:40 -0400)]
add well known controls to list accessible via a MIDI binding map (or OSC?)
Paul Davis [Fri, 4 May 2018 12:24:07 +0000 (08:24 -0400)]
internally, ControllableDescriptors (used by MIDI binding maps) should use enums for automation types, rather than something custom
Paul Davis [Fri, 4 May 2018 12:23:29 +0000 (08:23 -0400)]
avoid compiler warning (timestamp is unsigned and is thus always >= 0
Paul Davis [Fri, 4 May 2018 12:23:01 +0000 (08:23 -0400)]
avoid compiler warning on at least some linux versions
Robin Gareus [Mon, 30 Apr 2018 20:24:35 +0000 (22:24 +0200)]
Add option to disable plotting collected signal in analysis.
Robin Gareus [Mon, 30 Apr 2018 14:04:22 +0000 (16:04 +0200)]
NO-OP: a ToDo comment for discussion
Robin Gareus [Thu, 26 Apr 2018 21:41:15 +0000 (23:41 +0200)]
Fix issue with AU plugin-analysis
Copy c'tor needs to initialize "audio_input_cnt".
Robin Gareus [Tue, 24 Apr 2018 16:15:07 +0000 (18:15 +0200)]
Use URIs to identify plugin-presets
This fixes duplicate AU presets when adding a new preset.
Presets are kept in a std::map<URI,...> adding a new presets uses
the file-URI as ID. Loaded presets needs to have the same URI.
Damien Zammit [Sun, 22 Apr 2018 02:49:43 +0000 (12:49 +1000)]
ptformat: Update to upstream
c0305a2
Robin Gareus [Fri, 20 Apr 2018 16:22:20 +0000 (18:22 +0200)]
Use https for harrison channelstrip (windows-builds)
Robin Gareus [Thu, 19 Apr 2018 16:32:33 +0000 (18:32 +0200)]
amend
e1f94bbb4a (32/64bit int64 compat)
Robin Gareus [Thu, 19 Apr 2018 13:36:01 +0000 (15:36 +0200)]
Fix 32bit builds
Unsigned long is 32bit on 32bit systems, besides sampleoffset and start
variables are signed int64_t.
resulting in a compiler error:
integer constant is too large for 'unsigned long' type.
Robin Gareus [Fri, 13 Apr 2018 21:19:13 +0000 (23:19 +0200)]
Fix plugin analysis for some VST and AU Plugins.
set_block_size() implies plugin deactivate(), activate() calls
to re-initialize AU and VST plugins. So plugins will reset the
internal state and not immediately respond correctly.
Some plugins zero the output or ramp up internally, leading the analyzer
to show invalid or random/uncorrelated information.
This avoid periodic calls to de/activate()
Robin Gareus [Thu, 12 Apr 2018 00:34:19 +0000 (02:34 +0200)]
Only update tooltips if there is an actual change -- #7268
Changing a tooltip resets the timeout. In one particular case,
while rolling, AudioClock::set() is calling set_tooltip() at a rate
faster than the tooltip timeout and prevents tooltip from showing at all
(even if there is no actual change to the tooltip text).
Alas, there is no trivial fix for this UI side and there may be other
such cases. A central check is more than practical.
Damien Zammit [Sun, 8 Apr 2018 10:19:14 +0000 (20:19 +1000)]
ptformat: Update to upstream
762f0db
Damien Zammit [Sun, 8 Apr 2018 05:28:31 +0000 (15:28 +1000)]
pt import: Add commented out code for inserting silent missing sources
- Disabled due to ptformat not knowing the length of sources
- Added MIDI region/track summary information to dialog
Damien Zammit [Sun, 8 Apr 2018 05:27:21 +0000 (15:27 +1000)]
ptformat: Update to upstream
d5a73a0
Robin Gareus [Sun, 8 Apr 2018 00:05:16 +0000 (02:05 +0200)]
Fix crash when testing unsupported MIDI file
smf_delete() does not handle NULL, and segfaults instead.
This only crashes with optimized builds.
libsmf will call g_critical() earlier and in that case debug-builds
call UI::handle_fatal() and ask the user to "click to exit".
Len Ovens [Sat, 7 Apr 2018 16:11:45 +0000 (09:11 -0700)]
OSC make strippable null on drop references
Len Ovens [Wed, 21 Mar 2018 22:31:23 +0000 (15:31 -0700)]
Use precalulated value rather than recalculating
Len Ovens [Wed, 21 Mar 2018 21:50:27 +0000 (14:50 -0700)]
OSC: Setting strip types should clear temporary custom modes
Robin Gareus [Fri, 6 Apr 2018 22:16:57 +0000 (00:16 +0200)]
Fix VstParameterProperties (bug from
ac03e4a93)
This fixes VST parameter prop.flags (toggle, integer-step).
VestigeMaxLabelLen is used in various places in libardour, most notably
with effGetParamName.
Robin Gareus [Mon, 2 Apr 2018 20:33:11 +0000 (22:33 +0200)]
Implement VST UI touch (begin/end Edit)
Nikolaus Gullotta [Thu, 29 Mar 2018 15:21:09 +0000 (10:21 -0500)]
lots of changes including: ability to store and recall more than one mixer state, ability to work on selected tracks only, plus bugfixes and removal of redundant checks
Julien "_FrnchFrgg_" RIVAUD [Fri, 30 Mar 2018 18:52:48 +0000 (20:52 +0200)]
Fix a French translation
It conveyed the idea of continuous silencing as long as the transport
is in a stopped state. Make it correctly mean a one-shot reset when the
transport is being stopped.
Robin Gareus [Thu, 29 Mar 2018 16:15:20 +0000 (18:15 +0200)]
CoreAudio/MIDI: add locks for port-registration
CoreMIDI ports are dynamic. When dis/connecting a device CoreAudio's
AudioHardware-PropertyListener triggers a callback which can
add/remove ports.
This can not happen concurrently with processing, but it may happen
concurrently with a user creating tracks using Ardour's UI
and/or session-load/setup.
Paul Davis [Wed, 28 Mar 2018 18:24:15 +0000 (14:24 -0400)]
fix undo/redo for duplicate-regions in ripple mode
Also fix duplicate of multiple regions in the same track, and change "gap" variable
name to "span" for greater clarity
Robin Gareus [Tue, 27 Mar 2018 22:32:32 +0000 (00:32 +0200)]
NO-OP: prefer binary OR to set midi-status byte
Robin Gareus [Tue, 27 Mar 2018 22:13:30 +0000 (00:13 +0200)]
Sparse update for granular controls on sliders
Don't call ::set_value() if the actual value has not changed.
e.g. MIDI-CC or integer controls. Moving the Bar-controller was able to
create events even though the actual value remained unchanged.
This check has to be done UI-side, since the underlying API is also used
for state-restore and automation. e.g.
"old value" (user-set) may be default "0", "new value" may also be "0" but
libardour still needs to send an event (a synth's internal state may not
default to "0")
Paul Davis [Tue, 27 Mar 2018 14:17:33 +0000 (10:17 -0400)]
duplicate (regions) should honor ripple edit mode
Robin Gareus [Tue, 27 Mar 2018 13:30:34 +0000 (15:30 +0200)]
Remove debug message and trailing whitespace
Paul Davis [Mon, 26 Mar 2018 22:26:39 +0000 (18:26 -0400)]
faderport: make ::invoke() tell us whether or not something was actually invoked for a button event
Only put the button into "consumed" if it actually invoked something.
This helps to get reverse-polarity footswitches to work as expected
Paul Davis [Mon, 26 Mar 2018 17:56:50 +0000 (13:56 -0400)]
fix binding to long-press for User button on FaderPort
Robin Gareus [Sat, 24 Mar 2018 19:05:17 +0000 (20:05 +0100)]
Fix MIDI-port info in plugin-manager
Nikolaus Gullotta [Fri, 23 Mar 2018 14:00:51 +0000 (09:00 -0500)]
assert(rv) removed, fixed redundant checking, and fixed proc ordering issue caused by commit
c7f7347
Nikolaus Gullotta [Wed, 21 Mar 2018 16:52:21 +0000 (11:52 -0500)]
better group support + mute and solo recall
John Emmas [Thu, 22 Mar 2018 10:54:21 +0000 (10:54 +0000)]
MSVC won't allow us to cast directly from float to an enum. We need to kludge it by first casting to an integer type
(is it safe to be casting from float to enum anyway??)
Len Ovens [Tue, 20 Mar 2018 21:37:08 +0000 (14:37 -0700)]
OSC: Change custom mode to enum
Nikolaus Gullotta [Tue, 20 Mar 2018 20:41:20 +0000 (15:41 -0500)]
more stability fixes
Nikolaus Gullotta [Tue, 20 Mar 2018 18:01:48 +0000 (13:01 -0500)]
fixed processor ordering crash in ardour and added group support (kinda)
Robin Gareus [Tue, 20 Mar 2018 18:16:37 +0000 (19:16 +0100)]
Fix call to labs.
..or as clang puts it:
"error: no member named 'labs' in namespace 'std'; did you mean
simply 'labs'?"
Robin Gareus [Tue, 20 Mar 2018 17:07:55 +0000 (18:07 +0100)]
Fix crash when re-assigning groups to a disjunct set.
Drag a group-tab's right-edge horizontally to the right to remove all
current routes from the groups before adding new routes to the group.
The group becomes temporarily empty, and
Session::route_removed_from_route_group() removes the group (before new
routes can be added).
Len Ovens [Tue, 20 Mar 2018 15:41:06 +0000 (08:41 -0700)]
OSC: a strip controlling a send should deactivate other controls
Len Ovens [Sun, 18 Mar 2018 06:10:16 +0000 (23:10 -0700)]
OSC: Add feedback for bus_only mode and automation and pan
Len Ovens [Sun, 18 Mar 2018 06:07:44 +0000 (23:07 -0700)]
OSC: select should have latch too.
Len Ovens [Sat, 17 Mar 2018 18:00:59 +0000 (11:00 -0700)]
OSC: Add bus only mode for gain controls
Nikolaus Gullotta [Mon, 19 Mar 2018 18:30:19 +0000 (13:30 -0500)]
Fixed issue in plugin id invalidator caused by commit
d5d5c0c
Nikolaus Gullotta [Mon, 19 Mar 2018 17:24:46 +0000 (12:24 -0500)]
cleanup, fix in-on-change issue.
Robin Gareus [Mon, 19 Mar 2018 17:18:35 +0000 (18:18 +0100)]
Lua is not an acronym
Robin Gareus [Mon, 19 Mar 2018 17:13:37 +0000 (18:13 +0100)]
Speed up plugin-selector refill.
* Detach model from treeview and disable sorting during refill.
* Prevent multiple re-fills due to sensitivity updates of ComboBoxes:
gtk_widget_set_sensitive() -> CairoWidget::on_state_changed ()
-> CairoWidget::set_visual_state () -> StateChanged Signal
Robin Gareus [Mon, 19 Mar 2018 14:43:07 +0000 (15:43 +0100)]
Fix "Shortcut" special-case in the script-selector.
The Script-selector is used in various places, not just for
Action-scripts.
Also add a "--" prefix for the separator to avoid name conflicts with
actual script names.
Robin Gareus [Mon, 19 Mar 2018 01:26:24 +0000 (02:26 +0100)]
Lua: Lock bindings into memory for rt-scripts
Empirically this decreases gc-spike duration (worst-case) by a factor of
two and speeds up the average gc-run by a factor of over 4 (depending
on the amount of memory used by the plugin).
Robin Gareus [Mon, 19 Mar 2018 00:33:13 +0000 (01:33 +0100)]
Customize Lua GC, add object-memory-lock API.
Add custom API to prevent Lua Objects from being garbage collected.
This is intended to for Ardour LuaBridge bindings (~1MB Objects:
tables, functions and userdata).
The bindings are persistent and the gc can skip them in mark & sweep
phases. This is a significant performance improvement for garbage
collection.
Note. The next version of Lua (5.4) will come with a generational-gc
rather than an incremental, so extending the API at this point in time
is acceptable.
Robin Gareus [Sun, 18 Mar 2018 14:56:06 +0000 (15:56 +0100)]
Example Lua script to perform action at specific wallclock time
Damien Zammit [Sun, 18 Mar 2018 00:39:53 +0000 (11:39 +1100)]
Fix midi track mapping on pt import
Robin Gareus [Sat, 17 Mar 2018 20:13:06 +0000 (21:13 +0100)]
Remove calls to deprecated Lua bitlib
Robin Gareus [Sat, 17 Mar 2018 19:00:08 +0000 (20:00 +0100)]
Remove another C++11 construct (local struct) from UI code
Robin Gareus [Sat, 17 Mar 2018 18:59:38 +0000 (19:59 +0100)]
Remove C++11isms (libptformat)
Robin Gareus [Sat, 17 Mar 2018 17:17:25 +0000 (18:17 +0100)]
Fix wrong "_nth_" replacement in
ba202cc09
Robin Gareus [Sat, 17 Mar 2018 16:32:29 +0000 (17:32 +0100)]
Don't alter, use and rely on selection for PT import
Robin Gareus [Sat, 17 Mar 2018 16:21:21 +0000 (17:21 +0100)]
NO-OP: C++ify code
* remove typdef for struct
* Remove {} struct initializer, use a dedicated c'tor
* scope variables
Robin Gareus [Sat, 17 Mar 2018 16:15:44 +0000 (17:15 +0100)]
NO-OP: whitespace
* distinguish comments and commented-out-code
* add space after function, before bracket
Damien Zammit [Sat, 17 Mar 2018 11:41:44 +0000 (22:41 +1100)]
PT import: Use multitrack MIDI import support based on ptformat update
Damien Zammit [Sat, 17 Mar 2018 11:40:16 +0000 (22:40 +1100)]
ptformat: Update to upstream master
4e653041
- Better MIDI support
Ben Loftis [Fri, 16 Mar 2018 21:34:09 +0000 (16:34 -0500)]
Startup Dialog: A change to the monitor selection should trigger a write to config.
Nikolaus Gullotta [Fri, 16 Mar 2018 16:11:54 +0000 (11:11 -0500)]
add support to reinstantiate deleted plugins
Nikolaus Gullotta [Thu, 15 Mar 2018 18:36:25 +0000 (13:36 -0500)]
NO-OP: Convert Spaces to Tabs
Nikolaus Gullotta [Wed, 14 Mar 2018 19:51:37 +0000 (14:51 -0500)]
description changes and stop jumping instructions if proc:isnil()
Robin Gareus [Fri, 16 Mar 2018 14:33:56 +0000 (15:33 +0100)]
Expose a few more PluginInsert methods to Lua
Robin Gareus [Thu, 15 Mar 2018 19:25:14 +0000 (20:25 +0100)]
GUI: create_vca() API change
Robin Gareus [Thu, 15 Mar 2018 19:24:53 +0000 (20:24 +0100)]
VCA API-change: return created VCAs (handy for Lua scripts)
Nikolaus Gullotta [Wed, 14 Mar 2018 14:58:56 +0000 (09:58 -0500)]
re-add plugin bypass state and move proc order writing closer to top
Nikolaus Gullotta [Tue, 13 Mar 2018 19:51:47 +0000 (14:51 -0500)]
I said, LESS ugly, not more :)
Nikolaus Gullotta [Tue, 13 Mar 2018 19:26:27 +0000 (14:26 -0500)]
Now recalls plug-in ordering (also looks a bit less ugly hopefully?
7890 [Sun, 4 Feb 2018 09:10:00 +0000 (10:10 +0100)]
Add Midnam for Roland TB-03
Named controllers according to MIDI implementation chart.
https://www.roland.com/global/support/by_product/tb-03/
Robin Gareus [Tue, 13 Mar 2018 15:17:31 +0000 (16:17 +0100)]
Sort generic-midi bindings alphabetically
Robin Gareus [Tue, 13 Mar 2018 14:55:33 +0000 (15:55 +0100)]
Novation LaunchKey 49 bindings from Michael McLeod
Len Ovens [Tue, 13 Mar 2018 15:05:41 +0000 (08:05 -0700)]
Same for midi input enable button
Len Ovens [Mon, 12 Mar 2018 23:02:45 +0000 (16:02 -0700)]
Trim and vca button should also be insensitive in strip aux mode
Len Ovens [Sat, 10 Mar 2018 21:58:31 +0000 (13:58 -0800)]
OSC: group commands should feedback all off if no group
Nikolaus Gullotta [Mon, 12 Mar 2018 20:31:33 +0000 (15:31 -0500)]
Initial checkin of mixer store script
Ben Loftis [Sun, 11 Mar 2018 19:42:00 +0000 (14:42 -0500)]
Tweak logic in master-bus packing to make it clearer; will also minimize conflicts with Mixbus.
Len Ovens [Sat, 10 Mar 2018 21:06:17 +0000 (13:06 -0800)]
OSC: fix /strip/hidden feedback excess
Len Ovens [Sat, 10 Mar 2018 20:58:14 +0000 (12:58 -0800)]
OSC: change group sharing to individual commands
Send less feedback for group name and sharing
Len Ovens [Wed, 7 Mar 2018 20:36:56 +0000 (12:36 -0800)]
OSC: set surface should reset custom mode
Len Ovens [Wed, 7 Mar 2018 20:20:30 +0000 (12:20 -0800)]
OSC: Display only strips controlled by selected VCA
Len Ovens [Wed, 7 Mar 2018 18:41:07 +0000 (10:41 -0800)]
OSC: add set VCA for slavable strip
Len Ovens [Wed, 7 Mar 2018 17:38:38 +0000 (09:38 -0800)]
OSC: Added slaved feedback to select
Len Ovens [Wed, 7 Mar 2018 16:49:57 +0000 (08:49 -0800)]
Add virtual slaved, slaved_to calls to stripable
Len Ovens [Sun, 4 Mar 2018 23:46:09 +0000 (15:46 -0800)]
OSC: check route exists
Robin Gareus [Wed, 7 Mar 2018 23:37:54 +0000 (00:37 +0100)]
Safeguard against possibly invalid peak-requests
It may happen that WaveView requests a range that is larger than
the data on disk.
If start > _length, cnt becomes negative and the function will throw
or segfault.
Robin Gareus [Tue, 6 Mar 2018 20:46:35 +0000 (21:46 +0100)]
Allow loadfile in non-rt scripts
Nikolaus Gullotta [Tue, 6 Mar 2018 16:45:55 +0000 (10:45 -0600)]
Initial check in of EditorHook script transparent_regions.lua
Jan Lentfer [Sat, 3 Mar 2018 13:04:12 +0000 (14:04 +0100)]
generic_midi: add proper handling of midi controll toggles
Ben Loftis [Fri, 2 Mar 2018 23:35:18 +0000 (17:35 -0600)]
Unrecognized plugins are stored in the tagfile (FromPlug); but only set the user_set flag if the user actually edited it.
Ben Loftis [Fri, 2 Mar 2018 21:57:58 +0000 (15:57 -0600)]
Allow successive changes from the Gui to set tags.
Robin Gareus [Fri, 2 Mar 2018 15:13:37 +0000 (16:13 +0100)]
Remove interpolation unit-test (fails to compile)
Ardour vari-speed does no longer use ARDOUR::CubicInterpolation
and LinearInterpolation was removed.
vari-speed is now using zita-resampler.
Robin Gareus [Fri, 2 Mar 2018 15:11:21 +0000 (16:11 +0100)]
Fix gcc-4.2 OSX/PPC builds
ambiguity between
reverse_iterator rend();
const_reverse_iterator rend() const;