13
0
Commit Graph

11515 Commits

Author SHA1 Message Date
ab838a1260 Midi-track fader & pan automation
NB. Fader automation lane always shows 'dB' value and is logarithmic.
OK for pre-fader synths, but not for raw-midi data.
2014-01-15 11:30:54 +01:00
b73b2ceecd update pan automation-track display 2014-01-15 11:23:38 +01:00
abb75d4a2e prevent stackoverflow when pannable changes to fewer params
endless loop: e.g.  2in2out -> balance (or 1in1out)
#23 0xb7ab5c17 in ARDOUR::Pannable::value_as_string
#24 0xb2ebb206 in ARDOUR::Pannerbalance::value_as_string
#25 0xb7ab5c17 in ARDOUR::Pannable::value_as_string
#26 0xb2ebb206 in ARDOUR::Pannerbalance::value_as_string
ad infinitum
2014-01-15 10:38:32 +01:00
d27d6e673f re-allow panners for monitoring-section (for now) 2014-01-15 10:37:25 +01:00
a4dc05f603 fix invalid width when swiching to 2in2out 2014-01-15 09:45:02 +01:00
58def58bf5 VBAP GUI convention: top == front ^= azimuth == .5
This allows to move from stereo,mono panners to VBAP and back
and also facilitates sharing pannables of all currently
existing panners with semantically similar results.

(somewhat dirty solution, this retains PBD::spherical_to_cartesian
and maps angles pretty much everywhere else)
2014-01-15 09:37:20 +01:00
35c170937d NOOP, semantic update, don't pannable's panner for direct access. 2014-01-15 02:51:53 +01:00
6bebe1d886 update panGUI connections (panner-shell vs pannable vs panner) 2014-01-15 02:51:52 +01:00
c46e74012e NOOP, clean up whitespace/TAB mess 2014-01-15 02:51:52 +01:00
813ead6d8b cont'd backend work on panner-linking 2014-01-15 02:51:52 +01:00
218cf268b9 remove debug code 2014-01-15 02:51:52 +01:00
d434287811 fix compilation problem on OS X caused by a missing implementation of a virtual method 2014-01-14 17:27:21 -05:00
5abac7cddd new MIDI binding map for Roland V-Studio 20, from Keith (Milner?) 2014-01-14 12:43:43 -05:00
d9296b7123 add preference -- link-send-and-route-panner default 2014-01-13 23:22:02 +01:00
e45151b89c first stab at send+route panner link 2014-01-13 23:21:30 +01:00
5b0c902997 center VBAP UI crosshair 2014-01-13 19:16:10 +01:00
291618fe71 allow to custom select panner-type for each delivery. 2014-01-13 15:13:37 +01:00
9c595f8131 delete 'big' 2d panner window, if panner changes to mono|stereo 2014-01-13 12:02:00 +01:00
346310c60b fix delivery: check if panshell exists on session-load 2014-01-13 11:49:09 +01:00
35aed0efab ProcessorWindowProxy::processor_going_away takes care of deletion 2014-01-13 11:08:51 +01:00
1146d58d21 misc panning related UI tweaks:
* connect 2D panner "edit" to big window
* disconnect 2D-panner GUI when it's visible but panner-type changes
* ignore mixer-strip level-meter context-menu for Aux-sends
2014-01-13 11:08:37 +01:00
bc88203ef5 independent panning for external sends 2014-01-13 10:50:49 +01:00
d9cf6880b6 fix output metering for Sends (Aux and External) 2014-01-13 10:50:22 +01:00
0559c1babb add independent panner for internal (Aux) sends 2014-01-13 10:48:37 +01:00
0c384b7c21 update internal-send port-count when target port-count changes 2014-01-13 10:48:23 +01:00
5e2a145cdd ignore additional channels for AFL, PFL:
If the monitor-section has fewer-channels than the solo-listen point:
ignore additional channels.
2014-01-13 10:47:17 +01:00
35ab234e5e fix deadlock when removing monitoring-section 2014-01-13 10:46:11 +01:00
a08e7c0016 fix processor -> reconfigure I/O || process concurrency
Add a ReaderLock to Route::process_output_buffers().

But process_output_buffers() is always called with processor-lock
held. To avoid deadlocks, a processor WriterLock must always imply
a process-lock (IFF reconfigure-I/O is called with _processor_lock).

Otherwise: e.g.
*  add_processor() -> takes processor-lock. set up and activate processor.
*  simult. audio-engine process, process-lock -> call process_output_buffers() -> wait for processor-lock
*  add_processor() continues -> calls reconfigure-io -> take process-lock -> deadlock.
2014-01-12 23:13:35 +01:00
7e3282486d take process lock when adding processors:
fixes possible crash if a processor modifies port-count

1. a processor is inserted and activated with processor-lock held
2. only after that the process_lock() is taken, configure_processors() is called which reconfigures-IO

BUT if the processor that is inserted changes the channel count AND audio is processed before IOs are reconfigured
 -> possible crash (invalid port-buffers)

To reproduce: Bus1 (2in, 3out), Bus2 (2in, 3out)
- add a send from Bus1 to Bus2,
- then add a processor to Bus1, just before the send which
  increases the channel-count to 4 -> occasional crash or assert.
2014-01-12 21:47:15 +01:00
0e77e578cc VBAP panner UI tweaks:
* fix mouse-grab of sentinel
* make GUI more hemisphere like (circles at latitude)
* change alpha slightly to show signal overlap
2014-01-12 21:41:02 +01:00
1eaa30b725 aubio 3+4 compat 2014-01-12 18:11:14 +01:00
58f82b52e5 cosmetic change - properly use lilv API 2014-01-12 17:14:14 +01:00
261638a5a0 don't display elevation if panner does not support it. 2014-01-12 03:56:35 +01:00
f9b8300ec6 swap channel VBAP channel 2014-01-12 03:36:20 +01:00
bf7c6c07bf credit where credit is due for speaker-config and VBAP fixes inspiration 2014-01-12 02:05:01 +01:00
4a0bcd658c VBAP GUI object-grab & position 2014-01-12 00:57:27 +01:00
b54a231035 hide speaker-config in menu (it's not implemented yet) 2014-01-11 23:38:29 +01:00
60960280d1 redefine Pi :) 2014-01-11 23:38:28 +01:00
407eba04cf add spinbox to control width in VBAP GUI,.. 2014-01-11 23:38:28 +01:00
72cec05d46 VBAP rework (part III): fix position computation backend & GUI 2014-01-11 23:38:28 +01:00
7ac05ccfa5 update default speaker position list 2014-01-11 23:38:28 +01:00
0669bb455b VBAP GUI depends on signal-position (not parameter changes) 2014-01-11 23:38:28 +01:00
d3e1d54280 VBAP backend re-work (part two): speaker positioning
* clean up source (whitespace)
* fix speaker 3x3 matrix iteration
* update math to go along with Ardour Cartesian -- fixes rounding errors
* fix division by zero in cross_prod()
* disable old debug output

(NB PBD::spherical_to_cartesian() returns
  3.7494e-33, 6.12323e-17, 1 for azimuth 90 elevation 90 distance 1
while it should return
  0.000000, 0.000000, 1 for azimuth 90 elevation 90 distance 1
IOW  cos(90.0 * 2.0 * M_PI / 360.0) != 0
Cause unknown. This is currently worked around check in vec_length()
)
2014-01-11 23:38:27 +01:00
80127f9cca VBAP backend re-work (part one):
* fix azimuth, don't clamp but map to [0,1]
* prepare elevation (10+ speakers)
2014-01-11 23:38:27 +01:00
72d8ca89e2 Support midnam controller value labels. 2014-01-10 20:51:54 -05:00
0fe968a140 Fix whitespace (no functional changes). 2014-01-10 20:51:54 -05:00
0bdf4c25cf fix panner search path 2014-01-10 20:35:32 +01:00
7396fcf0b1 re-configure _all_ panners on a route, when panner type changes 2014-01-10 12:36:20 +01:00
8d64665ce1 add a fixed priority to panner modules 2014-01-10 12:13:22 +01:00
99ed84c429 display info about replicated processors 2014-01-10 12:12:06 +01:00