Apa yang PC Speaker mampu lakukan

Dikenal sekarang sebagai "speaker sistem," atau sekadar "tweeter," Speaker PC lahir pada tahun 1981 dengan komputer pribadi IBM pertama. Pewaris beberapa generasi komputer besar untuk bisnis serius, sejak lahir ia hanya dimaksudkan untuk memberikan sinyal sistem yang paling sederhana, dan tidak dapat membuktikan dirinya secara memadai dalam mencetak program hiburan yang mendominasi pasar dalam negeri. Sangat kalah dengan chip suara dari sistem permainan khusus, menghilang dalam bayang-bayang kartu suara canggih segera muncul, itu didukung oleh banyak pengembang pada prinsip residual - sebagai pilihan yang menghasilkan setidaknya beberapa suara tanpa adanya alternatif yang lebih baik. Dengan pengecualian langka, versi melodi yang disederhanakan secara kasar dan sepenuhnya bersuara tunggal, yang semula dikomposisikan untuk perangkat yang lebih kuat, dimainkan melalui speaker.

Album musik System Beeps ditulis untuk PC Speaker menggunakan teknik dasar yang sama dari gim-gim lama, dan menurut formula khas kreativitas komputer-dekat-retro-komputer retro, ia ditujukan untuk mengungkapkan selama bertahun-tahun potensi yang belum dieksplorasi dari perangkat suara paling sederhana ini. Sebenarnya, Anda dapat mendengarkan hasilnya dan membuat pendapat tentang kesuksesan acara ini di Bandcamp atau dalam video di bawah ini, dan teks selanjutnya masuk lebih dalam ke perangkat pembicara, sejarah proyek dan cara-cara untuk mencapai hasil yang sama bagi mereka yang ingin tahu lebih banyak.


Speaker PC


Secara teknis, pengeras suara adalah pengeras suara kecil atau piezo emitor, yang dikendalikan langsung oleh salah satu saluran pengatur waktu 8253, membagi frekuensi jam input 1,19 MHz dengan nilai 16-bit yang ditetapkan oleh program. Untuk mendapatkan suara, mode penghitungan digunakan, di mana timer menghasilkan berliku-liku, yaitu, gelombang persegi. Ini kecil, tapi masih selangkah lebih maju dibandingkan dengan suara komputer sebelumnya atau anggaran seperti Apple II dan ZX Spectrum , di mana speaker dihubungkan hanya ke port I / O bit tunggal, dan prosesor harus berurusan dengan generasi suara. Menggunakan saluran pengatur waktu memungkinkan prosesor untuk hanya memilih nada yang diinginkan dan terus melakukan hal-hal lain. Namun, prosesor ini dapat secara terprogram mensintesis suara-suara dari berbagai alam dan polifoni sejati. Speaker PC tidak bisa terdengar lebih keras atau lebih tenang, lebih lembut atau lebih cerah. Semua yang ia mampu tanpa intervensi prosesor konstan adalah mencicit atau tidak mencicit dengan nada yang diberikan dengan timbre yang tidak berubah sama.

Saat memainkan efek suara atau musik, prosesor memperbarui keadaan speaker - menghidupkan dan mematikan suara dan mengubah nada - pada beberapa interval. Biasanya, perubahan ini terjadi pada interupsi dari saluran nol dari pengatur waktu sistem yang sama. Ini adalah standar 18.2 Hz, tetapi game sering mengubah nilai ini ke atas, dalam kisaran 30 hingga 200 Hz, tergantung pada game.

Rentang frekuensi efektif yang tersedia untuk speaker adalah sekitar 100..2000 hertz. Meskipun frekuensi lain dapat diatur, berbagai masalah dimulai di luar rentang yang ditentukan. Pertama, speaker yang digunakan sendiri tidak mereproduksi frekuensi ini dengan baik. Kedua, di atas 2000 Hz, penyimpangan nyata dari frekuensi yang mungkin dari frekuensi catatan dimulai, dan ketika frekuensi suara turun di bawah frekuensi memperbarui keadaan speaker, pembaruan mulai bekerja terlambat - timer tidak memperbarui pembagi frekuensi sampai periode penghitungan dengan pembagi sebelumnya berakhir. .

Polifoni satu suara


Karena pembicara hanya mampu mereproduksi satu saluran suara atau "suara", yaitu, hanya satu frekuensi pada satu waktu, dan ini sangat kecil untuk keperluan musik, programmer dan penulis musik telah menemukan cara untuk mendapatkan polifoni imajiner atau nyata. Tiga pendekatan utama dapat dibedakan.

Pada pendekatan pertama, speaker menghasilkan suara seperti biasa, pemutar musik memperbarui frekuensi suara dengan timer dengan frekuensi tertentu dan hampir tidak memuat prosesor. Tetapi pada saat yang sama, dua atau tiga saluran virtual dengan bagian yang berbeda diputar secara bersamaan, dan nilai-nilai frekuensi dan suara on / off secara bergantian dikeluarkan dari mereka ke speaker asli di setiap pembaruan. Misalnya, dengan dua saluran dalam pembaruan pertama, suara dihasilkan dari saluran virtual pertama, dan berikutnya - dari yang kedua. Polifoni juga diterapkan di permainan Lotus III dan Xenon 2 . Karena sering satu saluran virtual memainkan bagian bass, dan melodi lain, dan bagian-bagian ini berhenti, ternyata bolak-balik catatan yang berjauhan, atau bolak-balik catatan dan keheningan, yang mengarah pada keretakan yang konstan, tidak menyenangkan bagi telinga. Anda dapat menguranginya dengan menolak jeda di beberapa bagian, seperti di Golden Axe , yang secara signifikan memperburuk cara ekspresif (jeda dalam musik sama pentingnya dengan catatan), atau dengan menonaktifkan rotasi saluran ketika ada jeda di salah satunya, yang memberikan suara lebih jelas dari not tunggal, seperti dalam Stunts .

Pendekatan kedua dapat diamati dalam permainan Lucas Art , di mana kualitas versi speaker dari iringan musik secara tradisional lebih diperhatikan. Sebagai aturan, mereka melodi terutama bersuara satu dengan memasukkan bass yang jarang dan elemen-elemen berirama yang terpisah dalam waktu, terganggu oleh suara yang sangat pendek dan tersentak-sentak dari bagian saluran saluran tambahan kedua, misalnya arpeggio atau drum. Dengan kata lain, saluran tidak bergantian terus-menerus, tetapi hanya pada waktu singkat ketika suara kedua menenggelamkan yang pertama. Contohnya bisa didengar di game Monkey Island , Loom , Indiana Jones , dan mungkin pengaturan paling canggih di Zak McKracken dan Alien Mindbenders . Ini menciptakan ilusi polifoni pendengaran yang lebih meyakinkan dan menyenangkan, meskipun agak terbatas.

Pada pendekatan ketiga, speaker tidak menghasilkan suara dengan sendirinya, tetapi digunakan sebagai digital-to-analog coder di mana suara atau digitalisasi yang diprogram oleh prosesor direproduksi. Proses ini membutuhkan sumber daya komputasi yang signifikan, hampir sepenuhnya memuat 8086 biasa, sehingga metode ini telah mendapatkan popularitas dengan distribusi 80386. Kualitas suara yang dimainkan dengan cara ini rendah dan secara objektif lebih rendah daripada Covox buatan sendiri yang sederhana dari segelintir resistor, tetapi pada saat itu merupakan pencapaian yang mengesankan, oleh satu di antaranya, RealSound , bahkan paten diajukan dan teknologi disublisensikan.

Mengubah speaker menjadi DAC dapat dilakukan dengan hanya menyalakan / mematikan suara dengan akun terlarang, yang memberikan DAC 1-bit paling sederhana, atau menggunakan saluran suara timer untuk menghasilkan pulsa pendek dengan panjang berbeda pada frekuensi yang diatur oleh timer sistem (PWM), yang mengubahnya menjadi yang lebih baik 6-bit DAC. Opsi pertama dapat didengar di musik multi-channel di game Fantasy World Dizzy dan Hard Drivin , yang kedua lebih sering digunakan untuk memainkan musik berdasarkan sampel, misalnya, di Pinball Dreams . Itu juga digunakan dalam proyek-proyek menghibur seperti di masa lalu seperti TEMU dan VSB - emulator perangkat lunak dari chip suara tiga-channel Tandy dan bagian digital dari Sound Blaster , memungkinkan tanpa adanya perangkat ini untuk mengeluarkan suara yang diinginkan melalui speaker (membutuhkan 386SX dan lebih tinggi).

Album dan kisah penciptaan


Awalnya, saya tidak punya rencana untuk membuat album musik. Ada pencarian kreatif untuk gambar audiovisual untuk proyek game dengan gaya untuk game pseudografis era XT, dan untuk gambar autentik maksimum, muncul ide untuk menulis bukan hanya gaya, tetapi musik benar-benar mungkin pada PC Speaker , formula musik klasik berikut dari game 8-bit - trek melingkar yang bertahan sekitar menit. Saya tidak ingin menggunakan suara digital atau sintesis perangkat lunak, karena hasilnya tidak akan sesuai dengan semangat zaman ini, dan tidak akan memiliki karakter khusus. Melodi satu-suara telah menjadi topik yang menarik bagi saya sejak zaman ZX Spectrum dan kenalan saya dengan permainan Ping Pong , Stardust , Score 3020 . Dan karena ada kasus seperti itu, saya ingin mencoba menulis hanya musik satu suara, tetapi untuk mendapatkan hasil yang tidak biasa karena pengaturan - tantangan yang menarik bagi komposer.

Bekerja pada musik terbawa lebih dari pekerjaan pada game. Dalam proses membakar ide, plugin PCSST VSTi dikembangkan dan diterbitkan, beberapa sketsa melodi dan versi sampul uji coba trek lama dibuat untuk mengembangkan teknik bekerja dengan pengaturan satu suara dan menemukan solusi umum untuk suara. Kemudian menjadi jelas bahwa hasilnya masih tidak sesuai dengan visi proyek game, dan proyek itu sendiri secara bertahap pergi ke meja. Tetapi materi musik tetap ada, dan potensi yang didengar menyarankan bahwa akan menyenangkan untuk dengan cepat mengaturnya sebagai kumpulan kecil lagu-lagu terpisah untuk MS-DOS , setidaknya sebagai demonstrasi kemampuan plugin.

Itu tidak berhasil dengan cepat, masalah berlarut-larut, beberapa lagu tumbuh menjadi beberapa lusinan, kumpulan melodi acak berevolusi menjadi album tematik, rencana berubah, tenggat waktu bergeser. Akibatnya, penyelesaian gagasan itu membutuhkan waktu satu setengah tahun, dari Juli 2017 hingga Januari 2019. Selama waktu ini, saya berhasil membuat AONDEMO dan menulis trek untuk itu (suara besi AON hampir mengulangi PC Speaker ), serta berpartisipasi dalam pengembangan kode suara dan utilitas untuk game Planet X3 , yang juga termasuk trek pertama yang ditulis untuk koleksi sebagai trek judul.

Penyelesaian proyek terus-menerus ditunda, semakin banyak lagu ditambahkan ke sana sampai semua ide awal dan sketsa benar-benar habis. Dalam bentuk akhir, album ini menyertakan 23 lagu, dibagi menjadi tiga kelompok.

Sisi A berisi 16 trek utama, kurang lebih terhubung dengan tema dan suara yang sama. Sebagian besar, mereka dibuat khusus untuk album, dari awal atau berdasarkan bahan lama yang bekerja dengan baik untuk pengaturan satu suara. Prinsip seleksi dalam grup ini adalah orisinal dan lebih sukses, menurut saya, pengaturan dalam batasan yang dipilih, dibandingkan dengan trek lain.

Side B termasuk 6 lagu, yang dianggap kurang berhasil, yang merupakan versi sampul dari karya lama saya untuk platform lain, atau didasarkan pada materi lama yang dikerjakan, yang awalnya menggunakan format yang sama sekali berbeda - dari modul XM hingga lagu pop-punk. Lagu itu, yang sudah menyala di Planet X3 , juga disertakan di sini.

Side X menyertakan trek dari AONDEMO dengan modifikasi minimal. Pemisahan seperti itu dilakukan sebagai lelucon humor.

Album itu sendiri dibuat dalam bentuk program pemutar untuk MS-DOS 3.3 dan lebih tinggi, yang akan berjalan pada IBM PC XT dengan setidaknya 256KB RAM dan adaptor video CGA . Karena kartu CGA asli tunduk pada apa yang disebut "salju", artefak visual ketika mencoba memperbarui layar saat berkas bergerak di sepanjang raster, program disajikan dalam dua versi - sbx.com tanpa efek penganalisa spektrum, tetapi juga tanpa salju, dan sb.com dengan itu efek. Untuk hasil analisa yang lebih halus, diinginkan untuk memiliki prosesor yang lebih kuat. Tentu saja, komputer yang lebih modern juga akan berfungsi, misalnya, dengan mengunduh FreeDOS dari USB , serta meniru DosBox .

Komponen musik


Album ini tidak menggunakan trik perangkat lunak apa pun, seperti mensintesis suara oleh prosesor dan menggunakan speaker sebagai DAC. Teknologi ini adalah yang paling tradisional - gelombang persegi monofonik ketat yang dihasilkan oleh pengatur waktu sistem, dengan memperbarui nada dengan frekuensi yang relatif besar, tetapi tidak di luar frekuensi 120 Hz, yang cukup mampu dengan XT klasik dan menyisakan cukup waktu prosesor untuk melakukan tugas-tugas lain selain bermain musik.

Seluruh rahasianya ada dalam pendekatan khusus untuk menulis melodi dan pengaturan. Di sini, pengalaman sebelumnya di berbagai bidang terkait banyak membantu - pengalaman menulis chiptune klasik untuk chip suara di masa lalu, di mana Anda sering harus menggabungkan beberapa bagian dalam satu saluran dengan metode bergantian dan tumpang tindih; pengalaman dalam mengembangkan mesin suara untuk game di komputer lama, di mana efek suara meminjam saluran dari musik, menenggelamkannya; serta pengalaman menyusun musik asli untuk drive. Ternyata kemudian, pada kenyataannya, saya mengembangkan pendekatan untuk musik pembicara yang digunakan oleh Lucas Art , meskipun pada saat saya mulai saya hanya mendengar tema dari Monkey Island .

Salah satu masalah menarik yang perlu diselesaikan hampir di awal pekerjaan adalah drum dan instrumen perkusi. Dalam chiptune, mereka biasanya dibuat menggunakan saluran noise, tetapi tidak ada kemungkinan kehilangan noise pada speaker pada kecepatan refresh dari urutan puluhan hingga ratusan hertz.

Tendangan bass dan tom bekerja dengan baik tanpa noise, dalam bentuk slide sederhana pada kecepatan dan durasi yang berbeda - tendangan lebih cepat dan lebih pendek dari nada rendah, nada lebih lambat dan lebih asli dari nada tinggi. Tetapi instrumen perkusi utama, drum kecil (yang berfungsi), dalam bentuk slide sederhana, tidak meyakinkan dan tidak memotong campuran yang dimuat dengan elemen lain. Di sini triknya berhasil, sering ditemukan dalam mensimulasikan snare drum pada SID dan AY-3-8910 - bisu jangka pendek di awal slide, menciptakan efek pecahan. Ini membuat suara sangat berbeda dari instrumen perkusi lainnya, dan juga meningkatkan visibilitas drum dalam campuran. Ini terutama dimanifestasikan bersama dengan karakteristik resonansi dari seorang pembicara nyata.

Karena kurangnya kebisingan, saya harus meninggalkan pembenci. Untuk suara yang lebih bervariasi dan menarik, instrumen drum berbeda di antara trek. Di suatu tempat mereka lebih lama, di suatu tempat tiba-tiba, mereka terdengar lebih tinggi atau lebih rendah, kadang-kadang ada elemen tambahan.

Dalam proses mengerjakan musik, teknik universal telah dikembangkan yang cocok untuk menulis pengaturan monofonik untuk perangkat monofonik yang tidak memiliki kontrol volume, apakah itu kartu musik, mesin CNC atau kumparan Tesla. Diantaranya adalah:

  • Fitur pendengaran manusia ketika suara yang diduga lebih keras menutupi suara yang lebih tenang. Misalnya, ketukan drum atau nada melodi sentral - mereka mengalihkan perhatian dan membuat hilangnya bagian-bagian lain dalam jangka pendek menjadi tidak menarik.
  • Pengaturan di mana ada cukup jeda di antara catatan. Ini terutama berlaku untuk bagian pengantar. Pada saat-saat ini, komponen-komponennya jelas terdengar secara terpisah dan mendapatkan kesempatan untuk diingat, sehingga selama pengembangan lintasan, ketika susunan menjadi lebih padat, otak terus mengenali keberadaan elemen-elemen ini, bahkan jika mereka menjadi hampir tidak terdengar dalam campuran.
  • Komposisi melodi di mana sebagian besar not jatuh pada bagian yang lemah, serta offset awal not relatif terhadap kisi meter. Ini memungkinkan nada melodi untuk mengambil jeda di iringan, sehingga mengurangi tumpang tindih bagian. Secara khusus, ini memungkinkan Anda untuk memenangkan sedikit ruang untuk nada bagian bass, yang penting untuk mendapatkan bagian yang kuat. Ini memberikan melodi sinkronisasi yang kuat, menciptakan perasaan funkiness, yang bermanfaat bagi minat mereka.
  • Arpeggio chiptune biasa pada kecepatan yang berbeda, termasuk arpeggio two-note yang sangat cepat pada 120 Hz. Variasi dalam kecepatan memungkinkan Anda untuk membuat elemen pengaturan dengan suara yang berbeda, yang banyak membantu dalam ketiadaan sarana ekspresif timbre - setelah semua, semua catatan memiliki suara gelombang persegi yang sama.
  • Diulang jeda dalam suara yang diperluas, misalnya, dalam instrumen solo, di mana saluran virtual lainnya didengar. Sebagai aturan, instrumen tersebut dimulai dengan suara terus menerus, kemudian jeda muncul dan frekuensi dan panjangnya secara bertahap meningkat, yang merupakan semacam imitasi volume jatuh.
  • Variasi dalam durasi catatan, termasuk catatan yang sangat singkat, untuk mensimulasikan perbedaan volume. Ini digunakan untuk menekankan riak di bagian bass, di mana nada yang jatuh pada beat yang kuat memiliki durasi yang lebih lama, dan juga untuk membuat efek gema ketika bagian dengan nada dengan durasi yang sama menggema sendiri, tetapi dengan nada yang durasinya jauh lebih pendek.



Komponen teknis


Poin kunci lain dalam pengerjaan album ini adalah penggunaan alat-alat modern yang membuatnya jauh lebih nyaman dan efektif. Ini adalah studio digital Reaper modern , yang akrab bagi saya (program yang mirip dengan FL Studio , Cubase dan sejenisnya) dan satu set plugin VST yang dikembangkan sendiri.



Pendekatan semacam itu bersifat eksperimental, sama sekali tidak konvensional untuk membuat chip-tuner sejati, yaitu musik yang dimaksudkan untuk dimainkan pada perangkat nyata - biasanya untuk tujuan ini program pelacak khusus atau isian manual data musik digunakan. Tentu saja, hasil yang sama dapat diperoleh dengan cara yang lebih klasik (yang dilakukan untuk Planet X3 ), tetapi ini membutuhkan lebih banyak upaya dan gangguan rutin dari proses kreatif ke poin teknis murni.


Khusus untuk membuat musik pengeras suara, PCSPE plugin VSTi dikembangkan. Ini mengemulasi perangkat keras PC Speaker , memungkinkan Anda untuk segera mendengar hasil yang mendekati nyata, dan juga menerapkan sistem instrumen chiptune, mirip dengan yang digunakan pada pelacak untuk berbagai chip suara.Amplop volume virtual (prioritas), arpeggio, dan perubahan nada ditentukan sebagai baris teks dengan format yang sangat sederhana yang mengingatkan pada bahasa pemrograman musik MML (relatif terhadap baris huruf dalam pernyataan MAINKAN dalam BASIC ). Dengan menggunakan amplop ini, Anda dapat mengatur, misalnya, berbagai bunyi instrumen perkusi, atau instrumen solo dengan getaran yang meningkat secara bertahap.

Tetapi tugas utama plugin adalah untuk secara otomatis mengurangi beberapa input MIDI-Jejak dengan bagian yang berbeda ke trek monofonik akhir. Volume instrumen virtual yang disebutkan adalah dasar dari sistem prioritas. Pada satu titik waktu (periode pembaruan status speaker), hanya instrumen dengan volume arus tertinggi yang selalu bersuara. Sebagai contoh, instrumen bass memiliki volume 2, lagu memiliki volume 6, dan drum memiliki volume 8 - yang berarti bahwa nada melodi akan meredam nada bass, dan drum akan meredam keduanya. Dengan demikian, beberapa bagian musik yang terdengar bersamaan dikurangi menjadi satu saluran speaker.

Plugin ini memiliki fungsi ekspor untuk penggunaan musik lebih lanjut dalam program nyata. Prinsip log digunakan: plug-in selalu tahu frekuensi apa yang dikeluarkan untuk speaker yang ditiru pada setiap saat, dan berapa banyak waktu yang berlalu di antara perubahannya. Saat Anda mengaktifkan fungsi ekspor dan memutar trek dari awal hingga akhir, data ini direkam secara real time dalam file format yang dipilih. Selanjutnya, untuk memutar musik, cukup dengan mengambil data ini dari file dan output ke speaker nyata dengan penundaan yang diperlukan. Arpeggio

chiptune yang khas dapat dibuat di PCSPEdengan cara klasik, sesuai dengan amplop yang menetapkan urutan perpindahan dalam semi-relatif terhadap nada dasar. Tetapi ini membutuhkan instrumen yang berpindah secara konstan dan mengingat korespondensi antara instrumen dan akord yang dihasilkan. Melakukan ini dalam DAW modern cukup merepotkan.

Cara yang jauh lebih nyaman diterapkan oleh plugin VSTi saya yang lain - arpeggiator ChipArp , yang dirancang khusus untuk menulis chiptune dan stylization. Secara otomatis mengkonversi akord polifonik tradisional dari jalur input MIDI ke arpeggio dengan parameter yang ditentukan dalam jalur MIDI keluaran , dan melakukannya dengan cepat - Anda dapat memainkan akor pada MIDI-Keyboard dan segera mendengar arpeggio. Tidak seperti arpeggiator untuk musik elektronik modern, yang terus-menerus memulai ulang nada dari awal, plugin ini menerapkan arpeggio dalam bentuk pita pitch relatif terhadap nada terendah dari sebuah chord. Dengan demikian, arpeggio tidak melanggar suara instrumen yang diperpanjang. Agar plugin ini berfungsi dengan baik, diperlukan dukungan untuk menginstal berbagai band dan respons instan ke band di plugin synthesizer yang digunakan, yang tidak umum, tetapi semua synthesizer saya mendukung ini. Emulator tipe

PCSPE dan DosBoxMereka menghasilkan gelombang persegi ideal, berbeda secara signifikan dalam suara dari perangkat nyata. Speaker sistem yang kecil memiliki resonansi yang kuat dan distorsi respons frekuensi yang menekankan transien, yaitu saat-saat ketika suara dihidupkan atau dimatikan atau perubahan frekuensi yang tajam. Secara khusus, ini membuat drum pada penutur asli jauh lebih jelas dalam campuran, mis. "Meninju." Untuk mengontrol dan membalikkan fitur ini untuk kepentingan pengaturan, kami menggunakan plug-in NadIR gratis dan pulsa yang direkam sendiri dari beberapa speaker kecil - mirip dengan bagaimana pulsa dari lemari gitar nyata digunakan untuk rekaman digital gitar.

Material


Proyek ini diterbitkan di bawah lisensi CC-BY terbuka , termasuk musik itu sendiri, sumber pemain dan proyek semua trek untuk Reaper. Dengan demikian, siapa pun bebas untuk membuat produk turunan apa pun, baik berkenaan dengan komponen musik dan kode. Semua alat yang digunakan dalam pengembangan juga tersedia bersama dengan sumbernya:

Program pemutar dengan musik
Sumber program dan proyek untuk Reaper
plug-in
PCSPE dengan sumber ChipArp plug-in dengan sumber Pulsa speaker

Source: https://habr.com/ru/post/id438448/


All Articles