Repositori ini merupakan kumpulan plugin efek audio yang diimplementasikan dari penjelasan dalam buku "Efek Audio: Teori, Implementasi, dan Aplikasi" oleh Joshua D. Reiss dan Andrew P. McPherson, dan mengambil contoh kode yang diberikan bersama buku yang memiliki kontribusi dan implementasi oleh Brecht De Man, dan lain-lain.
Efek audio yang diterapkan adalah:
Templat Time Domain mengimplementasikan antarmuka pengguna grafis umum dengan penggeser linier dan logaritmik, pengalih, dan kotak kombo. Proyek ini memperkenalkan kelas parameter audio khusus yang merangkum banyak kerumitan untuk menambahkan, menyiapkan, dan menggunakan parameter plugin otomatis di prosesor audio dan editor generik (GUI). Plugin ini tidak menerapkan pemrosesan menarik apa pun pada input, ini hanya proyek templat untuk efek pemrosesan audio domain waktu.
Domain Frekuensi Templat mengimplementasikan kelas transformasi Fourier waktu singkat. Plugin ini tidak menerapkan pemrosesan apa pun pada masukan, hanya mengubah blok masukan menjadi domain frekuensi, dan kembali ke domain waktu menggunakan metode penambahan tumpang tindih. Plugin ini digunakan sebagai proyek templat untuk efek pemrosesan audio domain frekuensi.
Penundaan mengimplementasikan penundaan dasar dengan umpan balik dan kontrol campuran menggunakan garis penundaan melingkar. Ini menggunakan interpolasi linier sederhana untuk mencapai waktu tunda fraksional.
Vibrato menggunakan Osilator Frekuensi Rendah (LFO) untuk memodulasi penundaan sinyal input dan mensimulasikan variasi nada periodik. Berbagai jenis interpolasi sampel diperkenalkan di plugin ini.
Flanger mensimulasikan efek audio berbasis penundaan di mana salinan sinyal input ditunda dengan waktu tunda yang bervariasi, dan dicampur dengan suara asli, sehingga menghasilkan karakteristik suara "swooshing" dari efek audio klasik ini.
Chorus menyimulasikan fenomena yang terjadi ketika beberapa musisi menampilkan lagu yang sama pada waktu yang sama, yaitu membuat salinan sinyal input dengan variasi nada dan waktu yang kecil, sehingga menghasilkan satu sumber suara seolah-olah itu adalah banyak rekaman individual.
Penundaan Ping-Pong adalah versi stereo dari penundaan dasar. Dalam Penundaan Ping-Pong, sinyal yang tertunda memantul antara saluran kiri dan kanan.
Parametrik EQ mengimplementasikan berbagai jenis filter parametrik (low-pass, high-pass, low-shelf, high-shelf, band-pass, band-stop, dan peaking/notch). Filter urutan pertama dan kedua dapat dipilih dan disesuaikan berdasarkan frekuensi cut-off, faktor kualitas (bandwidth), dan penguatan.
Wah-Wah adalah efek audio yang memasukkan karakter seperti ucapan ke suara input. Ini dapat digunakan dalam mode manual, dimana frekuensi cut-off dari resonansi low-pass, band-pass, atau filter peaking/notch diubah dengan slider, atau dalam mode otomatis dimana frekuensi cut-off dari filter low-pass resonansi diubah. filter dikontrol dengan LFO, dengan selubung sinyal input, atau dengan kombinasi keduanya.
Phaser menggunakan filter all-pass dalam konfigurasi kaskade untuk memperkenalkan pergeseran fasa ke sinyal input. Pergeseran ini menciptakan takik pada spektrum frekuensi ketika sinyal yang disaring dicampur dengan sinyal asli. Phaser menghasilkan efek serupa dengan flanger, namun ada potensi kontrol yang lebih besar pada lokasi takik.
Tremolo menggunakan LFO untuk memodulasi amplitudo sinyal input. Ini mensimulasikan variasi kecil pada level sinyal atau mengubah satu nada berkelanjutan menjadi serangkaian pengulangan cepat.
Ring Modulation adalah hasil perkalian sinyal input dengan pembawa periodik (mirip dengan tremolo tetapi pada frekuensi yang lebih tinggi). Ini adalah efek audio non-linier yang menghasilkan suara yang sangat tidak harmonis.
Compressor/Expander mengimplementasikan empat prosesor audio dalam satu (compressor, limiter, expander, dan noise gate). Konfigurasi Kompresor/Pembatas mengurangi rentang dinamis sinyal dengan melemahkan bagian suara input dengan penguatan lebih tinggi dari ambang batas. Konfigurasi Expander/Noise gate meningkatkan rentang dinamis dengan melemahkan bagian suara input dengan penguatan lebih rendah dari ambang batas.
Distorsi menerapkan transformasi non-linier pada suara input yang meningkatkan penguatannya hingga batas yang menghasilkan suara yang keras, tidak jelas, atau berpasir. Fungsi non-linear yang berbeda dapat dipilih dan penguatan output dapat dikontrol secara individual untuk mengembalikan tingkat kenyaringan aslinya. Filter rak tinggi juga dapat digunakan untuk mengontrol nada suara keluaran.
Robotisasi/Bisikan mengimplementasikan dua efek audio berdasarkan algoritma fase vocoder. Plugin ini dimaksudkan untuk digunakan dengan suara ucapan. Robotisasi menerapkan nada konstan pada sinyal sambil mempertahankan formant, hasilnya terdengar seperti suara robot. Berbisik menghilangkan rasa nada sambil mempertahankan formant, hasilnya akan terdengar seperti seseorang berbisik.
Pitch Shift mengubah nada sinyal input tanpa mengubah durasi menggunakan algoritma vocoder fase. Ini adalah implementasi waktu nyata yang memungkinkan perubahan parameter pergeseran nada secara terus menerus dan lancar.
Panning mengubah posisi sumber suara antara dua saluran, kiri dan kanan. Ini dapat digunakan dalam dua mode, mode pertama menggunakan efek prioritas dan hukum tangen untuk menyesuaikan waktu tunda dan penguatan sinyal kiri dan kanan, ini bagus untuk reproduksi melalui pengeras suara dengan asumsi tata letak stereo standar. Mode kedua menggunakan model kepala bulat untuk memperkirakan Interaural Time Difference (ITD) dan Interaural Level Difference (ILD), yang bagus untuk reproduksi melalui headphone.
Plugin ini diimplementasikan menggunakan JUCE, yang menyediakan kerangka kerja untuk membuat plugin audio untuk berbagai platform (Windows dan macOS), dan dalam berbagai format (VST, AU, RTAS, AAX, dll.), serta aplikasi mandiri. Anda dapat menjalankan perintah berikut di terminal untuk mengkloning repositori ini dan memeriksa versi terbaru JUCE yang digunakan untuk membangun semua proyek:
git clone https://github.com/juandagilc/Audio-Effects.git
cd Audio-Effects/
git submodule update --init
Kode oleh Juan Gil https://juangil.com/. Hak Cipta © 2017-2020 Juan Gil.
Program ini adalah perangkat lunak bebas: Anda dapat mendistribusikan ulang dan/atau memodifikasinya berdasarkan ketentuan Lisensi Publik Umum GNU sebagaimana diterbitkan oleh Free Software Foundation, baik versi 3 dari Lisensi tersebut, atau (sesuai pilihan Anda) versi yang lebih baru.
Program ini disebarluaskan dengan harapan dapat bermanfaat, namun TANPA JAMINAN APA PUN; bahkan tanpa jaminan tersirat mengenai KELAYAKAN UNTUK DIPERDAGANGKAN atau KESESUAIAN UNTUK TUJUAN TERTENTU. Lihat Lisensi Publik Umum GNU untuk lebih jelasnya.
Anda seharusnya sudah menerima salinan Lisensi Publik Umum GNU bersama dengan program ini. Jika tidak, lihat https://www.gnu.org/licenses/.