---
date: "2024-02-06T02:00:06+0900"
---
#programming-language  #software #sound 

[Live code with Tidal Cycles | Tidal Cycles](https://tidalcycles.org/)

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

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

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

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

[Multi-User Tidal | Tidal Cycles](https://tidalcycles.org/docs/configuration/multiuser-tidal/)

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

[Strudel REPL](https://strudel.cc/)