【Tidal】構文を今度こそ学ぼう・その2

■ パターンの記譜法を知ろう

このチャンネルと構文の集合体を、正しくは「パターン」という。Tidalで音楽を作成するには必要不可欠で、この命令をSuperDritシンセサイザーが解釈して音を再生させる。次の4つのサンプルから記譜法を学んでみよう。

-- a bass drum ← d1に対するコメントアウト文
d1 $ s "bd ~ bd ~"
-- high-hat pattern ← d2に対するコメントアウト文
d2 $ s "[~ hh]*2"
-- 1.. 1.. 1.. 1.. ← d3に対するコメントアウト文
d3 $ s "numbers:1"
-- clap ← d4に対するコメントアウト文
d4 $ s "cp*4" # n "0 1 2 3"

●「~」休符

パターンに休符を作成するために使用~」します。


●「” ”」グループ化(サイクル)

「” ”」で括られた要素が1つのサイクルとしてSuperDritに認識されます。


●「[ ]」サブディビジョン

サイクル内の要素を「[ ]」で括ることで、引数(ステップ?)内をさらに細かく設定できます。

「[ ]」で入れ子にする制限数はありません。下記のようなパターンだって可能です。

p "demo" $ s "[bd [hh [cp sn:2] hh]] bd bd bd"

●「*」リピート

引数やサブディビジョンなどの要素の後ろに「*数字」とつけると、指定した数字回数分繰り返します。


●「:」セレクティング / 「# n」変数(もしくはプロパティ)

Tidal Cyclesの引数は、SuperDritシンセサイザーのサンプル音源のフォルダ名が使われている。フォルダ内に複数ファイルがある場合、「:数字」を指定することでファイルを指定することができます。1ではなく0スタート。(プログラムの配列的な連番となる)


「# n」でも同じ意味合いがあるが、変数化することで指定する値を変更することを可能にします。

(そういえば、変数の値を1ずつ増やす的な命令はないのだろうか?)

d4 $ s "cp*4" # n "0 1 2 3"
-- ↓ 同じ意味合い
d4 $ s "cp:0 cp:1 cp:2 cp:3"

●「/」スロウ

再生される音は、サイクル内が分割される程に早いテンポになるが、「/数字」を引数に付けることで演奏速度が遅くなります。「/2」だったときは2サイクルに1度だけ演奏されます。数字を1未満に設定した場合、演奏速度が早くなります。


●「,」スーパーポジション

「” ”」内は左から順番に表記された引数を参照して音を奏でていくが、「,」を入れることで引数を同時に再生させます。1サイクルのスピードは常に一定であるため、ポリリズム(拍の一致しないリズムが同時に演奏されること)が簡単に作成できるのだとか。どうも、試した感じ「/数字」のあとに「,」は入れられない気がします。


ここまでの記譜法を使うと、下記のようなリズムパターンも可能になります。

d1 $ s "[[bd sd]*4, [cp/2 ~ hc]*4]/4 [hh [bass*3 sn:2]/2]*2"

中々な複雑怪奇な(?)リズムです。