Strudelify

High Havoc

Corduroy

KeyA majorTempo154 bpm
0:00/0:00
// High Havoc — Corduroy
// 154 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 147 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(154/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 · electric bass finger · "Fingered B"
const bass = note(`<
  A B C D E@2 F@2 E@2 F@2 E@2 F@2 E@2 G H I@2 J@2 I@2 K L M N E@2 O P E@2 F@2 E@2 G H I@2 J@2 I@2 K L M Q R S T U V W X
  Y A B C D Z AA Z AA Z AA F@2 E@2 F@2 E@2 F@2 AB AC AD@2 AE@2 AF AG E@2 F@2 E@2 G H I@2 J@2 I@2 K L M N E@2 F@2 E@2 O P
  AH AI E@4 O P AH AI E@4 O P E@6 O P E@8 ~
>`.pickRestart({
  A: "f1 ~@5 f1@8 ~@2", B: "f#1 ~@5 f#1@8 ~@2", C: "g1 ~@5 g1@8 ~@2", D: "g#1 ~@5 g#1@8 ~@2",
  E: "[a1@2 a2@2 c#2 d2@2 d#2@2 e2@2 g2@2 e2 g2 a2]/2",
  F: "[a1@4 a2@3 a1 c#2@2 d2@4 d#2@4 e2@4 g2@4 e2@2 g2 g#2 a2@2]/2", G: "f1 ~@2 f1@3 ~@2",
  H: "e1 ~@5 e3@2, ~@3 e1@5, ~@5 b2@3", I: "[d2@2 d3@2 f#2 g2@2 g#2@2 a2@2 c3@2 a2 c3 d3]/2",
  J: "[d2@4 d3@3 d2 f#2@2 g2@4 g#2@4 a2@4 c3@4 a2@2 c3 c#3 d3@2]/2", K: "f#1@2 e1 f#1@2 c#2 f#2 c#2",
  L: "b1@2 ~ b1@2 f#2 b2 f#2", M: "c2 ~@2 c2 ~ g2 a#2 b2", N: "c3 c3@2 c3 c3@2 a#2 c3!2 a#2 c3@2 c3 a#2 g2@2",
  O: "a2@4 a3@2 a2!2 e3@2 g3@2 g#3@2 a3!2", P: "a3!13 g3 e3@2", Q: "c3", R: "d2 f#2 g2 c#3",
  S: "d3@4 c3@4 a2@3 f2 d2@4", T: "c#2 e2 f#2 c3", U: "c#3 a2 ~ g2 f#2@4 f#2 e2 ~ c#2 f#1@4", V: "b1 d2 e2 f2",
  W: "f#2 a2 b2 d3", X: "e3 d3 b2 a2", Y: "g#2 e2 d2 b1", Z: "a1@3 ~@13", AA: "~@5 e1 g1 a1",
  AB: "a1@2 a2@2 e2 g2@2 a2", AC: "~ a2 a2@2 a2@2 a2@2 a2@2 a2@2 a2 g2 e2@2",
  AD: "[a1@4 a2@3 a1 d2@2 e2@2 g2@2 a2@4 a2@2 a2 g2 e2@2 g2@2 e2@2 e2 d2 c2@2]/2",
  AE: "[a2@4 a3@3 a2 d#3@2 e3@2 g3@2 a3@4 a3@2 a3 g3 e3@2 g3@2 e3@2 e3 d3 c3@2]/2",
  AF: "a3 g3 e3 g3 a3@2 a3@2 a3 g3 e3@2 d#3 d3 c3@2", AG: "a2 g2 a2 g2 a2 g2 a2 g2 a2 g2 e2 g2 a2 g2 a2 g2",
  AH: "a3!5 g3 e3 g3 a3!5 g3 e3 g3", AI: "a3 g3 e3 g3 a3 g3 e3 g3 a3 g3 e3 d3 c3 a2 g2 e2",
})).s("gm_electric_bass_finger").gain(0.36)

// chords · rock organ · "Hammond"
const rock_organ = note(`<
  A B C D ~@4 E F E F E F E F E F G H I J I J I J K L M N E F E F O P Q R O S T ~ U R V W U X Y@2 Z@2 ~@8 A B C D ~@7 AA
  AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR F AS F E F G H I J AT J AT J K L M AU AV AW AV AW AV AW AV AW AV AW
  AV AW AV AW AV AW AV AW AV AW AV AW AV AW AV AW AV AW AX@2 AY AZ AV AW AV ~@6
>`.pickRestart({
  A: "[a#3,d#4] ~@5 [a#3,d#4]@6 ~@4", B: "[b3,e4] ~@5 [b3,e4]@6 ~@4", C: "[c4,f4] ~@5 [c4,f4]@6 ~@4",
  D: "[c#4,f#4] ~@5 [c#4,f#4]@6 ~@4", E: "~@4 [a4,e5,g5]@3 ~ [a4,e5,g5] ~ [a4,e5,g5]@4 ~@2, ~@4 d#5 ~@11",
  F: "~@4 [a4,d5,f#5]@3 ~ [a4,d5,f#5] ~ [a4,d5,f#5]@4 ~@2", G: "[e5,g5,e6] ~ [e5,g5,e6] ~ [e5,g5,e6] ~ [e5,g5,e6] ~",
  H: "[d5,f#5,e6] ~ [d5,f#5,e6] ~ [d5,f#5,e6] ~ [d5,f#5,e6] ~", // D
  I: "~@4 [a4,c5,d5]@3 ~ [a4,c5,d5] ~ [a4,c5,d5]@4 ~@2, ~@4 g#4 ~@11", // D7
  J: "~@4 [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@4 ~@2", // G
  K: "[c#5,f#5,a5] ~ [c#5,f#5,a5] ~ [c#5,f#5,a5] ~ [c#5,f#5,a5] ~", // F#m
  L: "[b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~", // Bm
  M: "[c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~", // C
  N: "[e5,g5,c6]@12 [c#5,d5,d#5,e5,f5,f#5,a5,a#5,b5] [a4,a#4,b4,c5,c#5,d5,d#5,f5,f#5,g5,g#5] [g#4,b4,e5] ~", // C E
  O: "~@3 e4 a4 e4 a4 c#5", P: "~ b4@7", Q: "~@3 e4 a4 e4 a4 d#5", R: "~ e5@7", S: "~ b4@3 c#5 d5@3", T: "e5",
  U: "~@3 a4 d5 a4 d5 f#5", V: "~@3 a4 d5 a4 d5 g#5", W: "~@2 g#5 a5@4 f5 [f#5,g5] f5 d5 ~ f5@2 g5 ~",
  X: "~ e5@3 f#5 g5@3", Y: "[a5@27 ~ f#5@2 b5 ~, g#5 ~@31]/2", Z: "[~ a5@13 ~@2]/2",
  AA: "~@4 [e1,g#1] [f1,f#1,g1,a1,a#1,b1,c2,c#2,d2,d#2] [g#1,a1,a#1,b1,c2,c#2,d2,d#2,e2,f2,f#2,g2,g#2] [c2,c#2,d2,d#2,e2,f2,f#2,g2,a2,a#2,b2,c3] [e2,f2,f#2,g2,g#2,a2,a#2,b2,c#3,d3,d#3,e3] [a2,a#2,b2,c3,c#3,d3,d#3,e3,f3,f#3,g3] [c3,c#3,d3,d#3,f3,f#3,g3,g#3,a3,a#3,b3] [e3,f3,f#3,g3,a3,a#3,b3,c4,c#4,d4,d#4] [g#3,a3,a#3,b3,c#4,d4,d#4,e4,f4,f#4,g4,g#4] [c4,c#4,d4,d#4,e4,f4,f#4,g4,a4,a#4,b4] [f4,f#4,g4,g#4,a4,a#4,b4,c5,c#5,d5,d#5] [a4,a#4,b4,c#5,d5,d#5,e5,f5,f#5,g5,g#5]", // E
  AB: "[a2,c5] a3 a2 ~ a3 ~ a2 g2 ~ [a2,a3] [g2,g3] [a2,a3] [c3,c4] ~ [a2,a3] ~", // Am A G A C A
  AC: "a2 a3 a2 ~ a3 ~ g2 a2 g3 a3 g2 a2 [c3,c4] [a2,a3] [g2,g3] [a2,a3]", // C A G A
  AD: "a2 a3 a2 ~ a3 ~ a2 g2 ~ a2 g3 a3 e2 g2 a2 c3", AE: "a2 a3 a2 ~ a3 ~ a2 a3 [g2,d#5] a2 ~@6, ~@2 [a4,e5,g5] ~",
  AF: "c6@6 a5 g5 a5 g5 e5 g5 e5 d5 e5 d5, a5 ~@3", AG: "c5 d5 c5 a4 c5 a4 g4 a4 g4 e4 g4 e4 d4 e4 d4 c4",
  AH: "a3@2 g3@13 ~", AI: "a3 g3@5 ~@2", AJ: "[d#3,a#3] [e3,b3]", AK: "[f3,c4] [f#3,c#4]", AL: "[g3,d4] [g#3,d#4]",
  AM: "[a3,e4] [a#3,f4]", AN: "[b3,f#4] [c4,g4]", AO: "[c#4,g#4] [d4,a4]", AP: "[d#4,a#4] [e4,b4]",
  AQ: "[f4,c5] [f#4,c#5]", // F5 F#5
  AR: "[d5,e5,a5] [b4,c5,c#5,d5,d#5,f#5,g5,g#5] [g4,a4,a#4,b4,c5,d5,d#5,e5,f5] [f#4,g#4,a4,c#5] [a4,e5,g5]@3 ~ [a4,e5,g5] ~ [a4,e5,g5]@4 ~@2, ~@4 d#5 ~@11", // Dsus2 F#m A7
  AS: "~@4 d#5 e5@3 [a4,e5,g5] ~ [a4,e5,g5]@4 ~@2, ~@4 [a4,g5]@3 ~@9", // A7
  AT: "~@4 g#4 a4@3 [a4,c5,d5] ~ [a4,c5,d5]@4 ~@2, ~@4 [c5,d5]@3 ~@9", // D7 Csus2
  AU: "[e5,g5,c6]@12 [d5,d#5,f5,f#5,a#5,b5] [a4,a#4,b4,c5,c#5,d5,d#5,e5,f5,f#5,g5,g#5,a5] [g#4,b4,c5,e5] ~", // C Bmaj7 E
  AV: "[e5,a5,c#6]", AW: "[d5,g5,a5,d6]",
  AX: "[~@6 e6@3 g6@2 ~ e6@3 ~@3 e6@3 g6@2 d#6 e6@3 g6@5, [e5,a5,c#6] [d5,g5,a5,d6], ~@6 d#6 ~@5 d#6 ~@2 g6@2 ~ d#6 ~@13]/2", // A Dsus4
  AY: "a6@3 ~ a6@2 ~ g6 a6@2 g6@2 a6 ~ c7@2, [e5,a5,c#6]", AZ: "~@2 c7@2 ~ g6@3 a6@2 c7 ~ a6@2 g6 ~, [d5,g5,a5,d6]",
})).s("gm_rock_organ").gain(0.22).pan(0.9)

// chords · rock organ · "Hammond" · soft notes
const rock_organ_soft = note("<~@29 A B ~@40 C ~@16 D ~@16 E F ~@34 G H G H G ~>".pickRestart({
  A: "~@14 [f4,f#4,g4,a4,a#4,c#5,d5,d#5] [c#4,d4,d#4,e4,f4,f#4,g4,a4,a#4,b4,c5]", B: "[c4,d#4,g#4] ~@15",
  C: "~@4 [d1,d#1,f#1,g1,a#1,b1] ~@11", D: "~@3 [d#4,e4,f4,g4,b4,c5] [d4,d#4,e4,a#4] ~@11",
  E: "~@14 [f4,f#4,g4,a4,a#4,c#5,d5,d#5] [d4,d#4,e4,f4,f#4,g4,g#4,a4,a#4,b4,c5]", F: "[c4,c#4,d#4,e4,g#4] ~@15",
  G: "[d5,g5,a5,d6]", H: "[e5,a5,c#6]",
})).s("gm_rock_organ").gain(0.11).pan(0.9)

// chords · brass section · "Brass Sect"
const brass_section = note(`<
  A B C D E ~ E ~ F@4 ~@14 G H@2 ~ F@4 ~@6 I J K ~@5 L M N@2 ~@8 A B C D E O P Q R S T ~@17 U V W X U Y Z@2 AA X AB AC
  AA AD AE@2 AF@2 ~@4 AG@8 AH@2 AI@2 AH@2 AI@2 AH@2 AI@2 AH@2 AI@2 AH@2 AI@2 AH@2 AI@2 ~@5
>`.pickRestart({
  A: "[d#4,g4] ~@5 [d#4,g4]@6 ~@4", B: "[e4,g#4] ~@5 [e4,g#4]@6 ~@4", C: "[f4,a4] ~@5 [f4,a4]@6 ~@4",
  D: "[f#4,a#4] ~@5 [f#4,a#4]@6 ~@4", E: "[a4,e5,a5] ~@7", F: "[~@14 c4 c#4 [g3,d4]@16, a2 ~, ~ b3@3]/2",
  G: "~@2 a3 e4", H: "[c#4@6 d4@4 [c4,c#4] [a3,b3] f#3@2 g3@18]/2", I: "~@4 [a3,a4] [g3,g4] [a3,a4] [c4,c5]",
  J: "~@2 [a3,a4]@3 ~ [c4,c5]@4 [a3,a4]@2 [c4,c5]@3 ~", K: "[d4,a4,d5] ~@7", L: "~@4 c#5 b4 ~ a4",
  M: "~@2 f#4@2 ~@2 a4@4 b4 [f#4,a4] a4@2 ~@2", N: "[a4@7 ~]/2", O: "~@5 e2 g2 a2", P: "a2 ~@7",
  Q: "~@5 [e2,e3] [g2,g3] [a2,a3]", R: "[a2,a3] ~@7", S: "~@5 [e3,e4,e5] [g3,g4,g5] [a3,a4,a5]",
  T: "[a3,a4,a5]@2 [g3,g#3,f#4,g4,f#5,g5,g#5] [e3,f3,f5] ~@12", U: "~@3 [e3,e4] [a3,a4] [e3,e4] [a3,a4] [c#4,c#5]",
  V: "~ [b3,b4]@7", W: "~@3 [e3,e4] [a3,a4] [e3,e4] [a3,a4] [d#4,d#5]", X: "~ [e4,e5]@7",
  Y: "~ [b3,b4]@3 [c#4,c#5] [d4,d5]@3", Z: "[[e4,e5]@3 ~]/2", AA: "~@3 [a3,a4] [d4,d5] [a3,a4] [d4,d5] [f#4,f#5]",
  AB: "~@3 [a3,a4] [d4,d5] [a3,a4] [d4,d5] [g#4,g#5]", AC: "~ [a4,a5]@7", AD: "~ [e4,e5]@3 [f#4,f#5] [g4,g5]@3",
  AE: "[[a4,a5]@12 ~@2 [f#4,f#5] [b4,b5]]/2", AF: "[~ [a4,a5]@15]/2", AG: "[[a2,a3]@7 ~]/2",
  AH: "[[a3,e4,a4]!2 ~@2 [a3,e4,a4] ~@5 [a3,e4,a4] ~@3 [a3,e4,a4]@15 ~@3, a2@7 ~]/2", // A5
  AI: "[[a3,e4,a4]!2 ~@2 [a3,e4,a4] ~@5 [a3,e4,a4] ~@3 [a3,a4]@16 ~@2, a2@7 ~, ~@7 e4@7 ~@2]/2", // A5 A
})).s("gm_brass_section").gain(0.42).pan(0.6)

// chords · brass section · "Brass Sect" · soft notes
const brass_section_soft = note("<~@4 A ~ A ~@35 B ~@21 A ~@5 C ~@71 D@2 E@2 ~>".pickRestart({
  A: "~@2 [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~", B: "~@2 [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~",
  C: "~@2 [f#3,g#4] [e4,f4,e5] ~@12", D: "[[a3,e4,a4]!2 ~@2 [a3,e4,a4] ~@5 [a3,e4,a4] ~@3 [a3,e4,a4]@15 ~@3, a2@7 ~]/2",
  E: "[[a3,e4,a4]!2 ~@2 [a3,e4,a4] ~@5 [a3,e4,a4] ~@3 [a3,a4]@16 ~@2, a2@7 ~, ~@7 e4@7 ~@2]/2", // A5 A
})).s("gm_brass_section").gain(0.18).pan(0.6)

// other · electric guitar clean · "Clean Guit"
const electric_guitar_clean = note(`<
  ~@12 A B C D A E F@2 G D H I G J K@2 L@2 ~@50 M N M N M O M P A B C D A E F@2 G D H I G J K@2 L@2 ~@41
>`.pickRestart({
  A: "~@3 e2 a2 e2 a2 c#3", B: "~ b2@7", C: "~@3 e2 a2 e2 a2 d#3", D: "~ e3@7", E: "~ b2@3 c#3 d3@3", F: "[e3@3 ~]/2",
  G: "~@3 a2 d3 a2 d3 f#3", H: "~@3 a2 d3 a2 d3 g#3", I: "~ a3@7", J: "~ e3@3 f#3 g3@3", K: "[a3@12 ~@2 f#3 b3]/2",
  L: "[~ a3@15]/2", M: "g2 a2!5 g2 a2!9", N: "g2 a2!5 g2 a2!5 g2 a2!3", O: "g2 a2!5 g2 a2!3 g2 a2!2 g2 a2!2",
  P: "g2 a2!5 g2 a2!2 g2 a2!2 g2 a2!3",
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.3)

// other · acoustic guitar nylon · "Nylon Guit"
const acoustic_guitar_nylon = note("<~@30 A B C ~@18 D E F G H I@2 J@2 ~@50 K@2 L@2 K@2 L@2 ~@29>".pickRestart({
  A: "e5!16", B: "e5!14 c5@2", C: "a4 ~@7", D: "~ g3@15, [c3,e3]", E: "~ [f#3,a3]@15, d3", F: "~ a3@15, [d3,f3]",
  G: "~ g#3@15, [c#3,e3]", H: "~ a3@15, [c#3,f#3]", I: "[~ a3@15, d3@31 ~, ~ f3@31]/2",
  J: "[~ b3@15, c3@31 ~, ~ [e3,g#3]@30 ~]/2", K: "[a2@2 a3@2 g3 f#3 ~ e3@2 d3@2 e3 g3@2 e3@2]/2",
  L: "[a2@2 a3@2 g3 f#3 ~ e3@2 d3@2 e3 g3@2 e3 ~]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.28).pan(0.3)

// other · vibraphone
const vibraphone = note("<~@34 A B C D A E F ~ G D H I G J K@2 L ~@96>".pickRestart({
  A: "~@3 e4 a4 e4 a4 c#5", B: "~ b4@7", C: "~@3 e4 a4 e4 a4 d#5", D: "~ e5@7", E: "~ b4@3 c#5 d5@3", F: "e5",
  G: "~@3 a4 d5 a4 d5 f#5", H: "~@3 a4 d5 a4 d5 g#5", I: "~@2 a5@6 g5 f5 d5 ~ f5 ~ g5 ~", J: "~ e5@3 f#5 g5@3",
  K: "[a5@14 f#5 b5]/2", L: "~ a5@7",
})).s("gm_vibraphone").gain(0.36).pan(0.1)

// chords · percussive organ · "Rock Organ"
const percussive_organ = note(`<
  ~@34 A B A B A B C D E F E F G F H I J K ~@28 L M N O P Q R S ~@34 T U V W X Y Z AA X Y Z AA X Y Z AA X AB ~@7
>`.pickRestart({
  A: "~@4 d#5 e5@3 [a4,e5,g5] ~ [a4,e5,g5]@4 ~@2, ~@4 [a4,g5]@3 ~@9", // A7
  B: "~@4 [a4,d5,f#5]@3 ~ [a4,d5,f#5] ~ [a4,d5,f#5]@4 ~@2", C: "[e5,g5,e6] ~ [e5,g5,e6] ~ [e5,g5,e6] ~ [e5,g5,e6] ~",
  D: "[d5,f#5,e6] ~ [d5,f#5,e6] ~ [d5,f#5,e6] ~ [d5,f#5,e6] ~", // D
  E: "~@4 g#4 a4@3 [a4,c5,d5] ~ [a4,c5,d5]@4 ~@2, ~@4 [c5,d5]@3 ~@9", // D7 Csus2
  F: "~@4 [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@4 ~@2", // G
  G: "~@4 [a4,c5,d5]@3 ~ [a4,c5,d5] ~ [a4,c5,d5]@4 ~@2, ~@4 g#4 ~@11", // D7
  H: "[c#5,f#5,a5] ~ [c#5,f#5,a5] ~ [c#5,f#5,a5] ~ [c#5,f#5,a5] ~", // F#m
  I: "[b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~", // Bm
  J: "[c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~", // C
  K: "[e5,g5,c6]@12 [d5,d#5,f5,f#5,a5,a#5,b5] [b4,c5,c#5,d5,d#5,e5,g5,g#5] ~@2", // C A#maj7
  L: "e3 g3 a3 g3 e3 d#3 d3 c3 d3 d#3 e3 g3 a3 c4 d4 c4", M: "a3 g3 e3 d#3 d3 d#3 e3 g3 a3 g3 e3 d#3 d3 c3 d3 c3",
  N: "a2 c3 d3 c3 d#3 d3 c3 d#3 d3 c3 f3 d#3 d3 f#3 f3 d#3", O: "d3 c3 a2 c3 d3 d#3 f3 e3 g3 a3 c4 a3 c4 d4 d#4 d4",
  P: "c4 a3 g3 a3 c4 d4 d#4 e4 g4 a4 g4 e4 d#4 d4 c4 d#4", Q: "d4 c4 a3 g3 e3 d#3 d3 f3 d#3 d3 g3 g#3 a3 c4 d4 c4",
  R: "d#4 d4 f4 e4 g4 e4 a4 g4 e4 d#4 d4 d#4 e4 g4 a4 c5", S: "a4 g4 d#4 d4 c4 a3 c4 a3 g3 e3 g3 a3 g3 e3 d#3 d3",
  T: "a5 g5 e5 g5 a5 g5 e5 g5 a5 g5 e5 d#5 d5 c5 a4 g4", U: "a4 g4 a4 c5 a4 g4 a4 d5 a4 g4 a4 c5 d5 d#5 e5 g5",
  V: "a5 g5 a5 c6 d6 c6 a5 g5 a5 ~ c6 ~ a5 g5 a5 ~", W: "c6 ~ a5 g5 a5 ~ c6 ~ a5 g5 a5 ~ c6 d6 [a5,e6] [g5,g6]",
  X: "[e6,g6,a6]!2 ~@2 [e6,g6,a6] ~ [e6,g6,a6]!2 ~@2 [e6,g6,a6] ~@2 [e6,g6,a6] ~@2", // A7
  Y: "[e6,f#6,a6]!2 ~@2 [e6,f#6,a6] ~ [e6,f#6,a6]!2 ~@2 [d6,f#6,a6] ~@3 [d6,f#6,a6] ~", // F#m7 D
  Z: "[e6,g6,a6]!2 ~@2 [e6,g6,a6] ~ [e6,g6,a6]!2 ~ [e6,g6,a6]!2 ~ [e6,g6,a6] ~ [e6,g6,a6] ~", // A7
  AA: "[d6,f#6,a6]!2 ~@2 [d6,f#6,a6] ~@2 [d6,f#6,a6] ~@2 [e6,f#6,a6] ~@2 [d6,f#6,a6] ~@2", // D F#m7 D
  AB: "[e6,f#6,a6]!2 ~@2 [e6,f#6,a6] ~ [e6,f#6,a6]!2 ~@2 [d6,f#6,a6] ~@5", // F#m7 D
})).s("gm_percussive_organ").gain(0.2)

// chords · percussive organ · "Rock Organ" · soft notes
const percussive_organ_soft = note("<~@51 A B ~@86 C D E F ~@4>".pickRestart({
  A: "~@13 [a4,a#4,f5,f#5] [f#4,g4,g#4,a4,a#4,b4,c#5,d5,d#5,e5] [d4,d#4,e4,f4,f#4,g4,g#4,a4,a#4,b4,c5]", // F#maj7
  B: "[c4,c#4,d#4,g#4] ~@15", C: "~@14 [d6,f#6,a6] ~",
  D: "[e6,g6,a6]!2 ~@2 [e6,g6,a6] ~ [e6,g6,a6]!2 ~ [e6,g6,a6]!2 ~ [e6,g6,a6] ~ [e6,g6,a6] ~", // A7
  E: "[d6,f#6,a6]!2 ~@2 [d6,f#6,a6] ~@2 [d6,f#6,a6] ~@2 [e6,f#6,a6] ~@2 [d6,f#6,a6] ~@2", // D F#m7 D
  F: "[e6,g6,a6]!2 ~@2 [e6,g6,a6] ~ [e6,g6,a6]!2 ~@8", // A7
})).s("gm_percussive_organ").gain(0.08)

// chords · flute
const flute = note("<~@52 A B C D E F G H ~@87>".pickRestart({
  A: "~@8 a5@3 g5@2 f#5@3", B: "f5@10 ~ g5@2 f5@3, ~@11 f#5 ~@4", C: "e5@10 ~ c#5@2 e5@3", D: "a5@11 ~ g5@4",
  E: "e5 f5 e5 f5 e5 f5 e5 f5", F: "e5@2 f5@2 e5@2 f5@2 e5@2 f5@2 e5@2 [e5,f5] a5",
  G: "[e5,b5,e6] [e5,f5,f6] [f5,e6] [e5,f5,f6] [e5,e6] [e5,f5,f6] [f5,e6] [e5,f5,f6] [e5,e6] [e5,f5,f6] [f5,e6] [e5,f5,f6] [e5,e6] [e5,f5,f6] [f5,e6] [e5,f5,f6]", // E5 Fmaj7 E Fmaj7 E Fmaj7 E Fmaj7
  H: "[e5,e6] [e5,f5,f6] [f5,e6] [e5,f5,f6] [e5,e6] [e5,f5,f6] [f5,e6] [e5,f5,f6] [e5,e6] [e5,f5,f6] [f5,e6] [e5,f5,f6] [e5,e6] [e5,f5] ~@2", // E Fmaj7 E Fmaj7 E Fmaj7 E Fmaj7
})).s("gm_flute").gain(0.3).pan(0.2)

// drums · kick
const kick = s("bd").struct("<A@4 ~@4 B@10 C@2 B@9 D B@10 C@2 B@9 E ~@8 A@4 B@30 C@2 B@9 ~ B@40 ~>".pickRestart({
  A: "x ~@2 x ~@4", B: "x!2 ~@2 x!2 ~@2", C: "~ x ~ x ~ x ~ x", D: "x ~@6 x", E: "x",
})).gain(0.42)

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

// drums · low tom
const low_tom = s("lt").struct(`<
  A@4 B ~@2 C B D ~ D ~ D ~ D ~ D ~@3 D ~ D ~ D ~ D C B ~ D ~ D ~ D ~ D ~ D ~@3 D ~ D ~ D ~ D C B ~@8 A@4 ~@3 E ~@3 F
  ~@3 F ~@3 F ~@3 F ~@3 F ~ D ~ D ~ D ~@3 D ~ D ~ D ~ D C@2 ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D
  ~ D ~ D ~ D ~ D ~ D ~
>`.pickRestart({
  A: "x ~@13 x!2", B: "x", C: "~@14 x!2", D: "~@13 x!2 ~", E: "~@7 x", F: "~@2 x ~ x ~@2 x ~@8",
})).gain(0.26)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A@4 B C D C D C D C D C E F D C D C D C D C D ~ D C D C D C D C D C E F D C D C D C D C D ~ A@8 ~@4 G F E F G F E
// … 96 more lines

More by Corduroy