ならば

音とかで遊んでいたログ

可聴化

boidsで作る音符の群れ

boidsのアルゴリズムに従って、音符を泳がした。 音符が線を通り過ぎたとき、その線に対応する高さの音が鳴る。音符は全音符、二分音符、四分音符、八分音符の四種類。wonderflで実行できる。クリックで音符を追加。 School of Musical Notes - wonderfl bui…

二重振り子を聴く

二重振り子が弦をかき鳴らすという思い付き。音階はマイナーペンタトニックスケールで、下の弦からC, E♭, F, G, B♭。一段目の振り子の錘では、二段目の振り子の錘よりも1オクターブ下の音が鳴る。少しふわふわさせたかったので重力加速度は弱めてある。 Soun…

ローレンツアトラクタを聴く

SuperColliderに取り組み始めた。できそうな範囲で遊んでみようということで、ローレンツアトラクタを使って音を鳴らす。ついでにOSCでProcessingと連携して絵も描く。 SuperColliderのプログラム。x座標が左右の定位に、y座標が音高に、z座標が音量に対応。…

ヨセフスの問題と半音階

ヨセフスの問題の設定で、円形に並ぶn人の人にそれぞれ番号(じゃなくても一意な記号ならなんでもいい)を付けておいて、円から抜けていく順にその番号を並べた列をヨセフスの順列という。順列の末尾は最後まで残る人の番号。昔同じようなこと書いたが、十二…

BAモデルの可聴化

Barabási-Albertモデル(BAモデル)は、複雑ネットワークの主要な性質のひとつである「次数分布のスケールフリー性」を持つグラフを生成するアルゴリズム。BAモデルの可視化はwonderflでやった。 ChucKを使って可聴化もやったのでここに書く。その前にBAモデ…

ジャグリングパターンの可聴化

可聴化する意義がありそうな数列をしばらく探していて、サイトスワップを見つけた。今回はサイトスワップ(vanilla siteswap)の可聴化。サイトスワップはトスジャグリングでボールを投げるパターンを表す数列。定義と性質は、ジャグリングを科学するという…

可聴化について調べた

元々音の要素がないデータやプロセスの情報を反映した音が鳴る仕組みを作れば可聴化だろうってことで、それっぽい内容のエントリをいくつか書いてきたわけだけど、学術的なことも概要くらいは知っておこうと思って可聴化についてネットで探せる範囲で調べた…

二分探索木の巡回の可聴化

ChucKは、まだ発展途上の若い言語だということもあるせいか、音響とは直接関係ない部分のライブラリの充実度がかなり低い。ファイル入出力や文字列操作といった関数群の他、リンクリストやスタック、キューなどの基本的なデータ構造もほとんど用意されていな…

ソートアルゴリズムの可聴化

Sorting Algorithm Animationsなどのサイトでは、ソートアルゴリズムの可視化の例を見ることができる。今回は可視化に倣ってソートアルゴリズムを可聴化した。聴覚化すると、情報を分かりやすく提示するという方向から外れるけど。ソートする対象は50から90…

Processing => ChucK

ChucKにはネットワーク系の機能が実装されているため、ChucK単体で使うだけでなく他のアプリケーションと連携させることもできる。今回はOSCという通信プロトコルを使って、ChucKとProcessingを連携させる。OSC(OpenSound Control)とは、音響データをネット…

MP3再生

http記法を使えばMP3ファイルの再生ができることに今さら気付いた。前年12月23日のメモを書く前にちゃんとヘルプ見れば良かった。 改めてテスト。今回のデータは以前録音していたFizzBuzzもどき。聴覚化。

関数

関数は「fun 返り値の型 名前」で定義する。 fun int sqr(int x) { return x*x; }オーバーロードも可能。なのに何故かStdでは rand(), randf() と rand2(int min, int max), rand2f(float min, float max) がわざわざ別名で実装されている。開発者が使う気な…