ワンライン・ミュージック

ワンライン・ミュージックとは、

ワンラインの関数で出力した数列を、
そのままオーディオデバイスに投げ入れて音楽を奏でる遊びである。

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 の形を想像すれば分かると思う。

これをガンガン弄っていって、
音楽を作るのがワンライン・ミュージックである。

暇潰しになる他には、滅多に使わないビット演算子の優先順位を覚えられることが、メリットとして挙げられる。

参考動画