Date:2022-04-01
[Series] はじめてのTidal Cycles :Part.8 /パターン構造と値(Pattern structure and values)
これまで”はじめてのTidal Cyclesシリーズ”投稿にて、TidalCyclesの基本的な内容を学んできました。ここからは、よりプログラム的なファンクション(関数)進んでいきます。その準備として、今回Part:8では、改めてTidalCyclesのパターン構造や数値の計算方法などを学んでいきます。
[Series] はじめてのTidal Cycles : Part.8
Tidal CycleaのWebサイトにあるドキュメントには、まずこの内容が一番はじめに記載されています。Tidal Cyclesのベースとなる部分です。もう既に、何となく理解している場合もありますが、改めてその内容に触れて理解を深めようと思います。
見出し内容を記載しますので、もうすでに、TidalCyclesサイトなどで勉強し理解されてる方は、この回は読み飛ばしてください。
ーーーーー
・TidalCycles の時間の説明
・デフォルトCPS
・サイクルパターンの可視化方法
・パターン名の変更
・サイクルを一度だけ鳴らすonce
・フェードインするxfade / xfadeIn (Transitions)
・パターンの構造
・値の計算
ーーーーー
Cycles
Tidal Cyclesという名前にもなっているCycle(周期・ひと回り)はシーケンサーなどの直線的な時間とは少し異なり、Tidal Cycles特有の時間感覚です。
時間の流れや設定については、はじめてのTidal Cycles :Part.2 でも少し触れましたが、Tidal Cyclesの時間についてもう少し学びたいと思います。
デフォルトのCPS
Tidal Cyclesでの時間設定は、“CPS”(Cycle Per Second)という1秒間にどのくらいのサイクル数を入れるかという内容でした。
setcps 2 というコードでは1秒間に2サイクル、setcps 0.5 では1秒間に半分のサイクル、1サイクル回すには2秒必要ということでした。
では、何も設定しないデフォルトの数値はいくつかというと、1秒間に0.5625サイクルになります。
cpsの設定とbmpをコードに書いた場合下記の内容になります。
setcps 0.5625
setcps (135/60/4)
135bpmということは、一般的に耳にする、テクノ(115bpm~140bpmくらい)やハウス(115bpm〜130bpmくらい)のテンポにて、ダンスミュージックとして利用しやすい速度になっています。
サイクルパターンの可視化
drawLineを利用するとパターンを可視化することができます。例えば、下記のコードで実行すると、
drawLine "a b*2 d"
下記のようにサイクルのパターンが可視化されます。
t> [11 cycles]
|a-bbd-|a-bbd-|a-bbd-|a-bbd-|a-bbd-|a-bbd-|a-bbd-|a-bbd-|a-bbd-|a-bbd-|a-bbd-
より複雑にすると、
drawLine "{a b*4 c d e/3}%2"
t> [14 cycles]
|a---bbbb|cd|ea|bbbbc---|d-|a---bbbb|cd|ea|bbbbc---|de|a---bbbb|cd|ea|bbbbc---
耳ではよく分かりづらい時にパターンを可視化して確認すると便利です。
パターンの名前変更
TidalCyclesdでは、d1〜d16まで最大16のトラックが利用できます。
コード記載時に。d1 d2 d3…とパターンの名前を設定していましたが、作曲の際に利用しやすいように数字や文字へ自由に名前を変更することができます。
数字を名前にする場合は、pの後ろにそのまま数字を入れます。
文字を名前にする場合はpの後ろに””を加えその中に文字を入れます。
p 1234 $ sound "bd!4"
p "bassdrum" $ sound "bd!4"
一度だけ鳴らす
パターン名を変えるついでに、パターン名の部分を once とするとサイクルを一度だけ再生することができます。
once $ n "0 1 2 3" # sound "cpu"
フェードイン
パターン名の部分を xfade 1 とするとフェードインすることができます。
xfade 1 $ n "0 [2 3] 0 [2 4] 0 [2 4] 0 0" # sound "cpu"
xfade の後ろの 1 は、d1 の 1 を意味します。この数字を指定することでそのクロスフェードできることになります。xfadeのxはクロスということです。
d1 $ n "1 2 [3 4] 1 [2 3] 2 3 4" # sound "kick"
xfade 1 $ n "0 [2 3] 0 [2 4] 0 [2 4] 0 0" # sound "cpu"
d1 を実行のち、xfade 1 を実行するとクロスフェードインを行います。また、名前を文字にした場合はxfadeの後ろの数字を文字にします。
p "drums" $ n "1 2 [3 4] 1 [2 3] 2 3 4" # sound "kick"
xfade "drums" $ n "0 [2 3] 0 [2 4] 0 [2 4] 0 0" # sound "cpu"
また、フェードインする長さの変更もできます。xfade の代わりに xfadeIn を利用し、続くパターンナンバー(または名前)の後にサイクル数を指定します。
d1 $ n "1 2 [3 4] 1 [2 3] 2 3 4" # sound "kick"
xfadeIn 1 8 $ n "0 [2 3] 0 [2 4] 0 [2 4] 0 0" # sound "cpu"
これら、パターンから別パターンへ音楽を切り替える方法をTransitionsとして、xfade以外にもいろいろあるので気になる方は公式サイトより。
パターンの構造
ここからが今回の本題です。
今後、ファンクション等のプログラム的なコード制作を行うにあたって、パターンサイクルの構造と値について学びます。
Tidal Cyclesでの音楽の作り方は、サイクル的に音を作り、リズムの速度はサイクルに入れる音の数で決まります。一定の速度で回るサイクルに複数音を入れていくつ分割したかというのが“パターンの構造”です。
値の計算
分割した構造にかかる様々な値(サンプル音源ナンバー、エフェクト、ファンクションなど)を計算することができます。
"2 3" |+ "4 5 6"
上記内容は、2 3 のパターン構造に 4 5 6 を足したもの。| はどちらの構造を利用するかという意味で、この場合は、|+ と左側に来ているので、2 3 のパターン構造を使う意味になります。
左の構造は2つなので、それを基準とし、順番に 2 + 4 = 6、3 + 5 = 8 と “6 8” になります。左の構造を利用するので、右の余った 6 は切り捨てになります。
逆に +| と構造を逆にすると、右側の構造を使うことになります。
"2 3" +| "4 5 6"
2 + 4 = 6、2 + 5 = 7、3 + 6 = 9 と”6 7 9″になります。
構造も値も両方計算することもできます。|+| と| を両方につけますが、この場合何もつけづに + のみと同じです。
"2 3" |+| "4 5 6"
計算式を利用した例として下記に二つコードを記載します。
--左の構造にサンプル音ナンバーを足す
d1 $ n "1 2 [3 4] 1 [2 3] 2 3 4" # s "kick" |+ n "0 3 7"
--両方の構造とスピード(ファンクション)の値を足す
d1 $ speed "0 1 2 3" # s "dsynth" |+| speed "1 3 5"
コード使用の場合は、例にある通り、n や speed など何を計算するのかを明記し計算します。
全てのオペレーターを下記まとめます。
この中に出てきた > というものがあります。
これは、計算ではなく、矢印の向いた方の値を取ります。
< なら左の値、> なら右の値を取ります。
|> は、左から構造をとり、右から値をとる( # は |> のエイリアス)
<| は、右から構造をとり、左から値をとる
|< は、左から構造をとり、左から値をとる
|> は、右から構造をとり、右から値をとる
|<| は、両方から構造をとり、左から値をとる
|>| は、両方から構造をとり、右から値をとる
|>は、#と同じです。ということは、上記全て# の代わりに利用することができます。
d1 $ sound "drum" # n "0 1 2 3"
d1 $ sound "drum" |> n "0 1 2 3"
d1 $ sound "drum" |>| n "0 1 2 3"
あとがき
これらの構造の理解と数値の計算を使うことで、より複雑なパターンを生成したり、予期せぬ面白いリズムに出会うこともあります。
さらに、エフェクトやファンクションの数値に対しても、計算するオペレータを利用することで、より動きのあるパターンを作ることができます。
いろいろ試して遊んでください。
ーーーーー
[Series] はじめてのTidal Cycles
Tidal Cyclesを始めたばかりのビギナーの方へ、また自身の復習のためにシリーズにまとめ更新していきます。コメント等ありましたら、ヘッダーメニューからInstagramまたはTwitterアカウントへメッセージください。下記メニューは随時追加されます。
Part.1 / Tidal Cyclesのサンプルを使って音を鳴らす(基礎編)
Part.2 /Tidal Cyclesの仕様、リズム構成とテンポの設定方法(CPSとBPM)
Part.3 /リズムを作る表記方法(Mini Notation)
Part.4 /オシレーター(Oscillators)
Part.5 /ユークリッドシーケンス(Euclidian Sequences)
Part.6 /オーディオエフェクト(Audio effects)
Part.7 /シンセサイザー(Synthesizers)
Part.8 /パターン構造と値(Pattern structure and values)
ーーーーー
barbe_generative_library
TidalCycles 参考書籍
[Book] 演奏するプログラミング、ライブコーディングの思想と実践
初版/ 2018.12.21
ページ数/176ページ
出版社/ビー・エヌ・エヌ新社
言語/日本語
ーーーーー
“Books”では、“barbe_generative_Library”として、
barbe_generative_diary の創作において実際に購入し、読んだ本を紹介します。
ーーーーー