とにかくこの動画を見てくれ!
TidalCycles、めっちゃ簡単にBreakcore/Mashcore作れてテンション上がってきた pic.twitter.com/kVpnxE9u3T
— amagi (@amagitakayosi) 2017年6月23日
ライブコーディングでフレンチコアもできる時代@tidalcycles pic.twitter.com/hgFHfY7rNW
— DJ SHARPNEL@VR (@sharpnelsound) 2017年6月25日
たった20~30行くらいのプログラムで音楽がつくれる!
それがTidalCycles!
この記事ではTidalCyclesについてザッと紹介し、さっきの動画で演奏している内容について解説します。
僕自身もTidalCyclesに入門したばかりなので、TidalCycles仲間が増えたらいいなって思ってます😸。
対象読者
- 音楽が好きな人
- DAWで作曲するのに飽きた人
- Sonic PiやSuperColliderは触ったことあるけど……という人
- 好奇心旺盛なプログラマー
目次
TidalCyclesとは
TidalCyclesは、音楽を自動で作曲・演奏するためのシステムです。
プレイヤーは演奏内容を表すプログラムをリアルタイムに作成し、次々とシンセサイザーの演奏を変更していきます。
普通の音楽演奏に例えるなら、楽譜をリアルタイムで書いていく感じでしょうか。
このように、リアルタイムにプログラミングすることを ライブコーディング と呼びます。
他のライブコーディング用システムとの違い
ライブコーディング用システムは他にもいろいろ存在しています。
他のシステムと比較したとき、TIdalCyclesは何がどうちがうのでしょうか?
個人的にしばらく使ってみた結果、、以下のようなメリット・デメリットがあると感じました。
メリット: 非常に短いコードで音楽を作れる
ここでいう「コード」とは和音のことではなく、プレイヤーが書くプログラムのことです。
プレイヤーは、プログラミング用のテキストエディターを利用して、コードを書くことで演奏内容を指定します。
例えば、キックの4つ打ちを Sonic Pi で表現しようとすると、以下のようなコードになります。
live_loop :kick do sample :bd_haus sleep 1 end
ところが、TidalCyclesだと、たった1行で表現できてしまいます!
d1 $ sound "bd bd bd bd"
見た目にも直感的な感じがしますね。
サンプラーを簡単に使える
TidalCyclesは、デフォルトではSuperDIrtというサンプラーを利用するようになっています。
このサンプラーには200種類以上のサンプルが含まれています。
ベーシックなTR-808/909の音色や、ガバキックなども入ってたりする。
TR-808のキックだけでもたくさんある。
サンプルを使うには、 d1 $ sound "808bd"
とするだけ!
自作のサンプルを使うときも、サンプルのフォルダに新しいフォルダを追加して、 bd
や 808bd
の代わりにフォルダ名を書くだけで良いです。便利!
インストールが難しい
TidalCyclesはまだ歴史が浅く、日本語情報もほとんどないので、環境構築がちょっと大変かもしれないです。
ProcessingやopenFrameworksで有名なyoppa氏が、TidalCyclesのインストール方法を解説されているので、そちらをご覧ください。
第9回 Live Coding入門 – TidalCycelsのセットアップと基本 | yoppa org
動画の解説
ここでは、記事冒頭で紹介した動画のうち、僕が作ったほうについて解説していきたいと思います。
TidalCycles、めっちゃ簡単にBreakcore/Mashcore作れてテンション上がってきた pic.twitter.com/kVpnxE9u3T
— amagi (@amagitakayosi) 2017年6月23日
YoutubeでTidalCyclesの解説動画を見てる内に、ブレイクビーツが以外に簡単に作れる事がわかり、ランダムに音を加工したりアニソンをサンプリングするだけでBreadkcoreが作れるのでは?と思って試してみたのでした。
この動画で使ったコードは以下の通りです。
(解説の都合で一部省略しました)
-- breakcore.tidal cps (140 / 120) d1 $ sound (samples "amen*8" (irand 12)) # crush 4.5 # cut 1 # up (rand * 10) d2 $ s (samples "anime" (irand 22)) # cut 8 # up 2 # gain 0.9 # crush 3
テンポを設定
まず、1行目で曲のテンポを設定しています。
普通のDAWソフトだとBPMを指定しますが、TidalCyclesでは CPS
という単位で指定します。
ちょっと奇妙な感じがしますが、これはTidalCyclesが拍単位 (beat) ではなく、サイクル (cycle) 単位で実行されるからです。
このため、5拍子や7拍子の曲を作ったり、ポリリズムの曲を簡単に実現できるというメリットがあります。
アーメンブレイク
次の段落では、いわゆるブレイクビーツを演奏しています。
TidalCyclesの基本的な文法は次のようになります。
トラック番号を指定して、パターンを指定して、エフェクトをかける……という順番ですね。
d1 $ sound (samples "amen*8" (irand 12)) -- "amen" サンプルをランダムに8回再生 # crush 4.5 -- ビットクラッシャー # cut 1 -- サンプルの長さを調整 # up (rand * 10) -- サンプルのピッチをランダムに変更
今回は自分で用意した音声ファイルを利用しましたが、TidalCyclesにはデフォルトでいくつかドラムループ音源が入っているので、そちらを利用するのも良いでしょう。
カーソルをこの段落に移動し、 ⌘ + return
(Windowsの場合は Ctrl + Enter
)を押すことでプログラムを実行しています。
動画内では段落が光るところがありますが、そのタイミングでプログラムが実行されています。
アニソンをサンプリングして再生
最後の段落でも、やってることは先程の段落とだいたい同じです。
ただ、サンプルの再生スピードがあまりに速いと困るので、サンプルの再生回数と長さを調整しています。
たったこれだけのプログラムで、ちょっとしたブレイクコアができてしまいました……!!
おわりに
この記事をみて興味を持っていただけたら、是非TidalCyclesを触ってみてください!
いい演奏ができたら、TwitterやYoutubeに演奏動画を公開してみてくださいね ⚡⚡