tidalcyclesで遊ぶために必要な「超基礎」だけをサクっとまとめてみたのでライブコーディング気分を堪能しよう!
ナカジ(@cp_nakajun)です。
tidalcyclesが面白い!!
MAX(max/msp)やPureDataなどの命令を線で繋い(パッチング)でプログラムする環境に慣れてることもあって、テキストで記述するタイプのtidalcyclesに少しハードルの高さを感じていたのです。
ところが少し触ってみるととりあえず音を出して遊ぶ(ライブコーディング気分を味わう)ぐらいならかなり簡単な記述(少しのことを覚えるだけ)で楽しく遊べました。
面白いです。
ライブコーディングと呼ぶにはあまりにも稚拙(そんなこと言えない)ですが
この記事を読めば以下のような感じ(ライブコーディング気分)で遊べます
ハードルは「インストール」が手間だったりわかりにくかったりだと思うのですが、そこは以前の記事を読んで頂けたら大丈夫だと思います。
tidalcyclesの「超基礎」
目次はこんな感じです。
- tidalcyclesを起動する
- TidalCyclesの実行方法
- テンポ(Tempo)
- Track(トラック)数
- シーケンス(Sequences)
- SuperDirt Synthesiser
tidalcyclesを起動する
まずはライブコーディングを始められる(音を出せる)状態にします。
コードを記述するエディターは「Atom」を利用します。
手順は
- SuperCollider(アプリ)を起動
- SuperDirt(supercolliderから)をスタート
- Atom(アプリ)を起動
- TidalCycles(Atomから)を起動
SuperDirtのスタートは
SuperColliderに
SuperDirt.start;
と記述し、コードを選択した状態で「command+enter」で実行します。
以下のメッセージがコンソールに表示されたらSuperDirtの起動完了です。
SuperDirt: listening to Tidal on port 57120
TidalCyclesの起動
Atomのメニューから
「パッケージ > TidalCycles > Boot TidalCycles」を選択すると
TidalCyclesが実行されます。
TidalCyclesの実行方法
とりあえず、「音が出るか」の確認も含めてTidalCyclesの実行方法です。
Atomに以下のように記述して
d1 $ sound "bd sn"
拡張子を「〜.tidal」にして保存します。
(もしくはAtomの書式をTidalCyclesに変更する)
音を出す(実行)はコードを選択した状態で「command+enter」です。
全部の音を止めるには
hush
と記述し、同じように「hush」の部分だけを選択して実行します。
TidalCyclesでまず覚えること
最初に大前提です。
TidalCyclesは時間軸を管理する「ループ」として“cycle”という単位を使います。
テンポ(Tempo)
最初に「テンポの設定方法」がきになるというのは僕の性なのでしょうか。
(公式サイトでも中盤くらいになってようやく記述がある)
TidalCyclesでは「cps」(=Cycle Per Second)で管理します。
(bps=beat per secondでも設定できるようですがここではcpsを使います)
初期設定は「1 cps」なので1秒で1ループです。
4/4拍子だとするとBPM=240の1小節ループになります。
cpsは1秒あたりのサイクル数です。
- cps 1:1秒で1ループ
- cps 2:1秒で2ループ(倍)
- cps 0.5:1秒で0.5ループ(半分)
となります。
BPMで設定する場合
例えば1サイクルあたり4拍で140 bpmで演奏したい場合は
cps (140/60/4)
「cps (bpm/60/拍数)で設定できます。
Track(トラック)数
TidalCyclesはd1〜d9までの9つのSuperDirt synthesiserへの接続コネクションがあります。
各コネクションはトラックチャネルのように使えます。
Mute(ミュート)
d1 silence
Solo(ソロ)
solo $ d1 $ sound "bd sn"
シーケンス(Sequences)
ダブルクォーテーション – “” = 1Cycle
ダブルクォーテーションは1サイクルを表します。
d1 $sound “bd”
bd |
d1 $sound “bd sn”
bd | sn |
d1 $sound “bd hh sn bd”
bd | hh | sn | bd |
大括弧 – [] = パターングループ
大括弧を使ってグルーピングができます。
d1 $ sound "[bd bd] [sd sd sd] [bd sd]"
bd bd | sd sd sd | bd sd |
d1 $ sound "bd bd . sd sd sd . bd sd"
「.」を使っても同じ効果を得ることができます。
繰り返し「*」
d1 $sound “bd*2 cp*2”
bd | bd | cp | cp |
休符「〜」
「〜」をつかうことで無音(休符)になります。
d1 $sound "bd ~ bass cp“
bd | – | bass | cp |
SuperDirt Synthesiser
ここまでにでてきた「bd」や「cp」ですが、実際に音を出して確かめながら読んで頂いた方は「bd」はバスドラ、「cp」はクラップだと認識していると思いますが
実際にこれは「何」がなっているのかというと
SuperDirtのサンプルファイルを鳴らしています。
他にどんな音(サンプル)があって、どんな「音」なのかを確認するには
「~/Library/Application Support/SuperCollider/downloaded-quarks/Dirt-Samples」
のファイルを確認してみてください。
SuperDirtサンプルの選択
SuperDirtのサンプルファイルが複数あることを確認できたと思います。
ではどうやって使うのか。簡単です。
Dirt-Samples内のフォルダー名がサンプルの名前で、その中の「何番目のファイル」かを指定します。
d1 $ sound "arpy:0 arpy:2 arpy:3"
この場合「arpy」がフォルダー名で「:」に「何番目のファイル」かを指定しています。
下記は上記と同じことを表しています。
d1 $ n "0 2 3" # s "arpy"
tidalcyclesの超基礎 最後に
tidalcyclesで遊ぶために必要な「超基礎」はとりあえず以上です。
僕がもっとtidalcyclesにのめり込み、学習がすすんだら続編をやりたいと思います。
▼目指せコレ