13
0
Commit Graph

13953 Commits

Author SHA1 Message Date
66fa0778ab OSC: Allow surface to change route comment. 2018-02-18 09:16:16 -08:00
0b3026d388 Drop-shadow spacer; for theming. 2018-02-17 22:25:39 -06:00
4c7ad5db4d Fix long-standing bug in spacer expose+render. 2018-02-17 16:46:04 -06:00
a29d3c1b31 OSC: Select should be able to rename as well. 2018-02-16 22:54:16 -08:00
dffecfa4c6 OSC: added group join, switch, remove function 2018-02-16 13:10:20 -08:00
3504ecff5f noop OSC: path strings should not get tranlated 2018-02-16 13:10:20 -08:00
3ac47220a0 OSC: Add /group/list so surface can get a list of groups 2018-02-16 13:10:20 -08:00
b9c9777b9a When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format 2018-02-15 09:03:32 +00:00
208c781248 Auto-monitor == Cue for MIDI tracks. 2018-02-14 18:04:57 -06:00
6f019faaa0 Accommodate the change from libtimecode to libtemporal 2018-02-14 10:02:11 +00:00
870c046c4c Users struggle with Pane Dividers. Make them larger, and set a min-size on the mixer list pane. 2018-02-12 16:16:09 -06:00
9a20433d98 fix definition of Temporal::Beats::max()
Ticks can exceed PPQN, but if beats are already INT32_MAX, ::normalize() will not work correctly
2018-02-12 11:44:37 -06:00
e6da4c4846 SoloSelection: libardour part. 2018-02-11 09:39:36 -06:00
11e50fe0c5 Resolve a few -Wunused-variable warnings in US2400. 2018-02-10 22:43:53 -06:00
b1d7eabf54 iCon device tweaks: faster timecode display refresh rate. Submitted by Michal Barhon. 2018-02-10 22:43:53 -06:00
ff319ce63f Resolve -Wreorder in qcon code. 2018-02-10 22:43:42 -06:00
dc61256466 new_grid: Rewrite of Snap and Grid. (squashed commit)
Separate Snap from Grid.  Lots of naming changes.
Multiple simultaneous snap options allowed. Grid is one of the possible Snap options.
Grid uses the same data as the rulers.  Replace complicated tempo_lines with simple grid_lines.
The Grid is zoom-scale-sensitive along with the rulers.  If you are zoomed out, grid becomes coarser.
2018-02-09 09:59:39 -06:00
70d8300cb2 OSC: clean up jog mode, simplify feedback 2018-02-05 10:40:25 -08:00
ea1740d65f MSVC only allows static class members to be initialised in the class declaration 2018-02-03 14:58:45 +00:00
2124fb72ea Make sure that 'libardour-config,h' only gets #included when building with waf (as it only gets generated when building with waf)
When building with MSVC this was getting #included in a few places which had the effect of making my session files get generated in a very old format.
2018-02-03 13:58:22 +00:00
b69d818ce9 Further defer changes of plugin Tags+Status, and consolidate code to call PluginListChanged only once. 2018-02-02 19:25:01 -06:00
3aacdd79ae Fixes for the iCON Qcon mcp device - LED rings. Submitted by Michal Barhon : mbarhon@seznam.cz 2018-02-02 09:27:37 -06:00
16a5e3ce55 OSC: jog mode and jog mode name should be sent at refresh 2018-02-01 22:03:04 -08:00
ae3d9deefb Support for the iCON Qcon mcp device - sysex strings. Submitted by Michal Barhon. 2018-02-01 14:39:59 -06:00
f549fcfb76 OSC: Add group name feedback to strips 2018-01-31 11:48:10 -08:00
09ca375e15 Allow to filter tags by hidden + favorite
This in preparation to not populate context-menus with unused tags.
2018-01-31 14:02:44 +01:00
d97973925d const where const is due 2018-01-31 12:45:58 +01:00
141e6f848e Text case change (_VSTInfo::Category needs to be capitalized) 2018-01-31 11:01:56 +00:00
6ce0a27e0f Fix editing/replacing plugin-tags 2018-01-30 20:03:13 +01:00
fe63db8697 Ardour Button Toggle explosion
Add option to use ArduorButton as standalone Toggle/Checkbox.
Usually ArdourButton relegates this to Actions or is backed by Config.
This allows to use the Button as standalone Toggle, get_active()
It should maybe be a derived Class, but ArdourButton is already beyond
that..
2018-01-30 19:52:27 +01:00
1dd32bae94 Move LADSPA Author string sanitation to libardour.
(Also allow dot as valid char: e.g. "James T. Kirk" but keep stripping
common suffixes like <e@mail>.
2018-01-30 19:52:09 +01:00
5cbd978735 ArdourButton: honor text-ellipsis width for size-request 2018-01-30 16:27:18 +01:00
f979463cfe Add ArdourDropdown API for use as dumb text dropdown. 2018-01-30 15:21:45 +01:00
fa676eb784 Add backend-API to reset plugin tags 2018-01-30 13:10:00 +01:00
19f62d331c Fix plugin factory tags
* tag-file is loaded early on (before scanning plugin) retain factory
  set tag from file, don't use plugin-categories.
* load user plugin-tag file after factory plugin-tag file
2018-01-30 03:59:58 +01:00
73bafc36ea Clean up tag tokenization code
* accept " ,\n" as separator
* produce only " " as separator
* squelch error message for empty-string tokenization
* clean up code, use existing API methods for lower-case transform
2018-01-30 03:12:09 +01:00
257a1dde91 Remove unused API 2018-01-30 01:34:43 +01:00
34f9bd502b NO-OP: whitespace 2018-01-30 01:34:29 +01:00
3eb6a40ce4 Update PluginManager: implement plugin tags
* move plugin-meta-data (status, tag) into dedicated sub-dir
* load/save space separated tags
* pre-seed tags with plugin-category (if unset)
* breaking API change: PluginStatusesChanged() signal includes change
2018-01-30 01:34:14 +01:00
b8491014a5 Update plugin classification
* dedicated API for classes (effect, instrument, util)
* prepare for tags (rather than categories)
* prepare removal of per-plugin in_category() API
2018-01-30 01:33:48 +01:00
4d173d6048 Prepare plugin-meta-data config-dir and files 2018-01-30 01:33:45 +01:00
11d2077b43 FP8/16: Update Plugin List when Selection changes. 2018-01-27 20:56:13 +01:00
0aa0d49a4d FP8/16: Don't show Channelstrip as Plugin, use well-known API only 2018-01-27 20:53:31 +01:00
d3a74d3c70 Fix some small memory leak (libardour) 2018-01-27 15:45:12 +01:00
48c1a24284 Fix some clang warnings (argument with 'nonnull' attribute passed null) 2018-01-26 18:07:23 +01:00
c1632635b5 OSC: reorder /set_surface parameters to fit manual
remove unused call
2018-01-24 08:17:45 -08:00
5e4aa5455e OSC: Make sure observers are restarted if port changes 2018-01-24 08:17:45 -08:00
ea0808de2d OSC: Allow Surface to set it's own receive port 2018-01-24 08:17:45 -08:00
f7ec31d95d OSC: allow each surface to set portmode for that IP. 2018-01-24 08:17:45 -08:00
d785883836 Fix FP16 Solo (0x53 is mapped to encoder-press, 0x56 to loop) 2018-01-23 19:00:18 +01:00
Hiroki Inagaki
277c75c894 Update Japanese translation 2018-01-23 12:14:36 +01:00
b88fd1e6ca Fix Export-format timecode spec (frames: timecode frames)
undo/fix 30b087ab3d
2018-01-21 11:00:57 +01:00
c833b56029 Explicit encoding for bindings html. 2018-01-17 16:52:16 +01:00
e3457977c9 Add Lua bindings to change Location/Maker names 2018-01-15 17:26:24 +01:00
1ebe6cdf07 OSC: Added feedback for /strip/hide 2018-01-14 13:07:40 -08:00
c7a052a45f OSC: add /strip/hide 2018-01-14 13:07:40 -08:00
ef1301759d OSC: Add feedback for hidden strip 2018-01-13 08:41:58 -08:00
e51c5ab76a OSC: add /select/hide 2018-01-13 07:58:37 -08:00
40498f841d Refine 31f79489, de-duplicate AU I/O configurations 2018-01-12 01:09:45 +01:00
31f7948936 Fix AU i/o busses accounting.
This fixes issues for synths with zero audio input, explicit default
stereo config and optional busses.
2018-01-11 20:18:00 +01:00
7d6e6424c7 OSC: Expand gainmode to add two new options
fix bug where a surface might have more than one global observer
2018-01-09 19:19:29 -08:00
7671268bc3 strlen is not a member of std. 2018-01-03 18:06:55 +01:00
15fa89c8dd OSC: Plugin activate should detect no plugins 2018-01-02 10:23:11 -08:00
6f8b9612f6 Lua-binding to directly add automation-events 2017-12-31 18:15:34 +01:00
9fc68378c6 Process Panner Automatables (emit Changed)
Pan-automation is evaluated directly from the control-list.
::distribute_automated() does not update the controls.

However, the *owner* of each automation-control is responsible to
evaluate automation of automated automation-controls (and emit Changed()
signals to notify the GUI and slaved controls).

This follow the same concept as PluginInsert: The Changed signal
is called on demand when evaluating automation.

This fixes pan-automation-sliders (automation-lane header) not updating.
2017-12-31 18:15:34 +01:00
6536126ad2 OSC: Check for no markers yet (crash fix) 2017-12-29 14:47:00 -08:00
0dc3400707 remove unused line 2017-12-24 08:56:19 -08:00
6d204e76eb OSC: fix jog mode } in wrong place 2017-12-23 13:50:28 -08:00
283ff0230d OSC: Add feedback for /marker 2017-12-23 13:17:11 -08:00
1a602cbfa2 Tweak size of transport-icons for consistent height+baseline 2017-12-23 00:57:06 +01:00
Hiroki Inagaki
720ad15a45 Update Japanese translation 2017-12-22 22:19:00 +01:00
f40e2375cb Tweak icons (for non-square layout) 2017-12-22 22:15:50 +01:00
34a926fc51 OSC: add /marker to locate to a marker. 2017-12-22 12:04:05 -08:00
5a23719da3 FP8/16: Ignore "black" a strip color, always light select-button 2017-12-21 02:30:01 +01:00
1deb6525b8 FP8/16 fix meter + no-pan display mode 2017-12-21 02:30:01 +01:00
c0d333ba9c FP8/16 subscribe to panner changes (add/remove channel) 2017-12-21 02:30:01 +01:00
0d72f37318 OSC: Add /surface/list option to setting GUI 2017-12-20 07:48:35 -08:00
e921088ee8 Fix fp16 encoder (misleading doc on fp8) 2017-12-19 17:56:57 +01:00
3cb952d7fb Revert "Prototype to allow embedding sysex in midi-map"
This reverts commit 561c8eea0c.
It is rare that a device needs sysex-initialization every time it is
connected, besides a single simple "Sysex" entry without options
is not very flexible.
2017-12-19 17:45:03 +01:00
4ebcef53f8 Relax max MIDI msg size to 256 (for long sysex)
(win-mme already used 256, CoreMIDI can handle up to 256 as can ALSA)
2017-12-19 17:41:57 +01:00
f9d7a3720d Fix faderport-16 touch on/off (fixes faders 9..16) 2017-12-19 03:50:07 +01:00
22939488e7 OSC: Move /surface/list output to PBD::info 2017-12-16 12:42:32 -08:00
847b71e12d OSC: make custom strip lists work on linked surfaces too 2017-12-16 08:24:41 -08:00
0c3531efe7 Fix gcc4 builds "GCC diagnostic not allowed inside functions" 2017-12-16 17:08:36 +01:00
46eed03282 Downgrade some undo-related error messages
Missing undo isn't a error. There are valid cases for this to happen.
e.g. switching snapshots or deleting tracks or session-format changes

It's useful to know, but should not distract users showing up as "Errors"
2017-12-16 15:38:02 +01:00
ca979ee606 Sync weakjack with upstream https://github.com/x42/weakjack/ 2017-12-15 21:56:46 +01:00
886244feea OSC: Add Sorted or not to custom strip list
fix bug where processor_changed sometimes gets null address
2017-12-15 09:43:48 -08:00
559344d99d OSC: in custom strip list check all strips exist 2017-12-15 09:43:48 -08:00
d6eea08021 OSC: initialize parameter correctly 2017-12-15 09:43:48 -08:00
d34ae43931 Fix FP8/16 port-names 2017-12-13 23:44:39 +01:00
26a59261fe Fix FP16 fader-touch release for faders 9..16 2017-12-13 23:11:37 +01:00
ae0dd7c209 Fix FP16 select button 10..16 2017-12-13 21:59:22 +01:00
508f23c4d0 Add FP17 to reserved I/O names 2017-12-12 14:13:34 +01:00
bac627d0be Add FP16 control-surface 2017-12-12 14:10:07 +01:00
7671a0f675 Namespace FP8, FP16 to avoid symbol conflicts 2017-12-12 14:09:40 +01:00
e3340cdf01 Prepare for FaderPort16 (ctrl-protocol) 2017-12-12 14:08:45 +01:00
b117910c29 Fix a -Wreorder 2017-12-12 00:24:00 +01:00
16a9878f22 more NO-OP, comment and whitespace 2017-12-12 00:19:36 +01:00
23a4030159 US-2400: ignore joystick moves until the user clicks the joystick NULL button. 2017-12-11 10:51:33 -06:00
561c8eea0c Prototype to allow embedding sysex in midi-map 2017-12-06 16:33:58 +01:00
ab5be61f51 Accommodate newly added/removed source(s) in our MSVC project (libardour) 2017-12-06 10:51:53 +00:00
4a66edd480 Add Lua bindings for MIDI-parser and Async ports 2017-12-05 16:09:49 +01:00
332a7e56ca Increase ALSA max MIDI msg size to 128 bytes (same as OSX) for long sysex 2017-12-05 16:09:46 +01:00
4cab03887c Add a Raw MIDI parser (based on ALSA raw MIDI) 2017-12-05 16:09:42 +01:00
bb5345614d Allow to pre-seed Lua action script params 2017-12-05 01:55:38 +01:00
d5e1f536a7 Allow to pass interpreter to evaluate action-script parameters
This allows to add bindings, in particular GUI dialog, to be registered
before evaluating the parameters.
2017-12-05 01:55:38 +01:00
2c4a8d2d25 OSC: Add custom bank creation and use 2017-12-02 08:18:53 -08:00
9aab9bc229 A couple of minor changes when #including <utime.h> 2017-12-02 11:46:20 +00:00
1dd52464aa Add some devices to the reserved list of midi controllers. 2017-11-30 09:13:06 -06:00
c91a7c4263 Fix Windows builds (amend a3ec16)
Since scanner.cc defines NO_OLDNAMES, utime.h needs to be included
first.
2017-11-29 18:53:06 +01:00
a3ec164450 Set VST cache file mtime to be at least as new as the plugin
Fixes issues with timezones when installing pluins from a .zip
2017-11-29 15:08:25 +01:00
d1183770de ArdourButton: ignore double+tripple clicks 2017-11-29 12:06:42 +01:00
5fd723b1f0 Update LuaProc GC stat calc 2017-11-29 12:06:42 +01:00
77d16999b5 Tweak Lua GC 2017-11-29 12:06:42 +01:00
44cf448839 update to lua-5.3.4 2017-11-29 12:06:42 +01:00
06ea56a2ce OSC: add /select/plugin/activate cause some add deactivated
And clean up plugin code as well
2017-11-28 12:33:20 -08:00
3856d525fb Fix "open folder" for non-ASCII paths on Windows 2017-11-27 00:42:55 +01:00
7a7fc60a8d Remove unused API 2017-11-26 09:51:00 +01:00
e02952a26c Sidechain latency compensation - part one
This properly sets the port-latencies of PluginInsert owned ports as well
as handles external sends (send-target playback latency).

NB. This needs more work to ensure that Sidechain input port playback
latency is set before the feeding send queries it the connected latency.
Re-ordering process may change sidechain or external-send latencies,
but since re-ordering does not change the route's latency,
engine.update_latency() may not be called.
2017-11-26 09:51:00 +01:00
f149fd2653 Add convenience methods to set port latencies 2017-11-26 09:51:00 +01:00
da467cf39b OSC: Only send new select send values
no clear first, no double send
2017-11-23 12:04:54 -08:00
155156cfb2 OSC personal monitor fix off by one bug. 2017-11-23 12:04:54 -08:00
07f940016c fix call to std::unique; to actually erase dups. 2017-11-23 10:23:54 +01:00
1a46ee716d remove useless test, fgets() already ensures MAX_STRING_LEN
Found by PVS-Studio - https://www.viva64.com/en/b/0540/
2017-11-23 09:56:57 +01:00
2fec64f0bd Fix another duplicate if from session/system config consolidation
Found by PVS-Studio - https://www.viva64.com/en/b/0540/
2017-11-23 09:53:50 +01:00
7d4353dddc Fix typo in 318e7efb 2017-11-23 00:13:46 +01:00
1be2790cac Add clock-delta mode enum 2017-11-23 00:12:00 +01:00
e275154a40 Introduce a dedicated "Clock Origin" Marker 2017-11-23 00:11:55 +01:00
318e7efb9e Release (debug) lock before emitting signal 2017-11-22 18:12:29 +01:00
18306f3d37 OSC: only reset cue sends that do not have a new send 2017-11-13 17:19:09 -08:00
a6205cef40 OSC: /cue/previous_aux should always refresh 2017-11-13 17:19:09 -08:00
2d85eceb0e OSC: cue buttons can accept float or int 2017-11-13 17:19:09 -08:00
e6f2d77605 Add API to allow buffer offsets when applying gain 2017-11-12 00:22:34 +01:00
93e32af9f4 Add a noise generator (Lua DSP) 2017-11-12 00:22:34 +01:00
52aa9bf848 a-comp: Fix typo with previous patch 2017-11-12 00:16:44 +11:00
f3efff4c7e a-comp: Fix noise floor - asymptotics 2017-11-11 14:26:50 +11:00
69603bb76e OSC link: make whole link set follow strip_types
strip should not run periodic when blank - crash fix
2017-11-10 08:38:08 -08:00
634c620b07 OSC: set_surface sets linkset, linkid
/set_surface/* deals with linked surfaces
2017-11-08 09:36:32 -08:00
3a2c481b96 OSC: catch bad commands on /cue/* created crash on exit 2017-11-07 20:18:59 -08:00
4c58ada24b Fix a-reverb bypass/enable 2017-11-08 01:38:17 +01:00
ba383b4726 OSC link: Clean up link not ready and surface refresh 2017-11-07 09:31:14 -08:00
bb8d65c528 OSC link: make selection work correctly 2017-11-06 13:38:18 -08:00
77a94e1015 Optimize zresampler for no re-sampling case. 2017-11-06 00:13:14 +01:00
4cdd3f5df6 Some further notes (and experiments) on optimizations 2017-11-06 00:12:32 +01:00
da4cea0526 Add some notes for future optimizations (and prepare API) 2017-11-04 17:11:10 +01:00
8366fbaa62 Change Delayline to use power-of-two size and bitmasking 2017-11-04 16:39:08 +01:00
06abdee652 [Re]-Implement Delayline flush.
Also don't automatically flush the delayline at transport or monitor-
changes anymore.

With full-graph latency compensation, delaylines are before the
disk-reader, aligning input (disk uses read-ahead to align).

Flushing the delayline should only happen when input-monitoring
is disengaged. It's best degated to the Route or object using the
Delayline (potentially latency-aligned delayed flush).
2017-11-04 16:24:09 +01:00
d26ad5573c Optimize Delaylines: block-process (not one sample at a time)
This also tweaks fade behavior when the latency changes to prefer a
x-fade when possible.

This new variant does not support concurrent re-allocation and
execution. Hence the auto-connect thread needs to take a lock before
updating latencies (actually there's no need for an explicit update with
built-in backends, so this case remains to be updated further)
2017-11-04 07:14:12 +01:00
5fdd6ca21e Clean up delayline API: don't use 'get_' for accessor method-name 2017-11-04 07:14:12 +01:00
3eee4fe8a5 OSC link: first working commit for linking two surfaces as one 2017-11-03 14:04:52 -07:00