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】:テンポに応じた音符の長さを判定します