Kami mengabdikan salah satu bahan sebelumnya untuk
OpenMusic - alat untuk menulis musik di OOP. Kami juga berbicara tentang
bahasa pemrograman yang dirancang untuk membuat komposisi audio.
Hari ini kami memutuskan untuk melanjutkan topik dan berbicara tentang bahasa Sporth. Itu dikembangkan secara khusus sehingga komposer dapat menulis musik komputer selama pertunjukan live.
Foto oleh ichael Pierce / UnsplashApa itu Sporth
Seringkali, istilah "
pemrograman musikal " mengacu pada proses penulisan musik menggunakan sequencer, synthesizer, dan perangkat lunak. Tetapi beberapa artis beralih ke alat yang lebih βhardcoreβ - kode program dan PL khusus.
Salah satu bahasa tersebut adalah
Sporth .
Sporth (kependekan dari SoundPipe fORTH) adalah
bahasa pemrograman bertumpuk
yang diimplementasikan dalam C. Operatornya memungkinkan Anda untuk menghasilkan sinyal dari frekuensi dan kunci yang berbeda, bekerja dengan tabel fungsi untuk sequencer dan menerapkan modulasi parametrik.
Bahasa ini dikembangkan oleh insinyur Paul Batchelor, yang pada suatu waktu
bekerja pada pembicara dengan tim
Google ATAP . Dia mempresentasikan proyeknya di Konferensi Internasional tentang Live Coding pada tahun 2018. Meskipun
repositori sumber dibuat di GitHub jauh lebih awal - pada tahun 2016.
Menurut Paul, ketika merancang Sporth, ia terinspirasi oleh bahasa stack seperti Forth dan PostScript. Keempat mendukung banyak CPU dengan jumlah terbatas sumber daya komputasi yang mereka miliki. Sebagai contoh, digunakan di
Jupiter ACE dengan satu kilobyte RAM. Adapun PostScript, variasinya hadir dalam format PDF, dan interpreternya dibangun ke banyak printer.
Fitur bahasa
Sporth menggunakan model mesin stack untuk melewatkan parameter. Pemrogram menempatkan di dalamnya satu set generator sinyal yang saling berhubungan (unit generator), yang bertanggung jawab untuk mereproduksi suara. Misalnya, garis di bawah ini akan membentuk sinusoid dengan frekuensi 440 Hz dengan amplitudo 0,5 poin (instrumen memiliki skala sendiri).
440 0.5 sine
Generator sinyal dapat digabungkan menggunakan simbol "+". Misalnya, hasil dari daftar perintah di bawah ini adalah
sinyal DTMF nada ganda .
440 0.2 sine 350 0.2 sine +
Bahasa ini mendukung kerja dengan pemicu - impuls tunggal - yang dibentuk oleh metronom (metro). Contoh berikut menunjukkan cara membuat
generator amplop menggunakan Sporth:
4 metro 0.5 maytrig 0.001 0.01 0.01 tenvx 1000 0.5 sine *
Sporth memungkinkan Anda untuk bekerja dengan variabel, modulasi parametrik, dan langsung menumpuk operasi. Semua operator yang digunakan ringkas dan dieksekusi berurutan.
Struktur bahasa ini meningkatkan kecepatan penulisan kode. Ini adalah salah satu alasan utama mengapa ini digunakan untuk sesi live - ketika seorang komposer-programmer menulis musik secara real time di depan penonton langsung. Omong-omong, Anda dapat mempelajari semua operator secara mandiri dan mencobanya dalam praktik - jaringan memiliki
lingkungan interaktif yang aktif.
Juga di situs ini Anda dapat menemukan beberapa
contoh musik .
Photo Slim Emcee / UnsplashTetapi penduduk di Hacker News menunjukkan bahwa bahasa tersebut memiliki dokumentasi yang sedikit, yang tidak cocok untuk "pemrogram musik" pemula. Penulis berjanji untuk memperbaiki kekurangan ini, tetapi untuk sekarang Anda dapat beralih ke buku resep dan spesifikasi tematik di GitHub .
Sporth juga memiliki API untuk diintegrasikan dengan aplikasi pihak ketiga. Ini membuka fitur yang tidak tersedia di lingkungan interaktif, seperti fungsi panggilan balik khusus. Secara khusus, Sporth sudah
digunakan oleh pengembang kerangka kerja untuk mensintesis suara
AudioKit untuk iOS.
Analog
Jumlah analog Sporth cukup luas, tetapi di antaranya bahasa
ChucK dapat dibedakan. Ini dikembangkan oleh insinyur Perry Cook (Perry Cook) dan Guy Wong (Ge Wang) dari Universitas Princeton khusus untuk pertunjukan live. ChucK adalah bahasa multi-paradigma dengan pengetikan data yang kuat tersedia untuk Windows, Linux, dan Mac OS X. ChucK mendukung eksekusi paralel dari beberapa utas dan memungkinkan Anda untuk memodifikasi program secara langsung saat runtime.
Dokumentasi dengan contoh-contoh implementasi
tersedia di situs web proyek .
Selain ChucK, ada
Supercollider - ini bukan hanya bahasa, tetapi juga lingkungan sintesis audio real-time. Alat ini memungkinkan Anda untuk menulis GUI khusus untuk bekerja dengan suara: penggeser, penganalisa dan lainnya. Anda dapat menggunakan perangkat MIDI dan
HID untuk mengelola rekaman Anda.
Menariknya, musik juga ditulis menggunakan bahasa stack Forth yang disebutkan di atas, yang menginspirasi Paul Batchelor. Itu dibangun di
atas proyek Synstack -
platform perangkat lunak dan perangkat keras untuk menghasilkan suara pada mikrokontroler
STM32F4 / F7 . Synstack mendukung lebih dari 25 operator: generator sinyal (sinusoid, saw, Bezier curve), filter, fungsi aljabar, dll. Keempat juga digunakan untuk
rendering grafik yang dinamis - ada platform
Forth Haiku untuk ini. Secara teori, instrumen ini cocok untuk memvisualisasikan suara.
Juga patut dicatat adalah alat pemrograman musik seperti Csound, Pure Data, dan Importu. Jika Anda harus bekerja dengan bahasa muses lain. pemrograman, bagikan pengalaman Anda dalam komentar.
Bacaan tambahan dari "Hi-Fi World" kami:
Apa pemrograman musik - siapa yang melakukannya dan mengapa
Bagaimana PC menaklukkan industri media dengan perangkat lunak: mendiskusikan Pro Tools dan Media Composer
Seperti retakan api, derit pintu dan kebisingan menjadi musik
"Semua yang Anda baca akan digunakan untuk melawan Anda": bagaimana musik rap masuk ke ruang sidang
Pembuat musik video game: beberapa nama yang paling menonjol
Di mana mendapatkan sampel audio untuk proyek Anda: pilihan sembilan sumber daya tematik