programmingmusicsound
Algorithmic symphonies from one line of code — how and why?(2011)
https://youtu.be/tCRPUv8V22o
Bytebeatは2011年にviznutがYoutube上の動画で公開し、自身のブログの解説などで広がっていった、短いプログラムでオーディオを生成する技法。
Algorithmic symphonies from one line of code — how and why?(2011)
その後、Webブラウザ上でも同様のコードを実行できる環境がいくつか誕生
HTML5 Bytebeat
Bytebeat Composer
BytebeatをNode.jsで
tips
Bytebeatは元々次のようなC言語のプログラムで作られてた。
このC言語のコードは極限まで圧縮されているのでもうちょっと丁寧に書くとこうなります(大昔のCコンパイラでない限りエラーで落とされる)。
これをLinuxの、昔なら/dev/dsp
、今ならaplay
のようなパイプで直接音声波形を流し込めるものを使って音を鳴らしていた。
macOSでやろうとするなら、ffmpeg
に付属するffplay
で次のようなコードで書ける
どうせならC言語使わずにデータを生成したいが、シェルスクリプトで直接バイナリを扱うのは死ぬほどだるい(printf
コマンドやbc
であれこれすれば不可能でもないが、結局ファイルを一度経由しないと厳しい)
ので、Node.jsでやるとこういう感じでできる
これがうまくいくのはJavascriptの整数変換処理が32bitになったりするためなのだが、詳しいことは授業資料に書いた。割愛すると3238年間を超えなければ連続再生しても大丈夫ということになるっぽい。