Strudelify

Alleluja

Zucchero

KeyE majorTempo124 bpm
0:00/0:00
// Alleluja — Zucchero
// 124 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 130 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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
const bass = note(`<
  ~@4 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 D A B E F G H A B A B A B A B A B A B A B A B A B A B C D A B E
  F A B C I A B E F G H A J A J A J A J A B A B A B A B C D A B E F A B C I A B E F G H A J A J A J A J A J A J A J A J
  A J A J A J A J K ~
>`.pickRestart({
  A: "e2@2 b1@2 e2@2 b1 e2 e2@2 e1@2 e2@2 e1 ~", B: "e2@2 b1@2 e2@2 b1 e2 e2@2 b1@2 e1@2 b1@2",
  C: "d2@2 d2 ~ d2@2 d2@2 d2@2 d2 ~ d2 ~ d2@2", D: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1@2",
  E: "d2 ~ d2@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2", F: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~", G: "e2 d2",
  H: "e2 ~@15", I: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2", J: "e2@2 b1@2 e2@2 b1 e2 g1@4 f#1@4", K: "e1",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · electric guitar clean · "EL GUITAR"
const electric_guitar_clean = note(`<
  A@28 ~@2 A@2 ~@4 A@20 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@4 B@8 A@8 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@4 B@24 ~@2
>`.pickRestart({
  A: "[~@4 e4@4 d4@2 e4@6 d4@2 e4@6 [e3,a3]@2 [d3,g#3]@2 [e3,a3]@3 ~, e2@15 ~]/2", // A5 Ddim A5
  B: "[~@2 e4@2 d4 e4@3 d4 e4@3 g3@2 f#3@2, e2@15 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.4).pan(0.6)

// chords · harmonica
const harmonica = note(`<
  ~@5 A@2 B C D ~ E ~@25 A@2 B C D ~ E ~ A@2 B C D ~ E ~@21 A@2 B C D ~ E ~ A@2 B C D ~ E ~@17 A@2 B C D ~ E ~ A@2 B C D
  ~ E ~ A@2 B C D ~ E ~@2
>`.pickRestart({
  A: "[~@14 [g#4,b4]@5 ~@3 [b4,d5]@4 ~@6, ~@22 a#4 ~@9]/2", B: "~@7 [d4,e4]", C: "~@2 [d4,e4] ~@13",
  D: "~@8 [g#4,b4]@3 ~ d5@2 [b4,d5] ~, ~@12 b4 ~@3", E: "~@6 b4@4 ~@2 [g#4,b4] ~@3",
})).s("gm_harmonica").gain(0.3).pan(0.8)

// chords · harmonica · soft notes
const harmonica_soft = note("<~@11 A ~@31 A ~@7 A ~@27 A ~@7 A ~@23 A ~@7 A ~@7 A ~@2>".pickRestart({
  A: "~@3 d5@2 ~@3",
})).s("gm_harmonica").gain(0.2).pan(0.8)

// other · distortion guitar · "GUIT SOLO"
const distortion_guitar = note("<~@80 A@3 B@4 C@6 D@2 ~@35>".pickRestart({
  A: "[~@4 e4 ~@3 e4@2 ~@2 e4 ~ g4@4 e4@2 ~@2 d4@4 e4@8 ~@2 e4 ~@3 d4@2 e4 ~@3 b4 ~]/3",
  B: "[~@2 g4@6 g3@2 a3@2 g3@10 g3 a3 a#3 b3 d4@2 e4@2 d4@4 e4 ~@3 e4!2 a#4 b4 a#4 ~ a4 ~ g4@16 e4 g4]/4",
  C: "[a4 a#4 b4 d5 [b4,e5] ~ d5 e5 g5@2 e5 ~ d5 [b4,c5] d5 e5@14 ~ [d5,d#5] ~@3 d5 b4 d5@2 b4 a4 b4@2 [g4,a4] ~ a4@22 g4 e4 g4 e4 d4 e4@5 d4@2 b3@6 g3 a3 g3 a3 b3!2 d4 b3 d4 e4 d4 e4, ~@15 e5@2 ~@31]/6", // E5 Cmaj7 D#maj7 Gsus2
  D: "[g4 e4 g4 [e4,a4] g4 ~ a#4 b4 ~ e5 b4@2 e5@2 g5@18, ~@4 d5 ~@11]/2", // A5
})).s("gm_distortion_guitar").gain(0.45)

// chords · lead 2 sawtooth · "SYNTHBRASS"
const lead_2_sawtooth = note("<~@73 A ~ B ~ A ~ B ~@33 A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~@2>".pickRestart({
  A: "~@8 [g4,d5]@4 [f#4,c#5]@3 ~", B: "~@2 [g4,d5] [f#4,c#5]",
})).s("gm_lead_2_sawtooth").gain(0.3).pan(0.2)

// chords · brass section · "BRASS"
const brass_section = note(`<
  ~@28 A@2 B ~ C@2 D E ~@20 F G@2 ~ H@2 I J K@3 L M N O ~@17 F G@2 ~ H@2 I J K@3 L M N O ~@9 P Q P R P Q P R P Q P R P Q
  P R S@2
>`.pickRestart({
  A: "[[d3,d4] c#4, [a3,f#4]]/2", B: "[e3,e4] ~@7, b3 ~@15", C: "[[d4,f#4]@16 [c#4,f#4]@15 ~, a3@31 ~]/2",
  D: "[b3,e4] [a3,d4]", E: "[b3,e4] ~@7", F: "[d3,a3,d4]", G: "[a3@15 ~ [e3,b3]@4 [b3,e4] ~@11, e4@19 ~@13]/2",
  H: "[d4@16 ~@5 f#2 ~@2 f#2@5 ~@3, a3@29 ~@3, ~@16 e4@13 ~@3]/2", I: "[b3,e4]@14 e3 ~, e3@11 ~@5",
  J: "e3 ~ [e4,e5] ~@3 e3 ~ [e4,e5] ~ e3 ~@3 e3 ~", // E
  K: "[[d3,d4]@16 ~@16 [e3,b3]@3 ~ [b3,e4] ~ e3 ~@5 e3 ~ [e4,d5,e5] ~, a3@31 ~@17, ~@8 e4@9 ~@7]/3", // D E5 E7
  L: "e3 ~ [d4,d5] ~ e3 ~ [e4,e5]@2 e3 ~ [d4,d5] ~ e3 ~ e3 ~", M: "[a3,d4], d3@7 ~@9", N: "[a3,e4]@7 ~, f#2@3 ~@13",
  O: "[e3,b3,e4]@8 [d3,a3,d4]@7 ~", P: "[e3,e4]",
  Q: "[d4,d5]@2 [c#4,c#5]@2 d5@2 [c#4,c#5]@2 [d4,d5]@2 [e4,e5] ~@5, ~@4 d4 ~@11", // D C# D E
  R: "[g#3,b3,g#4,b4] ~ [g#3,b3]@2 [a3,c#4,a4,c#5]@2 [b3,d4,b4,d5] ~@9, ~@2 [g#4,b4] ~@13", S: "[[e3,b3,e4]@13 ~@3]/2",
})).s("gm_brass_section").gain(0.4)

// chords · rock organ · "ORGAN"
const rock_organ = note(`<
  ~@4 A@4 B@4 C D E F G H I H J@2 K L M N M O P@4 Q@2 R S T U V W X@2 Y Z AA@2 U AB@3 AC AD@3 AE AF AG@6 AH@2 AI@4 AJ@2
  AK AL AM@2 AN@2 AO@2 AP AQ AR AS AT AU AV AW AX AY AZ@6 BA@2 BB@4 BC@3 BD BE BF BG@2 BH BI BJ BK BL BK BM BN BO BP BQ
  BR BS BT BU BV BW@2 BX BY BZ@2
>`.pickRestart({
  A: "[[b5,d6]@23 ~ a#5 ~@3 a5 ~ e5@34, e5@27 ~@37, ~@24 d6@11 ~@29, ~@25 b5@5 b5 ~@33]/4", // Bm
  B: "[a#5 b5@26 ~ [g#5,a#5] b5 e5@30 [b4,d5] ~@3, d6@7 ~@9]/4", C: "~@4 [e4,b4,e5] ~@5 [e4,b4,e5] ~@3 [e4,b4,e5] ~",
  D: "~@6 [e4,b4,e5]@4 e4 ~ [b4,d5]@3 ~", E: "~@4 [b4,e5] ~ e4 ~ [b4,e5] ~@3 e4 ~ [b4,d5] ~",
  F: "~@2 e4 ~ e4 ~ [b4,d5]@4 e4@2 [b4,d5] ~@3", G: "~@2 e4 ~ [b4,e5] ~ e4 ~ [b4,d5] ~@5 [b4,e5] ~",
  H: "~@2 e4 ~ e4 ~ [b4,d5]@4 e4@2 [b4,d5]@2 e4 ~", I: "~@2 e4 ~ [b4,e5] ~ e4 ~ [b4,d5] ~@3 e4 ~ [b4,e5] ~",
  J: "[~@2 e4 ~ [b4,e5] ~ e4 ~ [b4,e5] ~@5 [b4,d5]@4 e4 ~ [b4,d5] ~ e4 ~@3 [b4,e5] ~ e4 ~ [b4,e5] ~]/2", // E5 Bm E5
  K: "~@2 e4 ~ [b4,d5] ~ e4 ~ [b4,d5]@3 ~ e4 ~@3", L: "~@4 [b4,e5] ~@3 [b4,e5] ~ e4 ~@3 [b4,d5] ~",
  M: "~@2 e4 ~ [b4,e5] ~ e4 ~ [b4,e5] ~@3 e4 ~ [b4,e5] ~", // E5
  N: "~@4 e4 ~ [b4,e5]@4 e4@2 [e4,d5] ~ [e4,b4,e5] ~, ~@6 b4 ~", O: "e4 ~ e4 ~ e4 ~ [b4,e5]@2 e4@2 [b4,d5]@3 ~@3",
  P: "[d5@15 ~ c#5@16 b4@3 ~ [b4,e5,f#5,g#5] ~@3 [b4,d5]@2 [b4,d5,e5] ~ b4 ~ e5@4 ~@2 [d5,d#5] ~ d5@10, f#5@35 ~@17 e5@2 ~@10, a4@31 ~@15 b4@3 ~ b4@13 ~, ~@16 e5@19 ~@11 c5 ~@17]/4", // E Bm E7 D#maj7
  Q: "[d5@15 ~ c#5@15 ~, [a4,f#5]@31 ~]/2", R: "[b4,e5] [a4,d5,f#5]", S: "[b4,e5] ~@7",
  T: "~@2 e4@2 [g#4,b4,e5]@3 [g#4,b4,e5] e4 ~ [g#4,b4,d5] ~ e4 ~ [g#4,b4,d5] ~", // E G#dim
  U: "~@2 e4 ~ [g#4,b4,d5]@3 [g#4,b4,d5] ~@2 [g#4,b4,d5] ~@3 [g#4,b4,d5] ~", // G#dim
  V: "~@2 e4 ~ [g#4,b4,d5]@2 ~ [g#4,b4,d5] e4@2 [g#4,b4,d5] ~ e4 ~ [g#4,b4,d5] ~", // G#dim
  W: "~@2 e4 ~ [g#4,b4,d5]@3 [g#4,b4,d5] e4@2 [g#4,b4,d5] ~ e4 ~ [g#4,b4,d5]@2", // G#dim
  X: "[e3@3 ~ [g#4,b4,d5]@3 [g#4,b4,d5] e3 ~ [g#4,b4,d5] ~@5 e3@2 ~ g#4 b4 ~@2 [g#4,b4,d5] e3 ~ [g#4,d5] ~@2 [g#4,b4,d5] ~ e4, ~@7 [g#4,b4,d5]@3 ~@6]/2", // G#dim
  Y: "e3@3 ~ [g#4,b4,d5]@2 ~ [g#4,b4] e3 e4 [g#4,b4,d5] ~@3 [g#4,b4,d5] ~", // G#dim G#m G#dim
  Z: "e3@3 ~ [g#4,b4,d5]@2 ~ [g#4,b4,d5] e3 e4 [g#4,b4,d5] ~ e3 ~ [g#4,b4,d5] ~", // G#dim
  AA: "[e3 e3@2 ~ [g#4,b4,d5]@2 ~ [g#4,b4,d5] e3 ~ [g#4,b4,d5] ~@3 [g#4,b4,d5]@4 e4 ~ [b4,d5] ~@2 [g#4,b4] ~@2 [g#4,b4,d5] ~ e4 ~ [g#4,b4,d5]@2, ~@10 g#4 ~@5]/2", // G#dim Bm G#m G#dim
  AB: "[e4@3 ~ [g#4,b4,d5]@2 e4 [g#4,b4,d5] ~ e4 [b4,d5] ~ d4 e5 [b3,a#5] ~ e3@2 ~@2 e5 ~@2 f4 b3 e4 [g#4,b4,d5,e5] ~ e3 ~@3 e3@2 e4@2 [g#4,b4] ~@2 [g#4,b4,d5] [e3,g#3] e4 [g#4,b4,d5] ~ g#3 ~ [g#4,b4,d5]@2, ~@4 e3@2 ~ d6@3 ~@14, ~@15 b5@5 ~@2 e3@2 ~@6 [g#4,b4,d5]@4 ~@2 e5@2 ~@10]/3", // G#dim Bm Bmaj7 E7 G#m G#dim E G#dim
  AC: "e3 ~ e4@2 [b4,d5] ~@2 [g#4,b4] e3 e4 [g#4,b4,d5] ~@3 [g#4,b4,d5] ~, ~@2 g#4 ~@5", // Bm G#m G#dim
  AD: "[e3 ~ e3@2 [g#4,b4,d5] ~ e3 e5 a#5 b5 [a#5,d6] ~ [b3,a5,d6] ~ b3 ~ e3@2 e5 ~ f#3 ~ e3 [a4,b4,e5] e3 ~ [a4,b4] ~ [e3,g#3] ~ [g#4,b4]@2 e3@2 e4 ~ [g#4,d5]@2 ~ [g#4,b4,d5] e3 e4 [g#4,b4,d5] ~ [e3,g#3] ~ [g#4,b4,d5]@2, ~@2 e4 ~@5 d6@2 ~@4 [g#5,d6]@4 ~@8 e5@2 ~@2 e5@4 ~@2 b4 ~@11]/3", // G#dim A# Bm7 Asus2 E G#m G#dim E …
  AE: "e3@2 e4@2 [g#4,b4,d5]@2 ~ [g#4,b4,d5] e3 e4 [g#4,b4,d5] ~ e3 ~ [g#4,b4,d5]@2", // G#dim
  AF: "e3@2 e4 ~ [a#4,b4,d5] ~ [e3,a#4,b4,d5] ~ e3@2 e4@2 e3@2 a4 ~, ~@8 [b4,d5]@5 ~@3, ~@8 a#4 ~@3 g#4 ~@3", // A# E7 Bm
  AG: "[d5@14 [f#3,c#5]@18 ~@6 e4@3 ~ a4@2 b3@2 ~@2 e3@10 b4@2 e3@4 d3@5 ~@3 d3@6 ~@2 [f#3,c#5,e5]@16, [a4,f#5]@32 e3@14 ~@18 a4@31 ~, d3@5 ~@9 e5@31 ~ e5@18 f#5@14 ~@18, ~@16 b4@5 d5@2 b4@6 d5@10 ~@9]/6", // F#5 F#7 D
  AH: "[e3,b4,e5]/2", // E5
  AI: "[[d3,d5,f#5]@8 [a3,c#5]@8 b4@4 e4 a4 ~@4 e4@2 ~ b3 e4 b3, a4@8 e3@3 b3 e3@4, ~@16 e5@25 ~ d5@4 [b4,e5]@18]/4", // D A E5
  AJ: "[[d4,d5,f#5]@16 [f#3,c#5,e5]@15 ~, a4@15 ~]/2", AK: "[e3,b4,e5] [d3,a4,d5]", AL: "[e3,b4,e5] ~@7",
  AM: "[e3@4 [g#4,b4,d5]@2 ~ [g#4,b4,d5] e3 ~ [g#4,b4,d5] ~ e3 ~@3 e3@3 ~@3 e3@2 [g4,b4]@4 [f#3,a4]@4, ~@14 [g#4,b4,d5]@5 ~ [g#4,b4,d5]@4 g3@3 ~@5]/2", // G#dim G F#m G#dim
  AN: "[e3@3 ~ [g#4,b4]@3 [g#4,d5] e3@2 [g#4,b4,d5] ~ e3 ~ e3 ~ e3@4 [g#4,b4,d5]@2 e3@2 [g3,g4,d5]@4 [f#3,a4,c#5]@3 ~, ~@4 d5@2 ~@8 [g#4,b4,d5]@5 ~@13]/2", // G#m G#dim G5 F#m G#dim
  AO: "[e3@4 [e4,b4,d5]@2 ~ d5 e3@2 [b4,d5] ~ e3 ~ e3 ~ e3@4 [b4,d5]@2 e3@2 [g3,g4,d5]@4 [f#3,c#5]@4, ~@7 b4@2 ~@5 [b4,d5]@5 ~@9 a4 ~@3]/2", // E7 Bm G5 F#5 Bm
  AP: "e3@3 ~ [b4,d5]@3 [b4,d5] e3@2 [b4,d5] ~ e3 ~ [b4,d5]@2, ~@14 g#4 ~", // Bm
  AQ: "e3@4 [b4,d5]@2 e3@2 [g3,g4,d5]@4 [f#3,d5]@3 ~, ~@4 g#4 ~@11", // Bm G5 D
  AR: "e3@4 [g#4,b4,d5]@3 [g#4,b4] e3@2 [g#4,b4,d5] ~ e3 ~ [g#4,b4,d5] ~", // G#dim G#m G#dim
  AS: "e3@4 [g#4,b4,d5]@2 e3 g4 [g3,g4,d5]@4 [f#3,c#5]@4, ~@12 g4 ~@3", // G#dim G5 F#5
  AT: "e3@4 [b4,d5]@3 [g#4,b4] e3@2 [g#4,b4,d5] ~ e3 ~ [g#4,b4,d5] ~, ~@4 g#4 ~@11", // Bm G#m G#dim
  AU: "e3@4 [g#4,b4,d5]@2 ~ [g#4,b4] e3@2 [g#4,b4,d5] ~ e3 ~ [g#4,b4,d5] ~", // G#dim G#m G#dim
  AV: "e3@4 [g#4,b4,d5]@2 ~ [g#4,b4,d5] e3@2 [g#4,b4,d5] ~ e3 ~ [g#4,b4,d5]@2", // G#dim
  AW: "~@2 g#4 ~ [g#4,b4,d5]@2 ~ [g#4,b4] e3@2 [g#4,b4,d5] ~@3 [g#4,b4,d5] ~, e3 ~@3", // G#dim G#m G#dim
  AX: "e3@4 b4!2 ~ [g#4,b4,d5] e3@2 [g#4,b4,d5] ~ e3 ~ [g#4,b4,d5] ~, ~@2 [g#4,d5] ~@5", // G#dim
  AY: "e3@4 [g#4,b4,d5]@2 ~ [g#4,b4,d5] e3@2 [b4,d5] ~ e3@2 [g#4,b4,d5] ~, ~@5 g#4 ~@2", // G#dim Bm G#dim
  AZ: "[d3@4 ~@2 d3 ~ d3@8 [f#3,c#5]@16 e3@5 ~ e3@6 ~@2 e3 ~ e3@2 g#4@2 e3@2 g#4 ~ [e3,e5]@2 ~@2 e3@2 b3 ~ d3 ~@12 d3 ~@2 [f#3,c#5,f#5]@16, a4@28 ~@4 b4@29 ~@3 [d5,f#5]@16 ~@16, [d5,a5]@16 e5@33 ~ d5@4 ~@10 a5@31 ~, ~@32 g#4@17 ~@7 g#4 ~ [g#4,d5]@4 a4@33 ~]/6", // F#5 E F#5 D D5 G#dim
  BA: "[b4@16 ~@2 [a4,d5]@4 [d5,d#5] ~ e3@2 ~@2 [e3,b4]@4, e5@21 ~ e5@10, e3@15 ~ e3@6 b4@4 d5@5 ~]/2", // D5 D#maj7 E5
  BB: "[~@4 d3@5 f#5@3 d3@2 ~@2 [c#5,e5]@18 a3@2 [e3,b4,e5]@2 b3@2 d5@2 [b4,e5]@2 e3@2 b4@2 ~@2 b4@2 [b4,d5,a5]@2 a4@2 e3@2 ~@2 e3 ~ e3 ~, a4@28 ~@12 a4 ~@5 d#5 ~@7 d5 ~@3 [b4,d5]@5 ~, d5@8 ~@15 e5@3 ~ e5@5, d4@8 ~@8 a3@7 ~@19 b3 ~@5 e3@4 ~@12]/4", // C#m E5 Bm7 Bm
  BC: "[d3@4 ~@4 d3@2 ~@4 d5 ~ [c#5,e5]@14 e3 b3 [e3,e4,e5,b5]@8 [d4,a4,f#5,a5]@7 b3, a4@29 ~@2 b4@9 ~@8, f#5 ~@2, d5@14 ~@26 d5@5 ~@3, ~@3 d3 f#3@3 ~@5]/3", // C#m E5 D
  BD: "[e3,e4,b4,e5,g#5]@2 [c5,d5] [g4,a4,b4] [c4,d4,e4,f4] [g3,a3,b3] ~@10, f#5 ~@15", // E Csus2 G Dm7 G
  BE: "~@2 e4 ~ [b4,e5]@3 d5 e3 ~ [b4,e5] ~ b3 ~ [b4,e5] ~, e3@4 d5 ~@11", // E5
  BF: "~@2 e4 ~ [b4,e5]@2 e3@2 [g3,b4]@4 [f#3,c#5]@4, e3@4 ~@2 e4 ~ d5@3 ~@5", // E5 G F#5
  BG: "[e3@3 e4 [b4,e5]@3 [b4,e5] e3@2 [b4,e5] ~ e3 ~ b4@2 e4@2 b4 ~ e5@2 e3@2 [g3,b4,d5]@3 ~ [f#3,c#5]@4, ~@4 d5 ~@9 [e3,e5]@6 b4 ~@11]/2", // E5 G F#5 E
  BH: "~@2 e4@2 [b4,d5,e5]@3 [b4,d5,e5] e3@2 [b4,d5,e5] ~@3 [e3,b4,d5,e5] ~, e3 ~@3", // E7
  BI: "~@2 e4 ~ [b4,d5] ~ e3 b4 [g3,b4,d5]@4 [f#3,c#5]@4, e3@2 e5 ~@5", // Bm G F#5
  BJ: "~@2 e4 ~ [b4,e5]@2 ~ [b4,e5] e3@2 [b4,e5] ~ e3 ~ [b4,e5] ~, e3 ~@3", // E5
  BK: "~@2 e4@2 [b4,e5] ~@2 b4 [g3,b4,d5]@4 [f#3,a4,c#5]@4, e3@2 ~ e3 ~@4", // E5 G F#m
  BL: "~@2 e4@2 [b4,e5]@2 ~ [b4,e5] e3@2 [b4,d5,e5] ~ b3 ~ [b3,b4,e5] ~, e3 ~@3", // E5 E7 E5
  BM: "~@2 e4@2 [b4,e5]@2 ~ [b4,e5] ~@2 [b4,e5] ~ e4 ~ [e3,b4,e5] ~, e3 ~ e3 ~", // E5
  BN: "~@2 [b4,e5] ~ e4 [b4,e5] ~ b4 [g3,b4,d5]@4 [f#3,a4,c#5]@4, e3@5 ~ e3@2 ~@8", // E5 G F#m
  BO: "~@2 e4@2 [b4,e5]@3 e5 ~@2 [b4,e5] ~ e4 [b4,e5] b3 e4, e3 ~ e3 ~", // E5
  BP: "b4!2 e4 [b4,e5] ~ e4 [b4,e5]@2 [g3,b4,d5]@3 ~ [f#3,a4,c#5]@4, [e3,e5]@3 ~ e3@4 ~@8", // E5 G F#m E
  BQ: "~@2 e4@2 [b4,e5]@2 ~ [b4,e5] ~ b4 [b4,e5] ~ e4 ~ [b4,e5] ~, e3@2 ~@2 e3 ~@3", // E5
  BR: "~@2 e4@2 [b4,e5]@2 e3 b4 [g3,b4,d5]@4 [f#3,a4,c#5]@4, e3 ~@3", // E5 G F#m
  BS: "e3@2 [d4,e4] b4 [d#5,f#5] ~@3 e3@2 e4 ~ [e5,a5]@2 [b3,b4,e5,b5] ~, ~@4 b5@7 ~@5, ~@5 e5@7 ~@4, ~@8 b4 ~ b4@4 ~@2", // Dsus2 D#m A5 E5
  BT: "e3@2 e4 b4 [e5,b5] ~@2 [e4,a4] d5@3 ~ [f#3,c#5]@3 ~, ~@4 b4@2 e3@2 a4 ~@7", // E5 A5 F#5
  BU: "f#3 ~ e4@2 b3 ~ [b3,e5,g#5,a#5] ~ e3@2 e4 ~ [a5,a#5] b3 [b3,g#5] ~, e3@4 ~@2 d6@6 d6@3 ~, ~@7 b5@4 ~@5, ~@7 e5@2 ~ e5@6", // E A#maj7 E
  BV: "~@2 e4 b4 [b3,b4,e5] ~ e3 ~ [g3,b4,d5]@4 [f#3,a4,c#5]@3 ~, e3 ~@3", // E5 G F#m
  BW: "[e3@2 e4@2 [a#3,a#5,d6] ~ b3 e5 e3@2 [e5,b5,e6] ~ e4 ~ [e5,b5]@2 ~ e5 ~@2 [e5,b5,c6] ~ e4 b4 [g3,b4,d5]@4 [f#3,c#5]@3 ~, d3 ~@3 [e5,e6]@3 ~@7 e3@6 ~@2 e3@2 ~@8, ~@5 b5@3 ~@6 e6 ~ e4@4 b3@2 ~@10]/2", // A# E5 Cmaj7 G F#5 E
  BX: "~@2 e4@2 [d5,e5,f5] ~ b3 ~ [d5,e5,b5] ~ e4 ~ b3 ~ [b3,d5,e5,f5,b5,c6] ~, e3@2 b5 ~ e3 ~@3", // Dm E7 Bdim
  BY: "e3@2 e4@2 [d5,e5,b5] ~ [b3,b4] ~ [g3,d5]@4 [f#3,c#5]@4, ~@8 [g#3,d#5] ~@7", // E7 B G5 F#5 G#5
  BZ: "[[e3,e4,b4,e5]@19 [c5,d5] [d4,e4,f4,g4,a4] [f3,g3,a3,b3,c4] [b2,c3,d3,e3] ~@9]/2", // E5 Csus2 Dm F Cmaj7
})).s("gm_rock_organ").gain(0.3)

// other · overdriven guitar · "EL GUITAR2"
const overdriven_guitar = note("<~@5 A@22 B ~@9 A@18 B ~@17 A@14 B ~@17 A@24 ~>".pickRestart({
  A: "[~@8 g#3@2 a3 ~ g#3 ~ e3@8 ~@10]/2", B: "~@8 g#3@2 a3 ~ g#3 ~@3",
})).s("gm_overdriven_guitar").gain(0.3).pan(0.7)

// chords · electric guitar jazz · "RT GUITAR"
const electric_guitar_jazz = note(`<
  ~@4 A@24 ~@2 A@2 ~@4 A@20 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@4 A@16 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@4 A@24 ~@2
>`.pickRestart({
  A: "~@4 [g#3,d4,e4]@2 ~ [d4,e4] ~@2 [d4,e4]@2 ~@4, ~@7 g#3@5 ~@4", // E7 Dsus2
})).s("gm_electric_guitar_jazz").gain(0.29).pan(0.2)

// drums · kick
const kick = s("bd").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 A B A B A B A C 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 C 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 C 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 ~
>`.pickRestart({
  A: "x!2", B: "x ~@3 x!2 ~ x", C: "x",
})).gain(0.54)

// drums · snare
const snare = s("sd").struct("<A@3 B A@7 C A@23 D A@31 E A@3 ~ A@23 F A@3 G A@3 D A@7 G A@11 H A@3 F ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@4 x!2 ~ x ~ x ~", C: "~@2 x ~ x!2 ~@2 x ~@3 x ~@3", D: "~@10 x ~ x ~ x!2",
  E: "~@4 x ~@5 x ~ x!3 ~", F: "~@2 x ~@3 x!2", G: "~@4 x ~@5 x ~ x ~ x!2", H: "~@4 x ~@2 x ~@2 x ~ x!4",
})).gain(0.6)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@7 A ~@3 A ~@7 A ~@7 A ~@3 B ~@7 A ~@7 C ~@7 D ~@3 A ~@3 E ~@7 D ~@15 B ~@7 F ~@6 G ~@6 D ~@5 H ~@11 I ~ J
>`.pickRestart({
  A: "~@7 x", B: "~@12 x ~ x!2", C: "~@10 x ~ x ~ x!2", D: "~@6 x!2", E: "~@12 x!3 ~", F: "~@13 x!2 ~", G: "~@2 x!2",
  H: "~@15 x", I: "~@2 x!3 ~ x!2", J: "~@11 x ~@4",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<[x!7 ~]!35 ~ [x!7 ~]!35 ~ [x!7 ~]!31 ~ [x!7 ~]!24 ~@2>").gain(0.42)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@7 A ~@3 B ~@7 C ~@7 D ~@3 E ~@7 F ~@15 G ~@3 H ~@3 I ~@6 J K ~@7 B ~@7 G ~@7 L ~@6 M ~@6 N ~@5 O ~@3 P ~@7 Q ~ R
>`.pickRestart({
  A: "~@5 x!3", B: "~@13 x ~@2", C: "~@10 x ~ x!2 ~@2", D: "~@5 x!2 ~", E: "~@2 x ~@2 x ~@2", F: "~@5 x ~@2",
  G: "~@8 x ~@2 x ~@4", H: "~@3 x", I: "~@5 x!2 ~ x ~@7", J: "~ x ~ x", K: "~@9 x!2 ~@5",
  L: "~@2 x ~@3 x!2 ~@2 x ~ x ~@3", M: "x!6 ~ x", N: "~@6 x!3 ~ x ~@5", O: "~@7 x", P: "~@13 x!2 ~", Q: "x ~ x!4 ~@2",
  R: "~@10 x!2 ~@4",
})).gain(0.48)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@31 A ~@7 B ~@19 C ~@27 D ~@42>".pickRestart({
  A: "~@9 x ~@6", B: "~@3 x", C: "~@7 x", D: "~@5 x ~@2",
// … 78 more lines

More by Zucchero