13
0
Commit Graph

15108 Commits

Author SHA1 Message Date
81b38c110a remove unused (empty) API 2019-11-02 16:32:18 -06:00
3ec845b1ef remove unused API 2019-11-02 16:32:18 -06:00
4d5fd1af4b add another conditional to decide if we should merge disk MIDI data into input MIDI data 2019-11-02 16:32:18 -06:00
1a2820a886 remove commented line 2019-11-02 16:32:18 -06:00
1bbbbd62fd helpful variable rename 2019-11-02 16:32:18 -06:00
e8a12a1a29 clarify clarifying comment 2019-11-02 16:32:18 -06:00
6e0c5483b2 remove MidiPlaylist::read() API 2019-11-02 16:32:18 -06:00
7dfae40e3b comment out actual action in MidiPlaylistSource::read()
See comment and remember that we do not MidiPlaylistSource at this time.
2019-11-02 16:32:18 -06:00
17ba6d319f use a different MidiBuffer API to move data from RT MidiBuffer into MidiBuffer during ::read() 2019-11-02 16:32:18 -06:00
eaae38ba84 move evoral/src/* to evoral/ 2019-11-02 16:32:18 -06:00
a855119bdd rename all Evoral source from .(hpp|cpp)$ to .(h|cc) 2019-11-02 16:32:18 -06:00
63b909211d NO-OP: whitespace 2019-11-02 16:32:18 -06:00
bc706064c6 use a note tracker to resolve notes cut off during render by the end of the region 2019-11-02 16:32:18 -06:00
5d40ab22fd remove a mistakenly left-in declaration 2019-11-02 16:32:18 -06:00
b83ef09947 various adjustments so that a MidiPlaylist gets re-rendered whenever it changes.
This may still be missing a few changes (i.e. they do not cause re-rendering)
2019-11-02 16:32:18 -06:00
6128d1759c do not initiate transport stop during loading when setting capture/playback buffer sizes 2019-11-02 16:32:18 -06:00
a08012214f add a new "contents" pseudo-property to Region
The type of this property doesn't matter - it only exists so that we can
signal a change to the (MIDI) contents of a Region via PropertyChanged
2019-11-02 16:32:18 -06:00
f21dd03a0f NOOP: whitespace change 2019-11-02 16:32:18 -06:00
ff7e952942 fix thinko when dealing with non-MIDI tracks 2019-11-02 16:32:18 -06:00
c0a1aec516 start removal of NoteFixer code
Plan is to always read MIDI directly from rendered version. MidiPlaylistSource needs
attention before MidiPlaylist::read() can be removed
2019-11-02 16:32:18 -06:00
addebc3240 move ownership of an RT MIDI buffer from DiskIO to MidiPlaylist 2019-11-02 16:32:18 -06:00
5c0fd05c52 fix reallocation/copy sizes for direct index and blob pool 2019-11-02 16:32:18 -06:00
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
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
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
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
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
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