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

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

●「$jux」

左右のチャンネル(音の出力:スピーカーのようなもの)に変化を与えるため、右チャンネルだけの再生スピードに変化を与える関数です。引数には数値以外にも関数($rev、$iter、$slowなど)を指定することで、変わった効果を生み出します。

d4 $jux(iter 3) $s "[bd2 [cd2, hc*3]]/0.5"

●「$every」

教則本でも、タイムシフトの説明の際に不意に登場した「$every」関数。ああいう説明文が書いてあったためにタイムシフト用の関数だとばかり思っていたら、全然違う!!

この関数は、演奏を変化させる関数($rev、$iter、$slowなど)をそのまま使うと継続して変化を行い続けます。「$every」関数を利用することで、演奏を変化させるタイミングを指定することができます。例えば下記のように記載すると、3回普通に演奏して4回目に変化(この場合は演奏順を逆にする)をつけて演奏します。


d2 $ every 4 (rev) $s "bd*2 [bd |cp |hh]"

●「$whenmod」

こちらは「●回のループの中で、■回はノーマルに演奏して残りは変化を適用させて演奏する」的な変化をつけてくれます。

例えば、下記のように記載すると、5回のループ中、3回目からfast 2で演奏します。

$ whenmod 5 2 (fast 2) $ s "[ade4 |notes4 |newnotes4 |peri4]" # n "0 1 2 3"

●「!」

引数の後ろに「! 数字」と書くことで、「[ ]」サブディビジョンを付けずに数字分複製して演奏します。


●「$Striate」

しっくりする説明が見つけられないので、保留。


●「 | 」

「[ ]」サブディビジョン内に書かれている引数を「 | 」で区切ることで、サイクルごとに参照する引数をランダムに選び出します。下記の例では、bd*4、hh*12、cp*2がサイクルごとに均等確率で選択されて演奏されます。

d1 $ s "[bd*4|hh*12|cp*2]"

SymbolDescription同じ意味
~休符d1 $ s "~ hh"
[ ]パターン内にグループを作る(細かくする)d1 $ s "[bd sd] hh"d1 $ fastcat [s "bd sd", s "hh"]
.複数グループを作る際に記号を省略するd1 $ s "bd sd . hh hh hh"d1 $ s "[bd sd] [hh hh hh]
,複数のパターンを同時に演奏する。サブディビジョン内でなくてもOKd1 $ s "[bd sd, hh hh hh]"d1 $ stack [s "bd sd", s "hh hh hh"]
*同じ引数をグループを作って繰り返すd1 $ s "bd*2 sd"d1 $ s "[bd bd] sd"
/実行される引数を遅くするd1 $ s "bd/2"d1 $ s (slow 2 $ "bd")
|サイクルごとに演奏するパターンを均等確率で選択するd1 $ s "[bd |cp |hh]"
< >パターン内の引数を交互に入れ替えるd1 $ s "bd <sd hh cp>"d1 $ slow 3 $ s "bd sd bd hh bd cp"
!引数を指定した数値だけ複製するd1 $ s "bd!3 sd"d1 $ s "bd bd bd sd"
_Elongate a patternd1 $ s "bd _ _ ~ sd _"Results in pattern (0>1/2)\|s: "bd" (4/6>1)\|s: "sd"
@Elongate a patternd1 $ s "superpiano@3 superpiano"d1 $ s "superpiano _ _ superpiano"
?Randomly remove events from patternd1 $ s "bd? sd"d1 $ fastcat [degradeBy 0.5 $ s "bd", s "sd"]
:サンプル内の番号を指定する。指定がない場合は、「: 0」として扱われるd1 $ s "bd:3"d1 $ s "bd" # n 3
( )Euclidean sequencesd1 $ s "bd(3,8)"d1 $ euclid 3 8 $ s "bd"
{ }最後のパターンのリズムスピードが、直前のパターンのリズムスピードに合わせて変化をしていくd1 $ s "{bd bd bd bd, cp cp hh}"2nd pattern wraps: d1 $ stack [ s "bd*4", s "cp cp hh cp" ]
{ }%Polymetric sequence subdivisiond1 $ s "{bd cp hh}%8"Pattern wraps: d1 $ s "bd cp hh bd cp hh bd cp"