Strudelify
Romeo & Juliet cover art

Down Under

Romeo & Juliet

Dire Straits

KeyF majorTempo90 bpm
0:00/0:00
// Romeo & Juliet — Dire Straits
// 90 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 110 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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.

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@4 A B C D E F E G H I J K E F E G H I J L M N O P Q G R S A B C D E F E G H I J K E F T G H I J L M N O P Q G R S A
  B C D E F E G H I U C E V E G H I J L M N O P Q G R S A B C D A B C D E V E G H I W X J Y W X J Z
>`.pickRestart({
  A: "f1", B: "bb1", C: "c2", D: "bb1@3 c2", E: "f1@15 ~", F: "d2@11 ~ c2@4", G: "d2@8 bb1@7 ~", H: "c2@3 bb1",
  I: "c2@8 f1@5 ~ f1@2", J: "bb1!2", K: "c2@15 ~", L: "c2@4 c2@4 c2!4 g1 ~ g1@2", M: "f1@3 ~ f1@4 c2@4 c2@2 a1@2",
  N: "d2@2 d2 c2 bb1@2 bb1 c2", O: "f1@2 f1@2 c2@2 c2 a1", P: "d2@2 d2 c2 bb1@2 e1@2", Q: "f1@3 c2 bb1@4",
  R: "g1@2 g1@2 g1@2 g1 a1", S: "bb1@3 ~ bb1@2 c2@2 d2@4 e1@4", T: "f1@6 a1 c2", U: "bb1@8 bb1@5 ~ bb1@2", V: "d2@3 c2",
  W: "bb1@8 bb1 ~@7", X: "c2@4 c2 ~@3 c2@3 c2 g1@2 a1@2", Y: "c2@4 c2 ~@3 c2!4 g1@2 a1@2", Z: "c2@4 c2 ~@3 c2!3 ~@5",
})).s("gm_fretless_bass").gain(0.31)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B C D A E F G H I J K L M N O H I J K L M N O P Q R S T U V W X Y Z G H I J K L M N O AA AB AC AD AE AF N AG P Q R S
  T U V W X Y Z G H I J K L M N O H AH AI AJ AE AK AL AM P Q R S T U V W X Y Z AN AO Y Z AP H AH AI AJ AE AK AL AM AQ AR
  AS AT AU ~
>`.pickRestart({
  A: "~@6 c4 ~@4 c4 ~@3 g4, a4@6 a4@5 ~@5, f3@3 c4@3 ~ c4 c3@4 [c3,c4,g4]@2 [c3,e4]@2, ~ a3 [f3,f4]@4 ~@2, ~@4 a3@6 [a3,c4]@2 ~ c4@2 ~", // C5 C F Am
  B: "[bb3,d4]@2 ~@8 [bb3,d4] [bb3,f4] e4 f4 [e4,g4] [c4,g4], f4@6 f4@5 ~@5, ~@2 f3@9 ~@5, ~@3 bb3@4 bb3 bb2@4 [c3,c4]@3 ~, ~@2 d4@3 ~@3", // Bb Bb5 Em C5 C
  C: "~@6 c4 ~@6 a4 ~ e4, a4@3 a4@2 a3@3, f3@3 c4@3 ~ c4 f2@7 ~, ~@2 a3@2 f4@7 c4@5, ~@4 [f3,a3]@5 c3@3 f4@2 [c3,g4]@2", // F C5
  D: "[bb3,d4]@2 ~@8 [bb3,d4] [bb3,f4] [c3,g3,c4]@2 [c4,e4] c4, f4@6 f4@5 ~@5, ~ bb2@3 bb2@2 ~@2, ~@3 bb3@4 bb3@3 ~@6, ~@2 d4@3 ~@3", // Bb Bb5 C5 C
  E: "[bb3,d4]@2 ~@8 [bb3,d4] [bb3,f4] ~@2 g4@2, f4@6 f4@5 ~@2 f4@2 ~, ~@2 f3@9 ~@5, ~@3 bb3@4 bb3 bb2@4 [c3,c4,a4]@3 ~, ~@2 d4@3 ~@3", // Bb Bb5 F
  F: "c4@2 ~@4 c4 ~@6 a4 ~ e4, a4@3 a4@2 a3@3, ~@2 a3@2 f4@7 c4@5, ~@3 c4@3 ~ c4 f2@7 ~, ~@4 [f3,a3]@5 c3@3 f4@2 [c3,g4]@2", // F C5
  G: "[bb3,d4]@2 ~@8 [bb3,d4,f4] bb3 [c3,g3,c4,f4]@2 [c4,e4] c4, f4@3 f4@2 ~@3, ~ bb2@3 bb2@2 ~@2, ~@3 bb3@4 bb3@3 ~@6, ~@2 d4@3 ~@3", // Bb Csus4 C
  H: "[f3,c4,f4,a4]@15 ~", I: "[d3,f3,a3,d4]@11 ~ [c3,g3,c4,e4,g4]@4", J: "[f3,a3]@13 [a3,f4] ~@2, [c4,f4]@3 ~",
  K: "[d3,f3,a3,d4]@8 [bb2,f3,bb3,d4]@4 c4 d4 f4 ~", L: "[c3,g3,c4,e4,g4]@13 [f3,bb3,d4] bb2 [d4,f4]",
  M: "[c3,g3,c4,e4,g4]@7 ~ [a3,c4,f4]@8, ~@7 f3@5 ~@4", N: "[bb2,f3,bb3,d4]",
  O: "~@6 g3@2 e4@2 d4@2 c4@2 bb3 ~, c3@5 ~@3, c4 ~", P: "[c4,a4] g4, ~@4 c4@3 ~", Q: "a3@4 bb3@3 ~, f4@7 ~",
  R: "[c4,a4]@7 ~ [c4,g4]@7 ~", S: "[d4,a4]@7 ~ [bb3,f4]@4 [c4,g4]@4", T: "[c4,a4]@8 [bb3,f4]@7 ~",
  U: "d4@8 ~@3 d4 f4@4, ~@5 [g3,c4] ~@2", V: "[bb3,g4]@5 ~ g4 a4", W: "bb4@3 ~ bb4@2 c5@2 d5@4 c5@4",
  X: "[f2,c3,a3]@8 ~@5 a4 ~ e4, ~@8 f2@7 ~, ~@9 c3@3 f4@2 [c3,g4]@2, ~@5 a3@3, ~@11 c4@5", // F C5
  Y: "[bb3,d4]@2 ~@8 [bb3,d4] [bb3,f4] e4 f4 g4@2, f4@6 f4@5 ~@5, ~@2 f3@9 ~@5, ~@3 bb3@4 bb3 bb2@4 [c3,c4]@3 ~, ~@2 d4@3 ~@3", // Bb Bb5 C
  Z: "c4@2 ~@4 c4 ~@5 a4@2 [c3,g4]@2, a4@6 a4@5 f4@3 ~@2, ~@2 a3@2 [a3,f4]@7 c4@5, ~@3 c4@3 ~ c4@3 a3@6, ~@4 f3@4 f2@7 ~", // C5 Dm
  AA: "~@3 [e3,g3], [f2,c3,f3,c4]@15 ~", AB: "[a2,d3,f3]@3 [c3,g3,c4,e4,g4]", AC: "[f3,a3,c4,f4]@6 a2 c3",
  AD: "[d3,f3,a3,d4]@2 [bb2,f3,bb3,d4] ~", AE: "[c3,g3,c4,e4,g4]@13 ~@3",
  AF: "[c3,g3,c4,e4,g4] [a3,c4,f4], ~@8 f3@5 ~@3", AG: "c3@5 ~@3, c4 ~, g3@5 ~@11", AH: "[d3,a3,d4]",
  AI: "[f3,a3]@7 ~, [c4,f4]@3 ~", AJ: "[d3,f3,a3,d4]@8 [f3,bb3,d4]@4 c4 ~ f4 ~",
  AK: "[c3,g3,c4,e4,g4]@8 ~@7 c4, ~ [c4,f4], ~@3 f2, ~@13 c3@3, ~@7 a3", AL: "[f3,bb3,d4]",
  AM: "~@3 g3 ~@4, c3@5 ~@3, c4 ~",
  AN: "[bb3,d4]@2 ~@8 [bb3,d4,f4] bb3 [c3,g3,c4,f4]@2 [c4,f4] c4, f4@3 f4@2 ~@3, ~ bb2@3 bb2@2 ~@2, ~@3 bb3@4 bb3@3 ~@6, ~@2 d4@3 ~@3", // Bb Csus4 F5
  AO: "c4@2 ~@2 f4@2 c4 ~@8 g4, a4@6 a4@5 [c4,f4]@2 c4@3, ~ f3 f3@2 f2@3 [c3,e4], ~@3 c4@2 ~@2 c4@3 a3@6, ~@12 g4@3 ~", // F5 C
  AP: "a4@3 g4 f4@2 d4@2, [bb3,d4]@3 ~", AQ: "~@9 g4 [f4,bb4] ~@5, ~@4 [c4,f4] ~@3", AR: "~@2 d4@7 ~@7",
  AS: "~@6 d4 c4 f4@3 d4@5", AT: "~@6 c4 d4 c4 bb3 c4 g3 bb3@2 c4 ~", AU: "~@8 [e4,c5] [f4,d5]@6 ~",
})).s("gm_electric_guitar_jazz").gain(0.16)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@2 A ~@2 B A ~@2 C D ~ E ~@2 F ~ C D ~ E ~@2 F ~@5 G ~@2 A B H ~@2 C D ~ E ~@2 F ~@13 G ~@2 A B H ~@2 C D ~ E ~@2 F ~
  I ~ J ~ K L F ~@5 G ~@2 A B H ~ A B H ~@2 I ~ J ~ K L F ~@6
>`.pickRestart({
  A: "~@10 c4 ~@5", B: "~@15 f4", C: "f4@11 ~@5", D: "~@13 c4!2 f4", E: "~@15 bb3", F: "g3@5 ~@11", G: "a3@3 ~@3 a3@2",
  H: "~@10 c4 ~@4 e4", I: "[f3,f4]", J: "~@8 bb2@4 ~ d4 ~@2", K: "~@4 a3@3 ~, ~@7 f3@5 ~@4", L: "bb2",
})).s("gm_electric_guitar_jazz").gain(0.11)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note("<~@44 A B@2 C D E F G ~@58>".pickRestart({
  A: "[c4,f4,a4]@3 [e4,g4,c5]", B: "[[f4,a4,d5]@12 [e4,g4]@4 [f4,a4]@11 ~ [f4,a4,c5]@4, ~@12 c5@15 ~@5]/2",
  C: "a4 bb4, [f4,d5]", D: "[g4,c5,e5]@7 [f4,bb4,d5]", E: "[g4,c5,e5]@7 ~ [a4,c5,f5]@8", F: "[f4,bb4,d5]",
  G: "[g4,c5,f5]@15 ~", // Csus4
})).s("gm_percussive_organ").gain(0.11)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@3 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC@3 AD AE AF@8 AG@7 AH AI W X Y Z AJ AK AL ~@2 AM AN AO
  G H I J K L M AP AQ ~ AR AS AT AU AV V W X Y Z AA AB AC@3 AW@4 AX@3 AQ ~ AR AS AY@2 AZ BA BB BC BD BE BF
>`.pickRestart({
  A: "~@15 [d6,e6,f6]", B: "c6@5 ~ c6@8 ~@2", C: "d6@4 ~@2 d6@7 ~ d6@2", D: "c6@2 ~ c6@4 ~", E: "d6@12 c6@3 ~",
  F: "[c4,f4]@15 ~", G: "[d3,a3,d4]@3 [c3,g3,c4], f3@5 ~@3", H: "[f3,a3,c4]@15 ~",
  I: "[a3,d4]@6 ~@2 [bb2,bb3,d4]@7 ~, d3 ~", J: "[c3,g3,c4,e4]@7 ~", K: "e4@3 ~ e4@4 [f3,c4,f4]@7 ~, [c3,g3,c4] ~",
  L: "[bb3,d4,f4]@7 ~", M: "~@2 g3@11 ~@3, c3@13 ~@3", N: "[c3,f3,a3]@3 [e3,g3,c4]",
  O: "[f3,a3,d4]@3 [g3,c4], ~@12 e3 ~@3", P: "[c4,f4,a4]@3 [e4,g4,c5]", Q: "[f4,a4,d5] [d4,f4,bb4]",
  R: "[c4,e4,g4]@13 [bb3,d4,f4]@3", S: "[c4,e4,g4] [c4,f4,a4]",
  T: "[d4,f4]@9 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@4, bb3@11 bb3@5", // Dm Bb
  U: "[c4,e4,g4,c5] ~ [c4,e4,g4]@2 [g3,c4]@4 ~ [g3,c4]@2 ~ [g3,c4]@2 [g3,c4] ~, ~ c3@7 e3@7 ~, ~ g3@3 [e4,g4]@11 ~, ~@8 c3@3 c3@4 ~", // C C5 Em
  V: "[c4,f4,a4]@2 [c4,f4,a4]@2 c4 ~ c4!2, f3@8 [c3,e4,g4]@3 c3@5, ~@5 c4 [e4,g4]@2", // F C Em
  W: "d4@2 d4@2 ~@2 [e4,g4]@2 bb3 ~@3 bb3@2 bb3@2, d3@8 [bb2,d4,f4]@3 bb2@5, [f4,a4]@2 [d4,f4,a4]@2 ~ bb3 [d4,f4]@2", // Em Bb F Dm
  X: "c4 ~@3 [c4,f4,a4]@4 c4@2 c4@2 c4@2 c4@2, [f3,f4,a4]@3 f3@5 [e4,g4]@4 [e4,g4]@4, ~ c4 ~@2 c3@4", // F Em
  Y: "[d4,f4,a4]@2 d4!2 [d4,f4,bb4,d5]@2 [e4,g4,c5]@2, d3 ~, ~ [f4,a4] ~@2", Z: "[f3,f4,a4,c5] [bb3,d4,f4,bb4]",
  AA: "[d4,a4,d5,f5] [bb3,f4,bb4,d5]", AB: "[d4,g4,bb4]@2 ~@5 f4, g3@3 g3@3 g3@2, ~ [d4,g4] [d4,g4,bb4]@2",
  AC: "[[bb3,f4,bb4,d5]@4 [bb3,bb4]@2 [g4,c5,e5] ~ [d4,a4,d5,f5]@4 [c4,g4,c5,e5]@32 ~@4, ~@4 [f4,d5] ~ c4@2 ~@40]/3", // Bb C Dm C Dm
  AD: "c6@3 c6@5", AE: "d6@3 ~@3 c6@2, ~@3 d6@5",
  AF: "[~@14 c5@2 c5@6 ~@2 d5@4 ~@4 e4@8 e4@2 ~@2 f4@4 ~@9 g3@7, a6@7 e5@7 [f4,d5]@6 c4 e4@7 c3@4, ~@6 g5@10 [a4,f5]@6 c5@6 bb4@2 c5 bb4@13 f3@16 ~@4, ~@3 [g4,c5] [a4,f5]@3 g4@4 [e4,g4]@5 [g4,c5]@6 c4@7 ~@3, ~ d5@2 [a4,f5]@2 [c3,g3] [bb3,d4,f4]@2]/8", // Dm C5 Dm Em C5 Dm C5 Bb
  AG: "[c5@12 ~@16 c5@4 ~@16 a5@10 ~@6 c5@13 ~ c5@2 c5@4 c5@4 ~@17 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@4, [a4,f5]@8 [a4,d5]@14 g5@2 f5@7 a5@8 f5 [g4,g5]@16, ~@12 g4@20 [f5,a5]@16 d6@16 [g4,g5]@13 [f4,bb4]@28 ~@2 bb3@5, ~@6 [c5,e5]@8 [e5,g5]@8 [e5,c6]@8 bb4 a4@16 ~@9, ~@16 f5@16 c5@26 [g4,g5] [a4,a5] bb5@28 [c5,f5,a5]@24]/7", // Bb Dm D5 G F G Bb5 C …
  AH: "[c4,e4,g4,c5] ~ [c4,e4,g4,c5]@2 [g3,c4]@4 ~@6 e5 ~, ~ c3@7 e3@4 [g4,d5]@4, ~ g3@3 [e4,c5]@11 ~, ~@4 g4@7 c3@4 ~, ~@8 c3 [g3,c4]@6 ~", // C C5 G5 C C5
  AI: "a4@2 [c4,f4,a4]@2 c4 ~ c4!2, [c5,f5]@8 [c3,e4,g4]@3 c3@5, ~@5 c4 [e4,g4]@2", // F F5 C Em
  AJ: "f6 ~@2 [a4,a5] ~@2 [f4,f5]@2, f5 ~, ~ [e5,e6]@3 ~ [e4,e5]@3, ~ [d5,d6] [f4,f5] ~", // A F E D F
  AK: "[d4,g4,bb4]@2 ~@2 [d4,g4]@2 ~ a4, g3@3 g3@3 [g3,d4,g4]@2, ~ [d4,g4] bb4@2", // Gm G5
  AL: "[bb3,d4,f4,bb4]@4 [bb3,bb4]@2 [g4,c5,e5] ~ [d4,a4,d5,f5]@4 [c4,g4,c5,e5]@4, ~@4 [f4,d5] ~ c4@2 ~@8", // Bb C Dm C Dm
  AM: "c6@4 ~@2 c6@7 ~ c6 ~", AN: "c6@5 ~ c6@5 ~ bb5@3 ~", AO: "[c4,f4]@15 ~, a5@3 ~@13", AP: "[c4,f4]", AQ: "d4",
  AR: "d4 f4", AS: "[g3,c4]@7 f3", AT: "g3@6 g3@2 ~ c4@7, c4@9 ~@7",
  AU: "[bb3,f4]@9 [bb3,f4]@2 ~ [f3,bb3,f4]@4, ~@11 bb2@5", // Bb5
  AV: "[g3,c4]@2 c4@2 [g3,c4,f4]@2 ~@5 c3 [g3,c4,f4] c3 [g3,f4]@2, c3@3 c3!2 g3 ~@2, f4@4 ~@3 [g3,c4,f4]@2 [c4,f4]@3 ~@2 c4 ~", // C5 Csus4 G7 Csus4 F5
  AW: "[c6@3 ~@5 d6@3 ~@3 c6@16 ~@2, ~@3 c6@11 ~@18, ~@11 d6@16 ~@5]/4",
  AX: "[c6@3 ~@13 [c4,f4]@8, ~@3 c6@16 ~@5, ~ d6@2]/3", // F5
  AY: "[g3@3 g3 ~@4 f3@3 ~@3 [f3,bb3,d4]@2, c4@9 c4@23, ~@4 [bb3,d4]@3 ~, ~@8 bb2@5 bb2@3, ~@11 f3@3 ~@2]/2", // Bb
  AZ: "[bb3,d4]@2 [c4,e4]@4 e4@5 ~ g3@2 g3@2, c3@11 c3@5, g3@3 c4@5, ~@3 g3@2 ~ e4@2", // Bb C
  BA: "~@3 d4@3 bb2@2, bb2@3 ~, [f3,bb3,d4]@3 g4@5, ~ a4@7, ~ f4@3", // Bb
  BB: "[bb3,d4]@2 [g3,c4,e4]@3 ~ g3@4 ~@2 e5 ~ g5@2, c3@10 g3@2 [g3,c4,g4]@3 ~, g3 ~@5 [c4,e4]@5 c3@4 ~, ~@13 f5@2 ~", // Bb C C5 C
  BC: "[d5,f5] ~@5 [f3,bb3,d4]@2, [bb3,d4]@3 ~, bb2@5 bb2@3, f3@3 f3@3 ~@2, ~ bb4@7", // Dm Bb
  BD: "[bb3,d4]@2 [c4,e4]@4 e4@5 ~ g3@2 ~ e5, c3@11 c3@5, g3@3 c4@5, ~@3 g3@2 ~ e4@2, ~@7 g3", // Bb C
  BE: "f5 ~@2 d4@3 bb2@2, bb2@3 ~, [f3,bb3,d4]@3 d5@5, ~ e5@7, ~ c5@3", // Bb
  BF: "[bb3,d4]@2 [g3,c4,e4]@3 ~ [g3,e4]@2 ~@8, c3@9 ~@7, g3 ~@5 c4 ~@9", // Bb C
})).s("gm_piano").gain(0.31).pan(0.7)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~@15 A ~@7 B ~@6 C ~@12 D@3 ~@12 C ~@12 A E F G H I J K L ~@6 C ~@9 E F G H I M@2 N O ~@2 N O ~
>`.pickRestart({
  A: "~@4 c4@9 ~@3", B: "~@2 c5@2 c5@11 ~", C: "~ bb4 ~@2", D: "[~ c4@8 ~@3]/3", E: "a3", F: "[a3,f4]", G: "[f3,c4,f4]",
  H: "[a3,f4] bb3", I: "~@7 bb3", J: "~@9 f4@7", K: "~@7 f3@4 ~@5", L: "~ g3 ~@6", M: "[~@9 f4@23]/2", N: "~@5 g3 ~@2",
  O: "~@6 f3@4 ~@3 d4@3, ~@3 bb3@5, ~@5 f3@3",
})).s("gm_piano").gain(0.18).pan(0.7)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@4 A@2 B@2 C@2 D E F@4 G@2 D E H@8 I@4 J@2 B@2 C@2 D E F@4 K L K M@7 N@6 J@2 B@2 C@2 D E F@4 O@2 D E P@8 I@4 J@2 B@2
  A@2 Q@2 R@2 D E S@4 T@6
>`.pickRestart({
  A: "[[a4,c5]!2 [f4,a4,c5] ~ c5 [f4,c5] c5 ~@2 [f4,a4,c5]!2 ~ c5 [f4,c5] [f4,a4,c5]!2 [bb4,c5]!2 [f4,bb4,c5] ~ c5 [f4,c5] c5 c5@2 [bb4,c5] [f4,bb4,c5] ~ c5 [f4,c5] [f4,bb4,c5]!2, [c3,f3] [bb2,f3], [c4,f4] c4@2 [c4,f4,a4] c4 c4@2 c4@9, ~@3 [f4,a4]@2 ~@2 c5@2 ~@2 [f4,a4]@2 ~@3 f4@2 ~ [f4,bb4]@2 ~ [f4,bb4]@3 ~@2 [f4,bb4]@2 ~@3]/2", // Am F F5 F F5 F Bbsus2 Fsus4 …
  B: "[[a4,c5]!2 [f4,a4,c5] ~ c5 [f4,c5] c5 ~@2 [f4,a4,c5]!2 ~ c5 [f4,c5] [f4,a4,c5]!2 bb4!2 [f4,bb4] ~ bb4 [f4,bb4] [f4,bb4]@3 bb4 [f4,bb4] ~ bb4 [f4,bb4]!3, [c3,f3] [bb2,f3], [c4,f4] c4@2 [c4,f4,a4] c4 c4@2 c4@9, ~@3 [f4,a4]@2 ~@2 c5@2 ~@2 [f4,a4]@2 ~@3 f4@2 ~ [f4,bb4]@2 ~@6 [f4,bb4]@2 ~@3]/2", // Am F F5 F F5 F Bb5 F5 …
  C: "[[f3,a3,f4]@13 ~@3 [f3,a3,d4]@11 ~ [c3,g3,c4] ~@3, ~@15 d3@12 ~@5]/2", D: "[f3,a3,c4,f4]@7 ~",
  E: "[d3,f3,a3,d4]@4 [bb2,f3,bb3]@3 ~", // Dm Bb5
  F: "[[e3,g3,c4]@4 [e3,g3,c4]@4 [c3,e3,g3,c4]@3 c4 [d3,f3,bb3]@2 [bb2,bb3]@2 [e3,c4]@2 [g3,c4]@2 [e3,g3,c4]@2 c4 f4@5 [c4,f4] f4@3 [f3,f4]@2 [bb3,d4]@2 [d4,f4]@2 [d4,f4] [bb3,d4]@2 [d4,f4] ~@2 [bb3,d4]@2 [bb3,d4,f4] ~ [c3,g3] ~ [c4,e4]@2 [c4,e4,g4]@11 ~, c3@7 ~@7 d3@10 ~@4 f3@4 bb2@7 bb2@25, ~@14 f3@6 ~@2 g3@14 f3@7 f3@4 f3@16 ~, ~@29 c4@10 ~@3 [bb3,d4]@2 ~@3 [bb3,d4]@3 ~@14]/4", // C Bb C C5 C F5 F Bb …
  G: "[[f3,a3,c4,f4]@14 ~@2 [f3,a3,d4]@11 ~ [c3,g3,c4] ~@3, ~@15 d3@12 ~@5]/2", // F Dm C5
  H: "[[e3,g3,c4]@4 [e3,g3,c4]@4 [g3,c4] [g3,c4]@2 c4 [d3,f3,bb3]@2 bb3!2 [e3,c4]@2 [g3,c4]@2 [g3,c4]@2 c4 f4@2 [f3,c4,f4] ~ f4 [c4,f4] f4@2 f4 [f3,f4] ~ [bb3,d4]@2 [d4,f4]@2 [bb3,d4,f4] [bb3,d4]@2 [d4,f4] ~@2 [bb3,d4]@2 [bb3,d4,f4] ~ [c3,g3] ~ [c4,e4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4]@2 [e4,g4] ~@2 [c4,e4]@2 [c4,e4,g4] [c4,e4] ~ [c4,f4] [a3,c4,f4]@2 [c4,f4]@2 [c4,f4] [c3,e4]@2 c3 ~ e4 [c4,e4] e4@3 f4!2 [a3,d4]@2 [f3,d4,f4]@2 [a3,d4,f4] ~@2 [d4,f4]@2 f4 [bb3,d4]@2 [bb3,d4,f4] [f3,f4] c4 [c4,f4] [a3,c4,f4]@2 [f3,c4,f4]@2 [a3,c4,f4] [c4,f4]@2 ~@2 e4 [c4,e4] e4@3 f4!2 [a3,d4]@2 [d4,f4]@2 [a3,d4,f4] d4@2 [d4,f4]@2 f4 [c4,e4]@2 ~ e4, c3@7 ~ [c3,e3]@4 ~@2 [d3,f3]@10 ~@4 f3@4 bb2@7 bb2@25 [f3,c4]@2 ~@2 f3@5 ~ c3@2 c3@11 ~ bb2@9 ~@8 [c3,g3]@2 ~ c3@20, ~@14 bb2@2 ~@6 g3@4 ~@2 a3@6 ~@2 f3@7 f3@4 f3@12 g3@4 g3@5 ~@2 a3@6 g3@6 ~@5 f4@2 ~@20 c4@9 ~ bb3@5 g3@4, ~@29 c4@9 ~@4 [bb3,d4]@2 ~@3 [bb3,d4]@3 ~@8 [c4,e4]@2 ~@13 [c4,e4]@3 ~ c4@9 ~ bb3@5 ~@3 bb3@3 ~@10 g3@6 ~@2 f3@7 f3@5, ~@80 d3@4 ~@7 f3@4 ~ f3@4 ~@6 c3@2 ~@4 d3@4 ~@10 [c4,e4]@2]/8", // C C5 Bb C C5 F5 F Bb …
  I: "[~ [c4,f4] [c4,f4]@2 [f3,c4,f4]@2 [c4,f4] [bb2,f3,f4]@2 bb2 ~ [d4,f4] [bb3,f4] f4@3 [d3,f4]@8 [bb3,d4,f4]@8 g3 [d4,g4] [bb3,d4,g4]@2 [bb3,d4,g4]@2 [bb3,d4,g4] [bb3,d4,g4]@2 [bb3,d4,g4]@2 g4 [d4,g4] [d4,g4]@2 [bb2,g4] [d4,f4]!2 bb3@2 [bb3,d4]@2 [bb3,f4] [f3,d4,f4] [d4,f4]@4 [c3,e3,c4,e4]@4, [f3,a3]@2 ~@4 a3@3 [f3,bb3,f4]@3 ~ bb3@11 f3@12 ~@5 g3 ~@2 g3@11 bb3@5 ~@4, ~@10 bb2@2 [bb2,f3]@4 ~@8 bb2@19 ~ g2@16 ~@4, ~@8 d3 d3@2 [d3,bb3] d3!2 ~@2, ~@48 bb3@2 ~@2 f4 ~@11]/4", // F5 Bb5 Dm Bb5 Dm Bb G5 Gm …
  J: "[[a4,c5]!2 [f4,a4,c5] ~ c5 [f4,c5] c5 ~@2 [f4,a4,c5]!2 ~ c5 [f4,c5] [f4,a4,c5]!2 [bb4,c5]!2 [f4,bb4,c5] ~ c5 [f4,c5] c5 c5@2 [bb4,c5] [f4,bb4,c5] ~ c5 [f4,c5] [f4,bb4,c5]!2, f3 [bb2,f3], [c4,f4] c4@2 [c4,f4,a4] c4 c4@2 c4@9, ~@3 [f4,a4]@2 ~@2 c5@2 ~@2 [f4,a4]@2 ~@3 f4@2 ~ [f4,bb4]@2 ~ [f4,bb4]@3 ~@2 [f4,bb4]@2 ~@3]/2", // Am F F5 F F5 F Bbsus2 Fsus4 …
  K: "[f2,c3,f3,a3,c4]@13 ~@3", L: "[a2,d3,f3,a3,d4]@11 ~ [g2,c3,g3,c4,e4]@3 ~",
  M: "[[f3,a3,d4]@8 ~@8 c4@4 c4@4 [g3,c4] [g3,c4]@2 c4 [d3,f3,bb3]@2 bb3!2 [e3,c4]@2 [g3,c4]@2 [g3,c4]@2 c4 f4@2 [f3,c4,f4] ~ f4 [c4,f4] f4@2 f4 [f3,f4] ~ [bb3,d4]@2 [d4,f4]@2 [bb3,d4,f4] [bb3,d4]@2 [d4,f4] ~@2 [bb3,d4]@2 [bb3,d4,f4] ~ [c3,g3] ~ [c4,e4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4]@2 [e4,g4] ~@2 [c4,e4]@2 [c4,e4,g4] [c4,e4] ~ [c4,f4] [a3,c4,f4]@2 [c4,f4]@2 [c4,f4] [c3,e4]@2 c3 ~ e4 [c4,e4] e4@3 f4!2 [a3,d4]@2 [f3,d4,f4]@2 [a3,d4,f4] ~@2 [d4,f4]@2 f4 [bb3,d4]@2 [bb3,d4,f4] [f3,bb3,f4], [a2,d3]@24 ~@6 bb2@2 ~@13 c4@9 ~@4 [bb3,d4]@2 ~@3 [bb3,d4]@3 ~@8 [c4,e4]@2 ~@4 [f3,c4]@2 ~@2 f3@5 [c4,e4]@3 ~ c4@9 ~ bb3@5 ~@4, ~@8 bb3@12 ~@18 g3@4 ~@2 a3@6 ~@2 f3@7 f3@4 f3@12 g3@4 g3@5 ~@2 a3@6 g3@6 ~@5 f4@2 ~@7, ~@16 c3 ~@7 [c3,e3]@4 ~@2 [d3,f3]@10 ~@4 f3@4 bb2@7 bb2@25 ~@10 c3@2 c3@11 ~ bb2@8, ~@96 d3@4 ~@7 f3@4 ~]/7", // Dm C5 Bb C C5 F5 F Bb …
  N: "[c4 [c4,f4] [a3,c4,f4]@2 [f3,c4,f4]@2 [a3,c4,f4] [c4,f4]@2 ~@2 e4 [c4,e4] e4@3 f4!2 [a3,d4]@2 [d4,f4]@2 [a3,d4,f4] d4@2 [d4,f4]@2 f4 [c4,e4]@2 ~@3 [c4,f4] [c4,f4]@2 [f3,c4,f4]@2 [c4,f4] [bb2,f3,f4]@2 bb2 ~ [d4,f4] [bb3,f4] f4@3 [d3,f4]@8 [bb3,d4,f4]@8 g3 [d4,g4] [bb3,d4,g4]@2 [bb3,d4,g4]@2 [bb3,d4,g4] [bb3,d4,g4]@2 [bb3,d4,g4]@2 g4 [d4,g4] [d4,g4]@2 [bb2,g4] [d4,f4]!2 bb3@2 [bb3,d4]@2 [bb3,f4] [f3,d4,f4] [d4,f4]@4 [c3,e3,c4,e4]@4, f3@4 ~@5 [c3,g3]@2 ~ c3@19 e4@2 ~@47 bb3@2 ~@2 f4 ~@11, ~@10 c3@2 g3@6 ~@2 f3@7 f3@5 [f3,a3]@2 ~@7 [f3,bb3,f4]@3 ~@12 f3@12 ~@5 g3 ~@2 g3@11 bb3@5 ~@4, ~@13 c4@9 ~ bb3@5 g3@4 ~@6 a3@3 ~ bb2@2 [bb2,f3]@4 ~@8 bb2@19 ~ g2@16 ~@4, ~@16 d3@4 ~@10 [c4,e4]@2 ~@13 bb3@11 ~@8 d3@4 d3@8 [d3,bb3]@4 d3@4 d3@4 ~@8]/6", // F5 F F5 F F5 C D5 Dm …
  O: "[[f3,a3,c4,f4]@14 ~@2 [f3,a3,d4]@15 ~, ~@15 d3@15 ~@2]/2", // F Dm
  P: "[[c3,e3,g3,c4]@11 ~ [d3,f3,bb3]@2 bb3!2 [e3,c4]@2 [g3,c4]@2 [g3,c4]@2 c4 f4@2 [f3,c4,f4] ~ f4 [c4,f4] f4@2 f4 [f3,f4] ~ [bb3,d4]@2 [d4,f4]@2 [bb3,d4,f4] [bb3,d4]@2 [d4,f4] ~@2 [bb3,d4]@2 [bb3,d4,f4] d4 [c3,g3,f4] ~ [c4,f4]@2 [c4,f4,g4]@2 [c4,f4,g4] [c4,f4]@2 [f4,g4] ~ g3 [c3,g3,c4,f4] [c3,g3] [c3,g3,c4,f4] [c3,c4,f4] ~ [c4,f4] [a3,c4,f4]@2 [c4,f4]@2 [c4,f4] [c3,e4]@2 c3 ~ e4 [c4,e4] e4@3 f4!2 [a3,d4]@2 [f3,d4,f4]@2 [a3,d4,f4] ~@2 [d4,f4]@2 f4 [bb3,d4]@2 [bb3,d4,f4] [f3,f4] c4 [c4,f4] [a3,c4,f4]@2 [f3,c4,f4]@2 [a3,c4,f4] [c4,f4]@2 ~@2 e4 [c4,e4] e4@3 f4!2 [a3,d4]@2 [d4,f4]@2 [a3,d4,f4] d4@2 [d4,f4]@2 f4 [c4,e4]@2 ~ e4, ~@14 [d3,f3]@10 ~@4 f3@4 bb2@7 bb2@21 ~@4 [f3,c4]@2 ~@2 f3@5 ~ c3@2 c3@11 ~ bb2@9 ~@8 [c3,g3]@2 ~ c3@20, ~@14 bb2@2 ~@6 g3@4 ~@2 a3@6 ~@2 f3@7 f3@4 f3@12 ~@4 g3@5 ~@2 a3@6 g3@6 ~@5 f4@2 ~@20 c4@9 ~ bb3@5 g3@4, ~@29 c4@9 ~@4 [bb3,d4]@2 ~@3 bb3@3 ~@8 [c4,f4]@2 ~@13 [c4,e4]@3 ~ c4@9 ~ bb3@5 ~@3 bb3@3 ~@10 g3@6 ~@2 f3@7 f3@5, ~@80 d3@4 ~@7 f3@4 ~ f3@4 ~@6 c3@2 ~@4 d3@4 ~@10 [c4,e4]@2]/8", // C Bb C C5 F5 F Bb Dm …
  Q: "[[a4,c5]!2 [f4,a4,c5] ~ c5 [f4,c5] c5 ~@2 [f4,a4,c5]!2 ~ c5 [f4,c5] [f4,a4,c5]!2 [bb2,f3,f4,a4]@16, [c3,f3] ~, [c4,f4] c4@2 [c4,f4,a4] c4 c4@2 c4@9, ~@3 [f4,a4]@2 ~@2 c5@2 ~@2 [f4,a4]@2 ~@19]/2", // Am F F5 F F5 F Bbmaj7 F5 …
  R: "[[f3,a3,f4]@13 ~@3 [f3,a3,d4]@15 ~, ~@15 d3@15 ~@2]/2", // F Dm
  S: "[[c3,e3,g3,c4]@11 ~ [d3,f3,bb3]@2 bb3!2 [e3,c4]@4 g3@2 g3@2 [c4,f4]@3 f4 [c4,f4] f4@3 ~ f4 f4@2 f4@2 f4 bb2 ~ f4 [bb3,f4]@2 [bb3,f4]@2 [bb3,d4,f4] f4 f4 g4 [c4,g4]@2 g4@2 [c4,f4,g4] [c4,g4]@2 [f4,g4] [c4,g4]@2 [c3,g3,c4,g4]@2 [c3,g3,c4,f4,g4] [c3,g3,c4,f4], ~@14 [d3,f3]@10 ~@4 f3@4 bb2@7 ~@9 c3@7 ~@9, ~@14 bb2@2 ~@4 c4@4 ~@4 a3@8 ~@11 bb3@7 ~@10, ~@29 c4@17 ~@2 c4@2 ~@14, ~@8 f3 ~@7]/4", // C Bb C F5 Bb5 Bb C5 Csus4 …
  T: "[~ f4 f4@2 [d4,f4]@2 f4 bb2 ~ f4 [bb3,f4]@2 [bb3,f4]@2 [bb3,d4,f4] f4 f4 g4 [c4,g4]@2 g4@2 [c4,f4,g4] [c4,g4]@2 g4 [c4,g4]@2 [c3,g3,c4,g4]@2 [c3,g3,c4,f4,g4] f4 ~ f4 [d4,f4]@2 f4@2 f4 ~@2 f4 [bb3,f4]@2 [bb3,f4]@2 [bb3,d4,f4] f4 f4 g4 [c4,g4]@2 g4@2 [c4,f4,g4] [c4,g4]@2 [f4,g4] [c4,g4]@2 [c3,g3,c4,g4]@2 [c3,g3,c4,f4] [c4,f4] ~ f4 f4@2 [d4,f4]@2 f4 bb2 ~ f4 [bb3,f4]@2 [bb3,f4]@2 [bb3,d4,f4] f4 f4 g4 [c4,g4]@2 g4@2 [c4,f4,g4] [c4,g4]@3 ~@6, bb3@4 ~@11 bb3@7 ~@9 g3@5 ~@12 c4@2 ~@12 g4@6 ~@28, ~@16 c3@7 c3 ~@7 c3@8 ~@9 c3@7 ~@8 c3@8 ~@9 c3@7 c3 ~@8, ~@16 c4@2 ~@13 c4@3 ~@13 bb3@7 ~@10 bb3@4 ~@11 bb3@7 ~@10, ~@32 f3@4 ~@27 g3@5 ~@12 c4@2 ~@14]/6", // Dm Bb5 Bb C5 Csus4 C5 Csus4 Dm …
})).s("gm_acoustic_guitar_steel").gain(0.07).pan(0.3)

// other · electric guitar jazz · "JAZZ GTR" · Bb5 F5 C Dm
const electric_guitar_jazz_3 = note(`<
  ~@105
  [~ g4 [f4,bb4] ~@7 d4@6, [c4,f4] ~@7]
  [~@14 d4 c4]
  [f4@3 d4@5 ~@6 c4 d4]
  [c4 bb3 c4 g3 bb3@2 c4 ~@9]
  [[e4,c5] [f4,d5]@6 ~@9]
>`).s("gm_electric_guitar_jazz").gain(0.02).pan(0.1)

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

// drums · rim
const rim = s("rim").struct("<~@4 A@3 B A@7 B A@7 B ~@10 A@17 B ~@10 A@17 B ~@10 A@5 ~ A@13 ~>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.42)

// drums · snare
const snare = s("sd").struct("<~@24 A B A C B D A E ~@20 A B F G B ~ A H ~@19 I A J F ~ K ~ A ~@23>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@6 x ~@4", C: "~@3 x!2 ~@11", D: "~@14 x!2", E: "~@3 x ~@12", F: "~@3 x ~@3 x",
  G: "~@4 x ~ x!2 ~@8", H: "~@2 x!2 ~@12", I: "~@12 x!4", J: "~@4 x ~@3 x ~ x!2 ~ x!2 ~", K: "~ x ~@2",
})).gain(0.54)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@25 A ~@5 B ~@21 C ~@5 D ~@19 E ~@30>".pickRestart({
  A: "~@5 x ~@2", B: "~ x!2 ~@13", C: "~@9 x!2 ~@5", D: "~ x ~@14", E: "~@8 x!4 ~@4",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@7 B ~@19 A ~@3 C ~@3 B ~@23 D E F ~ G ~@22>".pickRestart({
  A: "~@6 x!2", B: "~@6 x!2 ~@8", C: "~@11 x!2 ~@3", D: "~@7 x!2 ~ x ~@5", E: "~@14 x!2", F: "~@10 x!5 ~",
  G: "~@4 x!4 ~@8",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B A C A B A D A B E F A B A D A B E G ~@2 H ~@3 H ~@3 I J A B@2 D A B E F K A@2 L A B E G ~@2 H ~@3 H ~@3 I J A
  B A D A B E M N O@2 P O P O G ~@2 H ~@3 H ~@3 I Q R S R T N O@2 P O P O U O U P N P ~
>`.pickRestart({
  A: "~@2 x!5 ~", B: "x ~ x!5 ~", C: "x ~ x ~ x!3 ~", D: "x ~@3 x ~@2 x!2 ~@3 x ~@3", E: "x!7 ~", F: "~@2 x ~ x!4",
  G: "~ x ~@2", H: "~@3 x ~@3 x", I: "~@2 x!3 ~ x ~", J: "x!4 ~@3 x", K: "~@2 x!4 ~@2", L: "~@4 x ~@2 x!2 ~@3 x ~@3",
  M: "~ x!2 ~", N: "x!3 ~ x ~ x ~", O: "~ x!3", P: "x!4", Q: "x!8", R: "x ~ x!3 ~ x ~", S: "x!4 ~@4", T: "x!2 ~@2",
// … 68 more lines

More by Dire Straits