This project originated as a technical test for Supplyz.eu, aimed at designing a cross-platform audio analysis tool. Initially intended for an interview process, it has now been open-sourced. The tool is capable of recording audio and generating real-time visual spectrograms, and is designed for cross-platform compatibility. It is now freely available for anyone to use, modify, or integrate into their own projects as they see fit.
EchoGrapher is a cross-platform desktop tool designed for audio analysis and visualization. It captures audio through your system's microphone and renders a real-time log mel spectrogram a sophisticated visual representation of sound frequency and amplitude over time.
Demo.mp4
- 🔊 Real-time audio recording and visualization
- 📊 Log mel spectrogram display with adjustable parameters
- 🛠️ Customizable window size, overlap, and number of mel bands
- 🔍 Zoom in/out and reset capabilities for thorough analysis
The EchoGrapherQT
project folder encompasses:
- 📝 Source files:
audioprocessor.cpp
,main.cpp
,mainwindow.cpp
- 🗂️ Header files:
audioprocessor.h
,mainwindow.h
- 🖼️ UI file:
mainwindow.ui
- 🔧 Project file:
EchoGrapherQT.pro
- 🚫 User-specific settings:
EchoGrapherQT.pro.user
(should not be versioned)
Upon build, a directory named build-EchoGrapherQT-Desktop_Qt_6_6_0_GCC_64bit-Debug
is generated, housing all compiled and intermediate files needed to run the application.
Make sure to have the following installed:
- 🌟 Qt 6.6.0 or later
- 🖥️ GCC (for Linux/macOS) or MSVC (for Windows) with C++17 support
- 📚 Dependencies: PortAudio, FFTW3
Install the following prerequisites before proceeding:
- 🐧 Linux:
sudo apt-get install portaudio19-dev
- 🍎 macOS:
brew install portaudio
- 🪟 Windows: Download from PortAudio's website.
- 🐧 Linux:
sudo apt-get install libfftw3-dev
- 🍎 macOS:
brew install fftw
- 🪟 Windows: Download from FFTW's website.
- Install Dependencies
sudo apt-get update sudo apt-get install qtbase5-dev libportaudio19-dev libfftw3-dev
- Launch Qt Creator and choose
Open Project
. - Navigate to your project's directory and select the .pro file.
- Select the appropriate kit for your OS and configure your project.
- Hit
Build
to compile. - Once built, click
Run
in Qt Creator to start the app. - Launch Qt Creator and choose
Open Project
. - Navigate to your project's directory and select the .pro file.
- Select the appropriate kit for your OS and configure your project.
- Hit
Build
to compile. - Once built, click
Run
in Qt Creator to start the app.
- Clone the repository and enter the project directory:
git clone git@github.com:AliTahir-101/EchoGrapher.git
cd EchoGrapherQT
- Prepare a build directory and navigate into it:
mkdir build && cd build
- Generate the Makefile using
qmake
:
qmake ..
- Compile the project with
make
(on Windows, usenmake
orjom
):
make
- The EchoGrapherQT executable (or EchoGrapherQT.exe on Windows) will be in the build folder.
Execute the EchoGrapherQT binary ./EchoGrapherQT
to launch the app or In Windows open the .exe file. In Qt Creator, you can run the app with a simple click of the 'Run' button.
- Start the application as per the installation instructions.
- Interact with the UI to begin recording and visualizing the spectrogram.
- Modify spectrogram parameters to fit your analysis needs.
Unit and integration tests are located within the tests directory. See TESTING.md for execution instructions.
Git is employed for version control. For the complete commit history, visit the repository.
Ali Tahir - Initial work - GitHub
Encountering issues? Please consult TROUBLESHOOTING.md or raise an issue in the repository.