The RythmForge library was developed by a two-person team as part of the Advanced C++ Programming course. The project was inspired by the popular librosa library, which is used for audio signal processing and analysis.
All functions and algorithms were implemented in C++20 and made available in Python using the pybind11 library. Additionally, the boost multiarray library was used for representing matrices.
The implemented functions include:
- Fast Fourier Transform (FFT)
- Inverse Fast Fourier Transform (IFFT)
- Short Time Fourier Transform (STFT)
- Inverse Short Time Fourier Transform (ISTFT)
- Mel filter bank
- Melspectrogram
- Spectrogram
- Loading audio files in
.wavformat - Other utility functions
The implemented functions are covered by appropriate unit tests created using the catch2 library and automated in a CI pipeline using GitHub Actions.
A link to the library’s source code is provided at the top of the page, while the library documentation, automatically generated using sphinx, is available here
.