Sebuah pustaka C/C++ (Shared Library) lintas platform untuk menangkap output audio sistem dan merendernya ke dalam bentuk visualisasi dinamis berbasis SDL2.
Proyek ini menggunakan CAVA (Console-based Audio Visualizer for ALSA) sebagai engine utama di balik layar untuk menghasilkan perhitungan FFT (Fast Fourier Transform) dan spektrum audio yang sangat responsif (realtime).
Proyek ini akan otomatis mem-build CAVA dari source. Pastikan Anda menginstall dependensi untuk SDL2 dan CAVA (autotools):
sudo apt update
sudo apt install build-essential cmake libsdl2-dev pkg-config libfftw3-dev libasound2-dev libpulse-dev libiniparser-dev libtool automake autoconf(Catatan: Untuk Windows saat ini eksperimental karena CAVA sangat bergantung pada POSIX/Linux).
- Pastikan Anda telah meng-clone beserta submodule CAVA:
(Jika sudah terlanjur clone biasa, jalankan
git clone --recursive <URL_REPO_ANDA>
git submodule update --init --recursive) - Masuk ke direktori utama proyek, lalu buat folder
build:mkdir build && cd build
- Konfigurasi dan Kompilasi:
cmake .. make
- Jalankan program contoh:
./bin/ocpulse-example
Pustaka ini didesain agar sangat mudah disematkan (di-embed) ke dalam project C atau C++ lain (misalnya membuat Widget KDE, Panel UI, dll).
Anda membutuhkan 3 hal dari hasil kompilasi proyek ini:
- Folder
include/(berisiocpulse_visualizer.h). - File library
libocpulse-visualizer.so(di folderbuild/lib/). - File executable
cava(di folderbuild/bin/).
Karena library ini bekerja sebagai wrapper, library membutuhkan executable cava untuk berjalan.
Pastikan file executable cava diletakkan persis di sebelah / satu folder dengan aplikasi akhir buatan Anda. Jika tidak ada di folder lokal, library otomatis akan mencoba mencari instalasi cava di sistem OS (via System PATH).
Cukup sertakan header dan panggil API-nya:
#include "ocpulse_visualizer.h"
int main() {
// 1. Buat visualizer (Judul Jendela, Lebar, Tinggi)
OCPulseVisualizer* vis = ocpulse_create("My KDE Widget", 800, 400);
if (!vis) return -1;
// 2. Jalankan (Akan mem-block thread ini hingga jendela ditutup)
ocpulse_run(vis);
// 3. Bersihkan memori
ocpulse_destroy(vis);
return 0;
}Jika project baru Anda menggunakan CMake, cara nge-link-nya sangat mudah:
# Tambahkan lokasi folder include
target_include_directories(my_new_project PRIVATE /path/ke/ocpulse/include)
# Link dengan library .so nya
target_link_libraries(my_new_project PRIVATE /path/ke/ocpulse/build/lib/libocpulse-visualizer.so)