13
0
Commit Graph

5578 Commits

Author SHA1 Message Date
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
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
f9b8300ec6 swap channel VBAP channel 2014-01-12 03:36:20 +01:00
60960280d1 redefine Pi :) 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
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
04ad07babf add [missing] left_half_rectangle util 2014-01-09 20:48:04 +01:00
21ca6a10a9 rework panning -- Squashed commit of the following:
commit 6f4f4f161b00cb36252727f67ecc4913eb944fd7
Author: Robin Gareus <robin@gareus.org>
Date:   Wed Jan 8 22:13:09 2014 +0100

    fix panner plugin discovery (prev commit)

commit 26e514f4a80af9192cae3cbd62fde0ae95474dfc
Author: Robin Gareus <robin@gareus.org>
Date:   Wed Jan 8 18:56:59 2014 +0100

    update panner plugin discovery

    * recurse dirs in 'PANNER_PATH' and 'panner_dir_name' up to 1 level.
    * don't look in ardour_dll_directory() -- no panners are supposed to be in there
    * use .dylib on OSX exclusively.

commit a514c3f1c425dccf3d42eee9d2b183b44fd26a03
Author: Robin Gareus <robin@gareus.org>
Date:   Wed Jan 8 16:48:34 2014 +0100

    remove debug/devel printf()s

commit d863742ddc69af493ee6a8817bc778968d9b0800
Author: Robin Gareus <robin@gareus.org>
Date:   Wed Jan 8 16:17:13 2014 +0100

    panner-type: session backward/forward compatibility

commit 25d5e4c663ada34129451b0f9045ab047d6cc2f0
Author: Robin Gareus <robin@gareus.org>
Date:   Wed Jan 8 16:09:07 2014 +0100

    update URIs -> URLs

commit 00a606a43d9456cfbaf43cae4fb598549326ba71
Merge: 0f1cec1 382eb0f
Author: Robin Gareus <robin@gareus.org>
Date:   Wed Jan 8 03:29:45 2014 +0100

    Merge branch 'master' into panning

commit 0f1cec19babae538c9697eed4be5d6ddc851b013
Author: Robin Gareus <robin@gareus.org>
Date:   Wed Jan 8 02:41:15 2014 +0100

    switch panner ID to URI

commit 575282b412c3ae1cd8219cf75f00a1a4239e2813
Author: Robin Gareus <robin@gareus.org>
Date:   Wed Jan 8 00:50:15 2014 +0100

    prepare API for panner URI

commit ea62cd049308859782a7bb16e4f18169d8638b46
Author: Robin Gareus <robin@gareus.org>
Date:   Tue Jan 7 19:57:06 2014 +0100

    update development doc relating to panner selection

commit 586d7de2392e26b9d7f597b1a00b98dfaa42ecdc
Author: Robin Gareus <robin@gareus.org>
Date:   Tue Jan 7 19:56:24 2014 +0100

    clean up PanShell::set_user_selected_panner_type() API

commit 99077886a5a1cacece908d87c29c3be12903027e
Author: Robin Gareus <robin@gareus.org>
Date:   Tue Jan 7 04:46:22 2014 +0100

    panner bypass: visualize & [in]sensitivity

commit 46d688d216f0e67d672376a607157af02b359fb2
Merge: 4e67573 c4cdf61
Author: Robin Gareus <robin@gareus.org>
Date:   Tue Jan 7 02:18:54 2014 +0100

    Merge branch 'master' into panning

commit 4e67573517b3d60ddf65729783687b16cfb2adb7
Author: Robin Gareus <robin@gareus.org>
Date:   Tue Jan 7 01:05:17 2014 +0100

    don't call configure_io() for merely swapping panners

commit d32a4c51f6967f48f7680554866f1f7b311ccde1
Merge: a3226d4 cec3116
Author: Robin Gareus <robin@gareus.org>
Date:   Mon Jan 6 23:49:55 2014 +0100

    Merge branch 'master' into panning

commit a3226d46b598afae54a65ac69320eca84669f347
Author: Robin Gareus <robin@gareus.org>
Date:   Mon Jan 6 17:52:38 2014 +0100

    add notes about panner re-design

commit d1ae2366024605f22b05572a81ee249e6fdbcd2f
Author: Robin Gareus <robin@gareus.org>
Date:   Mon Jan 6 15:06:40 2014 +0100

    add simple stereo-balance panner for testing

commit e0ddd256ff2288b8d8cfad3ad485a916964ce5b5
Author: Robin Gareus <robin@gareus.org>
Date:   Mon Jan 6 17:02:52 2014 +0100

    add frontend/GUI for panner selection

commit 2cb8f846755eb5aea8a2620d31ea981c446c4041
Author: Robin Gareus <robin@gareus.org>
Date:   Mon Jan 6 17:02:20 2014 +0100

    prepare backend for panner selection
2014-01-09 00:18:45 +01:00
Sakari Bergen
054ead24cc Fix dither data width assertions and related tests
Fixes 32-bit export

This was broken from the start, and was broken in a new way in
52309c0c4f
2014-01-08 20:33:17 +02:00
c4cdf61971 make LV2 presets immediately available 2014-01-07 02:17:25 +01:00
58363e5490 remove inadvertently commited debug/devel code 2014-01-07 01:45:20 +01:00
2163467d31 add M-Audio 2496 as a recognized card for the mudita24 control panel/app.
(Yes, this hard coding thing is awful)
2014-01-06 11:35:57 -05:00
00fbc9c342 fix plugin log-sliders for ranges [0..] 2014-01-06 00:01:24 +01:00
7eca991971 fix fader default-value line position 2014-01-05 13:09:08 +01:00
d89573f8e7 update slider rendering & set style for faders
* render background -- outside of rounded corners
* visually align unity-location with fader at 0.
* sharp lines (no more AA blur) x/y offset, radius
2014-01-05 13:07:31 +01:00
f3d858f9df fix detection of aubio library - aubio-0.4 breaks API and ABI.
ideally we'll want atleast_version='0.3.2', max_version='0.3.9'
(or anything before 0.4.0) for the time being.
but waf/autowaf don't seem to allow that.

aubio-0.3.2 was the previous minimum requirement and is
also the last release of audio-0.3.X, so we're good with
exact_version for now.
2014-01-04 19:28:15 +01:00
e8e4e677aa processor drag box only 2014-01-04 05:43:20 +01:00
52d6cbc1e9 fix PixFader size allocation
previously faders in the processor box were only sized correctly
after the 2nd iteration: allocate -> request -> allocate
2014-01-04 05:42:31 +01:00
d85ec4ee17 don't split process cycle at end
Keep in mind: While this is the correct thing to do,
it hides another another bug under the hood, related to
_global_port_buffer_offset in MidiPort::flush_buffers.
For debugging the latter issue, revert this.
2014-01-03 18:36:00 +01:00
a37112bdd7 improve clarity of logic parentheses 2014-01-03 12:19:18 -05:00
31a1b73752 Merge branch 'master' of https://github.com/derAbgang/ardour 2014-01-03 12:18:36 -05:00
Nils Philippsen
aa15f90959 don't declare hilight variable twice 2014-01-03 18:11:30 +01:00
Nils Philippsen
156283936b get rid of const warnings 2014-01-03 18:11:30 +01:00
derAbgang
f1a93bc8a1 mantis 0005805 2014-01-02 17:13:14 -05:00
Julien de Kozak
b439b79813 Fix tests compilation after Control API changes 2014-01-02 09:00:58 -05:00
2644aaddb1 visualize port connections in mixer/processor when in < out 2014-01-01 15:34:06 +01:00
91ae2c0e81 debug message: print uint8 channel as integer not char 2013-12-31 11:44:19 +01:00
bcc5a4d7d2 improve debug message 2013-12-30 16:58:46 +01:00
e281f5653c fix assert for non-existing MIDI patch-names
typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = MIDI::Name::ChannelNameSet; typename boost::detail::sp_member_access<T>::type = MIDI::Name::ChannelNameSet*]: Assertion `px != 0' failed.
2013-12-30 16:24:27 +01:00
c284823413 optimize peak calculation of silent buffers 2013-12-30 14:26:09 +01:00
a3ba6163b3 NOOP. remove trailing whitespace 2013-12-30 14:21:09 +01:00
ee5186a461 make meters request constant buffers 2013-12-30 14:20:02 +01:00
9875d43414 use buffer APIs instead of raw memcpy, fix plugin bypass 2013-12-29 21:48:14 +01:00
f4060c6b38 fix replicate_missing_region_channels option 2013-12-28 21:12:57 +01:00
0f6686eea9 remove unused API to explicitly set/unset buffer silent flag 2013-12-28 13:43:57 +01:00
37264c85a5 centralize buffer silent-flag
fixes possible x-talk 1 in, >= 2 out tracks:

Previously, only the first route-buffer of the input buffers
were marked as non-silent in Route::process_output_buffers().
Other buffers in the set (e.g. post-panner) would
contain audio but not marked as non-silent.
2013-12-28 13:43:44 +01:00
8f69af4af3 add support for old compilers w/o implicit stdbool 2013-12-27 14:53:30 +01:00
3f75d78848 initialize some uninitialized variables 2013-12-27 14:04:49 +01:00
Sakari Bergen
e00d9dd585 Re-enable export file tagging. No idea why this code has dropped out at some stage... 2013-12-23 20:26:51 +02:00