Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-05-04 | add some (commented/ifdef'ed) debugging for RTMidiBuffer::read() | Paul Davis | |
2020-03-05 | Remove a suspected C99-ism | John Emmas | |
'lower_bound()' iterates between param #1 and param #2, comparing the result with param #3 - either by making the comparison internally or by deferring to an external comparator function. Prior to C99 however, BOTH cases required param #3 to match the type being iterated. In the case of a deferred comparison, there was apparently a proposal to relax this restriction in C99, though I'm not sure if it in fact got implemented (can't find any examples of it anywhere...) | |||
2020-01-27 | Fix two more clang static analysis warnings | Robin Gareus | |
2020-01-07 | fix serious but rare error in RTMidiBuffer's storage of MIDI events with ↵ | Paul Davis | |
size > 3 sizeof (T) is in units of bytes, not bits. Use C++ standard CHAR_BITS instead. | |||
2019-11-18 | unset _reversed whenever RTMidiBuffer gets ::clear()'ed | Paul Davis | |
2019-11-18 | support backwards reading of MIDI from RTMidiBuffer | Paul Davis | |
2019-11-06 | fix unconditional note resolution during DiskReader::realtime_locate() | Paul Davis | |
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() - ::get_midi_playback() has already taken care of this. But when not looping, we need this. So, add an argument to tell all interested parties whether the locate is for a loop end or not | |||
2019-11-04 | avoid use of Port::port_offset() everywhere except Port::flush_buffers() and ↵ | Paul Davis | |
Port::get_buffer() Split cycles are run as if they are an entire self-contained cycle, starting at zero and running for "nframes". We adjust the timing and position of data only when retrieving and writing it to Port buffers. | |||
2019-11-02 | clarify clarifying comment | Paul Davis | |
2019-11-02 | use a different MidiBuffer API to move data from RT MidiBuffer into ↵ | Paul Davis | |
MidiBuffer during ::read() | |||
2019-11-02 | move ownership of an RT MIDI buffer from DiskIO to MidiPlaylist | Paul Davis | |
2019-11-02 | fix reallocation/copy sizes for direct index and blob pool | Paul Davis | |
2019-11-02 | add RAII-style write protection while rendering MIDI playlist into RTMidiBuffer | Paul Davis | |
2019-11-02 | add extra info to output of RTMidiBuffer::dump() | Paul Davis | |
2019-11-02 | correct size computation for RTMidiBuffer, and reduce expansion amount | Paul Davis | |
2019-11-02 | reimplement RTMidiBuffer using a highly optimized data structure | Paul Davis | |
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 | add a MidiStateTracker to DiskReader and use to handle transport stop note ↵ | Paul Davis | |
resolving | |||
2019-11-02 | trivial cleanups | Paul Davis | |
2019-11-02 | introduce new all-in-RAM MIDI datastructure and use it for MIDI playback | Paul Davis | |