オトダマリ

音・語学関係その他。

Max for Live 再入門 #9 Velocity Sequnencer Part I, #10 Velocity Sequnencer Part II

かなりグダグダな感じで書いてますが許して。

#9 Velocity Sequnencer Part I

目標

MIDIノートが現在何個演奏されているかを取得するためのパッチングを行う。
 

メモ

[midiparse]:生のMIDIのバイト情報をスタンダードメッセージの形式に分割する(分割された情報はリストとしていくつかのアウトレットから出力される)。

 
MIDIノートが何個鳴らされているかを把握したい。
そのためにborax, unjoinを使う。
 
[borax]:note value(ピッチ?), velocityを取得する。
[unjoin]:midiparseのアウトレットから得た情報を整理した形でアウトプットする。
 
Notesが何かを把握したい。
 
[trigger]:"t"で略記可能。ここでは引数l(小文字のL。リストのこと)を二つ取る。
 
[bag]:midi notesのforceを管理する。0以上のベロシティに反応する。ベロシティが0だと情報を捨てる。bangを受け取ると、現在のノートの状況をアウトする。
zl:リスト処理のために色んな使い方ができるオブジェクト。
 
[zl group N(integer)]
group, output a list after N items are received.
N個目のアイテムを受け取った後にリストをアウトプットする。
 

#10 Velocity Sequencer Part II

目標

GUIを伴ったベロシティシーケンサー部分を作る
[phasor~ @frequency 1 0 0 bars .beats .units @lock 1]
ノコギリ波のオシレーター
@で始まるのはAttribute(属性)の設定
@freauency:周波数の設定。ここでは結構長い書き方をしている。1 0 0がそれぞれどんな値なのかを後ろのbars .beats .unitsで設定している……はず。
@lock:周波数を固定(ロック)するか否か。
 
[snapshot~ 5]
phasor~等のオーディオシグナルをfloat メッセージに変換。引数は切り取る間隔をミリ秒で指定するためのもの(つまりこれは5msごとにメッセージを受信・送信する)。
 
[scale 0. 1. 1 17]
受け取った数値の範囲を違う範囲へと変換する。ここでは0~1を1〜17へと変換。
 
[change]
このオブジェクトに保存された数値と異なる数値を受け取った場合のみ数値を出力し、その数値を新たに保存する。
 
[multislider]
マルチスライダーを表示できる。スライダーとは言っているが、色んな表示のさせ方があるので、点描のグラフなんかにも使えるみたい。fetchという(多分)整数の値を出力する(この出力は普通にnumber boxで表示可能)。
 
m[fetch $1]
[multislider]が扱うデータタイプに合わせてnumber boxの出力を変換するためのメッセージオブジェクト。
 
メッセージボックスにおける$(ドル・マーク)の使い方のメモ
メッセージボックスが受け取った数値が代入される引数(だと思う)。
m[fetch $1]のインレットにただの数値……例えば「10」が入力された場合、m[fetch $1]から出力される情報は「fetch 10」となる。
 

買取王子に売る

何冊・何本売ったかは定かでないが、結構な数の所持品を段ボールに詰めた。

絶望的なのは、これだけ売ってもまだまだ部屋が片付かないところ。もう既にブックオフへ100冊単位で売ったような記憶があるんだけど……途方に暮れちゃうなあ。恐らくあと1〜2回、業者に頼むことになりそう。

売るものを選別するとき、以前はしょっちゅう脱線してなかなか作業が進まなかったんだけど、今回はほとんど躊躇せずに段ボールにものを詰めることができた。よくも悪くも迷いがなくなってきたのかなと思う。

ところで、買取王子は愛知県の会社らしい。最初検討したもったいない本舗も山梨だし、この手の業者はもはや本拠が東京である必要はまったくないんだね。

今日これから配送業者に集荷に来てもらうことになっている。査定結果は10日後ということ。

Max for Live 再入門 #8 Dub Delay Part II

目的

このセクションでの目的は、グリッチ音を生み出すことなくディレイタイムにLFOをかけること(つまりテープディレイのウォブル効果を実装すること)。
#7で作ったパッチでDelay Timeをぐりぐりいじると、グリッチーな音が出てしまう。
これはこれで非常に味があって絶対に使いどころはある音だが、ここでは、グリッチーにしないやり方も学びましょうねということらしい。
 
ディレイタイムをいじるときにグリッチ音が混ざらないようにするためには、ディレイラインをオーディオレート単位で変更してやれば良いとのこと。
 

作業の概要

新しいパッチに#7で作ったDub Delayをコピペ。

Delay Time用のlive.dialオブジェクトを削除する。

 
Ableton Liveのテンポにシンクしたディレイタイムを送るためのオブジェクト live.menuを作る。
インスペクタでRangeを1n 2n 4n 8n 16nと変更し、名前も分かりやすいようにする。
 
live.menuオブジェクトは音価(note value)をアウトレットから吐き出すが、それじゃあtapin~は正しく認識してくれない。
そこで、live.menuが送る信号をtapuin~に分かる形式へと「翻訳」するオブジェクトを作る。
それがtranslateオブジェクト。
translateオブジェクトには、notevalues, msという二つの引数を追加する。
さて、ここでパッチ作りはいったん別方向に飛ぶ。
LFO部分を作るようだ。
cycle~オブジェクトとlive.numboxオブジェクトを作り、live.numboxのアウトレットLからcycle~のインレットLにつなぐ。
次にgate~オブジェクトを作る。
……以下、説明されるがままにつないでうまくいけばお慰み。言ってることは分かるが心からは納得できないような感じで作業。tapout~にwobble系のモジュールを差す理由がちょっとまだ整理がつかない。あ、でもtapout~がディレイタイムを決定するから、そりゃそうだよな。分かりましたOK!というわけでちゃんちゃん。
 

余談

live.menuオブジェクトで不思議に思ったのは、live.menuの真ん中のアウトレットをtranslateオブジェクトに出力する点。
リファレンスを見ると、
The live menu object can be used to display text associated with incoming numbers and provide a general user interface.
Item numbering sarts from zero (0).
とある。
入力された数字を元にテキストを表示し、汎用的なUIも提供するとのこと。
リファレンスにあるパッチの挙動を見ると、三つのアウトレットは以下のようなものを出力しているらしい。
一番左:menuに含まれるItemのインデックス
真ん中:InspectorのRangeで設定された値
一番右:Paramater Raw Value (0. - 1)……つまり、恐らくindexのn番目が選択されたときに、 (indexのn番目 - 1) / (indexの要素数 - 1) の小数値が吐き出される。
 

Max for Live 再入門 #7 Dub Delay Part I

#5〜#6のGUI関係

簡単なのでメモだけ残す。やり方は何となく覚える。

・パーツの色はインスペクタで変えられる。

・背景色はパッチインスペクタで変えられる。

・インスペクタのLong Nameはオートメーションを線グラフでグラフィカルに変えるときの表示用。

・インスペクタのShort Nameはパッチ自体のGUIなどで表示される用。

・panelオブジェクトで部分的に背景色を変えられる。

・インスペクタのAnnotation、Annotation Name、Hintで、それぞれ、画面左下にパーツに関する説明、その説明のタイトル、パーツ上にマウスを置いた場合のツールチップ(短い説明)を表示することができる。

 

さて、超特急で#7に突入。

#7 Dub Delay Part I

ざっと一回動画を見ると、以前チュートリアルで作ったパッチを流用してちょいちょいとつなげるだけでほぼできてしまう感じ。

 

まずは以前作ったSimple Delay(#3)をコピーして新たなMax Audio Effectsのパッチウィンドウにペースト……みたいなことを書いてもしょうがないな。

作業の実質的な流れを書くと、以下の通り。

 

(1) 使うオブジェクトの用意

・Simple Delayの全部とSVFのフィルター部分を新規プロジェクトにコピペ。

・*~オブジェクトとlive.dialオブジェクトを作る。

omx.peaklim~オブジェクトを作る(Wet信号のリミッター)。

 

(2) オブジェクトの結線

前半

・*~オブジェクトの右側のインレットにlive.dialオブジェクトの左アウトレットをつなぐ。(フィードバック量の制御)

・*~オブジェクトのアウトレットをディレイのtapin~オブジェクトにつなぐ。(フィードバック回路の実装1)

・selector~オブジェクトのアウトレットを*~オブジェクトにつなぐ。(フィードバック回路の実装2)

・ディレイのtapout~オブジェクトのアウトレットをsvf~の左インレットにつなぐ。(フィードバック回路の実装3)

後半

・tapout~オブジェクトのアウトレットをomx.peaklimのアウトレットLRにつなぐ。

omx.peaklimオブジェクトをWetを表示・コントロールするGainオブジェクトへつなぐ。

 

図が無いと何が何やらという感じだが、箇条書きの前半部分はフィードバック回路つきのディレイを作っていて、後半はそのウェット信号がピークを越えないようにリミッターをつけているだけ。

出来上がりは結構エグいディレイになる。

満足満足。

 

フィードバック付きディレイの作り方以外にこのチュートリアルから学ぶべき大事なことは、他のパッチから流用して新しいものを作るということかな。

RMSメーター、VUメーターのフリープラグインを中途半端に試してみた

Ableton LiveにはRMSメーターがついていない。これだけ色々とついているのに不思議な感じがする。操作性同様、音圧も直感だ!だったらしょうがないんだけど、あった方が便利は便利。というか、耳がイカれてきた状態でチェックしたい時は絶対必要。

そんなわけで、意を決して色々探したのだけど、MacVST or AU 、 フリーという条件だと、案外種類が存在しない。

以下、試したプラグインのメモ。

FreeG(SONALKSIS)

RMSメーターの動き方がせわしない。ほぼピークメーターと一緒。失礼だけど、これって本当にRMSメーター?余談だが、インストール方法がNative Instrumentsみたいに専用のアプリケーションを必要とする点が面倒。

PSP VintageMeter(PSP

インストールしたがAbletonに認識されず(ちなみに環境はOS 10.9.2、MacBook Pro Retinaディスプレイ)。/Library/Audio/Plugin/内のインストールフォルダを見たらファイルに拡張子がなかった(でもvstファイルであることは認識されている)。念のため拡張子をつけてAbleton Liveを起動したがそれでもやっぱり認識されず。

RMS Correlation Meter(synnack)

Max 4 Liveで作られている非常にAbleton Liveらしいプラグイン。帯は出ず、数字のみの表示。なんと初期状態ではステレオソースがモノラルになってしまう(ちょっとした知識さえあれば、中身を開けてすぐにステレオ出力に戻すことくらいはできるが……)。

IK Multimediaのヤツ

面倒そうなので今回はパス。ただ、レビュー見た感じ便利そうだよなあ……。

雑感

試した分……つまり、FreeG、RMS Correlation Meterの二つに関しては、Logic付属のRMSメーターより低めの数字が出る。Logicでは-5dBくらいで調整したはずのものが、-10dBくらいになってしまう。まあ、リファレンストラックをいくつか用意して、参照しながら作ってけばいいんだろうけど、めんどくさいね(徐々に慣らしていけばいいんだけど)。

う〜ん、この感じだと、自分としては、Abletonでミックスするのは現時点では難しいかなあ。

ちなみに、自分はRME Firefaceを持っている贅沢者なので、RMSメーターに関してはDIGICheckを使うという裏技があります。今までまったく使ってなかったけど、下手にサードパーティプラグイン使うよりも安定してそうな感じはある。後でそれも試してみようかな。