とても神経質そうな,絶妙な表情をしていますが,実は彼は生まれ故郷のギリシャで反政府運動に関わり,その時の闘争で左目を失っています.このことが彼の表情の印象に影響しているのだと思います.ちなみに,彼は酒に酔うと左目の義眼を人前で外して驚かせる癖があったそうです.
彼はフランス亡命後,ル・コルビジェ事務所で建築家として働きました.その後,建築家としての仕事と並行して作曲も行うようになり,オリヴィエ・メシアンの素で作曲を学ぶようになります.その際メシアンに「君は建築家だから数学を知っている.なぜそれを応用しないのか?数学を知っていれば伝統的な作曲技法の修練はあってもなくても同じではないか?」と言われ(メシアンは「トータル・セリエリズム」という非常に厳格な作曲技法を考案し,主にヨーロッパでの現代音楽の創作がシステマティックになっていくきっかけを作った作曲家の一人です.),作曲にも数学を応用するようになります.
彼のそうした作曲理論は,その後の電子音楽やコンピュータ音楽に大きな影響を与えることになります.また,彼が開発した作曲のためのコンピュータ・プログラム「UPIC」は,まだコンピュータで音響を扱うなんて発想がなかった時期に,手書きの図形から音響を生成する,非常に先駆的なプログラムでした.
あまりいい写真がなかったので,最近のUPIC
彼が自分の創作に通底する思想と論理をまとめ,彼の作曲の弟子であった高橋悠治が日本語に訳した書籍「音楽と建築」は,彼の創作のアイデアについて知ることができる格好の資料でしたが,長らく廃刊となっており,中古でしか手に入れることができませんでした.私は,神戸のとあるアートスペースの片隅の,古い芸術関連の本が雑然と並べられた本棚の中に入っているのを見たのが唯一この本を見かけた機会でした.
そんな「音楽と建築」がこの度復刊されました.
私は本文をちゃんと読んだのはこの復刊によって手に入れてからが初めてでした.彼が何を考えて数学を音楽に応用していたか,非常によくわかります.
私は別にクセナキスやクセナキス界隈とは何の関わりもないので,今回の復刊を「記念」する義理はないのですが,折角のタイミングですので,クセナキスっぽい音響構造を作り出すプログラムをMaxで作ってみました.このプログラムは,以前私がツイキャスで配信しながら作ったものを発展させたものです.
彼が数学を応用した作品の中で,初期の有名な作品はデビュー作「Metastasis」と「Pithoprakta」でしょう.これらの作品の「楽譜」が以下です.
こうした作品群で彼が行ったのは,グリッサンド(連続的に音の高さが変化する演奏法.トロンボーンによるそれが有名だろう.)する無数の音群を制御することによって複雑な音構造を浮かび上がらせることでした.それは,Metastasisの構想の中にも見ることができます.
一つ一つのグリッサンドは直線的に支持されています.こうした直線的なグリッサンドする音が様々な長さ・タイミングで重なり合うことで,曲線的な,複雑な構造を形作っています.こうした音響をMaxで作り出します.
多くの音を個別に制御するテクニックは,Maxのpoly~オブジェクトが使えます.poly~オブジェクトの使い方が今回のプログラムの鍵になります.
まずは,この構造をつくるプログラムを作ってみましょう.
まずは,poly~の中身になるパッチを作ります.上の画像を見ると,25個の異なるピッチの音が同じ時刻にスタートして,それぞれ異なる長さで同じピッチに向かってグリッサンドしています.到達地点のピッチを(今回のプログラムでは)4000Hzとすると,line~オブジェクトを使ってこのようになります.親パッチからin 1へスタート時の周波数が,in 2へグリッサンドの時間が入力されます.グリッサンドが終わると音が消えます.
このパッチがpoly~オブジェクトで呼ばれることで,同じプログラムが同時に動作することになります.
親パッチを見てみましょう.
poly~の数を25にして,先ほど作成したパッチを25個生成します.
25個生成したパッチの中で任意のパッチのインレットにデータを入力するには
target [パッチの番号(1〜n)]
というメッセージに続けてデータを入力します.
例えば,
target 10
200
という順でメッセージを送れば,パッチ(10)に200という整数を入力したことになります.上のパッチでは,グリッサンド開始時の周波数と,グリッサンド時間を入力値としていますので,これらを別々にリストとして決定して,リストの全要素をバラバラに送ると同時に(Maxのリストは一括で入力されます),それぞれの要素が入力される前に "target [パッチの番号(=1から始まるリストのインデックス)]"を挿入すれば,リストで決定した値がpoly~で複数生成したそれぞれのパッチに送れることになります.
そのようなデータの入力体系を作るのがこの部分.
Maxを使ったことがある方は,この部分の上半分,Multisliderでリストが生成されていることはだいたいお分かりだと思います.ちなみに,初期値として,0Hzから4000Hzの少し下あたりまでを線形に増やしていくようなリストをuziとthreshで自動生成しています.肝は下半分.iterとaccumが肝心です.まず,Multisliderからリストが出力されると,accumに"set 0"が送られ,accumの内部変数が0で初期化されます.(MaxのRight to Left Orderはご存知ですよね?)
次にリストがiterに入ります.iterはリストの全要素を一つずつ別のメッセージとして出力するオブジェクトです.今回は25個の浮動小数点数からなるリストを入力していますから,一回iterにリストが入るたびに25回の浮動小数点数の出力がされます.この時,accumの第2インレットに1を入力します.この入力によってaccumの内部変数が1追加されました.先ほど0で初期化したので,内部変数は1になりました.その後,accumの第1インレットにbangを入力します.これによって内部変数の値をアウトレットから出力します.
ところで,iterによって一つの浮動小数点数に分けられたデータは,既にpackに到着しています.(よく見ると,packに向かうラインの方がaccumに向かうラインよりも右側にありますね?)このタイミングで先ほど発生したbangによってaccumから内部変数の値が出力されると
[accumの内部変数] [iterによって分けられたリストの1要素]
というリストがpackから出力されます.これが"target $1,$2"を通り,$1と$2がリストのそれぞれの要素で代入されて出力されることになります.この処理はiterによってリストの要素の個数回繰り返されます.その度にaccumの内部変数には1が加算されるので,iterがリストの要素を出力する毎にtargetの後の数字が一つずつ増えていくことになるのです.
今は,グリッサンド開始時の周波数の決定を行いました.全く同様の方法で,グリッサンドの時間を決定します.
こうして作ったパッチの,"s trigger"に入力しているButtonをクリックすると
スペクトログラムで計測すると,あの画像っぽい構造が現れました.
この構造は,上の画像のようなリストの与え方をしたからです.従って,Multisliderを操作してリストの値を変更すると,現れる構造も変化します.
さて,ここで,操作できる要素を更に増やしてみましょう.以下の4つを独立して決定できるようにします.
・グリッサンド開始時の周波数
・グリッサンド終了時の周波数
・グリッサンドにかかる時間
・グリッサンドの開始時刻
これらを操作するために,poly~のパッチを以下のように変更します.これまでハードコーディングしていた上記に該当する部分をインレットからの入力値に置き換えるます.また,親パッチから送られるトリガーにdelayを挟むことで,グリッサンドの開始に独立した遅延時間が発生するようにします.
それぞれの値を先述の方法で与えるようにします.
これによって更に色々なグリッサンドの構造が作れるようになります.
クセナキスの楽譜で見そうな構造が沢山できます.
このように多くの直線を多重して曲線的な構造を浮かび上がらせることができるということは,音楽や音響に関わらず,クリエイティブ・コーディングに携わる者は改めて再確認したいことであると思います.これ自体は,曲線の接戦の傾きを求める微分そのものであると同時に,コンピュータで曲線を表現する最も基本的なテクニックです.
いかがでしょうたでしょうか?こうしたグリッサンドを多重した音響は先述のソフトウェアUPICで作ることができます.しかし,「音楽と建築」を読むと,UPICによる作曲は直感的な一方,今回取り上げたような方法の方がよりクセナキスの初期における理論を反映できるインタフェースのように思います.クセナキスは統計力学の知見から無数のグリッサンドする音群を操作するというアイデアを導入しました.それぞれの音をグリッサンドのピッチ差とグリッサンドの時間を要素とする一次元ベクトルで表現し,ピアノや一般の管楽器のようなグリッサンドしない音は開始時と終了時のピッチ差がない特殊な場合と考え,全ての音楽がこの方法で実装できるとしました.そして,この音群のベクトルの要素それぞれが確率的に決定できるという方向へ拡張されます.(この考えが彼の中期以降に増えてくる篩法を応用した作曲理論に繋がります.)