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

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

下サウンドは1chでC E G Eとアルペジオさせて、2ch、3chと追加し、和音アルペジオにしてみた例。 ダイアトニックスケール設定できるのでキーから外れない。
特徴2 パターン文字列による記述
以下のようにテキストによる記述で、プログラムのように扱える。 好みが分かれるところであるが、個人的には歓迎したい部分で、アルペジエータの必要性は感じていなかったのだが、記述方法に興味を惹かれて使ってみることにした。

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

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
ここでキーを合わせる。

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

| 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部分。

- text area:ここにテキストで記述する
- on/off:明るい色であればonで有効。そうでなければ無効となる。
- 音価:基準となる音価を上記の中から選択する
- ch:出力先を1~16ch選択できる
- random/Euclidean:クリックすると以下の設定ウィンドウが開く

Randomizeを押すとテキストが生成される。

その下行は、ユークリッドリズム用の定義で、Make Euclideanボタンを押すと生成される。 Stepsは全体のステップ数で、Hitsは鳴る数。Rotは、開始地点を変えられる。
以下は、E(5,13)を再現したパターン。全て「1」か「.」になるので、必要に応じて数字を入れ替えればよい。

ユークリッドリズムについてはこちらを参照。
パターン言語
大前提としてスペースは無視されるので、スペースを使って視認性を上げられる。
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は通常通り押された音の度数に従う。
少し触ってみて
テスト的に触れてみた印象としては、いろいろ手軽に複雑なパターンが作れそう。 パターン言語もシンプルなのでルールは簡単に覚えられて、即応用が可能なのがよい。 プログラミング的な操作感は、好みが分かれそうで、多くの人にとってはとっつきにくいだろう。 でも、こういう仕様だと痒い所に手が届くのだよね。 今後積極的に使って行こうと思う。