Ruby sebagai Alat Komposisi: Sonic Pi
(bhmt.dev)-
Sonic Pi: Menggunakan Ruby sebagai alat komposisi
-
Latar belakang
- Penulis awalnya mengambil jurusan musik
- Saat bekerja sebagai pengembang web, ia menjadi semakin tertarik pada pekerjaan teknis
- Ia pernah mencoba musik elektronik karena sulit memainkan berbagai instrumen, tetapi gagal
- Belakangan ini, melalui Sonic Pi, ia kembali menggabungkan musik dan coding
-
Pengenalan Sonic Pi
- Sonic Pi yang dibuat oleh Sam Aaron adalah software synthesizer yang dikendalikan dengan kode
- Sonic Pi menggunakan domain-specific language (DSL) yang memperluas Ruby untuk memetakan konsep musik dan audio
- Misalnya, not direpresentasikan dengan simbol seperti
:c4, dan generator chord sepertichord(:d3, :maj7)digunakan
-
Tujuan proyek
- Tujuannya adalah menggubah satu demo hanya dengan menggunakan Sonic Pi
- Komposisi dibuat murni dengan kode tanpa menggunakan MIDI atau sampel eksternal
-
Contoh kode dasar
- BPM diatur dengan
use_bpm 70, dan synthesizer diatur denganuse_synth :pulse - Not dimainkan dan interval waktu diatur dengan kode seperti
play :c2,sleep 0.25 - Pola dimainkan dengan
play_pattern_timed [ :c3, :d3, :e3, :g3 ], 0.25
- BPM diatur dengan
-
Optimasi kode
- Fungsi didefinisikan untuk mengurangi kode yang berulang
- Fungsi
def arpeggiate(root, is_minor = false)digunakan untuk membuat pola arpeggio - Blok
in_thread dodigunakan untuk menjalankan kode secara paralel
-
Eksekusi paralel
- Blok
in_thread domemungkinkan dua "instrumen" berjalan secara paralel - Misalnya, arpeggio dijalankan di satu thread, dan melodi dijalankan di thread lain
- Blok
-
Implementasi paduan suara
ringdigunakan untuk menggabungkan beberapa not menjadi satu daftar- Not dimainkan dan durasinya diatur seperti pada
play_pattern_timed [ring(:c5, :e5)], 4, sustain: 3.8 - Fungsi
def choral_rings(notes, sus)didefinisikan untuk menyederhanakan pola paduan suara
-
Live loop
live_loopdigunakan untuk membuat loop yang berulang tanpa henti- Loop didefinisikan seperti
live_loop :harp do, lalu kode ditulis di dalamnya
-
Kesimpulan
- Pemrograman bukan sekadar sains, melainkan juga seni
- Menulis kode adalah tindakan kreatif dan cara untuk berkomunikasi dengan orang lain
- Melalui Sonic Pi, musik dan coding dapat digabungkan untuk menghasilkan karya kreatif
Ringkasan GN⁺
- Sonic Pi adalah alat untuk menggubah musik dengan kode, menggunakan DSL yang memperluas Ruby
- Proyek ini bertujuan menggubah satu demo hanya dengan menggunakan Sonic Pi
- Pemrograman tidak hanya memiliki sisi ilmiah, tetapi juga sisi artistik, dan Sonic Pi menunjukkannya dengan baik
- Menggabungkan musik dan coding adalah contoh bagus dari kerja kreatif
- Alat dengan fungsi serupa antara lain TidalCycles dan SuperCollider
1 komentar
Komentar Hacker News