Strudelify
Ring Of Fire cover art

Johnny Cash and The Royal Philharmonic Orchestra

Ring Of Fire

Johnny Cash

KeyG majorTempo100 bpm
0:00/0:00
// Ring Of Fire — Cash Johnny
// 100 bpm, 8/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 36 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/8)

// 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 · epiano2 · "Ges.TEMC"
const epiano2 = note("<~@2 A B C@2 D@2 E F@2 G ~@3 H@2 I@3 J@2 K L M N O@2 P Q@2 R ~@4>".pickRestart({
  A: "~@3 [b4,d5]", B: "~@2 [b4,d5]!2 [c5,e5]@2 [a4,c5]@2 [b4,d5]@18 ~@6",
  C: "[~@4 [g4,b4]@9 ~ b4!2 [a4,c5]@2 a4@2 b4@28 d5@9 ~ [b4,d5]!2 [c5,e5]@2 [a4,c5]@2, ~@14 g4@2 ~@2 f#4 ~ g4@30 ~@14, ~@24 b4 ~@7]/2", // G Am Bm C Am
  D: "[d5@18 ~@10 [g4,b4]@9 ~ b4!2 [a4,c5]@2 a4@2 [d4,g4,b4]@9 ~@7 d4@3 ~, b4@12 ~@26 g4@2 ~@2 f#4 ~@21]/2", // G Am G
  E: "[d4,f#4]@4 [f#4,a4]@4 [f#4,a4]@2 [f#4,a4]@2 [e4,g4] ~ g4@2 g4@2 [e4,g4] [c4,e4]@2 ~ [b3,d4]@5 ~ d4@4, ~@14 e4 ~ e4 ~@15", // D F#m Em C Bm
  F: "[[d4,f#4]@4 [f#4,a4]@4 [f#4,a4]@2 [f#4,a4]@2 [e4,g4]@2 g4@2 [e4,g4] ~ [e4,g4] [c4,e4]@2 ~ [b3,d4]@3 b3 a3@2 ~@8 d4@8 ~@2 [g3,b3]@2 c4@2 [f#3,a3]@2 [g3,b3]@2 [b3,d4]@8 g3@2, ~@14 e4 ~@13 g3@17 ~@3 a3 ~@15, ~@32 b3@13 ~@19]/2", // D F#m Em C Bm G F#m G …
  G: "a3 f#3 g3@4 ~@10",
  H: "[~@4 d4@3 ~ [d4,f#4]@4 [f#4,a4]@4 [f#4,a4]@2 [f#4,a4]@2 [e4,g4] ~ g4@2 g4@2 [e4,g4] [c4,e4]@2 ~ [b3,d4]@5 ~ d4@4 [d4,f#4]@4 [f#4,a4]@4 [f#4,a4]@2 [f#4,a4]@2 [e4,g4]@2 g4@2 [e4,g4] ~ [e4,g4] [c4,e4]@2 ~ [b3,d4]@2, ~@22 e4 ~ e4 ~@29 e4 ~@9]/2", // D F#m Em C Bm D F#m Em …
  I: "[~ b3 a3@2 ~@8 d4@8 ~@2 [g3,b3]@2 c4@2 [f#3,a3]@2 [g3,b3]@2 [b3,d4]@8 g3@2 a3@2 f#3@2 g3@8 ~@8 [b4,d5]@9 ~ [b4,d5]!2 [c5,e5]@2 [a4,c5]@2 [b4,d5]@18 ~@2, ~@4 g3@17 ~@3 a3 ~@71, ~@8 b3@13 ~@75]/3", // G F#m G Bm C Am Bm
  J: "[~@8 [g4,b4]@9 ~ [g4,b4] b4 [a4,c5]@2 a4@2 [g4,b4]@28 [b4,d5]@9 ~ [b4,d5]!2, ~@22 f#4 ~@41]/2", // G Am G Bm
  K: "[c5,e5] [a4,c5] [b4,d5]@9 ~@5", L: "[g4,b4]@9 ~ b4!2 [a4,c5]@2 a4@2 [d4,g4,b4]@9 ~@7, ~@10 g4@2 ~@2 f#4 ~@17",
  M: "d4@3 ~ [d4,f#4]@4 [f#4,a4]@4 [f#4,a4]@2 [f#4,a4]@2 [e4,g4] ~ g4@2 g4@2 [e4,g4] [c4,e4]@2 ~ [b3,d4]@5 ~, ~@18 e4 ~ e4 ~@11", // D F#m Em C Bm
  N: "d4@4 [d4,f#4]@4 [f#4,a4]@4 [f#4,a4]@2 [f#4,a4]@2 [e4,g4]@2 g4@2 [e4,g4] ~ [e4,g4] [c4,e4]@2 ~ [b3,d4]@3 b3 a3@2, ~@18 e4 ~@13", // D F#m Em C Bm
  O: "[~@8 d4@8 ~@2 [g3,b3]@2 c4@2 [f#3,a3]@2 [g3,b3]@2 [b3,d4]@8 g3@2 a3@2 f#3@2 g3@8 ~@8 d4@3 ~ [d4,f#4]@4, g3@17 ~@3 a3 ~@43, ~@4 b3@13 ~@47]/2", // G F#m G Bm D
  P: "[f#4,a4]@4 [f#4,a4]@2 [f#4,a4]@2 [e4,g4] ~ g4@2 g4@2 [e4,g4] [c4,e4]@2 ~ [b3,d4]@5 ~ d4@4 [d4,f#4]@4, ~@10 e4 ~ e4 ~@19", // F#m Em C Bm D
  Q: "[[f#4,a4]@4 [f#4,a4]@2 [f#4,a4]@2 [e4,g4]@2 g4@2 [e4,g4] ~ [e4,g4] [c4,e4]@2 ~ [b3,d4]@3 b3 a3@2 ~@8 d4@8 ~@2 [g3,b3]@2 c4@2 [f#3,a3]@2 [g3,b3]@2 [b3,d4]@8 g3@2 a3@2 f#3@2, ~@10 e4 ~@13 g3@17 ~@3 a3 ~@19, ~@28 b3@13 ~@23]/2", // F#m Em C Bm G F#m G Bm
  R: "g3 ~@3",
})).s("gm_epiano2").gain(0.72)

// chords · acoustic guitar steel · "Gitarre"
const acoustic_guitar_steel = note(`<
  ~ A B C@2 D C E F G H I J K@2 L M N O C@2 P C Q R S T U V W X Y Z AA AB AC
>`.pickRestart({
  A: "~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] [g3,c4,e4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G C G
  B: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~", // G
  C: "~@2 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~", // G
  D: "~@2 [b2,d3,g3] ~@3 [b2,d3,g3]@2 ~@2 [b2,d3,g3] ~@3 [b2,d3,g3]@2 ~@2 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~", // G
  E: "~@2 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b1,b2]@2 [c2,c3]@2 [c#2,c#3]@2 ~@2 [f#3,a3,d4] ~", // G B C C# D
  F: "~@2 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [e3,g3,c4] ~@3 [e3,g3,c4] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,f#3,a3] ~", // D C G D
  G: "~@2 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [c3,e3,g3] ~@3 [c3,e3,g3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~", // D C G
  H: "~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~", // G
  I: "~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 b2@2 [c2,c3]@2 [c#2,c#3]@2 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~, ~@14 b1 ~@17", // G C C# G
  J: "~@2 [g3,b3,d4] ~ [g3,b3,d4] [g3,c4,e4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G C G
  K: "[~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4]@2 ~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] [g3,c4,e4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~]/2", // G C G
  L: "~@2 [g3,b3,d4] ~@3 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [e3,g3,c4] ~@3 [e3,g3,c4] ~@3 [d3,g3,b3] ~", // G D C G
  M: "~@2 [d3,g3,b3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [c3,e3,g3] ~@3 [c3,e3,g3] ~@3 [d3,g3,b3] ~", // G D C G
  N: "~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 [d3,g3,b3] ~", // G
  O: "~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@19 [b2,d3,g3] ~", // G
  P: "~@2 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3]@2 ~@2 [b2,d3,g3] ~@3 [b2,d3,g3]@2 ~@2 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~", // G
  Q: "~@2 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b2,d3,g3] ~@3 [b1,b2]@2 [c2,c3]@2 [c#2,c#3]@2", // G B C C#
  R: "~@2 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [e3,g3,c4] ~@3 [e3,g3,c4] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~", // D C G
  S: "~@2 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [c3,e3,g3] ~@3 [c3,e3,g3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~", // D C G
  T: "~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~", // G
  U: "~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 b2@2 [c2,c3]@2 [c#2,c#3]@2 ~@2 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~, ~@18 b1 ~@13", // G C C# D
  V: "~@2 [f#3,a3,d4] ~@3 [f#3,a3,d4] ~@3 [e3,g3,c4] ~@3 [e3,g3,c4] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~", // D C G D
  W: "~@2 [d3,f#3,a3] ~@3 [d3,f#3,a3] ~@3 [c3,e3,g3] ~@3 [c3,e3,g3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~", // D C G
  X: "~@2 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~@3 [d3,g3,b3] ~", // G
  Y: "~@2 [d3,g3,b3] ~@3 [d3,g3,b3]@2 ~@2 b2@2 [c2,c3]@2 [c#2,c#3]@2 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~, ~@10 b1 ~@21", // G C C# G
  Z: "[g3,b3,d4] [g3,c4,e4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G C G
  AA: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4]@2 ~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] [g3,c4,e4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4] ~", // G C G
  AB: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G
  AC: "[d3,g3]@11 ~@2 [g3,b3]@11 ~@8, ~@12 d3@11 ~@9", // G5 G
})).s("gm_acoustic_guitar_steel").gain(0.36)

// bass · acoustic bass · "Bass"
const bass = note("<~ A B C D E F G H I J K L M N O P J@2 Q R S T U V W X Y Z AA X AB AC AD AE AF>".pickRestart({
  A: "g2@2 d2 e2 g2@2 g2@2 d2 e2 g2@2 d2 e2 g2@2",
  B: "d2@2 e2@2 g2@3 ~ g2@4 d2@2 e2@2 g2@2 d2@2 e2@2 f#2@2 g2 ~ g2@2 d2@2 e2@2",
  C: "g2 ~ g2@2 d2@2 e2@2 g2@4 d2@4 g2@3 ~ g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2",
  D: "d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2@4 d2@4 g2@3 ~",
  E: "g2 ~ g2@2 d2@2 e2@2 g2@2 d2@2 e2@2 f#2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2",
  F: "g2@4 d2@4 g2@3 ~ g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2",
  G: "d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 f#2@2 e2@2 d2 ~ d2@2",
  H: "a1@2 b1@2 d2 ~ d2@2 a1@2 b1@2 c2 ~ c2@2 g1@2 a1@2 g2 ~ g2@2 d2@2 e2 ~ d2 ~ d2@2",
  I: "a1@2 b1@2 d2 ~ d2@2 a1@2 b1@2 c2 ~ c2@2 g1@2 a1@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2",
  J: "d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2",
  K: "d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 f#2@2 e2@2 g2@4 d2@2 e2@2 g2@4",
  L: "g2@4 d2@2 e2@2 g2@4 d2@2 e2@2 g2@4 d2@2 e2@2 g2@3 ~ g2@4", M: "d2 e2 g2 d2 e2 f#2 g2@2 d2 e2 g2@2 g2@2 d2 e2",
  N: "g2@4 d2@2 e2@2 g2@4 d2@2 e2@2 g2@3 ~ g2@4 d2@2 e2@2 g2@2 g2@2",
  O: "f#2@2 e2@2 d2 ~ d2@2 a1@2 b1@2 d2 ~ d2@2 a1@2 b1@2 c2 ~ c2@2 g1@2 a1@2 g2 ~ g2@2",
  P: "d2@2 e2 ~ d2 ~ d2@2 a1@2 b1@2 d2 ~ d2@2 a1@2 b1@2 c2 ~ c2@2 g1@2 a1@2 g2 ~ g2@2",
  Q: "d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2@4 d2@4 g2@3 ~ g2 ~ g2@2 d2@2 e2@2",
  R: "g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2@4 d2@4",
  S: "g2@3 ~ g2 ~ g2@2 d2@2 e2@2 g2@2 d2@2 e2@2 f#2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2",
  T: "d2@2 e2@2 g2@4 d2@4 g2@3 ~ g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2",
  U: "g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 f#2@2 e2@2",
  V: "d2 ~ d2@2 a1@2 b1@2 d2 ~ d2@2 a1@2 b1@2 c2 ~ c2@2 g1@2 a1@2 g2 ~ g2@2 d2@2 e2 ~",
  W: "d2 ~ d2@2 a1@2 b1@2 d2 ~ d2@2 a1@2 b1@2 c2 ~ c2@2 g1@2 a1@2 g2 ~ g2@2 d2@2 e2@2",
  X: "g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2",
  Y: "g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 f#2@2 e2@2 d2 ~ d2@2 a1@2 b1@2",
  Z: "d2 ~ d2@2 a1@2 b1@2 c2 ~ c2@2 g1@2 a1@2 g2 ~ g2@2 d2@2 e2 ~ d2 ~ d2@2 a1@2 b1@2",
  AA: "d2 ~ d2@2 a1@2 b1@2 c2 ~ c2@2 g1@2 a1@2 g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 d2@2 e2@2",
  AB: "g2 ~ g2@2 d2@2 e2@2 g2 ~ g2@2 f#2@2 e2@2 g2@4 d2@2 e2@2 g2@4 g2@4",
  AC: "d2@2 e2@2 g2@4 d2@2 e2@2 g2@4 d2@2 e2@2 g2@3 ~ g2@4 d2@2 e2@2",
  AD: "g2 d2 e2 f#2 g2@2 d2 e2 g2@2 g2@2 d2 e2 g2@2", AE: "d2@2 e2@2 g2@4 d2@2 e2@2 g2@3 ~ g2@4 d2@4 g2@4 d2@3 ~",
  AF: "g2@13 ~@3",
})).s("gm_acoustic_bass").gain(0.56).pan(0.4)

// chords · trumpet · "Trompete"
const trumpet = note("<A B@2 C@2 D E ~@4 F G@4 ~@3 H@2 I J ~@4 K@3 L M@4 N>".pickRestart({
  A: "~@13 [g4,b4] [a4,c5] [a#4,c#5]", // G Am A#m
  B: "[[b4,d5] ~ [b4,d5]!2 ~ [b4,d5]!2 ~ [c5,e5]@2 [a4,c5]@2 [b4,d5]@15 ~ [g4,b4] ~ [g4,b4] b4@2 [g4,b4] [g4,b4]@2 [a4,c5]@2 [f#4,a4]@2 [g4,b4]@15 ~@9, ~@31 g4 ~@32]/2", // Bm C Am Bm G Am F#m G
  C: "[~@8 [b4,d5] ~ [b4,d5]!2 ~ [b4,d5] d5@2 [c5,e5]@2 [a4,c5]@2 [b4,d5]@15 ~@17 [g4,b4] ~ [g4,b4]!2 ~ [g4,b4] [g4,b4]@2 [a4,c5]@2 [f#4,a4]@2, ~@14 b4 ~@49]/2", // Bm C Am Bm G Am F#m
  D: "[g4,b4] ~", E: "~@2 [b4,d5]!2 ~ [b4,d5] d5@2 [c5,e5]@2 [a4,c5]@2 [b4,d5]@15 ~@5, ~@6 b4 ~@25",
  F: "~@20 [b4,d5] ~ [b4,d5]!2 ~ [b4,d5]!2 ~ [c5,e5]@2 [a4,c5]@2", // Bm C Am
  G: "[[b4,d5]@15 ~ [g4,b4] ~ [g4,b4] b4@2 [g4,b4] [g4,b4]@2 [a4,c5]@2 [f#4,a4]@2 [g4,b4]@15 ~ [b4,d5] ~ [b4,d5]!2 ~ [b4,d5]!2 ~ [c5,e5]@2 [a4,c5]@2 [b4,d5]@15 ~ [g4,b4] ~ [g4,b4] b4@2 [g4,b4] [g4,b4]@2 [a4,c5]@2 [f#4,a4]@2 [g4,b4]@15 ~@29, ~@19 g4 ~@55 g4 ~@52]/4", // Bm G Am F#m G Bm C Am …
  H: "[~@12 [b4,d5] ~ [b4,d5]!2 ~ [b4,d5] d5@2 [c5,e5]@2 [a4,c5]@2 [b4,d5]@15 ~@17 [g4,b4] ~ [g4,b4]!2 ~ [g4,b4] [g4,b4]@2, ~@18 b4 ~@45]/2", // Bm C Am Bm G
  I: "[a4,c5] [f#4,a4] [g4,b4]@8 ~@6", J: "~@6 [b4,d5]!2 ~ [b4,d5] d5@2 [c5,e5]@2 [a4,c5]@2 [b4,d5]@15 ~, ~@10 b4 ~@21",
  K: "[~@18 d4@2 d4@2 [e4,g4]@2 [f#4,a4]@16 [g4,c5]@8 [g4,b4]@8 [f#4,a4]@16 [g4,c5]@8 [g4,b4]@7 ~ [g4,b4]@4 [b4,d5]@4, ~@20 f#4 ~@75]/3", // Em F#m C5 G F#m C5 G Bm
  L: "[b4,g5]@3 ~@5", // Em
  M: "[~@16 [b4,d5] ~ [b4,d5]!2 ~ [b4,d5]!2 ~ [c5,e5]@2 [a4,c5]@2 [b4,d5]@15 ~ [g4,b4] ~ [g4,b4] b4@2 [g4,b4] [g4,b4]@2 [a4,c5]@2 [f#4,a4]@2 [g4,b4]@15 ~ [b4,d5] ~ [b4,d5]!2 ~ [b4,d5]!2 ~ [c5,e5]@2 [a4,c5]@2 [b4,d5]@15 ~ [g4,b4] ~ [g4,b4] b4@2 [g4,b4] [g4,b4]@2 [a4,c5]@2 [f#4,a4]@2 [g4,b4]@15 ~, ~@47 g4 ~@55 g4 ~@24]/4", // Bm C Am Bm G Am F#m G …
  N: "[b4,d5] ~ [b4,d5] [b4,d5]@2 [b4,d5] d5@2 [c5,e5]@2 [d5,f#5]@2 ~ [b4,g5]@14 ~@5, ~@6 b4 ~@25", // Bm C D Em
})).s("gm_trumpet").gain(0.5)

// chords · synth strings 2 · "Fl„che"
const synth_strings_2 = note("<~ A@8 B@8 C@7 D@2 E@3 F@6 G>".pickRestart({
  A: "[[g3,b3]@28 [f#3,a3] [g3,b3]@21 [f#3,a3] [g3,b3]@4 [a3,d4,f#4]@4 [g3,c4,e4]@2 [g3,b3,d4]@2 [a3,d4,f#4], d3@55 ~@9]/8", // G F#m G F#m G D C G …
  B: "[~@3 [g3,c4,e4]@2 [g3,b3,d4]@2 [b3,d4,g4]@6 [b3,d4,g4]@4 [b3,d4,g4]@11 [b3,d4,g4]@7 [b3,d4,g4]@7 [b3,d4,g4]@7 [a3,d4,f#4]@4 [g3,c4,e4]@2 [g3,b3,d4]@2 [a3,d4,f#4]@4 [g3,c4,e4]@2 [g3,b3,d4]]/8", // C G D C G D C G
  C: "[~ [b3,d4,g4]@18 [b3,d4,g4]@36 [b3,d4,g4]]/7", D: "[a3,d4,f#4]@2 [g3,c4,e4] [g3,b3,d4]",
  E: "[[b3,d4,g4]@7 [a3,d4,f#4]@2 [g3,c4,e4] [g3,b3,d4] [a3,d4,f#4]]/3", // G D C G D
  F: "[~@8 [g3,c4,e4]@8 [g3,b3,d4]@69 ~@9 g4@98, ~@85 b3@106 ~, ~@90 d4@101 ~]/6", G: "[g3,b3,d4]@7 ~",
})).s("gm_synth_strings_2").gain(0.3).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~ [x!8]!34 ~>").gain(0.36)

// drums · snare
const snare = s("sd").struct("<~ A B C@2 D C E C E C F G H I C J K E C@2 L C M C M C N C N C O H I P ~>".pickRestart({
  A: "~@2 x ~@3 x ~@2 x!3 ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~", B: "~@2 x ~@2 x!3 ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~",
  C: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", D: "~@2 x ~@3 x ~@3 x!6 ~@2 x ~@3 x ~@3 x ~@3 x ~",
  E: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x!6 ~@2 x ~", F: "~@2 x ~@3 x ~@3 x ~@3 x!6 ~@2 x ~@3 x ~@2 x!3",
  G: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x!3 ~@2 x ~", H: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x!3 ~@2 x ~@3 x ~",
  I: "~@2 x ~@3 x ~@3 x ~@3 x ~@2 x!3 ~@2 x ~@3 x ~@3 x ~", J: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x!2",
  K: "x!4 ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~", L: "~@2 x ~@3 x ~@3 x ~@3 x!6 ~@2 x ~@3 x ~@3 x ~",
  M: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x!6", N: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x!6 ~@2 x ~@3 x ~",
  O: "~@2 x ~@3 x ~@3 x!6 ~@2 x ~@3 x ~@2 x!3 ~@2 x ~", P: "~@2 x ~@3 x ~@3 x ~@2 x!3 ~@2 x ~@3 x ~@3 x ~@3 x ~",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct("<~ A@6 B C@3 D A@3 E C@2 F A@5 C@7 G A@3 ~>".pickRestart({
  A: "x!32", B: "x!29 ~ x ~", C: "x!16", D: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!12",
  E: "x!5 ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~",
  F: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!4", G: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!16",
})).gain(0.36)

// drums · crash
const crash = s("cr").struct("<~@35 x>").gain(0.41)

// drums · tambourine
const tambourine = s("tb").struct("<~@7 A B@3 C ~@3 D B@2 E ~@5 B@7 F ~@4>".pickRestart({
  A: "~@28 x!4", B: "x!32", C: "x!20 ~@12", D: "~@4 x!28", E: "x!28 ~@4", F: "x!16 ~@16",
})).gain(0.36)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@7 A B@3 C ~@3 D B@2 E ~@5 B@11 ~>".pickRestart({
  A: "~@14 x!2", B: "x!16", C: "x!11 ~@5", D: "~@3 x!3 ~ x!9", E: "x!15 ~",
})).gain(1.56)

stack(epiano2, acoustic_guitar_steel, bass, trumpet, synth_strings_2, kick, snare, hihat, crash, tambourine, cabasa)

More by Johnny Cash