残響をある時刻でストップさせて、無限にフィードバックさせることで永遠に続く残響を作り出すためのMax/MSPパッチを公開しました。
Max6から登場したgen~オブジェクトを使ってプログラムを組んでいます。
これまではcomb~やallpass~などを組み合せてリバーブパッチを作っていたのですが
comb~自体の設計を自分でできないと1サンプルごとの値の処理のアルゴリズムを見直すことができず、あまり自由なリバーブを作ることは難しかったのですが、ようやくそういったことができるようになりました。
以前からもエクスターナルオブジェクトを書くことでこういった信号処理のオブジェクトデザインはできたのですが、SDK勉強してC言語でエクスターナルを書くことはMaxでパッチングして音を出しながらプログラムを書くことと少し違うことです。
やはりMaxの利点はプログラムを書きながら音を出せることであり、そのフィードバックプログラミングによって細部を詰めていけるところが最も魅力的なのではないでしょうか。
gen~はコンパイルが必要なのですが、超高速なオートコンパイル機能によって、ほとんどコンパイルの意識なしにMaxのプログラミングと同等のことができます。
これまでのMaxの最小単位はオブジェクトであり、1ms以下の領域でノンリニアなアルゴリズムを組むことは難しかったのですが、gen~は1サンプルづつ信号をどのように処理するのかを自由にデザインできます。
これまで音楽は楽譜のように12音 / オクターブに抽象化された記号と音色によって作られるイメージがありましたが、1サンプルづつ自由に値をデザインしてけるということは音色と楽譜のような記号が一体化します。
ポリフォニックという概念もなく、単一のチャンネルのサンプルをどのように並べていくかで多様な音楽を構想することができます。
AKB48の48声であったってCDのデジタルデータ上ではステレオ2chで1秒間に44100サンプルのデータが数百秒分置かれることで実際の音楽が構築されているのです。
しかし、例えば5分の音楽であれば300秒 * 44100サンプル = 13230000個ものサンプルを置かなければ音楽にすることができず、この膨大な数のサンプルすなわち、デジタルな音符を置くには何らかのアルゴリズムが有効になると思います。
サンプルを生成する数式を考える作業は13230000個の音符を一つ一つ手作業で置いていくよりも遥かに効率的にデジタルミュージックを作り出すことができるのではないでしょうか。
Foreverbのダウンロードは以下から(フリーMaxパッチ)
http://akihikomatsumoto.com/download/
Designing Sound Andy Farnell The MIT Press 2010-08-20 |