Robin Gareus
18db6e3f50
NO-OP: whitespace
2017-06-09 23:25:42 +02:00
Robin Gareus
a1b4f9b8ab
Fix deletion of VCA with slaved controls.
...
The crashed previously because:
A VCA is-a Automatable is-a Evoral::ControlSet
After VCA's d'tor completes ~Automatable runs and emits signal to
DropReferences of all master-controls.
This in turn calls SlavableAutomationControl::master_going_away()
for slaved parameters for the given master-control
In ::master_going_away() the weak-pointer reference to the master's
AutomationControl (owned by the destroyed VCA) is still valid.
Execution is in the d'tor of Automatable which is-a ControlSet and
the ContolSet keeps a reference to the Control and hence also to the
AutomationControl which is-a Evoral::Control.
So master_going_away() locks a boost::shared_ptr<ARDOUR::AutomationControl>
which is actually the MuteControl owned by the VCA.
It calls SlavableAutomationControl::remove_master() which
in turn calls MuteControl::pre_remove_master() which uses the
MuteMaster API to retrieve the value. The MuteMaster however is the
VCA that has just been destroyed.
The solution is twofold:
1) emit "drop_references" from the VCA d'tor itself,
before the VCA is destroyed.
2) disconnect a slaved control from the master's drop_references signal
when un-assigning a master-control.
2017-06-09 23:25:42 +02:00
Robin Gareus
48ea6beaad
Remove Automatable::value_as_string API from libardour
...
Keep Pannable::value_as_string() for now. That is another inconsistency
which needs cleaning up. GUI StereoPanner and MonoPanner print
the value as they see fit, the panner-plugin provided formatting
is not used.
2017-06-09 16:54:21 +02:00
Robin Gareus
17fb5bfb49
Prepare to eventually drop Automatable::value_as_string()
...
Probably due to historical reasons, there are two APIs to format a
control's value. In all both variants end up calling either
ARDOUR::value_as_string() or the Controllable's formatting function
(except for panners).
2017-06-09 16:54:21 +02:00
Damien Zammit
d08b81d33d
a-EQ: Revert one of the previous changes
...
One of the previous changes was not a typo, revert it.
2017-06-09 23:09:36 +10:00
nick_m
4ef4f45f3d
Add a method for obtaining the frame position of beat/whatever zero
2017-06-09 11:01:30 +10:00
nick_m
cebefe69d9
Tempo lines display subdivisions correctly over a tempo change
...
TempoMap::get_grid() supplies a list of beat positions, leaving the lines
to work out any subdivision positions.
This is fine, unless a tempo section falls in between beats.
Use a BeatsFramesConverter along with a quarter note position
(in the BBTPointsList) to make this easier.
2017-06-09 01:44:48 +10:00
nick_m
2b320d51dd
Fix reversed logic in legacy tempo secton detection
2017-06-09 01:34:14 +10:00
nick_m
d455806a73
Do not duplicate note id in copy constructor
...
This fixes selection undo after copy-dragging notes, but there
are probably other cases where duplicate note ids may cause problems.
2017-06-08 23:11:56 +10:00
nick_m
3d5f21a3e5
Remove debugging from TempoTest::qnDistanceTestRamp ()
2017-06-08 22:39:41 +10:00
nick_m
7a71428fb0
Fix uninitialised tempo section variable
...
Should fix 7390.
2017-06-08 22:18:57 +10:00
Damien Zammit
ca815acd61
a-EQ: DSP bugfix
...
Previously there were large spurious spikes in the signal when
the bandwidth parameter was adjusted on a pure sine tone
for the peaking circuits. This has been *greatly* reduced if not
eliminated by fixing a typo in two of the equations.
2017-06-08 02:04:12 +10:00
Len Ovens
c4a4857b87
OSC: add optional paging to sends in select.
2017-06-06 09:08:35 -07:00
Nil Geisweiller
a07ca8fa3e
Fix a-EQ when parameter changes are very slow
...
If the parameters change too slowly the filter may never get updated. Indeed,
in spite of v_f0, v_g or v_bw being updated, set_params may never be called,
thus v_filter never updated.
2017-06-06 14:44:19 +02:00
Robin Gareus
11ba1854b3
Apply VCA master gain automation to Amp (Fader, Trim)
2017-06-03 13:55:16 +02:00
Robin Gareus
9581cb26e4
Add infrastructure for evaluating VCA automation curves
2017-06-03 13:55:14 +02:00
Robin Gareus
d662e6e0bf
amend 67f9f6fd: no recursive ReaderLock
2017-06-03 13:55:08 +02:00
Robin Gareus
c2cb60ea03
add const-ness: Evaluating a curve does not change it.
...
Note that the ControlList's lock and cache are already mutable.
2017-06-03 13:55:02 +02:00
Robin Gareus
0c57199a6c
Add a scratch buffer for automation.
...
Useful as temporary buffer: This allows a controllable to
get a master's automation-curve and combine it with its own
(gain, trim, send) automation buffer.
2017-06-03 13:54:55 +02:00
Robin Gareus
5f7d50a690
NO-OP: whitespace
2017-06-03 00:19:35 +02:00
Len Ovens
d35dfa9c93
OSC: Some surfaces may use float for ssid. Accept this too.
2017-05-31 08:39:55 -07:00
Len Ovens
b343108756
OSC: check controllable exists before using
2017-05-31 08:39:55 -07:00
Robin Gareus
46a2bfa0e6
Add Lua bindings for VCAs and VCAManager
2017-05-30 15:15:30 +02:00
Robin Gareus
67f9f6fd75
Prepare for automation control master
...
Basic infrastructure to allow VCA automation and Trim automation:
look up events during automation playback.
2017-05-30 15:13:37 +02:00
Robin Gareus
628e60f8fd
NO-OP: whitespace
2017-05-29 23:45:16 +02:00
Daniel Sheeler
d67436af3b
duplicate routes start off unsoloed to avoid issues related to upstream / downstream buses
2017-05-29 15:42:27 -05:00
Robin Gareus
0a13106765
Allow export presets for 176.4KHz -- "Ardour6: music for bats"
2017-05-29 13:37:06 +02:00
Tim Mayberry
1ef690da19
Use string concatenation and PBD::to_string in EventTypeMap::to_symbol()
...
Avoid using PBD::string_compose for serialization as correct behaviour depends
on the setting of the global C++ locale.
2017-05-26 10:50:08 +10:00
Tim Mayberry
1f094027c5
Remove normalization of property names from libpbd xml code
...
It may have been OK to add this code temporarily at this low level, but as it
was introduced in 2008, this change is made with the assumption that any
Sessions that were affected have been re-saved since then with corrected
property names and that "normalization" is no longer necessary.
Timing results before changes:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 30375 Max: 48253 Total: 431727 Avg: 43172 (43 msecs)
Write : Count: 10 Min: 42553 Max: 49163 Total: 453353 Avg: 45335 (45 msecs)
Read : Count: 10 Min: 70307 Max: 75987 Total: 734923 Avg: 73492 (73 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 154486 Max: 307856 Total: 2678989 Avg: 267898 (267 msecs)
Write : Count: 10 Min: 304273 Max: 343274 Total: 3169158 Avg: 316915 (316 msecs)
Read : Count: 10 Min: 496920 Max: 541394 Total: 5260410 Avg: 526041 (526 msecs)
Timing results after changes:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 21437 Max: 39749 Total: 348622 Avg: 34862 (34 msecs)
Write : Count: 10 Min: 42320 Max: 49989 Total: 446135 Avg: 44613 (44 msecs)
Read : Count: 10 Min: 63252 Max: 68389 Total: 660841 Avg: 66084 (66 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 113458 Max: 263225 Total: 2215595 Avg: 221559 (221 msecs)
Write : Count: 10 Min: 305439 Max: 339986 Total: 3150697 Avg: 315069 (315 msecs)
Read : Count: 10 Min: 447560 Max: 488121 Total: 4698903 Avg: 469890 (469 msecs)
2017-05-26 08:48:04 +10:00
Tim Mayberry
640d9d355f
Use correct property name in generic MIDI surface
...
Fixes restoring the feedback interval property, but as the mutator/setter
method doesn't seem to be used this change should have no affect.
2017-05-26 08:48:04 +10:00
Tim Mayberry
bbb9a82e17
Use correct names when setting MidiTrack properties
...
These were changed in the XMLProperty ctor and they now match the names used in
MidiTrack::set_state()
2017-05-26 08:48:04 +10:00
Robin Gareus
244313f43f
Always create a deep copy of MIDI regions when copying playlists.
2017-05-25 14:10:14 +02:00
Robin Gareus
ae4b6316f1
Implement basic AU parameter-printing
...
(don't leave buf uninitialized)
2017-05-25 13:49:18 +02:00
Robin Gareus
63a71c597a
Include ParameterDescriptor in read-only control output
2017-05-25 13:49:18 +02:00
Len Ovens
2c40b46ca9
OSC: fix return value for successful touch
2017-05-24 13:58:49 -07:00
Len Ovens
1e95ccf07d
OSC: Added lpf and hpf controls for freq,enable and slope
2017-05-24 07:37:21 -07:00
Len Ovens
f493b24e3e
OSC add feedback for extra comp and eq controls
2017-05-23 17:16:42 -07:00
Len Ovens
2f1ad4d9a2
OSC - make /strip/list accept a parameter like everything else
2017-05-23 15:14:31 -07:00
Tim Mayberry
f9b256044f
Remove old jack_utils.h header that was moved to the JACK backend
...
Also remove a related test that has not been part of the unit tests since the
move (years).
2017-05-23 14:32:15 +10:00
nick_m
39e7e11b5e
Sort tempo map after legacy sections have been assigned a pulse
2017-05-23 11:41:36 +10:00
nick_m
b886c1dcfa
Tempo sections with a BBT start XML node are never ramped
2017-05-23 09:54:30 +10:00
Tim Mayberry
4d927c6bd4
Use braces in BasicUI::jump_by_bars()
2017-05-23 09:13:27 +10:00
Tim Mayberry
7fe188ec92
Use braces in BasicUI::jump_by_seconds()
2017-05-23 09:13:27 +10:00
Tim Mayberry
df185e575e
Use correct variable in BasicUI::jump_by_seconds
2017-05-23 09:13:27 +10:00
nick_m
1a31134d38
Fix failure to laod old tempo maps
...
I suspect this happened after an api change.
Now, just use the position pair instead of a whole new variable.
2017-05-23 05:30:39 +10:00
Len Ovens
b3fb75fead
OSC: Further fixes so multiple controls can touch at once.
2017-05-20 10:17:31 -07:00
Len Ovens
ab069b1372
OSC: fix c++98 mistake
2017-05-20 09:09:01 -07:00
Robin Gareus
9fc65b274e
Fix libhid compile with /recent/ libc (GNU_SOURCE)
...
- strtok_r
- strdup
- wcsdup
2017-05-20 12:39:49 +02:00
Len Ovens
6926b7eb75
OSC: Catch case of surface sending fader move before touch
2017-05-19 15:48:36 -07:00
Len Ovens
84e1a216bc
OSC: Add fake timeout based touch
2017-05-18 15:32:12 -07:00