Multichannel USB audio with Teensy 3.6?

Status
Not open for further replies.

adamski

Active member
Would it be possible to create a multichannel USB audio device with a Teensy 3.6? Full duplex, say 4 in - 4 out (or more?)
 
Pretty sure the chip supports two USB channels. Only one of them is high speed though.

I assume you mean you want to be USB host to two devices? Really not sure what you mean by 4in 4out??
 
Pretty sure the chip supports two USB channels. Only one of them is high speed though.

I assume you mean you want to be USB host to two devices? Really not sure what you mean by 4in 4out??

I mean 4 mono channels in and out - over one USB channel.
 
You can stack two audio adapters on a single Teensy for 4 audio inputs at 16 / 44 and 4 audio outputs at 16 / 44. That gives you your 4 in 4 out. I have not tried it yet though, nor have I spent much time with USB audio, but the bandwidth is sufficient so it is possible.
 
You can stack two audio adapters on a single Teensy for 4 audio inputs at 16 / 44 and 4 audio outputs at 16 / 44. That gives you your 4 in 4 out. I have not tried it yet though, nor have I spent much time with USB audio, but the bandwidth is sufficient so it is possible.

Thanks, this might be a good starting point. Ultimately I think we'd want 24bit/48kHz or better.
 
Starting with the Audio adapters is a good idea; it'll make it easier to get you're project going. You'll be stuck using something like I2S becuase you dont have enough physical DACs for four channels. Note aparently four channel audio has not yet been tested with teensy 3.5/6.
You've plenty of usb data, I imagine the bottle neck for fidelity will be the I2S chips you use.

If you haven't the audio GUI is a great place to start; it also has helpful notes explaining the limitations of different libraries (can't operate in both master and slave I2S at once for example). If you're wanting the highest fidelity audio, would you consider using a pair of teensys? (maybe 3.2 to drive the price down)
 
Starting with the Audio adapters is a good idea; it'll make it easier to get you're project going. You'll be stuck using something like I2S becuase you dont have enough physical DACs for four channels. Note aparently four channel audio has not yet been tested with teensy 3.5/6.
You've plenty of usb data, I imagine the bottle neck for fidelity will be the I2S chips you use.

If you haven't the audio GUI is a great place to start; it also has helpful notes explaining the limitations of different libraries (can't operate in both master and slave I2S at once for example). If you're wanting the highest fidelity audio, would you consider using a pair of teensys? (maybe 3.2 to drive the price down)

We'll use an external ADC/DAC combination for this eventually, probably SPI so shouldn't have the I2S limitation then. I'd like to keep it to the 3.5/6 so we have enough juice for audio processing too (plus the FPU).
 
Eight simultaneous channels (4 input and 4 output) at 44.1 kHz 16 bits would use 706 kbytes/sec. That's most of the isync (host controller's periodic schedule) bandwidth of 12 Mbit/sec USB. In theory, it ought to work. But you can forget about 24 bits on all 8 of those channels! There just isn't enough bandwidth for more than 16 bits.
 
Eight simultaneous channels (4 input and 4 output) at 44.1 kHz 16 bits would use 706 kbytes/sec. That's most of the isync (host controller's periodic schedule) bandwidth of 12 Mbit/sec USB. In theory, it ought to work. But you can forget about 24 bits on all 8 of those channels! There just isn't enough bandwidth for more than 16 bits.

I saw this in another thread about the 3.5/6:
Secondary USB: The Teensy 3.5/3.6 have provisions for a second USB channel that can act in host mode (and the 3.6 can run at 480 Mbit/second) -- this of course depends on other software being written to work with the secondary USB;

Would that still have the bandwidth limitation? Can we use USB 2.0 "High Speed" mode with the Teensy 3.6?

EDIT: from this thread it looks like it may not be supported yet...
 
Last edited:
Would that still have the bandwidth limitation? Can we use USB 2.0 "High Speed" mode with the Teensy 3.6?

The 480 Mbit/sec port would not have the 12 Mbit/sec speed limitation.

But there's currently no working software support. In theory, you can use it... but at this early stage "can" involves writing your own USB stack. Since this is a very complex modified EHCI controller, that's no small task!
 
The 480 Mbit/sec port would not have the 12 Mbit/sec speed limitation.

But there's currently no working software support. In theory, you can use it... but at this early stage "can" involves writing your own USB stack. Since this is a very complex modified EHCI controller, that's no small task!

Thanks, from reading other posts on the subject thats what it was looking like. Any ideas when it might be officially supported?
 
A stable and usable library for the EHCI controller is going to take time. EHCI is powerful but very complex.

Even when stable EHCI support is available, whether USB audio, and multi-channel USB audio support is written remains to be seen. Many other things will be much higher priority, so unless someone (other than me) takes a particular interest in actually doing this work, odds are slim it'll happen anytime soon.
 
A stable and usable library for the EHCI controller is going to take time. EHCI is powerful but very complex.

Even when stable EHCI support is available, whether USB audio, and multi-channel USB audio support is written remains to be seen. Many other things will be much higher priority, so unless someone (other than me) takes a particular interest in actually doing this work, odds are slim it'll happen anytime soon.

I might add, even if someone DOES find the will to do this, it is not going to be a quick task to accomplish anyway.
 
Did you ever actually use USB audio on Teensy with the Design Tool and Arduino sketches?

I'm curious to hear how XMOS's system compares...
 
Is your research mostly just looking at the claimed hardware capability? Or are you looking at the software side? Are you evaluating the usability? Are you looking at what kind of functionality the APIs actually provide?

Have you downloaded XMOS's code and read it?
 
Ive had XMOS code open, running on the xcore-200 kits, its not pretty, your design tool is much nicer to use.
So, if im reading this correctly. Higher channel count support isn't going to exist for a long time, unless someone else steps up?
Ive just picked up a 3.6 and would love higher channel counts for a project im working on.
 
Higher channel count support isn't going to exist for a long time, unless someone else steps up?

Yeah, that's pretty the situation.

Maybe I'll do this when we're running device mode on 480 Mbit/sec speed. But much has to happen before we're there. I'm not planning to pour dev time into more channels with 12 Mbit/sec USB.
 
Status
Not open for further replies.
Back
Top