Saya telah banyak memikirkan pembuatan konten prosedural untuk sementara waktu dan saya belum pernah melihat banyak eksperimen dengan musik prosedural. Kami memiliki teknik yang fantastis untuk menghasilkan model, animasi, tekstur, tetapi musik tetap statis atau hanya loop berlapis (misalnya Spora).
Karena itu, saya telah memikirkan teknik pembuatan musik yang optimal, dan saya ingin tahu apa yang ada di pikiran orang lain. Meskipun Anda belum pernah mempertimbangkannya, apa yang menurut Anda akan berhasil? Tolong satu teknik per jawaban, dan sertakan contoh jika memungkinkan. Teknik ini dapat menggunakan data yang ada atau menghasilkan musik seluruhnya dari awal, mungkin pada beberapa jenis masukan (suasana hati, kecepatan, apa pun).
procedural
generative
Serafina Brocious
sumber
sumber
Jawaban:
Cellular Automata - baca .
Anda juga bisa mencobanya di sini .
Edit:
rakkarage telah menyediakan sumber daya lain: http://www.ibm.com/developerworks/java/library/j-camusic/
sumber
Sistem yang paling sukses kemungkinan besar akan menggabungkan beberapa teknik. Saya ragu Anda akan menemukan satu teknik yang bekerja dengan baik untuk melodi, harmoni, ritme dan generasi urutan bass di semua genre musik.
Rantai Markov , misalnya, sangat cocok untuk pembuatan urutan melodi dan harmonis. Metode ini membutuhkan analisis lagu-lagu yang ada untuk membangun probabilitas transisi rantai. Keindahan nyata rantai Markov adalah bahwa negara bagian dapat menjadi apa pun yang Anda inginkan.
Jaringan neural sangat cocok untuk prediksi deret waktu (perkiraan), yang berarti keduanya sama-sama cocok untuk 'memprediksi' urutan musik saat dilatih dengan melodi / harmoni populer yang ada. Hasil akhirnya akan serupa dengan pendekatan rantai Markov. Saya tidak bisa memikirkan manfaat apa pun atas pendekatan rantai Markov selain mengurangi jejak memori.
Selain nada, Anda memerlukan durasi untuk menentukan ritme nada atau akor yang dihasilkan. Anda dapat memilih untuk memasukkan informasi ini ke dalam status rantai Markov atau keluaran jaringan neural, atau Anda dapat membuatnya secara terpisah dan menggabungkan urutan nada dan durasi independen.
Algoritme genetik dapat digunakan untuk mengembangkan bagian ritme. Model sederhana bisa menggunakan kromosom biner di mana 32 bit pertama mewakili pola kick drum, 32 bit kedua sebagai snare, 32 bit ketiga adalah hi hat tertutup, dan seterusnya. Sisi negatifnya dalam kasus ini adalah bahwa mereka membutuhkan umpan balik manusia yang berkelanjutan untuk menilai kesesuaian pola yang baru berevolusi.
Sistem pakar dapat digunakan untuk memverifikasi urutan yang dihasilkan oleh teknik lain. Basis pengetahuan untuk sistem validasi semacam itu mungkin dapat diambil dari buku atau situs teori musik yang bagus. Coba musictheory.net Ricci Adams .
sumber
Ada lebih dari 50 tahun penelitian tentang teknik ini, yang sering diabaikan oleh pengembang yang tidak terbiasa dengan sejarah musik komputer dan komposisi algoritmik. Banyak contoh sistem dan penelitian yang menangani masalah ini dapat ditemukan di sini:
http://www.algorithmic.net
sumber
Algoritme yang mudah dan efektif adalah dengan menggunakan 1 / f noise alias "noise pink" untuk memilih durasi dan not dari suatu skala. Ini terdengar seperti musik dan bisa menjadi titik awal yang baik.
Algoritme yang lebih baik adalah dengan menggunakan "rantai markov" .. memindai beberapa contoh musik dan membuat tabel probabilitas. Dalam kasus yang paling sederhana, itu akan menjadi sesuatu seperti C 20% cenderung mengikuti A. Untuk membuatnya lebih baik, lihat urutan beberapa nada terakhir, misalnya "CA B" adalah 15% kemungkinan akan diikuti oleh B, dan 4% kemungkinan akan diikuti oleh Bb, dll. Kemudian, pilih saja nada menggunakan probabilitas dari nada yang dipilih sebelumnya. Algoritma yang sangat sederhana ini memberikan hasil yang cukup bagus.
Rantai Markov untuk generasi musik
sumber
Dmitri Tymoczko memiliki beberapa ide dan contoh menarik di sini:
http://music.princeton.edu/~dmitri/whatmakesmusicsoundgood.html
sumber
Perangkat lunak saya menggunakan teori evolusi terapan untuk "menumbuhkan" musik. Prosesnya mirip dengan The Blind Watchmaker karya Richard Dawkins - MusiGenesis menambahkan elemen musik secara acak, dan kemudian pengguna memutuskan apakah akan menyimpan setiap elemen tambahan atau tidak. Idenya adalah untuk menyimpan apa yang Anda suka dan membuang apa pun yang terdengar tidak benar, dan Anda tidak perlu memiliki pelatihan musik untuk menggunakannya.
Antarmuka berhembus, tapi sudah lama - tuntut saya.
sumber
Saya selalu menyukai game Lucasarts lama yang menggunakan sistem iMuse, yang menghasilkan soundtrack yang tidak pernah berakhir dan reaktif untuk game tersebut dan sangat musikal (karena sebagian besar masih dibuat oleh seorang komposer). Anda dapat menemukan spesifikasinya (termasuk patennya) di sini: http://en.wikipedia.org/wiki/IMUSE
Nintendo tampaknya menjadi satu-satunya perusahaan yang masih menggunakan pendekatan yang mirip dengan iMuse untuk membuat atau memengaruhi musik dengan cepat.
Kecuali jika proyek Anda sangat eksperimental, saya tidak akan mengabaikan penggunaan komposer - komposer manusia sejati akan menghasilkan lebih banyak hasil musik dan dapat didengar daripada algorythm.
Bandingkan dengan menulis puisi: Anda dapat dengan mudah menghasilkan puisi yang tidak masuk akal yang terdengar sangat avant-garde, tetapi mereplikasi shakespeare dengan algorythm itu sulit, secara halus.
sumber
Sudahkah Anda melihat SoundHelix (http://www.soundhelix.com)? Ini adalah kerangka kerja Java Sumber Terbuka untuk pembuatan musik acak algoritmik yang menghasilkan musik yang cukup rapi. Anda dapat menggunakan SoundHelix sebagai aplikasi mandiri, sebagai applet yang tertanam di halaman web, sebagai applet berbasis JNLP atau Anda dapat memasukkannya ke dalam program Java Anda sendiri.
Contoh yang dihasilkan dengan SoundHelix dapat ditemukan di sini: http://www.soundhelix.com/audio-examples
sumber
Penelitian tentang generasi musik prosedural yang tidak membosankan sudah ada sejak dulu. Jelajahi edisi lama dan baru Jurnal Musik Komputer http://www.mitpressjournals.org/cmj (tidak ada nama domain sebenarnya?) Ini memiliki artikel teknis yang serius tentang penggunaan aktual untuk pengotak-atik sintesis musik, joki besi solder, penggembala bit, dan peneliti akademis. Ini adalah ulasan halus dan kain wawancara seperti beberapa majalah yang dapat Anda temukan di toko buku besar.
sumber
Topik yang besar. Anda dapat melihat aplikasi iPad saya, Belukar, atau perangkat lunak Ripple saya di morganpackard.com. Menurut pengalaman saya, sebagian besar pendekatan akademis terhadap generasi musik dinamis menghasilkan hal-hal yang terdengar, yah, akademis. Saya pikir hal-hal yang lebih sukses ditemukan di pinggiran klub / dunia elektronika. Monolake adalah pahlawan saya dalam hal ini. Hal yang sangat bisa didengar, sangat banyak dihasilkan oleh komputer. Musik saya sendiri juga tidak buruk. "Alphabet Book" karya Paul Lansky adalah contoh bagus dari musik algoritmik yang sangat bisa didengar, terutama mengingat dia seorang akademisi.
sumber
Teknik yang saya pertimbangkan adalah membuat pola musik kecil, hingga bar atau lebih. Tandai pola-pola ini dengan pengenal perasaan seperti 'kegembiraan', 'intens', dll. Saat Anda ingin menghasilkan musik untuk suatu situasi, pilih beberapa pola berdasarkan tag ini dan pilih instrumen yang ingin Anda mainkan. Berdasarkan instrumen, cari tahu cara menggabungkan pola (misalnya pada piano Anda mungkin dapat memainkan semuanya bersama-sama, tergantung pada rentang tangan, pada gitar Anda dapat memainkan not secara berurutan) dan kemudian merendernya ke PCM . Selain itu, Anda dapat mengubah kunci, mengubah kecepatan, menambahkan efek, dll.
sumber
Teknik spesifik yang Anda gambarkan adalah sesuatu yang dikerjakan Thomas Dolby sepuluh atau lima belas tahun yang lalu, meskipun sekarang saya tidak dapat mengingat apa yang dia sebut itu sehingga saya tidak dapat memberikan istilah pencarian yang baik.
Tapi lihat ini artikel Wikipedia dan ini halaman Metafilter.
sumber
Buku Algorithmic Composition adalah tur yang baik dari beberapa metode yang digunakan:
"Topik yang dibahas adalah: model markov, tata bahasa generatif, jaringan transisi, kekacauan dan kemiripan diri, algoritme genetika, automata seluler, jaringan saraf, dan kecerdasan buatan."
Ini adalah titik awal yang baik untuk topik yang luas ini, namun tidak pernah menjelaskan secara mendalam cara kerja setiap metode. Ini memberikan gambaran umum yang baik tentang masing-masing, tetapi tidak akan cukup jika Anda belum memiliki pengetahuan tentang mereka.
sumber
Kembali ke akhir 90-an, Microsoft menciptakan kontrol ActiveX yang disebut "Kontrol Musik Interaktif" yang melakukan apa yang Anda cari. Sayangnya, mereka sepertinya telah meninggalkan proyek tersebut.
sumber
Bukan apa yang Anda cari, tapi saya tahu seseorang yang melihat secara otomatis menghasilkan set DJ yang disebut Kesamaan Musik Berbasis Konten .
sumber
Jika Anda tertarik pada teori yang lebih dalam tentang bagaimana musik saling berhubungan, situs Bill Sethares memiliki beberapa hal menarik.
sumber
Saya telah mempelajari proposal proyek ini - "8.1 " dari kelompok penelitian "Teori dan praksis dalam bahasa pemrograman" dari Universitas Kopenhagen - departemen Ilmu Komputer:
Ini - seperti yang saya lihat - adalah arah yang berlawanan dari pertanyaan Anda, data yang dihasilkan - saya kira - dapat digunakan dalam beberapa contoh generasi prosedural musik.
sumber
Pendapat saya, musik generatif hanya berfungsi jika melalui proses seleksi yang ketat. David Cope, pionir musik algoritmik, akan menghabiskan berjam-jam keluaran musik dari algoritmanya (yang menurut saya sebagian besar berbasis Markov Chain) untuk memilih beberapa yang benar-benar berhasil.
Saya rasa proses seleksi ini dapat diotomatiskan dengan memodelkan karakteristik gaya musik tertentu. Misalnya, gaya "disko" akan memberikan banyak poin untuk bassline yang menampilkan bagian offbeats dan drum dengan jerat di backbeat tetapi mengurangi poin untuk harmoni yang sangat disonan.
Faktanya adalah bahwa proses komposisi musik dipenuhi dengan begitu banyak praktik idiomatik sehingga sangat sulit untuk dimodelkan tanpa pengetahuan khusus di bidangnya.
sumber
Saya telah mengerjakan modul Python untuk musik prosedural. Saya baru saja memprogram apa yang saya ketahui tentang not, tangga nada, dan konstruksi akor, lalu dapat membuatnya secara acak menghasilkan konten dari batasan tersebut. Saya yakin ada lebih banyak teori dan pola sistem seperti itu yang bisa diajarkan, terutama oleh seseorang yang lebih memahami subjek. Kemudian Anda dapat menggunakan sistem tersebut sebagai batasan untuk algoritme genetika atau pembuatan konten acak.
Anda dapat membahas penerapan saya di sini , terutama contoh prospek yang dibuat secara acak mungkin berguna bagi Anda. Seseorang dengan pemahaman yang kuat tentang progresi akor dapat membuat struktur lagu dari teknik seperti itu dan menerapkan melodi acak terbatas seperti ini di atasnya. Pengetahuan saya tentang teori musik tidak sejauh itu.
Tetapi pada dasarnya, Anda harus menyandikan teori jenis musik yang ingin Anda hasilkan, dan kemudian menggunakannya sebagai batasan untuk beberapa algoritme untuk mengeksplorasi cakupan teori tersebut secara prosedural.
sumber