Strudelify

Baby Don't Get Hooked on Me

Mac Davis

KeyG majorTempo100 bpm
0:00/0:00
// Baby Don't Get Hooked on Me — Mac Davis
// 100 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 90 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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: edit a riff to change every repeat.

// chords · piano · "A.PIANO 1"
const piano = note("<A@4 B@3 C@7 D@4 E@5 F@4 G@5 H@3 I@7 J@2 K@6 L@5 M@7 N@7 O@3 P@3 Q@6 R@5 S@4>".pickRestart({
  A: "[~@20 d3@5 ~@22 g2@3 g2@2 [g3,c4]@11 e3@8 e3@8 e3@6 ~@5 g2@5 ~ a3@11 ~@17 e3@4, ~@8 g1@43 ~ [g1,e3]@7 ~@36 [g1,g2,f3]@12 ~@21, ~@20 [g3,b3]@33 ~@10 g3@32 ~@12 c4@21, ~@25 d3@6 d3@9 d3@4 d3@8 ~@11 c4@24 ~ e3@8 ~@11 [e3,g3]@8 g3@13, ~@28 g2@9 g2@5 g2@5 ~@38 g2@5 ~@22 g2@6 g2@10]/4", // C5 C G7 G Em
  B: "[~@17 b3@10 ~ [g3,b3]@28 d3@6 ~@6 b3@5 b3@3 b3@3 b3@5 ~@8 d4@3 g2, ~@12 g1@15 ~@29 g1@40, ~@7 b3, ~@29 c4@3, ~@90 g2@5 ~]/3", // G
  C: "[~@4 c4 c4@6 ~@22 e3@8 ~@3 g2@6 c3@12 ~@5 g3@5 [g3,c4]@4 ~@2 g3@5 ~@9 d2@2 g3 g2@10 ~@5 d4@5 g3@6 g3@16 ~@17 d6@5 ~@12 g2@11 [g1,g3]@3 ~@8 [g3,b3]@5 ~ g3@2 ~@14 g2@4 ~@2 g2@3, ~@5 [g1,g2]@22 g1@22 ~ [c2,e3]@23 ~@16 e4@5 e4@7 ~@7 g3@7 ~@23 [g5,b5]@21 ~@42 g3@9 [g3,c4]@14, ~@5 [e3,g3]@12 g3@33 g3@17 ~@16 [g3,d4]@10 ~@2 b3@20 [b3,d4]@23 e6@44 ~@37 d4@5, ~@11 b3@39 ~@28 c4@16 a#3@10 ~ g2@10 g2@11 ~@25 d5@8 ~@23 b3@10 ~@6 b3@3 b3@23, ~@22 e3@5 g2@12 ~@2 e3@9 ~@12 c3@10 [c2,g2,c3]@21 ~@2 g1@14 ~@28 g1@22 [g1,d5,g5,b5,d6]@22 ~ g2@6 g2@16 g1@20]/7", // C5 G C G C5 Em G5 Bm …
  D: "[~@2 [g3,c4]@9 ~@2 g3@6 ~@43 [a2,e3]@6 [e3,g3,c4]@5 e3@5 ~@6 e4@3 d2@2 ~ [g3,e4]@11 g2@5 d4@5 ~ g3@16, ~@2 [c2,c3]@17 e3@13 ~@3 c3@22 a1@11 ~@11 [d2,d4]@10 ~@23 g2@11 ~@5, ~@2 e3@8 ~ b3@8 g3@8 a3@41 ~@43 [b3,d4]@17, ~@23 c2@17 e3@5 c2@23 [c2,c3]@20 ~@2 [g1,b3]@21 ~@17, ~@29 g3@39 ~@5 [g3,c4]@15 ~@40]/4", // C5 A5 C D Bm C G C5
  E: "[~@19 [g2,d6]@6 d5@6 d5@16 ~@6 f#4@6 f#4@5 f#4@6 f#4@5 ~@9 a4@8 [b3,g4]@6 ~@28 e3@5 e3@6 [a2,c4]@12 [c4,e4]@5 [c4,e4]@3 [c4,e4]@3, ~@2 g5@22 ~ [g1,g2,g5,d6]@23 ~@30 g4@13 ~ [e2,e4]@11 e4@4 ~@2 d4@9 d4@19 g3@8 ~@15, ~@3 b5@21 ~ b5@3 ~@47 f#4@18 ~@5 f#4@6 b2@8 b3@8 b3@18 ~@22, ~@5 [g1,e6]@21 ~@21 [b2,f#3,a3]@46 ~@10 b3@7 ~@2 e4@26 ~@22, ~@114 e3@12 ~@11 e3@23]/5", // G5 Em Am C G5 E C B7
  F: "[~@5 e4@2 ~@4 e3@6 g4@2 a2@2 ~@6 [c4,a4]@5 ~ a4@5 ~ a2@2 ~@20 d3@6 ~@12 b4@5 [d4,g4,b4]@3 ~@9 [d4,g4,b4]@2 ~@10 e3@3 [c4,g4]@5 ~@6 e3@6, ~@5 c4 ~@5 f#4@2 ~@8 [f#4,b4]@20 [c4,f#4]@14 [a2,a4]@12 d4@11 [d4,g4]@6 ~@3 [d4,g4,b4]@9 ~@2 [g4,b4]@8 g3@6 ~@4 a4@12, ~@11 c4 ~@9 [c4,e4]@7 ~@5 [d3,c4,e4]@8 b4@9 b4@18 ~@5 d3@38 [a2,b4]@11 ~@6, ~@22 d2@20 ~@2 d2@23 [g2,b3]@45 ~@16, ~@38 a4@4 ~@5 c5@21 ~@21 g3@9 d4@2 g3@3 c5@8 e4@17]/4", // F G C5 B5 Cdim A G5 G …
  G: "[~@21 a2@6 [c4,d4]@5 ~@7 [a3,d4,f#4,a4]@6 [a3,d4,f#4,a4]@2 ~ [d4,f#4]@8 ~@10 d3@4 d3@2 ~@41 e2@3 ~@12 [d4,g4,b4]@5 [d4,g4,b4]@3 ~@9 g4@5 d4@5 [g#1,g#2,d4,c5]@5, c5@28 ~@20 a3@24 d4@16 ~ [d4,b4]@27 g2@23 g2@21, [e4,a4]@8 b4@20 ~@19 a4@9 [c4,d4,f#4,a4]@16 [b3,a4]@9 ~@2 d3@10 d3@24 ~@5 b3@38, ~@4 g3@11 e3@12 d2@35 d3@2 b4@8 g2@38 d2@7 ~@27 [d4,b4]@5 ~ [g4,b4]@10, ~@10 [e4,a4]@18 ~@11 a2@34 ~@5 g4@18 a4@21 ~@19 [d4,g4,b4]@9 ~@15]/5", // Csus2 D G Dm7b5 G A5 D7 B7 …
  H: "[~@41 a2@6 d4@5 ~@7 [d4,f#4,a4]@6 a4@2 ~@9 [d4,f#4,a4]@3 ~@7 c#3@6 [c2,c3,c4,e4,a4]@4, a1@17 [e4,g4,c5]@31 ~@19 [d4,f#4,a4]@9 ~@3 [f#4,a4]@13 ~@4, g4@7 a4@11 c4@12 c4@8 c4@10 ~@22 d3@9 d4@2 d3@2 [d4,b4]@8 ~@5, a2 e4@11 a2@23 a2@6 ~@6 [d2,a3]@45 ~@4, ~ [c4,b4]@19 ~@3 a1@25 ~@5 a2@39 ~@4]/3", // D Am C D F#m G D5 Cmaj7
  I: "[~ g4 ~@39 [e3,e4,g4,c5]@3 ~ [e3,e4,g4,c5]@3 ~@8 c3@6 ~@13 b3@6 ~@11 g3@5 ~@5 g2@3 ~@3 g3@6 g3@7 g3@5 ~@11 g3@6 ~@5 g2@6 ~@6 g3@6 [g3,b3,d4]@5 [g3,b3,d4]@3 ~@18 g2@3 ~@21 [e3,g3]@6 c3@2, ~@14 c4@48 [g3,b3]@12 ~@12 g1@19 g2@6 ~@15 g2@5 g2@11 ~ g2@5 ~@29 g2@8 c4@3 g2@2 d4@8 [e3,c4]@6 ~@3 [e3,g3]@9 ~@8, ~@14 [e4,g4,c5]@27 ~@7 c5@6 [d3,e4]@9 ~@18 d2@27 g1@46 g1@45 c2@20 ~@5, ~@30 g3@32 g2@35 g2@2 g3 c4@8 b3@13 b3@33 ~@20 b3@9 b3@17 ~@5 b3@14 ~@5, ~@48 e4 [e3,g4]@14 d4@46 ~@19 g3@9 ~@8 g3@10 ~@19 g3@24 g3@9 ~@4 c3@11 ~@2]/7", // C G Em G C Em C Dsus2 …
  J: "[~@2 e3@7 ~@2 e3@8 ~@17 a2@3 ~@2 [g3,c4]@4 ~@14 d2@4 ~, a3@19 a2@12 a2@5 ~@17 [g2,d4]@10 ~, ~@2 g3@18 a1@21 [c2,e3]@22 ~, ~@9 c3@12 ~@4 e3@15 ~@18 e4@5 ~, ~@33 g3@8 ~@6 c4@16 ~]/2", // C5 G5 C
  K: "[~@17 g2@6 g2@11 g2@6 ~@22 g2@5 [g2,d5]@12 ~@16 d4@6 ~@5 [d4,g4,b4]@3 ~@22 g2@2 ~@33 c3@6 c3@5 ~@12 c3@3, [g3,e4]@44 b5@15 ~@8 [g5,b5,d6]@22 ~@12 [d4,g4,b4]@5 ~@3 [d4,g4,b4]@3 d3@5 [d4,g4,b4]@16 [e4,g4]@9 [e4,g4]@8 e4@27 [g3,c4,e4]@15, ~ [g1,b3]@45 ~@11 g2@5 ~@17 g2@5 g2@18 g2@21 d3@2 d5@8 c5@5 ~@2 b4@10 [c4,g4]@8 a4@20 ~@14, ~@11 g2@6 ~@26 g5@16 [d5,g5,b5,d6]@8 ~@14 d5@39 c5@7 d3@7 ~@11 g2@31 ~@2 c2@14, ~@14 d4@9 d4@22 [g1,e6]@44 g1@45 c2@21 c3@6 [c4,g4]@18 ~@13]/6", // G5 G C G Em C G C5 …
  L: "[~@7 [e4,g4,c5]@6 e4@5 ~@9 d2@3 ~@16 d5@4 ~@39 d6@3 d6@5 ~@12 g2@7 a2@3 ~@14 f#5@6 f#5@2 ~@14 [b2,d#5,g5]@5, ~ g4@4 g2@25 [g4,b4]@13 d4@7 d3@2 d4 g2@22 [g5,b5]@12 d3@10 b5@21 ~@3 b3@39, ~@3 c3@4 c2@12 [c3,d5]@12 g1@44 [d4,e6]@44 ~ b2@21 f#5@2 b2@6 [b4,d5,f#5]@11, ~@13 [g4,c5]@18 ~@10 g2@11 [g4,b4,d5]@45 g2 [g5,d6]@21 ~ d4@7 ~@6 f#4@27, ~@18 e4@7 e5@5 e5@28 d3@6 g3@55 ~ f#3@40]/5", // C Baug G Csus2 Dsus2 Bm C5 G …
  M: "[~@10 b4@3 ~@12 g4@3 ~@18 g3@7 g3@4 [g3,g4,c5,e5]@5 ~ [g4,c5,e5]@2 ~@31 [e5,a5]@5 ~@33 [g3,a3] f3 ~@5 d4@6 [d4,g4,b4]@6 [d4,g4,b4]@2 ~@10 d4@2 ~@10 e2@3 [a2,c4]@6 ~@6 a2@5 a2@5 ~@12 a2@5 a2@5, a5@5 ~@5 f#5@15 [e2,e5]@21 [c4,e4]@38 g5@4 a2@13 d3@8 a2@17 [c7,d7,e7]@3 [b5,c6] [f5,g5,a5] [b4,c5,d5,e5] [f4,g4,a4] [d2,c4,d4,e4]@2 g1@45 [a1,e4,g4,b4]@19 ~@3 a1@22, ~@2 b2@3 ~ e2@14 e3@5 b4@5 b4@11 e3@6 ~@15 g3@25 f#5@14 a5 d5@14 [c5,c6]@2 b5@5 d3@4 [a6,b6] [d6,e6,f6,g6]@6 b3@2 ~@19 d4@9 ~@3 [d4,g4,b4]@14 ~@16 [e4,g4,c5]@27, ~@3 [b4,e5,g5]@6 ~ d5@3 b4@3 b2@2 [b4,d5]@9 ~ d5@16 a2@21 [c5,e5]@3 a2@6 [c5,e5]@5 [e3,f#5]@8 e5@8 c5@6 e5@9 [c5,b5]@3 d2@12 [f7,g7]@10 g2@12 g2@11 ~ g2@11 g2@5 g2@6 ~@27 a4@16, ~@13 e5@10 b2@6 ~@7 e3@2 g4@9 ~@18 g4@22 [c5,b5]@2 ~ d2@12 c5@5 a5@3 f#5@26 ~@20 [g4,b4]@8 [g4,b4]@2 ~@6 c5@9 ~@5 a4@12 ~@7 b4@19]/7", // C A5 Gsus2 G Am E C Cmaj7 …
  N: "[~@7 a3@6 ~@6 a4@3 ~@8 [d4,f#4,a4]@3 ~@8 d2@2 d2@3 a4@5 ~@29 g2@6 ~@11 [g2,d4]@6 b4@5 b4@2 ~@20 g#1@5 [a1,a2]@6 ~@6 a2@5 a2@5 ~@11 a2@5 a2@6 ~@6 a3@6 [a3,d4,f#4,a4]@5 [a3,d4,f#4,a4]@3 ~@21 a2@2 ~ [c2,c3,c4,e4,a4], ~ [d4,f#4]@12 [d4,f#4]@9 [d4,a4]@3 d3@14 b4@7 g1@18 ~@10 g4@14 b3@39 b4@2 [g#2,c5]@6 [c4,e4,b4]@19 ~@8 a4@17 d4@12 ~@5 a2@22 d3@5 ~, ~ a3@6 ~@6 a3@33 [b3,d4]@10 ~@7 [d4,b4]@25 d4@8 ~@7 [d4,g4]@10 g2@6 b4@5 g2@12 ~@16 [e4,g4,c5]@28 ~@19 [a3,d4,f#4,a4]@9 [a3,d4,f#4,a4]@15 ~, ~@2 d2@34 a2@12 ~@10 g2@10 g2@11 ~@7 g2@7 ~@10 g2@7 b4@9 [d4,g4]@17 ~@5 a4@13 ~@6 b4@20 ~@22 d3@11 d3@2 b4@7 ~@2, ~@13 a4 d3@9 f#4@7 ~@3 [d4,f#4,a4]@15 ~@4 g4@12 ~@8 a4@17 ~@2 g1@45 ~@21 a2@11 ~@11 d2@43 ~@2]/7", // D G5 A D Am D D5 G# …
  O: "[~@11 c3@5 ~@19 c3@6 c3@5 ~ c4@2 [g3,c4,e4]@4 ~@10 d2@3 ~@2 [g2,g3,d4]@3 ~@3 [g2,d4]@6 [d4,g4,b4]@5 [d4,g4,b4]@2 ~@4 g1@5, ~@5 g4@10 ~ [c3,e4,g4]@19 g4@25 [g3,d4]@2 c4@5 ~ b3 ~@18 d4@9, ~@17 c5@50 ~@29, ~@35 e4@11 [g3,e4]@3 ~@4 [g3,e4] c4@3 g2@10 ~ g1@22 ~@6, ~@47 c3@20 ~@13 g2@8 [g2,g4,b4]@8]/3", // C G5 G C G5 C G
  P: "[[d4,g4,b4]@3 ~@6 g#2@4 e2@2 [c4,e4]@4 ~@11 c4@3 ~@3 a2@4 ~@7 a1@2 ~@6 c#2@2 [a3,f#4]@4 ~@8 [f#4,a4]@5 [f#4,a4]@3 ~@16 b4@3, ~@3 [g4,b4]@12 g4@15 [e4,g4,c5]@23 c2@4 [d2,d4]@11 ~ d2@10 d2@7 [f#4,a4]@5 d2@5, ~@3 d4@4 d4@8 a1@18 ~@17 a1@8 ~@19 [c4,f#4,a4]@8 c4@11, ~@5 g2@10 a2@11 a2@7 ~@9 a2@16 ~@11 d4@27, ~@8 c5@7 b4@6 a4@12 ~@7 c4@9 c4@9 ~@5 a3@33]/3", // G C D F#m G C D F#m …
  Q: "[d2@3 d2@2 a4@6 ~@35 g2@2 d4@6 d4@6 [d4,g4,b4]@6 [d4,g4,b4]@2 ~@18 d4@2 [g#2,d4,c5]@5 ~@13 a2@4 ~ a2@5 ~@17 a2@3 a2@3 a3@3 ~@9 [d4,f#4,a4]@6 [d4,f#4,a4]@2 ~@10 d4@5 ~@5 a2@6 [c2,c3,c4,e4,a4]@6 g4, ~@5 g1@17 [d4,b4]@26 g1@23 g1@22 b4@20 ~@15 a2@5 ~@6 d2@35 d3@12 ~@6, ~@5 [b3,d4]@11 ~ g2@10 g2@11 g2@5 d2@6 ~@11 g2@18 g4@7 b4 g4@7 e4@17 e4@12 e4@9 e4@8 d4@12 ~@8 [d4,a4] f#4@2 d3@6 f#4@8 [d4,b4]@9 ~@7, ~@11 g4@13 ~@6 a4@19 ~@19 [d4,g4,b4]@9 [d4,b4]@6 g2@10 [a1,a2,c4]@7 a4@14 ~@2 a1@25 ~@10 a2@18 a4@16 ~@7, ~@32 g4@16 b3@46 g4@16 [g4,c5]@30 ~@5 a3@41 ~@6]/6", // G Dm7b5 D Am G Bm D5 G …
  R: "[~@9 [e4,g4]@17 e4@10 ~ c4@3 [g3,c4,e4]@4 ~@10 d2@4 ~ [g2,g3,b3]@12 ~@2 g2@5 ~@22 g2@3 ~@8 g3@6 ~ g2@6 ~@11 g3@6 ~@5 g2@3 g2@3 [c2,g3,c4]@8, ~@9 c5@35 [g3,c4]@4 g2@2 [g3,b3,d4]@3 c4@5 ~@13 [g3,b3]@9 [g3,b3]@9 b3@8 ~@8 g1@13 ~@6 g2@5 g2@12 g2@5 ~@14, ~@9 c3@27 [g3,e4]@4 ~@4 e4@14 ~@20 g2@5 g2@11 g2@6 ~@3 g2@5 ~@9 [g3,c4]@9 g3@9 ~@8 g3@9 ~@8, ~@26 g4@32 ~@30 g3@8 ~ [g3,b3]@8 g3@6 ~@6 d4@35 d4@2 ~@6, ~@37 c3@21 [g1,d4]@48 b3@13 ~@7 c4@26 ~@8]/5", // Em C G C5 G C C5 G …
  S: "[~@4 [g3,c4,d4]@6 ~@29 [g1,g3,b3]@64 ~@25, ~@10 c3@17 c3@13 ~@88, ~@6 c4@9 [c4,d4]@5 ~@44, ~@16 c2@25 ~@87, ~@21 g3@15 a3@5 ~@87]/4", // Gsus4 G Csus2
})).s("gm_piano").gain(0.31)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  A B C D E@4 F ~ G@4 ~ H I@2 J ~@4 K ~@2 L ~ M ~ N ~@3 O ~@2 P@2 ~ Q R ~ S ~ T ~@2 U V@2 ~ W@4 ~ X@3 ~@12 Y ~@3 Z@2 ~@7
  AA@2 AB@3
>`.pickRestart({
  A: "~@9 g2@19 ~@4", B: "~@26 e3@5 ~", C: "~@5 g2@5 g2@11 ~@2 c4@9", D: "c4@11 ~@8 e3@9 ~@4",
  E: "[~@13 g3@5 ~@33 g2@8 ~@3 d3@38 ~@28, ~ g2@6 g2@10 ~@6 a3@33 ~@72, ~@4 [e3,g3,c4]@9 ~@5 g3@9 ~ d3@12 d3@8 d3@8 ~@72, ~@34 g2@11 g2@6 ~@77]/4", // C
  F: "~@7 g2@5 ~@6 g2@3 ~@11", G: "[~@31 g2@5 g2@6 ~@11 g2@22 ~@5 d2@5 ~ d3@21 ~@21]/4", H: "~@19 e3@11 ~@2",
  I: "[~@14 e3@10 ~@3 g2@10 ~@5 g2@5 ~@12 g2@5]/2", J: "g2@6 ~@7 g2@6 ~@13", K: "~@7 e4", L: "~@7 d4@8 ~@17",
  M: "c4@3 ~", N: "~@9 d2@5 ~@18, ~@3 g4@18 ~@11", O: "~ [d4,f#4]@2 ~@29",
  P: "[~@11 g3@8 b3@24 ~@21, ~@19 g3@9 ~@36]/2", Q: "~@13 d4@17 ~@2", R: "~@4 [g2,a2]@3 ~@25", S: "~@7 [g2,a2]@2 ~@23",
  T: "~@8 g2@5 ~@19", U: "~@15 c4", V: "[~@16 g2@21 ~@27]/2", W: "[~@40 d3@14 ~@9 d4@38 ~@27, ~@5 b3@49 ~@74]/4",
  X: "[~@24 g2@47 ~@25]/3", Y: "~@27 c4@3 ~@2", Z: "[~@59 e2@2 ~@3, ~@8 g2@6 ~@14 g#1@3 ~, ~@22 c4@39 ~@3]/2",
  AA: "[~@15 g3@3 ~@4 d4@9 ~, ~@24 c3@17 ~@3 g3@9 ~@11]/2", AB: "[~ b3@4 ~@3 g2@64 ~@24, ~@5 d2@64 ~@27]/3",
})).s("gm_piano").gain(0.15)

stack(piano, piano_soft)