Strudelify

I Know My Love

The Corrs

KeyB♭ majorTempo100 bpm
0:00/0:00
// I Know My Love — The Corrs
// 100 bpm, 6/8, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 3 "Backup II (chor. piano)" epiano2 (copy of ch 2 "Backup I (syn voice)" synth choir); ch 7 "Fiddle" fiddle (copy of ch 5 "Violin" violin)
// note: Full arrangement: all 82 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Steel guitar (L).
setcpm(100/3)

// 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 · piano · "Lead (honky tonk)"
const piano = note(`<
  ~ A B C D C E F B C G@2 B H I@2 B J ~@15 K B C D C L F M H G@2 N C O@2 B P B Q D C E R B C I@2 B H G@2 B S ~@16
>`.pickRestart({
  A: "~@6 f4 ~ f4@2 g4@2", B: "f4@3 eb4@3 c4@2 bb3@2 a3@2", C: "bb3@2 c4 d4@3 eb4@2 c4@2 a3@2",
  D: "f3@3 g3@3 a3@2 bb3@2 a3@2", E: "f3@3 g3@3 a3@2 bb3@2 d4@2", F: "f4@4 ~@2 g4 a4 bb4@2 a4@2",
  G: "[f3@12 g3@2 a3@2 bb3@4 d4@2 f4@9 ~@5 g4@2 a4@2 bb4@4 a4@4]/2", H: "bb3@4 c4@2 d4@5 ~ eb4@4 c4@4 a3@4",
  I: "[f3@6 g3 a3 bb3@2 d4 f4@5 ~@2 g4 a4 bb4@2 a4@2]/2", J: "bb3 ~@2", K: "~@3 c4 f4 g4", L: "f3@3 g3@3 a3@2 bb3 d4@3",
  M: "f4 ~ f4@6 eb4@4 c4@4 bb3@4 a3@4", N: "f4@6 eb4@5 ~ c4@4 bb3@4 a3@4",
  O: "[f3@9 ~@3 g3@2 a3@2 bb3@4 d4@2 f4@10 ~@4 g4@2 a4@2 bb4@4 a4@4]/2", P: "bb3@7 ~@5 f4@2 ~@2 f4@4 g4@4",
  Q: "bb3@2 c4 d4@2 ~ eb4@2 c4@2 a3@2", R: "f4 ~ f4@6 ~@4 g4@2 a4@2 bb4@4 a4@4", S: "bb3@11 ~@13",
})).s("gm_piano").gain(0.8)

// chords · accordion
const accordion = note(`<
  A B A B A B A B A B A B A C A B A B D@3 E F@3 G H@2 E B H@2 E I A B A B A B A B A B A J A B A I ~@8 A B A B A B A B
  F@3 E F@3 E K@2 ~ L ~@4
>`.pickRestart({
  A: "[f3,a3,c4,eb4]", B: "[f3,bb3,d4]", C: "[f3,bb3,d4]@23 ~", D: "[[f3,a3,c4]@65 ~@7]/3", E: "[eb3,g3,bb3]",
  F: "[[f3,a3,c4]@67 ~@5]/3", G: "[eb3,g3,bb3]@23 ~", H: "[f3,a3,c4]/2", I: "[f3,bb3,d4]@11 ~@13", J: "[f3,bb3,d4]@7 ~",
  K: "[f3,a3]/2", L: "bb3",
})).s("gm_accordion").gain(0.48).pan(0.6)

// chords · accordion · soft notes
const accordion_soft = note("<~@74 A@2 B C D@2 B ~>".pickRestart({
  A: "c4/2", B: "[eb3,g3,bb3]", C: "[f3,d4]", D: "[f3,a3,c4]/2",
})).s("gm_accordion").gain(0.24).pan(0.6)

// other · ocarina · "Tin whistle (ocarina)"
const ocarina = note(`<
  A B ~ C D E ~@5 F ~ G ~ H I J K L M N K L M N O P Q R S T U@2 ~@9 V W X ~ V ~@11 V ~ Y ~ Z ~@2 K L M N K L M N O AA AB
  AC AD ~@3
>`.pickRestart({
  A: "eb6@3 c6@3 bb5 ~ bb5 c6 a5@2", B: "bb5@2 ~", C: "~@3 g5 a5 bb5", D: "c6@3 bb5@3 a5@2 g5@3 ~",
  E: "d6@3 ~@3 d6@4 eb6@2 d6@2 eb6@2 d6@7 ~", F: "d6 ~@3 d6@2 c6 ~ d6@2 ~@2 d6@2 c6@2 d6@2 ~@6",
  G: "d6 ~@3 d6@2 c6@2 d6 ~@3 d6 ~@3 d6 ~@3 d6 ~@3", H: "d6 ~@3 d6@2 c6@2 d6 ~@3 d6@2 c6@2 d6@3 ~ c6 ~@3", I: "f5",
  J: "d5@7 ~", K: "c6 ~@3 f5 ~ f5 ~ f5 ~@3 [f6,g6]@4 eb6@2 c6@2 a5@2 c6@2",
  L: "c6@2 ~@2 f5 ~ f5@2 ~@4 f5@4 g5@2 a5@2 bb5@4",
  M: "c6@2 ~@2 f5 ~ f5 ~@4 f6@4 eb6@2 c6@2 ~ a5@2 bb5@2, ~@11 g6@2 ~@11",
  N: "c6 ~@3 [eb6,f6]@2 eb6@5 ~ d6 ~@2 eb6@5 ~@4, ~@15 f6@2 ~@7", O: "c6 ~@2 g6 f6@2 f6@6 eb6 ~@3 f6@4 ~@4",
  P: "c6 ~@2 g6 f6@2 f6@6 d6@4 eb6@2 d6@2 c6@4", Q: "bb5@2 ~@2 eb6 eb6@4 ~@3 d6 ~@3 eb6@5 ~@3, ~@15 f6@2 ~@7",
  R: "f6@4 d6 ~ f6@2 ~ eb6@2 d6 c6@2 ~@10, g6 ~@3 d6 ~@7",
  S: "c6 ~@2 g6 f6 ~ f6@4 ~@2 eb6@3 ~ f6@4 ~@4, ~@11 f6@2 ~@11", T: "c6 ~@3 [f6,g6] ~ f6@5 ~ d6@4 eb6@2 d6@2 c6@2 ~@2",
  U: "[bb5 ~@2 f6 eb6@2 eb6@5 ~ d6@3 ~ eb6@5 ~@3 f6@4 d6 ~ f6@2 ~ d6@2 c6@2 ~@11, ~@23 g6@2 ~@7 eb6@2 ~@14]/2",
  V: "d6 ~@5 d6 ~@3 d6@2 c6 ~@3 d6 ~@7", W: "~@2 f6", X: "d6@3 ~ c6@2 d6 ~@3 c6 ~ d6 ~@3 c6 ~@7",
  Y: "f6 ~@3 f6@2 c6 ~ d6@3 ~ c6@2 ~@2 f6 ~@7", Z: "f6@2 ~@2 d6@2 c6 ~@3 f6@2 d6@2 ~@2 c6 ~@7",
  AA: "c6 ~@2 g6 f6@2 f6@6 d6@4 eb6@2 ~@2 c6@4", AB: "bb5@2 ~@2 eb6 ~@7 d6 ~@11", AC: "g6 ~@11",
  AD: "~@6 f6@4 ~ f6@2 ~@11",
})).s("gm_ocarina").gain(0.56).pan(0.4)

// other · ocarina · "Tin whistle (ocarina)" · soft notes
const ocarina_soft = note("<~@75 A B C D E F@2>".pickRestart({
  A: "~@9 d6 ~@2", B: "~@5 eb6@4 ~@7 eb6@5 ~@3, ~@15 f6@2 ~@7", C: "f6@4 d6 ~ f6@2 ~ eb6@2 d6 c6@2 ~@10, ~@4 d6 ~@7",
  D: "c6 ~@2 g6 f6 ~@7 eb6@3 ~ f6@4 ~@4", E: "c6 ~@3 [f6,g6] ~ f6@5 ~ d6@4 eb6@2 d6@2 c6@2 ~@2",
  F: "[bb5 ~@2 f6 eb6@2 eb6@5 ~@5 eb6@5 ~@2 g6@2 ~@3 d6 ~@4 d6@2 c6@2 ~@11, ~@16 eb6 ~@7]/2",
})).s("gm_ocarina").gain(0.24).pan(0.4)

// chords · acoustic guitar steel · "Steel guitar (L)"
const acoustic_guitar_steel = note(`<
  ~@5 A ~ B ~@2 B C ~@7 D ~@9 E ~@7 F ~ B ~@2 B C ~@9 A ~ G ~@2 H C ~@7 D ~@14
>`.pickRestart({
  A: "~@3 d4@3 f3@4 ~@2", B: "~@3 f3@2 ~", C: "~ bb3 ~@2", D: "~ a3 ~@2", E: "~@3 d4 ~@2", F: "~@3 d4@3 f3@2 ~@4",
  G: "~@6 f3 ~@5", H: "~@3 f3 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.4)

// chords · acoustic guitar steel · "Steel guitar (L)" · soft notes
const acoustic_guitar_steel_2 = note("<~@78 [~ a3 ~@2] a3 ~@2>").s("gm_acoustic_guitar_steel").gain(0.16).pan(0.4)

// chords · acoustic guitar steel · "Steel guitar (R)"
const acoustic_guitar_steel_3 = note(`<
  A B C B D E F G H I J K L M N O P Q R S C T A H@2 U P H V W X H Y Z C B D E F G H I J K L M N O P AA C B D E F G H I J
  K L M N O P Q R S C T A AB AC AD AE AF AG ~@5
>`.pickRestart({
  A: "[f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2", // F F5 F
  B: "[f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@4 [f3,bb3,d4]@3 ~", // Bb
  C: "[f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@4 [f3,a3,c4]@3 ~", // F
  D: "[f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3]@2 [f3,a3,c4]@4 [f3,a3,c4]@4 [f3,a3,c4]@3 ~", // F
  E: "[f3,bb3,d4]@2 f3 [f3,bb3]@2 [bb3,d4] [bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2, ~@2 d4@3 f3@3 ~@4", // Bb Bb5 Bb
  F: "[f3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@4 [f3,a3,c4]@3 ~, a3 ~@23", // F5 F
  G: "[f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [bb3,d4] [bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2, ~@5 f3@3 ~@4", // Bb
  H: "[f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2", // F
  I: "[bb3,d4] ~@3 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@4 [f3,bb3,d4]@4, f3 ~@5", // Bb
  J: "[f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [a3,c4] [a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, ~@5 f3@3 ~@4", // F Am F
  K: "[bb3,d4] ~@3 [f3,d4]@2 [f3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@4 [f3,bb3,d4]@4, f3 ~@5", // Bb Dm Bb
  L: "[f3,a3]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, c4 ~@23", // F
  M: "[f3,bb3,d4] ~@3 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@4", // Bb
  N: "[f3,a3,c4] ~@3 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@4", // F
  O: "[f3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3] [f3,bb3,d4]!2 [f3,bb3,d4]@2 [f3,bb3,d4]@2, bb3 ~@23", // Dm Bb Bb5 Bb
  P: "[f3,a3,c4] ~ [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2", // F
  Q: "f3@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2, d4 ~@11, bb3 ~@23", // Bb
  R: "[f3,a3,c4] ~@3 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@4 [f3,a3,c4]@4", // F
  S: "[f3,c4]@2 [f3,c4] [f3,c4]@2 [f3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, a3 ~", // F5 F
  T: "[eb3,g3,bb3]@4 [eb3,g3,bb3]@2 [eb3,g3,bb3]@4 [eb3,g3,bb3]@2 [eb3,g3,bb3]@4 [eb3,g3,bb3]@4 [eb3,g3,bb3]@3 ~", // Eb
  U: "eb3@2 [eb3,g3,bb3] [eb3,g3,bb3]@2 [eb3,g3,bb3] [eb3,g3,bb3]@2 [eb3,g3,bb3]@2 [eb3,g3,bb3]@2, bb3 ~@11, g3 ~@23", // Eb
  V: "[eb3,g3,bb3] ~ [eb3,g3,bb3] [eb3,g3,bb3]@2 [eb3,g3,bb3] [eb3,g3,bb3]@2 [eb3,g3,bb3]@2 [eb3,g3,bb3]@2", // Eb
  W: "[f3,bb3,d4] ~@3 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3]@2 [f3,bb3]@4 [f3,bb3,d4]@4 [f3,bb3,d4]@4, ~@5 d4@3 ~@4", // Bb Bb5 Bb
  X: "[f3,a3,c4] ~@3 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@4 [f3,c4]@2 [f3,c4]@2, ~@5 a3", // F F5
  Y: "[eb3,g3,bb3] ~@3 [eb3,g3,bb3]@2 [eb3,g3,bb3]@4 [eb3,g3,bb3]@2 [eb3,g3,bb3]@4 [eb3,g3,bb3]@4 [eb3,g3,bb3]@4", // Eb
  Z: "[f3,bb3,d4] ~@3 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@2 ~@10", // Bb
  AA: "f3@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4]@7, d4 ~@11, bb3 ~@23", // Bb
  AB: "[f3,a3,c4]@2 [f3,a3] [f3,a3,c4]@2 [f3,a3,c4] a3@2 [f3,a3,c4]@2 [a3,c4]@2", // F Am
  AC: "[f3,a3,c4]@2 [f3,a3,c4] [f3,a3]@2 [f3,a3,c4] [f3,a3]@2 [f3,a3,c4]@2 a3@2", // F
  AD: "eb3@2 [g3,bb3] [eb3,g3,bb3]@2 [eb3,g3,bb3] [eb3,g3,bb3]@2 [g3,bb3]@2 [g3,bb3]@2, bb3 ~@11, g3 ~@23", // Gm Eb Gm
  AE: "[f3,a3,c4] ~ [f3,a3] a3@2 a3 a3@2 a3@2 a3@2", AF: "~@3 a3 ~ a3", AG: "bb3 ~ bb3 ~@9",
})).s("gm_acoustic_guitar_steel").gain(0.4).pan(0.7)

// chords · acoustic guitar steel · "Steel guitar (R)" · soft notes
const acoustic_guitar_steel_4 = note("<~@71 A B C D E F@2 G ~ H ~>".pickRestart({
  A: "~@2 c4 ~@3 [f3,c4]@2 ~@2 f3@2", B: "~@3 c4@2 ~ c4@2 ~@2 [f3,c4]@2", C: "~@2 eb3 ~@5 eb3@2 eb3@2",
  D: "~@2 c4 [f3,c4]@2 [f3,c4] [f3,c4]@2 [f3,c4]@2 [f3,c4]@2", // F5
  E: "[f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4] [f3,c4]@2 [f3,a3,c4]@2 [f3,c4]@2", // F F5 F F5
  F: "[[eb3,g3]@2 ~@2 [eb3,g3]@2 [eb3,g3,bb3]@4 [eb3,g3,bb3]@2 [eb3,g3,bb3]@4 [eb3,g3,bb3]@4 bb3@4 [f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@4 [f3,bb3,d4]@3 ~, ~@20 [eb3,g3]@27 ~]/2", // Eb Bb Eb
  G: "[f3,a3]@2 [f3,c4] [f3,c4]@2 [a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, c4 ~@3 a3@6 ~@14", // F F5 Am F
  H: "bb3 ~@5 [g3,bb3]@18", // Gm
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.7)

// chords · orchestral harp · "Harp" · Am Csus2 Bbmaj7 Ebsus2 Ebmaj7 Gm Eb Csus2 …
const orchestral_harp = note(`<
  ~@33
  [~@18 d6 eb6 ~@4, ~@4 [a2,bb2,c3] f3 [c4,d4] [a4,bb4] [eb5,f5] c6 ~@2, ~@9 [d3,eb3]@2 [g3,a3,bb3]@2 [eb4,f4,g4]@2 [c5,d5]@2 [g5,a5,bb5]@2 ~@5]
  ~@48
>`).s("gm_orchestral_harp").gain(0.2)

// bass · acoustic bass · "Ac. bass"
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W T X Y Z AA AB J AC AD AE AF AG F Q H O AH AI AJ Q AJ AI N Q H Q AK AL F
  AM F O AN AO F AP AQ I AR O F Q AJ AS AT X AU AV AW AX AY AZ BA BB ~@5
>`.pickRestart({
  A: "f1@5 ~ f1@4 ~@2 f1@6 ~@2 f1@4", B: "bb1@5 ~ bb1@5 ~ bb1@3 ~ bb1@2 ~@2 bb1@4",
  C: "f1@4 ~@2 f1@4 ~@2 f1@5 ~@3 f1@4", D: "bb1@5 ~ bb1@4 ~@2 bb1@3 ~ bb1@3 ~ bb1@4",
  E: "f1@4 ~@2 f1@4 ~@2 f1@3 ~@5 f1@4", F: "bb1@4 ~@2 bb1@4 ~@2 bb1@3 ~ bb1@2 ~@2 bb1@4",
  G: "f1@4 ~@2 f1@5 ~ f1@3 ~ f1@3 ~ f1@4", H: "bb1@5 ~ bb1@4 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@4",
  I: "f1@2 ~ f1@2 ~ f1 ~ f1 ~ f1@2", J: "bb1@3 ~@3 bb1@3 ~@3 bb1@2 ~@2 bb1@2 ~@2 bb1@4",
  K: "f1@4 ~@2 f1@3 ~ f1@3 ~@3 f1@3 ~ f1@4", L: "bb1@5 ~ bb1@4 ~@2 bb1@2 ~@2 bb1@3 ~ bb1@4",
  M: "f1@5 ~ f1@4 ~@2 f1@2 ~@2 f1@2 ~@2 f1@4", N: "bb1@2 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1@2",
  O: "f1@4 ~@2 f1@4 ~@2 f1@3 ~ f1@3 ~ f1@4", P: "bb1@4 ~@2 bb1@4 ~@2 bb1@2 ~@2 bb1@3 ~ bb1@4",
  Q: "f1@4 ~@2 f1@3 ~@3 f1@3 ~ f1@2 ~@2 f1@4", R: "bb1@4 ~@2 bb1@3 ~@3 bb1@2 ~@2 bb1@2 ~@2 bb1 ~@3",
  S: "f1@2 f1 ~@3 f1 ~ f1 ~ f1 ~", T: "f1@4 ~@2 f1@3 ~@3 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2",
  U: "f1@4 ~@2 f1@4 ~@2 f1@2 ~@2 f1@3 ~ f1@4", V: "eb1@4 ~@2 eb1@4 ~@2 eb1@3 ~ eb1@3 ~ eb1@4",
  W: "f1@3 ~ f1@2 ~@2 f1@3 ~ f1@5 ~@3 f1@3 ~", X: "f1@4 ~@2 f1@3 ~@3 f1@2 ~@2 f1@2 ~@2 f1@3 ~",
  Y: "eb1@3 ~@3 eb1@4 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2", Z: "f1@3 ~@3 f1@4 ~@2 f1@2 ~@2 f1@3 ~ f1@2 ~@2",
  AA: "f1@3 ~@3 f1@2 ~@4 f1@2 ~@2 f1@2 ~@2 f1@3 ~", AB: "eb1@2 ~ eb1@2 ~ eb1 ~ eb1 ~ eb1@2",
  AC: "f1@3 ~@3 f1@4 ~@2 f1@2 ~@2 f1@4 f1@2 ~@2", AD: "f1@4 ~@2 f1@4 ~@2 f1@2 ~@2 f1@2 ~@2 f1@3 ~",
  AE: "eb1@4 ~@2 eb1@4 ~@2 eb1@3 ~ eb1@2 ~@2 eb1@4", AF: "bb1@3 ~ bb1@3 ~@5 bb1@2 ~@10",
  AG: "f1@3 ~@3 f1@3 ~ f1@3 ~@3 f1@2 ~@2 f1@4", AH: "bb1@4 ~@2 bb1@3 ~@3 bb1@3 ~ bb1@3 ~ bb1@4",
  AI: "f1@4 ~@2 f1@3 ~@3 f1@2 ~@2 f1@2 ~@2 f1@4", AJ: "bb1@4 ~@2 bb1@3 ~@3 bb1@2 ~@2 bb1@2 ~@2 bb1@4",
  AK: "bb1 ~ bb1 ~@5", AL: "f1@4 ~@2 f1@3 ~@3 f1@3 ~ f1@3 ~ f1@4", AM: "f1@4 ~@2 f1@4 ~@2 f1@3 ~ f1@2 ~@2 f1@4",
  AN: "bb1@5 ~ bb1@3 ~@3 bb1@2 ~@2 bb1@3 ~ bb1@4", AO: "f1@5 ~ f1@4 ~@2 f1@3 ~ f1@2 ~@2 f1@4",
  AP: "f1@4 ~@2 f1@3 ~@3 f1@3 ~ f1@3 ~ f1@3 ~", AQ: "bb1@3 ~@3 bb1@3 ~@3 bb1@3 ~ bb1@2 ~@2 bb1@3 ~",
  AR: "bb1@5 ~ bb1@3 ~@3 bb1@3 ~ bb1@2 ~@2 bb1@3 ~", AS: "f1@3 ~@3 f1@3 ~@3 f1@3 ~ f1@3 ~ f1@2 ~@2",
  AT: "f1@4 ~@2 f1@3 ~@3 f1@3 ~ f1@2 ~@2 f1@2 ~@2", AU: "eb1@5 ~ eb1@4 ~@2 eb1@3 ~ eb1@2 ~@2 eb1@3 ~",
  AV: "f1@2 ~ f1@2 ~ f1 ~ f1 ~ f1 ~", AW: "f1@4 ~@2 f1@4 ~@2 f1@3 ~ f1@2 ~@6",
  AX: "f1@4 ~@2 f1@4 ~@2 f1@3 ~ f1@2 ~@2 f1@3 ~", AY: "eb1@5 ~ eb1@4 ~@2 eb1@3 ~ eb1@2 ~@6",
  AZ: "f1@4 ~@6 f1@3 ~@3 f1@3 ~@5", BA: "~@2 f1 ~@5", BB: "eb1@2 ~ eb1@2 ~@7",
})).s("gm_acoustic_bass").gain(0.36).pan(0.4)

// bass · acoustic bass · "Ac. bass" · soft notes
const bass_soft = note("<~@71 A ~ B C D E F G H I ~>".pickRestart({
  A: "~@10 f1 ~", B: "~@20 eb1@3 ~", C: "~@3 f1@2 ~@5 f1 ~", D: "f1@4 ~@8 f1@3 ~ f1@2 ~@2 f1@2 ~@2",
  E: "~@12 eb1@3 ~ eb1@2 ~@2 eb1@4", F: "bb1@4 ~@2 bb1@3 ~@3 bb1@2 ~@2 bb1@2 ~@2 bb1@4",
  G: "f1@3 ~ f1@3 ~@5 f1@2 ~@2 f1@3 ~ f1 ~@3", H: "f1@3 ~@3 f1@3 ~@7 f1@2 ~@2 f1@2 ~@2", I: "eb1@4 ~@2 eb1@3 ~@15",
})).s("gm_acoustic_bass").gain(0.18).pan(0.4)

// drums · clap
const clap = s("cp").struct("<~@34 A@15 B ~@16 A@7 C@2 D@2 E ~@4>".pickRestart({
  A: "x ~ x!2 ~ x!2 ~ x ~ x ~", B: "x ~ x!2 ~ x ~@6", C: "x ~@2 x ~ x!2 ~ x ~ x ~", D: "x ~@2 x ~@4 x ~@3",
  E: "x!2 ~@2",
})).gain(0.54)

// drums · clap · soft notes
const clap_soft = s("cp").struct(`<
  ~@73
  [~ x ~@4]!2
  [~@2 x ~@2 x!2 ~@3 x ~]!2
  [~@2 x ~@2 x!2 ~ x ~ x ~]
  [x ~ x!2 ~ x!2 ~ x ~ x ~]
  [x ~@2 x ~ x!2 ~ x ~ x ~]
  [x ~@2 x ~@4 x ~@3]
  ~
>`).gain(0.16)

// drums · low tom
const low_tom = s("lt").struct("<[x ~ x!2 ~ x!2 ~@3 x ~]!74 [~@3 x ~ x] ~@7>").gain(0.39)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@74 [x ~ x!2 ~ x ~@6] [x ~ x!2 ~ x!2 ~@3 x ~]!4 ~@3>").gain(0.16)

// drums · congas
// … 29 more lines

More by The Corrs