はじめに
TidalCycles公式のインストール方法でインストールすると、2022年11月現在ではバージョン1.9.0以上のTidalCyclesがインストールされます。
ただバージョン1.9からはresetCycles関数の仕様が変わった(参考)らしく、以前紹介した指定したサイクルに移動できるresetCyclesTo関数が定義できないようになっています。
そのため今回は、初回インストール後にTidalCylesをダウングレードする方法を備忘として残しておきます。
環境
M1 Mac mini (OS Monterey)
初回インストール
公式のインストール方法にもある通り、以下のコマンドのみでインストール可能です。
curl https://raw.githubusercontent.com/tidalcycles/tidal-bootstrap/master/tidal-bootstrap.command -sSf | sh
インストール後の作業
まずTidalCyclesの再インストールをするためにはghcupコマンドが使えるようになる必要があるため、下記を実行します
. "$HOME/.ghcup/env"
echo '. $HOME/.ghcup/env' >> "$HOME/.zshrc"
実行後にcabalコマンドが使えるようになっていると思いますが、私の環境ではghcのバージョン9.4.2がインストールされていて、これではtidalの1.9以前をインストールできないようなので、まずこれを9.2.2にダウングレードします。
ghcup install ghc 9.2.2 --force
ghcup set ghc 9.2.2
これでダウングレードする準備が整ったので、今回はTidalCyclesのバージョン1.7.10をインストールします。
cabal install tidal-1.7.10
ghcのバージョン9.4.2が不要であれば、Macの場合は~/.cabal/store/ghc-9.4.2/
がパスとなるはずなので、削除しておきます
rm -rf '~/.cabal/store/ghc-9.4.2/'
テスト
この状態でTidalCyclesとSuperDirtを起動し、以下のコマンドを順番に実行していきます
import qualified Sound.Tidal.Tempo as T
resetCyclesTo n = T.changeTempo (sTempoMV tidal) (\t tempo -> tempo {T.atTime = t, T.atCycle = n})
do
resetCyclesTo (0-0.05) -- 再生するサイクル数を変えたい場合はこの0の部分を変更
d1
$ s "bd hc hc hc"
うまくいけば、0サイクルから再生されるため実行直後にbd
のバスドラが最初に再生されるはずです。
追記
tidalの1.8以降では、以下のようにresetCyclesTo関数を定義できます
streamResetCyclesTo s n = streamSetCycle s n
resetCyclesTo n = streamResetCyclesTo tidal (n+1)
resetCyclesTo (-0.05)