13
0
livetrax/libs
Robin Gareus 7a5cea45e1 fix seamless midi-looping - fixes #5438
well, now...
 - Midi-Ports have a midi-buffer.
 - Midi-Tracks have a midi-buffer.
 - Midi-tracks have a diskstream.
 - Midi-diskstream has a midi-ring-buffer.
 - Midi-tracks have a delivery
 - The delivery can get a reference to the actual backend-ports
 - The delivery calls the Midi-Port's flush() buffer to send out queued events
   at the end of a cycle

all clear ? :)

 - when splitting the process-cycle: only the Ports are informed.
   all other objects see a "normal" short process cycle starting at "0".

The offset needs to be applied early on, so that internally routed buffers
push the event at the correct time when combining the buffer with
immediate and async events.

Luckily Port::port_offset() is a static member, available to all, objects,
which allows to bridge the conceptual gap between the diskstream and
the delivery.

There's a snag:
When there's a note-on directly at the beginning of the loop it coincides
with the panic message sent when looping.
The panic comes before note events, so it *should* be good.

Also the final note-offs (state tracker end of loop/region) are sent
1 sample too early (smells like an off-by-one), and are hence dropped.
(no matter we send a panic right after it).
It should really be at the same time, just before the panic.
2015-11-29 01:27:18 +01:00
..
appleutility fix OS X system detection (amend 66704ee) 2015-10-18 23:19:52 +02:00
ardour fix seamless midi-looping - fixes #5438 2015-11-29 01:27:18 +01:00
ardouralsautil
audiographer
backends add some midi-debug printf() to the dummy backend 2015-11-28 22:54:00 +01:00
canvas fix crash when cleaning up canvas items 2015-11-02 05:15:55 +01:00
clearlooks-newer
clearlooks-older
evoral Handle paste from non-toggled to boolean automation track. 2015-10-31 03:54:18 +11:00
fst
gtkmm2ext make copies of global lists before extending 2015-11-23 08:43:19 -05:00
libltc
midi++2 get faderport i/o working, basics of identifying control activity 2015-11-24 18:00:11 -05:00
panners
pbd use thread private data **pointer** correctly for Stateful::ID regeneration 2015-11-17 08:53:29 -05:00
plugins/reasonablesynth.lv2
ptformat
qm-dsp
surfaces faderport: shift+encoder controls pan width (for ardour only), input trim now controlled by user+encoder. 2015-11-27 16:41:26 -05:00
timecode
vamp-plugins add basic VAMP plugin for EBUr128 analysis 2015-11-03 19:21:32 +01:00
vfork