Tidalcyclesに出会って1年を振り返る

Live CodingのツールであるTidalcyclesに出会って1年が経ちました。これまでにやってきたことを振り返ります。

Tidalcyclesとの出会いまで

DAWやMaschineでの作曲に限界を感じていたとき、ふとプログラミングでの作曲に出会いました。最初はインストールも簡単なSonicPiを使い、プログラミングでの作曲の自由度に驚きました。公式アカウントにリツイートしてもらって嬉しかった記憶があります。

「プログラミングで作曲してみたい」という人には、まずはインストールなどの準備が簡単なSonicPiがおすすめです。動画のように、波形が表示されたりしてかっこいいのもポイントです。

Tidalcyclesの最初の作品

私のTidalcyclesの最初の作品は2019年11月に作成しました。デフォルトの音源だけを使ってLive Coding的なことをしていました。画面キャプチャの方法も、MacのQuickTimePlayerを使ってモノラルで収録していました。

この時期に、田所先生著のLive Codingのバイブルである「演奏するプログラミング、ライブコーディングの思想と実践 ―Show Us Your Screens」を購入しました。この本はSonicPiとTidalcyclesを詳細に解説してあるのでおすすめです。

ちなみに、皆が必ず苦労するポイントであるTidalcyclesのインストール方法については、とにかくググって調べてなんとか1日で完了できました。最近は改善されつつあるようですが、インストールが必要なソフトが多く大変なのは変わらないと思います。

Tidalcyclesに本格的にハマる

2020年6月、久しぶりにTidalcyclesを触ったらハマり、ここから怒涛のように作品をアップし始めました。作っては画面録画してtwitterに公開、というサイクルを短く回しています。

外部音源(カスタムサンプル)取り込みを開始

Tidalcyclesデフォルトの音源に限界を感じたので、外部音源を取り込み始めました。デフォルト音源だけだと音色の幅が狭く、外部音源の方が音がいいので、慣れてきたら外部音源取り込みをおすすめします。外部音源取り込み方法は、この記事にも書いていますし、ググっても情報が集められます。

slice機能での気付き

この動画でも使っている、Tidalcyclesの「slice」という機能を試して気づいたのが、「Tidalcyclesはサンプラーそのものだ」ということです。

「slice」というのは、そもそもHiphopなどのサンプリングミュージックの重要な技法で、レコードなどの音源を「スライス」して、それを組み合わせて曲を作ります。Tidalcyclesの「slice」も同じで、音源をスライスして組み合わせることができます。

これに気づいたときに、「Tidalcyclesは今まで自分がやってきたDAWやMaschineと同じサンプラーだ、でもDAWやMaschineとは切り口がぜんぜん違うので、別方向の面白いことができそうだ」と確信しました。

特に、ドラムサンプルをスライスして並べ替えつつ、エフェクトをガンガン抜き差しすることで、ただきれいに並べ替えたのとは違う、カオスで破壊的な音にすることができます。

さらに、自分がやりたかったことの一つである「ルーズなドラム」をnudgeとswingByという機能で実現できることがわかり、さらにTidalcyclesにのめり込んでいきます。

Processingとの組み合わせ

Tidalcyclesの曲だけをアップしても見栄えがしないので、映像をオーディオリアクティブ(音に映像が反応する)にできないか模索したところ、Processingに出会いました。

ここでも田所先生の著書「Processing クリエイティブ・コーディング入門 ―コードが生み出す創造表現」を購入して、2日でこのツイートのような作品を作りました。

ここでは、Tidalcyclesで作った音を再生してProcessingに入力し、Processingは入力された音量に反応して動く、という仕組みにしています。(OSC連携とかMIDI連携とかはしてません)

これをやるときの課題が、「Tidalcyclesのオーディオ出力をProcessingに入力するのが難しい」という点です。私はオーディオインターフェースのLoopbackという機能を使って実現しましたが、オーディオインターフェースがない場合は実現できるかわかりません。やるならPCのスピーカーからTidalcyclesの音を出力して、PCのMic入力を利用するのが手っ取り早いかもしれません。

Processingでオーディオリアクティブを作ると、この下の動画のように、音に反応して丸や線が動くので、見ていて飽きないし、twitter映えする作品ができます。

契機となる4作品

これらの作品を作ったことで、「Tidalcyclesは前衛っぽい曲やノイズ系みたいな、とっかかりにくい音楽が割と多いけど、普通のダンスミュージックも普通に作れそう」と気づきました。

具体的には、以下のようなDAWでもよくやる作曲方法をコーディングしました。

  • Filterの周波数を徐々に上げていく(DJがよくやるやつ)
  • 8小節の最後にドラムだけ抜く
  • 8小節の頭でシンバルを鳴らす
  • シャッフルのようにハネる

Ableton liveとの組み合わせ

下記動画で、Tidalcyclesのオーディオ出力(正確にはSupercolliderのオーディオ出力)をAbleton Liveの入力につないで、Ableton Liveでオーディオエフェクトをかける、という手法を生み出しました。Ableton LiveのオーディオエフェクトはMIDIコントローラー(Maschine)のつまみで制御します。この手法により、

  • 曲の展開を制御できる
  • ビートライブのエフェクトの手法を使える
  • 音にEQ・コンプ・リミッターをかけて音圧を稼げる

といったメリットが生まれました。Ableton Liveの設定は、このサイトを参考にしました。

特に「EQ・コンプ・リミッターをかけられる」というメリットを強調したいです。Tidalcyclesはトータルエフェクトの概念がないので、コンプが使えず音圧が低くなりがちですし、低音を持ち上げて迫力を出すこともできませんでした。これらのエフェクトをAbleton Liveに任せることで、音楽作品としてのクオリティがグンと上がります。

この手法をする場合も、オーディオルーティングが課題ですが、私の場合、

Tidalcycles(Supercollider)->Soundflower->Ableton Live->オーディオIF

という流れで実現しました。

具体的には、以下設定をしました。

  • Supercolliderのオーディオ出力をSoundflowerに設定する
  • Ableton Liveのオーディオ入力をSoundflowerに設定する
  • Ableton Liveのオーディオ出力をオーディオIFに設定する

画面録画について、この頃からOBSを使用するようになり、ステレオで画面録画できるようになりました。

動画ではProcessingの3Dモードを使っていい感じのVJができるようになりました。cameraをsineで動かすことで実現しています。

ProcessingでVJ

映像のクオリティを上げるために、ProcessingでVJができるコードを作りました。これにより勝手に画面が切り替わるので、映像を飽きさせずに見せることができます。

もともと、最終的にパフォーマンスをするならVJが必要で、一人でVJまでは同時にできないなあ、と思っていたのですが、「一定時間経過したら画面を自動で切り替えればいいのでは?」と思いついたところから制作開始しました。

この記事に詳細を記載しています。

オンラインライブ出演

2020/12/20に、Tidal club winter solstice marathonに出演しました。

映像のアーカイブはこちらです。

今までの集大成のようなシステムで挑みました。

  • Tidalcyclesをリアルタイムでライブコーディング。ただし0からコードを生み出すのではなく、すでに作ったコードを組み合わせて、フェードin/outでつなぐスタイル。
  • たまにAbleton LiveのオーディオエフェクトをMIDIコントローラーで操作してビートライブ風にする
  • 画面の半分はTidalcycles、もう半分はProcessingによる自動VJ

おかげさまでとても好評で、モチベーションがかなり上がりました。このオンラインライブの後半部分(下記twitterの動画の部分)は事前に準備したわけではなく偶然できたもので、Live Codingは予測不能で面白いと改めて実感しました。

ビートグランプリ3位入賞

ビートグランプリChill/Ambient 2020に応募し、3位入賞しました。決勝の曲は、Maschineで原型を作り、曲の前半部分を一度wavに書き出してTidalcyclesに取り込んで、Tidalcyclesで後半部分を作りました。

つぶやきprocessingとつぶやきtidalcycles

「#つぶやきprocessing」という、一つのツイートの文字数制限の中でprocessingの作品を作るというスタイルがあります。せっかくprocessingとtidalcyclesの両方ができるので、「#つぶやきprocessing」「#つぶやきtidalcycles」を一つのツイートにまとめつつ、オーディオリアクティブにする、という作品を作りました。

TidalcyclesのMIDI連携

TidalcyclesではMIDIも扱えるので、MaschineやAbleton LiveとのMIDI連携にも挑戦しました。MIDI連携のメリットは、外部音源を扱いやすいことや、外部シンセを使えることです。一方、オーディオの再生スピードを変えたり、Tidalcyclesのエフェクトを使えないなどのデメリットもあるので、MIDI連携がその人に合うかどうかはスタイルによると思います。

Tidalcycles Training Toolの開発

Tidalcyclesをゲーム感覚で練習したい!という思いから、p5.jsでToolを作りました。20秒ごとにTidalcyclesの機能(speed,gain,revなど)が表示されるので、それを必ず使ってライブコーディングを行う、というものです。これが意外と面白くて、気づいたらカオスな音源になります。

まとめ

Tidalcyclesに本格的にハマったのは2020年6月以降なので、実質Tidalcycles歴は8ヶ月です。それでもオンラインライブに出演できたり、色々コメントをいただいたりして、面白い経験ができました。

Tidalcyclesを練習するには以下がおすすめです。

気になっている方は、ぜひトライしてみてください。