Untuk modulasi acak bertingkat, pilih nilai baru pada interval yang teratur dan pertahankan nilai tersebut di antara pembaruan. Alur kerja REAPER ini menggunakan nada sintetis dan efek gain JSFX kustom sederhana untuk membuat perubahan volume acak dengan durasi dan rentang yang ditentukan secara eksplisit.
Tugas ini sengaja dibatasi: membuat satu nada berkelanjutan berubah level secara tak terduga tanpa terus-menerus bergeser di antara level. Metode otomatis di bawah ini mengharuskan Anda menyalin program efek lengkap satu kali. Bagian berikutnya menjelaskan cara membuat pola tangga berulang yang dapat diedit menggunakan envelope otomatisasi bawaan REAPER.
Apa yang membuat modulasi acak menjadi bertingkat?
Tiga pilihan menentukan hasilnya: kapan nilai berubah, nilai baru mana yang dipilih, dan bagaimana efek berpindah ke nilai tersebut. Untuk alur kerja ini, waktunya teratur, levelnya pseudorandom, dan transisinya langsung. Di antara pembaruan, gain tetap konstan.
Contoh urutannya mungkin mempertahankan −15 dB selama 250 milidetik, melonjak ke −9 dB selama 250 milidetik berikutnya, lalu melonjak ke −18 dB. Angka-angka tersebut hanya menggambarkan perilakunya; angka itu bukan hasil pengukuran atau urutan keluaran yang dijamin.
Sistem modulasi parameter REAPER menyediakan LFO dengan kontrol Speed, Strength, Phase, dan arah. Sistem otomatisasinya secara terpisah menyediakan titik envelope Square. Keduanya adalah alat yang berbeda: kecepatan LFO mengontrol laju modulasi, sedangkan segmen envelope persegi menentukan nilai yang dipertahankan di antara titik-titik. Lihat bab 18 dan 19 dari Up and Running: A REAPER User Guide.
Efek kustom di bawah ini memperjelas perilaku penahanan nilai dalam kodenya. Efek ini memproses gain stereo secara langsung; efek ini tidak mengatur sumber acak bertingkat universal untuk parameter plug-in lainnya.
Siapkan nada sintetis berkelanjutan
Mulailah dengan proyek REAPER kosong dan satu track. Tambahkan ReaSynth ke rantai FX track tersebut. REAPER mendokumentasikan ReaSynth sebagai synthesizer yang dapat dimainkan dari item MIDI, jadi Anda tidak memerlukan rekaman atau berkas suara eksternal. Kontrolnya mencakup volume output, sustain, dan campuran bentuk gelombang. The REAPER Cockos Effects Summary Guide, ReaSynth.
Gunakan pengaturan sumber sederhana berikut:
- Atur tempo proyek ke 120 BPM dan gunakan bagian empat birama dalam tanda birama 4/4.
- Pilih track dan buat seleksi waktu yang mencakup empat birama tersebut.
- Pilih
Insert→New MIDI Item. - Klik dua kali item MIDI untuk membuka editor MIDI. Gambar satu not dan perpanjang tepi kanannya hingga melintasi seluruh item.
- Di ReaSynth, mulai dengan
Volumesekitar −12 dB danSustainpada 0 dB. BiarkanSquare mix,Sawtooth mix, danTriangle mixpada nol untuk menghasilkan nada sederhana.
Alur kerja membuat dan mengedit item MIDI didokumentasikan dalam bab 13 dari REAPER User Guide. Tempo, durasi, dan level spesifik di sini hanyalah contoh pengaturan, bukan persyaratan aplikasi.
Putar bagian tersebut sebelum menambahkan modulasi. Pastikan track menghasilkan nada berkelanjutan. Jika nadanya berhenti terlalu cepat, periksa panjang not dan pengaturan sustain. Gain yang berubah akan lebih mudah dinilai jika sumbernya sendiri mempertahankan level tetap.
Tambahkan efek yang mempertahankan setiap level acak
JSFX adalah sistem bawaan REAPER untuk efek yang ditulis sebagai program teks. REAPER mengompilasinya saat dimuat; contoh ini tidak memerlukan pustaka pemrograman eksternal. Strukturnya mengikuti JSFX Programming reference resmi.
Buka View → FX Browser. Di menu FX pada browser, pilih Create new JS FX dan beri nama khusus pada efek tersebut, misalnya Stepped Random Gain. Buka sumbernya menggunakan Edit JS FX, ganti isi awal dengan program lengkap di bawah, lalu simpan. Perintah untuk membuat dan mengedit ini didokumentasikan di bagian 16.16 dari REAPER User Guide.
desc:Stepped Random Gain
slider1:250<20,2000,1>Step duration (ms)
slider2:-18<-60,0,0.1>Level endpoint A (dB)
slider3:-6<-60,0,0.1>Level endpoint B (dB)
in_pin:Left
in_pin:Right
out_pin:Left
out_pin:Right
@init
remaining = 0;
gain = 1;
@slider
interval_samples = max(1, floor(srate * slider1 / 1000 + 0.5));
low_db = min(slider2, slider3);
high_db = max(slider2, slider3);
remaining = 0;
@sample
remaining <= 0 ? (
level_db = low_db + rand(1) * (high_db - low_db);
gain = 10 ^ (level_db / 20);
remaining = interval_samples;
);
spl0 *= gain;
spl1 *= gain;
remaining -= 1;
Ini adalah efek audio stereo lengkap, bukan potongan kode. Tambahkan setelah ReaSynth dalam rantai FX track. Hapus filter pencarian FX Browser jika namanya tidak terlihat.
Program ini menggunakan rand(1) untuk mendapatkan nilai pseudorandom dan memetakan nilai tersebut di antara dua titik akhir dB. Sintaks kondisional, operator eksponen, dan fungsi acak bahasa ini didokumentasikan dalam JSFX Programming Reference — Language Essentials.
Penghitung menggunakan srate, yaitu laju sampel REAPER saat ini. Setiap sampel melewati gain tersimpan yang sama hingga penghitung habis. Kedua kanal menerima gain tersebut, jadi efek ini tidak mengacak levelnya secara terpisah. REAPER mendokumentasikan srate, spl0, dan spl1 dalam JSFX Programming Reference — Special Variables.
Program ini telah diperiksa berdasarkan referensi tersebut. Aritmetika penghitungan juga diperiksa secara terpisah pada 44,1 dan 48 kHz; JSFX itu sendiri tidak dijalankan di REAPER untuk artikel ini.
Atur durasi langkah dan rentang level
Mulailah dengan Step duration (ms) pada 250, Level endpoint A (dB) pada −18, dan Level endpoint B (dB) pada −6. Pengaturan ini memilih nilai atenuasi baru empat kali per detik. Setiap nilai yang dipilih bertahan selama interval penuh kecuali Anda mengubah kontrol.
Titik akhir menentukan gain yang diterapkan setelah synthesizer. Titik akhir tersebut bukan pembacaan meter output target. Contohnya, −6 dB setara dengan pengali sampel sekitar 0,501, sedangkan −18 dB setara dengan sekitar 0,126. Sinyal sumber dan pemrosesan track selanjutnya tetap menentukan output akhir.
| Perilaku yang diinginkan | Contoh pengaturan | Perubahan yang terjadi |
|---|---|---|
| Plateau lambat dan jelas | 1.000 ms | Satu level baru setiap detik |
| Perubahan bertingkat sedang | 250 ms | Empat level baru setiap detik |
| Perubahan bertingkat lebih cepat | 125 ms | Delapan level baru setiap detik |
| Perbedaan level lebih kecil | Titik akhir −9 dan −6 dB | Rentang pilihan lebih sempit |
| Atenuasi konstan untuk perbandingan | Kedua titik akhir −6 dB | Setiap pilihan menghasilkan gain yang sama |
Pada 120 BPM, not seperdelapan berlangsung selama 250 milidetik: 60 detik dibagi 120 ketuk, lalu dibagi dua. Ini adalah perhitungan waktu yang dijabarkan. Efek yang disediakan menggunakan milidetik dan tidak mengikuti perubahan tempo atau menyelaraskan langkahnya dengan kisi musik proyek.
Titik akhir dapat dimasukkan dalam urutan mana pun karena program mengurutkannya. Mengubah slider apa pun akan memulai interval baru pada sampel yang diproses berikutnya. Level acak dipertahankan tanpa interpolasi, meskipun dua pilihan berturut-turut bisa saja berdekatan.
Buat pola tangga berulang yang dapat diedit
Gunakan envelope otomatisasi jika Anda menginginkan nilai yang tepat pada posisi timeline tertentu. Ini juga merupakan cara bawaan yang didukung untuk menerapkan perubahan tertahan pada parameter efek yang ditampilkan. REAPER mendokumentasikan envelope parameter dan bentuk titik Square di bab 18 User Guide-nya.
Untuk pola volume tetap, nonaktifkan JSFX kustom terlebih dahulu. Buka kontrol envelope track dan tampilkan envelope Volume-nya. Biarkan track dalam mode Trim/Read saat mengedit secara manual.
Buat titik pada interval 250 milidetik menggunakan klik Shift, lalu pindahkan ke level yang tidak beraturan. Klik kanan titik dan pilih Set Point Shape → Square. Terapkan bentuk tersebut ke setiap titik yang segmen keluarnya harus mempertahankan nilainya. Envelope akan menampilkan plateau horizontal yang diikuti perubahan vertikal.
Untuk parameter efek lain, sentuh kontrol yang diinginkan dan pilih Param → Show track envelope. Tambahkan dan atur bentuk titik pada envelope tersebut. Alur kerja menu parameter dijelaskan dalam The REAPER Cockos Effects Summary Guide.
Menempatkan nilai yang tidak beraturan secara manual akan membuat pola tetap; cara ini tidak menghasilkan nilai acak baru pada setiap pemutaran. Untuk menggunakannya kembali, pilih rentang waktunya, klik kanan envelope, lalu pilih Automation items → Insert new automation item. REAPER mendukung item otomatisasi berulang dan salinan yang dikumpulkan, yang perubahannya diterapkan pada salinan lainnya. REAPER User Guide, Automation Items.
Atasi gerakan halus, perubahan yang tidak muncul, dan pengulangan
Jika envelope masih miring, periksa bentuk titik keluar. Linear membuat ramp; Square membuat segmen tertahan yang diperlukan di sini. LFO persegi dan pola tangga multi-level yang digambar manual juga memiliki kegunaan berbeda: hanya bergantian di antara dua level tidak menghasilkan urutan level sembarang.
Jika efek kustom tidak menghasilkan perubahan yang terlihat jelas, pastikan efek tersebut berada setelah ReaSynth, aktif, dan titik akhirnya berbeda. Coba langkah 1.000 milidetik dengan titik akhir −24 dan −6 dB agar polanya lebih mudah diperiksa. Setelah itu, kembalikan ke rentang yang dibutuhkan proyek Anda.
Perubahan gain mendadak dapat menimbulkan bunyi klik karena pengali sampel berubah seketika. Program ini memang tidak memiliki pemulusan. Perbedaan level yang lebih kecil dapat mengurangi besarnya diskontinuitas tersebut, tetapi tidak menjamin keluaran bebas klik. Menambahkan ramp transisi akan mengubah perilaku langkah langsung yang presisi.
Efek ini dirancang untuk track stereo dan hanya mengubah dua kanal audio pertamanya. Efek ini tidak menulis titik otomatisasi, menyimpan urutan acak yang dipilih, membulatkan nilai menjadi sedikit level tertentu, atau menyediakan sinkronisasi tempo. REAPER biasanya menjalankan bagian JSFX @init saat pemutaran dimulai; program ini mereset penghitungnya di bagian tersebut. Jangan mengandalkannya untuk menghasilkan urutan acak yang sama setelah dimulai ulang. JSFX code-section reference.
Gunakan efek gain kustom jika Anda menginginkan level tertahan yang dihasilkan secara otomatis. Gunakan otomatisasi persegi jika Anda ingin mengedit, mengulang, dan mempertahankan perubahan tertentu. Kedua pendekatan memungkinkan nada sintetis melewati plateau yang berbeda; pilihan di antara keduanya bergantung pada apakah Anda lebih mengutamakan nilai baru atau pola timeline yang persis.
Sumber
- Up and Running: A REAPER User Guide v7.84 — REAPER / Geoffrey Francis.
- The REAPER Cockos Effects Summary Guide — REAPER / Geoffrey Francis.
- JSFX Programming — Cockos.
- JSFX Programming Reference — Language Essentials — Cockos.
- JSFX Programming Reference — Special Variables — Cockos.