Commit graph

15328 commits

Author SHA1 Message Date
Robin Gareus
2edbda2526
Replace explicit image-surface with cairo pattern/group
For MacOS/X this is equivalent, rendering happens using a
CGBitmapContext + image-surface. Windows and Linux needs profiling
for respective equivalent surfaces.
2019-12-27 19:35:02 +01:00
Robin Gareus
c3ab63a2ea
Allow for per-widget image-surface backing
This is an intermediate commit, before replacing image surfaces with
cairo pattern groups.

The eventual goal is to reduce flickering and/or use
CPU + bitblt for specific widgets instead of cairo
graphics-cards accel.

This also removes excessive calls to getenv() for every rendering
operation.
2019-12-27 19:34:56 +01:00
Paul Davis
7b1a875f9c remove unused member
Note: there is no global state for "the" transport master, since we have several at all times now
2019-12-27 10:53:02 -07:00
Paul Davis
c35a28acfe variable rename 2019-12-27 10:53:02 -07:00
Paul Davis
0d3a91b381 improve parseability of a comment 2019-12-27 10:53:02 -07:00
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