Saya sedang mengerjakan sebuah mesin untuk permainan gaya retro di C. Saya mencari perpustakaan suara yang akan menghasilkan suara chip dari kode ... Saya ingin membuat pelacak chiptune sederhana saya sendiri untuk mesin untuk membuat musik. Apakah hal semacam itu ada?
Saya juga tertarik pada perpustakaan untuk menggunakan file .nsf dalam proyek saya.
Saya menggunakan Linux untuk pengembangan.
Jawaban:
Mungkin bukan jawaban yang benar tetapi di sini ada perpustakaan berbagai mesin audio
(Gulir ke bawah ke segmen kedua untuk pustaka audio)
Setidaknya 9 dari 12 mesin menggunakan C. Sebagian besar dari mereka juga mendukung file pelacak. Yang tidak jauh berbeda dari file nsf (saya berasumsi ini adalah file musik NES).
sumber
Tentu Anda bisa, itu tidak sepele untuk membuatnya terdengar "bagus".
Saya tidak tahu bagaimana melakukannya di Linux, tetapi jika Anda dapat memainkan buffer PCM, yang harus Anda lakukan adalah mengisinya dengan apa pun yang Anda inginkan.
Jadi seandainya buffer Anda diatur untuk dimainkan dalam monaural, sampel 16-bit yang ditandatangani, pada 44100 sampel per detik, menciptakan suara A4 (sinusoidal) murni (440 Hz) semudah
Namun, suara ini mungkin sangat membosankan untuk minat Anda, jadi Anda harus melakukan beberapa hal yang lebih rumit. Secara umum, ada dua jenis sintesis suara: Aditif dan Subtraktif . Ada banyak yang lain, tetapi keduanya mungkin yang paling sederhana. Hari ini saya hanya akan berbicara tentang sintesis aditif.
Untuk sintesis aditif, Anda melakukan hal yang sama seperti yang saya lakukan di atas sana, tetapi alih-alih hanya menggunakan satu frekuensi pada satu amplitudo, Anda menambahkan beberapa gelombang bersamaan. Ini seperti menekan beberapa tombol pada piano secara bersamaan. Jadi Anda memodifikasi kode Anda agar terlihat seperti ini:
dan kemudian gunakan seperti ini:
By the way, saya mendapatkan frekuensi saya dari sini (Saya menggunakan temperamen sama , tetapi ada banyak dari lainnya laras tersedia).
Perhatikan bahwa sejauh ini saya hanya menggunakan gelombang sinus, tetapi synthesizer lama juga mendukung gelombang persegi , segitiga dan melihat , masing-masing dengan sifat suara yang menarik. Menerapkan ini sangat mudah.
Hal lain yang dapat Anda lakukan untuk menambah variasi suara yang dapat Anda buat adalah:
Intinya di sini adalah bahwa teknik-teknik itu sendiri tidak terlalu sulit, jadi Anda tidak benar-benar membutuhkan perpustakaan untuk mengabstraksikannya untuk Anda. Ini menggunakan mereka untuk membuat suara yang menarik apa yang sulit.
Satu catatan terakhir. Saat bereksperimen dengan suara seperti ini, mungkin sangat berguna untuk menyimpan data Anda ke file WAV, dan kemudian memvisualisasikannya dalam beberapa perangkat lunak seperti Audacity. Dengan begitu Anda bisa melihat apa yang Anda lakukan dengan lebih jelas.
sumber
short
sebelum Anda melemparkannya ke ashort
.Untuk efek suara chiptune, ada satu jawaban yang pasti: sfxr .
Ini adalah aplikasi mandiri yang dapat Anda gunakan untuk menghasilkan sampel, tetapi kode sumber juga tersedia jika Anda ingin mengintegrasikannya ke kode Anda.
sumber
Saya pribadi dapat merekomendasikan perpustakaan audio Blargg . Sesuatu yang mungkin menarik bagi Anda adalah Blip_Buffer- nya .
Situs Blargg memiliki beberapa synthesizer audio "retro", dan saya aktif menggunakan Game_Music_Emu untuk memutar file NSF dalam klon Mega Man yang saya tulis.
Banyak perpustakaan ditulis dalam C ++ tetapi beberapa menyediakan antarmuka C juga.
sumber