Ini Tantangan Mingguan # 1. Tema: Pemrosesan Audio
Tugas Anda adalah menulis sebuah program, yang menulis file audio ke disk (dalam format pilihan Anda), yang berisi kode Morse untuk 2015
, yaitu
..--- ----- .---- .....
Anda bebas memilih jenis suara apa pun untuk segmen, seperti gelombang sinus frekuensi tunggal, chord, noise, beberapa instrumen (misalnya menggunakan file MIDI), selama itu terdengar. Namun, ada beberapa kendala pada waktu:
- Segmen pendek harus berdurasi minimal 0,2 detik.
- Segmen panjang harus setidaknya 3 kali lebih panjang dari segmen pendek.
- Perpecahan antara segmen dalam digit harus sama panjang dengan segmen pendek.
- Break antara digit harus sama panjang dengan segmen panjang.
- Setiap segmen dan istirahat dapat menyimpang hingga 10% dari panjang rata-rata jenis segmen / istirahat tersebut.
- Seluruh file audio mungkin tidak lebih dari 30 detik.
Istirahat tidak perlu sepenuhnya diam, tetapi segmen Morse harus terdengar lebih keras daripada istirahat.
Perhatikan bahwa Anda harus menulis file audio. Anda tidak dapat hanya memutar suara, misalnya menggunakan bunyi bip sistem. Anda diizinkan menggunakan perpustakaan apa pun untuk menangani format file dan pembuatan audio, tetapi Anda tidak boleh menggunakan fitur bawaan untuk penyandian Morse.
Ini adalah kode golf, jadi jawaban tersingkat (dalam byte) menang.
Silakan pertimbangkan menautkan ke unggahan file audio yang dihasilkan (pada SoundCloud atau yang serupa), sehingga orang dapat memeriksa hasilnya tanpa harus menjalankan kode Anda. Jika Anda mengunggah ke SoundCloud, pastikan untuk mengaktifkan unduhan di tab Izin trek.
Jika output Anda menggunakan format file yang agak tidak umum, harap tambahkan beberapa informasi tentang cara memutarnya dan / atau mengonversinya ke format yang lebih umum dan mengunggahnya.
Contoh lagu
Ini adalah trek contoh yang dibuat secara manual yang sesuai dengan spesifikasi dan menggunakan derau untuk segmen Morse (kebisingan latar belakang mikrofon, tepatnya). Berikut ini tautan ke SoundCloud jika pemutar tertanam tidak berfungsi untuk Anda.
Detail Hadiah
Saya akan memberikan hadiah untuk pengiriman terpendek dalam bahasa pemrograman audio , yaitu bahasa yang dirancang untuk mensintesis suara. Daftar itu tidak lengkap, jadi silakan gunakan bahasa pemrograman audio yang lain, jika Anda mengetahuinya. Jika Anda tidak yakin apakah beberapa bahasa yang ingin Anda gunakan mengklasifikasikan sebagai bahasa pemrograman audio, beri tahu saya di komentar atau dalam obrolan , dan kami dapat mendiskusikannya.
Perhatikan bahwa kiriman Anda masih harus mematuhi semua aturan - khususnya, ia harus menulis file, yang mungkin tidak dapat dilakukan dalam semua bahasa pemrograman audio. Misalnya, sejauh yang saya tahu, gibber hanya dapat memutar suara dan tidak menyimpannya ke file.