Strudelify

Giulio Cesare

Antonello Venditti

KeyB majorTempo86 bpm
0:00/0:00
// Giulio Cesare — Antonello Venditti
// 86 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 9 alto sax (copy of ch 5 alto sax)
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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.

// chords · piano
const piano = note(`<
  A@2 B C D E F C G H I H I H I H J K L M N O P E F C G Q R S T S G S U K L M N V P W X@3 Y Z@2 AA AB AC AD AE AF AG AH
  AI AJ AK AL AK H AM E B C AN@2 R S T S G S U K L M N V P W X@3 Y Z@2 AA AB AC AD AE AF AG AH AG AH AO AJ AK AL AK H AM
  AP W AQ AR AS AT AU AV@4 AW AU AV@4 AW AX
>`.pickRestart({
  A: "[~ [b1,c#4,d#4], ~@15 [f#4,b4]@17]/2", // B B5
  B: "~@3 [f#3,a#3,c#4] ~@2 [g#1,g#3,b3,d#4]@10, g#1@5 ~@11, [d#3,g#3,b3,d#4]@2 d#3@3 d#3@11, ~ g#2@2 ~ g#2@12", // F# G#m
  C: "[e1,e2,e3,g#3,b3] [f#1,f#2,f#3,a#3,c#4]", D: "[b1,b2,f#3,b3,d#4]@15 ~",
  E: "~@3 [f#3,a#3,c#4] ~@2 [b1,f#3,b3,d#4]@10, b1@5 ~@11, [d#3,f#3,b3,d#4]@2 d#3@3 d#3@11, ~ f#2@2 ~ f#2@12", // F# B
  F: "~@3 [f#3,a#3,c#4] ~@2 [g#1,g#3,b3,d#4]@10, [g#1,g#3,b3,d#4] ~@3, d#3@2 d#3@3 d#3@11, ~ g#2@2 ~ g#2@12", // F# G#m
  G: "[b1,b2,f#3,b3,d#4]", H: "[e2,g#3,b3,e4]", I: "[b1,b3,c#4,f#4]", J: "[b1,b3,c#4]@12 ~ c#4 [f#3,a#3]@2, f#4@13 ~@3",
  K: "[g#1,g#3,b3,d#4]@12 ~ [a#1,f#3,a#3,c#4]@3", L: "[b1,f#3,b3,d#4]", M: "[g#1,g#3,b3,d#4]@13 [a#1,f#3,a#3,c#4]@3",
  N: "[f#3,b3,d#4], b1@7 ~", O: "[e1,e3,g#3,b3]", P: "[f#1,f#3,a#3,c#4]", Q: "f#7@6 ~@7 b4@3, [e2,e3], ~@3 g#4",
  R: "[b1,b2,f#3,b3,c#4]", S: "[e2,e3,g#3,b3,e4]", T: "~ f#5 d#5@14, [b1,b2], c#5 ~@3",
  U: "c#4@3 f#4@3 b3@10, [b1,b2]@15 ~", V: "g#3@12 ~ g#3@3, [e1,e3,b3]@15 ~",
  W: "[f#3,b3,d#4]@2 b2 [f#3,a#3,c#4] ~@2 [f#3,b3,d#4]@9 ~, b1@7 ~, ~@5 b2@9 ~@2", // B F# B
  X: "[[g#3,b3,d#4]@2 g#2 [g#3,a#3,c#4] ~@2 [g#3,b3,d#4]@8 ~@2 [e1,e2,d#4]@8 b3@2 a#3 g#3@2 a#3@2 ~ [b1,b2]@15 ~, g#1@15 [g#3,b3]@7 ~@9 b3@15 ~@2, ~@5 g#2@11 ~@8 [f#1,f#2]@8 ~@16]/3", // G#m A#m7 G#m Emaj7 B G#m F#
  Y: "[f#1,f#2,c#3,f#3,a#3]@6 ~@2 [f#1,f#2,d#3,f#3,b3] ~ [f#1,f#2,c#3,f#3,a#3]@2 ~ [f#1,f#2,d#3,f#3,b3]@2 ~", // F# B F# B
  Z: "[[f#1,c#3,f#3,a#3]@3 ~ a#3 b3 [c#3,f#3,a#3] ~ [e1,e2,e3,g#3]@3 [e1,e2,f#3,a#3]@2 ~ [e1,e2,g#3,b3]@17 ~, f#2 ~@2 [f#1,f#2]@4 ~@25, ~@2 [c#3,f#3] ~@13]/2", // F# E F#7 E F# F#5
  AA: "~@8 [f#1,f#2,c#3,f#3]@7 ~, ~@8 a#3@5 ~@3", // F#5
  AB: "[f#1,f#2,d#3,f#3,b3] ~ [f#1,f#2,c#3,f#3,a#3]@2 ~ [f#1,f#2,d#3,f#3,b3]@2 ~ [f#1,c#3,f#3,a#3]@3 ~ a#3 b3 [c#3,f#3,a#3] ~, ~@8 f#2 ~@2 [f#1,f#2]@4 ~, ~@6 [c#3,f#3] ~", // B F# B F# F#5
  AC: "[e1,e2,e3,g#3]@3 [e1,e2,f#3,a#3]@2 ~ [g#3,b3]@3 ~@3 g#3@3 ~, ~@3 [e1,e2]@5, ~@9 g#3@2 e4@4 ~, ~@5 b3 ~@2", // E F#7 G#m E
  AD: "[f#3,b3,d#4]@3 [b3,d#4,f#4]@3 [d#4,f#4,b4]@8 ~@2, [b1,b2]", // B
  AE: "[c#4,e4,g#4]@3 [c#4,e4]@9 [c#2,c#4] [d#2,d#4]@3, [c#2,c#3]@5 ~@3, ~@3 g#4@11 ~@2", // C#m C# D# C#
  AF: "[e2,b3,e4,g#4]@7 ~ [d#2,b3,d#4,f#4]@8", AG: "[c#2,c#4,e4,g#4]@9 ~ [c#2,g#3,c#4,e4]@3 [d#2,a#3,d#4,f#4]@3",
  AH: "[e2,b3,e4,g#4] [d#2,b3,d#4,f#4]", // E B
  AI: "[c#2,c#4,e4,g#4]@8 ~ c#4 d#4 e4@2 ~ c#3@2, ~ c#2, ~@8 c#3@3 c#4@5, ~@13 [d#4,g#4]@3", AJ: "[b2,b3,d#4,f#4]@15 ~",
  AK: "[g#2,g#3,b3,d#4]", AL: "[b2,b3,d#4,f#4]", AM: "[f#2,a#3,c#4,f#4]",
  AN: "[[b1,b2,f#3,b3,d#4]@15 ~ [e7,f#7]@6 ~@7 b4@3, ~@15 b6@6 ~@7 g#4@4, ~ [e2,e3]]/2", // B Esus2 E
  AO: "[c#2,c#4,e4,g#4]@8 ~ c#4 d#4 [c#4,e4]@2 [d#4,g#4]@3, ~ [c#2,c#3]", // C#m G#5 C#
  AP: "[g#3,b3,d#4]@2 ~ [g#3,a#3,c#4] ~@2 [g#3,b3,d#4]@10, g#1@7 ~, ~@2 g#2@2 ~ g#2@11", // G#m A#m7 G#m
  AQ: "[g#3,b3,d#4]@2 g#2 [g#3,a#3,c#4] ~@2 [g#3,b3,d#4]@8 ~@2, g#1@7 ~, ~@5 g#2@9 ~@2", // G#m A#m7 G#m
  AR: "[f#3,b3,d#4]@2 b2 [f#3,a#3,c#4] ~@2 [f#3,d#4]@9 ~, b1@7 ~, ~@5 b2@9 ~@2, ~@6 b3 ~@9", // B F# D#m
  AS: "[g#3,b3,d#4]@2 g#2 [g#3,a#3,c#4] ~@2 [g#3,b3,d#4]@8 ~ [g#3,b3], g#1@7 ~, ~@5 g#2@9 ~@2", // G#m A#m7 G#m
  AT: "[e2,e4]@9 ~ [g#3,b3,e4] ~ e2 ~ e2@2, e1@7 ~, [g#3,b3] ~@8 e2@2 [g#3,b3]@4 ~, ~@11 f#4@2 e4@2 ~", // E G#m
  AU: "~@4 f#2@4 ~@2 [a#3,c#4] [b3,c#4,f#4] f#2 [a#3,c#4,f#4]@2 ~, f#1@15 ~, [a#3,c#4,f#4]@9 f#2@2 ~@5", // A#m Bsus2 F#
  AV: "[[g#3,b3,d#4]@2 g#2 [g#3,a#3,c#4] ~@2 [g#3,b3,d#4]@8 ~ b3 [f#3,d#4]@2 b2 [f#3,a#3,c#4] ~@2 [f#3,d#4]@9 ~, g#1@7 ~ b1@7 ~, ~@5 g#2@9 ~ g#3@7 b3 ~@9, ~@16 b3 ~@4 b2@9 ~@2]/2", // G#m A#m7 G#m D#m F# D#m
  AW: "[e2,g#3,b3,e4]@9 ~ [g#3,b3,e4] ~ e2 ~ e2@2, e1@7 ~, ~@9 e2@2 [g#3,b3]@4 ~, ~@11 f#4@2 e4@2 ~", // E G#m
  AX: "~@4 f#2@4 ~@2 [a#3,c#4] [b3,c#4,f#4] f#2 ~@3, f#1@15 ~, [a#3,c#4,f#4]@9 f#2@2 ~@5", // A#m Bsus2 F#
})).s("gm_piano").gain(0.33).pan(0.4)

// bass · fretless bass
const bass = note(`<
  ~@23 A B C A D E F G H I J K L K L M N O P Q R S T U V W X V Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN D AO AP AQ
  AR AS D K AT AU AT M AV AW AX Q R S T U V W X V Y Z AA AB AA AB AC AD AE AF AG AH AI AJ AY AX Q AX Q AZ BA AY AX Q AX
  AZ BA AY AX Q AX AZ BB
>`.pickRestart({
  A: "b1@15 ~", B: "g#1", C: "e1 f#1", D: "e1", E: "b1", F: "e1@13 e1 f#1 g#1", G: "b1@12 ~ b1 d#1@2",
  H: "e1@12 ~ b1 e1 f#1", I: "b1@11 ~ b1@4", J: "e1@10 ~ d#1 e1 f#1 b1 c#2", K: "b1@13 b2@2 a#2",
  L: "g#2@6 ~ g#2 g#1@4 ~@2 a#1 ~", M: "b1@12 ~ b1 g#1 f#1", N: "e1@2 ~ e1 e1@2 ~@2 e1@2 ~ e1 e1@2 ~@2",
  O: "f#1@2 ~ f#1 f#1@2 ~@2 f#1@2 ~ f#1 f#1@2 ~@2", P: "b1@2 ~ b1 b1@2 ~ f#1 b1@2 ~ b1 b1@2 ~ f#1",
  Q: "g#1@3 g#1 g#1@3 f#1 g#1@2 ~ g#1 g#1@3 d#1", R: "e1@2 ~ e1 e1@3 e1 f#1@2 ~ f#1 f#1@2 ~ f#1",
  S: "b1@2 ~ b1 b1@3 f#1 b1@2 ~ b1!2 a#1 g#1 g1", T: "f#1@2 ~ f#1!3 f#1@2 b1 ~ f#1@3 b1 ~@2",
  U: "f#1@2 ~ f#1!2 g#1 f#1@2 e1@2 ~ e1 e1@3 ~", V: "e1@2 ~ e1 e1@3 ~ e1@2 ~ e1 e1@3 ~",
  W: "e1@2 ~ e1!2 f#1 e1@2 f#1@2 ~ f#1!2 g#1 f#1@2", X: "b1 ~ f#1@3 b1@3 f#1@2 ~ f#1!2 g#1 f#1@2",
  Y: "d#1@2 ~ d#1 d#1@3 ~ d#1@2 ~ d#1 d#1@3 ~", Z: "c#1@2 ~ c#1 c#1@4 c#1 ~@3 c#1 d#1@3",
  AA: "e1@2 ~ e1 e1@4 d#1@2 ~ d#1 d#1@4", AB: "c#1@2 ~ c#1 c#1@3 ~ c#1 ~ c#1@3 d#1@3",
  AC: "e1@2 ~ e1 e1@3 ~ d#1@2 ~ d#1 d#1@4", AD: "c#1@2 ~ c#1 c#1@3 ~ c#1@2 ~ c#1!2 c#1@2 ~",
  AE: "b1@2 ~ b1 b1@2 ~ f#1 b1@2 ~ b1!2 f#1!2 g1", AF: "g#1@2 ~ g#1 g#1@3 d#1 g#1@2 ~ g#1!2 f#1 g#1 a#1",
  AG: "b1@2 ~ b1 b1@3 f#1 b1!2 c#2 d2 d#2 f#1@3", AH: "g#1@2 ~ g#1 g#1@3 d#1 g#1@2 ~ g#1!2 g1 f#1 f1",
  AI: "e1@2 ~ e1 e1@2 ~ e1!3 ~ e1!4 g#1", AJ: "f#1@2 ~ f#1 f#1@2 ~ f#1!3 ~ f#1!2 a#1@3",
  AK: "b1@2 ~ b1 b1@2 f#1 g#1 b1@2 ~ b1!2 f#1!2 g1", AL: "g#1@2 ~ g#1 g#1@3 d#1 g#1@2 ~ g#1!2 d#1 g#1 f#1",
  AM: "e1@2 ~ e1 e1@3 e1 f#1@2 ~ f#1 f#2@4", AN: "b1@2 ~ b1 b1@2 f#1 g#1 b1@2 ~ b1 b1@4", AO: "b1@11 f#1 b1 d#2 e2@2",
  AP: "e2@13 ~ c#3@2, ~@14 b2 ~", AQ: "b2@10 ~ f#3@2 ~ b2 c#3", AR: "e2@3 e2", AS: "b1@11 c#1!2 d#1@3",
  AT: "g#2@6 ~ g#2 g#1@4 ~ g#1 a#1 ~", AU: "b1@12 ~ b2@2 a#2", AV: "e1@7 e1 e1@6 ~ e1",
  AW: "f#1@6 ~ f#1 f#1@2 ~ f#1 f#2@4", AX: "b1@2 ~ b1 b1@3 f#1 b1@2 ~ b1 b1@3 f#1",
  AY: "g#1@2 ~ g#1 g#1@3 ~ g#1@2 ~ g#1!4 a#1", AZ: "e1@2 ~ e1 e1@3 e1 e1@2 ~ e1 e1@3 e1",
  BA: "f#1@2 ~ f#1 f#1@2 ~ f#1 f#1@2 ~ f#1 f#1@2 ~ f#1", BB: "f#1@2 ~ f#1 f#1@2 ~ f#1 f#1@2 ~ f#1 f#1@2 ~@2",
})).s("gm_fretless_bass").gain(0.46)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@5 A@3 ~ A@3 ~ A@3 ~ B ~@5 C@3 ~ C@3 ~ C@3 ~ B ~@5 C@3 ~@13 D@4 ~@2 C@3 ~ E F@2 E@2 F@2 E ~@6 G@3 ~@15 D@4 ~@3 G@17 C
>`.pickRestart({
  A: "b3!2 a#3!2 b3!2 a#3 b3 ~@8", B: "b3 ~@15", C: "b3!2 a#3!2 b3!2 a#3 b3 ~ b3 a#3!2 b3!2 a#3 ~",
  D: "b3 a#3!2 b3!2 a#3!2 b3!2 a#3!2 b3!2 a#3!2 b3", E: "b3!2 a#3!2 b3!2 a#3!2 b3!2 a#3!2 b3!2 a#3!2",
  F: "b3!2 a#3!2 b3!2 a#3!2 b3 a#3!3 b3!2 a#3!2", G: "b3!2 a#3!2 b3!2 a#3 b3 ~ b3 a#3!2 b3!2 a#3!2",
})).s("gm_electric_guitar_muted").gain(0.25).pan(0.8)

// chords · pad warm
const pad_warm = note(`<
  ~ A B@7 C D E D F@4 G@4 H I J@4 K@8 L@2 M@2 N O J@4 P@5 Q R S T S T U V@4 W X@5 K@8 L@2 M@2 N O J@4 P@5 Q R S T S T S
  T U V@4 W Y Z AA@4 Q AB Z AA@2 AC Q AB Z AA@2 AC Q AD
>`.pickRestart({
  A: "~ f#6!15, [f#3,b3,d#4]", B: "f#6!16, [f#3,b3,d#4]", C: "[g#3,b3,e4], f#6 ~@15", D: "[f#3,d#4]", E: "[g#3,e4]",
  F: "[[g#3,e4] [f#3,d#4] [g#3,e4] [f#3,d#4], b3]/4", G: "[g#3 f#3, b3]/2", H: "[g#3,b3]", I: "[f#3,a#3]",
  J: "[f#3@2 ~@2 e3 c#3 d#3@2, b3, d#3 ~, ~@2 g#3@3 f#3@3]/4", K: "[[e3,g#3] [d#3,f#3] [e3,g#3] [d#3,f#3], b3]/4",
  L: "[g#2 f#2, b2]/2", M: "[g#2@16 f#2@15 ~, b2@31 ~]/2", N: "[g#2,b2]", O: "[f#2,a#2], g#2 ~@15",
  P: "[[a#3,c#4]@8 [b3,d#4]@2 [a#3,c#4]@3 [b3,d#4]@3 [a#3,c#4]@8 [e3,g#3,b3]@32 [a#3,c#4]@8 [b3,d#4]@2 [a#3,c#4]@3 [b3,d#4]@3 [a#3,c#4]@8, f#3@3 ~@4 f#3@3]/5", // A#m B A#m B A#m E A#m B …
  Q: "[e3,g#3,b3]", R: "[f#3,b3,d#4]", S: "[e3,g#3,c#4] ~", T: "[e3,g#3] [d#3,f#3], b3", U: "[e3,g#3,c#4]",
  V: "[f#3 g#3 f#3 g#3, [b3,d#4]]/4", W: "[g#3,b3,e4]",
  X: "[[a#3,c#4]@2 ~@4 e3 [a#3,c#4] [b3,d#4]@2, f#3@4 g#3@3 f#3@3, ~@2 b3@5 ~@3, ~ d#4@2 ~@2]/5", Y: "[f#3,a#3,c#4]",
  Z: "[g#2,b2,d#3]", AA: "[f#3 g#3, [d#3,b3]]/2", AB: "[c#3,f#3,a#3]", AC: "[d#3,f#3,b3]", AD: "[c#3,f#3,a#3]@3 ~",
})).s("gm_pad_warm").gain(0.04).pan(0.4)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~ A@8 ~ B@2 C ~ B@2 C D@2 E@2 ~@2 A@4 ~ B@2 C ~ B@2 C D@2 E@2 ~@2 A@4 ~@18 A@4 ~ B@2 C ~ B@2 C D@2 E@2 ~@2 A@4 ~@20
  F@4 ~@3 F@4 ~@2 F@4 ~@2
>`.pickRestart({
  A: "[~@8 c#4@3 f#4@3 b3@10 c#4@3 f#4@3 b3@9 ~ b3@2 a#3 g#3 ~ a#3 ~ b3@16 ~]/4",
  B: "[~@14 e4@13 ~@5, ~@2 b4@5 ~, ~@11 f#4@16 ~@5]/2", C: "~@6 b3@9 ~, c#4@15 ~, ~@3 f#4@12 ~",
  D: "[~@2 b3@3 a#3@3 b3@24]/2", E: "[~@2 b3@3 a#3@3 b3@20 ~@4]/2", F: "[~@8 c#4@3 f#4@3 b3@10 ~@8]/2",
})).s("gm_electric_guitar_jazz").gain(0.17).pan(0.8)

// other · glockenspiel
const glockenspiel = note(`<
  ~ A B C ~ A B C ~@9 D@2 E ~@3 A B C ~@9 E ~ E ~@3 F@4 ~@2 G H ~@14 F@4 ~@8 D@2 E ~@3 F@4 ~@2 G H ~@35
>`.pickRestart({
  A: "d#6 ~@10 f#6 ~@2 d#6 ~", B: "~@11 f#6 ~@2 d#6 ~", C: "~@15 d#6", D: "[~@2 b6@3 a#6@3 b6@24]/2",
  E: "~@2 b6@3 a#6@3 ~@8", F: "[~@8 c#6@3 f#6@3 b5@10 c#6@3 f#6@3 b5@9 ~ b5@2 a#5 g#5 ~ a#5 ~ b5@16 ~]/4",
  G: "e6 g#5 b5 e6 d#6 g#5 b5 d#6 c#6 e5 g#5 c#6 b5 e5 g#5 b5", H: "e6 g#5 b5 e6 d#6 b5 d#6 b5 c#6@4 ~@4",
})).s("gm_glockenspiel").gain(0.11).pan(0.7)

// other · glockenspiel · soft notes
const glockenspiel_soft = note("<~ A@2 B ~ A@2 B ~@11 C@2 ~@2 A@2 B ~@9 D@2 C@2 ~@38 C@2 ~@45>".pickRestart({
  A: "~@8 c#6 ~@7", B: "~@8 d#6 ~ c#6 b5 ~ c#6 ~@2", C: "[~@2 b6@5 ~]/2", D: "[~ b6@3]/2",
})).s("gm_glockenspiel").gain(0.05).pan(0.7)

// other · epiano1
const epiano1 = note("<~ A B C D A B E F G H I J G K G H L M N O P Q ~@4 R@8 ~@32 R@8 ~@43 S@4 ~@2>".pickRestart({
  A: "b2", B: "g#2", C: "e2 f#2", D: "b2@15 ~", E: "e2@7 ~ f#2@8", F: "b2@12 ~@3 b4",
  G: "~ b4@2 a#4@2 b4@2 f#4@2 b4 ~ a#4 ~ b4@2 f#4, e3@15 ~", H: "~ b4@2 a#4@2 b4@2 f#4@2 b4 ~ a#4 ~ b4@2 f#4, b2@15 ~",
  I: "d3 b4@2 a#4@2 b4@2 f#4@2 b4 ~ a#4 ~ b4@2 f#4, e3@15 ~",
  J: "~ b4@2 a#4@2 b4@2 f#4@2 b4 ~ a#4 ~@2 f#2 f#4, b2@13 b4@2 ~",
  K: "~ b4@2 a#4@2 b4@2 f#4@2 b4 ~ a#4 ~ b4@2 f#4, b2@7 ~", L: "g#2@12 ~ g#2 a#2 ~", M: "b2@7 ~", N: "g#2@12 ~ a#2@3",
  O: "b2@12 ~ b2@2 b2", P: "e2@15 ~", Q: "f#2", R: "~ b4@2 a#4@2 b4@2 f#4@2 b4 ~ a#4 ~ b4@2 f#4",
  S: "[~@8 c#4@3 f#4@3 b3@10 ~@8]/2",
})).s("gm_epiano1").gain(0.16).pan(0.2)

// other · marimba
const marimba = note("<~@5 A@3 ~ A@3 ~ A@3 ~@7 A@3 ~ A@3 ~ A@3 ~@71 B ~ B ~@3 C B ~ B ~@2 C B ~ B ~@2 D>".pickRestart({
  A: "~@9 b3 a#3!2 b3!2 a#3 ~", B: "~@8 c#6 ~@2 f#6 ~@2 b5 ~", C: "~@8 f#6 ~ e6 d#6 ~ c#6 ~ b5",
  D: "~@8 f#6 ~ e6 d#6 ~@4",
})).s("gm_marimba").gain(0.11).pan(0.3)

// chords · overdriven guitar
const overdriven_guitar = note("<~@45 A B@3 C D E F G H G I ~@28 A B@3 C D E F G H G H G I ~@25>".pickRestart({
  A: "[f#2,c#3,f#3]@7 ~ [b2,d#3,b3] ~ [f#2,c#3,f#3]@2 ~ [b2,d#3,b3]@3", // F#5 B F#5 B
  B: "[[f#2,c#3,f#3]@7 ~ [e2,e3]@3 [f#2,f#3]@3 [g#2,g#3]@10 [e4,g#4]@3 [f#4,a#4]@3 [g#4,b4]@9 ~ [f#2,c#3,f#3]@7 ~]/3", // F#5 E F# G# E F# G#m F#5
  C: "[b2,d#3,b3] ~ [f#2,c#3,f#3]@2 ~ [b2,d#3,b3]@3 [f#2,c#3,f#3]@7 ~", D: "[e3,g#3]", E: "[d#3,f#3]",
  F: "[c#3,e3]@8 ~@4 [c#3,e3] [d#3,f#3]@3", G: "[e3,g#3] [d#3,f#3]", H: "[c#3,e3]@8 ~@2 [c#3,e3]@3 [d#3,f#3]@3",
  I: "[c#3,e3]", // C#m
})).s("gm_overdriven_guitar").gain(0.29).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~@26 A B@18 C@7 D C E C@5 F C@5 F B@18 C@7 D C E C E C@5 F C@3 B@6 C B@5 C B@5
>`.pickRestart({
  A: "~@8 x ~@2 x ~ x ~@2", B: "x ~@7 x ~@2 x ~@4", C: "x ~@2 x ~@3 x!2 ~@2 x ~@3 x",
  D: "x ~@2 x ~@3 x!2 ~@2 x ~ x ~@2", E: "x ~@2 x ~@3 x!2 ~ x ~@2 x ~@2", F: "x ~@2 x ~@3 x!2 ~@2 x ~@2 x ~",
})).gain(0.52)

// drums · rim
const rim = s("rim").struct("<~@20 A@6 B@15 A@4 ~@22 B@14 A@4 ~@21 A@6 ~ A@5 ~ A@5>".pickRestart({
  A: "~ x ~ x ~@4", B: "~ x ~ x ~@2 x ~",
})).gain(0.35)

// drums · snare
const snare = s("sd").struct(`<
  ~@41 A@3 B A@11 C A@6 D@2 A@2 E ~ E ~ E ~ E ~ E ~ E ~@3 D@2 A B A@13 C A@25
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@6 x!2 ~ x!2", C: "~@4 x ~@7 x!4", D: "~ x!3", E: "~ x",
})).gain(0.35)

// drums · clap
const clap = s("cp").struct("<~@26 [~@3 x]!15 ~@26 [~@3 x]!14 ~@43>").gain(0.29)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@16 B A@17 C A@4 D E D@3 F@7 G F G F@5 H F@5 H A@2 I D@5 C A@4 D E D@3 F@7 G F G F G F@5 H F@3 E D@5 F E D@4 F E
  D@4
>`.pickRestart({
  A: "x!16", B: "~@2 x!14", C: "~ x!15", D: "x!14 ~@2", E: "~ x!13 ~@2", F: "~ x!3 ~ x!3 ~ x!3 ~ x!3",
  G: "~ x!3 ~ x!3 ~@8", H: "~ x!3 ~ x!3 ~ x!5 ~@2", I: "x!12 ~ x ~@2",
})).gain(0.29)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@40 A@4 ~ B C D C D B D E B E D@2 B D@2 F B D B D@2 F ~@2 G A@5 ~@5 A@5 B C D C D B D E B E B E D@2 B D@2 F B D@2 A@6
  D A@5 D A@5
>`.pickRestart({
  A: "~@7 x", B: "~ x!3", C: "x!2 ~ x", D: "x!4", E: "x!3 ~", F: "x ~ x ~ x ~@2 x", G: "~@6 x!2",
})).gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  ~@35 A ~@5 A ~@3 A B ~ B ~ A ~ C A D A ~ A ~@3 A ~ A ~@11 A ~@5 A ~@3 A B ~ B ~ A ~ C A D A D A ~ A ~@3 A ~@2 A ~@6 A
// … 38 more lines

More by Antonello Venditti