「Risset Rhythm」 からの発展に向けて
2021年5月 長嶋 洋一
概要
ピッチに関する有名な錯聴の「Shepard Tone」をJean-Claude Rissetがリズムに拡張した錯聴である「Risset Rhythm」について検討・実験した内容を 「Risset Rhythm」 温故知新 として公開し、2020年の夏〜秋に、 情報処理学会音楽情報科学研究会 および 日本音楽知覚認知学会大会 にて発表した。 その最後の第13章では「Real Time Risset Rhythm Generator」までMax8による実験・試作を進めたが、ここではその先として、「リアルタイムに変容するRisset Rhythm音楽」を目指して、第14章から検討を進めた。第14章 サンプリングメモリのLoop再生
第13章の「Real Time Risset Rhythm Generator」では、無限加速/無限減速するループのRisset Rhythmを生成するための波形メモリとして、最初から決まった長さの領域を確保したものを前提として、それをRisset Rhythm化して再生(生成)しつつ、さらにリズムを分割するポイントに打楽器の音響サンプルをリアルタイムに貼り込むことで、ライヴに変容しつつ繰り返すRisset Rhythmを生成した。 これは単純な固定ループサウンドに比べて大きな自由度を持っているものの、しかし「ループ時間の枠組み」は固定されているという制約があった。 自由なImprovisational Interactive Live Computer MusicのプラットフォームとしてRisset Rhythmを使うとすれば、前章の「Real Time Risset Rhythm Generator」という枠組みを超越して、いわば「Live Sampling Risset Rhythm」というものを追求していく必要がある。
上のMaxパッチ「Risset_025.maxpat」は、第13章のパッチ「Risset_024.maxpat」の枠組みを継承しつつ、その波形メモリにサウンドファイルを読み込んだり、「peek~」を使ってメモリの一部を書き換えたりする実験の様子である。 ここで露呈したのは、固定的な波形メモリでは自由なサンブリングと共存できないという問題点であり、このパッチは途中経過の実験として過ぎ去っていった。 ただし実験する中で発見したのは、波形メモリ「biffer~」に対して、サウンドファイルの読み込みの「read」コマンドでは冒頭部分から書き換える(はみ出た部分は暖かく無視される)のに対して、「replace」コマンドで読み込むと、波形メモリ「biffer~」が対応してリサイズされる(→metabarも変更できる)、というノウハウである。
上のMaxパッチ「Risset_026.maxpat」は、とりあえずRisset Rhythm化するための波形メモリは一定サイズに固定しつつ、ライヴ・サンプリングした波形から「peek~」を使って一部をライヴに書き換える・・・というような実験の模様である。 しかしこの方法は、サウンド素材としてドラム音でなくサンプル音を使用するとしても、第13章の「Real Time Risset Rhythm Generator」とほとんど変わらない印象があり、せっかくのRisset Rhythmを「面白いサウンド→面白い音楽」に発展させるためのplatformに・・・という目的にはまったく不足するという印象となった。
上のMaxパッチ「Risset_027.maxpat」は、それならば刻々とどんどんサンプリングしてしまおう・・・と実験したものであるが、結論から言えば失敗であった。 このパッチでは中央の「metro 3000」オブジェクトによって、時間幅はランダムに変化するものの、刻々と連続してRisset Rhythm化するための波形メモリにライヴサウンドをサンプリングしようとしたが、これだと多数のブロックでスピードを変化しつつ再生するという肝心のRisset Rhythm化の再生(生成)処理をする前に、その肝心の波形データが次のデータに書き換えられてしまうので、まったく機能しない。 中央の「metro 3000」オブジェクトを消して、その次にある「bang」ボタンをクリックするだけであれば、そのサンプルが刻々とRisset Rhythm化されるものの、ここでもやや行き詰まってしまった。
第15章 ライヴ・サンプリング→Risset Rhythm化
その後あれこれ検討を重ねて、遂に実験的に面白い状況に進展したのが、以下のMaxパッチ「Risset_028.maxpat」である。 ここではRisset Rhythm化のシステムを二重に用意して、つまり第1系列でサンプリングしてRisset Rhythm化するサウンドが鳴っているところに、さらに別の第2系列でサンプリングしてRisset Rhythm化するサウンドが加わって、交代にあるいは片方を刻々と変化させるような音楽的な厚みを考慮している。 そしてこのMaxパッチの実装でもっとも重要なアイデアは、「サンプリングのスタート」と「サンプリングのストップ」という2つのボタンによって、ライヴ音響をサンブリングするパフォーマーが、演奏の場で即興的/自由にそのサンプルdurationを指定できるようにしたところである。 一般的なサンプリングでは、そのトリガスイッチは録音の「スタート」を指示するだけで、録音の長さはサンプリングメモリの長さに決められてしまうのだが、それだと前述の実験のように自由度(面白さ)に欠けていた。 しかしこの「Risset_028.maxpat」のアイデアによって、ライヴ生成されるRisset Rhythm化サウンドのmetabarの長さまでを音響サンプリングするパフォーマー自身が、生成されている音響に対応してコントロール出来るのである。
実装においては、サンプリング開始と同時に「clocker」でサンブリング終了までの時間を計測し★、サンプリング音響をいったんtemporaryサウンドファイルに書き出し、Risset Rhythm化バッファメモリをこの★計測時間でリサイズしたところにtemporaryサウンドファイルから読み込むことで、その冒頭の有効部分だけがきっちりとRisset Rhythm化できるようにした、というシンプルなロジックを用いた。 この手法は従来から行ってきたライヴComputer Musicにおいても有効に活用できる、という意味でも大きな収穫である。 サンプリングのためのインターフェースとして、従来型の「スタート・トリガ」専用のスイッチでは役に立たず、「ON」と「OFF」の両方を検出する必要があるが、これは筆者にとってはお茶の子さいさいで全く問題がない。
上のMaxパッチ「Risset_029.maxpat」は、実質的には「Risset_028.maxpat」と同じものを、将来的な「Live Sampling Risset Rhythm」音楽の作曲プラットフォームにするために整理したものである。 ここに、過去のライヴComputer Music作品で活用したようなオリジナルMIDIフットスイッチを組み合わせれば、もう作曲→公演への道筋は見えてきたような印象もある。 たまたま本稿執筆時点(2021年5月)ではCOVID-19のために学会出張も国際会議もライヴコンサートも全て無くなっているが、このMaxパッチのアイデア/コンセプトは筆者の見るところ世界初の「ICMCモノ」であり、きちんとした発表の場(ICMCやNIMEなどのコンサートセッション[コンペ]のあるComputer Music国際会議)に応募するために、時間をかけてパフォーマンスの仕込みと共に「作曲」できる状態に発展している・・・という確信を持ったので、しばし、ここで「温める」時期に突入することにした。
第16章 "Shepard Note" vs "Risset Rhythm" というアイデア
前章のアイデアを学会発表する機会として、「日本時間学会大会2021(2021.06.19-20)」[時間学的考察]と「FIT2021(2021.08.25-27)」[実装の手法など]という2つに申し込みしたが、その最初の発表(午後イチ)を行う日本時間学会大会の2日目(6月20日)の朝、ふと、新ネタを思い付いてしまった。 きっかけは、去年のEC2020で参加していた時に、誰かがZOOMのchatかSlackかに書き込んだお手軽な健康法にある。 それは、毎朝・毎晩の歯磨きタイムに、ただ突っ立っているのでなく、「歯磨きの時間中、ずっと両足の踵(かかと)を上げ下げする」というだけのものなのだが、これが1-2分間続けてやってみると、そこそこ効く。 そして、この「効いた」脹脛(ふくらはぎ)の筋肉というのは、心臓から下半身に届いた血液を心臓に戻すポンプの役割があるので、地味ながらこのプチ運動は立派な健康法であり、その書き込みした人も実際に健康になった気がする、というものだった。 それ以来、毎朝毎晩の歯磨きの時間に続けてきたので、今朝も、早くもなく遅くもない自然なリズムで踵を上げ下げしていたのだが、なんせ今日は"Risset Rhythm"について時間学会で初めての発表だ・・・というテンションでこれをしていると、そのリズムで新アイデアが思い付いたのである。
勿体ぶっているものの、この新ネタについては、簡単な思考実験によって、ほぼ結果は「見えて」しまっている。 僕が実際に実験するかどうかはまだ未定なので、誰かここを見た人が実験して報告してくれても結構である。 ここでは、"Shepard Tone"として このような 連続しているサウンドでなく、ネットでもよくある このような 離散的な「無限音階」で、このサウンドよりもエンベロープのReleaseを短くしてスタッカート化させ、リズムを明確にしたものが好適だろう。 その「無限音階リズム」サウンドを、ここでは"Shepard Note"と呼ぶことにする。
この"Shepard Note"を、"Risset Rhythm"の音源サウンドとして使うというのがここでの新ネタである。 "Shepard Note"の中身のピッチは「無限に上昇」しているが、"Shepard Note"の時間的なリズムのテンポは一定となっている。 これを"Risset Rhythm"化して無限に加速させた場合には、テンポが無限に加速するのに伴って中身のピッチも上昇していくので、当然過ぎてあまり面白くない。 僕が思い付いたのは、中身の"Shepard Note"のピッチが「無限に下降」するものを使って、それを"Risset Rhythm"として無限に加速させた場合にどうなるか(その逆に、中身の"Shepard Note"のピッチに「無限に上昇」するものを使って、それを"Risset Rhythm"として無限に減速させたものもアリ)、ということなのである。
そして歯磨き中の簡単な思考実験によれば、うまく条件が一致すると、もしかしたら「ピッタリ止まる」(^_^;)という現象があるような気もするのだ。 実際には、バースト状の"Shepard Note"の個々のバースト内ではピッチが一定であるものの、連続的な"Risset Rhythm"化によってそのサウンド内部は微妙にピッチは上昇/下降して完全にフラットとはならないので、「微妙な揺らぎがあるのに一定」という謎なサウンドになる可能性がある。 これは素材サウンドの切り出しサイズに依存して変化させることが出来るので、「微妙さ具合」は調整できると思われる。 ニッチな世界のさらにニッチの極限のような実験だが、どこかで暇があったらやってみたい。 COVID-19が無ければ、これまでのパターンだと、国際会議への出張の途中の空港/機内/列車内とか、学会参加中に内職でのMax8プログラミング、の題材として最適なのだが。
to be continued...