programming-language softwaresound

Live code with Tidal Cycles | Tidal Cycles

Alex Mcleanが開発しているライブコーディング環境。

Haskell上で実装されており、パターンを関数で複雑に合成してリズムパターンやメロディを作り出すという独特のセマンティクスを持つ。パターン合成ライブラリ自体はグラフィックや織り物など音楽以外にも活用できる。実装としては、大体の関数合成などはHaskellの標準オペレーターや演算子オーバーロードを使ったDSL as Library的実装だが、部分的にmini notationと呼ばれる文字列をパースして解釈している、ハイブリッドな作りの言語。

構造的には、SuperColliderのクライアントとして動いている。SuperDirtというSC上で動くサンプラーを用いて音を鳴らす。

Web上に移植されたものとして、Estuaryというリアルタイムネットワーク上コラボレーションを想定した環境がある。minitidalというサブセットが動かせる。実装としては、HaskellをJSにトランスパイルし、音声合成はWebAudioで実行しているっぽい。

Multi-User Tidal | Tidal Cycles

また、シンタックスが部分的に変わることを許容した上で、JavaScriptで再実装されたStrudelという環境もある。こちらも音声合成はWebAudioベース。

Strudel REPL