I have been working on a project for some time now and have been studying the available technologies surrounding DSP Processing, and USB Audio. The function of the Device is to be a USB Audio Soundcard with an integrated DSP mixer. I found the Bela as a referral from one of the engineers I've spoken with about the project. I'm excited to have found it and look forward to working with it and contributing in any way I can.
Without getting into too much detail about the project (which I can in future posts), I have a question about whether or not the Bela can be programmed to be a USB Audio Device? Is there any code or project examples that would show me how this can be done?
I'm NOT looking for the Bela to play sound OUT of a USB soundcard connected to the BBB. I am looking for the BBB/Bela to serve as a client device, playing audio which is fed to it by it's "host PC". For example: PC->USB->BBB->BELA->SPEAKER OUT. The PC would discover the Beaglebone as a "USB AUDIO DEVICE" and would send audio packets down to the BBB. The BBB would then process the USB audio through it's DSP and play that audio through the speakers.
One example of this is the AudioWeaver platform by DSP Concepts (http://dspconcepts.com/). Their platform allows you to connect an STM development board (or other boards) to a PC and play sound out the board's codec. The dev board becomes a USB Audio Device and a HID Device. The USB Audio device functionality allowing the playback of sound from the PC, and the HID to control the DSP Core (volumes, parameters, etc). I'm looking to do this on the Bela.
*Ultimately to Mix USB Audio with the analog inputs coming from the ADC on the Bela and send it to the speakers. For example: USB AUDIO + ADC INPUT AUDIO -> DSP Processing -> DAC -> SPEAKER OUT. It's a USB Soundcard with a DSP mixer...
I suppose one way to do it would be to use a USB-to-I²S Audio Bridge? That would assume the Bela has an I2S input (I didn't check this before writing this post). I'd rather the BBB do the USB-Audio directly but this is one idea.
Of course there can be a debate on the merits of this design. For example, you can have the Bela "play" the sound from within Linux (or it's platform in general I suppose). However, we have our reasons why we need the host PC to play the audio - not the BBB. Is there anyone else out there that has done this, or is interested in doing this? Any help would be greatly appreciated!
NOTES AND LINKS:
How to use the audio gadget driver -
Linux-USB Gadget API Framework -