TidalCyclesのチュートリアル1


コードを読んで演奏してみたら、自分でサンプルを変更してみましょう。

リズミカルなシーケンスを作成する

単一のシーケンス

サンプルを再生する

Tidalはd1からd9という名前のSuperDirtシンセサイザーへの9つの接続から始まります(もしあなたが"classic"dirtを使っていたらc1からc9を使います)。サイクルごとにキックドラムを演奏する最小のコードは次の通りです:
d1 $ sound "bd"

Atom(またはEmacs)エディタで上記のコードを実行するには、Ctrl + Enterを押します。音をもう一度止めたい場合は、
d1 silence
を実行してください。

上記のコードでは、soundはサウンドサンプルのパターンを作成していることを示し、bdは単一のサウンドを含むパターンです。bdはキックドラムのサンプルです。サンプルはSuperDirtに付属のDirt-Samplesフォルダ内にあり、その下の各サブフォルダはサンプル名(bdなど)に対応しています。

システム上のSuperDirtサンプルを検索するには、SuperCollider IDEでFile> Open User Support Directoryメニュー項目を選択します。そこからdownloaded-quarksを開き、最後にDirt-Samplesをオープンします。たくさんのフォルダがあり、それぞれが標準のwavファイルを含むサンプルの集合です。自由に新しいフォルダを作成し、独自のサウンドを追加してください。

コロン:と数字をつけて、bdフォルダ内の別のサンプルを選ぶことができます。例えば、これは4番目のキックドラムを選びます(0から数えます:3はフォルダの4番目のサウンドを与えます):
d1 $ sound "bd:3"

フォルダ内のサンプル数よりも大きい数を指定した場合、Tidalは最初のサンプルに戻って周りを「折り返す」(たとえば、5つのサンプルがあるフォルダでは0でカウントし始め、bd:5bd:0が再生されます)。

サンプル番号を別々に指定することもできます:
d1 $ sound "bd" # n "3"

サンプル番号を別々に指定することの有用性は後で明らかになると思います。

複数のサンプルからのシーケンス

コードを引用符で囲むことで、シーケンスを定義することができます。たとえば、次のようにすると、キックドラムとスネアのパターンが得られます。:
d1 $ sound "bd sd:3"
上記のコードを実行すると、以前のパターンは直ちに別のパターンに置き換えられます。おめでとうございます、これであなたはライブコーディングしていることを実感できると思います。

複数のシーケンスを再生する

同時に複数のシーケンスを再生する最も簡単な方法は、シンセサイザーへの2つ以上の接続を使用することです。:

d1 $ sound "bd sd:1"

d2 $ sound "hh hh hh hh"

d3 $ sound "arpy"

注:各接続は、テキストエディタで個別に実行する必要があります。つまり、Ctrl + Enterを3回、上記の行ごとに1回ずつ押す必要があります。それぞれのパターンの間に空白行があることを確認してください、空白行が無いとTidalがそれらを一緒に実行し混乱します(1行だけを実行したい場合はshift-enterを押してください)。

Cycleとは?

cycle(=サイクル)は、Tidalにおける時間の「ループ」です。サンプルの再生を停止した場合でも、cycleはバックグラウンドで永遠に繰り返されます。cycleの継続時間は、cpsで変更しない限り、同じままです。これについては後で説明します。デフォルトでは、1秒あたり1サイクルあります。

このこの無限循環ループは強制するものではありませんが、たとえば、様々な単一のループをあるループから次のループにパターンを変えることが一般的です。後でこれを行ういくつかの方法を紹介します。

パターン内のすべてのサンプルは、1つのサイクルとしてまとめられます。以下のパターンはすべて同じ時間でループします。:
d1 $ sound "bd sd"

d1 $ sound "bd sd hh cp mt arpy drum"

d1 $ sound "bd sd hh cp mt arpy drum odx bd arpy bass2 feel future"

パターンに追加するステップが増えたとき、それらをすべてに収めるためにそれらがより速く演奏されることを確認してみてください。このようにしてパターンに入れたサンプル数に関係なく、それらは常に1つのサイクルで均等に分散されます。

音を止める

Silence

:この時点で、開始したパターンを停止する方法を知りたいと思うでしょう。空のパターンはsilenceと定義されているので、パターンを'オフ'したい場合は、それを以下のように設定するだけです:
d1 silence

すべての接続(d1からd9まで)を一度にサイレントにする場合は、そのための1単語のショートカットがあります:
hush

単一の接続を分離して、他のすべての機能をソロ機能で無音化することもできます。:
solo $ d1 $ sound "bd sn"

パターン内のパターン

パターングループ

Tidalの大括弧[]の構文を使ってパターンのグループ化を作成することができます:
d1 $ sound "[bd sd sd] cp"

角括弧では、複数のイベントを1つのステップ内で再生できます。上記のパターンは2つのステップを持つと考えることができます。最初のステップは3つのステップを持つサブパターンに分割されています。実際には、これは、より細かいサイクルの細分化を作成できることを意味します。:

d1 $ sound "bd [sd sd]"
d1 $ sound "bd [sd sd sd]"
d1 $ sound "bd [sd sd sd sd]"
d1 $ sound "[bd bd] [sd sd sd sd]"
d1 $ sound "[bd bd bd] [sd sd]"
d1 $ sound "[bd bd bd bd] [sd]"

グループ内のグループをネストして、ますます密集した複雑なパターンを作成することもできます。:
d1 $ sound "[bd bd] [bd [sd [sd sd] sd] sd]"

この種のグループ分けの略語は、大括弧で囲むのではなく、グループ間にピリオド.を置くことです。私たちは、この技術を「marking out feet(足元をマークする)」と呼びます。たとえば、これらの2つのパターンは同じです。:
d1 $ sound "bd bd . sd sd sd . bd sd"

d1 $ sound "[bd bd] [sd sd sd] [bd sd]"

前者のアプローチは入力が簡単ですが、TidalCyclesに比較的新しく追加されたものであり、多くの例では角括弧大括弧を使用しています。

グループ化ではなくレイヤリング(ポリリズム)

ポリリズム - Wikipedia
コンマを使用して複数のループを階層化(レイヤリング)することもできます。:
d1 $ sound "[bd bd bd, sd cp sd cp]"

これは、sd cp sd cpと同時にシーケンスbd bd bdを再生します。最初のシーケンスには3つのイベントしかなく、2番目のシーケンスには4つのイベントしかないことに注意してください。Tidalは両方のループが同じ周期的な期間内に収まることを保証します。

任意の数のサブパターンをレイヤーして、多くのポリリズムを作成できます。:
d1 $ sound "[bd bd bd, sd cp sd cp, arpy arpy, odx]"

もちろん、レイヤー内でグループを使用することもできます:
d1 $ sound "[bd bd bd, [sd sd] cp, arpy [arpy [arpy arpy] arpy arpy], odx]"

サイクルごとに1つのステップを演奏する

サイクルごとに1つのステップしか再生されないグループを指定するには、山括弧<>を使用します。例えば:
d1 $ sound "bd <arpy:1 arpy:2 arpy:3>"

上記の結果は、3サイクルにわたるシーケンスbd arpy:1 bd arpy:2 bd arpy:3になります。

パターンの繰り返しと速度

繰り返し

スピードアップしたり、遅くするために、内部のパターンを使うことができる2つの簡略記号: */があります。これらを乗算や除算のように考えることができます。

* 記号を使用して、パターンまたはパターンの一部を何度でも繰り返すことができます。:
d1 $ sound "bd*2"

これは、d1 $ sound "bd bd"と同じです。

上記のコードは*2を使用してサンプルを2回再生します。

/ 記号を使用すると、パターンの一部を遅くすることも少なくすることもできます。:
d1 $ sound "bd/2"

上記のコードでは、/2を使用してサンプルを半分の頻度で、または2回のサイクルごとに1回再生させています。
異なる数字を使用しても、期待通りに機能します。:
d1 $ sound "bd*3" -- plays the bd sample three times each cycle

d1 $ sound "bd/3" -- plays the bd samples only once each third cycle

グループの*/を使う

*/ 記号をパターンのグループに適用することができます:
d1 $ sound "[bd sn]*2 cp"

d1 $ sound "[bd sn] cp/2"

d1 $ sound "[[bd sn] cp]*2" -- speeds up the entire pattern by 2

d1 $ sound "[[bd sn] cp]/2" -- slows down the entire pattern by 2

ネストされたグループのシンボルを使用して、より複雑なリズムを作成することもできます。:
d1 $ sound "[bd sn sn*3]/2 [bd sn*3 bd*4]/3"

d1 $ sound "[bd [sn sn]*2]/2 [bd [sn bd]/2]*2"