Commit graph

15735 commits

Author SHA1 Message Date
Paul Davis
0e42708685 expand comment to include (more of?) the full story about uncombining and copies 2020-01-08 22:21:21 -07:00
Paul Davis
965bf74f2b expand the test used to decide if we need to make copies when uncombining a compound region 2020-01-08 22:21:21 -07:00
Paul Davis
1c86b0ce13 never remove entries from the CompoundAssociation map 2020-01-08 22:21:21 -07:00
Paul Davis
7373e3ac14 add concept of an owner region (by ID) to PlaylistSource 2020-01-08 22:21:21 -07:00
Paul Davis
d1c2098c11 fix bugs (thinkos?) that confused PlaylistSource's id() with its original() 2020-01-08 22:21:21 -07:00
Paul Davis
0098072904 NOOP: reindent 2020-01-08 22:21:21 -07:00
Paul Davis
4d6ad4a499 increase explicit refcnt for playlists when used by a PlaylistSource 2020-01-08 22:21:21 -07:00
Robin Gareus
d1433992fb
Fix MIDI loop recording - Revert "Fix MIDI disk-writer flush"
This reverts commit 254f22e372.
2020-01-09 03:53:02 +01:00
Robin Gareus
16677e80cd
Towards fixing MIDI capture alignment
When there is no overlap (Evoral::OverlapNone) of local transport
position and the record-range, MIDI data does not need to be
offset.

This matches audio recording: Only write to the capture ringbuffer
when there is an overlap.

(There is still some unknown, unresolved discrepancy remaining
to be tracked down)
2020-01-09 03:37:21 +01:00
Robin Gareus
5b8765d6dd
Fix CaptureAlignment debug messsage 2020-01-09 00:20:43 +01:00
Robin Gareus
563a8b15e0
Revert to use an image surface for CairoWidgets
This partially reverts 2edbda2526 and is a follow up to 0b266a54f,
to fix performance issues with MS Windows graphics performance.
2020-01-08 04:24:51 +01:00
Paul Davis
5ff28f9ab7 fix required offset when reading MIDI data near loop end/start 2020-01-07 19:27:04 -07:00
Paul Davis
901f17dd67 improved/new DEBUG_TRACE output 2020-01-07 19:27:04 -07:00
Paul Davis
5948d14012 plugins should NOT resolve MIDI notes at loopend
Their data will come from (1) disk, in which case the DiskReader will do the resolve (2) live input
in which case the player/user will do the resolve
2020-01-07 19:27:04 -07:00
Paul Davis
11d7803e57 imrpove debug msg 2020-01-07 19:27:04 -07:00
Paul Davis
0ac09d1f67 fix serious but rare error in RTMidiBuffer's storage of MIDI events with size > 3
sizeof (T) is in units of bytes, not bits. Use C++ standard CHAR_BITS instead.
2020-01-07 19:27:04 -07:00
Robin Gareus
9091838b82
Fix MIDI Port-latencies
Only audio ports have additional latency due to I/O re-sampling
for vari-speed playback/capture.. MIDI ports are not affected.
2020-01-08 00:40:18 +01:00
Robin Gareus
7f33d95937
Remove debug output 2020-01-07 04:21:38 +01:00
Robin Gareus
254f22e372
Fix MIDI disk-writer flush
to_write must not exceed `total = _samples_pending_write`.
If the write succeeds (events spanning `to_write` samples are written)
to_write is atomically subtracted from `_samples_pending_write`.
2020-01-07 03:59:25 +01:00
Robin Gareus
eee01188b4
Dummy: Engine-Pulse audio/midi generators
This produces synchronous events on Audio and MIDI ports.
One rvent per second, exactly at every second since engine-start.

MIDI: C-4 Note-on/off (1 sample long)
Audio: +1/-1 transition:
       +1 in sync with Note-on,
       -1 in sync with Note-off
2020-01-06 22:43:30 +01:00
Robin Gareus
beb39092b9
Proper forward declaration for Lua bindings (amend 2afef6e4bd) 2020-01-06 17:14:10 +01:00
Robin Gareus
64b43a6b95
Fix windows fallback for LV2 state:freePath feature 2020-01-06 16:59:14 +01:00
Robin Gareus
2afef6e4bd
Fix Windows builds (Lua binding undefined reference) 2020-01-06 16:53:00 +01:00
Paul Davis
f8243e62e7 remove the (unused) concept of a MIDI patchfile folder per session 2020-01-05 18:47:59 -07:00
Paul Davis
d17a89c9a7 move MidiPatchManager initialization into ARDOUR "global" scope, rather than per session 2020-01-05 18:34:40 -07:00
Paul Davis
ece18d3083 use glibmm threads for the midnam load thread, instead of raw pthreads (for portability) 2020-01-05 17:58:54 -07:00
Paul Davis
5ff8e260ff remove unnecessary call to xmlKeepBlanksDefault() 2020-01-05 17:58:54 -07:00
Paul Davis
df3a4ed9c6 move call to xmlKeepBlanksDefault(0) to before the creation of an XML parser context
the value is used by the parser context; the old code called it only after the *first* parser context
was created. therefore the first XMLTree::read() call has its behavior determined by libxml2's default
for this value, rather than by our explicit choice (do not treat whitespace as a note). All subequent
read() calls will use our value.

This variable inside libxml2 is actually per-thread, which just increases the stakes for calling
xmlKeepBlanksDefault() at the right time
2020-01-05 17:58:54 -07:00
Paul Davis
560994c97a repeat baf0cdcbef but for BaseUI, thus covering all control protocols 2020-01-05 11:40:59 -07:00
Paul Davis
baf0cdcbef fix handling of flags in the OSC input handler
Some builds of glib on macOS end up delivering IO_PRI when IO_IN is also set. This differs from our own build stack
version, but it isn't really an error, so we should handle it.
2020-01-05 11:25:36 -07:00
John Emmas
45dd6a8ed3 Add a missing semicolon 2020-01-05 10:29:35 +00:00
Paul Davis
32d3554761 add extensive comment for posterity 2020-01-03 18:41:47 -07:00
Robin Gareus
0b266a54f0
Return of image-surface backed canvas (windows graphics performance)
This partially reverts 2edbda2526.

Using cairo-groups increases performance on MacOS, and retains
retina-resolution.
However it adds a performance regression for MS Windows graphics
rendering. cairo-groups use a "similar" surface, not an image surface.
Empirically this adds significant overhead compared to rendering
using the CPU and using bitblt.
2020-01-04 00:30:07 +01:00
Paul Davis
f892e5bcfa fix recent bad commit 2020-01-03 16:18:55 -07:00
Paul Davis
fd5cd74214 fix DiskReader::overwrite_existing_audio()
Several math/geometry errors here
2020-01-03 16:13:23 -07:00
Paul Davis
e7542c0611 NOOP: line refolding 2020-01-03 16:13:23 -07:00
Robin Gareus
eccbdd10e0
Remove debug output 2020-01-01 20:52:07 +01:00
Paul Davis
d100c92731 convert GenericMIDI into a real control protocol module, with its own event loop and ports 2019-12-31 12:06:14 -07:00
Paul Davis
1ced4067aa ensure that xmlKeepBlankDefault() is called early in instance-life, from PBD::init()
See comment for details on why
2019-12-31 12:06:14 -07:00
Paul Davis
007136cc23 remove MIDI Control input and output ports from session-level objects 2019-12-31 12:06:14 -07:00
John Emmas
75aaae9963 Fix two more cases of of C99 strtoll() 2019-12-31 10:11:18 +00:00
Robin Gareus
def4be7285
Fix MSVC builds, use C89 strtol() instead of C99 strtoll()
For the case at hand (plugin scale-points) it's highly unlikely to
encounter numbers > INT_MAX.
2019-12-30 19:05:51 +01:00
Paul Davis
60ccbcf9cc use a local version (copy) of the G_SOURCE_FUNC macro, since it is not available in the GTK+ version we use for the official build stack 2019-12-30 09:49:23 -07:00
Robin Gareus
3ee08bbae7
Revert "fix a cast warning (as recommended in GTK+ docs"
This reverts commit af30a6f001

because it breaks OSX/MacOS builds:
libs/surfaces/mackie/mackie_control_protocol.cc:945: error: 'G_SOURCE_FUNC' was not declared in this scope
2019-12-30 16:00:22 +01:00
Paul Davis
d79d2807b1 expand use of new BasicUI API for transport button state to all control surfaces 2019-12-29 18:53:22 -07:00
Paul Davis
52aa405ce3 use new Session API to deal with transport state
Transition to use BasicUI button state API to come
2019-12-29 18:43:51 -07:00
Paul Davis
e46e6f12a3 use new BasicUI and Session API to deal with transport state 2019-12-29 18:43:51 -07:00
Paul Davis
a8cc5b1303 provide new methods for BasicUI that wrap the "complexity" of how to show transport state via lit buttons 2019-12-29 18:43:51 -07:00
Paul Davis
6383d4f6a6 recomment a DEBUG_TRACE statement that generates too much output with -D transport 2019-12-29 18:43:51 -07:00
Paul Davis
30226fdc2a add EMIT_SIGNAL comment 2019-12-29 18:43:51 -07:00