Question about audio dsp on the spresense...



  • I'm intrigued about the possibility of moving my Teensy 3.6 based quadrature dsp work to the Spresense. Currently I use I2S input to and from an external 16-bit codec as the real-time IO and process in length 128 blocks. I haven't yet purchased an Spresense, because it seems that the audio libraries are limited to recording and playback of speech/music. Is there a way to do block processing of a continuous raw data stream in the SDK? I can't seem to find any reference to line-in/out levels in the reference stuff...
    Thanks.



  • I would advise against getting this board for DSP stuff.

    There is no low level sdk provided for audio but rather an overly complex higher level audio system that is very badly documented and basically seems to be designed around playing/recording audio files.

    The audio output is digital (pulse density modulation) rather than analog so it is hard to see what is going on with an oscilloscope.

    The extra m4 cores are crippled because Sony have not implemented Nuttx SMP but rather just treat the cores as coprocessors that have no access to the kernel/hardware.

    I got this board for DSP stuff and after about 30 hours of struggling with it have decided it is not fit for purpose.

    Maybe they will sort out the software level in the future, the processor itself seems interesting.



  • Thanks Andy. Your reply confirms my impression from trying to read/understand the SDK. I don't see the point of it...
    Derek



  • No Problem.

    I know its in a different price bracket but have you looked at these before: https://bela.io/products


  • DeveloperWorld

    Hi Derek,

    You can get the sampled raw audio data.
    In the official SDK repo you can find a example called audio recorder. This recorder will record audio and store it into a file on the SD card.

    I have used this example to get the raw audio stream.

    The bytes in the stream are arranged in the same way as the wave file format.
    http://soundfile.sapp.org/doc/WaveFormat/

    If you look in the function app_write_output_file you will see how the fifo is being read.
    https://github.com/sonydevworld/spresense/blob/master/examples/audio_recorder/audio_recorder_main.cxx

    @Derek said in Question about audio dsp on the spresense...:

    I'm intrigued about the possibility of moving my Teensy 3.6 based quadrature dsp work to the Spresense. Currently I use I2S input to and from an external 16-bit codec as the real-time IO and process in length 128 blocks. I haven't yet purchased an Spresense, because it seems that the audio libraries are limited to recording and playback of speech/music. Is there a way to do block processing of a continuous raw data stream in the SDK? I can't seem to find any reference to line-in/out levels in the reference stuff...
    Thanks.