13
0
Commit Graph

5622 Commits

Author SHA1 Message Date
8aa6585702 remove cruft 2014-01-22 15:30:23 +01:00
a5de06a050 backend for auditioning midi-files:
* "downgrade" auditioner from AudioTrack to Track.
* add relevant methods from both AudioTrack and MidiTrack.
2014-01-22 15:30:18 +01:00
1e3ad60eb6 take all tracks inside a midi-file into account when loading model
* fixes [region] length calculation,
* prepare for auditioning midi files (one track plays it all)
2014-01-22 15:30:14 +01:00
9e799c6146 open external [read-only] midi-files on construction 2014-01-22 15:30:09 +01:00
eb853b79c4 fix midi source factory -- load_model() uses shared_from_this() 2014-01-22 15:30:04 +01:00
3bc0d3e57b fix evoral assignment operator (copy buffer) 2014-01-22 15:11:31 +01:00
06cc5e5240 fix bitslot already in use warning
in e45151b89c route.cc was changed to create internal sends
directly with role = Delivery::Aux; and not Delivery::Role (0).
This change was motivated to initialize the panner for Aux-sends
in the Delivery.

Role(0) was used to override bitslot numbering during initial
construction of the object when the state is loaded from XML after
construction.

This patch adds an explicit flag for that.
(The previous Role(0) approach only worked for Aux-Sends
but not Sends, anyway.)
2014-01-22 13:06:58 +01:00
ca8fa56b61 lock source list when destroying it. 2014-01-19 22:49:58 +01:00
b3dd518b22 remove cruft 2014-01-19 22:49:48 +01:00
7f8faff384 fix typo in VST flags 2014-01-18 13:51:05 +01:00
c6b94acd7f mark session dirty when panner-bypass is toggled 2014-01-18 13:51:05 +01:00
73c6122591 towards a SRC source + resampling during audition 2014-01-18 13:51:05 +01:00
96cbcf0ee4 Fix crash when instrument plugins fail to instantiate. 2014-01-17 19:34:51 -05:00
0506f85e9d remove cruft 2014-01-17 16:00:17 +01:00
0479405e2f fix typo in auditioner-seek 2014-01-17 00:25:32 +01:00
b4462b3d22 add seeking to sfdb auditioner 2014-01-17 00:20:58 +01:00
10933e2003 allow auditioning via the monitor section to work.
Ideally, we would feed the monitor section via an internal (aux) send/return, but this is an improvement over what we had before
2014-01-16 17:22:19 -05:00
0b9199163d continue with tweaks to VST timeinfo, such that the again demo plugin appears to work exactly as expected 2014-01-15 22:28:01 -05:00
1c01ac5bc8 minor tweak to layout of vestige aeffectx.h 2014-01-15 20:37:26 -05:00
c3984f35ac more work on debugging VST timeinfo issues 2014-01-15 16:48:22 -05:00
3eadbaaf58 debug VST timeinfo callback, pt3 2014-01-15 16:31:10 -05:00
4365ea06e3 debug VST timeinfo callback, pt2 2014-01-15 16:26:21 -05:00
0265f3f1e2 debug VST timeinfo callback 2014-01-15 16:24:03 -05:00
40e7379569 don't require VST plugins to actually ask for time info fields 2014-01-15 16:19:04 -05:00
af3481fb78 add lots more BBT-based time info for VST plugins (see 5737) 2014-01-15 16:08:27 -05:00
a454bedc1d update VstTimeInfo structure, from Qtractor's version of vestige, which has all fields thanks to some steinberg online docs 2014-01-15 16:07:47 -05:00
f9a5f87003 don't pan send/return inserts 2014-01-15 17:59:16 +01:00
b06fa27ccb rework LXVST port assignments - fixes #5827 2014-01-15 14:55:26 +01:00
c8f9405386 stereo-panner: clamp width during processing to valid range 2014-01-15 14:07:02 +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
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
e45151b89c first stab at send+route panner link 2014-01-13 23:21:30 +01:00
291618fe71 allow to custom select panner-type for each delivery. 2014-01-13 15:13:37 +01:00
346310c60b fix delivery: check if panshell exists on session-load 2014-01-13 11:49:09 +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
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