Commit graph

6739 commits

Author SHA1 Message Date
Paul Davis
00f145dbdf Revert "update VstTimeInfo structure, from Qtractor's version of vestige, which has all fields thanks to some steinberg online docs"
This reverts commit febc6b957e.
2014-01-15 16:06:57 -05:00
Paul Davis
febc6b957e update VstTimeInfo structure, from Qtractor's version of vestige, which has all fields thanks to some steinberg online docs 2014-01-15 16:06:35 -05:00
Paul Davis
ca621b3fbf improve comment explaining the use of alloca() 2014-01-15 15:00:07 -05:00
Paul Davis
e8202dded8 add back comment explaining the use of alloca() 2014-01-15 14:58:59 -05:00
Paul Davis
9aacefc170 merge with master 2014-01-15 14:29:32 -05:00
Robin Gareus
f9a5f87003 don't pan send/return inserts 2014-01-15 17:59:16 +01:00
Robin Gareus
b06fa27ccb rework LXVST port assignments - fixes #5827 2014-01-15 14:55:26 +01:00
Robin Gareus
c8f9405386 stereo-panner: clamp width during processing to valid range 2014-01-15 14:07:02 +01:00
Robin Gareus
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
Robin Gareus
d27d6e673f re-allow panners for monitoring-section (for now) 2014-01-15 10:37:25 +01:00
Robin Gareus
a4dc05f603 fix invalid width when swiching to 2in2out 2014-01-15 09:45:02 +01:00
Robin Gareus
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
Paul Davis
96586e81f4 the vampplugins lib that we build needs to use VAMPSDK 2014-01-14 21:46:41 -05:00
Paul Davis
37b1f5017e merge with master 2014-01-14 21:13:21 -05:00
Robin Gareus
35c170937d NOOP, semantic update, don't pannable's panner for direct access. 2014-01-15 02:51:53 +01:00
Robin Gareus
813ead6d8b cont'd backend work on panner-linking 2014-01-15 02:51:52 +01:00
Robin Gareus
218cf268b9 remove debug code 2014-01-15 02:51:52 +01:00
Paul Davis
d434287811 fix compilation problem on OS X caused by a missing implementation of a virtual method 2014-01-14 17:27:21 -05:00
Paul Davis
adc2edc05c add back required extern 2014-01-14 15:11:32 -05:00
Paul Davis
e332900055 revert incorrect include path changes and removal of export macros for two libardour symbols (revision and ardour_config_info) 2014-01-14 12:22:18 -05:00
John Emmas
b3526d855e 'libs/ardour' - Non-visibility stuff changed for MSVC (mostly alterations to #include paths) 2014-01-14 16:47:29 +00:00
John Emmas
b9390869ea 'libs/ardour' - Remove the old 'visibility.h' (so as not to merge it into cairocanvas) 2014-01-14 16:47:28 +00:00
John Emmas
10a4b2d3ed 'libs/ardour' - DLL visibility stuff and associated changes needed for building with MSVC. Currently includes debugging information and things that are just commented out until we have known compatibility with the other platforms (i.e. contains stuff to be removed at a later date) 2014-01-14 16:47:27 +00:00
Paul Davis
cf806123ca merge (with conflict fixes) with master (even against rgareus' recommendation) 2014-01-14 10:56:17 -05:00
Paul Davis
cfc9a1f22e fix broken build after addition of normalizer.cc 2014-01-14 09:33:02 -05:00
John Emmas
eb023b7496 'libs/ardour' - DLL visibility stuff and associated changes needed for building with MSVC. Currently includes debugging information and things that are just commented out until we have known compatibility with the other platforms (i.e. contains stuff to be removed at a later date) 2014-01-14 10:13:12 +00:00
Robin Gareus
e45151b89c first stab at send+route panner link 2014-01-13 23:21:30 +01:00
John Emmas
a1a3f6c826 Merge branch 'windows+cc' into cairocanvas 2014-01-13 15:05:30 +00:00
John Emmas
5f0492deae 'libs/audiographer' - Add a new source file (to accommodate the stuff removed from 'normalizer.h') 2014-01-13 15:01:14 +00:00
John Emmas
5fc1cbb65c 'libs/audiographer' - DLL visibility stuff and associated changes needed for building with MSVC. Currently includes debugging information and things that are just commented out until we have known compatibility with the other platforms (i.e. contains stuff to be removed at a later date) 2014-01-13 14:58:04 +00:00
Paul Davis
b9c389eac5 fix botched merge of vbap changes 2014-01-13 09:47:20 -05:00
Robin Gareus
e10bfb8054 VBAP backend re-work (part one):
* fix azimuth, don't clamp but map to [0,1]
* prepare elevation (10+ speakers)
2014-01-13 09:40:41 -05:00
Paul Davis
fbe94f4470 pixel-align canvas PolyItems with single-pixel outlines, for crispness 2014-01-13 09:39:50 -05:00
Robin Gareus
2f3830eddb fix delivery: check if panshell exists on session-load 2014-01-13 09:39:50 -05:00
Robin Gareus
113f28b6fe independent panning for external sends 2014-01-13 09:39:50 -05:00
Robin Gareus
533e0091b7 fix output metering for Sends (Aux and External) 2014-01-13 09:39:50 -05:00
Robin Gareus
7e1e7e7629 add independent panner for internal (Aux) sends 2014-01-13 09:39:50 -05:00
Robin Gareus
0da58eeebf update internal-send port-count when target port-count changes 2014-01-13 09:39:50 -05:00
Robin Gareus
b4dea5309d ignore additional channels for AFL, PFL:
If the monitor-section has fewer-channels than the solo-listen point:
ignore additional channels.
2014-01-13 09:39:50 -05:00
Robin Gareus
1e4e6499e3 fix deadlock when removing monitoring-section 2014-01-13 09:39:50 -05:00
Robin Gareus
1b24aad933 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-13 09:39:50 -05:00
Robin Gareus
ac8eb0581d 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-13 09:39:18 -05:00
Robin Gareus
a919ac8a86 aubio 3+4 compat 2014-01-13 09:38:24 -05:00
Robin Gareus
75e21d3ab4 cosmetic change - properly use lilv API 2014-01-13 09:38:24 -05:00
Robin Gareus
28470af5f7 swap channel VBAP channel 2014-01-13 09:38:24 -05:00
Robin Gareus
dd4c0e040f VBAP rework (part III): fix position computation backend & GUI 2014-01-13 09:37:35 -05:00
Robin Gareus
431babc272 update default speaker position list 2014-01-13 09:37:35 -05:00
Robin Gareus
60fe9606f4 VBAP GUI depends on signal-position (not parameter changes) 2014-01-13 09:37:35 -05:00
Robin Gareus
1bf9c4c990 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-13 09:37:34 -05:00
Robin Gareus
112de00841 VBAP backend re-work (part one):
* fix azimuth, don't clamp but map to [0,1]
* prepare elevation (10+ speakers)
2014-01-13 09:35:57 -05:00