chipaudette
Well-known member
Hi All,
Because I find it so much easier to code algorithms using floating-point operations (vs fixed-point), and because the Teensy 3.6 is so dang fast with floating-point math, I've extended the Teensy Audio Library to enable floating-point operations.
I tried to follow the structure and conventions of the Teensy Audio Library as my understanding allowed. But, as we know, the assumption of Int16 data is deeply entwined with the foundational structures of the Teensy Audio Library. But, through adding parallel classes and through inheritance, I was able to make floating-point objects that play nicely within the Teensy Audio Library world.
For more info, you can see my post here: http://openaudio.blogspot.com/2016/12/extending-teensy-audio-library-for.html.
My github repo for this library is here: https://github.com/chipaudette/OpenAudio_ArduinoLibrary
My next steps are to continue to add processing blocks. Right now, besides all of the new code that handles all the plumbing, the only audio processing block in the library is a simple gain block. I've got a block that does dynamic range compression almost complete. Then I'll do a filtering block, followed by moving to frequency domain methods.
I'd very much appreciate any comments or feedback as to how I could improve or refine my approach for enabling floating-point processing on top of the Teensy Audio Library structure. I'd love to make it better!
Chip
Because I find it so much easier to code algorithms using floating-point operations (vs fixed-point), and because the Teensy 3.6 is so dang fast with floating-point math, I've extended the Teensy Audio Library to enable floating-point operations.
I tried to follow the structure and conventions of the Teensy Audio Library as my understanding allowed. But, as we know, the assumption of Int16 data is deeply entwined with the foundational structures of the Teensy Audio Library. But, through adding parallel classes and through inheritance, I was able to make floating-point objects that play nicely within the Teensy Audio Library world.
For more info, you can see my post here: http://openaudio.blogspot.com/2016/12/extending-teensy-audio-library-for.html.
My github repo for this library is here: https://github.com/chipaudette/OpenAudio_ArduinoLibrary
My next steps are to continue to add processing blocks. Right now, besides all of the new code that handles all the plumbing, the only audio processing block in the library is a simple gain block. I've got a block that does dynamic range compression almost complete. Then I'll do a filtering block, followed by moving to frequency domain methods.
I'd very much appreciate any comments or feedback as to how I could improve or refine my approach for enabling floating-point processing on top of the Teensy Audio Library structure. I'd love to make it better!
Chip