-
Notifications
You must be signed in to change notification settings - Fork 0
Avoiding USB Audio
One of the major limitations of this particular design is the roundtrip latency introduced by using USB audio. This is partly due to technical limitations of the Teensy audio library and the underlying iMX-RT1062 microcontroller.
If this is something that you wish to avoid, and have sufficient technical knowledge to use one of the following solutions, then please feel free to do so!
Note: the Teensy audio library uses 128 sample buffers at ~44.1kHz. This means each buffer introduces ~2.9ms of latency. Most solutions lister here (except for number 5) still use the Teensy for buffering and routing audio therefore will have a minimum of 5.8ms of latency (plus any additional latency from i2s transfers/latency in the amplifier IC etc).
-
Perform all synthesis within the Teensy 4.0: For an embedded microcontroller system, the Teensy 4.0 is fairly capable of complex DSP and synthesis. There are many previous examples of the Teensy being used for this purpose. For this approach, the main loop of the firmware code will need to be modified to contain the synthesis code rather than the transfers to/from USB. Note that to hear the output (through more than just the audible sound from the voice coil transducer) a Teensy audio shield will be required.
-
Use the Teensy Audio Shield to connect to other audio devices/interfaces
-
Use the iMX-RT1062's MQS (Medium Quality Sound) output
-
Content a different embedded platform to the Teensy via i2s
-
Bypass the Teensy entirely and interface with the MAX98389 amplifier directly via i2s and i2c