tidalcyclesで遊ぶために必要な「超基礎」だけをサクっとまとめてみたのでライブコーディング気分を堪能しよう!

投稿日:2017-11-25



ナカジ(@cp_nakajun)です。

tidalcyclesが面白い!!

MAX(max/msp)やPureDataなどの命令を線で繋い(パッチング)でプログラムする環境に慣れてることもあって、テキストで記述するタイプのtidalcyclesに少しハードルの高さを感じていたのです。

ところが少し触ってみるととりあえず音を出して遊ぶ(ライブコーディング気分を味わう)ぐらいならかなり簡単な記述(少しのことを覚えるだけ)で楽しく遊べました。

面白いです。

ライブコーディングと呼ぶにはあまりにも稚拙(そんなこと言えない)ですが
この記事を読めば以下のような感じ(ライブコーディング気分)で遊べます


ハードルは「インストール」が手間だったりわかりにくかったりだと思うのですが、そこは以前の記事を読んで頂けたら大丈夫だと思います。

スポンサーリンク

tidalcyclesの「超基礎」

目次はこんな感じです。

  1. tidalcyclesを起動する
  2. TidalCyclesの実行方法
  3. テンポ(Tempo)
  4. Track(トラック)数
  5. シーケンス(Sequences)
  6. SuperDirt Synthesiser

tidalcyclesを起動する

まずはライブコーディングを始められる(音を出せる)状態にします。

コードを記述するエディターは「Atom」を利用します。

手順は

  1. SuperCollider(アプリ)を起動
  2. SuperDirt(supercolliderから)をスタート
  3. Atom(アプリ)を起動
  4. 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小節ループになります。

cps1秒あたりのサイクル数です。

  • 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にのめり込み、学習がすすんだら続編をやりたいと思います。

▼目指せコレ

スポンサーリンク


ライブコーディング書籍がついにでました!

おすすめのクリエイティブ・コーディング関連カテゴリー

クリエイティブコーディング系 講座


ウェブツール

機能はシンプルなものですが、p5.jsやTone.jsで描画したり音が出たりするので遊んでみてください。
・【Midi Number Tools】:MIDIナンバーから音名と周波数を判定します
・【Delay Time Calculator】:テンポに応じた音符の長さを判定します