ThreeOscSynth adalah proyek instrumen virtual (VST3/AU) berbasis framework JUCE yang mengimplementasikan arsitektur subtractive synthesis sederhana dengan tiga oscillator independen. Proyek ini merupakan purwarupa pertama untuk pembelajaran Digital Signal Processing (DSP).
- Triple Oscillator Engine: Menggunakan tiga oscillator yang dapat dikonfigurasi secara terpisah.
- Switchable Waveforms: Mendukung tiga tipe gelombang dasar:
- Sine: Untuk suara yang bersih dan lembut.
- Square: Untuk karakter suara yang tegas dan harmonik kaya.
- Triangle: Keseimbangan antara kelembutan sine dan tekstur square.
- APVTS Integration: Menggunakan
AudioProcessorValueTreeStateuntuk manajemen parameter yang thread-safe dan mendukung otomatisasi (automation) di dalam DAW. - State Management: Mendukung penyimpanan dan pemuatan konfigurasi (preset) melalui XML binary.
Berdasarkan PluginProcessor.cpp, proyek ini memiliki komponen inti sebagai berikut:
createParameters(): Menginisialisasi parameter kontrol untuk ketiga oscillator (Osc 1, Osc 2, Osc 3).processBlock(): Jantung dari pemrosesan audio di mana sinyal MIDI diproses dan tipe gelombang diperbarui secara real-time sebelum dirender oleh engine synthesizer.SynthVoice&SynthSound: Kelas turunan JUCE yang menangani logika polifoni dan pembangkitan sinyal suara.
Untuk membangun (build) proyek ini, Anda memerlukan:
- JUCE Framework (Versi 6.x atau terbaru).
- C++ Compiler:
- Visual Studio (Windows)
- Xcode (macOS)
- Make/GCC (Linux)
- Projucer: Untuk mengatur konfigurasi modul dan mengekspor proyek ke IDE pilihan Anda.
- Clone repositori ini:
git clone http://fj-server.local:9000/fajarjulyana/ThreeOscSynth.git
- Buka file
.jucerdi dalam aplikasi Projucer. - Pastikan modul
juce_audio_processors,juce_audio_utils, danjuce_data_structuressudah terpasang. - Pilih exporter yang sesuai dengan OS Anda (misal: Visual Studio 2022 atau Xcode).
- Klik "Save and Open in IDE".
- Build proyek di dalam IDE sebagai VST3 atau Standalone Application.
- Buka ThreeOscSynth di DAW pilihan Anda atau jalankan versi Standalone.
- Gunakan kontrol dropdown untuk memilih tipe gelombang pada Oscillator 1, 2, atau 3.
- Mainkan melalui keyboard MIDI atau virtual keyboard.
- Otomatisasi parameter
osc1Type,osc2Type, danosc3Typelangsung melalui track DAW Anda.
Proyek ini masih dalam tahap pengembangan awal. Rencana pengembangan selanjutnya mencakup:
- Penambahan ADSR Envelope.
- Filter LPF/HPF.
- Interface Grafis (GUI) yang lebih interaktif di
PluginEditor.cpp.
Lisensi: MIT[LICENSE]