Strudelify
Walk Of Life cover art

Down Under

Walk Of Life

Dire Straits

KeyE majorTempo170 bpm
0:00/0:00
// Walk Of Life — Dire Straits
// 170 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 164 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(170/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.

// other · drawbar organ · "Organ"
const drawbar_organ = note(`<
  A@4 B@2 C D E F G H I J G K E F G L I M G N E F G H I F G O I P G Q I R G O ~@24 I P G Q I R G O ~@24 I S G Q I R G O
  I P G Q I R G O ~@24 I P G Q I R G O I P G Q I R G O I P G Q I R G O I M G ~
>`.pickRestart({
  A: "[g#4@3 f#4 e4@3 g#4, e5, [b4,g#5] [c#5,a5]]/4", B: "[f#4@3 d#4, [b4,d#5,f#5]]/2", C: "e4@3 g#4, [c#5,e5,a5]",
  D: "[f#4,b4,d#5], f#5@7 ~", E: "[b5,b6]@2 ~ [b5,b6] ~@4",
  F: "~@2 [f#5,f#6] ~ [g#5,g#6] ~ [b5,b6]@3 ~ [g#5,g#6]@2 [f#5,f#6]@2 ~@2", G: "[e5,e6]@5 ~ [e5,e6]@2 ~@8",
  H: "~@6 [f#5,f#6] g#5, ~@14 g#6 ~", I: "[b5,b6]@5 ~ [b5,b6]@2 ~@8",
  J: "~@2 f#5@2 [g#5,g#6] ~ [b5,b6]@4 [g#5,g#6]@2 [f#5,f#6]@2 ~@2, ~@2 f#6 ~@13", // G# B G# F#
  K: "~@4 [f#5,f#6]@2 [g#5,g#6] ~ [b5,b6]@2 [g#5,g#6]@2 [f#5,f#6] ~ e5@2, ~@14 e6 ~", L: "~@12 [f#5,f#6]@2 [g#5,g#6] ~",
  M: "~@2 [f#5,f#6] ~ [g#5,g#6] ~ [b5,b6]@4 [g#5,g#6]@2 [f#5,f#6]@2 ~@2", // F# G# B G# F#
  N: "~@4 [f#5,f#6]@2 [g#5,g#6] ~ [b5,b6]@2 [g#5,g#6]@2 [f#5,f#6] ~ [e5,e6]@2", // F# G# B G# F# E
  O: "~@4 [f#5,f#6]@2 [g#5,g#6] ~ [b5,b6]@2 [g#5,g#6]@2 [f#5,f#6] ~ [e5,e6] ~", // F# G# B G# F# E
  P: "~@2 [f#5,f#6] ~ [g#5,g#6] ~ [b5,b6]@4 g#5@2 [f#5,f#6]@2 ~@2, ~@10 g#6 ~@5", Q: "~@6 [f#5,f#6] g#6, ~@14 g#5 ~",
  R: "~@2 f#6@2 [g#5,g#6] ~ [b5,b6]@3 ~ g#5@2 [f#5,f#6]@2 ~@2, ~@2 f#5 ~@7 g#6 ~@5", // G# B F#
  S: "~@2 f#5@2 [g#5,g#6] ~ [b5,b6]@4 g#5@2 [f#5,f#6]@2 ~@2, ~@2 f#6 ~@7 g#6 ~@5", // G# B F#
})).s("gm_drawbar_organ").gain(0.36).pan(0.1)

// chords · rock organ · "Organ"
const rock_organ = note(`<
  ~@40 A@8 B@2 C@2 D@2 E@2 F@6 G H ~@8 A@8 B@2 C@2 D@2 E@2 I@6 G H ~@16 A@8 B@2 C@2 D@2 E@2 F@6 G H ~@28
>`.pickRestart({
  A: "[b5@59 ~ a5@4 g#5@48 b5@11 ~ g#5@4, e4, [g#4,b4]@63 ~]/8", B: "[[c#5,a5], a4@15 ~]/2",
  C: "[b5@27 ~ g#5@4, [g#4,b4]@15 ~]/2", D: "[[a4,c#5,a5]@31 ~]/2", E: "[[g#4,b4]@15 ~, b5@15 ~@17]/2",
  F: "[[e4,g#4,b5,e6]@15 ~ [d#4,f#4,b5,d#6]@15 ~ [g#4,b5]@14 ~@2 [a4,c#5,c#6]@13 ~@3 b5@7 ~ [b5,e6] ~ [b5,e6] ~ [b5,e6]@3 ~ [d#4,f#4,b5,d#6]@15 ~, b4@47 ~@17 b4@31 ~, ~@16 e4@23 ~@9, ~@16 e6@19 ~@13, ~@64 g#4@15 ~@17]/6", // E B G#m A E5 B
  G: "~ e4@14 ~, [a4,c#5,b5,e6]@7 ~", H: "d#6@8 b5@4 g#5@3 ~, [f#4,b4]@7 ~, b5@3 ~@5, d#4@3 ~@13",
  I: "[[e4,g#4,b5,e6]@15 ~ [d#4,f#4,b5,d#6]@15 ~ [g#4,b5]@14 ~@2 [a4,c#5,c#6]@13 ~@3 b5@7 ~ [b5,e6] ~ [b5,e6] ~ [b5,e6]@3 ~ [d#4,f#4,b5,d#6]@15 ~, b4@47 ~@17 b4@31 ~, ~@16 f4 ~@15 e4@46 ~@18, ~@16 e6@19 ~@13, ~@64 g#4@15 ~@17]/6", // E B G#m A E5 B
})).s("gm_rock_organ").gain(0.36).pan(0.7)

// chords · percussive organ · "Organ"
const percussive_organ = note(`<
  ~@8 A@4 B@2 C D E@2 F@2 G@2 H I J@2 K@2 G@2 C D J@2 K@2 G@2 L D M@8 N@2 O@2 P@4 Q R Q S@2 R T U V@2 W@2 G@2 X Y M@8
  N@2 O@2 Z@4 Q R Q S@2 R T U V@2 W@2 G@2 X Y V@2 AA@2 G@2 X Y M@8 N@2 O@2 P@4 Q R Q S@2 R T U V@2 AA@2 G@2 X Y V@2 W@2
  G@2 X Y V@2 W@2 G@2 X Y V@2 AB AC
>`.pickRestart({
  A: "[g#4@3 f#4 e4@3 g#4, e5@63 ~, [b4,g#5]@31 ~ [c#5,a5]@31 ~]/4", B: "[f#4@24 d#4@7 ~, [b4,d#5,f#5]@31 ~]/2",
  C: "e4@3 g#4, [c#5,e5,a5]@15 ~", D: "[f#4,b4,d#5,f#5]", E: "[g#4@3 f#4, [b4,e5,g#5]@15 ~]/2",
  F: "[e4@3 g#4, [c#5,e5,a5]@31 ~]/2", G: "[f#4@3 d#4, [b4,d#5,f#5]@15 ~]/2", H: "e4@11 ~ g#4@4, [c#5,e5,a5]@7 ~",
  I: "[f#4,b4,d#5], f#5@7 ~", J: "[g#4@3 f#4, [b4,e5,g#5]@31 ~]/2", K: "[e4@27 ~ g#4@4, [c#5,e5,a5]@31 ~]/2",
  L: "e4@3 g#4, [c#5,e5,a5]@7 ~", M: "[[g#4,b4]@63 ~, e5]/8", N: "[[a4,c#5]@31 ~]/2", O: "[[g#4,b4]@15 ~]/2",
  P: "[a4@31 ~ [g#4,b4]@31 ~, e5@63 ~, c#5@29 ~@35]/4", Q: "[g#4,b4,e5]@7 ~", R: "[b4,d#5,f#5]@15 ~",
  S: "[[a4,c#5]@7 ~ [g#4,b4]@7 ~, e5@31 ~]/2", T: "[a4,c#5,e5]@7 ~", U: "[b4,d#5,f#5]@7 ~",
  V: "[~@3 f#4, e5@15 ~, g#4@3 ~, ~ [b4,g#5]@15]/2", W: "[e4@23 ~ g#4@8, [c#5,e5,a5]@15 ~]/2",
  X: "e4@11 ~ g#4@4, [c#5,e5,a5]@15 ~", Y: "[f#4,b4,d#5,f#5]@15 ~", Z: "[[a4,c#5]@30 ~@2 [g#4,b4]@31 ~, e5@63 ~]/4",
  AA: "[e4@23 ~ g#4@8, [c#5,e5,a5]@31 ~]/2", AB: "[a4,c#5,e5]@7 ~ [b4,d#5,f#5]@6 ~@2", AC: "[g#4,b4,e5]@13 ~@3",
})).s("gm_percussive_organ").gain(0.36).pan(0.2)

// other · electric guitar clean · "Guitar"
const electric_guitar_clean = note("<~@55 A ~@4 B C ~@25 A ~@4 B D ~@33 A ~@4 B D ~@30>".pickRestart({
  A: "e4@4 a4@2 e4@3 ~ c#4@2 b3@2 a3@2", B: "~@4 e2 ~ e2 ~ b2 ~ b2 ~@2 g#2@3", C: "b2@3 ~@13", D: "~ b2@3 ~@12",
})).s("gm_electric_guitar_clean").gain(0.72).pan(0.1)

// chords · distortion guitar · "Guitar"
const distortion_guitar = note(`<
  ~@24 A B C@2 D@2 C D A B E C D@2 C D A B@7 F G B@2 C@2 H@2 B D B C B D I D A B C@2 D@2 C D A B@7 F G B@2 C@2 H@2 B D B
  C B D I D A B C@2 D@2 C D A B C@2 D@2 C D A B@7 F G B@2 C@2 H@2 B D B C B D I D A B C@2 D@2 C D A B C@2 D@2 C D A B
  C@2 D@2 C D A B J K
>`.pickRestart({
  A: "~@2 [e2,b2] ~ [e2,c#3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,c#3] ~ [e2,b2] ~", // E5 C#m E5 C#m E5
  B: "[e2,b2] ~ [e2,b2] ~ [e2,c#3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,c#3] ~ [e2,b2] ~", // E5 C#m E5 C#m E5
  C: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D A5 D A5
  D: "[b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~", // B5 E B5 E B5
  E: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D F#m7 A5 D A5
  F: "[a2,b2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // Asus2 A5 D A5 D A5
  G: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3,f#3] ~", // A5 D A5 D F#m7
  H: "[e2@19 ~@13, b2@13 ~@19]/2",
  I: "[a2,f#3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // D A5 D A5 D A5
  J: "e3 ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~", K: "[b2,f#3] ~ [b2,f#3]@2 ~@12",
})).s("gm_distortion_guitar").gain(0.4).pan(0.6)

// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
  ~@24 A B C D E F G H I J K D L M K N I O A P A Q A R S T A Q S U V ~ A W A X Y Z AA AB I J K D L M K N I O A P A Q A R
  S T A Q S U V ~ A AC A X AD Z AA AB I J K D L M K N I J K D L M K N I O A P A Q A R S T A Q S U V ~ A AC A X AD Z AA
  AB I J K D L M K N I J K D L M K N I J K D L M K N ~@4
>`.pickRestart({
  A: "~@4 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5", B: "[b3,e4,g#4]@2 ~@4 [b3,e4,g#4]@7 ~@3",
  C: "~@4 [a3,c#4,e4] ~@5 [a3,c#4,e4]@3 ~@3", D: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4]@5 ~",
  E: "~@4 [b3,d#4,f#4]@2 ~@4 [b3,d#4,f#4] ~@5", F: "[b3,d#4,f#4]@3 ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@5 ~",
  G: "~@4 [a3,c#4,e4]@2 ~@4 [a3,c#4,e4]@2 ~@2 d#4 ~", H: "[b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@6",
  I: "~@4 [b3,e4,g#4] ~@5 [b3,e4,g#4]@2 ~@4", J: "[b3,e4,g#4]@3 ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4]@4 ~@2",
  K: "~@4 [a3,c#4,e4] ~@5 [a3,c#4,e4]@2 ~@4", L: "~@4 [b3,d#4,f#4] ~@5 [b3,d#4,f#4]@2 ~@4",
  M: "[b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@5 ~", // B
  N: "[b3,d#4,f#4]@3 ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@4 ~@2", O: "[b3,e4,g#4]@4 ~@2 [b3,e4,g#4] ~@3 [b3,e4,g#4]@6",
  P: "g#4 ~ g#4@2 ~@2 [b3,e4,g#4] ~@3 [b3,e4,g#4]@5 ~, [b3,e4] ~@3", // E E5
  Q: "[b3,e4,g#4]@4 ~@2 [b3,e4,g#4] ~@3 [b3,e4,g#4]@5 ~", R: "[b3,e4,g#4] ~@5 [b3,e4,g#4] ~@3 [b3,e4,g#4]@5 ~",
  S: "~@4 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@5", T: "[a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@6",
  U: "[a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 ~@4", V: "[b3,e4,g#4]@15 ~",
  W: "[b3,d#4,f#4] ~@5 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@5 ~", X: "[a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [a3,c#4,e4]@5 ~",
  Y: "~@4 [b3,e4,g#4] ~@5 [b3,e4,g#4]@3 ~@3", Z: "[b3,d#4,f#4] ~@3 [b3,d#4,f#4]@5 ~ [b3,d#4,f#4] ~@5",
  AA: "[a3,c#4,e4] ~@3 [a3,c#4,e4]@5 ~ [a3,c#4,e4] ~@3 d#4 ~", // A
  AB: "[b3,d#4,f#4] ~@5 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@4 ~@2", AC: "[b3,d#4,f#4] ~@5 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@6",
  AD: "~@4 [b3,e4,g#4] ~@5 [b3,e4]@4 ~@2, ~@5 g#4 ~@2", // E E5
})).s("gm_overdriven_guitar").gain(0.36).pan(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@16 A@2 B@2 C@2 D E F G H I J K L M N G H L O P L Q R@2 S R T U N V W X N G Y X Z AA G P G L G P AB AC T V W L AD AE
  AB AF R@2 S R T U N V W X N G AG X Z AA G AH G L G P AB AC T V W L AD AE AB AF T V W L AD AE AB AF R@2 S R T U N V W X
  N G AG X Z AA G AH G L G P AB AI T V W L AJ AE AB AF T V W L AJ AE AB AF N V W L AD AE AB AF T V AK AL
>`.pickRestart({
  A: "[e2@27 ~ b1@4]/2", B: "[a1@31 ~]/2", C: "[b1@31 ~]/2", D: "a1@15 ~", E: "b1@7 ~", F: "e2@4 ~@2 e2 ~ b1@8",
  G: "e2@5 ~ e2 ~ b1@4 e2@4", H: "a1@5 ~ a1 ~ e1@8", I: "a1@4 ~@2 a1 ~ e1@4 a1@3 ~", J: "b1@4 ~@2 b1@2 f#1@7 ~",
  K: "b1@5 ~ b1@2 f#1@4 b1@3 ~", L: "a1@5 ~ a1 ~ e1@4 a1@3 ~", M: "b1@5 ~ c#2@4 ~@2 d#2@3 ~", N: "e2@5 ~ e2@2 b1@7 ~",
  O: "b1@5 ~ b1@2 f#1@8", P: "b1@5 ~ b1 ~ f#1@4 b1@3 ~", Q: "b1@5 ~ c#2@5 ~ d#2@3 ~", R: "e2@5 ~ e2 ~ b1@7 ~",
  S: "e2@4 ~@2 e2 ~ b1@7 ~", T: "e2@5 ~ e2@2 b1@8", U: "e2@5 ~ e2 ~ b1@8", V: "e2@4 ~@2 e2 ~ b1@4 e2@4",
  W: "a1@5 ~ a1@2 e1@7 ~", X: "a1@5 ~ a1 ~ e1@4 a1@2 ~@2", Y: "a1@5 ~ a1 ~ e1@7 ~", Z: "e2", AA: "e2@7 ~",
  AB: "a1@5 ~ a1@2 e1@4 a1@3 ~", AC: "b1@4 ~@2 b1@2 f#1@3 ~ b1@2 ~@2", AD: "b1@4 ~@2 b1 ~ f#1@7 ~",
  AE: "b1@4 ~@2 b1 ~ f#1@4 b1@3 ~", AF: "b1@4 ~@2 c#2@4 ~@2 d#2@3 ~", AG: "a1@4 ~@2 a1 ~ e1@7 ~",
  AH: "b1@5 ~ b1 ~ f#1@4 b1@2 ~@2", AI: "b1@4 ~@2 b1@2 f#1@3 ~ b1@3 ~", AJ: "b1@5 ~ b1 ~ f#1@7 ~",
  AK: "a1@5 ~ a1 ~ b1@3 ~ c#2@3 ~", AL: "e2@3 ~",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · pizzicato strings · "Strings"
const pizzicato_strings = note(`<
  ~@8 A B C D E F C G H I J K L M J N H I O K L P J Q H I O K L P J R ~@24 H I O K L P J Q ~@24 H S O T L U J Q H I O T
  L P J R ~@24 H I O K L P J Q H I J K L P J Q H I O T L P J R H I V ~
>`.pickRestart({
  A: "b5@2 ~ b5 ~@4", B: "~@2 f#5 ~ g#5 ~ b5@3 ~ g#5@2 f#5@2 ~@2", C: "e5@5 ~ e5@2 ~@8", D: "~@6 f#5 g#5",
  E: "b5@5 ~ b5@2 ~@8", F: "~@2 f#5@2 g#5 ~ b5@4 g#5@2 f#5@2 ~@2", G: "~@4 f#5@2 g#5 ~ b5@2 g#5@2 f#5 ~ e5@2",
  H: "[e5,b5]@5 ~ [e5,b5]@2 ~@8", I: "~@2 b4@2 [c#5,g#5] ~ [e5,b5]@3 ~ [c#5,g#5]@2 [b4,f#5]@2 ~@2, ~@2 f#5 ~@13",
  J: "[a4,e5]@5 ~ [a4,e5]@2 ~@8", K: "~@6 [c#5,f#5] g#5, ~@14 d#5 ~", L: "[f#5,b5]@5 ~ [f#5,b5]@2 ~@8",
  M: "~@2 f#5@2 [d#5,g#5] ~ [f#5,b5]@4 ~@2 f#5@2 ~@2, ~@2 c#5 ~@7 [d#5,g#5]@2 ~@4, ~@11 c#5@2 ~@3", // G#5 B5 G#5
  N: "~@4 [c#5,f#5]@2 [d#5,g#5] ~ [f#5,b5]@2 [d#5,g#5]@2 [c#5,f#5] ~ e5@2, ~@14 a4 ~", O: "[a4,e5]@5 ~ [a4,e5]@3 ~@7",
  P: "~@2 [c#5,f#5] ~ [d#5,g#5] ~ [f#5,b5]@3 ~@3 f#5@2 ~@2, ~@5 [d#5,g#5] ~@2, ~@11 c#5@2 ~@3", // F#5 G#5 B5 G#5
  Q: "~@4 [c#5,f#5]@2 [d#5,g#5] ~ [f#5,b5]@2 [d#5,g#5]@2 [c#5,f#5] ~ [a4,e5] ~", // F#5 G#5 B5 G#5 F#5 A5
  R: "~@4 [c#5,f#5]@2 [d#5,g#5] ~ [f#5,b5]@2 g#5@2 [c#5,f#5] ~ [a4,e5] ~, ~@10 d#5 ~@5", // F#5 G#5 B5 F#5 A5
  S: "~@2 [b4,f#5]@2 [c#5,g#5] ~ [e5,b5]@3 ~ [c#5,g#5]@2 [b4,f#5]@2 ~@2", T: "~@12 [c#5,f#5]@2 [d#5,g#5] ~",
  U: "~@2 f#5@2 [d#5,g#5] ~ [f#5,b5]@3 ~@3 f#5@2 ~@2, ~@2 c#5 ~@7 [d#5,g#5]@2 ~@4, ~@11 c#5@2 ~@3", V: "[a4,e5]@5 ~@11",
})).s("gm_pizzicato_strings").gain(0.28).pan(0.8)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note("<~@8 A@2 B@2 C@2 D E F@2 G@2 H@2 I E ~@140>".pickRestart({
  A: "[[e3,g#3,b3]@27 ~@5]/2", B: "[[e3,a3,c#4]@13 ~@3]/2", C: "[[d#3,f#3,b3]@27 ~@5]/2", D: "[e3,a3,c#4]@3 ~",
  E: "[d#3,f#3,b3]@7 ~", F: "[[e3,g#3,b3]@29 ~@3]/2", G: "[[e3,a3,c#4]@27 ~@5]/2", H: "[[d#3,f#3,b3]@13 ~@3]/2",
  I: "[e3,a3,c#4]@11 ~@5", // A
})).s("gm_acoustic_guitar_steel").gain(0.71).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~@20 A@4 B@30 A@2 B@30 A@2 B@38 A@2 B@34 C D>".pickRestart({
  A: "x!2", B: "x ~@2 x!2 ~@3", C: "x ~@2 x!2 ~@9 x ~", D: "x",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@23 A B@15 C B@7 D B@6 ~ E B@3 D B@3 C B@7 D B@7 D B@6 ~ E B@3 D B@3 C B@7 D B@7 C B@7 D B@6 ~ E B@3 D B@3 C B@7 C
  B@7 D B@7 C B@2 F G
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@5 x!3 ~ x ~", D: "~@2 x ~@2 x!3", E: "~@10 x!3 ~ x ~", F: "x ~ x!3 ~ x ~@9",
  G: "~@8 x!2 ~@6",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@8 A@16 B@15 C B@7 C B@6 ~@2 B@3 C B@3 C B@7 C B@7 C B@6 ~@2 B@3 C B@3 C B@7 C B@7 C B@7 C B@6 ~@2 B@3 C B@3 C B@7 C
  B@7 C B@7 C B@2 ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "x!8", C: "x!5 ~@3",
})).gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct("<~@162 [~@6 x!2] ~>").gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@162 [~@4 x!2 ~@2] ~>").gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@24 A ~@39 A ~@31 A ~@15 A ~@23 A ~@26 B>".pickRestart({
  A: "x", B: "x ~@4 x ~@2",
})).gain(0.64)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@24 A@15 ~ A@7 ~ A@6 ~@2 A@3 ~ A@3 ~ A@7 ~ A@7 ~ A@6 ~@2 A@3 ~ A@3 ~ A@7 ~ A@7 ~ A@7 ~ A@6 ~@2 A@3 ~ A@3 ~ A@7 ~ A@7
  ~ A@7 ~ A@2 ~@2
>`.pickRestart({
  A: "~ x",
})).gain(0.64)

stack(
  drawbar_organ, rock_organ, percussive_organ, electric_guitar_clean, distortion_guitar, overdriven_guitar, bass,
  pizzicato_strings, acoustic_guitar_steel, kick, snare, hihat, mid_tom, high_tom, crash, tambourine
)

More by Dire Straits