13
0
Commit Graph

26284 Commits

Author SHA1 Message Date
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
5132a6c2eb 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
2018-03-28 14:24:21 -04:00
dd83d25baf NO-OP: prefer binary OR to set midi-status byte 2018-03-28 00:32:32 +02:00
1de68d7917 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")
2018-03-28 00:18:13 +02:00
9840f84830 duplicate (regions) should honor ripple edit mode 2018-03-27 10:19:12 -04:00
929cea9ef4 Remove debug message and trailing whitespace 2018-03-27 15:30:48 +02:00
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
ddfc37e42a fix binding to long-press for User button on FaderPort 2018-03-26 13:56:50 -04:00
a4df6e565b Fix MIDI-port info in plugin-manager 2018-03-24 20:05:17 +01:00
Nikolaus Gullotta
4e04da667c assert(rv) removed, fixed redundant checking, and fixed proc ordering issue caused by commit c7f7347 2018-03-23 09:01:38 -05:00
Nikolaus Gullotta
c7f7347822 better group support + mute and solo recall 2018-03-22 10:03:09 -05:00
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
c177434669 OSC: Change custom mode to enum 2018-03-20 14:37:40 -07:00
Nikolaus Gullotta
cbb039b9f6 more stability fixes 2018-03-20 15:41:20 -05:00
Nikolaus Gullotta
f1dc39bb82 fixed processor ordering crash in ardour and added group support (kinda) 2018-03-20 13:23:04 -05:00
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
e7f6eff84b 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).
2018-03-20 18:08:12 +01:00
5385aece94 OSC: a strip controlling a send should deactivate other controls 2018-03-20 08:43:10 -07:00
bfbab2d0b5 OSC: Add feedback for bus_only mode and automation and pan 2018-03-20 08:43:10 -07:00
29975638c0 OSC: select should have latch too. 2018-03-20 08:43:10 -07:00
c768aeabc4 OSC: Add bus only mode for gain controls 2018-03-20 08:43:10 -07:00
Nikolaus Gullotta
9ca094d9f6 Fixed issue in plugin id invalidator caused by commit d5d5c0c 2018-03-19 13:30:19 -05:00
Nikolaus Gullotta
d5d5c0c026 cleanup, fix in-on-change issue. 2018-03-19 12:25:21 -05:00
3ee2c3d632 Lua is not an acronym 2018-03-19 18:18:35 +01:00
efbfbb8330 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
2018-03-19 18:13:37 +01:00
ecb6e7fcfe 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.
2018-03-19 15:43:07 +01:00
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
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
2092934721 Example Lua script to perform action at specific wallclock time 2018-03-18 15:56:28 +01:00
5e2d5db6c7 Fix midi track mapping on pt import 2018-03-18 11:41:54 +11:00
1231a0805a Remove calls to deprecated Lua bitlib 2018-03-17 21:13:06 +01:00
c2ed125b8d Remove another C++11 construct (local struct) from UI code 2018-03-17 20:00:08 +01:00
1de8bc3617 Remove C++11isms (libptformat) 2018-03-17 19:59:38 +01:00
37e5b705e7 Fix wrong "_nth_" replacement in ba202cc09 2018-03-17 18:17:25 +01:00
ba202cc095 Don't alter, use and rely on selection for PT import 2018-03-17 17:32:29 +01:00
a36901a0d9 NO-OP: C++ify code
* remove typdef for struct
* Remove {} struct initializer, use a dedicated c'tor
* scope variables
2018-03-17 17:21:21 +01:00
9777baae00 NO-OP: whitespace
* distinguish comments and commented-out-code
* add space after function, before bracket
2018-03-17 17:15:44 +01:00
8b925fc395 PT import: Use multitrack MIDI import support based on ptformat update 2018-03-17 22:41:44 +11:00
cce575eb72 ptformat: Update to upstream master 4e653041
- Better MIDI support
2018-03-17 22:40:16 +11:00
f33cd95047 Startup Dialog: A change to the monitor selection should trigger a write to config. 2018-03-16 16:34:23 -05:00
Nikolaus Gullotta
3e103dbfcb add support to reinstantiate deleted plugins 2018-03-16 11:12:09 -05:00
Nikolaus Gullotta
8ec3aa1eec NO-OP: Convert Spaces to Tabs 2018-03-16 11:12:09 -05:00
Nikolaus Gullotta
a09111447f description changes and stop jumping instructions if proc:isnil() 2018-03-16 11:12:09 -05:00
d52967aa62 Expose a few more PluginInsert methods to Lua 2018-03-16 15:33:56 +01:00
7b597055ee GUI: create_vca() API change 2018-03-15 20:25:27 +01:00
c656aaab3c VCA API-change: return created VCAs (handy for Lua scripts) 2018-03-15 20:25:27 +01:00
Nikolaus Gullotta
51a0a2f74c re-add plugin bypass state and move proc order writing closer to top 2018-03-14 14:44:58 -05:00
Nikolaus Gullotta
fff345d48a I said, LESS ugly, not more :) 2018-03-13 14:51:47 -05:00
Nikolaus Gullotta
8c0c7260aa Now recalls plug-in ordering (also looks a bit less ugly hopefully? 2018-03-13 14:26:27 -05:00
7890
00e1e12baa Add Midnam for Roland TB-03
Named controllers according to MIDI implementation chart.
https://www.roland.com/global/support/by_product/tb-03/
2018-03-13 16:18:23 +01:00