Strudelify

Santa Lucia

Pooh

KeyA majorTempo119 bpm
0:00/0:00
// Santa Lucia — Pooh
// 119 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(119/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 · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@3 B@3 ~ C@2 D@4 E@2 F@2 G@2 H@2 I@4 ~@2 J@2 G@2 K@2 L M N@2 L O P@2 Q@2 R@2 K@2 S@2 L M N@2 L T U@3 V W X Y Z AA AB
  AC AD AE@2 AF AG AH@2 AI AJ AK@2 AL AM AN@2 AO@2 AP AQ@3 AR@4
>`.pickRestart({
  A: "[~@5 [a2,e3,a3,b3] [a2,e3,e4] [a2,e3,a3,b3,e4]@33 ~@5 [a2,e3] [a3,b3,e4] [a2,e3]]/3", // Asus2 A5 Asus2 A5 Asus2 A5
  B: "[[a2,e3,a3,b3,e4]@11 ~@5]/3", // Asus2
  C: "[~@9 e3 ~ e3 ~@2 a3@2, a2, ~@2 e3@7 ~ e3@6 ~@10 e3@6, ~@4 a3@7 ~ a3@15 ~@5, ~@3 b3@4 d4@3 c#4@2 b3@2 ~@2]/2",
  D: "[~@2 c#3@2 e3@2 ~@14 c#4@2 ~@6 a3@3 ~ [d4,f#4]@2 ~@2 f#4@2 e4@4 d4@4 ~@12 b3@6, f#2@15 ~@8 e2@9, ~@6 a3@21 ~@4 a3@2 ~ a3@13 ~@5 e3@12, ~@8 e3@4 e3@5 ~ e3@4 e3@4 e3@4 ~ [d3,f#3]@16 ~@3 b2@14, ~@10 e4@4 d4@7 ~@3 b3@4 ~@26 a3@10]/4", // D
  E: "[~@9 e3 c#4 e3 ~@2 a3@2, a2@31 ~, ~@2 e3@7 ~ e3@7 ~@9 e3@6, ~@4 a3@7 ~ a3@15 ~@5, ~@6 b3@8 d4@6 ~@4 b3@7 ~]/2",
  F: "[~@9 e3 ~ e3 ~@2 a3@2, a2@31 ~, ~@2 e3@8 e3@7 ~@9 e3@6, ~@4 a3@7 ~ a3@15 ~@5, ~@3 b3@4 d4@3 c#4@2 b3@2 ~@2]/2",
  G: "[~ c#3 ~@7 e3 ~ e3 ~@2 a3@2, f#2@31 ~, ~@2 e3@2 e3@2 e3@3 ~ c#4@2 b3@2 ~@2, ~@6 a3@21 ~@5, ~@10 e4@4 d4@7 ~@5 e3@6]/2",
  H: "[~@13 b3@3, d3@7 e2@9, d4@6 e4@9 ~@7 a3@9 ~, ~ f#3@3 ~ [f#3,d4]@3 ~ b2@7, ~@4 a3@11 ~@5 e3@12]/2", // D
  I: "[~@18 e3@2 ~@4 b3@7 ~@2 e4@25 ~@6, a2@30 ~ [a2,e3]@27 ~@6, ~@2 e3@7 ~ e3@7 ~@5 e3@8 ~@34, ~@4 a3@7 ~ a3@12 ~@8 [a3,b3]@26 ~@6, ~@3 b3@4 d4@3 c#4@2 ~@20]/4", // A5 Asus2
  J: "[~@9 e3 ~@4 a3@2, a2@31 ~, ~@2 e3@7 ~ e3@8 ~@4 e3@4 e3@6, ~@4 a3@7 ~ a3@15 ~@5, ~@3 b3@4 d4@3 c#4@2 b3@2 ~@2]/2",
  K: "[~ c#3 e3 ~ e3 ~@4 e3 ~ e3 ~@2 a3@2, f#2@31 ~, ~@6 a3@21 ~@5, ~@10 e4@4 d4@7 ~@5 e3@6, ~@3 e3 ~ c#4 b3 ~]/2",
  L: "~@7 d3, d2@15 ~, ~ d3@4 e4@3, ~ a3@3, ~@3 d4@5", M: "~@4 e3@2 ~@4 g#3@5 ~, e2@15 ~, ~ b2@7, ~@3 a3@2 ~@3, ~ e3",
  N: "[~@6 e3 ~@2 a3 b3 a3 ~@3 f#3, a2@4 ~ a2@2 f#2@2 ~@5 a3@2, ~@2 e3@8 ~@6 f#3@13 ~@3, ~@2 a3@4 ~@7 b3@3, ~@3 b3@4 ~@5 e4@4]/2",
  O: "~@2 e3 ~@2 g#3@3, e2@15 ~, ~ b2@7, ~@3 a3@2 ~@3, ~ e3",
  P: "[~@9 e3 ~ e3 ~@2 a3@2, a2@31 ~, ~ e3@3 ~ e3@3 ~@5 e3@3, ~@4 a3@7 ~ a3@15 ~@5, ~@6 b3@7 ~ d4@6 c#4@4 b3@4 ~@4]/2",
  Q: "[~ c#3 e3 ~ e3 ~@4 e3 ~ e3 ~@2 a3@2, f#2, ~@6 a3@21 ~@5, ~@10 e4@4 d4@7 ~@5 e3@6, ~@3 e3 ~ c#4 b3 ~]/2",
  R: "[~@7 e3, a2@31 ~, ~@2 e3@7 ~ e3@6 ~@2 e3@4 b3@10, ~@4 a3@7 ~ a3@6 ~@2 a3@12, ~@3 b3@4 e4@9]/2",
  S: "[~ c#3 e3 ~ e3 ~@4 e3 c#4 e3 ~@2 a3@2, f#2, ~@6 a3@21 ~@5, ~@10 e4@4 d4@7 ~@3 b3@4 ~@4, ~@6 e3@2 ~@5 e3@3]/2",
  T: "~@4 e3@2 ~@4 g#3@5 ~, e2, ~ b2@7, ~@3 a3@2 ~@3, ~ e3",
  U: "[a3@3 ~ a3@2 a3@4 ~@2 a3@2 ~@4 a3@2 b3 ~ [a3,c#4,e4]@2 a2@2 [a3,c#4,e4]@2 a2 ~@3 a3@3 ~ a3@2 [a3,c4,f4]@4 a3@2 [f2,c3]@2 a3@2, a2@9 ~ a2@5 ~ a2@6 ~@9 [f2,c3]@13 ~@4, [b3,e4]@3 e4@8 ~@13, ~@6 c#4@7 ~ [a3,b3]@4 ~@12 [a3,c4,f4]@2 [c4,f4]@6 ~@4 [c4,f4]@6]/3", // A F F5 E5 Asus2 F F5
  V: "[c4,f4]@2 a3 [a3,c4,f4] [f2,c3] a3 [f2,c3] a3, [f2,c3]@7 ~@9, a3 ~@4 [c4,f4]@3", // F5 F F5
  W: "[b3,e4]@6 [a3,c#4,e4]@4 [a2,e3]@2 ~@2 [a2,e3] ~, [a2,e3]@2 ~ [a3,c#4,e4]", // E5 A A5 A
  X: "e3 ~@3 a3@2 [a3,c#4,e4]@2 [a2,e3]@2 ~@2 [a2,e3]@2 ~ [f2,c3], a2@7 ~@9, [b3,e4]@5 ~@5 [a3,c#4,e4]@4 [a3,c4,f4]@2, ~@2 e3@5 ~@9", // A A5 F5 E5 A F
  Y: "[c4,f4]@4 a3@2 [a3,c4,f4]@2 c3@2 ~@2 [f2,c3]@2 a3 ~, [f2,c3]@7 ~@3 a3@4 ~@2, a3 ~@4 [c4,f4]@3", // F5 F F5
  Z: "[c4,f4]@4 a3 ~ [a3,c4,f4]@2 [f2,c3]@2 a3@2 ~@2 a3@2, [f2,c3]@3 ~@3 [f2,c3]@2, a3 ~@4 [c4,f4]@3", // F5 F F5
  AA: "e3@3 ~ e3@2 b2@2 e3@2 ~@2 e3@2 [e3,g#3,b3,e4]@2, e2@9 ~ [e2,b2]@5 ~, [a3,b3,e4]@7 ~ [a3,b3,e4]@4 ~@4", // E E5 Asus2
  AB: "[e2,b2] e3 ~@4 e3 [g#3,b3,e4], ~@2 [g#3,b3,e4]@4 e3@4 [e2,b2]@5 ~, ~ [e2,b2] [g#3,b3,e4] ~", // E5 E E5 E
  AC: "[a3,c#4,e4]@6 a3@2 a3@2 ~@2 a3 ~ [a3,c#4,e4]@2, [a2,e3]@8 [c#4,e4]@5 ~@3, ~@10 [a2,e3]@5 ~", // A A5 C#m A5
  AD: "[a2,e3] a3 [a2,e3]@2 ~@2 a3!2, ~@2 [c#4,e4]@5 ~ e4@7 ~, ~@2 [a3,b3] c#4, ~@5 [a2,e3]@2 ~", // A5 C#m Asus2 A5
  AE: "[a3@3 ~ a3@2 [a3,c#4,e4]@2 [f#2,c#3]@2 [a3,c#4,e4]@2 [f#2,c#3]@2 [c#3,a3,b3]@4 ~@2 a3@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~, [f#2,c#4,e4]@7 ~@7 e4@7 ~@11, ~@14 f#2@3 ~ [f#2,c#3]@7 ~ [f#2,c#3]@6]/2", // A F#5 A F#5 F#m A F#7 F#5
  AF: "[d4,f#4]@4 a3@2 [a3,d4]@4 ~@2 a3@2 d4 ~, d3@9 ~ d3@6, a3@3 ~@3 f#4@8 ~@2", // D D5
  AG: "[e4,g#4]@4 b3@2 [b3,e4,g#4]@3 ~ [b3,e4]@2 ~@2 [b3,e4]@2, e3@11 ~ e3@4, b3 ~@4 g#4@3", // E E5
  AH: "[a3@4 a3@2 c#4 ~ [a3,c#4,e4]@4 [a2,e3]@2 ~@2 [a2,e3]@2 c#4 ~@3 [a3,b3]@4 a3@2 [a2,e3]@2 a3@2, [a2,e3]@9 ~@5 [a3,d4]@4 a3@4 ~@10, [c#4,e4]@7 ~@7 e4@12 [c#4,e4]@6, ~@20 [a2,e3]@7 ~@5]/2", // A A5 Asus2 A5 D5 C#m A5
  AI: "[c#4,e4]@6 a3@2 a3@2 ~@2 a3 ~ [a3,c#4,e4]@2, [a2,e3]@8 ~@2 [a2,e3]@5 ~, a3@3 ~@5 [c#4,e4]@5 ~@3", // C#m A A5 C#m
  AJ: "[a2,e3] ~ [a2,e3]@2 ~@2 a3!2, ~@2 [a3,c#4,e4]@5 ~ e4@7 ~, ~@2 [a3,b3] c#4, ~@5 [a2,e3]@2 ~", // A5 A Asus2 A5
  AK: "[a3@3 ~ a3@2 [a3,c#4,e4]@2 [f#2,c#3]@2 [a3,c#4,e4]@2 [f#2,c#3]@2 [f#2,c#3]@4 ~@2 a3@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~, [f#2,c#4,e4]@7 ~@7 e4@8 ~@10, ~@7 [a3,b3]@3 ~@6, ~@18 [f#2,c#3]@7 ~ [f#2,c#3]@6]/2", // A F#5 A F#5 A F#7 Asus2 F#5
  AL: "[d4,f#4]@4 a3 ~ [a3,d4]@4 ~@2 a3@2 d4 ~, d3@9 ~ d3@6, a3@3 ~@3 f#4@8 ~@2", // D D5
  AM: "[e2,a3,b3,e4]@7 ~ g#3@5 ~ g#3@2, ~ [e2,b3,e4]", // Esus4 E5
  AN: "[~@9 e3 ~ e3 ~@2 a3@2, a2@31 ~, ~@2 e3@7 ~ e3@6 ~@10 e3@6, ~@4 a3@7 ~ a3@15 ~@5, ~@3 b3@4 d4@3 c#4@2 b3@2 ~@2]/2",
  AO: "[~@2 c#3@2 e3@2 ~@2 e3@2 ~@8 e3@2 ~@2 e3@2 ~@4 a3@3 ~, f#2@31 ~, ~@6 a3@21 ~@5, ~@10 e4@4 d4@7 ~@5 e3@6, ~@3 e3 ~ c#4 b3 ~]/2",
  AP: "~@5 [f#3,d4]@3, d3@15 ~, d4@6 e4@9 ~, ~ f#3@3 ~@4, ~@4 a3@11 ~", // D
  AQ: "[~@15 e4@12 ~@3 [a3,b3,c#4,e4]@7 ~@5 e3@2 ~@2 e3@2, ~ e2@27 ~@20, ~@3 b2@25 a2@11 ~@2 a2@3 ~ a2@3, ~@6 e3@22 ~ e3@10 ~@9, ~@8 a3@3 b3@16 ~@11 [a3,b3,c#4,e4]@5 ~ [a3,b3,c#4,e4]@3 ~]/3", // A
  AR: "[~@2 [a2,e3]@4 a3@3 ~@2 a3@3 ~@3 [c#4,e4]@9 [e2,a2,e3] [a3,c#4,e4] ~ [a3,c#4,e4]@31 ~@4, [a3,b3,c#4,e4]@6 [a2,e3,b3,c#4,e4]@9 a2@11 ~@2 [e2,a2,e3]@32 ~@4, ~@8 [e3,a3,b3]@5 ~@19]/4", // A5 C#m A5 A A5 Esus4
})).s("gm_acoustic_guitar_steel").gain(0.25)

stack(acoustic_guitar_steel)

More by Pooh