Strudelify
Comfortably Numb cover art

1979 · The Wall

Comfortably Numb

Pink Floyd

KeyD majorTempo128 bpm
0:00/0:00
// Comfortably Numb — Pink Floyd
// 128 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 186 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(128/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.

// bass · electric bass finger · "Fingered Bass"
const bass = note(`<
  A@3 B A@2 C D E F A@4 C D E F A@4 C D G F A@2 H@2 C I H J C K L M N O L M P Q H J C R H J C K L M S T M@2 S U V W M
  X@2 Y H Y C I Z Y C W L M AA@2 L AB N AC AD AE M P H Y A AF C D E F A AG A AH C@2 AI F A AF H J C R H J C AJ L M N P
  M@2 P AK H J C AL H J C AM AN@2 P AO AP@2 N AC C AQ M P J AR AS@2 AT A C AU E F AG AV A AF C D E AW AX AY A AF AZ I E
  F A AF A AF AZ I E F A AF A AF AZ I E F A AF ~@2
>`.pickRestart({
  A: "b1@23 ~", B: "b1@11 ~", C: "a1@11 ~", D: "a1", E: "g2@3 f#1", F: "e1", G: "g2@3 f#1, a1 ~@23", H: "d2@11 ~",
  I: "a1 ~@5 a1@18", J: "d2", K: "a1 ~@5 a1@9 b1@8 ~", L: "c2@11 ~", M: "c2", N: "g2@11 ~", O: "g2@2 ~@4 g2@9 b1@8 ~",
  P: "g2", Q: "g2@2 ~@5 g2@17", R: "a1 ~@2 a1@9", S: "g1@11 ~", T: "g1", U: "g1 g1@5 ~@2", V: "a1@11 ~ a1@11 ~",
  W: "a1@15 b1@8 ~", X: "[g1@23 d2@22 ~@3]/2", Y: "d2 ~ d2@6", Z: "d2@7 ~", AA: "[g2@29 ~ g2@18]/2",
  AB: "c2@2 ~@5 c2@17", AC: "g2 ~@2 g2@9", AD: "~@9 [d2,e2] ~@14, a1@7 ~", AE: "a1@2 ~ a1@5 b1@4", AF: "b1 ~@2 b1@9",
  AG: "~ b1@22 ~", AH: "b1", AI: "g2@9 ~ g2@2, ~@3 f#1", AJ: "a1 ~ a1@3 b1@3", AK: "g2 ~ g2@6", AL: "~ a1@2 ~@4 a1@17",
  AM: "~ g#1 ~@5 a1@8 b1@9, a1 ~@7", AN: "c2/2", AO: "~ g2@23", AP: "[c2@11 ~ c2@30 ~ c2@5]/2",
  AQ: "a1@2 ~@4 a1@9 ~ b1@8", AR: "d2@3 ~@3 d2@16 ~@2", AS: "[d2@35 ~ d2@12]/2", AT: "~ b1@23, ~ d2 ~@22",
  AU: "a1 ~ a1@6", AV: "b1@2 ~@4 b1@17 ~", AW: "e1@17 ~ e1@6", AX: "b1@2 b1 ~@3 b1@17 ~", AY: "b1 ~@5 b1@16 ~@2",
  AZ: "a1@20 ~@2 a1 ~",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · string ensemble 1 · "Strings 1"
const string_ensemble_1 = note(`<
  A@6 B@3 C D@8 E@6 F@4 G@4 H@4 I@2 J@6 K@8 I@2 L@6 M@2 N O P@7 Q@3 I@2 R@2 S@2 T@4 N O U@2 V@2 W@3 C X@7 Y V@2 U@2 Z@2
  H@4 I@2 R@2 AA@4 AB@8 AC@8 AD@2 AE@2 AF@4 V@2 AG@2 AH@2 V@4 Z@2 AI C AJ@2 AK@4 AL C AM@4 Z@2 AI AN@7 AO@5 ~
>`.pickRestart({
  A: "[[b3,d4,f#4]@143 ~]/6", B: "[[c#4,e4]@23 ~@10 f#3@3, ~@23 g3@10 ~@3, ~@47 [b3,d4]@24 ~]/3", C: "[e3,g3,b3]@11 ~",
  D: "[[b3,d4,f#4]@47 [b3,d4,f#4]@46 ~@2 [c#4,e4]@47 ~ [g3,b3,d4]@19 f#3@5 [e3,g3,b3]@23 ~@2, ~@143 c#4 ~@48]/8", // Bm C#m G Em
  E: "[[b3,d4,f#4]@47 [b3,d4,f#4]@46 ~@2 [a3,c#4,e4]@47 ~@2]/6", // Bm A
  F: "[g3@17 f#3@6 ~ e3@24 [d4,f#4]@48, b3@95 ~, d4@23 ~@25]/4", G: "[[d4,f#4]@47 ~ [c#4,e4]@46 ~@2, a3]/4",
  H: "[[d4,f#4]@46 ~@41 b3@7 ~@2, a3@85 ~@11, ~@24 [c#4,e4]@23 ~]/4", I: "[[c4,e4,g4]@47 ~]/2",
  J: "[[b3,d4]@47 ~ [c4,e4]@47 ~ [b3,d4]@48, g3]/6", // Bm C Bm
  K: "[~@49 [c#4,e4]@47 [d4,f#4]@48 ~@39 b3@7 ~@2, f#4@24 ~@48 [c#4,e4]@23 ~, ~@12 a3@169 ~@11]/8", // C#m D C#m
  L: "[[b3,d4]@47 ~ [c4,e4]@47 ~ [b3,d4]@46 ~@2, g3]/6", M: "[a3@39 b3@7 ~@2, [c#4,e4]@47 ~, f4 ~@23]/2",
  N: "[c4,e4,g4]@23 ~", O: "[g3,b3,d4]@23 ~",
  P: "[[a3,f#4]@47 [f#4,a4]@46 ~@3 f4@2 ~@46 [d4,f#4]@24, d4@94 ~@2 [c#4,e4]@47 ~@25, c#4 ~@46 a3@93 ~ a3@25 ~@2]/7", // D F#m D C#m
  Q: "[d4@23 ~@40 b3@7 ~@2, a3@31 ~@5, ~@12 [c#4,e4]@23 ~]/3", R: "[[g3,b3,d4]@47 ~]/2", S: "[[g3,c4,e4]@47 ~]/2",
  T: "[[g3,b3]@47 ~ a3@38 ~ b3@7 ~@2, d4@42 ~@5 e4@48 ~, ~ c#4]/4", U: "[[a3,d4,f#4]@47 ~]/2",
  V: "[[b3,d4,f#4]@47 ~]/2", W: "[[c#4,e4]@46 ~ g3@16 ~@3 f#3@5 ~, ~@47 [b3,d4]@23 ~@2]/3",
  X: "[[b3,d4,f#4]@47 [b3,d4,f#4]@46 ~@3 c#4@47 ~ g3@15 ~@3 f#3@5 ~, ~@95 e4@48 ~ f3 ~@23, ~@96 a3@6 ~@41 [b3,d4]@23 ~@2]/7", // Bm
  Y: "[e3,g3,b3]@23 ~, d3 ~@23", Z: "[[a3,c#4,e4]@23 ~]/2", AA: "[~@6 e4@41 ~ [b3,d4]@46 ~@2, g3@47 ~, c4@47 ~@49]/4",
  AB: "[[d4,f#4]@48 ~ [c#4,e4]@47 [d4,f#4,d5]@48 [c#4,e4,e5]@48, a3@191 ~, b3 ~@191]/8", // D C#m D C#m
  AC: "[[e4,c5]@48 [b3,d4,d5]@48 [c4,e4]@46 ~@2 [g3,b3,d4]@47 ~, g3@143 ~@49, c4@23 ~@25 g5@48, a3@2 ~@94 f4 ~@95]/8", // C Bm C G
  AD: "[a3@38 ~ b3@7 ~@2, [c#4,e4,a5], g3 ~@23]/2", AE: "[[c4,e4,g4]@23 ~ [g3,b3,d4]@23 ~, g5]/2",
  AF: "[[a3,d4]@72 [a3,d4]@5 ~ [a3,d4]@5 [a3,d4,f#4]@5 ~@2 [a3,d4]@5 ~, f#4@83 ~@6 f#4@6 ~, c#4 ~@31]/4", // D5 D D5
  AG: "[~ d#4 d4@3 ~@43, c#4@23 ~, ~ [a3,e4]@46 ~, ~@2 d#4 ~@45]/2", // A5
  AH: "[g3@18 f#3@5 ~ e3 [e3,g3]@23, b3, d4@13 ~@11, c4@2 ~@23 a2 ~@22]/2", AI: "g3@17 f#3@7, [b3,d4]@11 ~",
  AJ: "[[b3,d4,f#4]@47 ~, a3 ~@15]/2", AK: "[[b3,d4]@46 ~ [a3,c#4,e4]@47 ~@2]/4", AL: "g3@15 ~@3 f#3@5 ~, [b3,d4]@23 ~",
  AM: "[[b3,d4,f#4]@95 ~, c#4 ~@95]/4", AN: "[[e3,g3]@24 [d4,f#4]@94 ~@2 a3@47 ~, b3@119 [c#4,e4]@47 ~@2]/7",
  AO: "[g3@18 f#3@5 ~ [e3,g3]@24 [d4,f#4]@49 ~@23, [b3,d4]@23 b3@74 ~@23]/5", // Em D Bm
})).s("gm_string_ensemble_1").gain(0.36)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  ~@27 A@2 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 AD AE AF AG AH AI AJ AK AL ~@37 A@2 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 AD AE AF AG AH AI AJ AK AL ~@44
>`.pickRestart({
  A: "[~@24 [d4,f#4]@6 ~@3 [d3,a3,d4] ~@2 [d3,a3,d4,f#4] ~@6 [a3,d4] ~@2 [d3,a3,d4,f#4] ~, ~@11 d3@4 ~@9, ~@23 a3@6 ~@19]/2", // D D5 D D5 D
  B: "[d3,a3,d4,f#4] ~@2 a3 ~@2 a3 ~@2 [d3,a3] [d4,f#4] ~ [d3,a3] [d4,f#4] ~@2 a3 ~ [d4,f#4] [d3,a3]@2 a3@3", // D D5 D D5 D D5
  C: "[e3,c#4,e4] ~@2 a3 ~@5 [e3,a3,c#4,e4] ~@2 [e3,a3,c#4,e4] ~@2 a3 ~@2 [a3,c#4] ~@2 c#4 ~@2", // C#m A
  D: "[e3,a3,c#4,e4] ~@2 [a3,c#4] ~@2 [a3,c#4,e4] ~@2 [e3,a3,c#4,e4] ~@2 [a3,c#4,e4] e3 ~ a3 ~@2 [e3,c#4] e4 ~ a3@2 ~", // A C#m
  E: "[d3,a3,d4,f#4] ~@2 a3 ~@5 [d3,a3,d4,f#4] ~@2 [d3,a3,d4,f#4] ~@2 a3 ~@2 [a3,d4,f#4] ~@2 a3 ~@2", // D
  F: "[d3,a3,d4,f#4] ~@2 a3 ~@2 a3 ~@2 [d3,a3,d4,f#4] ~@2 [d3,a3,d4,f#4] ~@2 a3 ~@2 [d3,d4,f#4] ~@2 a3@2 ~", // D
  G: "[e3,a3,c#4,e4] ~@2 a3 ~@2 [a3,c#4] ~@2 [e3,a3,c#4,e4] ~@2 [e3,a3,c#4,e4] ~@2 a3 ~@3 a3 ~ [a3,c#4] ~@2", // A
  H: "[e3,a3,c#4,e4] ~@2 a3 ~@2 [a3,c#4] ~@2 [e3,a3,c#4,e4] ~@2 [a3,c#4,e4] e3 ~@2 a3 ~@2 [a3,c#4,e4] ~ [c#4,e4] [e3,a3] ~", // A C#m A5
  I: "[g3,c4,e4] e3 ~@2 g3 ~@2 g3 ~@2 [e3,g3,c4,e4] ~ [c4,e4] [e3,g3] ~@7 [g3,c4,e4] ~@2", // C Em C
  J: "[e3,g3,c4,e4] ~@2 g3 ~@2 c4 [g3,e4] ~ [e3,g3,c4,e4] ~@2 [e3,g3,c4,e4] ~@2 g3 ~@2 [e3,c4,e4] ~@2 g3@2 ~", // C
  K: "[d3,g3,b3,d4] ~@2 g3 ~@2 g3 ~@2 [d3,g3,d4] b3 ~ [d3,g3,b3,d4] ~@2 g3 ~@3 [b3,d4] ~ b3 [g3,d4] ~", // G G5 G Bm G5
  L: "[d3,g3,b3,d4] ~@2 g3 ~@2 b3 [g3,d4] ~ [d3,b3] [g3,d4] ~ b3 [d3,g3,d4] ~@2 g3 ~ [d3,b3,d4] g3 ~ g3@2 ~", // G G5 G G5 G
  M: "[e3,g3,c4,e4] ~@2 g3 ~@2 g3 ~@2 [e3,g3,c4,e4] ~@2 [e3,g3,c4,e4] ~@2 g3 ~@3 [g3,c4,e4] ~ e3 [g3,c4,e4] ~", // C
  N: "[e3,g3,c4] e4 ~ [g3,c4] e4 ~ [g3,c4,e4] ~@2 [e3,g3,c4,e4] ~@2 [g3,c4,e4] ~@2 g3 ~@2 [e3,c4] [g3,e4] ~ g3@2 ~", // C C5 C
  O: "[d3,g3,b3,d4] ~@2 g3 ~@3 g3 ~ [d3,g3,b3,d4] ~@2 [d3,g3,b3,d4] ~@2 g3 ~@2 [b3,d4] g3 ~ [g3,b3,d4] ~@2", // G Bm G
  P: "[d3,g3,b3,d4] ~@5 [g3,d4] ~@2 [d3,b3,d4] g3 ~ [d3,g3,b3,d4] ~@2 [g3,b3] ~@2 [g3,b3] d4 ~ [g3,b3,d4] ~@2", // G G5 G
  Q: "[d3,a3,d4,f#4] ~@2 a3 [d4,f#4] ~@2 a3 ~ d3 [a3,d4,f#4] ~ [d3,a3,f#4] d4 ~@2 a3 ~@2 a3 ~ [d3,a3,d4,f#4] ~@2", // D
  R: "[d3,a3,d4,f#4] ~@2 [a3,f#4] ~@2 [d3,a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2 [d3,a3,d4,f#4] ~@2 [a3,f#4] ~@2 [d3,a3,d4,f#4] ~@2 a3@2 ~", // D
  S: "[e3,a3,c#4,e4] ~@2 a3 ~@3 [a3,c#4,e4] ~ a3 [e3,c#4,e4] ~ [e3,a3,c#4] e4 ~ a3 ~@3 [a3,c#4,e4] ~ [e3,a3,c#4,e4] ~@2", // A C#m A
  T: "[e3,a3,c#4,e4] ~@2 [a3,c#4] ~@2 [a3,c#4] ~@2 [e3,a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [e3,a3,c#4] e4 ~ a3@2 ~", // A
  U: "[d3,a3,d4,f#4] ~@2 a3 ~@2 a3 ~@2 [d3,a3,d4,f#4] ~@2 [d3,a3,d4,f#4] ~@2 [a3,f#4] ~@2 [a3,d4] ~@2 a3 d4 ~", // D D5
  V: "[d3,a3,d4,f#4] ~@2 a3 ~@2 a3 ~@2 [d3,a3,d4,f#4] ~@2 [d3,a3,d4,f#4] ~@2 a3 ~@2 [d3,a3,d4,f#4] ~@2 a3@2 ~", // D
  W: "[e3,a3,c#4,e4] ~@2 c#4 a3 ~ [a3,c#4] e4 ~ [e3,a3,c#4,e4] ~@2 [e3,a3,c#4,e4] ~@5 [a3,c#4] ~@2 [e3,a3,c#4] ~@2", // A
  X: "[e3,a3,c#4,e4] ~@5 a3 ~@2 [e3,a3,c#4,e4] ~@2 [e3,a3,c#4,e4] ~@2 a3 ~@3 [a3,c#4,e4] ~ [e3,a3,c#4] ~@2", // A
  Y: "[e3,g3,c4,e4] ~@3 g3 ~@4 [e3,e4] ~@2 [e3,g3,c4,e4] ~@8 [e3,g3,c4,e4] ~@2", // C E C
  Z: "[e3,g3,c4,e4] ~@2 g3 ~@5 [e3,g3,c4,e4] ~@2 [e3,g3,c4,e4] ~@2 g3 ~@2 [e3,c4,e4] ~@2 g3@2 ~", // C
  AA: "[d3,g3,b3,d4] ~@2 g3 ~@6 [d3,g3,b3,d4] ~@2 [d3,g3,b3,d4] ~ g3 ~@6 [g3,d4] ~", // G G5
  AB: "[d3,g3,b3,d4] ~@2 g3 ~@5 [d3,b3,d4] g3 ~ [d3,g3,b3,d4] ~@2 g3 ~@2 [d3,b3,d4] ~@2 g3@2 ~", // G
  AC: "[g3,c4,e4] e3 ~ g3 ~@3 g3 ~@2 [e3,g3,c4,e4] ~ e3 [g3,c4,e4] ~@2 g3 ~@2 [g3,c4] ~ e3 [g3,c4,e4] ~", // C C5 C
  AD: "~ [e3,g3,c4,e4] ~@2 g3 ~@2 g3 ~@2 [g3,c4,e4] ~ [e3,g3,c4] e4 ~@2 g3 ~ e3 [c4,e4] ~ g3@2 ~", // C
  AE: "[d3,g3,b3,d4] ~@2 g3 ~@6 [d3,g3,b3,d4] ~ [d3,g3,b3] d4 ~ g3 ~@2 [g3,b3,d4] ~@2 [d3,g3,b3,d4] ~@2", // G
  AF: "[d3,g3,b3,d4] ~@2 g3 ~@5 g3 [d3,b3,d4] ~ [d3,g3,b3,d4] ~@2 g3 ~@2 [d3,g3,b3,d4] ~@2 g3 ~@2", // G
  AG: "[e3,a3,c#4,e4] ~@2 a3 ~@2 a3 ~@2 [a3,c#4,e4] ~@2 [e3,a3,c#4,e4] ~@2 a3 ~@2 [a3,c#4,e4] ~@2 [a3,c#4] e4 ~", // A
  AH: "[e3,a3,c#4,e4] ~@2 [a3,c#4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [e3,a3,c#4,e4] ~@2 a3 ~@3 [e3,a3,c#4,e4] ~ a3@2 ~", // A
  AI: "g4 [c4,e4] ~@7 [c4,e4,g4] ~@2 [c4,e4,g4] ~@5 [c4,e4,g4] ~@2 c4 ~@2", // C
  AJ: "[g3,b3,d4] ~@8 [g3,b3,d4] ~@2 [g3,b3,d4] ~@5 [g3,b3,d4] ~@5", // G
  AK: "[a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@5 [a3,f#4] ~@2 [a3,f#4] ~@2", // D
  AL: "[a3,d4,f#4] ~@2 [a3,f#4] ~@5 [a3,d4,f#4] ~@2 [a3,f#4] d4 ~@2 a3 ~ [d4,f#4] a3 ~ a3 ~@2", // D
})).s("gm_acoustic_guitar_steel").gain(0.31)

// chords · music box · Bm G
const music_box = note("<~@92 [[b4,d5]@18 ~ a4@5, ~@3 c#5] [[g4,b4]@22 ~ g4] ~@92>").s("gm_music_box").gain(0.41)

// chords · music box · Bm G
const music_box_2 = note("<~@92 [[b3,d4]@18 ~ a3@5, ~@3 c#4] [[g3,b3]@22 ~ g3] ~@92>").s("gm_music_box").gain(0.36)

// other · piano · "Piano / Bass"
const piano = note("<~@65 A B@2 C D E@2 C F G@2 H@2 I@2 J K ~@104>".pickRestart({
  A: "~@11 a4", B: "[d5 a4 ~@34 f#5@4 g5@4 ~ f#5@3, f#5@29 ~@19]/2", C: "e5@15 d5@5 c#5@4", D: "a4@4 e4@17 ~@3",
  E: "[d4@28 ~@6 a4@2 f#5@4 g5@5 f#5@3, ~@36 d5 ~@11]/2", F: "a4@2 e4@5 ~ e4@2 f#4@2",
  G: "[g4@30 ~@3 e4@2 ~ g4@3 ~ f#4@4 e4@4, ~@35 f#4@2 ~@11]/2", H: "[d4@33 ~@7 e4@4 f#4@4]/2",
  I: "[g4@22 ~@2 g5@4 f#5@4 e5@5 d5@3 b4@4 ~ g4@3, ~@11 a4 ~@12, ~@23 d5@2 ~@23]/2", J: "~ g4 ~@19 c4@3, d4@5 ~",
  K: "b3@3 ~",
})).s("gm_piano").gain(0.51)

// bass · electric bass pick · "Piano / Bass"
const bass_2 = note("<~@144 A@2 B@2 C D A@4 B@2 E D A@4 B@2 E D F G A@2 B@2 E D A@2 H@2 I@2 J@2 K@4>".pickRestart({
  A: "[b2@11 ~]/2", B: "[a2@11 ~]/2", C: "g2@8 ~ f#2@3", D: "e2", E: "g2@3 f#2", F: "b2 ~", G: "b2@2 ~@4 b2@15 ~@3",
  H: "b2/2", I: "[a2@47 ~]/2", J: "[g2@18 f#2@5 e2@25]/2", K: "[b2@73 ~@23]/4",
})).s("gm_electric_bass_pick").gain(0.51)

// chords · vibraphone
const vibraphone = note("<~@90 A@2 ~@94>".pickRestart({
  A: "[~@19 e5@13 ~@16, ~@16 a4@15 ~@17, ~@17 c#5@15 ~@16]/2",
})).s("gm_vibraphone").gain(0.2)

// drums · clap
const clap = s("cp").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B C A C A C A C A C A C A C A C A C A C A C A C A C A C A C A@2
  D C A C A C A C A@2 E C A C A C A C A C A@2 E C A C A C A@2 B A B A B A B A B A B A B A B C A C A C A@2 E C A C A C A
  F G C A C A C A C A C A C A C A@2 E C A C A C A F G C A C A C A C A C A C A C A C A C A C A C A C A C A C A C A C A C
  A C A C A C A ~@2
>`.pickRestart({
  A: "x", B: "x!2 ~@2", C: "x ~@6 x", D: "x ~@2 x ~ x!2 ~", E: "~@2 x ~@2 x!2 ~", F: "x ~@2 x ~@4",
  G: "~ x ~ x!2 ~@2 x",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct("<~@59 A ~@9 B ~@11 B ~@29 B ~@7 C ~@15 B ~@7 C ~@42>".pickRestart({
  A: "~@5 x ~@2", B: "~@3 x ~ x!3", C: "~@4 x!2 ~ x",
})).gain(0.2)

// drums · crash
const crash = s("cr").struct("<~@58 A ~@10 B ~@11 B ~@29 B ~@7 C ~@15 B ~@7 C ~@42>".pickRestart({
  A: "~@5 x!2 ~", B: "x!2 ~@6", C: "x!2 ~@2",
})).gain(0.25)

// drums · congas
const congas = s("conga:18").struct("<[x!4]!28 ~@60 [x!4]!16 ~@82>").gain(0.63)

// drums · agogo bells
const agogo_bells = s("agogo:4").struct("<A@59 B A@9 ~ A@11 ~ A@29 ~ A@7 C A@15 ~ A@7 C A@40 ~@2>".pickRestart({
  A: "~ x", B: "~@5 x ~@2", C: "x!2 ~@2",
})).gain(1.27)

// drums · shaker
const shaker = s("sh").struct(`<
  A ~@3 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@5 A@3 ~@5 A ~@3 A ~@3 A ~ A ~ A ~@3 A ~@3 A ~ A ~@7 A ~@7 A ~@7 A ~@7 A
  ~@7 A ~@7 A ~@3 A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3
>`.pickRestart({
  A: "x",
})).gain(0.2)

// drums · claves
const claves = s("clave:2").struct(`<
  ~@28 A B@7 A B@7 A B@7 A B@5 C ~ A B@5 A B@2 ~ A B@3 A B A B A B@2 ~ A B@3 A B ~@16 A B@6 ~ A B@5 D ~ A B@7 A B@6 ~ A
  B@3 A B D ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@2
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "~ x!2 ~", D: "x!3 ~",
})).gain(0.97)

stack(
  bass, string_ensemble_1, acoustic_guitar_steel, music_box, music_box_2, piano, bass_2, vibraphone, clap, hihat, crash,
  congas, agogo_bells, shaker, claves
)

More by Pink Floyd