iA


サウンド&ソフトウェアアート 2010

イントロダクション、Max/MSP Jitter入門


サンプルファイルのダウンロード

この授業で説明したプログラムは下記からダウンロードできます。

イントロダクション

この授業について

  • 春学期の前期の第1クォーター(4月12日〜5月24日)に行います (授業回数は6回)
  • 教室は206教室
  • 選択必修

この授業の構成

  • 全体の統括、久保田さん
  • 月曜担当:田所 – 主にソフトウェアによる音響プログラミング(Max/MSP)担当
  • 火曜担当:矢坂さん – 主にデバイス(Arduino)を使用したコントローラ制作を担当

最終的な目標

  • オリジナル「楽器」を作る
  • 物理的なコントローラをArduinoで制作
  • ソフトウェアによる音響合成をMax/MSPで行う
  • 最後の講評会では、自作楽器によるパフォーマンスを行います

月曜授業のおおまかなスケジュール

  1. 04/12:イントロダクション、Max/MSP入門
  2. 04/19:Max/MSPによる音響合成
  3. 04/26:Max/MSPによるサンプリング&プレイバック
  4. 05/10:インタフェイスについて、Max/MSPと外部デバイスの連携
  5. 05/17:個人制作プレゼンテーション
  6. 05/25 (※火曜日と統合):最終発表会 (自作楽器パフォーマンス)

Max/MSP Jitter入門

Max/MSP Jitterとは?

  • Max/MSP Jitter:サンフランシスコのソフトウェア企業Cycling ’74が開発・保守している音楽とマルチメディア向けのグラフィカルな統合開発環境(ビジュアルプログラミング言語)
  • Max:グラフィカルな音楽プログラミング言語
  • MSP:MAXにデジタル信号処理(DSP)機能を追加 → 直接音響を生成、操作することを可能に
  • Jitter:2D、3Dグラフィック、マトリクス操作を可能にするオブジェクト群 → 映像の生成、操作を可能にする

簡単な歴史

  • 専用ハードウェアの自体 1:1981年、Miller PucketteがパリのIRCAMで、Sogitec 4X というデジタル音響処理専門のワークステーションをコントロールするために使用する専門のソフトウェア「Pathcer」として開発。
  • 専用ハードウェアの時代 2:1991年、音響処理のための専用ボード、ISPW(IRCAM Signal Processing Workstation)+Max/FTSとして、NeXTコンピュータに移植される。しかし、その後NeXTがハードウェア事業から撤退。
  • パーソナルな環境への移行 1:1991年 Macintosh版MAX – MIDIの処理を中心にした機能。DSP(デジタル信号処理)には未対応。
  • パーソナルな環境への移行 2:1997年 MSP発売 – MaxにDSP機能を追加。Macintosh単体で音響生成が可能に。
  • マルチメディアプログラミング環境へ:2002年 Jitter発売 – グラフィカルプラグラミングのためのオブジェクト群。
  • 現在もバージョンアップをしながら開発は継続している。2010年4月現在の最新版はMax 5 (ver 5.1.3)。


4X


NextコンピュータとISPWボード

Max/MSP Jitterの兄弟たち

  • pd (PureData):Miller Pucketteが開発し、オープンソースプロジェクトとして発展。
  • jMax (jMax Phoenix):IRCAMで開発された、Maxと類似したビジュアルプログラミング環境。


pdとjMax

Max/MSPを利用した作品例

とりあえず起動してみる

  • “MaxMSP.app”を起動する。
  • 注意:“MaxMSP Runtime.app” ではないRuntimeは既にできあがったプログラム(パッチ)の実行専用、Runtimeはフリーでダウンロードできる。

Max/MSPの基本構成

  • Maxウィンドウ:処理結果やエラーなどのテキスト情報を表示。
  • Patcherウィンドウ:ここにプログラムを作成する。
  • オブジェクトパレット:Patcherウィンドウの画面をダブルクリックすると出現。分野別に整理された「道具箱」のようなもの。


Maxウィンドウ


Patcherウィンドウ


オブジェクトパレット

簡単なパッチを作成してみる

  • 四則演算をするパッチ

オブジェクトの種類

  • プログラムの処理をする単位
  • Maxでは、このオブジェクトを接続していくことで、プログラムを構築していく


基本的なオブジェクト


GUIオブジェクト

インレットとアウトレット

  • 上についている「ポッチ」がインレット。オブジェクトに値を入力する。
  • 下についている「ポッチ」がアウトレット。オブジェクトから値を出力する。
  • 数値や信号などが、上から下に流れ落ちていくイメージ

インレットとアウトレット

音を出してみる

  • Sin波を生成する簡単なパッチ(プログラム)を作成する
  • 「cycle~」:Sin波の信号を生成するオブジェクト。オシレータ。
  • 「dac~」:音を出力するオブジェクト。Digital Analog Converter
  • cycle~ と dac~ を繋いでいるパッチケーブルが黄色と黒の縞模様になっているところに注目。この線の中にシグナル(つまり音響信号)が流れていることを表現している。

sin波を出力(※大音量で再生されるので、ボリュームに注意!!)

音程(周波数)を変化させる

  • 方法1:「cycle~」の箱のなかに数値を直接記入する
  • 方法2:「cycle~」の第1インレットに数値を入力する


sin波を出力

周波数を変化させる

音量を変化させる – 音のかけ算

  • 音量を調整するには? 全ての音の信号に一定の値をかけ算する
  • 「*~」オブジェクト:シグナルのかけ算 (※単独の数値のかけ算「*」との違いに注意)


音量を変化させる

2つの音を混ぜる – 音の足し算

  • 2つの音を混ぜるには、信号の足し算
  • 「+~」オブジェクト:シグナルの足し算 (※単独の数値の足し算「+」との違いに注意)
  • 複数のパッチケーブルを同じインレットに繋ぐことでも表現可能


音を足し合わせる

音を見る

  • 音の波形を表示してみる
  • 「scope~」を使う
  • scope~ オブジェクトを配置して接続した後、オブジェクトを右クリックして「Inspector」を選択
  • Valueタブを選択。Buffer Sizeを100に、Buffers per pixelsを2に設定


scope~ オブジェクトの設定


波形の表示

宿題!!

  • 来週までに以下のパッチを作成して発表する
  • 課題:4つ以上のオシレータを用いたソフトウェア楽器(Max/MSPパッチ)をデザインせよ

課題制作のヒント

キーボードで音程を変化させる

オシレータの音量を別のオシレータで変化させてみる(AM)

オシレータの音程を別のオシレータで変化させてみる(FM)

音量を時間的に変化させる(エンベロープ)