You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
boblark 291f97c4ba Fix to include T4.x 4 years ago
docs GUI: update picture of Tympan 8 years ago
examples Libarary: big code update from my Tympan_Library 7 years ago
utility Libarary: big code update from my Tympan_Library 7 years ago
.gitattributes :neckbeard: Added .gitattributes & .gitignore files 8 years ago
.gitignore Update gitignore to ignore jedit backup files 8 years ago
.travis.yml Travis: remove xvfb 8 years ago
AudioCalcEnvelope_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioCalcGainWDRC_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioConfigFIRFilterBank_F32.cpp Libarary: big code update from my Tympan_Library 7 years ago
AudioConfigFIRFilterBank_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioControlSGTL5000_Extended.h Update Blocks with GUI directive for ins and outs 8 years ago
AudioControlTester.cpp Libarary: big code update from my Tympan_Library 7 years ago
AudioControlTester.h Libarary: big code update from my Tympan_Library 7 years ago
AudioConvert_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioEffectCompWDRC_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioEffectCompressor_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioEffectEmpty_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioEffectGain_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioFilterBiquad_F32.cpp Libarary: big code update from my Tympan_Library 7 years ago
AudioFilterBiquad_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioFilterFIR_F32.cpp Libarary: big code update from my Tympan_Library 7 years ago
AudioFilterFIR_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioFilterIIR_F32.h Add files from Tympan_Library 8 years ago
AudioMixer_F32.cpp Add files from Tympan_Library 8 years ago
AudioMixer_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioMultiply_F32.cpp Added float audio multiply 8 years ago
AudioMultiply_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioSettings_F32.cpp Libarary: big code update from my Tympan_Library 7 years ago
AudioSettings_F32.h Libarary: big code update from my Tympan_Library 7 years ago
AudioStream_F32.cpp Libarary: big code update from my Tympan_Library 7 years ago
AudioStream_F32.h Libarary: big code update from my Tympan_Library 7 years ago
BTNRH_WDRC_Types.h Libarary: big code update from my Tympan_Library 7 years ago
OpenAudio_ArduinoLibrary.h Libarary: big code update from my Tympan_Library 7 years ago
USB_Audio_F32.h Libarary: big code update from my Tympan_Library 7 years ago
control_tlv320aic3206.cpp Libarary: big code update from my Tympan_Library 7 years ago
control_tlv320aic3206.h Libarary: big code update from my Tympan_Library 7 years ago
input_i2s_f32.cpp Add files from Tympan_Library 8 years ago
input_i2s_f32.h Add files from Tympan_Library 8 years ago
keywords.txt Adding white and pink noise 8 years ago
output_i2s_f32.cpp Libarary: big code update from my Tympan_Library 7 years ago
output_i2s_f32.h Add files from Tympan_Library 8 years ago
play_queue_f32.cpp Add play and record queues 8 years ago
play_queue_f32.h Libarary: big code update from my Tympan_Library 7 years ago
readme.md Fix to include T4.x 4 years ago
record_queue_f32.cpp Clarifying record_queue_f32 8 years ago
record_queue_f32.h Libarary: big code update from my Tympan_Library 7 years ago
synth_pinknoise_f32.cpp.xxx Allow T4.x compile 4 years ago
synth_pinknoise_f32.h.xxx Allow T4.x compile 4 years ago
synth_sine_f32.cpp Libarary: big code update from my Tympan_Library 7 years ago
synth_sine_f32.h Add files from Tympan_Library 8 years ago
synth_waveform_F32.cpp Added an oscillator in float format 8 years ago
synth_waveform_F32.h Add files from Tympan_Library 8 years ago
synth_whitenoise_f32.cpp Fix to include T4.x 4 years ago
synth_whitenoise_f32.h Libarary: big code update from my Tympan_Library 7 years ago

readme.md

OpenAudio Library for Teensy

Special Note 17 June 2020 - This library is undergoing revision to make Teensy 4.x compatible and to add functionality. Changes are expected throughout the rest of June. See this readme for summaries during this period. Notes:

1-synth_sine_f32.h & .cpp allowed both KINETISK and__IMXRT1062__ to support T4.x. Tested 3.6, 4.0 2-Hid synth_pinknoise_f32.h & .cpp with .xxx type. Allows T4 compile until these are fixed. 3-Fix synth_whitenoise_f32.cpp to include IMXRT1062 .

Purpose: The purpose of this library is to build upon the Teensy Audio Library to enable new functionality for real-time audio processing.

Approach: I am attempting to follow the structure and approach of the Teensy Audio Library so that coding techniques, style, and structure that works for the Teensy Audio Library will also work with my library. synth_sine_f32

Send Help!: While I'm hoping to follow the pattern of the Teensy Audio Library, I am not a well trained programmer, so I have difficulty chosing the right path. If you see ways to make my code better aligned with the Teensy Audio Library, send a pull request!

Contents

As I said, the goal of this library is to extend the functionality of the Teensy Audio Library. My extensions are focused in these areas:

Floating Point Audio Processing: The Teensy Audio Library processes the audio data as fixed-point Int16 values. While very fast for the Teensy 3.0-3.2, it is unnecessarily constraining (IMO) for the Teensy 3.5 and 3.6, which both have floating-point units. To enable floating-point audio processing, I have created:

  • **AudioStream_F32: Following the model of Teensy's AudioStream class. In addition to the new AudioStream_F32, this file includes a new audio_block_f32_t in place of audio_block_t, as well as a new AudioConnection_F32 in place of AudioConnection.
  • New F32 Audio Processing Blocks: Using this new floating-point capability, I've written some new audio processing blocks that operate using floating-point audio values instead of fixed-point values. Examples include AudioEffectGain_F32 and AudioEffectComperessor_F32.
  • F32 Versions of Existing Blocks: To maintain continuity with the Teensy Audio Library, a number of the Audio Library's Audio blocks (which process as Int16 data) to operate on floating-point (ie, Float32) data. Thanks to other people's contributions, examples include AudioMixer4_F32 and AudioMultiply_F32. Feel free to convert more blocks, if you'd like!
  • New Hardware Controls: The Teensy Audio Library does a great job of wrapping up the complicated control of hardware elements (such as the SGTL5000 audio codec) into a nice easy-to-use classes. But, sometimes, certain features of the hardware were not exposed in those classes. Here, I've extended the default classes to expose the extra features that I want. See AudioControlSGTL5000_Extended as an example.

After installing this library into your Arduino->Libraries direction, you can have access to any of these capabilities simply by including the following command in your Arduino sketch: #include <OpenAudio_ArduinoLibrary.h>.

Installation

Download (and unzip) this library into the Arduino libraries directory on your computer. On my computer, that means I put it here:

C:\Users\chipaudette\Documents\Arduino\libraries\OpenAudio_ArduinoLibrary

Restart your Arduino IDE and you should now see this libraries example sketches under File->Examples->OpenAudio_ArduinoLibrary

Dependencies

This library extends the functionality of the Teensy Audio Library, so you'll need to install it per its instructions.

The floating-point processing takes advantage of the DSP acceleration afforded by the ARM M4F core inside the Teensy 3.5/3.6 processor. Therefore, it uses arm_math.h. This dependencies is installed automatically when you install the Teensy Audio Library, so you don't need to take any extra steps. It's there already.