3 poin oleh GN⁺ 2024-08-11 | 1 komentar | Bagikan ke WhatsApp
  • 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 seperti chord(: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 dengan use_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
  • Optimasi kode

    • Fungsi didefinisikan untuk mengurangi kode yang berulang
    • Fungsi def arpeggiate(root, is_minor = false) digunakan untuk membuat pola arpeggio
    • Blok in_thread do digunakan untuk menjalankan kode secara paralel
  • Eksekusi paralel

    • Blok in_thread do memungkinkan dua "instrumen" berjalan secara paralel
    • Misalnya, arpeggio dijalankan di satu thread, dan melodi dijalankan di thread lain
  • Implementasi paduan suara

    • ring digunakan 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_loop digunakan 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

 
GN⁺ 2024-08-11
Komentar Hacker News
  • Jika tertarik dengan live coding, Glicol layak dicoba
  • TidalCycles juga layak direkomendasikan. Mereka memuji kemampuan Haskell dan Ruby dalam membuat DSL
  • Desain bahasa Glicol berfokus pada sintaks yang terinspirasi dari synthesizer, kecepatan komposisi, dan kemudahan sound design
    • Tujuannya adalah merancang DSL yang mencerminkan kebiasaan pemrograman yang ada, tetapi tidak terikat pada bahasa yang sudah ada
  • Ruby sangat berguna karena sintaksnya hampir seperti bahasa Inggris
  • Pernah melihat pertunjukan live dari Sam Aaron, pencipta Sonic Pi
    • Sangat terkesan melihat musik berkembang setiap kali kodenya diubah
  • Sebagai pengembang Ruby, ini terasa sangat menarik karena tampaknya bisa digunakan untuk membuat musik yang dihasilkan secara algoritmis
    • Misalnya, sepertinya ini bisa dipakai untuk mengubah event noisy di git repository menjadi musik algoritmis
  • Sebagai musisi, merekam dan me-loop keyboard MIDI atau instrumen akustik terasa sebagai UX yang lebih baik
    • Apa pun bisa dimasukkan dengan DSL Ruby, tetapi UX-nya tidak sebagus keyboard piano
    • Sepertinya tidak akan digunakan untuk menggantikan Logic
  • Sebagai pendekatan lain untuk musik pemrograman, scamp untuk Python juga direkomendasikan
    • Penulisnya telah mengunggah beberapa video di YouTube
  • Beberapa tahun lalu pernah melihat video YouTube yang mereproduksi THX Deep Note menggunakan Sonic Pi
    • Awalnya tanpa menjelaskan apa yang akan dilakukan, lalu sedikit demi sedikit menyesuaikan suara hingga akhirnya menghasilkan Deep Note
    • Sayang sekali video itu tidak bisa ditemukan lagi
  • Belakangan ini kembali memikirkan Sonic Pi dan menonton beberapa video
    • Pernah mencobanya sebentar beberapa tahun lalu
  • Komentar HTML tidak berfungsi dengan benar. Editor mengubah dua tanda hubung menjadi satu em dash
  • Menyampaikan dukungan kepada live coder Sonic Pi alsoknownasrox
  • Demo yang benar-benar keren
    • Namun, tata letak situs rusak di Safari