Sound synthesizer menggunakan generator amplop untuk mengontrol bagaimana parameter tertentu dari suara (seperti kenyaringan keseluruhan) berubah seiring waktu. Dalam banyak synthesizer, sebuah amplop didefinisikan oleh empat parameter, seperti diwakili dalam gambar berikut dari Wikipedia :
- Attack time (A) : waktu yang dibutuhkan amplop untuk mencapai level maksimumnya, mulai dari nol, ketika tombol pertama kali ditekan.
- Decay time (D) : waktu yang dibutuhkan amplop untuk mencapai level penopang yang ditentukan.
- Sustain level (S) : level yang dipertahankan, setelah serangan awal dan pembusukan, selama kunci ditekan.
- Waktu rilis (R) : waktu yang dibutuhkan amplop untuk mencapai nol ketika kunci dilepaskan.
Tantangan
Masukkan empat parameter A, D, S, R dan plot amplop .
Parameter akan berupa nilai integer dari 0 hingga 127 .
The tingkat maksimum (mencapai pada akhir fase serangan) akan diasumsikan 127 .
The segmen horisontal di mempertahankan tingkat akan diasumsikan memiliki durasi 64 (dalam suara yang sebenarnya durasi ini tidak tetap, tetapi ditentukan oleh jumlah waktu bahwa kunci dipegang).
Format dan detail lebih lanjut
Outputnya harus berupa gambar dalam format raster atau vektor. Jika raster, garis poligonal harus menempati setidaknya 50 piksel secara vertikal.
Gambar dapat ditampilkan atau diproduksi sebagai file dalam format gambar standar. File dapat ditulis ke disk, atau kontennya dapat berupa output, baik ke STDERR atau sebagai argumen pengembalian fungsi.
Grafik hanya perlu berisi garis poligonal yang mendefinisikan amplop. Skala setiap sumbu dapat dipilih secara bebas. Elemen lain seperti garis sumbu, label numerik atau warna garis adalah opsional.
Sarana input dan format fleksibel seperti biasa. Misalnya, Anda dapat mengambil empat angka dalam urutan apa pun, atau array yang mengandungnya. Program atau fungsi dapat disediakan. Celah standar dilarang.
Kode terpendek dalam byte menang.
Uji kasus
Input dalam format [A D S R]
. Perhatikan bahwa skala berbeda di setiap gambar (sesuai dengan aturan bahwa skala dapat dipilih secara bebas)
[15 30 70 40]
[64 64 64 64]
[0 10 50 80]
[0 0 90 80]
[5 50 0 0]
[5 50 0 80]
[24 32 127 48]