604fc35e16
clear RTMidiBuffer before re-rendering into it
2019-11-02 16:32:18 -06:00
0573e7cdf0
alter where note resolution happens when a re-rendering is scheduled for a MIDI track
2019-11-02 16:32:18 -06:00
2cf9ad8f8c
refactor SessionEvent and DiskIO so that we pass around boost::shared_ptr<Track> rather than Route
...
(this the raw pointers used inside SessionEvent)
2019-11-02 16:32:18 -06:00
5b92ef4353
remove unnecessary fwd decl
2019-11-02 16:32:18 -06:00
5cd9c86d58
add RAII-style write protection while rendering MIDI playlist into RTMidiBuffer
2019-11-02 16:32:18 -06:00
c55e23e7aa
change MidiPlaylist::dump() into ::render(); change type of initial argument
2019-11-02 16:32:18 -06:00
3f8fbf22e6
fix initialization order
2019-11-02 16:32:18 -06:00
73e9560eef
add extra info to output of RTMidiBuffer::dump()
2019-11-02 16:32:18 -06:00
b017f20141
correct size computation for RTMidiBuffer, and reduce expansion amount
2019-11-02 16:32:18 -06:00
08ab8fc58a
remove unused member variable
2019-11-02 16:32:18 -06:00
088e4bca5a
reimplement RTMidiBuffer using a highly optimized data structure
...
Reduces load time of Glass MIDI piece with 48k note events by about 35%. Improves data
locality. Omits size for all 3 byte or less MIDI events, uses implicit size. No limit
on size of sysex.
Relies on the fact that the data structure is always filled linearly in time, and
never modified.
2019-11-02 16:32:18 -06:00
e87e0ec028
add a MidiStateTracker to DiskReader and use to handle transport stop note resolving
2019-11-02 16:32:18 -06:00
67beff22ce
trivial cleanups
2019-11-02 16:32:18 -06:00
22da779322
introduce new all-in-RAM MIDI datastructure and use it for MIDI playback
2019-11-02 16:32:18 -06:00
cc949232fe
Remove complicated panner theme logic.
2019-11-02 14:57:53 -05:00
9b7998e747
Fan-out multi-channel instruments to tracks (not busses)
2019-11-02 18:47:59 +01:00
8b3dd2bed2
Enable fan-out by default
...
When adding a new multi-channel instrument, assume the
user wants to pan the outputs independently.
2019-11-02 16:39:14 +01:00
e0493814ec
fix the way Session::auto_loop_changed() works to put back various things removed since 5.x
2019-11-01 21:25:20 -06:00
e4caef2c72
if a complete refill is called for, DiskReader cannot internal seek
2019-11-01 21:25:20 -06:00
b68a7fdf96
Make virtual-keyboard messages translatable -- #7834
2019-11-02 02:44:27 +01:00
6c37ab411c
last piece of seamless-loop removal
2019-11-01 15:57:50 -06:00
833927a4ea
don't send TFSM event LocateDone after a locate-for-loop-end
...
See comment for explanation
2019-11-01 15:56:06 -06:00
c3d68338ad
fix logic error with contents of session dialog shown after "Close"
2019-11-01 15:48:16 -06:00
a072228de5
remove seamless looping as an option (it's now the only kind of looping we support)
2019-11-01 14:04:28 -06:00
fb2f1aa8e1
cut down on DEBUG::Transport noise
2019-11-01 14:04:28 -06:00
0f6ad823de
if looping, squish DiskReader::playback_sample into loop range
2019-11-01 14:04:28 -06:00
d30f2180bf
transportFSM: when locating due to end-of-loop, skip declick and do not transition states
2019-11-01 14:04:28 -06:00
0041e8b3ae
Disable direct master-send on fan-out
2019-11-01 20:44:14 +01:00
86def2e35e
Fix thinko in aux-fader color.
2019-11-01 10:35:53 -05:00
a5140f4558
Handle Lua DSP script load failure (unknown plugin)
...
This handles a very specific edge-case: A script that was
successfully parsed before, fails load on session state restore.
2019-11-01 15:54:36 +01:00
7852047dca
Fix XML-writer edge-case (empty content)
2019-11-01 15:39:44 +01:00
eca27d8218
Fix MIDI Timestretch
...
* skip notes outside of region-range (source-start, region-length)
* handle tempo-ramps properly, apply map to stretch-fraction
* fix region properties after stretching
(position needs to be re-set first, to set a midi-region's
quarter-note position, which is used by the length calc)
2019-11-01 05:40:30 +01:00
fe880d9b57
Consolidate more automation-mode texts
2019-10-31 23:58:05 +01:00
d584e962ff
Fix copy/paste mess in ab298f035a
2019-10-31 18:47:08 +01:00
69cb02f213
Remove unused string translation
2019-10-31 16:33:56 +01:00
ab298f035a
Consolidate automation and meter-point strings
...
This also properly selects texts in dropdown-menus on the mixer-strip,
panner and plugin-controls, gain-meters.
2019-10-31 16:12:27 +01:00
3cae11936f
Highlight the currently selected item in ArdourDropdown & co
2019-10-31 14:38:26 +01:00
016db85fa1
Workaround a GTKMenu bug in ArdourDropdown & co.
2019-10-31 14:21:57 +01:00
07458155a2
Work around an initialization bug of GTK menus
2019-10-31 11:34:36 +01:00
eaba4fa593
Update |offset| instead of changing the formula
...
So that the test to see if it fits also takes the new offset into
account.
2019-10-31 10:42:37 +01:00
fb9203998b
Align vertical centers of widget and active menuitem
2019-10-31 10:29:43 +01:00
7d48b20652
Fix a thinko in x position of menu popups
...
This has lasted without being noticed because menus that big are not
common.
2019-10-31 10:29:43 +01:00
5e4d641488
NO-OP: whitespace
2019-10-31 00:22:26 +01:00
98db30efb1
Declare helper function static (don't export)
2019-10-31 00:22:12 +01:00
3a16b89219
Try harder to put the active item under the mouse (ArdourDropdown)
2019-10-30 23:56:36 +01:00
27a3b93152
Update latency-compensation when re-ordering processors
...
When re-ordering processors, the route's own latency does not
change (at first).
But it might if sends or plugins with side-chains a involved.
2019-10-30 23:51:53 +01:00
e2f5ce6f61
NO-OP: whitespace/comments
2019-10-30 23:45:27 +01:00
796558ef51
Suggest multi-out of instruments by default
...
When a user picks a N-channel instrument with strict i/o.
Offer N-channel (with optional fan-out) as default.
2019-10-30 15:35:52 +01:00
a16f004d24
fix vanished audio/MIDI setup window after "Start" is clicked anytime other than during startup
2019-10-29 18:20:55 -06:00
91fd927a80
fix appearance of SessionDialog presented after Session > New
...
Needed to be told "require_new" to make sure the correct display is shown
2019-10-29 18:09:55 -06:00