
MAX 7 MIDI基礎7
polyオブジェクトは、ホールド状態の音数を制限するオブジェクトである。 アーギュメント内に指定された数値分だけ音数を通過させるが、それを超えたものは出力しないようになっている。また、超えた数値は最右アウトレットからそのノートナンバーとベロシティがリスト化されて出力される。 polyオブジェクトでは、ホールド中の個々のノートオンに対して、ボイス番号という通し番号をそれぞれにつけて第1アウトレットから出力する。 これらの機能を利用する琴江、polyは同時発数音を制限したりコントロールしたりできる。

MAX 7 シンセサイザー基礎5
loresオブジェクトは、IIR構造をもつレゾナンス付きローパスフィルターである。 第3インレットに、レゾナンスの値を0〜0.99....の範囲で入力することで、カットオフ周波数付近での共鳴の度合いと、スロープの傾きをコントロールする。 ただし、レゾナンス値が1以上になってしまうと、フィルターが発振して耳障りなサウンドになるので、clipオブジェクトを使用して0〜0.99乃範囲に制限するのが良い。 また、第2インレットにはカットオフ周波数を与えるが、次のパッチではrandオブジェクトによってランダムに変化するシグナルでカットオフ周波数をコントロールしている。 ↓ステレオでの風音を生成。

MAX 7 シンセサイザー基礎4
基本的なフィルターの種類。 ・ローパスフィルター ローパスフィルターは、低い周波数隊を通過させ、高い周波数隊を通過させにくい周波数特性をもつ。 フィルターを通過することにより、元の振幅が3dB下がる周波数ポイントをカットオフ周波数と呼び、これはフィルターの特性を示す重要な要素となる。 通常、フィルターにおいてはカットオフ周波数が自由に設定することが出来る。 ・ハイパスフィルター ハイパスフィルターは、高い周波数隊を通過させ、低い周波数隊を通過させにくい周波数特性をもつ。 ・バンドパスフィルター bバンドパスフィルターには、中心周波数以外に帯域幅(Band width)、Q、ゲインがある。 バンドパスフィルターの場合、元の振幅が3dB下がる周波数ポイントは中心周波数を破産で二つあるが、帯域幅はその間隔を表している。帯域幅が小さくなる程、周波数特性の山の傾斜が急になり、狭い範囲の周波数しか通さない。 Q値は中心周波数を帯域幅で割った値で、Q値が大きい程山の傾斜は急になる。 Qの値が大きいバンドパスフィルターは、フィルター内部の共鳴(レゾナンス)が大き

MAX 7 シンセサイザー基礎3-2
ioscbankオブジェクトによる加算合成の続き。 ioscbankオブジェクトの第1インレットへ、[set ,インデックス0番の周波数, 振幅, インデックス1番の周波数, 振幅, ...]というリストを送ることでも活用できる。 一見少しややこしいが、次のパッチを見ていきたい。 まずは上記のリストを再現するため、0〜63番に相当する周波数と振幅を定めなければならない。 そこで、まずuziオブジェクトを用いて1〜64のbangをいっせいに放ち(このbangの順番がインデックス番号)、周波数設定で[random10000]すなわち1Hz〜10kHzをランダムに生成(本来、条件指定とgateオブジェクトで可聴範囲内にするのが良い)。 続いてもう一つのrandomオブジェクトを(1〜64)÷64で0.015〜1.000の範囲でランダムに変動するように設定。そのそれぞれの値をpackでリスト化し、そのリスト化された周波数と振幅の×64番号分を、さらにthreshオブジェクトでリスト化する。 そうすることで、メトロオブジェクトがbangするごとに、64個分

MAX 7 シンセサイザー基礎3
加算合成は、音響合成の第一歩であり、理屈上ではこの方法であらゆる音色を合成することが可能であるはずである。しかしながら、現実に耳にする複雑な音は、数多くの部分音で構成されており、それらのバランスも刻々と変化している。これを加算合成で再現しようと思えば、膨大な下図のオシレーターを用意し、それぞれにも膨大なパラメーターのコントロールが必要になる。 ここでは、一つのオブジェクトを使って複数のオシレーターを加算したのと同等のシグナルを生成するioscbankオブジェクトによる加算合成を実施する。 ioscbankオブジェクトは、最初のアーギュメントを搔き込まなければ初期状態で64個のオシレーターが準備される。これらの内部オシレーターは、共通した一つの波形を出力し、初期状態ではサイン波となっている。よって初期状態の場合には、64個のcycleオブジェクトを並べて出力をミックスするのと同じ状態を1つのオブジェクトで行ってしまう。 この各オシレーターには、0番〜63番までのインデックス番号がついており、第4インレット(右端)にコントロールしたいオシレーター番号

MAX 7 シンセサイザー基礎2
LFOについて。 LFOとは、Low Frequency Osillatorの略称で、可聴範囲を超えた非常に低い周波数で動作するオシレーターのことである。 低い周波数とはつまり、例えば1秒間で-1〜1の範囲を数回繰り返すようなパラメーター発生機とも言い換えることが出来る。このLFOによって、周波数や音量、フィルター特性等様々なパラメーターをコントロールすることが可能だが、ここでは、LFOによるビブラート機能を作成する。 例えばLFOとして、cycleオブジェクトを選び、1秒間に2回周期のシグナルを出力させる。 そしてそのシグナルに任意の値xを乗算させることで、1秒間に-x〜xの範囲のシグナルが出力されることとなる。 そして次に、phasorオブジェクトを用意し、設定した周波数Fに、上記のシグナルを加算させる。すると、最終的に出力される周波数は、F-x〜F+xの揺れるシグナルを発生させる。 レコーディング方法 簡易シンセから発生するサウンドをレコーディングしたい場合の保存方法は、sfrecordオブジェクトで行う。まず、openメッセージを繋いでダ

MAX 7 シンセサイザー基礎1
シンセサイザーの心臓部は、様々なサウンドを作り出す音響合成部であろう。 ここでは、その第一歩としてフィルターによる音色の変化を試してみる。これはアナログシンセサイザーでもよく知られた方法で、音響合成では減算合成といわれるテクニックの初歩的なものに当たる。 MAXでは、ローパスフィルターをはじめ、様々な特性をもつデジタルフィルターが個別のオブジェクトとして多数存在しているが、その中でもfiltergraphオブジェクトとbiquadオブジェクトの組み合わせが、視覚的にフィルター特性をコントロールでき、しかも1つで何役もこなす万能フィルターとして非常に便利である。

MAX 7 オーディオ処理基礎5
functionオブジェクトは、サウンドにエンベロープを設定するオブジェクトである。 パッチ上におかれたfunctionオブジェクトは、グラフィカルなエンベロープ・エディターとして機能する。 エディターのY軸はエンベロープのレンジを表し、初期設定では0〜1になっている。また、X軸は時間感覚(デュレーション)を表現し、初期設定では0〜1000msecだが、レンジ/デュレーションともに、[setrange 数値 数値]/[setdomain 数値]というメッセージを与えれば変更することが可能である。 また、エディター上をクリックすることでブレークポイントが追加され、それを自由な位置にドラッグすることで好きな形のエンベロープを描ける。shiftキーを押しながらブレークポイントをクリックすれば、そのポイントは消去される。 [lineオブジェクトと音設定2]でも紹介したが、functionオブジェクトは、第2アウトレットからエンベロープ情報を出力する。その出力のされ方は以下のように、最初の0地点と、それ以降の各ポイントおよびそこに辿り着くまでのデュレーショ

MAX 7 オーディオ処理基礎4
今回は、MIDIコントローラーの鍵盤を弾く強さ、あるいはksliderをクリックする上下位置(鍵盤の奥に行く程大きくなる)、つまりはベロシティによって実際のサウンドに強弱をつけるパッチを作る。 ベロシティは、0〜127までの整数のため、これを0〜1へ変更したいので、[/ 127]を用いて変換する。デフォルトで0〜127の整数メッセージを出力するオブジェクトが多くあるので、この行程は覚えておきたい。いつでも呼び出せるようにサブパッチを作っておくのもよいであろう。 ちなみに、次のパッチでは、stripnoteオブジェクトを挟むことで、ノートオフを送信せず、次のノートを弾くまで鳴りっぱなしにさせている。 また、send/recieveオブジェクトを用いることで、配線を見やすくするのも大切なことである。

MAX 7 オーディオ処理基礎3
line〜オブジェクトは、2つの数値を受け取ると、それを"目標値"と"目標値までの到達時間"と解釈して、現在地点と目標地点の2点の間を滑らかに結ぶ補完作業を行う。 これによって、例えばボリューム操作を行う時の、波形の不連続が起こすクリックノイズを解除することが出来る。また、ボリュームだけではなく、周波数やその他様々なオブジェクトのパラメーターを滑らかで連続的にコントロールしなければならない場面に重宝するオブジェクトとなる。 これと関連して、gainオブジェクトがある。gain オブジェクトは垂直スライダーと形状がよく似ているが、シグナルを扱うオブジェクトであり、フェーダーによってボリュームをコントロールする。 右インレットがlineオブジェクトで言うところの目標数値への到着時間となり、ここに数値を与えてフェーダーをコントロールすることで滑らかな変化を実現できる。 ※gainオブジェクトは、MIDIにおけるボリューム(0〜127)と同様の考え方による、指数曲線でボリュムをコントロールする。フェーダーの値は127が基準値0dBとなり、[*〜]オブジェ