Strudelify
Seven Bridges Road cover art

Hell Freezes Over

Seven Bridges Road

Eagles

KeyF majorTempo204 bpm
0:00/0:00
// Seven Bridges Road — Eagles
// 204 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 143 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(204/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.

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@31 A B@2 C D E F G H I H@2 I C J@2 K L A I B A@2 M N O P@2 I@2 B H@2 M O Q K L B A B C R@2 S P I C T U Q V P K L W Q
  X J X K@2 P Y Z AA O AB P L AC AD H@2 AE AF AG ~@35
>`.pickRestart({
  A: "[g3,c4,e4] [g3,b3,d4]", B: "[g3,c4,e4]@4 ~ [g3,b3,d4]@3", C: "[g3,c4,e4]@2 [g3,c4,e4]!2",
  D: "~ [bb3,d4,f4]@3 [a3,d4,f4]@4", E: "[a3,c4,f4] [a3,d4,f4]", F: "[a3,c4,e4]@9 ~ [a3,c4,e4] ~@5",
  G: "~ [g3,c4,e4]@3 ~ [a3,d4,f4]@3", H: "~ [g3,c4,e4]@3 [g3,b3,d4]@4", I: "~ [g3,c4,e4]@3 ~ [g3,b3,d4]@3",
  J: "[bb3,d4,f4]@4 ~ [bb3,d4,f4]@3", K: "~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3", L: "[a3,c4,f4]!2",
  M: "~ [g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]@2", N: "~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@3",
  O: "~ [f3,bb3,d4]@3 [bb3,d4,f4]@4", P: "[a3,c4,f4]@4 ~ [a3,c4,f4]@3", Q: "~ [bb3,d4,f4]@3 [bb3,d4,f4]@4",
  R: "[bb3,d4,f4]!2", S: "~ [a3,c4,f4]@3 [a3,c4,f4]@4", T: "~ [f3,bb3,d4]@3 ~ [bb3,d4,f4]@3", U: "[bb3,d4,f4]@15 ~",
  V: "[f3,bb3,d4]@9 ~ [f3,bb3,d4] ~@5", W: "[a3,c4,f4]@2 [a3,c4,f4]!2",
  X: "~@2 d3 ~@5, [d4,f4]@7 ~, bb3@5 ~@11, ~ f3@6 ~", Y: "~ [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@2",
  Z: "[bb3,d4,f4] [f3,bb3,d4]", AA: "~@6 [bb3,d4]@9 ~, ~ f3@7", AB: "c4 d4 c4 bb3@5, [bb2,f4]",
  AC: "[a3,c4,f4]@4 ~ [a3,db4,e4]@3", AD: "~ [bb3,d4,f4]@3 [g3,c4,e4]@4", AE: "[bb3,d4,f4] [a3,c4,f4]",
  AF: "[bb3,d4,f4]@4 ~ [a3,c4,f4]@3", AG: "[g3,c4,e4]@15 ~",
})).s("gm_electric_guitar_jazz").gain(0.2).pan(0)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@31 A B C D E F G H I@2 A J K L M N O P Q R S T A U V W X Y S C K Z C D AA AB AC AD AE Q AF L AG AH AI AJ J L AK AL
  AM AN AI AO AP AQ AR AN AM AL AS P AI AT AU AN AV AW AX AY AZ BA R J BB BC BD ~@35
>`.pickRestart({
  A: "[c3,e3]@6 c3 ~ [d3,g3]@6 g3 ~", B: "c3@4 [c3,e3]@2 c3 ~ g3@2 g3@4 g3@2, ~@5 d3@3",
  C: "c3@2 c3@4 c3@2 g3@4 [d3,g3]@2 g3 ~, ~ e3@3 d3 ~@3", D: "[c3,e3]@6 c3 ~ [c3,e3]@2 ~@2 [c3,e3]@2 ~@2, ~@2 g3 a2",
  E: "bb2@2 bb2@4 bb2@2 d3@4 [d3,f3]@2 d3 ~, ~ d3@3 f3 ~@3", F: "f3@2 f3@4 f3@2 d3@4 [d3,f3]@2 d3 ~, ~ c3@3 ~@4",
  G: "a2@4 [a2,c3,e3]@2 a2 ~ a2@5 ~ a2 ~, c3 ~@7, e3 ~@15", H: "[c3,e3]@6 c3 ~ [d3,f3]@6 d3 ~",
  I: "c3 c3@2 c3 g3 g3@2 g3, ~ e3@3 ~ d3@3", J: "c3@4 [c3,e3]@2 c3 ~ g3@2 g3@4 g3@2, e3 ~@4 d3@3",
  K: "c3@4 [c3,e3]@2 c3 ~ g3@4 [d3,g3]@2 g3 ~, e3 ~@7", L: "c3 c3@2 c3 [c3,e3] ~ [c3,e3] ~, ~ e3@3 g3@2 a2@2",
  M: "bb2@2 bb2@4 bb2@2 d3@4 [bb2,d3]@2 d3 ~, ~ d3@3 ~@4", N: "~@6 f3 ~ [bb2,d3]@6 d3 ~, f3@5 ~@11, ~ [bb2,d3]@3 ~@4",
  O: "f3@4 [c3,f3]@2 f3 ~ [c3,f3]@6 a2 ~, c3@2 ~@6 a2@5 ~@3", // F5
  P: "c3@4 [c3,f3]@2 c3 ~ [c3,f3]@2 ~@2 [c3,f3]@2 a2 ~, f3 ~@3 a2@2 ~@2", // F5
  Q: "[c3,e3]@6 c3 ~ g3@4 [d3,g3]@2 g3 ~, ~@4 d3 ~@3", R: "c3@4 [c3,e3]@2 c3 ~ g3@4 [d3,g3]@2 g3 ~, ~@4 d3 ~@3",
  S: "c3@4 [c3,e3]@2 c3 ~ [d3,g3]@6 g3 ~, e3 ~@7", T: "c3@2 c3@4 c3@2 [d3,g3]@6 g3 ~, ~ e3@3 ~@4",
  U: "c3@4 [c3,e3]@2 c3 ~ [c3,e3]@2 ~@2 [c3,e3]@2 ~@2, ~@2 g3 a2", V: "bb2@4 [bb2,d3]@2 bb2 ~ [bb2,d3]@6 d3 ~",
  W: "~@6 f3 ~ d3@2 d3@4 d3@2, f3@5 ~@11, ~ [bb2,d3]@3 ~ bb2@3", X: "f3@2 f3@4 f3@2 [c3,f3]@6 a2 ~, ~@2 c3@6 a2@5 ~@3",
  Y: "c3@4 [c3,f3]@2 c3 ~@7 a2 ~, ~@8 a2@5 ~@3, ~@5 [c3,f3]@3", Z: "c3@4 [c3,e3]@2 c3 ~ g3@4 [d3,g3]@2 g3 ~",
  AA: "bb2@4 [bb2,d3]@2 bb2 ~ d3@2 d3@4 d3@2, d3 ~@4 bb2@3", // Bb
  AB: "[bb2,d3]@2 ~@2 [bb2,d3]@2 f3 ~ d3@4 [bb2,d3]@2 d3 ~, f3@2 ~@2 bb2 ~@3", // Bb
  AC: "f3@4 [c3,f3]@2 f3 ~@7 a2 ~, ~@8 a2@5 ~@3, ~@5 [c3,f3]@3", // F5
  AD: "c3@2 c3@4 c3@2 ~@6 a2 ~, ~@2 f3@6 a2@5 ~@3, ~@5 [c3,f3]@3", AE: "[c3,e3]@6 c3 ~ g3@4 [d3,g3]@2 g3 ~",
  AF: "[c3,e3]@6 c3 ~ g3@2 g3@4 g3@2, ~@5 d3@3", AG: "[bb2,d3]@6 bb2 ~ d3@4 [bb2,d3]@2 d3 ~",
  AH: "~@6 f3 ~ d3@4 [bb2,d3]@2 d3 ~, f3@5 ~@11, ~ [bb2,d3]@3 ~@4", // Bb
  AI: "f3@4 [c3,f3]@2 f3 ~ a2@4 [c3,f3]@2 a2 ~, c3 ~@7", AJ: "c3@4 [c3,f3]@2 c3 ~ [c3,f3]@6 a2 ~, f3@2 ~@6 a2@5 ~@3",
  AK: "bb2@2 bb2@4 bb2@2 [bb2,d3]@6 d3 ~, ~ d3@3 ~@4", AL: "~@2 [bb2,d3] ~@3 [f2,f3]@2 [bb2,d3,f3]@8, f3@5 ~@11",
  AM: "[bb2,d3]@6 bb2 ~ d3@2 d3@4 d3@2, ~@5 bb2@3", AN: "~@2 [bb2,d3] ~@3 [f2,f3] ~ [bb2,d3]@6 f3 ~, f3@5 ~@3 f3@5 ~@3",
  AO: "c3@4 [c3,f3]@2 c3 ~ a2@4 [c3,f3]@2 a2 ~", AP: "f3@2 f3@4 f3@2 ~@6 a2 ~, ~@2 c3@6 a2@5 ~@3, ~@5 [c3,f3]@3",
  AQ: "c3 c3@2 c3 c3@2 [c3,f3] ~, ~ f3@3 f3 ~ d3@2", AR: "bb2@4 [bb2,d3]@2 bb2 ~ d3@2 d3@4 d3@2, ~@5 bb2@3",
  AS: "f3@4 [c3,f3]@2 f3 ~@7 a2 ~, c3@2 ~@6 a2@5 ~@3, ~@5 [c3,f3]@3", // F5
  AT: "[c3,f3]@6 c3 ~ c3@4 [c3,f3]@2 ~@2, ~@4 f3 ~ d3@2", // F5
  AU: "bb2@4 [bb2,d3]@2 bb2 ~ d3@4 [bb2,d3]@2 d3 ~, d3 ~@3 bb2 ~@3", // Bb
  AV: "bb2@4 [bb2,d3]@2 bb2 ~ [bb2,d3]@6 d3 ~, d3 ~@7", AW: "~@2 [bb2,d3] ~@3 f3 ~ [bb2,d3,f3]@6 f3 ~, f3@5 ~@11",
  AX: "f3@4 [c3,f3]@2 f3 ~ a2@4 [c3,f3]@2 a2 ~", AY: "c3@4 [c3,f3]@2 c3 ~ [c3,f3]@6 a2 ~, ~@8 a2@5 ~@3",
  AZ: "f3@2 f3@4 f3@2 a2@4 [a2,db3]@2 a2 ~, ~ c3@3 db3 ~@3", BA: "bb2@4 [bb2,d3]@2 bb2 ~ [c3,e3]@6 c3 ~, d3 ~@7",
  BB: "bb2@4 [bb2,d3]@2 bb2 ~ f3@4 [c3,f3]@2 f3 ~, ~@4 c3 ~@3", BC: "bb2@2 bb2@4 bb2@2 f3@4 [c3,f3]@2 f3 ~, ~ d3@3 ~@4",
  BD: "[f2,c3,f3]", // F5
})).s("gm_acoustic_guitar_nylon").gain(0.31).pan(1)

// other · cello
const cello = note(`<
  A@2 B@5 ~ A@2 C@2 D@2 E ~ A@2 F@4 G H I@2 J@2 K@3 ~@12 L@2 M@2 N@2 O ~@2 P Q@2 R@2 S@2 T ~@2 P Q@2 R@2 N@2 U V Q@2 R@2
  S@2 T W X@2 Y@2 Z@2 AA@4 Y@2 AB@2 ~ W X@2 Y@2 AC@2 AD V Q@2 R@2 AE@2 AF@2 ~ A@2 B@5 ~ A@2 C@2 D@2 E ~ A@2 F@4 G H I@2
  J@2 K@3
>`.pickRestart({
  A: "[g3@23 ~ g3@8]/2", B: "[f3@24 ~@32 c3@7 ~ c3@4 c3@5 ~@7, ~@12 f3@21 ~@7, ~@56 b2 ~@23]/5", C: "[f3@3 f3]/2",
  D: "f3/2", E: "e3@5 ~@11", F: "[f3@3 f3@4 c3]/4", G: "c3@4 c3@5 ~@7", H: "~ g3", I: "[g3@31 ~]/2",
  J: "[f3@23 f3@8 ~]/2", K: "[f3@31 e3@11 ~@6]/3", L: "[c4 ~@3 c4@19 ~ c4@4 g3@2 a3@2]/2",
  M: "[bb3@23 a3@2 g3@2 f3@4 ~]/2", N: "[a3@23 g3@9]/2", O: "e3@4 c3@3 ~@9", P: "~@12 c4@3 ~",
  Q: "[c4@23 ~ c4@4 g3@2 a3@2]/2", R: "[bb3@23 ~ a3@2 g3@2 f3@4]/2", S: "a3/2", T: "g3 ~@3", U: "e3@3 c3@4 ~@9",
  V: "~@8 c4@3 ~ c4@3 ~", W: "~@12 bb3@3 ~", X: "[bb3@31 ~]/2", Y: "[bb3@7 c4]/2", Z: "[a3 f3@7]/2",
  AA: "[f3@27 bb3@3 ~ bb3@32 ~]/4", AB: "[a3 f3@4 ~@3]/2", AC: "[a3@4 f3@23 ~ f3@3 ~]/2", AD: "f3 ~@3",
  AE: "[g3@3 a3@29]/2", AF: "[g3@5 ~@3]/2",
})).s("gm_cello").gain(0.46).pan(0.7)

// other · viola
const viola = note(`<
  A@2 B@2 C@3 ~ D@2 E@5 ~ F@2 G@2 H@2 I J D@2 K@2 L@2 M ~@12 N@2 O@5 P ~ P Q@2 R@2 S@3 ~@2 T Q@2 U@2 V@3 P W@2 U@2 L@2 X
  ~@24 J Q@2 U@2 L@2 Y@2 ~ A@2 B@2 C@3 ~ D@2 E@5 ~ F@2 G@2 H@2 I J D@2 K@2 L@2 M
>`.pickRestart({
  A: "[~@26 d4 ~@5, ~ e4@31]/2", B: "[d4@23 d4@8 ~]/2", C: "[c4@24 c4@7 c4@11 ~@6]/3", D: "[e4@23 ~ e4@2 d4@2 c4@4]/2",
  E: "[d4@23 ~ d4@7 c4@31 ~ c4@8 ~@9]/5", F: "[e4@23 e4@2 d4@2 c4@4 ~]/2", G: "[d4@28 d4@3 ~]/2", H: "[c4@24 c4@7 ~]/2",
  I: "c4@2 c4 ~@5", J: "~@8 e4@4 e4@3 ~", K: "[~ e4@2 d4@20 ~ d4@8, ~ d4 ~@30]/2", L: "[c4@31 ~]/2", M: "c4 ~",
  N: "[~@3 e4 ~ e4@18 ~ e4@8]/2", O: "[~ d4@21 ~ d4@7 ~ c4@24 ~@9 e4@4 [c4,e4]@4 ~@8, ~@57 c4@11 ~@12]/5",
  P: "~@13 e4@2 ~", Q: "[e4@23 ~ e4@8]/2", R: "[~ d4@21 ~ d4@8 ~]/2", S: "[c4@5 ~]/3", T: "~@12 e4@3 ~",
  U: "[d4@23 ~ d4@8]/2", V: "[c4@31 c4@3 ~ c4@4 ~@9]/3", W: "[e4@23 ~ e4@3 ~ c4@4]/2", X: "c4@3 ~@5", Y: "[c4@3 ~]/2",
})).s("gm_viola").gain(0.46)

// bass · contrabass
const bass = note(`<
  A@2 B@2 C@3 ~ A@2 D@2 E F@2 ~ G@2 H@2 I@2 J K A@2 H@2 E L@2 ~@81 A@2 B@2 C@3 ~ A@2 D@2 E F@2 ~ G@2 H@2 I@2 J K A@2 M@3
  N@2
>`.pickRestart({
  A: "[[c2,c3]@6 [g1,g2] [a1,a2]]/2", B: "[[bb1,bb2]@6 ~ [g1,g2], ~@12 [a1,a2]@3 ~]/2",
  C: "[[f1,f2]@23 ~ [f1,f2]@7 [c2,c3]@3 ~ [c2,c3]@4 ~@9]/3", D: "[[bb1,bb2]@23 [bb1,bb2]@9]/2", E: "[f1,f2]",
  F: "[[e1,e2]@15 [c1,c2]@9 ~@8]/2", G: "[[c2,c3]@23 [g1,g2]@5 [a1,a2]@4]/2", H: "[bb1,bb2]/2",
  I: "[[f1,f2]@23 ~ [e1,e2]@8]/2", J: "[c1,c2]@3 ~ [c1,c2]@5 ~@7", K: "~@8 [c2,c3]@3 ~ [c2,c3]@3 ~",
  L: "[[e1,e2]@15 [c1,c2]@13 ~@4]/2", M: "[bb2@32 f2@15 ~]/3", N: "[e2@15 c2@13 ~@4]/2",
})).s("gm_contrabass").gain(0.46)

stack(electric_guitar_jazz, acoustic_guitar_nylon, cello, viola, bass)

More by Eagles