Multichannel in and out

Status
Not open for further replies.
Hi wise helping people,

I'm building a fretless tapping instrument that has twelve independent strings and I'd like to turn it into a hybrid synth where the twelve inputs would be processed in SuperCollider with an Odroid (or something alike) and then fed back to the strings via independent speakers (or inductors). It sounded beautiful in a one string test, so in principle it should work.
The only problem is 12/16 channel soundcards are generally fancy and expensive, so I was hoping I could diy something with smaller components.

ADC's an DAC's seem relatively inexpensive, my worries are in the multiplexing and sending/receiving serial for so many channels. With external ADC's reading the sound, would the teensy be fast enough to send 12 floats at 48kHz to the computer? Or even better, could all 24 values (12 in, 12 out) go in the same USB?

Thank you for reading.
 
Last edited:
You probably don't want to send floats. Send the raw integer that analogRead, etc. returns, and do the scaling on the computer (which has hardware floating point support, unlike the current Teensy which has to emulate floating point).
 
24 simultaneous high quality audio streams is beyond Teensy 3.1's capability.

The I2S port on Teensy is meant for a single stereo stream. It might be expandable to 2 streams, for 4 channels... maybe? But 12 is far more than it can handle.

Likewise, the USB port is capable of only 12 Mbit/sec speed. Currently, there is no fully working code for USB audio support. But even when such code becomes available, the largest Isochronous transfer possible on 12 Mbit/sec USB is 1023000 bytes/sec (whether the software will ever support this theoretical maximum is a good question). Even if it did support such a large isync transfer, that's not quite enough for 12 channels on one direction, and certainly not enough for 24 total channels.
 
Ouch, although I was expecting this.
So what I'd need is a super fast processor and something like 150 Mbit/sec usb speed, correct me if I'm wrong. If it helps, it's 24 mono channels, not stereo.
May I ask - do you guys know of any microcontroller capable of that?

Thank you.
 
Well, assuming you're on a Mac -- once the USB audio support is in, you could conceivably just use a bundle of Teensys. OSX has a core audio feature called 'aggregated' sound devices - essentially you can bundle up a bunch of audio IO devices into one giant device, so other software on the computer will recognize it as a single devices with the sum of inputs/outputs of all the attached devices. But as mentioned earlier, you'd probably need 12 Teensys to do it (one input/output channel pair per teensy). Best thing I can suggest would be something like http://www.bhphotovideo.com/c/product/373370-REG/Echo_AUDIOFIRE12_AudioFire_12_Interface.html which is firewire. I don't think you're going to find anything with that much IO for less than $500, but maybe eBay will have something?
 
Hi MuShoo, thanks for joining in!
I'm on Linux, but apparently there's an equivalent for that.

Even a 12 teensy solution could be cheaper than a multichannel soundcard, so I'm giving crazy designs a chance.
Anyway, I've been calculating: say I'm using 16bit samples, plus 4 additional bits to tag them (this is channel 1, this is channel 2, etc...), so that'd be 20 bits per channel. To get simply 12 mono channels in at 48kHz that'd be 20*12*48k = 11.52 Mb/s. Not that terrible, but of course that's only considering an IN interface.
So a friend of mine who's a telecommunications engineer suggested something: having several teensies hooked up to ADC's reading from the pickups, then sending the 16bit samples via serial to something faster, like a Raspberry Pi, using some form of syncing (like the Raspberry sending pulses to the teensies).

I'll keep you informed if it happens to work. Thanks once again.
 
Last edited:
Status
Not open for further replies.
Back
Top