はじめに
こんにちは。片山です。
前回は導入だけになってしまってほとんど入門出来ていないので今回はもう少し踏み込んでTidalCyclesを勉強していきたいと思います。
基本的には公式のCreating Patternsを参考に進めていこうと思います。
前回もお伝えしましたが、TidalCyclesは諸事情によりちょっと古いバージョン0.8.2を使用しています。
TidalCyclesを試してみる
まずはSuperColliderを開いてSuperDirtを起動します。
SuperDirt.start;
Tidal用のプラグインを起動したAtomとかEmacsで任意のファイル名.tidal
を開きます。
で、
d1 $ sound "bd"
とか書いてEvaluateしてあげますとバスドラムの音が出ると思います。
ちなみに上のコードは
d1 $ s "bd"
と書いてあげても大丈夫です。sound
を省略してs
にしただけですが。
s
やsound
の後の""
内にサンプルネームを入れてあげることで音が出る仕組みですが、じゃあサンプルのリストはどこにあるの?となりますね。
SuperColliderのエディタで
Quarks.gui;
と書いてEvaluateします。
すると
こんな感じのウィンドウが出てきますので、Dirt-Samples
をクリックしてあげるとウィンドウ下の方にサンプルが保存されているディレクトリのパスが表示されます。
筆者のMacでは~/ライブラリ/Application Support/SuperCollider/downloaded-quarks/Dirt-Samples
にありました。
勿論ここに自分でサンプルを追加してあげることも出来ます。(追加した場合はSuperDirtを再起動しないと読み込まれないので注意)
Quarks.gui;
でDirtのサンプルを見てみるとbdというサンプル一つとっても24個もあります。
じゃあbd内の24個のサンプルはどうやって使い分けるの???となりますね。
ディレクトリ内で一番上のサンプル(上のスクショだとBT0A0A7.wav
)を指定する時には
d1 $ sound "bd:0"
または
d1 $ sound "bd" # n "0"
と書いてあげます。
ちなみに上2つのコードは
d1 $ sound "bd"
と全く同じ意味になります。つまり各サンプルディレクトリの一番上の音を出すときには番号の指定がいらないということです。
注意点としては配列のように0番からカウントするので、例えば24個目のサンプルは23番で指定されるということでしょうか。
先程からd1
ばかり出てきていますが、なんで1やねん!?と思いますよね。
実は
d1 $ sound "bd bd bd" # n "1 2 3"
d2 $ sound "sn sn" # n "3 4"
みたいなことが出来ます。
上の場合だとd1とd2が並行して流れていきます。
つまりどういうことかというと
雑な図ですが多分こんなイメージになります。2拍と3拍のポリリズムですね。(※勘違いしてたらすみません)
ここのCycleという概念がちょっと大事で、一定の長さのCycleの中でd1やd2のループを回していくイメージです。
じゃあCycleの長さはどうやって変えるんだよということですが、これはcps
とかbps
とかを使ってあげます。
cps(1.0) --1が標準で、数値が大きくなるほどテンポが早くなる
bps(120/60) --これでcps(1.0)と同じになります。cpsの方が使いやすそう?
音出すのはいいけど止めるのはどうすんの?ということですが
d1 silence
とか書いてEvalしてあげればオッケーです。ポイントは$
がいらないことですかね。
また小技として、例えば、d1、d2、d3、d4と鳴っている状況で、d1とd3を同時に止めたい、という時には
d1 silence >> d3 silence
と書いてEvalしてあげるといいみたいです。(以前どこかでやり方を聞いた)
他にも、>>
を使う小技は、
let s1 = d1 $ s "bd bd bd"
let s2 = d2 $ s "sn sn sn sn"
s1 >> s2
みたいなのも考えられます。
d1、d2、d3が鳴っていて、d1だけにしたい!という場合には
d2 silence >> d3 silence
以外にも、公式のマニュアルにも載っているように
solo $ d1 $ s "bd bd bd" --ここだけEvalすればいい
d2 $ s "sn sn sn sn"
d3 $ s "cp cp cp cp cp"
とやる方法もあります。
ちなみに全ての音を同時に止めたいときは
hush
と書いてEvalすればよろしいです。
終わりに
今回はとりあえず基本的なところを公式のCreating Patternsに沿ってやってきました。
次回があれば続きをやっていきたいと思います。