■ 前置き
私のワークアウトBGM(LoopBGM)を、トランス状態で創っているんじゃないか?と疑惑があるヤワン氏のPCがご臨終してしまった。ここ最近はACIDとNanoloopで遊んでいたようだが、そろそろシン・ダイエットをするぞと決めて1周年も過ぎたので新しいBGMが欲しい。そんなわけで、私がすっかり投げ出しているTidalに再挑戦してもらうことにした。
PC直ったら、もう一回ドキドキしながら環境を再構築せんといかんのかー。せっかくPC音源を録音する手段を得たっていうのに!
■ 本題
とりあえず、音は鳴った。ACIDLoopの事しかわからないので、基本的な部分からマニュアルサイトを訳しつつTidal Cyclesを学ぼうと思う。
■Tidal Cyclesの基本
◆ BPMではなく、サイクルという概念
Tidal CyclesはBPM(1分あたりの拍数)ではなく、CPS(1秒あたりのサイクル数)と呼ばれる測定値を使用している。時間は循環型であり、1つのサイクルが終了すると新しいサイクルが続くため、線形のように一定に反復するわけではない。そのため、1秒あたりのサイクル数によって分割されるように時間がカウントされる(例:1/3サイクル)。
線形ではなく、円形のためにTidal Cyclesでは、Xサイクル後に何が起こるか、あるいはXサイクル前に何が起こったかを実際に予測することができるので、概念的に時間を遡ったり、早送りしたりすることが少しだけ可能になっている。
◆ 構文上でサイクルを分割した場合
d1 $ s "bd hh bd hh"
↑これが1サイクルを4つの音に平等に分割したソース(多分、1/4サイクル?)
d2 $ s "dr diphone e"
↑これが1サイクルを3つの音に平等に分割したソース(多分、1/3サイクル?)
これは1サイクルの中で再生される音の長さを均等に分割するため、指定された音を再生するために1/3サイクルより1/4サイクルの方が音が速くなる。
Tidalは異なる分割数のサイクルをチャンネル(d1〜d16)を分けて重ね合わせることができる。それはポリリズムやリズムの複雑さを探求するためのツールとして、かなり優れているということになる。
◆ 構文の解析
上記の構文をサンプルにしてみよう
d1 $ s "bd hh bd hh"
d1 = チャンネル番号
$ = 半角スペース後に書かれたのは関数であるという宣言
s = 関数名:sはsoundの省略。「s」でも「sound」どちらでも機能する
“” = 引数:関数に渡して実行させる値。””が1サイクルになっている。半角スペースで区切った値を左から順番に実行する