ワンライン・ミュージック
ワンライン・ミュージックとは、
ワンラインの関数で出力した数列を、
そのままオーディオデバイスに投げ入れて音楽を奏でる遊びである。
JS でのサンプル
もちろん JS でもできる。
ミニマムでこんな感じ
var DURATION = 5; var SAMPLING_RATE = 8000; play(); function f(t){ return t % 100; } function play(){ var ctx = new webkitAudioContext(); var src = ctx.createBufferSource(); var buffer = ctx.createBuffer(1, DURATION * SAMPLING_RATE, SAMPLING_RATE); var channel = buffer.getChannelData(0); var t, v; ctx.samplingRate = SAMPLING_RATE; for(t = 0; t < channel.length; t++){ v = f(t) | 0; if(v > 255) v = 255; if(v < 0) v = 0; channel[t] = v/255; } src.buffer = buffer; src.connect(ctx.destination); src.start(0); }
上記のスクリプトは、Chrome で実行すると
1 / (100 / 8000) = 80 [Hz]
ぐらいのノコギリ波が流れる。
f(t) = t % 100 の形を想像すれば分かると思う。
これをガンガン弄っていって、
音楽を作るのがワンライン・ミュージックである。
暇潰しになる他には、滅多に使わないビット演算子の優先順位を覚えられることが、メリットとして挙げられる。