Strudelify

Da da da

Trio

KeyC majorTempo130 bpm
0:00/0:00
// Da da da — Trio
// 130 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "guitar" electric guitar jazz (copy of ch 1 "guitar" acoustic guitar steel)
// note: Full arrangement: all 72 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar steel · "guitar"
const acoustic_guitar_steel = note(`<
  ~@8 A B A B A B A B A B A B A B A C A B A B A B A C ~@8 A B A B A B A B A B A B A B A B A B A B A B A B ~@8
>`.pickRestart({
  A: "[g3,c4]@2 e4 g4 [c3,f3]@2 a3 c4", B: "[d3,g3]@2 b3 d4 [c3,f3]@2 a3 c4", C: "[d3,g3] ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.45)

// bass · acoustic bass · "bass"
const bass = note(`<
  ~@8 A B A B A B A B A B A B A B A C A B A B A B A C ~@8 A B A B A B A B A B A B A B A B A B A B A B A B ~@8
>`.pickRestart({
  A: "c3 f2", B: "g2 f2", C: "g2 ~@3",
})).s("gm_acoustic_bass").gain(0.37)

// bass · acoustic bass · "bass" · soft notes
const bass_soft = note("<~@64 A B A B A B A ~>".pickRestart({
  A: "c3 f2", B: "g2 f2",
})).s("gm_acoustic_bass").gain(0.14)

// other · woodblock
const woodblock = note("<[e5 ~ e7 ~@3 e7 ~ e5 ~ e7 ~@3 e7 ~]!66 [e5 ~ e7 ~@3 e7 ~@9] ~@5>").s("gm_woodblock").gain(0.48)

// other · woodblock · soft notes
const woodblock_soft = note("<~@66 [~@8 e5 ~ e7 ~@3 e7 ~] [e5 ~ e7 ~@3 e7 ~ e5 ~ e7 ~@3 e7 ~]!4 ~>")
  .s("gm_woodblock").gain(0.08)

// drums · kick
const kick = s("bd").struct("<[x!2]!38 ~@2 [x!2]!26 ~@6>").gain(0.48)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@66 [x!2]!5 ~>").gain(0.08)

// drums · clap
const clap = s("cp").struct("<[~@2 x!2 ~@2 x ~]!65 [~@2 x!2 ~@4] ~@6>").gain(0.48)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@65 [~@3 x] [~@2 x!2 ~@2 x ~]!5 ~>").gain(0.08)

// drums · snare
const snare = s("sd").struct("<[~@2 x!2 ~@2 x ~]!38 ~@2 [~@2 x!2 ~@2 x ~]!25 [~@2 x!2 ~@4] ~@6>").gain(0.48)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@65 [~@3 x] [~@2 x!2 ~@2 x ~]!5 ~>").gain(0.08)

// drums · hihat
const hihat = s("hh").struct("<[x!8]!38 [~@2 x!2 ~@2 x ~]!2 [x!8]!25 [x!6 ~@2] ~@6>").gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@65 [~@6 x!2] [x!8]!5 ~>").gain(0.08)

stack(
  acoustic_guitar_steel, bass, bass_soft, woodblock, woodblock_soft, kick, kick_soft, clap, clap_soft, snare,
  snare_soft, hihat, hihat_soft
)