ユーザビリティと音質を向上させたビジュアル・プログラミング環境

CYCLING'74Max 6
CYCLING'74のビジュアル・プログラミング環境"Max"は、アーティスト自身が効率良く独自のソフトウェアを構築できるツールとして、音楽はもちろん映像やインスタレーションなどの幅広い分野で利用されています。Maxのプログラムは"パッチ"と呼ばれ、"オブジェクト"と呼ばれる部品を"パッチ・コード"でつなぐことでプログラミングを行えるため、本格的なプログラミングの知識がなくても比較的容易に扱うことができます。高度な音声処理機能(MSP)と映像処理機能(Jitter)を備え、ミュージシャンにとってはある程度モジュラー・シンセの延長としてとらえることもできるため、多くの音楽家が利用しています。MaxはMac/Windowsに対応しており、Co re Audio/ASIOをサポート。パッチ内でVSTプラグインを使用したり、ReWireホスト/クライアントとしても動作できるため、DAWなどほかのアプリケーションとの親和性が高いのも魅力です。20年以上の歴史を持つMaxが、約3年半ぶりのアップデートを遂げてMax 6となりました。今回はMax 6+Gen(アドオンのコード生成機能)を試用して、主に音楽利用の観点からレビューしていきたいと思います!

ユーザビリティを格段にアップさせた
パッチャー・サイドバー


Max 6を使い始めて、まず目に止まるのが曲線のパッチ・コード。従来のパッチ・コードは直線でしたが、Max 6では柔らかい曲線となりました。単純に見た目の変更ですが、Maxのパッチ画面にはこのパッチ・コードが張り巡らされ、日々パッチ・コードと格闘するわけですから、ユーザーにとってなかなかインパクトのある変更です。ちなみに従来の直線パッチ・コードも選択できるようになっています。Max 6ではユーザビリティが大きく進化を遂げています。最も印象的なのはパッチャー・サイドバーです。パッチャー・ウィンドウ(右上画面)の右側に引き出し可能なサイド・バーが付き、そこにオブジェクト・エクスプローラー(従来のオブジェクト・パレット)やインスペクター、Maxウィンドウ(エラーなどが表示されるコンソール)、さらにリファレンスも集約されています。開発環境としてぐっとモダンになった雰囲気です。なるべくウィンドウを増やさないという方向性は最近のトレンドでもありますね。例えば新しいオブジェクトをパッチに配置するとき、Max 5ではポップアップ式のオブジェクト・パレットを開いてから配置したいオブジェクトを選ぶという手順が基本でしたが、Max 6ではサイドバー上のオブジェクト・エクスプローラーからドラッグ&ドロップすることができます。オブジェクト・エクスプローラーはカテゴリーごとにオブジェクトが整理され、ワード検索なども付いていて、膨大な数にのぼるオブジェクトから使いたいものを素早く見つけられるようになっています。ちなみにサイドバーを閉じているときには従来と同じ要領で各ウィンドウを別々に開くこともできます。もうひとつ印象的なのがサーキュラー・メニュー。配置されたオブジェクトの左側にマウス・ポインターを持っていくとホイール状のメニューが表示され、そのオブジェクトが受け取れるメッセージのタイプやアトリビュートなどの情報表示、インスペクターやヘルプへのショートカットが選べます(画面①)。オブジェクトに対してメッセージを送るパッチを挿入することもできます。121107-max6-1▲画面① サーキュラー・メニューで表示されるオブジェクトのアトリビュート一覧の例。サーキュラー・メニューからはインスペクターやヘルプへのショートカットなども可能このほか、パッチのレイアウトを支援する機能も充実しており、グラフィック・ソフトでいうところのスマート・ガイド(隣接するオブジェクトに自動的に吸着したり位置をそろえるためのガイド線が出る)のような機能もあります。操作手順にかかわる変更は、従来バージョンに慣れていると一瞬戸惑うところもありますが、慣れれば格段に快適になるでしょう。それでは最も気になるMSP(Maxの音声処理機能)について見ていきましょう。まず何と言っても64ビット浮動小数点演算の採用です。これは個人的にも長年の要望でした。単純に32ビットから64ビットという音質向上だけでなく、MSPが持つウィーク・ポイントをも改善しています。従来の32ビット浮動小数点演算による音声処理は、最近まで代表的なDAWでも標準的な仕様でしたし、純粋に振幅方向の表現精度として考えると不足はなかったのですが、MSPにおいては振幅以外に、例えばサンプルの再生位置なども表現するため、処理の種類によっては精度不足による音質変化が生じることもありました。64ビット浮動小数点演算では、特にこの点が大きく改善されています。試しに自分の手持ちのパッチで音質変化が生じていたものをテストしたところ、全く気にならなくなっていました! この従来の精度不足の問題は、これまで漠然と"Max"は音が悪い、音が変わると言われることがあった原因のひとつでもあり、それを回避するために苦心する場合もあったので、率直にうれしいところです。ほかにも出番の多いオシレーター"cycle〜"のウェーブテーブル・サイズが拡大されてS/Nが向上するなど、基本的なクオリティ・アップも図られています。これらの複合効果で音が良くなったと実感することも多いのではないかと思います。そしてもうひとつ、ライブ演奏などで重宝するミキサー機能が装備されました。パッチャー・ウィンドウの下部にポップアップ式のボリューム・ノブ、SOLO/MUTEボタンなどが付き(画面②)、複数のパッチを同時に開いた場合に、ひとつひとつのパッチがちょうどミキサーのひとつのチャンネル、というイメージで利用できます。121107-max6-2▲画面② パッチャー・ウィンドウの下にはボリューム、ソロ/ミュートをコントロールが可能なポップアップ・ウィンドウを新たに搭載。各パッチのミキサーとして機能するこれに加え、パッチに変更を加えたときに自動的にクロス・フェードを行い、音声処理が途切れることによる"ブチッ"という音をなるべく出さないようにする機能もあり、これらのおかげで、ライブ・パッチング、つまり即興的にパッチを組み上げながらパフォーマンスを行うようなシーンへの対応力も上がっています。

高速かつ柔軟な処理を可能とする
"Gen"コード生成


アドオン扱いになっているGenは今回のアップデートにおいて最も注目されているコード生成機能です(画面③)。コード生成と言っても和音のことではなく、いわゆるネイティブ・コードのことです。パッチの一部をGenの特殊なオブジェクト・セット=Genオペレーターを使って作成することにより、その部分をネイティブ・コードに変換(コンパイル)して高速に実行することができます。このあたりは少し分かりづらいかもしれませんが、従来のMaxのパッチを丸ごとネイティブ・コードに変換して実行するといった機能ではなく、特に速度を要求される処理などでピンポイントで使うイメージです。このGenはMSPでもJitterでも使用できます。MSPにおいては従来不可能だった1サンプル単位のフィードバックを伴う処理なども実現できる新しい物理モデリング音源やフィルターの設計など、より高度なDSPプログラミングヘの道が開けます。121107-max6-3▲画面③ Max 6のサンプル・パッチに含まれるfreeverbのアルゴリズムをGenで実装した例。Genオペレーターで作られているGenについては気になるところも多いと思いますので具体的に説明しますと、MSPではgen〜、Jitterではjit.gen/jit.pix/jit.gl.pixといったオブジェクトが新設されていて、これらの内部にちょうどサブパッチのような感覚で、Genオペレーターを使用したパッチ(Genパッチ)を作成できます。この部分がネイティブ・コードにコンパイルされて実行される仕組みです。ピクセル・シェーダーを作成するjit.gl.pixではGPUコードを生成するようです。しかも、コンパイルは自動的に行われるので、特に意識する必要はありません。Genは大きな可能性を持っていますが、やや上級者向けと言えるかもしれません。Genオペレーターは従来のMaxのオブジェクトに似ていますが、もう少しローレベル(単機能に細分化)した感じで、これを使ったGenパッチはやや難易度高めと感じました。このあたりは、さらに高度なプログラミングの可能性と引き換えでしょう。僕の場合はMaxの標準オブジェクトの組み合わせではどうしても作れない機能や、作れても無駄に負荷の高くなってしまう機能を実現するために、自作オブジェクトを開発して使うことがありましたが、今後はそういったケースの多くをGenで置き換えられそうです。続いてJitterですが、こちらも大幅な改良が加えられています。ここでは深く触れませんが、特にOpenGL関連のオブジェクトが充実した印象です。基本的なところでは複数ライト・カメラがサポートされ、アニメーション関連も強化されました。さらには物理演算やLuaスクリプトなどもサポートされ、非常に強力な内容となっています。Genによる高速のマトリックス操作と合わせて、別の次元に突入した感もあります。近年ではJitterを使ったリアルタイム生成系のVJも盛んですから、Max 6の登場で一気に表現力が上がるのではないでしょうか。


Max 6は今回紹介した以外にもさまざまな新機能やオブジェクトが追加されているため、実は僕もまだすべてを把握できていません。言い換えれば今回のアップデートがそれほど多岐にわたっているということです。ユーザビリティについてはとにかく気が利いていて感心しました。快適により効率的にパッチ作成を行えるよう、ユーザー目線でいろんなアイディアを盛り込んでいるのが印象的でした。実質的な機能面ではMSPの64ビット浮動小数点演算化にOpenGLのサポートを充実させたJitter、さらに意欲的な新機能であるGenや物理演算も盛り込み、全方向にスケール・アップしている!という印象です。

サウンド&レコーディング・マガジン 2012年4月号より)
CYCLING'74
Max 6
36,800円(Max 6+Gen/46,800円)
▪Mac/Mac OS Ⅹ 10.5以降、INTEL製CPU、1GB以上のRAM、500MB以上のハード・ディスク空き容量、QuickTime 7.1以降/OPEN GL互換グラフィック・カード、OPEN GL 1.4以降(Jitter使用時) ▪Windows/Windows XP/Vista/7、INTEL製Pentium 4以上、1GB以上のRAM、500MB以上のハード・ディスク空き容量、QuickTime 7.1以降/OPEN GL互換グラフィック・カード、OPEN GL 1.4以降(Jitter使用時)、ASIO対応サウンド・ボードを推奨