-
Notifications
You must be signed in to change notification settings - Fork 16
Extensible float #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Extensible float #49
Conversation
More support for the extensible format including floating point formats. Simple GUID support for the SubFormat, subFormatString can be removed. Added function Bw64Writer::writeRaw() allows client to submit samples already processed, dithered, etc. without more conversions. Must match the internal format. ExtraData::channelMask can be set in constructor as an optional parameter. TODO: Bw64Writer::write() should allow passthrough of floats directly to float format wavs.
Exception is thrown ("chunk ends after end of file") if the data chunk is the last chunk in the file and it ends on an odd number, and then adding the padding byte pushes it past the end. This fix adds the padding byte only if possible.
|
Thanks for the contribution -- yes, we're still alive, there's just not much need for constant changes in a library like this. re. the padding issue, what software generates files like this? They are invalid; riffmci.pdf says:
I'm not keen on accepting invalid files, even if it's just a technicality, as that's what leads to issues like this in the first place. Other software I've tried (sox, ffmpeg, audacity) accepts files with this issue, but writes correctly. Perhaps this could be dealt with by adding an explicit compatibility mode, or a way to issue warnings. re. floating point, yeah, that's a good idea. I think it was not added because it's not part of the BW64 spec. There are a few changes required I think:
I can probably do some of these, but it might be some time before I can work on it. Thanks again. |
# Conflicts: # include/bw64/writer.hpp
- Add CueChunk and LabelChunk classes to support audio markers - Add parsing and writing functionality for markers in WAV/BW64 files - Properly handle IEEE float format by adding specialized encoding/decoding - Replace format macros with constexpr for better type safety - Add comprehensive test cases for new functionality
- Add ListChunk for standard LIST/adtl chunk for labels - Fix library to properly handle multiple chunks with same ID - Add test for serializing/deserializing markers and labels
- CuePoint stores labels directly - Add marker management methods to Bw64Writer/Reader - Fix label chunk parsing in LIST chunks - Simplify API for marker creation and retrieval TODO: About to set labels into CuePoint on load TODO: About to use a map for CuePoint id management TODO: Fix the new tests to return sentinel object for findMarkerById
- Associate label chunks with their cue chucks on file reading - findMarkerById to return optional pointer instead of sentinel - Move float tests to float_tests.cpp, other cue tests moved to marker_tests.cpp
Not sure if project is still maintained but I added some features that I use, a bugfix or two