Strudelify
KeyA majorTempo120 bpm
0:00/0:00
// miss marple — Ron Goodwin And The Odense Symphony Orchestra
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5865604; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 57 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · "Acoustic Guitar"
const acoustic_guitar_steel = note(`<
  A B C D C E F G H I J K L M N@2 C D C E F G H I J K L M O P Q R S@2 Q R T U C D C E F G H I J K L M V@2 K L W X Y
>`.pickRestart({
  A: "a2 a3 e4 a2 a3 e4 a2 a3", B: "e4 a2 a3 e4 a2 [a3,e4] [e4,a4] b4",
  C: "a2@4 a3@4 e4@4 a2@4 a3@4 e4@4 b4 c#5 b4 c#5 b4 c#5 b4 c#5, c#5@3 c#5@3 a2 e4",
  D: "e3 a3 e4 e3 a3 e4 e3 e4, a4@3 a4@3 b4@2",
  E: "a4 b4 a4 b4 a4 b4 a4 b4 a4 b4 a4 b4 a4 b4 a4 b4 ~@4 e4@4 a4@4 c#5@4, e3 a3 e4 [a2,a3]@3 ~@2", // A
  F: "c4 f#4 a4 c4 f#4 a4 c4 f#4, e5@3 e5@3 d5@2", G: "d3 d4 f#4 d3 d4 f#4 d4 f#4, c5@3 c5@3 d5@2",
  H: "a2 c#4 e4 a2 c#4 a4 e4 a4, e5@3 e5@3 d5@2", I: "a2 a3 e4 a2 a3 e4 [e4,a4] [a4,b4], c#5 ~",
  J: "c#5 d5 c#5 a4 e4@2 c#5@2 [e4,a4]@2 e4@2 c#5@2 a4@2, a2 c#4 ~ c#4", // A5
  K: "b4 c#5 b4 g#4 e4@2 b4@2 [e4,g#4]@2 e4@2 b4@2 g#4@2, e2 e3 ~ e3", // E
  L: "a4@3 e4 c#4@2 a4@2 [d3,f#4]@2 [f#3,d4]@2 [g#3,b3]@2 [f#3,a3]@2, [a2,e3] ~", // D G#m F#m A5
  M: "g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 f#3 g#3 f#3 g#3 g#3@4, [e2,b2,e3]@3 [b2,e3]!3 ~@2", // E5
  N: "[[a2,e3]@8 ~@5 e4 a4 b4, a3@5 ~@3]/2", O: "[a2,e3,a3]", P: "[a2,e3]@3 [a2,e3]@3 ~@2, a3 ~",
  Q: "a4 b4 a4 g#4 d4@2 f#4@2 d3@2 d4@2 f#4@2 a4@2, d3@2 a4@5 ~",
  R: "b4 [e4,c5]@3 [d4,b4]@4 [c4,a4]@4 [b3,g4]@4 e4 [a3,f#4]@3 [g#3,e4]@4 [e3,c4]@4 [d3,b3]@4", // C G F Em D C#m C G
  S: "[a3 b3 a3 g#3 a3@2 [e3,c#4]@2 [d#3,c4]@2 [e3,c#4]@2 e4 f#4 e4 d#4 e4@2 [c#4,a4]@2 [b3,g#4]@2 [c#4,a4]@2 [d#4,c5]@2 [e4,c#5]@2 [d#4,c5]@2 [e4,c#5]@2, a2@3 e3@2 ~ a2@2]/2", // C#m Cm C#m F#m E F#m Cm C#m …
  T: "e2@4 ~@2 e3 f#3 g#3 ~@5 g#3 a3, e3 ~@15", U: "b3 ~ b3 c#4 d4 ~ d4 e4 f#4@2 f#4 g#4 a4@2 b4@2",
  V: "[[a2,e3]@16 c#5 d5 c#5 a4 e4@2 c#5@2 [e4,a4]@2 e4@2 c#5@2 a4@2, a3@5 c#4 ~ c#4, ~@4 a2 ~@3]/2", // A5
  W: "g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 f#3 g#3 f#3 g#3 g#3@4, [e2,b2]", // E5
  X: "[a2,e3,a3]@4 ~ b2 c#3 d3", Y: "d#3 ~",
})).s("gm_acoustic_guitar_steel").gain(0.3)

stack(acoustic_guitar_steel)