yoppa.org


前橋工科大学 – サウンドプログラミング2024

TidalCycles応用 3 – ライブパフォーマンスのヒント: サウンドの追加、構造をつくる

前回、前々回とTidalCyclesの様々な機能について学んできました。セットアップと起動の方法、パターン生成の基本、パターンを変形する様々な関数、エフェクト、テンポ、乱数、コード、スケールなどTidalCyclesではライブコーディングに関する膨大な機能を使用することが可能です。今回は、これまでの内容を総合して、TidalCyclesで演奏のための構造をつくるにはどのようにすれば良いのか、そのヒントとなる実例をいくつか取り上げます。今回紹介する方法が全てではありませんが、実際のライブコーディングの演奏の際のヒントとなるでしょう。

スライド資料

試しにアップロードするサウンドサンプル “uni”

サンプルコード

TidalCycles

do
  d1
    $every 4 (rev)
    $sometimesBy 0.2 (slow 2)
    $sometimesBy 0.8 (jux (iter 8))
    $stack
    [
      sound "ifdrums(3, 8, 0)",
      sound "bd(3, 8, 3)",
      sound "glitch(2, 8)"
    ]
    #n (irand 64)
    #pan (rand)
    #lpf (rangex 800 18000 $slow 4 $sine) #resonance "0.2"
    #delay "0.3" #delaytime "1.125" #delayfeedback "0.5" #lock 1
    #gain "1.3"
  d2
    $sometimesBy 0.3 (jux (rev))
    $sometimesBy 0.2 (slow 2)
    $s "supersaw(3, 8)"
    #note "c4'sus4"
    |+| note "[0, 7][7, 14][14, 21][7, 0]"
    |+| note "[0, 7, 12]"
    |+| note "0"
    #lpf (range 1000 8000 $rand) #resonance "0.2"
    #sustain "0.08"
    #gain "1.0"
    #room "0.1" #size "0.4"

Strudel

$: s("bd(4, 8), hh(4, 8, 1)").bank("RolandTR909")

$: stack(
    s("conga(9, 16), bongo(9, 16, 3)")
     .sometimesBy(.1, x=>x.slow(2))
     .n(irand(9)).gain(1.5),
    s("bd(3, 8), hh(5, 8, 1), rim(4, 8, 3)")
     .bank("RolandTR808").gain(1.8)
  )
  .sometimesBy(.5, x=>x.jux(rev))  
  .delay(0.5).delaytime(5/8)

$: stack(
    s("supersaw(9, 16)")
      .n("[-12, 1, 2, 3, 4]")
      .chord("<Am Am9>/4").voicing()
      .legato(0.8)
      .lpf(sine.slow(16).range(1000, 2000)).resonance(15),
    s("supersaw(5, 16, [0, 5])")
      .n(irand(19).add(-8))
      .scale('A2 minor')
      .jux(rev)
      .legato(0.5)
      .lpf(sine.slow(12).range(1000, 8000))
      .resonance(15)
  )
  .delay(0.5).delaytime(1/8)
  .room(0.5)
  .gain(0.5)

アンケート

本日の講義を履修した方は以下のアンケートに回答してください。

※ 旧カリ「サウンドプログラミング」「環境情報デザイン」で履修の方はこちら