• Audio
  • Bela Spectrum Analyser/dB Meter with GUI

Hello, I have a bela with a microphone connected to it. I want to use ideally python to create an audio spectrum analyser SPL meter, along with a dB(A) meter. My goal is to be able to display this to a phone screen ideally, in a very similar fashion to sound level apps such as DecibelX, where they have the spectrum analyser and the overall noise level displayed.

I am not too sure where to start, I've looked through documentation but some help would be greatly appreciated.

I guess the main things are implementing a python program that runs on Bela, and connecting Bela to a phone display with a GUI and using something like pyqtgraph to display a live spectrum analyser.

Could someone steer me in the right direction or if you have any forums that might be helpful.
I have had a thorough look through documentation but I am a bit jumbled on where I should begin.

Thank you in advance.

    harrisosfp such as DecibelX

    looks like Winamp to me :-)

    If you want to implement the GUI on Bela, the the best option is to use the P5.js GUI that we offer so that it can be visualised in a browser (or webview!) on the smartphone. Anything else would involve sending raw data to the smartphone, where you'd have to implement a native GUI.

    Not sure why you'd need to perform the analysis in python. You are probably good enough using a filterbank in C++. If you use the QuadBiquad library it's also going to be massively more efficient than anything involving python, which would also have extra overhead from passing data around from the Bela real-time core to Python. Is there anything you need from the tools you'd use in python beyond basic filter bank?

    Thank you for your quick reply, the main thing about using python is I already have a script for the spectrum analyzer, I'll need to have a look through using c++ as I am less familiar with it but if it is easier/ better in the long run then it is definitely worth it. Thanks again!

    On Bela the core is C++, so sending data to python and back will add overhead.