Hello,
I intend to use T4 build an 8i8o USB interface running at 48kHz/24bit. Hopefully this can undertake some of the work required to have 48kHz audio and 24/32bit support included in future TeensyDuino releases.
I'm new to Teensy but have done a fair bit of PCB design & building as well as a few successful XMOS usb audio devices, so I happily accept that a lot of refactoring the codebase is going to be part of this. PJRC has already done a great deal of excellent work on this already and so first up I acknowledge that as in all open-source projects we are standing on the shoulders of giants.
So after a dig through the TeensyDuino v1.52beta code my initial goals are :
1. Get the iMXRT1062 SAI1 to run at 48kHz, via PLL4, and provide MCLK + BCLK + LRCLK and interface TDM in & TDM out at the appropriate frequencies.
2. Ensure that the host enumerates the client properly (ie: recognises an 8i8o device running at 48kHz/24-bit).
3. Pass 24bit audio to/from the TDM data streams to/from the USB endpoint and host. Or, 24-bit padded to 32-bit depending on which is easier...initially.
4. Utilise CS42448 (6i8o) + the SAI3 spdif stereo input (2i) to achieve 8i8o.
My inital goals are NOT (but may be in future) :
1. Enabling volume, effects, multi-stage patching etc. My needs are very basic, and all such processing shall be done by the host.
2. Providing run-time user options to switch Fs or sample size. If you flash the device as a 48kHz/24bit device, that's how it will stay until you re-flash it.
3. Buffer size controls for "latency vs stability" optimisation. These would be useful in practise but latency is not a concern for me in this project.
4. To wax theoretical about the benefits of higher sampling rates and bit depths etc. I do not require a lesson on such matters. Audioholics forum is for that.
My ultimate goals are:
1. Contribute something useful to the TDAudio library
2. Achieve a nice stable USB 2.0 Class-compliant 8i8o USB interface that runs on Linux, because there are hardly any out there.
3. Maybe a few latency vs stability controls or the ability to switch between 44.1kHz and 48kHz at run-time
No doubt this list will change a bit but it's a starting point. Hopefully we can interest some contributors along the way.
I intend to use T4 build an 8i8o USB interface running at 48kHz/24bit. Hopefully this can undertake some of the work required to have 48kHz audio and 24/32bit support included in future TeensyDuino releases.
I'm new to Teensy but have done a fair bit of PCB design & building as well as a few successful XMOS usb audio devices, so I happily accept that a lot of refactoring the codebase is going to be part of this. PJRC has already done a great deal of excellent work on this already and so first up I acknowledge that as in all open-source projects we are standing on the shoulders of giants.
So after a dig through the TeensyDuino v1.52beta code my initial goals are :
1. Get the iMXRT1062 SAI1 to run at 48kHz, via PLL4, and provide MCLK + BCLK + LRCLK and interface TDM in & TDM out at the appropriate frequencies.
2. Ensure that the host enumerates the client properly (ie: recognises an 8i8o device running at 48kHz/24-bit).
3. Pass 24bit audio to/from the TDM data streams to/from the USB endpoint and host. Or, 24-bit padded to 32-bit depending on which is easier...initially.
4. Utilise CS42448 (6i8o) + the SAI3 spdif stereo input (2i) to achieve 8i8o.
My inital goals are NOT (but may be in future) :
1. Enabling volume, effects, multi-stage patching etc. My needs are very basic, and all such processing shall be done by the host.
2. Providing run-time user options to switch Fs or sample size. If you flash the device as a 48kHz/24bit device, that's how it will stay until you re-flash it.
3. Buffer size controls for "latency vs stability" optimisation. These would be useful in practise but latency is not a concern for me in this project.
4. To wax theoretical about the benefits of higher sampling rates and bit depths etc. I do not require a lesson on such matters. Audioholics forum is for that.
My ultimate goals are:
1. Contribute something useful to the TDAudio library
2. Achieve a nice stable USB 2.0 Class-compliant 8i8o USB interface that runs on Linux, because there are hardly any out there.
3. Maybe a few latency vs stability controls or the ability to switch between 44.1kHz and 48kHz at run-time
No doubt this list will change a bit but it's a starting point. Hopefully we can interest some contributors along the way.