Commit graph

13934 commits

Author SHA1 Message Date
Johannes Mueller
8be06e6e63 Indicate input level in a-exp's inline display rather than output 2018-05-12 19:49:18 +02:00
Johannes Mueller
0eaf7b1e18 Increase the range of a-exp's ratio to make it usable like a gate 2018-05-12 19:49:18 +02:00
Johannes Mueller
0bc5a6f8e9 Make a-expander react probably on being disabled and enabled. 2018-05-12 19:49:18 +02:00
Johannes Mueller
2a5d56215c New visualization of the compressor state in graph view
To properly visualize attack and release we calculate the input level out of
the gain reduction the output level threshold and ratio.

if (output_level >= threshold) { // no expansion
        input_level = output_level
} else {
        input_level = (gain_reduction - threshold * (1-ratio)) / ratio
}
2018-05-12 19:49:18 +02:00
Johannes Mueller
48c568187d Fixed wrong initialization. 2018-05-12 19:49:18 +02:00
Johannes Mueller
37d2a7bc95 Adjust default parameters of a-expander 2018-05-12 19:49:18 +02:00
Johannes Mueller
bce3497d2a Changed attack and release behavior 2018-05-12 19:49:18 +02:00
Johannes Mueller
3620122ad0 First draft of a-expander 2018-05-12 19:49:18 +02:00
Ben Loftis
7a52428538 Plugin Order: remove from instant.xml and save to: plugin_metadata/plugin_order 2018-05-08 13:26:08 -05:00
Ben Loftis
a156f00617 Make note of Gesture messages in VST; for later. 2018-05-08 13:26:08 -05:00
Paul Davis
81bff2edee fix more cut-n-paste coding errors 2018-05-04 18:36:53 -04:00
Paul Davis
a5e8a69dec add well known controls to list accessible via a MIDI binding map (or OSC?) 2018-05-04 09:40:28 -04:00
Paul Davis
2e41652e61 internally, ControllableDescriptors (used by MIDI binding maps) should use enums for automation types, rather than something custom 2018-05-04 08:25:04 -04:00
Paul Davis
1f9963cd56 avoid compiler warning (timestamp is unsigned and is thus always >= 0 2018-05-04 08:25:04 -04:00
Paul Davis
37a9803542 avoid compiler warning on at least some linux versions 2018-05-04 08:25:04 -04:00
Robin Gareus
11b02e90ac NO-OP: a ToDo comment for discussion 2018-04-30 16:05:04 +02:00
Robin Gareus
6690e4d39d Fix issue with AU plugin-analysis
Copy c'tor needs to initialize "audio_input_cnt".
2018-04-26 23:41:49 +02:00
Robin Gareus
9bf40bde3a 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.
2018-04-24 18:15:31 +02:00
Damien Zammit
ffd8855391 ptformat: Update to upstream c0305a2 2018-04-22 12:53:42 +10:00
Robin Gareus
baba08c264 amend e1f94bbb4a (32/64bit int64 compat) 2018-04-19 18:32:33 +02:00
Robin Gareus
e1f94bbb4a 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.
2018-04-19 15:36:30 +02:00
Robin Gareus
4983eb565d 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.
2018-04-12 02:54:55 +02:00
Damien Zammit
d0539f5e8a ptformat: Update to upstream 762f0db 2018-04-08 20:24:53 +10:00
Damien Zammit
572b3940fb ptformat: Update to upstream d5a73a0 2018-04-08 15:31:52 +10:00
Robin Gareus
dd5f124c60 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".
2018-04-08 02:09:35 +02:00
Len Ovens
518f8108ac OSC make strippable null on drop references 2018-04-07 09:16:07 -07:00
Len Ovens
0e88eff05c Use precalulated value rather than recalculating 2018-04-07 09:16:07 -07:00
Len Ovens
b286f4f851 OSC: Setting strip types should clear temporary custom modes 2018-04-07 09:16:07 -07:00
Robin Gareus
b15d80ca77 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.
2018-04-07 00:16:57 +02:00
Robin Gareus
868eec264f Implement VST UI touch (begin/end Edit) 2018-04-02 22:33:11 +02:00
Robin Gareus
37df98d0af 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.
2018-03-29 18:15:20 +02:00
Robin Gareus
dd83d25baf NO-OP: prefer binary OR to set midi-status byte 2018-03-28 00:32:32 +02:00
Paul Davis
224295266f 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
2018-03-26 18:26:39 -04:00
Paul Davis
ddfc37e42a fix binding to long-press for User button on FaderPort 2018-03-26 13:56:50 -04:00
John Emmas
7b42c7e361 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??)
2018-03-22 10:54:21 +00:00
Len Ovens
c177434669 OSC: Change custom mode to enum 2018-03-20 14:37:40 -07:00
Robin Gareus
1e50562d8a Fix call to labs.
..or as clang puts it:
"error: no member named 'labs' in namespace 'std'; did you mean
 simply 'labs'?"
2018-03-20 19:16:37 +01:00
Len Ovens
5385aece94 OSC: a strip controlling a send should deactivate other controls 2018-03-20 08:43:10 -07:00
Len Ovens
bfbab2d0b5 OSC: Add feedback for bus_only mode and automation and pan 2018-03-20 08:43:10 -07:00
Len Ovens
29975638c0 OSC: select should have latch too. 2018-03-20 08:43:10 -07:00
Len Ovens
c768aeabc4 OSC: Add bus only mode for gain controls 2018-03-20 08:43:10 -07:00
Robin Gareus
2fa6314fb4 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).
2018-03-19 02:43:03 +01:00
Robin Gareus
f2ca0c144b 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.
2018-03-19 02:23:09 +01:00
Robin Gareus
1de8bc3617 Remove C++11isms (libptformat) 2018-03-17 19:59:38 +01:00
Damien Zammit
cce575eb72 ptformat: Update to upstream master 4e653041
- Better MIDI support
2018-03-17 22:40:16 +11:00
Robin Gareus
d52967aa62 Expose a few more PluginInsert methods to Lua 2018-03-16 15:33:56 +01:00
Robin Gareus
c656aaab3c VCA API-change: return created VCAs (handy for Lua scripts) 2018-03-15 20:25:27 +01:00
Robin Gareus
3cd79cd80f Sort generic-midi bindings alphabetically 2018-03-13 16:18:03 +01:00
Len Ovens
74c4e4a6d8 OSC: group commands should feedback all off if no group 2018-03-12 16:03:53 -07:00
Len Ovens
98d6fe9c91 OSC: fix /strip/hidden feedback excess 2018-03-10 13:07:13 -08:00