Top

あちゃぴーの自転車通勤
VST3i fx-mechanics TeAr Arpeggiator

テキスト記述制御するオープンソースのアルペジエータでJUCEで作られている。 プログラミング的な入力が好みなので少し使ってみる。 最近0.3にバージョンアップされ、UIが鍵盤になってオクターブ関係が見やすくなった。 また確率が追加された。 名称がTeArとなっているが、おそらくText Arpeggiatorからきているのだろう。 作者はフランスのENSTA Paris 教授Olivier Doaréさんですね。

https://fx-mechanics.com/
https://github.com/odoare/TeAr

TeAr

特徴1 独立した21chのアルペジエータ搭載

1~21chを使うことでポリリズムやでポリフォニックなアルペジエータなどが比較的簡単に作れてしまう。 各チャンネルは異なるMIDIチャンネルに出力できるので、複数の音源に振り分けることもできる。 またスイッチのon/offが可能。下は1以外は使っていない状態。

TeAr

下サウンドは1chでC E G Eとアルペジオさせて、2ch、3chと追加し、和音アルペジオにしてみた例。 ダイアトニックスケール設定できるのでキーから外れない。

特徴2 パターン文字列による記述

以下のようにテキストによる記述で、プログラムのように扱える。 好みが分かれるところであるが、個人的には歓迎したい部分で、アルペジエータの必要性は感じていなかったのだが、記述方法に興味を惹かれて使ってみることにした。

TeAr

相性問題はありそう

少し試した感じでは、古いVST2のシンセでは和音がうまく動作しなかった。 今のところZebralette3で試しているが、新しいプラグインでは問題なさそう。 またオートメーションで、コントロールしようとしても、動作がうまくいかない場合もある。 この辺りは今後の改善に期待したい。

Method

TeAr

Notes played:

押さえた鍵盤の音を低い順に鳴らす。 テキストの数字は鍵盤の押さえている順番。 テンポはTeArに従う。 鍵盤のオクターブ関係は無視され、オクターブ違いは同じになるようだ。

txt 1 2 3 :弾いた鍵盤の低い順に鳴らすという意味で度数ではない。
鍵盤CEG = C E G
鍵盤DFA = D F A
鍵盤CE = C E C : 3に相当する鍵盤が押されていないので1と解釈されるようだ。
鍵盤CEGB = C E G : 鍵盤Bは押されなかったと解釈される。
Follow MIDI Inは関係なさそうだ。

Chord played as is:

基本的に押さえたコード音を低い順に鳴らす。 テキストの数字は鍵盤の押さえている順番。 テンポはTeArに従う。 押さえた音数が上回る場合は、高い音が無視される。 押さえた音数が下回る場合は、その中でやりくりされる。 上記Notes playedとの違いはオクターブ関係が有効になるところ。 他にも違いはあるかもしれない。

txt 1 2 3 :弾いた鍵盤の低い順に鳴らすという意味で度数ではない。
鍵盤CEG = C E G
鍵盤DFA = D F A
鍵盤CE = C E C : 3に相当する鍵盤が押されていないので1と解釈されるようだ。
鍵盤CEGB = C E G : 鍵盤Bは押されなかったと解釈される。
Follow MIDI Inは関係なさそうだ。

single note:

単音を基準に音程はテキストを度数として演奏される。 まずはこのモードで始めるのがよいと思う。

txt 1 3 5 :度数
鍵盤C = C E G
鍵盤D = D F A
鍵盤D(Follow MIDI In) = D F# A

モードによって、テキストの数字が鍵盤の押している順番を指す場合と、設定したキーに対しての度数を指す場合があり、混乱を招きやすいと思う。 もう少し明確になるとよいのだが・・・

Scale point

ここでキーを合わせる。

TeAr

Follow MIDI In

チェックを入れると弾いた音をルートとし移調する。 下サウンドは1 3 5 3というアルペジオで、鍵盤をC C# D D#と弾いたとき。 弾いている鍵盤はルートとなり、そこから1 3 5 3という並びになる。 ダイアトニックスケールを無視して半音階で上がっているのが分かる。

Scale Type

TeAr

Scale/Mode Name Intervals (from root)
Major Scale Modes
Major (Ionian) 0, 2, 4, 5, 7, 9, 11
Dorian 0, 2, 3, 5, 7, 9, 10
Phrygian 0, 1, 3, 5, 7, 8, 10
Lydian 0, 2, 4, 6, 7, 9, 11
Mixolydian 0, 2, 4, 5, 7, 9, 10
Aeolian 0, 2, 3, 5, 7, 8, 10
Locrian 0, 1, 3, 5, 6, 8, 10
Melodic Minor Modes
Melodic Minor 0, 2, 3, 5, 7, 9, 11
Dorian b9 0, 1, 3, 5, 7, 9, 10
Lydian #5 0, 2, 4, 6, 8, 9, 11
Lydian b7 (Bartok) 0, 2, 4, 6, 7, 9, 10
Mixolydian b13 0, 2, 4, 5, 7, 8, 10
Locrian Natural 9 0, 2, 3, 5, 6, 8, 10
Altered 0, 1, 3, 4, 6, 8, 10
Harmonic Minor Modes
Harmonic Minor 0, 2, 3, 5, 7, 8, 11
Locrian Natural 6 0, 1, 3, 5, 6, 9, 10
Ionian #5 0, 2, 4, 5, 8, 9, 11
Dorian #4 0, 2, 3, 6, 7, 9, 10
Phrygian Dominant 0, 1, 4, 5, 7, 8, 10
Lydian #2 0, 3, 4, 6, 7, 9, 11
Altered bb7 (Ultralocrian) 0, 1, 3, 4, 6, 8, 9
Other 7-note scales
Harmonic Major 0, 2, 4, 5, 7, 8, 11
Double Harmonic Major 0, 1, 4, 5, 7, 8, 11
Hungarian Minor 0, 2, 3, 6, 7, 8, 11
Neapolitan Major 0, 1, 4, 5, 7, 9, 11
Neapolitan Minor 0, 1, 3, 5, 7, 8, 11
Non-diatonic scales
Major Pentatonic 0, 2, 4, 7, 9
Minor Pentatonic 0, 3, 5, 7, 10
Blues 0, 3, 5, 6, 7, 10
Whole Tone 0, 2, 4, 6, 8, 10
Octatonic (Half-Whole) 0, 1, 3, 4, 6, 7, 9, 10
Octatonic (Whole-Half) 0, 2, 3, 5, 6, 8, 9, 11

各チャンネル

チャンネルごとに色分けされている。下記緑色は1ch部分。

TeAr

パターン言語

大前提としてスペースは無視されるので、スペースを使って視認性を上げられる。

Note Commands

Command Description
1 to 9 Scale Typeで指定した特定のノート。Methodのモードによって振る舞いは変わる。
_ 先に演奏した音を持続。途切れない
. 休符
+ 一つ上の度数を演奏
- 一つ下の度数を演奏
? スケール内のノートをランダムに演奏
= 最後の度数を繰り返す

注意点としては打ち終わった後にEnterをしっかり押すこと。 そうしないと適用されない。 見た目だけでは適用されているかどうか分からないのが問題。

Pitch Modifiers

Command Description Example
# 次の音を半音上げる #0
b 次の音を半音下げる b0

1オクターブを半音で進むアルペジオ。Ionianベースで以下のように打ち込んでみた。

1 #1 2 #2 3 4 #4 5 #5 6 #6 7

Velocity Modifiers

Command Description Example
vN Local:次の音符のみベロシティを設定 v80
v+ Local:次の音符のみベロシティが増加 v+0
v- Local: 次の音符のみベロシティを低下 v-0
VN Global:次のコマンドまでベロシティを設定 V40
V+ Global:次のコマンドまでベロシティを増加 V+0
V- Global:次のコマンドまでベロシティを低下 V-0

Octave Modifiers

Command Description Example
oN Local:次の音符のオクターブのみを設定(N:0~7) o30
o+ Local:次の音符のみ、オクターブを1つ上げる o+0
o- Local: 次の音符のみ、オクターブを1つ下げる o-0
ON Global:以降のすべての音符のオクターブを設定(N:0~7) O5
O+ Global:グローバルオクターブを1つ上げる O+
O- Global:グローバルオクターブを1つ下げる O-

下テキストとサウンド。 内容は2オクターブに渡るダイアトニックスケールに基づくアルペジオで、4度進行させている。 ギターで弾くのは結構大変だが、アルペジエータだと簡単ね。 1オクターブ上は上記の通りo+だが、2オクターブはどうしたものかと思って試したところ、 o+o+で2オクターブ上が指定できたという例。

1 3 5 7 o+1 o+3 o+5 o+7 o+o+1 o+7 o+5 o+3 o+1 7 5 3

Probability Modifier

確率を操作できる。

Single-step form

pN X
pN X:Y

Example Behaviour
p5 1 50%の確率で1度を演奏。そうでなければ休符
p3 1:2 30%の確率で1度を演奏。そうでなければ2度を演奏
p7 1:. 70%の確率で1度を演奏。そうでなければ休符
p5 1:_ 50%の確率で1度を演奏。そうでなければ前の音を維持
p5 1:? 50%の確率で1度を遠藤。そうでなければランダム度を演奏

Group form

pN (success steps):(fallback steps)

Example Behaviour
p5 (1 2 3):(4 5) 50%の確率で1,2,3度を演奏。そうでなければ4,5度を演奏。
p5 (12):(34) 50%の確率で1,2度を演奏。そうでなければ3,4度を演奏。
p8 (O+ 1 2 3) 80%の確率で1,2,3度を1オクターブ上で演奏。そうでなければ何もしない。

#b等のモディファイは、うまく動作しないようだ。

Block Commands

括弧

1 2 (O+ 1 2 3) 1 2

この例では、3〜5ステップのみオクターブ上げ。 ステップ1、2、6、7は元のオクターブで演奏。 括弧は入れ子にすることができる。

""

1 2 "1 2 3" 4

3〜5ステップは常にスケールルートに固定され、 1、2、4は通常通り押された音の度数に従う。

少し触ってみて

テスト的に触れてみた印象としては、いろいろ手軽に複雑なパターンが作れそう。 パターン言語もシンプルなのでルールは簡単に覚えられて、即応用が可能なのがよい。 プログラミング的な操作感は、好みが分かれそうで、多くの人にとってはとっつきにくいだろう。 でも、こういう仕様だと痒い所に手が届くのだよね。 今後積極的に使って行こうと思う。

VSTi