Saya sedang menulis program Javascript untuk membuat sinyal MIDI secara terprogram untuk musik yang dihasilkan secara prosedural yang menggunakan input eksternal untuk memodifikasi/memanipulasi suara sebagai respons terhadap perubahan di lingkungan.

Salah satu hal yang saya coba lakukan adalah mencari cara untuk memprogram sinyal analog pseudo random low frequency oscillator (LFO) seperti garis putus-putus pada gambar di bawah ini:

enter image description here

Sinyal ini akan mendorong efek MIDI seperti pitch bend atau modulasi.

Fungsi harus mengambil input nilai tunggal yang mengontrol seberapa dramatis sinyal berfluktuasi. Ketika input adalah 0, sinyal yang dihasilkan harus 0, atau garis datar. Dan ketika nilai input meningkat, sinyal harus menjadi semakin tidak menentu secara proporsional.

Saya merasa memiliki ide tentang cara menghasilkan fungsi langkah (seperti garis padat pada gambar di atas) yang mencapai tujuan tersebut, tetapi saya tidak tahu cara melakukannya "haluskan" itu (yaitu filter lolos rendah) untuk mendapatkan kurva kontinu seperti garis putus-putus. Pada akhirnya fungsi smoothed/continuous/analog itu akan diambil sampelnya, katakanlah, setiap 100 ms dan broad cast sebagai instruksi tikungan nada MIDI baru, dll.

1
davidlav 14 November 2017, 02:13

1 menjawab

Jawaban Terbaik

Saya hanya akan menggunakan perpustakaan animasi yang ada, seperti TweenJS. https://www.createjs.com/docs/tweenjs/modules/TweenJS. html Pustaka ini biasanya dimaksudkan untuk penggunaan visual, tetapi mereka juga dapat digunakan secara umum.

Belum diuji, tetapi coba sesuatu seperti ini:

const cc = {
  modwheel: 0
};
createjs.Tween.get(cc).to({modwheel: 127}, 1000);

Kemudian, cukup amati properti cc.modhweel setiap 100 md atau "bingkai" apa pun yang Anda inginkan.

Lihat juga: https://stackoverflow.com/a/13501577/362536

1
Brad 14 November 2017, 01:13