Add F32/I16x2 conversions to support TDM #27
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Some dialogue on the Teensy forum raised the issue of support for 24- or 32-bit output; for example see
https://forum.pjrc.com/index.php?threads/updated-8x8-and-16x16-audio.75569/post-357275 Obviously not supported by the 16-bit Audio library, but partially supported in this library for I²S and S/PDIF.
Since the existing TDM support usually emits 32-bit samples, forcing use of even-numbered ports only, there is an opportunity to adopt the I/O objects directly by converting two 16-bit TDM port values (containing high and low words) to and from a single F32 stream, giving 24-bit I/O.
This commit implements the required conversion objects, plus a minor change to AudioStream_F32 needed for the
AudioConvert_I16x2toF32 class.