Sample: scale - DBC-Works/live-tone GitHub Wiki

Sample: scale

Tone.Transport.bpm.value = 144

const delay = new Tone.FeedbackDelay('8n.', 0.3).toDestination()
const right = new Tone.Panner(0.7).toDestination()
const left = new Tone.Panner(-0.7).toDestination()

const notes = LiveTone.Scale.Lydian.notes('D', 3)

const sa = new Tone.PolySynth().connect(right)
const saIt = LiveTone.Itr.roundTrip(notes)
LiveTone.registerPlaying(
  new Tone.Loop((time) => {
    sa.triggerAttackRelease(saIt.next().value, `32n`, time)
  }, '16n').start('2m')
)

const sb = new Tone.PolySynth().connect(left)
const sbIt = LiveTone.Itr.fromLast(notes)
LiveTone.registerPlaying(
  new Tone.Loop((time) => {
    sb.triggerAttackRelease(sbIt.next().value, `32n`, time)
  }, '16n').start(0)
)

const sc = new Tone.PolySynth().connect(delay).toDestination()
const scIt = LiveTone.Itr.shuffle(LiveTone.Scale.Lydian.notes('G', 4, 2))
LiveTone.registerPlaying(
  new Tone.Loop((time) => {
    if (LiveTone.Nmb.oneIn(4) === false) {
      sc.triggerAttackRelease(scIt.next().value, `32n`, time)
    }
  }, '16n').start('4m')
)

Tone.Transport.start()