Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Galactic/Cosmic Bluetooth Audio Roadmap #3

Open
4 of 15 tasks
Gadgetoid opened this issue Feb 24, 2023 · 8 comments
Open
4 of 15 tasks

Galactic/Cosmic Bluetooth Audio Roadmap #3

Gadgetoid opened this issue Feb 24, 2023 · 8 comments

Comments

@Gadgetoid
Copy link
Owner

Gadgetoid commented Feb 24, 2023

Near Term

  1. Delete unused files and refactor the project to look less like a mess of cobbled together demo code
  2. Support Cosmic Unicorn!
  3. Support other boards, or self builds?
  4. Decouple display code so we can make it pluggable?
  5. Add false colour to the FFT, perhaps a choice of styles from classic to rainbow
  6. Waterfall FFT mode possible? (Basically amplitude becomes the colour, and each FFT frame scrolls the view like a radio scanner)
  7. Add volume display
  8. Suggestions...

Long Term

  1. Find a catchy name for this project that suits both Galactic and Cosmic. I guess we have all of space nomenclature to pick from, but it's not super my bag.
  2. Investigate supporting mp3 or other audio file playback from microSD
  3. Investigate supporting grabbing and decoding internet radio streams- how feasible is it? Does it need PSRAM?
  4. Investigate more complex visualisations- polar FFT, winamp style visualisations? Run on Core1?
  5. Beat detection could be fun...
  6. Cosmic Unicorn Polar coordinate, circular FFT somehow... Jon keeps trying to make it a thing
  7. Album art display (potentially coming to BTStack by Summer)
@Gadgetoid
Copy link
Owner Author

Refactor progress: #6

@Gadgetoid Gadgetoid changed the title Galactic/Cosmic Blueooth Audio Roadmap Galactic/Cosmic Bluetooth Audio Roadmap Mar 7, 2023
@kevinjwalters
Copy link

It needs tidying but I have some spectrogram code. Can be seen on https://www.youtube.com/watch?v=f-Ev-HK9qIc

@kevinjwalters
Copy link

kevinjwalters commented Aug 25, 2023

I had a few general questions about this project:

  1. Are you aware of any documentation for the bluetooth audio library in pico-extras? Documentation for audio libraries? raspberrypi/pico-extras#28 implies there isn't much beyond the limited API docs.
  2. Does Pimoroni have a style guide for C++ code and APIs?
  3. I'm not getting certain compiler warnings that would be useful. I haven't looked at how this is all set but is it regarded as optimal at the moment?
  4. Why does this have its own copy of a Display class and what's the relationship between it and https://github.com/pimoroni/pimoroni-pico/tree/main/libraries/galactic_unicorn / https://github.com/pimoroni/pimoroni-pico/tree/main/libraries/cosmic_unicorn ?
  5. Any recommendations on how to debug or profile code on this Pi Pico W?
  6. What's (unit?) testing approach for this?

And some more specific ones:

  1. The code to use the second core is #ifdefed. I haven't tried this so far, does it work well?
  2. What's the best way to put text on the screen? I wanted to do this for some button presses?
  3. Why is there not a parent class for the display code that's common to unicorns?
  4. Does the DMA used to write to the RGB LEDs continuously run? If so, why was that chosen over triggering it when the screen needs updating?

@kevinjwalters
Copy link

kevinjwalters commented Aug 29, 2023

I've got some DMA code reading the ADC. A lot of the time it fails to start-up, there's some bad interaction perhaps with Bluetooth stack or comms to the Infineon CYW43439.

https://www.youtube.com/watch?v=8Lfekls_NrU

Update: for the failure I started this discussion, Raspberry Pi Forums: DMA ADC vs Bluetooth/Wi-Fi on Pico W?.

@ophello
Copy link

ophello commented Sep 24, 2023

I'm hearing a lot of audio glitching on my Cosmic Unicorn when using this program. Any ideas why this would be happening? It's very glitchy when streaming through bluetooth.

@kevinjwalters
Copy link

kevinjwalters commented Oct 6, 2023

@ophello Is your 2.4GHz super busy? Perhaps try in a location where there's less Wi-Fi and Bluetooth. I've been testing with an Android tablet + mainly YouTube in browser at a range of about 60cm with no other active Bluetooth devices in the room but plenty outside.

@kevinjwalters
Copy link

kevinjwalters commented Nov 14, 2023

I did some research on performance as I was curious why there was so much use of traditional C arrays. It looks like for Release builds (which are -O3) std::array and std::vector are both fine from a performance point of view. Detail in [Instructables: Benchmarking C++ Arrays on the Pi Pico.

@kevinjwalters
Copy link

kevinjwalters commented Jan 3, 2024

I've covered a fair bit of the stuff in this issue in Instructables: Making a Guitar Tuner and Audio Spectrum Analyser Using the Pimoroni Galactic Unicorn. Code is in https://github.com/kevinjwalters/galactic-bluetooth-audio/tree/spectrogram-tuner-dmaadc

I don't think Cosmic will work properly at the moment (v1.4.0) but I'm sure code is easy to fix. I don't have one to test on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants