Skip to content

octaoss/libocpulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ocpulse-visualizer

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).

Kebutuhan Sistem & Instalasi (Development)

Linux (Kubuntu/Ubuntu/Debian)

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).

Cara Build (Kompilasi)

  1. Pastikan Anda telah meng-clone beserta submodule CAVA:
    git clone --recursive <URL_REPO_ANDA>
    (Jika sudah terlanjur clone biasa, jalankan git submodule update --init --recursive)
  2. Masuk ke direktori utama proyek, lalu buat folder build:
    mkdir build && cd build
  3. Konfigurasi dan Kompilasi:
    cmake ..
    make
  4. Jalankan program contoh:
    ./bin/ocpulse-example

Cara Pakai / Integrasi di Project Lain

Pustaka ini didesain agar sangat mudah disematkan (di-embed) ke dalam project C atau C++ lain (misalnya membuat Widget KDE, Panel UI, dll).

1. Persiapan File

Anda membutuhkan 3 hal dari hasil kompilasi proyek ini:

  • Folder include/ (berisi ocpulse_visualizer.h).
  • File library libocpulse-visualizer.so (di folder build/lib/).
  • File executable cava (di folder build/bin/).

2. Aturan Penting (CAVA Engine)

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).

3. Penulisan Kode di Project Baru Anda

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;
}

4. Konfigurasi CMake Project Baru Anda

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)

About

CAVA (Console-based Audio Visualizer for ALSA) C/C++ (Shared Library)

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages