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

Sample: beat

Tone.Transport.bpm.value = 136

const delay = new Tone.FeedbackDelay('8n', 0.5).toDestination()

const synth = new Tone.FMSynth().connect(delay).toDestination()
synth.volume.value = -4
const topIt = LiveTone.Array.getElementFromShuffled(
  LiveTone.Scale.SpanishScale.notes('D', 3, 3)
)
LiveTone.registerPlaying(
  new Tone.Loop((time) => {
    synth.triggerAttackRelease(topIt.next().value, `32n`, time)
  }, '16n').start(0)
)

const bass = new Tone.MonoSynth({
  envelope: {
    attack: 0,
    release: 1,
  },
}).toDestination()
const bottomIt = LiveTone.Array.getElementRandomly(
  LiveTone.Scale.Lydian.notes('G', 1)
)
LiveTone.registerPlaying(
  new Tone.Loop((time) => {
    bass.triggerAttackRelease(bottomIt.next().value, `16n`, time)
  }, '8n').start(0)
)

const hh = new Tone.NoiseSynth().connect(delay).toDestination()
hh.volume.value = -20
LiveTone.registerPlaying(
  new Tone.Loop((time) => {
    hh.triggerAttackRelease(`32n`, time)
  }, '16n').start(0)
)
const kick = new Tone.MonoSynth({
  oscillator: { type: 'fatsawtooth' },
  envelope: {
    atack: 0,
    decay: 0,
    release: 0.2,
  },
}).toDestination()
kick.volume.value = 20
LiveTone.registerPlaying(
  new Tone.Loop((time) => {
    kick.triggerAttackRelease('C0', `32n`, time)
  }, '4n').start(0)
)

Tone.Transport.start()