Welcome on the SOF list.
I'm a Master 2 student at "Université de Bretagne Occidentale (UBO)". Currently I'm working on the "Implementation of audio processing on a DSP's target", and I would like to have some recommendations concerning the following points:
- What would you recommend me to start with?
- What path would you recommend me to follow?
- Which board would you recommend me to use?
I'm using myself for most of development Up Squared board
https://up-board.org/upsquared/specifications/
The board does not contain a codec but e.g. HiFiBerry DAC+ provides line-out. A board with both line-in and line-out would be ideal for you but I'm not sure if such exist. Others on this list (Pierre) are better up to date with what's available.
I would definitively start with an Up2 board and Hifiberry DAC+ since they are the most used. If you need capture capabilities, there is a new DAC+ADC
https://www.hifiberry.com/shop/boards/hifiberry-dac-adc/
One limitation of those boards is that the MCLK is not provided on the HAT connector which limits which codecs you can use.
For SOF please take a look into the documents https://thesofproject.github.io/latest/index.html and specifically for UP2 this https://thesofproject.github.io/latest/getting_started/setup/setup_up_2_boar... .
I'm sorry, seems like the BIOS download URL there is not into a public server (mistake). Until a BIOS that works with they firmware signing that SOF uses the board is not suitable for development use that I talked about!
The Up2 1.0 BIOS is just fine, no issues with signature. It also provides support for the I2S slave mode, where the audio clocks are provided by the external codec or oscillators.
I'll update to this thread if there's such available and get the URL fixed.
Minnowboard is an option but it's getting old as platform.
Yes, I would skip the minnowboard. It's cheaper but it's starting to show its age, and you'd need to muck with connectors and external codecs to get a demo working.
For audio processing and control IPC example see e.g. the simple equalizer components. With the SOF topology you build a processing pipeline of your own.
https://thesofproject.github.io/latest/developer_guides/topology/topology.ht...
I would definitively start from existing code and change it. Depending on your skill levels, you may want to stick to time-based processing, adding things like transform-based processing with 2^N blocks might introduce scheduling complexity.