Robin Gareus
ab58c894d3
Use weak-ptr for source added/removed signals (1/2)
...
This might fix a "SessionHandleRef exists across session deletion",
when the shared_ptr was be pushed onto a x-thread pool, and not
invalidated in time before the session was closed.
2019-12-25 17:59:38 +01:00
Robin Gareus
df17e3f041
Prevent copy-construction of sources to be destroyed list
...
destroy_sources () is only called from Session::remove_last_capture ().
The list of sources to be destroyed is the local scope of that method
and will hold a reference to the object.
copy-construct the list and removing elements one by one from the
copy is only unnecessary overhead.
2019-12-25 17:57:10 +01:00
Robin Gareus
c9c8cd2777
NO-OP: comment signal emission
2019-12-25 17:52:02 +01:00
Paul Davis
61aeb05f2e
add a mechanism to use existing MIDNAM info and connect to PatchesChanged in future, atomically
...
The atomically is with respect to the initial thread-based MIDNAM loading
2019-12-23 10:27:00 -07:00
Paul Davis
63ba8da3e1
basics of threaded MIDNAM loading
2019-12-23 10:27:00 -07:00
Paul Davis
4874ff8843
slightly enhanced error handling when loading MIDNAM data
2019-12-19 13:14:45 -07:00
Paul Davis
bfa5eb982d
handle MIDI rendering correctly when there are no regions
2019-12-19 13:14:45 -07:00
Paul Davis
8deed500a4
fix thinko ... we're checking if a DiskReader handles audio
2019-12-19 09:09:42 -07:00
Paul Davis
3c83979a50
further improve debug message
2019-12-18 19:56:38 -07:00
Paul Davis
c8b9184956
fix thinko in MidiRegion::render()
...
MidiSource::read() wants a length, not an end-sample.
This should fix (at least) some cases where notes past the region end
get included/played
2019-12-18 19:50:32 -07:00
Paul Davis
9bd8e67f39
remove debug message
2019-12-18 19:49:34 -07:00
Paul Davis
ebe1aeb146
fix debug message
2019-12-18 19:49:09 -07:00
Paul Davis
8b3e7fea37
fix Temporal::Beats::operator*
2019-12-18 18:00:53 -07:00
Paul Davis
aa856b509c
tweak debug output
2019-12-18 18:00:33 -07:00
Paul Davis
a73577a45a
do not try to process audio in a diskreader with no audio playlist
2019-12-18 17:34:39 -07:00
Paul Davis
aeefd7e50a
fix crash when looping with a MIDI track
2019-12-18 15:05:49 -07:00
Robin Gareus
c49c17ffff
Cont'd work on Playlists import from old 2.x sessions
...
v2.0.0 sessions don't save empty playlists. So missing playlists
for a give diskstream are fine. Just use a default empty one.
2019-12-17 22:56:12 +01:00
Paul Davis
53f72dd402
a new stop command while in the middle of declick-to-stop is not a bad transition
2019-12-17 13:21:38 -07:00
Robin Gareus
f76c897f04
Directly apply MIDI automation state changes
...
Previously "play/off" and "discrete/linear" changes had no effect
until the MIDI playlist was edited and MIDI re-read into RAM.
2019-12-17 17:17:27 +01:00
Robin Gareus
37c9a7beb1
Fix MIDI port i/o when vari-speeding
2019-12-17 05:56:49 +01:00
Robin Gareus
848831d844
Convert Disksteam & Playlists from old 2.x sessions
2019-12-17 00:42:28 +01:00
Paul Davis
c144e807ef
remove mistakenly left-in debug stacktrace
2019-12-16 16:18:30 -07:00
Paul Davis
cd78a168b2
reinstate missing latency initialization code
...
Removed (mistakenly) during work on transportFSM
2019-12-16 16:13:39 -07:00
Paul Davis
cafd1b792c
expand DEBUG_TRACE output
2019-12-16 16:13:39 -07:00
Robin Gareus
2c24e6af36
Remove cruft, unused API
2019-12-16 23:37:57 +01:00
Robin Gareus
415d3191de
Parse v2 session-information
2019-12-16 23:37:57 +01:00
Robin Gareus
eff5462009
Lua bindings for well-known send controls
2019-12-16 23:37:53 +01:00
Paul Davis
0b4b53b821
fix logic error that prevented MIDI playlists from being rendered at load time
...
An edit was required to force the render
2019-12-16 10:24:57 -07:00
Robin Gareus
3cdde4ffc1
LV2: add state:mapPath as supported feature and sort URIs
2019-12-15 14:06:00 +01:00
Paul Davis
b2bc934e21
fix behavior of DiskReader when moved after an instrument
2019-12-14 19:34:24 -07:00
Paul Davis
514c05a44e
truncate unnecessarily verbose debug set/bits output
2019-12-14 10:40:07 -07:00
Robin Gareus
93180ceea9
Add Inline Control Port Property
...
This allows to indicate that a control should by default be displayed
inline in the mixer-strip.
Previously that was hard-coded for and enabled for send-level
controls only.
2019-12-14 15:50:56 +01:00
Robin Gareus
d4e023e1cb
Make BusSendLevel 1st class citizen (1/2)
...
Equivalent to Gain and Trim (gain-coefficient, not dB) and use
it for Sends.
2019-12-14 15:06:23 +01:00
Robin Gareus
2efc96a9b8
Add Lua bindings to query AutomationControl paramater ranges
2019-12-13 23:05:15 +01:00
Robin Gareus
3ddfb4ffe3
Fix mismatched delete
2019-12-13 15:42:09 +01:00
Robin Gareus
3208535c20
Add method to look up Lua script by name
2019-12-12 20:53:17 +01:00
Paul Davis
bf8c256771
reduce another race condition risk
...
overwrite_queued == true is equivalent to _pending_overwrite != 0
2019-12-12 12:09:15 -07:00
Paul Davis
0b0c415b40
remove debug output
2019-12-12 12:08:48 -07:00
Paul Davis
3c8b506ace
remove useless lock
...
rbuf allocation/use is protected by process_lock
2019-12-12 11:31:43 -07:00
Paul Davis
35bea337d2
fix playback of newly added/modified MIDI data
2019-12-12 11:25:14 -07:00
Paul Davis
de8983ca72
expand DEBUG_TRACE() statement
2019-12-12 11:25:14 -07:00
Robin Gareus
f171e88775
BOOST_SP_NOEXCEPT is n/a in boost 1.62
...
Even though the method that is overridden (shared_ptr<t>::operator=),
has that signature in modern boost, it's of no real significance
for the case at hand (ExportChannel, ExportTimespan)
2019-12-12 16:06:46 +01:00
Paul Davis
87f4a4afff
use process lock to lock out process() during playback buffer resizing
2019-12-11 20:36:10 -07:00
Paul Davis
f78c659840
remove MIDI readahead parameter
...
We just don't do this anymore
2019-12-11 20:36:10 -07:00
Paul Davis
e8b3d38112
variable renaming in Butler for various buffer sizes
2019-12-11 20:36:10 -07:00
Robin Gareus
dc0037230e
Fix stackoverflow, endless recursion on ComparableSharedPtr assignment
...
boost::shared_ptr & operator=(shared_ptr const & r);
is not declared virtual and cannot safely be overloaded.
2019-12-12 03:57:58 +01:00
Robin Gareus
0a5837ec71
Fix loading plugin state from sessions
...
While loading a session XML state, set_state must use
`Stateful::loading_state_version`.
When later copying processor state,
`Stateful::current_state_version` is correct.
2019-12-11 16:25:08 +01:00
Robin Gareus
dd18be15fb
Remove hardcoded session-state versions
2019-12-11 13:56:44 +01:00
Paul Davis
3dafaaf2df
should probably resolve MIDI notes when loop bounds change
...
We don't really need to do this if the bounds have moved "outwards", but
at present we don't know if that is the case, so be safe and resolve in
case the loop bounds moved "inwards" and we would otherwise get stuck notes
caused by the now-missing noteOffs
2019-12-10 21:27:10 -07:00
Paul Davis
e46c45f6f0
fix unnecssary disruption of MIDI stream when disabling loop
2019-12-10 19:30:37 -07:00