diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-01-29 01:23:16 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-01-29 01:23:16 +0300 |
commit | 23e613456e9d1f1a109cedd9c6fa3b875ea5540c (patch) | |
tree | 87385a56a9a7b553537360e5a317a74bc8af554e /midi.h | |
parent | d444a5d7405016a5094e26050cfb453bcd6f882a (diff) | |
download | applause2-23e613456e9d1f1a109cedd9c6fa3b875ea5540c.tar.gz |
revised Stream:resample() - it takes a stream factor now, so you can control playpack speed
* The old implementation was simple but severely limited:
* the resample factor (playback speed) could only be scalar
* for infinite source streams, the algorithm would require infinitely growing memory.
The algorithm therefore also wasn't realtime-safe and quite slow (probably because of reallocations).
* This could be made to work with stream-factors if the source stream is infinite,
but we couldn't get rid of the memory requirements due to being based on IndexStream.
* Instead, there is a custom ResampleStream now that backs Stream:resample().
It also performs linear interpolation but has constant memory requirements and works with factor-streams.
Even for finite source streams and constant factors this implementation will be faster and more
real-time safe.
* You cannot play backwards, due to missing buffering.
This can still be done manually using IndexStream if necessary.
Diffstat (limited to 'midi.h')
0 files changed, 0 insertions, 0 deletions