Apa yang perlu diketahui untuk membangun synthesizer perangkat lunak?

19

Bagi seseorang yang memiliki pengalaman dalam pengembangan perangkat lunak, mencintai synths dan mengetahui dasar-dasar representasi audio digital, apa langkah pertama yang harus ia ikuti untuk memprogram synthesizer musik, dari segi DSP?

vemv
sumber

Jawaban:

17

Dapatkan Sintesis Suara Nyata untuk Aplikasi Interaktif , dan unduh Synthesis Toolkit . Itu akan memberi Anda perkenalan praktis dan kode sumber berkualitas untuk sebagian besar metode sintesis digital yang digunakan. Kemudian pilih metode apa pun yang Anda anggap paling menarik, dan mulailah memodifikasi kode STK yang sesuai untuk melakukan apa yang Anda inginkan. Kemudian cobalah membangun sesuatu yang serupa dari awal.

Selain itu, seperti yang disarankan hotpaw2 , apapun dari JOS juga merupakan bahan pengantar yang bagus. Secara khusus, Pengantar Filter Digital dengan Aplikasi Audio dan Matematika dari Transformasi Fourier Diskrit keduanya dimulai dari dasar-dasar, dan jangan menganggap banyak latar belakang.

Dari perspektif filter / efek digital, titik awal yang baik lainnya adalah untuk memeriksa Faust . Anda bahkan tidak perlu mempelajari bahasa pemrosesan sinyal diagram blok, Anda cukup menggunakan contoh untuk membuang VST, LADSPA, dll. Kode templat sebagai cara cepat menjalankan sesuatu [yang kemudian dapat Anda modifikasi].

Yang sedang berkata, bahkan lebih mudah untuk memulai dengan rendering suara, yang pada dasarnya adalah hal yang sama, tetapi tanpa khawatir tentang operasi real-time atau interaktivitas. Anda hanya menyimpan file wav ke disk. Ini adalah cara yang bagus untuk bereksperimen dengan teknik-teknik baru sebelum melalui kesulitan membuat mereka berjalan dengan cepat.

datageist
sumber
Jawaban sempurna - itu mencakup jumlah yang sangat seimbang. Terima kasih!
vemv
6

Saya akan membaca buku pengantar tentang DSP plus beberapa buku tentang masalah musik komputer (Amazon dan beberapa toko buku lain daftar). Ada juga banyak materi pelajaran dari Stanford tentang DSP dan sintesis suara. Buku-buku tentang sistem pendengaran manusia dan psychoacoustics mungkin juga membantu.

hotpaw2
sumber
5

Pertama, Anda perlu memutuskan jenis synthesizer yang ingin Anda buat - aditif, FM, berbasis sampel, dll. Anda juga perlu memutuskan apakah Anda ingin meniru beberapa jenis synthesizer analog yang ada atau hanya mendesain sendiri.

Sisanya cukup mudah - Anda hanya perlu menerapkan berbagai blok penyusun synthesizer (mis. Osilator, filter, generator kebisingan, pembentuk amplop, dll) dalam perangkat lunak dan kemudian menerapkan cara "menghubungkan" ini bersama-sama dan mengendalikan parameternya.

Lihat buku Hal Chamberlin, Aplikasi Musik Mikroprosesor , yang merupakan pengantar yang bagus untuk banyak dasar-dasarnya.

Paul R
sumber
4

Saya cukup terkejut belum ada yang menyebutkan SynthMaker . Ini sangat mudah digunakan, dan meskipun membuatnya sulit untuk pergi tingkat rendah (pastikan untuk menggunakan mode pengembang ), Anda dapat belajar banyak tentang arsitektur Synthesizer dengannya, dan juga tentang DSP umum. Dan Anda benar-benar dapat memanfaatkan hal-hal yang dibangun dengannya, pada kenyataannya, saya menggunakannya untuk membangun hampir semua plugin saya.

leftaroundabout
sumber
Sebagai pengembang perangkat lunak saya selalu enggan untuk penyihir tapi saya yakin DSP adalah dunia yang dalam sehingga SynthMaker bisa berguna. Selain itu, beberapa teman telah memiliki pengalaman yang baik dengannya :)
vemv
Saya akan menyebutkan SynthMaker sendiri. Ini program yang bagus.
Matt M.
4

Seperti yang dikatakan beberapa kontributor lain, primer yang baik pada DSP adalah suatu keharusan. Ini adalah buku yang bagus> http://www.dspguide.com/ dan penulisnya dengan ramah menyediakan unduhan PDF lengkap dan gratis. Buku kursus teknologi musik umum lainnya yang memberikan pandangan tingkat tinggi yang baik dari berbagai teknik sintesis adalah> http://www.amazon.com/Computer-Music-Tutorial-Curtis-Roads/dp/0262680823 . Saya juga akan mengulangi apa yang disarankan oleh kontributor sebelumnya, Synthmaker, yang merupakan lingkungan pengembangan visual yang sangat nyaman untuk mengembangkan plugin VST. Akhirnya, jika Anda hanya ingin bereksperimen tanpa merenungkannya, Anda bisa mencoba menggunakan Csound yang merupakan bahasa pemrograman yang dirancang khusus untuk sintesis suara.

Dan Barry
sumber
2

Saya hanya ingin berpadu karena sebagian besar jawaban fokus pada masalah DSP. Jika Anda tidak menggunakan sistem desain blok seperti SynthMaker, Anda akan menghabiskan banyak waktu pengembangan dalam berurusan dengan manajemen suara. Jika Anda menulis plugin instrumen VSTi dari awal, kurva pembelajaran jauh lebih lama daripada untuk plugin efek. Anda harus mengelola setiap objek catatan, memutuskan apa yang terjadi ketika ada 20 catatan tentang apakah DSP Anda hanya cukup cepat untuk 16 suara, menanggapi lengkungan nada, portamento, modulasi, dll. Ini bukan tugas yang mudah dan itu sebabnya saya sangat merekomendasikan mulai dengan Buzz atau SynthMaker, dan gulung sendiri ketika Anda akhirnya menemukan tembok.

Matt M.
sumber