Tech Racho エンジニアの「?」を「!」に。
  • 開発

ライブコーディング入門:TidalCycles篇パート2

はじめに

こんにちは。片山です。

前回は導入だけになってしまってほとんど入門出来ていないので今回はもう少し踏み込んで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にしただけですが。


ssoundの後の""内にサンプルネームを入れてあげることで音が出る仕組みですが、じゃあサンプルのリストはどこにあるの?となりますね。

SuperColliderのエディタ

Quarks.gui;

と書いてEvaluateします。

すると

supercollider

こんな感じのウィンドウが出てきますので、Dirt-Samplesをクリックしてあげるとウィンドウ下の方にサンプルが保存されているディレクトリのパスが表示されます。

筆者のMacでは~/ライブラリ/Application Support/SuperCollider/downloaded-quarks/Dirt-Samplesにありました。

supercollider

勿論ここに自分でサンプルを追加してあげることも出来ます。(追加した場合はSuperDirtを再起動しないと読み込まれないので注意)


Quarks.gui;でDirtのサンプルを見てみるとbdというサンプル一つとっても24個もあります。

supercollider

じゃあ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が並行して流れていきます。

つまりどういうことかというと

supercollider

雑な図ですが多分こんなイメージになります。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に沿ってやってきました。

次回があれば続きをやっていきたいと思います。

関連記事(サウンドとコンピュータ)

ライブコーディング入門:TidalCycles篇パート1

ライブコーディング入門:Sonic Pi篇パート1

python-oscを使ってみる:前編

python-oscを使ってみる:後編

応用編1: pythonとopenFrameworksをOSCで接続する

応用編2: PythonとopenFrameworksとPuredataをOSCで接続する

iPhoneとopenFrameworksをOSCで接続する


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。