When importing an exported BandBook json file, very large audio tracks will not successful import. With commit 02ddeea9c4f2ace17aa78f337444eced38557144, the bug was at least caught and the song source skipped. Ideally, though, any size track would work the same through all features.
Technical Notes
This is breaking because of the hard length/heap limit placed on JS arrays (112813858). It's possible this could be fixed by chunking and/or streaming the data. There may be a novel/creative solution here, too. The only thing that is breaking is the import feature - because that is the only place that (on import) attempts to convert the base64 stringified source to an ArrayBuffer (before it gets converted to a Blob URL in the Player). Some possible places to start with this one:
Alternative ways of getting from base64 to the required Blob format (may be able to just move some things around to achieve this)
Can we use the string source if that's all we have? The Blob is nice, but not actually necessary to play the song if we can get the string directly to the audio element.
Acceptance Criteria
[ ] Large songs can be exported and imported the same as small songs
Background/Context
When importing an exported BandBook
json
file, very large audio tracks will not successful import. With commit 02ddeea9c4f2ace17aa78f337444eced38557144, the bug was at least caught and the song source skipped. Ideally, though, any size track would work the same through all features.Technical Notes
This is breaking because of the hard length/heap limit placed on JS arrays (112813858). It's possible this could be fixed by chunking and/or streaming the data. There may be a novel/creative solution here, too. The only thing that is breaking is the import feature - because that is the only place that (on import) attempts to convert the base64 stringified source to an ArrayBuffer (before it gets converted to a Blob URL in the
Player
). Some possible places to start with this one:Acceptance Criteria