作品について

媒体: PCアプリケーション
制作年: 2015年
状況: 随時Update
技術/ソフト: openFrameworks, C/C++, Xcode, Cycling74 Max7
Source Code: 未公開

音に反応して リサジュー曲線 を描くプロジェクションマッピングソフトです。

2つの異なる正弦関数 f(x) = sin(a * x) で得られる値を縦軸と横軸に取ると、「リサジュー曲線」という美しい幾何学形を描くことができます。

ピアノの十二音階は、決まったサインカーブで表すことができるのはよく知られていますが、和音をなす2つの音の正弦関数をもとにするとどんなリサジュー曲線を描けるかを実験する目的で習作をつくりました。

右面と上面は和音の構成音をあらわし、正面は両脇2つのサインカーブによって得られる値でリサジュー曲線を描いています。

鍵盤に反応するプログラムには改善の余地がありますが短三度、長三度、五度など、ことなる和音のそれぞれが、理解をの斜め上をいく個性を持った図形になることが確認できます。

制作の動機

世の中には面白い幾何学形が多く潜んでいます。それらは研究者やプログラマなど限られた人にしか知られていません。それはもったいないと思います。

優れたモチーフになりうる図形の知識は、デザインを考えたり音楽を奏でる時でさえも重要になります。こうした知名度こそ低いが美しい図形の引き出しを増やしたいために、恣意的にリサジュー曲線を使った制作をしようと考えました。

制作の過程

リサジュー曲線の描画

リサジュー曲線を描くソースコードは多くあります。中でも、Generative Design [1]という本には、リサジュー曲線をモチーフとした美しい作例が多く掲載されています。
今回はこちらのソースコードを参考にさせていただきました。
http://www.generative-gestaltung.de/M_2_2_01

音の取得

音の取得については、MIDIキーボードの打鍵によって出力されるMIDIナンバーをMax7で受け、openFrameworksアプリケーションにOSCで送信します。Max7を経由する必要はあまりないのですが、MIDIやAudio情報の前処理はMax7に委ねると便利なことが多いので今回も習慣的そうしています。
このプログラムではMIDIナンバーが9(最も低いラの音)を周期1の基準曲線[2]とし、その周波数に比例したサインカーブを描いていきます。オクターブ上だったら周期が2倍になります。

キューブへのマッピング

東急ハンズで買った木製のキューブに、3面をマッピングしています。
openFrameworksのaddonである ofxQuadWarp を使えば簡単に実現できます。
このaddonは、FBO(Frame Buffer Object)を照射したい面の数だけ用意すると、頂点を動かせる四角形の中にそのFBOの絵を出力してくれるというものです。頂点を動かすとFBOの絵に行列が乗算され歪められます。
上の動画の後半で、1台のプロジェクターから出力される画面上でマッピングする過程を掲載しています。実際にはこの角合わせの作業が根気を擁するものだったりします。

参考

[1] 以下の書籍です。ソースコードはオンライン上で公開されています。2016年2月に邦訳版も出版されるとのこと。リサジュー曲線の図形をはじめさまざまな美しい図形をソースコードとともに紹介しています。

[2] MIDIナンバーと周波数の関係は、音階と周波数の対応表(JavaScript)  が参考になります。