This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Streaming media service on CC3200

Other Parts Discussed in Thread: CC3200

I've been looking all over and haven't found great solution. Is there a way to open up a streaming media service on the CC3200 and direct the audio from it out the speakers, like if I wanted to play soundcloud or pandora from the CC3200 with an audio booster pack? This would be a useful tool in a project I'm working on.

  • Hi Jerrid,


    What type of streaming media service are you looking for? There is wifi audio example in SDK that uses unicast(UDP) and multicast to stream audio b/w 2 devices. Please have a look at it.


    Regards,
    Aashish
  • I've already tried the audio example and it is quite an in depth project with little documentation on how everything works. But that is not what I'm wanting to accomplish. I'd like to utilize a streaming media service like Soundcloud or Pandora as I stated above. Is there a way to do this?
  • Hi Jerrid,


    CC3200 has TCP, UDP and multicast capability, on the top of this you need to implement media streaming services using application layer protocol like RTSP/HTTP. CC3200 also has I2S interface to communicate PCM data in between host to Audio codec. The SDK example demonstrate following:
    1. Loopback
    2. Unicast
    3. Multicast

    1. Loopback: In loopback we read data from mic and playback it to line out on same device. Below is how audio data flow:

    1. AIC3254 codec convert analog data on audio in to digital PCM data
    2. I2S driver read this data and copy to a circular record buffer
    3. Then we copy data from record buffer to playback buffer
    4. I2S driver copy playback buffer to AIC3254 codec
    5. AIC3254 convert this digital data to analog signal to Audio out

    2. Unicast: In unicast mode we read data from mic on one CC3200 and send it over air using UDP to another LP. Another CC3200 receive data over the network and playback it. Below is how audio data flow:
    1. Both the CC3200 start sending mDNS packet to advertise their IP
    2. AIC3254 codec convert analog data on audio in to digital PCM data
    3. I2S driver read this data and copy to a circular record buffer
    4. Microphone task copy data from circular record buffer and through it in air using UDP.
    5. Speaker task on other CC3200 receive audio data over the network using UDP and copy to play back circular buffer
    6. I2S driver on other CC3200 copy this data to AIC3254 for playback
    7. AIC3254 convert this digital data to analog signal to Audio out

    3. Multicast: In multicast mode we read data from mic on one CC3200 and multicast it over the network.
    1. AIC3254 codec convert analog data on audio in to digital PCM data
    2. I2S driver read this data and copy to a circular record buffer
    3. Microphone task copy data from circular record buffer and through it in air using multicast.
    4. Other CC3200 devices join this multicast IP
    5 Speaker task on other CC3200s receive audio data over the network using UDP and copy to play back circular buffer
    6. I2S driver on other CC3200 copy this data to AIC3254 for playback
    7. AIC3254 convert this digital data to analog signal to Audio out

    Code explanation:
    1. pcm_handle.c - I2S interrupt or driver implementation
    2. circular_buffer.c - Circular buffer implementation to store audio data
    3. Microphone.c: Microphone task to read data from circular buffer and send it over network
    4. Speaker.c: Speaker task to receive data over the network and copy it to circular buffer
    5. control.c: Control task or handler for button press

    So SDK example use UDP to send and receive PCM data without using any application layer protocol (like RTSP) or media service. We doesn’t have any specific media service stack implementation. If you want to use Soundcloud or Pandora, you need to implement media services stack over the CC3200 TCP/IP stack.


    Regards,
    Aashish
  • Thank you for the explanation. This was very helpful and will get me a little closer to my goal.
  • Hello,

    I would please like to ask on this issue.

    We need to improve audio performance.
    Are there any tips as to how to improve qusio quality and how to debug/test it (maybe record to file and play the file ) ?

    Thank you!
    Ran