Robin Gareus
0d050de94e
move latency-recompute into dedicated thread.
...
this fixes an issue with jack1 and jack_latency_recompute() since must not
send a server request from inside the server callback.
2016-07-09 17:42:58 +02:00
Robin Gareus
b64a6b658e
handle internal-sends from audio to midi busses
2016-07-09 13:51:52 +02:00
Robin Gareus
20e216afcc
commence testing
2016-07-09 11:55:05 +02:00
Robin Gareus
56c4eebfdd
move LatencyChanged detection from Plugin to Processor (plugin-insert)
...
* support all Plugin APIs (not implementation specific)
* also check for latency changes when plugins are hard en/disabled
2016-07-09 04:42:21 +02:00
Julien "_FrnchFrgg_" RIVAUD
49c9569039
Make MIDI busses possible targets of internal sends
...
The session only added an internal return to new audio busses, and so
only those were proposed in the "New Aux Send" list. Also add the return
to new midi busses, now that internal sends know how to deal with midi.
2016-07-09 02:17:00 +02:00
Julien "_FrnchFrgg_" RIVAUD
09c4c51335
Make internal sends aware of non-audio data
...
When most internal sends are created, they are given a panner shell
which is then responsible for audio dispatch. Other data types were left
there without handling them at all. Ensure that all available data is
sent provided the internal send has enough outgoing buffers.
2016-07-09 02:00:27 +02:00
Julien "_FrnchFrgg_" RIVAUD
820f99d484
Make Delivery::run more Datatype-agnostic
...
Note that checking the number of output ports is not needed because
IO::copy_to_outputs() will stop if there are less ports of the right
type than buffers (or even none).
2016-07-09 01:21:27 +02:00
Julien "_FrnchFrgg_" RIVAUD
d6534eb143
Assert that nobody calls IO::copy_to_output with empty bufs
...
IO::copy_to_output() crashed if there was no channel to copy from. Since
all callers seem to check before calling, just assert() that it is not
the case.
2016-07-09 01:21:27 +02:00
Robin Gareus
ac923be7af
fix port-sort order for good.
...
TODO find out how to make std::set::find() work with custom sort order,
as std::find may only be O(N) and not O(log (N)).
2016-07-08 21:37:42 +02:00
Len Ovens
97b1725023
OSC: Add well known controls for pan and compressor
2016-07-08 11:54:37 -07:00
Robin Gareus
f84a7605d8
pre-sort port-names
2016-07-08 20:44:21 +02:00
Robin Gareus
b7dc66c903
untested hack for AU multi-bus outputs which are not explicitly listed
2016-07-08 20:29:39 +02:00
Paul Davis
1228faf2cf
fix thinko
2016-07-08 13:34:52 -04:00
Robin Gareus
db564a03c7
add an plugin API to query generic-gui grid-layout
2016-07-08 18:19:31 +02:00
Paul Davis
24b514797a
make route group master a real property.
...
Required for state save/restore to know about the master
2016-07-08 11:46:01 -04:00
Paul Davis
965def3caf
signed VCA numbers
2016-07-08 11:46:01 -04:00
Paul Davis
b37ec38d86
change VCA number to signed.
...
Allows for more robust out-of-band (negative) value
2016-07-08 11:46:01 -04:00
Damien Zammit
b7a7c1bbd8
a-EQ: Tweak default values and inline display scale +-20dB
2016-07-09 00:29:59 +10:00
Paul Davis
2cc33684c7
treat VCA assign as a RouteGroup property.
...
Newly added routes,removed routes etc. all correctly assign or
unassign to the group's VCA.
2016-07-08 09:25:18 -04:00
Len Ovens
295a7dfcf3
OSC: Add feedback for known pan controls and known compressor controls
2016-07-07 11:36:31 -07:00
Robin Gareus
b68c28986c
fix AU bus sidechaining
2016-07-07 18:18:06 +02:00
Robin Gareus
266ecfbeec
implement designated enable/bypass port for lua-proc
2016-07-07 16:44:41 +02:00
Robin Gareus
91ab5e3175
add LuaTableRef to DSP API as alternative to shared-mem
2016-07-07 15:37:11 +02:00
Robin Gareus
ef1e20f6a2
some more lua-bindings
...
* allow C memory allocation with lua-lifetime
* expose some ChanMapping methods
2016-07-07 15:37:11 +02:00
Robin Gareus
44a3f042a7
prepare sharing C++ class instances across lua-interpreters
...
in particular: lua-lifefime (!) C++ instances.
This allows for dynamic allocation of custom user-data, bound to
the lifetime of the allocating lua-context.
2016-07-07 15:37:11 +02:00
Robin Gareus
225a8a47a4
lua PBD ringbuffer bindings
2016-07-07 15:37:11 +02:00
Damien Zammit
44de8560a6
Add a-EQ (basic 4 band EQ) with inline display based on SVF filters
2016-07-07 22:15:44 +10:00
Len Ovens
d40cc6f6f9
OSC: Make sure selected strip is corrected when it's stripable vanishes
2016-07-06 19:28:41 -07:00
Paul Davis
44fcbd988c
mackie: ensure that the strip where select was pressed ends up as the first_selected_stripable
2016-07-06 21:40:29 -04:00
Paul Davis
77a8da9010
set ControlProtocol::_first_selected_stripable at the right time only
2016-07-06 20:58:33 -04:00
Julien "_FrnchFrgg_" RIVAUD
6911702f21
Don't add audio outs to non-audio routes with strict I/O
...
If a route has strict I/O then the main delivery follows the output of
the last processor, but libardour ensures it has at least as many
outputs as inputs in the master strip. A good consequence is that mono
tracks get their expected panner.
An akward side-effect is that MIDI-only routes (e.g. midi tracks or busses
without a synth) get two audio channels that have no use (and indeed no
panner is added because there is nothing to pan).
Skip the completion of audio outs if there was no audio out to begin
with.
2016-07-07 01:33:42 +02:00
Paul Davis
db3223478c
quick checks on empty control lists, to avoid unnecessary work
2016-07-06 15:20:17 -04:00
Paul Davis
cf9706974c
a few post-rebase cleanups
2016-07-06 14:03:24 -04:00
Paul Davis
2047ee527c
restore/extend/simplify ControlProtocol API to allow tracking of selection
2016-07-06 13:39:10 -04:00
Paul Davis
eed3ea5047
remove a bunch of code that will no longer be used
2016-07-06 13:38:13 -04:00
Paul Davis
d514cd2fbf
remove a bunch of code that will no longer be used
2016-07-06 13:38:13 -04:00
Robin Gareus
a2f249d1d7
tweak lua gc
...
lua C++ bindings require ~400KB worth of tables now; so bump memory
available to rt-safe scripts (full interpreter) to 2MB.
Also switch to incremental GC.
2016-07-06 03:32:08 +02:00
Robin Gareus
6cff31c878
update route/processor semantics
...
* active(): hard bypass: en/disable. When disabled, run() is not called.
* enabled(): plugin run()s but may do nothing (or only be latent)
2016-07-05 23:30:21 +02:00
Robin Gareus
ac325cea25
implement lv2:designation processing#enable (for bypass ports)
2016-07-05 23:30:21 +02:00
Robin Gareus
e845b9f935
add API to use a plugin provided bypass control port
...
* new separate API: en/disable
* old API remains in place for hard bypass
* PluginInsert::enable() falls back to activate/deativate if a plugin
does not provided designated bypass control port
2016-07-05 23:30:21 +02:00
Len Ovens
860ffed6d1
OSC: Clear expand Lamp on strip observer destroy
2016-07-05 14:11:16 -07:00
Damien Zammit
f2f7414751
a-delay: Fix compiler warning
2016-07-06 02:18:10 +10:00
Damien Zammit
de4cb2f8af
Add a-Delay plugin
2016-07-06 01:53:59 +10:00
Robin Gareus
83e1d9fff3
tweak a-series plugin names
2016-07-05 17:17:59 +02:00
Robin Gareus
e542e501a0
add support for http://lv2plug.in/ns/ext/port-props/#rangeSteps
2016-07-05 16:21:09 +02:00
Robin Gareus
5966612a4f
consistent use of fmaxf() in a-comp
2016-07-05 15:38:24 +02:00
Robin Gareus
54d8def68c
amend d9de72215 - bypass replicated instances w/sidechain inputs
2016-07-05 15:37:59 +02:00
Damien Zammit
a16c0c445a
a-comp: Use input signal x as cutoff for inline comp curve
2016-07-05 18:36:04 +10:00
Damien Zammit
2a7bd996cd
a-comp: Fix inline comp curve shading
2016-07-05 18:19:00 +10:00
Damien Zammit
bf7c4c7d60
a-comp: Fix peak level on both stereo and mono plugins
2016-07-05 15:07:06 +10:00