TidalCycles - Haskell meets Music

452d2be966ed20b894b1fa66ce44b1a1?s=47 cannorin
October 04, 2019

TidalCycles - Haskell meets Music

452d2be966ed20b894b1fa66ce44b1a1?s=128

cannorin

October 04, 2019
Tweet

Transcript

  1. VRC-LT #5 TidalCycles - Haskell meets Music cannorin (@cannorin_vrc)

  2. 2 誰 Study: 数理論理学, プログラム言語の理論 Job: F# プログラマ in VRC:

    VOLT Enthusiast, VRC-LT Speaker (#2~)
  3. 3 世は大ライブコーディング時代 ライブコーディング a) 勉強会やプレゼンの一環として,その場でプログラム を書きながら解説などを行うこと. b) シェーダ言語や音響合成言語をリアルタイムで書いて パフォーマンスを行うこと.

  4. 4 世は大ライブコーディング時代 • 即興性・ライブ性が強く,作品そのものだけでなくそ れが作られる過程も伝える/楽しむことができる • アーティストのプログラミング学習やプログラマの自己 表現の手段となりうる → VRChat

    でやるのにとても向いているのでは????
  5. 5 ライブコーディングでキックを鳴らしたい • フレンチコアという音楽ジャンルが大好き • 都合のよいことにプログラミングができる → ライブコーディングでフレンチコアしたい! → でもどうやって……?

  6. 6

  7. 7 TidalCycles との出会い

  8. 8 TidalCycles とは • 今最もアツい音響生成用ライブコーディング環境 • Haskell 上の DSL で実装されている(!)

    • エディタから GHCi にコードを送ると TidalCycles が 受 け取り音を鳴らす • バックエンドは SuperCollider (別途インストール)
  9. 9 コード例1 -- トラックd1: フレンチコアキック d1 $ sound "909" --

    TR-909 のキックを鳴らす # up (-2.5) -- ピッチを下げる # shape 0.92 -- ディストーションでぶっとくする # lpf 5000 -- 5000Hz 以上の音を切る
  10. 10 コード例2 -- トラックd2: オフビートのベース d2 $ n “[ ~

    c ]*2” -- オフビートに鳴らす (~は休符) # sound "supersaw" -- ノコギリ波を鳴らす # crush 4 -- ビットクラッシャーにかける # up (-30) -- ピッチめちゃくちゃ下げる # shape 0.6 -- ぶっとくする # gain 1.15 -- ゲインを調整 # resonance 0 -- ローパスフィルタのクセをなくす # cut 2 -- 音が被らないようにする (2はID)
  11. 11 実演タイム?