BandJari
Aplikasi web untuk menyusun dan memainkan pola pukulan rebana Al-Banjari — 4 rebana plus 1 bass per section — lalu memicunya secara live lewat Pattern Launcher. Bermain musik selayaknya sebuah band, cukup dengan jari.
Masalah yang Dipecahkan
Untuk mengiringi vokal Al-Banjari dibutuhkan satu tim rebana lengkap — 4 rebana dan 1 bass — yang belum tentu tersedia setiap saat. Pola pukulan tiap grup juga jarang terdokumentasi, sehingga vokalis mandiri maupun pelatih sulit berlatih, mendigitalkan variasi pukulan, dan mengajarkannya kembali ke anggota baru.
Fitur Utama
BandJari memisahkan penyusunan pola dari pemutarannya: susun sekali di Sequencer, mainkan kapan saja di Launcher.
- Sequencer Dinamis: Tiap Section punya 5 part (rebana 1–4 dan bass) dengan grid step, multi-bunyi per kolom, langkah istirahat, mute per part, serta preview audio real-time.
- SoundSlot & Library Sample: Jenis bunyi bebas didefinisikan per part (Tak, Dung, Duk, dan lainnya), lalu dipasangkan ke sample .wav yang bisa dipakai ulang lintas section maupun lintas lagu.
- Pattern Launcher: Grid pad satu per Section dengan quantized trigger, sehingga perpindahan antarbagian lagu menunggu akhir siklus dan tetap musikal — lengkap dengan mode antrian section.
- BPM Fleksibel: BPM dasar per lagu plus override opsional per Section, dengan hard cut saat berpindah tempo dan kontrol BPM sementara saat tampil.
- Coba Tanpa Login: Guest dapat langsung memainkan Song Template System bawaan — susunan section standar Al-Banjari yang sudah terisi sample — sebelum memutuskan mendaftar.
Di Balik Layar
Monorepo Nx yang memisahkan API dan platform, dengan playback engine yang sepenuhnya berjalan di sisi klien.
- Backend Go: Echo v4 + GORM + PostgreSQL, autentikasi JWT dengan role yang dibaca ulang dari database pada setiap request, serta dokumentasi Swagger.
- Playback Engine: Web Worker sebagai clock dengan lookahead scheduling berbasis AudioContext — 1 step setara 1/16 ketukan — agar timing tidak drift meski tab tidak aktif.
- Object Storage: Sample audio disimpan di storage S3-compatible: MinIO untuk development dan Cloudflare R2 untuk produksi.
- Kontrak API: Swagger menjadi sumber kontrak, lalu Orval men-generate hook React Query sehingga tipe klien selalu sinkron dengan backend.
Roadmap
Fase 1 (MVP) sudah menyelesaikan fitur inti: penyusunan pola, playback live, template system, dan peran admin. Fase berikutnya mencakup breakdown pola pukulan otomatis dari audio eksternal (YouTube/MP3), platform berbagi pattern antar pengguna, dukungan part vokal, hingga mode operasional untuk penggunaan langsung di acara.
Tertarik dengan solusi serupa?
Mari diskusikan bagaimana kita bisa membangun sesuatu yang hebat bersama.