Strudelify
It Ain't Me Babe cover art

It Ain't Me Babe

It Ain't Me Babe

Turtles

KeyG majorTempo117 bpm
0:00/0:00
// It Ain't Me Babe — Turtles
// 117 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 64 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(117/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order, A@4 for four bars: edit a riff to change every repeat.

// bass · acoustic bass
const bass = note(`<
  A B C B C D B@2 C D E F G@6 H I J K@2 L M N O@3 P@2 Q@8 R@8 S@3 T U V W X Y@2 Z AA@2 AB ~@3
>`.pickRestart({
  A: "~@3 d2", B: "g1", C: "a1", D: "b1 a1", E: "g1@24 g1@3 ~ a1@3 ~", F: "b1@3 ~ b1@6 ~@2 b1@3 ~ b1@16",
  G: "[a1@3 ~ a1@6 ~@2 a1@3 ~ a1@15 b1@3 ~ b1@6 ~@2 b1@3 ~ b1@16 a1@3 ~ a1@6 ~@2 a1@3 ~ a1@16 b1@3 ~ b1@6 ~@2 b1@3 ~ b1@16 a1@3 ~ a1@6 ~@2 a1@3 ~ a1@16 b1@3 b1@6 ~@2 b1@3 ~ b1@16 a1@2]/6",
  H: "~@2 a1@6 ~@2 a1@3 ~ a1@16 c2@2", I: "~@2 c2@6 ~@2 c2@3 ~ c2@16 d2@2", J: "~ d2@6 ~@2 d2@3 ~ d2@16 f#1@3",
  K: "[~ g1@3 ~ g1@3 g1@3 ~ f#1@3 ~ g1@3 ~ g1@3 ~ g1@3 c2@8 c2@3 ~ c2@3 ~ d2@7 d2@3 ~ a1@3 ~ f#1@3 ~ g1@2]/2",
  L: "~@2 g1@3 g1@3 ~ f#1@3 ~ g1@3 ~ g1@3 ~ b1@3 c2@8", M: "c2@3 ~ c2@3 ~ d2@7 d2@3 ~ a1@3 ~ g1@3 ~ g1@3 g1@2",
  N: "~@2 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 g1@3 ~ g1@3 ~ g1@3 ~ g1@3",
  O: "[~ g1@3 g1@3 ~ g1@3 ~ g1@3 ~ a1@3 ~ b1@30 a1@30 ~ b1@15]/3", P: "[a1@15 g1@32 g1@16 ~]/2",
  Q: "[~@6 d2@8 g1@32 a1@32 b1@16 a1@16 g1@31 ~ g1@31 a1@32 b1@16 a1@16 g1@19]/8",
  R: "[~@4 g1@3 ~ a1@3 ~ b1@3 ~ b1@6 ~@2 b1@3 ~ b1@16 a1@3 ~ a1@6 ~@2 a1@3 ~ a1@16 b1@3 ~ b1@6 ~@2 b1@3 ~ b1@15 a1@3 ~ a1@6 ~@2 a1@3 ~ a1@16 b1@3 ~ b1@6 ~@2 b1@3 ~ b1@16 a1@3 ~ a1@6 ~@2 a1@3 ~ a1@16 b1@3 ~ b1@6 ~@2 b1@3 ~ b1@15 a1@3 ~ a1@6 ~@2 a1@3 ~ a1@6]/8",
  S: "[~@10 c2@3 ~ c2@6 ~@2 c2@3 ~ c2@16 d2@3 d2@6 ~@2 d2@3 ~ d2@16 f#1@3 ~ g1@3 ~ g1@3 g1@3 ~ f#1@3 ~ g1@3 ~]/3",
  T: "g1@3 g1@3 ~ c2@8 c2@3 ~ c2@3 d2@8 d2@2", U: "~@2 a1@3 f#1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ f#1@3 g1@3 ~ g1@3 ~",
  V: "b1@3 ~ c2@7 c2@3 ~ c2@3 ~ d2@7 d2@3 ~ a1@2", W: "~@2 g1@3 ~ g1@3 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 g1@3 ~ g1@3 ~",
  X: "c2@8 c2@3 c2@3 ~ d2@8 d2@3 a1@3 ~ f#1@2",
  Y: "[~@2 g1@3 ~ g1@3 ~ g1@3 f#1@3 ~ g1@3 ~ g1@3 ~ b1@3 c2@8 c2@3 ~ c2@3 d2@8 d2@3 ~ a1@3 ~ g1@3 g1@2]/2",
  Z: "~@2 g1@3 ~ g1@3 ~ g1@3 g1@3 ~ g1@3 ~ g1@3 ~ c2@7",
  AA: "[c2@3 ~ c2@3 ~ d2@7 d2@3 ~ a1@3 ~ f#1@3 ~ g1@3 ~ g1@3 g1@3 ~ f#1@3 ~ g1@3 ~ g1@3 b1@3 ~ c2@8 c2@3]/2",
  AB: "c2@3 ~ d2@8 ~@20",
})).s("gm_acoustic_bass").gain(0.62)

// bass · acoustic bass · soft notes
const bass_soft = note("<~@60 A@2 B@2>".pickRestart({
  A: "[~@12 d2@3 ~ a1@3 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ c2@7 c2@3 ~ c2@3]/2",
  B: "[~ d2@7 d2@3 ~ a1@3 ~ g1@3 ~ g1@3 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 g1@3 ~ g1@3 ~@19]/2",
})).s("gm_acoustic_bass").gain(0.23)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B A B C A@2 B C D E F G@8 H@3 I@2 J@2 K L@7 M N O P Q R S@7 T U@2 V@2 W@2 X@2 Y@2 Z@2 AA@2
>`.pickRestart({
  A: "[g2,b2,d3,g3,b3]@3 [g3,b3,d4] [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2", // G
  B: "[a2,c3,e3,a3,c4]@3 [a3,c4,e4] [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2", // Am
  C: "[b2,d3,f#3,b3,d4]@3 [b3,d4,f#4] [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2", // Bm Am
  D: "[g2,b2,d3,g3,b3]@3 [g3,b3,d4] [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [d3,g3,b3,d4]@2 [e3,a3,c4,e4]@2", // G Am
  E: "[b2,d3,f#3,b3,d4]@3 [b3,d4,f#4] [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2", // Bm
  F: "[a2,c3,e3,a3,c4]@6 [a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@3 ~ [e3,a3,c4]@3 b2, ~@27 e4@4 ~", // Am
  G: "[d4@5 ~ b3 ~ [d4,f#4]@3 ~ f#3@3 ~ f#4@3 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [a2,c3,e3,a3,c4]@6 [a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [b2,d3,f#3,b3,d4]@6 [b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [a2,c3,e3,a3,c4]@6 [a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 ~@5 [b3,d4,f#4]@2 ~ f#4@3 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [a2,c3,e3,a3,c4]@6 [a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [c3,e3,g3,c4]@6 [g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 ~@8 [d4,f#4]@3 ~ f#3@3 [f#3,a3,d4,f#4]@4 [f#3,a3,d4,f#4]@4 [f#3,a3,d4,f#4]@4 [f#3,a3,d4,f#4]@4 [g3,b3,d4]@3, [d3,f#3,b3]@8 ~@7 [f#3,b3,d4]@4 ~@108 [b2,d3,f#3,b3,d4]@8 ~@87 [d3,f#3,a3,d4]@6 [a3,d4]@2 ~@3 [a3,d4,f#4]@4 ~@19, ~@5 [d4,f#4]@2 [f#3,b3]@4 [b3,d4,f#4]@4 ~@119 [f#3,b3,d4]@4 ~@89 f#4@2 [f#3,a3]@4 ~@23]/8", // D Bm Am Bm Am Bm Am C …
  H: "[~ [g3,b3,d4]@4 [g3,b3,d4]@3 ~ [g3,b3]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ [e3,g3,c4]@3 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [d3,f#3,a3,d4]@3 ~ [d3,f#3,a3]@3 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ c4@3 [c3,e3,g3,c4]@4, ~@8 d4@4 ~@15 c3@4 ~@15 d4@4 ~@38 [c3,e3,g3]@4 ~@4]/3", // G C D G C
  I: "[[c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [d3,f#3,a3,d4]@3 ~ d3@3 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ d4@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ g3@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3, ~@11 [f#3,a3,d4]@4 ~@15 [g3,b3]@4 ~@15 [b3,d4]@4 ~@11]/2", // C D G D G Bm
  J: "[~ [g3,b3,d4]@3 ~ [b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [b2,d3,f#3,b3]@7 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@15 [a2,c3,e3,a3]@8 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@2, ~@4 g3@4 ~@12 d4@5 ~@25 c4@5 ~@9]/2", // G Bm G Bm Am
  K: "~@2 e4@15 [b2,d3,f#3,b3,d4]@7 [f#3,b3,d4,f#4]@4 ~@4, ~ [e3,a3,c4]@15 ~@16", // Bm Am
  L: "[[e3,a3,c4,e4]@7 [e3,a3,c4,e4]@4 ~@4 [g2,b2,d3,g3,b3]@6 [g3,b3,d4]@2 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [g2,b2,d3,g3,b3]@6 [g3,b3,d4]@2 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [d3,g3,b3]@3 ~ [d3,g3,b3]@5 ~ g3 ~ d4@3 ~ d3@3 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [a2,c3,e3,a3,c4]@6 [a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [b2,d3,f#3,b3,d4]@6 [b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [g2,b2,d3,g3,b3]@6 [g3,b3,d4]@2 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [d3,g3,b3]@3 ~ [b3,d4]@3 ~ [d3,g3]@3 ~ [g3,b3]@5 [g3,b3,d4]@2 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@3, ~@70 d3@4 d4@4 [g2,b2]@6 [b3,d4]@2 [d3,g3,b3]@4 [g3,b3,d4]@4 ~@95 d3@4 d4@4 [d3,g3]@4 [b3,d4]@4 [g2,b2,d3]@8 ~@11]/7", // Am G Am Bm Am G Bm G5 …
  M: "~ [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [d3,g3,b3,d4]@4 [a2,c3,e3,a3,c4]@6 [a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@3", // G Am
  N: "~ [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [b2,d3,f#3,b3,d4]@6 [b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [e3,a3,c4,e4]@3", // Am Bm Am
  O: "~ [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 ~@8 [g3,b3,d4]@3 ~ [d3,g3]@3 ~ [b3,d4]@3, ~@13 [g2,b2,d3,g3,b3]@6 [g3,b3]@2 ~@3 [b3,d4]@4 ~@4, ~@9 d4 d3@2 ~@2 [d3,g3]@2", // Am G G5 Bm G Bm G5
  P: "~ d3@3 ~ d4@3 [e3,a3,c4,e4]@4 ~ d4@5 [b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4, [g3,b3,d4] [d3,g3,b3] ~ [b2,d3,f#3,b3]@2 ~@3", // Am Bm G Bm
  Q: "[f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 [a2,c3,e3,a3,c4]@3 [a3,c4,e4] [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2", // Bm Am
  R: "[e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [b2,d3,f#3,b3,d4]@3 [b3,d4,f#4] [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2", // Am Bm
  S: "[[f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@3 ~ [f#3,b3,d4]@3 ~ c4@5 ~ a3 ~ [c4,e4]@3 ~ e3@3 ~ e4@3 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [b2,d3,f#3,b3,d4]@6 [b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [a2,c3,e3,a3,c4]@6 [a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [b2,d3,f#3,b3,d4]@6 [b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@3 ~ [d4,f#4]@3 ~ [f#3,b3]@3 ~ [a3,c4]@5 [a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4 [c3,e3,g3,c4]@6 [g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 ~@8 [d4,f#4]@3 ~ f#3@3 [f#3,a3,d4,f#4]@4 [f#3,a3,d4,f#4]@3, ~@7 f#4@4 a2@6 [c4,e4]@2 [e3,a3]@4 [a3,c4,e4]@4 ~@107 [d4,f#4]@4 ~@69 f#4@2 [f#3,a3]@4 ~@11, ~@12 [c3,e3,a3]@8 ~@7 [e3,a3,c4]@4 ~@99 [f#3,b3]@4 ~@4 [a2,c3,e3]@8 ~@56 [d3,f#3,a3,d4]@6 [a3,d4]@2 ~@3 [a3,d4,f#4]@4 ~@7]/7", // Bm C Am Bm Am Bm D B5 …
  T: "~ [f#3,a3,d4,f#4]@4 [f#3,a3,d4,f#4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4", // D G
  U: "[[g3,b3,d4]@3 ~ g3@3 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@3 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@3 ~ d4@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4, ~@3 [b3,d4]@4 ~@30 [g3,b3]@4 ~@23]/2", // G C D G Bm G
  V: "[[g3,b3,d4]@4 [c3,e3,g3,c4]@3 ~ c3@3 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [d3,f#3,a3,d4]@3 ~ [d3,f#3,a3]@3 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ d4@3 [g3,b3,d4]@4, ~@7 [e3,g3,c4]@4 ~@11 d4@4 ~@30 [g3,b3]@4 ~@4]/2", // G C D G C G
  W: "[[c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@3 [c3,e3,g3,c4]@4 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@3 ~ [d3,f#3]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ c4@3, ~@13 [a3,d4]@2 ~@15 [c3,e3,g3]@2]/2", // C D G D5 C
  X: "[[c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@3 ~ [f#3,a3,d4]@3 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ g3@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@3, ~@11 d3@4 ~@30 [b3,d4]@4 ~@15]/2", // C D G C Bm
  Y: "[[c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@3 ~ [a3,d4]@3 [d3,f#3,a3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@3, ~@15 [d3,f#3]@4 ~@45]/2", // C D D5 D G C D
  Z: "[~ [c3,e3,g3]@3 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ d4@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [c3,e3,g3,c4]@3 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@4 [c3,e3,g3,c4]@3, c4@2 ~@15 [g3,b3]@2 ~@13]/2", // C D G C G
  AA: "[~ [d3,f#3,a3,d4]@3 ~ [d3,f#3]@3 [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@4 [g3,b3,d4]@3 [g3,b3,d4]@4 [g3,b3,d4]@4 ~@18, ~ [a3,d4] ~@14]/2", // D G D5
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.1)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A B A B C A@2 B C A D E F G F H I J ~@2 K ~@2 L ~ M N O@2 ~@2 P@3 Q@3 ~ R S R T U V W X ~@4 Y ~ Z ~@2 AA ~ AB ~@5
>`.pickRestart({
  A: "~ [d4,g4]@31", B: "~ [e4,a4]@31", C: "~ [f#4,b4]@15 ~ [e4,a4]@15", D: "~ d4@2 ~@5", E: "~@4 c4@8 ~@15 a3@4 ~",
  F: "~@3 d4@8 ~@21", G: "~@3 c4@8 ~@21", H: "~@3 c4@8 ~@15 a3@4 ~@2, ~@11 c4@4 ~", I: "~ d4@4 ~@11", J: "~ c4@4 ~@11",
  K: "~@27 [e4,g4]@3 ~@2", L: "~@15 d4", M: "~@4 [b3,d4]@3 ~@16 d4@8 ~",
  N: "~@7 b3@2 ~@2 c4@4 ~, ~@7 f#4@8 ~@17, ~@5 d4@4 ~@7",
  O: "[~@13 a3@4 ~@3 d4@8 d4@8 e4@7 a3@4 ~@17, ~@5 e4@8 ~@51, ~@9 c4@8 ~@47]/2",
  P: "[~@15 [e4,a4]@31 ~ b4@15 ~ a4@15 ~@18]/3", Q: "[~@14 d4@31 ~ [e4,a4]@31 ~ b4@15 ~@3]/3", R: "~@2 d4 ~",
  S: "~@2 c4 ~", T: "~@7 b3@4 ~@4 c4@8 ~@9", U: "~@15 d4@8 ~@9", V: "~@15 c4@8 ~@9", W: "~@15 d4@8 ~@3 b4@6",
  X: "~@3 b3@2 ~@2 c4@4 ~@5, ~ d4@4 ~@11", Y: "~@5 d4@3 ~@24", Z: "~@24 d4@3 ~@5", AA: "~@11 [f#4,a4]@3 ~@18",
  AB: "~@15 a4@3 ~@14",
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.9)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@61 [~@2 d4@3 ~@27] ~@2>").s("gm_electric_guitar_clean").gain(0.12).pan(0.9)

// chords · electric guitar clean
const electric_guitar_clean_3 = note("<~@26 A@5 ~@33>".pickRestart({
  A: "[~@20 b3@28 ~@2 a4@29 ~@2 b3@13 ~@2 a3@13 ~@2 g4@30 ~@19, ~@18 [f#4,b4]@30 ~ [c4,e4]@30 [f#4,b4]@15 [e4,a4]@15 ~ [b3,d4]@31 ~@19, ~@19 d4@29 a3@30 ~@2 d4@14 ~ c4@14 g3@32 ~@19]/5", // B5 C B5 A5 Bm
})).s("gm_electric_guitar_clean").gain(0.25).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  ~@11 A B C@4 D@3 E F G H I ~ J K L M ~@9 N@3 O@4 P Q R S I T U V O W X H I Y M ~@3
>`.pickRestart({
  A: "x!2", B: "x ~@15 x ~@14 x", C: "~@15 x ~@15 x", D: "~@7 x ~@7 x", E: "~@13 x ~@18", F: "~@2 x!2",
  G: "~@7 x ~@14 x ~@9", H: "~@13 x ~@7 x ~@10", I: "~@4 x ~@14 x ~@12", J: "~@20 x ~@10 x", K: "~@3 x ~@14 x ~@11 x ~",
  L: "~ x ~@15 x ~@14", M: "x", N: "~@3 x ~@3 x", O: "~@11 x ~@15 x ~@4", P: "~@11 x ~@14 x ~@5", Q: "~@5 x ~@7 x ~@2",
  R: "~@10 x ~@14 x ~@6", S: "~@7 x", T: "~ x ~@10 x ~@3", U: "x ~@14 x ~@14 x ~", V: "~@21 x ~@6 x ~@3",
  W: "~@17 x ~@7 x ~@6", X: "~@8 x ~@14 x ~@8", Y: "~@10 x ~@6 x ~@14",
})).gain(0.7)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@60 [~ x] [~@6 x ~@7 x ~@14 x ~@2] [~@3 x ~@4] [~@3 x ~@6 x ~@21]>").gain(0.23)

// drums · snare
const snare = s("sd").struct(`<
  ~@11 A@2 B@4 C@3 D E F G H I J K L M ~@9 N O@2 P@4 Q@2 R S T U V G H W V X H I Y ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~@7 x ~@15 x ~@8", C: "~@3 x ~@7 x ~@4", D: "~@5 x ~@11 x ~ x ~ x ~@3 x ~@3 x ~@2",
  E: "~@5 x ~@6 x ~@7 x ~@6 x ~@4", F: "~@3 x ~@7 x ~@6 x ~@7 x ~@5", G: "~@2 x ~@6 x ~@7 x ~@6 x ~@7",
  H: "x ~@7 x ~@6 x ~@7 x ~@6 x ~", I: "~@6 x ~@7 x ~@6 x ~@7 x ~@2", J: "~@4 x ~@7 x ~@3 x ~@10 x ~@4",
  K: "~@13 x ~@2", L: "~@3 x", M: "~@7 x ~@24", N: "~@5 x ~@2", O: "~ x ~@3 x ~@2", P: "~@3 x ~@15 x ~@12",
  Q: "~ x ~@7 x ~@6", R: "~@2 x ~@14 x ~@11 x ~ x", S: "~ x ~@3 x ~@3 x ~@7 x ~@6 x ~@7",
  T: "x ~@6 x ~@7 x ~@6 x ~@7 x ~", U: "~@5 x ~@7 x ~@7 x ~@6 x ~@3", V: "~@4 x ~@6 x ~@7 x ~@6 x ~@5",
  W: "~@6 x ~@6 x ~@7 x ~@6 x ~@3", X: "~@2 x ~@7 x ~@6 x ~@7 x ~@6", Y: "~ x ~@6",
})).gain(0.7)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@60
  [~@12 x ~@6 x ~@7 x ~@4]
  [~@2 x ~@7 x ~@7 x ~@6 x ~@6]
  [~ x ~@6 x ~@7 x ~@6 x ~@7 x]
  [~@3 x ~@12]
>`).gain(0.23)

// drums · open hat
const open_hat = s("oh").struct("<~@27 [~@3 x ~@28] [~ x ~@15 x ~@14] x ~@34>").gain(0.7)

// drums · mid tom
const mid_tom = s("mt").struct("<~@27 [~@5 x ~ x ~@8] [~@9 x ~@3 x ~@18] ~@35>").gain(0.7)

// drums · high tom
const high_tom = s("ht").struct("<~@26 [~@4 x!2 ~@10] [~@7 x ~ x ~@22] [~@5 x ~ x ~@24] ~@35>").gain(0.7)

// drums · ride
const ride = s("rd").struct("<~@11 A B C@4 D@3 E ~@5 F G H ~@10 I A@2 B C@3 D@2 J ~@15>".pickRestart({
  A: "x!8", B: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x",
  C: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x", D: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  E: "~ x ~@3 x ~@3 x ~@3 x ~@18", F: "~@20 x ~@6 x ~@3 x", G: "~@9 x ~@3 x ~ x", H: "~@3 x", I: "~@3 x!5",
  J: "~@2 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@6",
})).gain(0.7)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~ A@12 B@3 C@4 D E F G H I J K L B@2 C@4 M@4 N@4 O@3 P@3 Q R S T G H U T V H I W ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~@7 x ~@15 x ~@8", C: "~@3 x ~@7 x ~@4", D: "~@5 x ~@23 x ~@2", E: "~@5 x ~@6 x ~@7 x ~@6 x ~@4",
  F: "~@3 x ~@7 x ~@6 x ~@7 x ~@5", G: "~@2 x ~@6 x ~@7 x ~@6 x ~@7", H: "x ~@7 x ~@6 x ~@7 x ~@6 x ~",
  I: "~@6 x ~@7 x ~@6 x ~@7 x ~@2", J: "~@4 x ~@22 x ~@4", K: "~@5 x ~@7 x ~@2", L: "~@9 x ~@14 x ~@7",
  M: "~@5 x ~@15 x ~@10", N: "~ x ~@3 x ~@2", O: "~@3 x ~@15 x ~@12", P: "~ x ~@7 x ~@6", Q: "~@9 x ~@7 x ~@6 x ~@7",
  R: "x ~@6 x ~@7 x ~@6 x ~@7 x ~", S: "~@5 x ~@7 x ~@7 x ~@6 x ~@3", T: "~@4 x ~@6 x ~@7 x ~@6 x ~@5",
  U: "~@6 x ~@6 x ~@7 x ~@6 x ~@3", V: "~@2 x ~@7 x ~@6 x ~@7 x ~@6", W: "~ x ~@6",
})).gain(0.7)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@60
  [~@12 x ~@6 x ~@7 x ~@4]
  [~@2 x ~@7 x ~@7 x ~@6 x ~@6]
  [~ x ~@6 x ~@7 x ~@6 x ~@7 x]
  [~@3 x ~@12]
>`).gain(0.23)

stack(
  bass, bass_soft, acoustic_guitar_steel, electric_guitar_clean, electric_guitar_clean_2, electric_guitar_clean_3, kick,
  kick_soft, snare, snare_soft, open_hat, mid_tom, high_tom, ride, tambourine, tambourine_soft
)

More by Turtles