Improving the BeagleBone low-latency multi-channel audio system: Extend driver architecture to Beagle Board X15, add DSP library to make use of X15's DSPs

Hi,

I’m studying Information Engineering (M.Sc.) at Fachhochschule Kiel - University of Applied Sciences in Germany and I’m already familiar with ASoC (ALSA System on Chip).
I’m very interested in porting the soundcard drivers of the CTAG face2|4 Audio Card to the BB-X15 and to add a DSP library.
I’ve got still some questions about the DSP library.
What exactly should the library do?
Should it be independently of the ALSA soundcard drivers in user space to simplify the usage of the DSPs or to optimize the soundcard drivers?
In second case, one has to extend the ASoC core (which is a difficult task in this time span, I think).
My IRC name is henrix_ and I’m available in the #beagle-gsoc channel.

Thanks.

Henrik Langer

Hi,
I'm interested in developing a real-time Audio-DSP-Box. I would also like to use the CTAG face2|4 for that application. I'm not completely sure how much performance a 4 Channel In/4 Channel Out real-time DSP Box needs - but I think the DSPs of the X15 would come in handy!

I guess Henrik knows quite something about developing an ASoC Driver for the CTAG face2|4 since he wrote his bachelor thesis about that topic. I'm coming from an audio engineering background - so probably it would be a good idea if we both could work together on that topic. Is that possible during a Summer of Code?

Do you guys think that is a good idea?

Kind regards,
Johannes Wegener

Hi,
I'm interested in developing a real-time Audio-DSP-Box. I would also like to use the CTAG face2|4 for that application. I'm not completely sure how much performance a 4 Channel In/4 Channel Out real-time DSP Box needs - but I think the DSPs of the X15 would come in handy!

I guess Henrik knows quite something about developing an ASoC Driver for the CTAG face2|4 since he wrote his bachelor thesis about that topic. I'm coming from an audio engineering background - so probably it would be a good idea if we both could work together on that topic. Is that possible during a Summer of Code?

Do you guys think that is a good idea?

Kind regards,
Johannes Wegener

I have no idea, however, what the GSoC rules are…
@Jason & Vladimir, can you comment?

Best,
Robert Manzke

Hi there,

GSoC does not allow teamwork. every student has to have his own project
with a clear way to measure progress and success. So working on the
"same" project is only possible if there is a very clear separation of
the work and no dependencies on the other student.

Regards,

Vladimir

Ok, I think, if you try to propose a project more focussed on the application development using the already given driver structure for the beagle bone green/black (e.g. face2|4 and/or Beagle Audio Cape), maybe this could be a different enough project proposal.

I don’t know however, how many proposal with regard to the “audio” topic would be feasible in the end.

Apart from driver development this was also on the list: “Make a real-time audio processor box on beaglebone. Needs e.g. HD audio cape, could use PRUs for real-time sound processing (ie, guitar input) and second midi source using alsa or hardware cape. Also like to have pitch/envelope-following synth for analog instrument/mic input.” And I believe you had some ideas on setting up the basic architecture / some key DSP modules for a modular audio system, similar to Reaktor. That may constitute a nice strong proposal by itself.

The mentors will then assess which audio related project will be selected, also based on merits for upstream commits in existing reasonable size open source projects, I guess.

If there will be more than one audio project, I am happy to provide face2|4 hardware, if needed.

Hope what I said makes sense, Vladimir, any adjustments?

Best,
Robert

Hi,

do you think it makes sense to implement a FFT on one of the C66x DSPs?
The TI AM5728 and the integrated C66x DSPs support EDMA (enhanced direct memory access) so maybe the audio buffer (or an additional buffer) could be used as input for a FFT.

Best regards,
Henrik Langer

I send in my first draft right now. I'm looking forward what you guys have to comment about it.

I'm also trying to send the description to the forum - so that users can comment on that.

best regards,
Johannes

I send in my first draft right now. I'm looking forward what you guys have to comment about it.

I'm also trying to send the description to the forum - so that users can comment on that.

best regards,
Johannes

Just one more question - is it such a big deal to port the driver to the x15? Since the x15 also has a McASP - shouldn't it need "just" a new device tree to get the existing driver to work?

The hope is that it would be reasonably straight-forward, however, devil is usually in the detail with driver development.

Ok seems quite realistic :wink:

But do you think it might be possible to use a "bleeding edge" driver around mid-term? (In case there should be two audio projects?)

I’d definitely say so.