Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-12-18 | fix crash when looping with a MIDI track | Paul Davis | |
2019-12-16 | fix logic error that prevented MIDI playlists from being rendered at load time | Paul Davis | |
An edit was required to force the render | |||
2019-12-14 | fix behavior of DiskReader when moved after an instrument | Paul Davis | |
2019-12-13 | Fix mismatched delete | Robin Gareus | |
2019-12-12 | reduce another race condition risk | Paul Davis | |
overwrite_queued == true is equivalent to _pending_overwrite != 0 | |||
2019-12-12 | remove useless lock | Paul Davis | |
rbuf allocation/use is protected by process_lock | |||
2019-12-12 | fix playback of newly added/modified MIDI data | Paul Davis | |
2019-12-12 | expand DEBUG_TRACE() statement | Paul Davis | |
2019-12-11 | remove MIDI readahead parameter | Paul Davis | |
We just don't do this anymore | |||
2019-12-11 | variable renaming in Butler for various buffer sizes | Paul Davis | |
2019-12-10 | should probably resolve MIDI notes when loop bounds change | Paul Davis | |
We don't really need to do this if the bounds have moved "outwards", but at present we don't know if that is the case, so be safe and resolve in case the loop bounds moved "inwards" and we would otherwise get stuck notes caused by the now-missing noteOffs | |||
2019-12-10 | fix unnecssary disruption of MIDI stream when disabling loop | Paul Davis | |
2019-12-10 | use PlayistChanged appropriately to fix MIDI output | Paul Davis | |
We didn't render the MIDI data when a playlist was set, only when modified. | |||
2019-12-10 | revert to single buffer for disk playback, and 5.x-style overwrite | Paul Davis | |
Also address issues with MIDI and also atomicity of _pending_overwrite | |||
2019-12-08 | fix error when continuing to refill audio playback buffers after a buffer switch | Paul Davis | |
The file_sample[AUDIO] member was not updated to reflect the last-read sample in the switched-to buffer. Also move several methods and members from DiskIO to DiskReader where they belong. | |||
2019-12-08 | more debug output | Paul Davis | |
2019-12-07 | functional double buffering when using DiskReader::overwrite_existing_buffers | Paul Davis | |
2019-12-07 | a few parameter changes, and flesh out code to switch rbufs in DiskReader | Paul Davis | |
2019-12-07 | initial conversion to double buffering inside DiskReader | Paul Davis | |
Second buffer is not used (or allocated) yet. | |||
2019-11-24 | fix crash when using Region > Loop | Paul Davis | |
2019-11-23 | remove debug output | Paul Davis | |
2019-11-23 | remove debug message about LOCATE WITHOUT DECLICK. This behavior is normal ↵ | Paul Davis | |
and legal when looping | |||
2019-11-23 | more tweaks to correctly (or more correctly) reload disk reader buffers when ↵ | Paul Davis | |
loop fade choice changes | |||
2019-11-22 | redesign of declicking and fades around loop boundaries | Paul Davis | |
2019-11-21 | Fix multi-channel de-click | Robin Gareus | |
_declick_amp gain needs to be reset for each channel before the test (_declick_amp.gain() != target_gain) if de-clicking is needed. | |||
2019-11-19 | Fix declick offset position for multi-channel tracks | Robin Gareus | |
2019-11-18 | DiskReader::_declick_offs should only advance once per ::run() call | Paul Davis | |
2019-11-18 | DiskReader::_declick_amp needs to repeat the same work for each audio ↵ | Paul Davis | |
channel handled | |||
2019-11-18 | small changes to make declick out triggered by just stopping | Paul Davis | |
2019-11-18 | add missing NULL check | Paul Davis | |
2019-11-18 | use reverse-reading of MIDI data in DiskReader | Paul Davis | |
2019-11-15 | move DiskReader::inc_no_disk_output() into .cc to allow for easier debugging | 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-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-06 | resolved notes need to use cycle-relative time | Paul Davis | |
2019-11-06 | be sure to move effective_start while loop-reading MIDI | Paul Davis | |
2019-11-06 | fix DiskReader::get_midi_playback() when looping | Paul Davis | |
Although at the Session level we never run "through" the loop end, latency compensation means that that start/end sample values passed to Processor::run() may cross the loop end. Fix how we handle this so that we do not read data from after the end of the loop | |||
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-03 | another notable cleanup/simplification of DiskReader's MIDI handling | Paul Davis | |
Note that we resolve notes from the tracker directly into the output buffer. This happens after an edit causes a buffer overwrite | |||
2019-11-03 | comment fix | Paul Davis | |
2019-11-03 | immediate events time reference for zero is the start of the run() cycle, ↵ | Paul Davis | |
not absolute sample time | |||
2019-11-02 | for now, show how long MIDI rendering takes | Paul Davis | |
2019-11-02 | use playback filter when rendering MIDI; respond to changes in filter by ↵ | Paul Davis | |
re-rendering | |||
2019-11-02 | lovely simplification of DiskReader::get_midi_playback() | Paul Davis | |
This is made possible by knowing that it is never called upon to read across loop boundaries. The session splits the process cycle for the end of the loop | |||
2019-11-02 | remove unused (empty) API | Paul Davis | |
2019-11-02 | remove unused API | Paul Davis | |
2019-11-02 | add another conditional to decide if we should merge disk MIDI data into ↵ | Paul Davis | |
input MIDI data | |||
2019-11-02 | remove commented line | Paul Davis | |
2019-11-02 | helpful variable rename | Paul Davis | |
2019-11-02 | various adjustments so that a MidiPlaylist gets re-rendered whenever it changes. | Paul Davis | |
This may still be missing a few changes (i.e. they do not cause re-rendering) |