Strudelify

Lei

Tozzi

KeyG majorTempo79 bpm
0:00/0:00
// Lei — Tozzi
// 79 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (3/4 at bar 1, 4/4 at bar 7, 3/4 at bar 70) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 87 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(79/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 · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A B C D ~@8 E F G@2 H I J K L M N O P Q M R P S E F G@2 H I J K E F G@2 H I J K L M N O P Q T R P S E F G@2 E F G@2
  H I J K U@8 V@6 W@4
>`.pickRestart({
  A: "~ [d#2,f3,g3,a#3,d4]@31", B: "~ [f2,g3,a3,c4,d4]@31", C: "[d#2,f3,g3,a#3,d4]", D: "[f2,g3,a3,c4,d4]",
  E: "[g3,b3,d4] [f#3,a3,d4], g2", F: "[a3,b3] [g#3,b3], [e2,e3]", G: "[a3 g#3 g3 [f#3,a3,d4], [c4,e4]@3 ~, a2 d2]/2",
  H: "[g2,g3] [f2,f3], [b3,d4]", I: "a3 g#3, [e2,e3,b3]", J: "[a2,a3,c4,e4]", K: "g3 f#3, [d2,a3,d4]",
  L: "[d#2,g3,d4] [c2,g3,d#4], a#3@7 ~", M: "[a#3,c4,f4] [a3,c4,f4], f2", N: "[d2,a3,c4,f4]", O: "[g2,f3,a#3,d4]",
  P: "[e2,a#3,d4,g4]", Q: "[d#2,g3,c4,d#4]", R: "c4 a#3, [a#2,f3,d4]", S: "[d#2,a#3,d4,g4]",
  T: "[a#3,c4,f4] [a3,c4,f4], f2@31 ~", // A#sus2 F
  U: "[[d#2,f3,g3,a#3,d4]@31 [f2,g3,a3,c4,d4]@32 [d#2,f3,g3,a#3,d4]@31 [f2,g3,a3,c4,d4]@32 [d#2,f3,g3,a#3,d4]@32 [f2,g3,a3,c4,d4]@31 [d#2,f3,g3,a#3,d4]@32 [f2,g3,a3,c4,d4]@31 [d#2,f3,g3,a#3,d4]@4]/8", // D#maj7 Dm7 D#maj7 Dm7 D#maj7 Dm7 D#maj7 Dm7 …
  V: "[~@28 [f2,g3,a3,c4,d4]@32 [d#2,f3,g3,a#3,d4]@31 [f2,g3,a3,c4,d4]@32 [d#2,f3,g3,a#3,d4]@31 [f2,g3,a3,c4,d4]@32 [d#2,f3,g3,a#3,d4]@6]/6", // Dm7 D#maj7 Dm7 D#maj7 Dm7 D#maj7
  W: "[~@26 [f2,a3,c4,d4]@31 ~ d4@53 ~@17, ~@26 g3@85 ~@17, ~@57 a#3@53 ~@18, ~@29 g2@25 ~@10]/4", // Dm7
})).s("gm_string_ensemble_2").gain(0.28).pan(0.4)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@5 A B C@2 D E F G ~@71 H@3>".pickRestart({
  A: "[g3,b3,d4] [f#3,a3,d4], g2", B: "[a3,b3] [g#3,b3], [e2,e3]", C: "[a3 g#3 g3 [f#3,a3,d4], [c4,e4]@3 ~, a2 d2]/2",
  D: "[g2,g3] [f2,f3], [b3,d4]", E: "a3 g#3, [e2,e3,b3]", F: "[a2,a3,c4,e4]", G: "g3 f#3, [d2,a3,d4]",
  H: "[~@26 g4@53 ~@17]/3",
})).s("gm_string_ensemble_2").gain(0.16).pan(0.4)

// bass · electric bass finger
const bass = note(`<
  ~ A B C D ~@8 E F G H I F J H K L M N O P Q R S T U V W X Y Z AA AB AC V W X AD Z AE AF AG AH AI AJ AK AL AM AN S AO
  AP AQ W AR AP V W X AD AS AA AF AT AU@8 AV@8 ~
>`.pickRestart({
  A: "~ d#1@15", B: "~ f1@21 d2@5 ~ f2@4", C: "~ d#1@31", D: "f1", E: "g1@7 e1", F: "e1", G: "a1@7 d1", H: "d1",
  I: "g1@4 f1@3 f1", J: "a1@28 d1@3 ~", K: "d#1@6 g1@2 c2@6 g1 f#1", L: "f1@5 ~ f1 ~ f1@6 f1 a1",
  M: "d2@5 ~ d2 ~ d2@6 a1 d2", N: "g1@10 ~@2 g1@3 ~ g1@12 f1@2 g1@2", O: "e1@11 ~ e1@3 ~ e1@12 e1@4",
  P: "c2@11 ~ c2@3 ~ c2@12 g1@2 c2@2", Q: "f1@11 ~ f1@3 ~ f1@16", R: "a#1@10 ~@2 a#1@3 ~ a#1@12 a#1@2 g1@2",
  S: "e1@11 ~ e1@3 ~ e1@16", T: "d#1@11 ~ d#1@3 ~ d#1@16", U: "g1@11 ~ g1@3 ~ g1@7 ~ b1@4 d2@4", V: "e2@3 b1 e1@2 e2@2",
  W: "a1@11 ~ a1@3 ~ a1@12 g1@2 a1@2", X: "d1@11 ~ d1@3 ~ d1@12 d2@2 d1@2", Y: "g1@12 g1@3 ~ f1@11 ~ f1@4",
  Z: "e1@11 ~ e1@3 ~ e1@12 g#1@2 e1@2", AA: "a1@11 ~ a1@4 a1@12 d1@2 a1@2", AB: "d1@5 ~ d1 ~ d1@2 d2 d1 d2 d1 d1@2",
  AC: "g1@11 ~ g1@4 g1@7 ~ b1@4 d2@4", AD: "g1@12 g1@4 f1@11 ~ f1@4", AE: "a1@11 ~ a1@3 ~ a1@12 d1@2 a1@2",
  AF: "d1@11 ~ d1@3 ~ d1@16", AG: "d#1@3 g1 c2@2 c1@2", AH: "f1@3 c2 f2@2 c2 a1", AI: "d2@11 ~ a1@4 d1@6 ~@2 d1@8",
  AJ: "g1@3 d2 g2 d2 a#1 g1", AK: "e1@3 a#1 e1@2 e1@2", AL: "d#1@3 a#1 d#1@2 d#1@2", AM: "f1@3 c2 f2@2 f2@2",
  AN: "a#1@3 f2 a#1@2 g1@2", AO: "d#1@3 a#1 d#2@2 a#1@2", AP: "g1@11 ~ g1@3 ~ g1@8 b1@4 d2@4", AQ: "e1@3 b1 e1@2 e2@2",
  AR: "d1@12 d1@3 ~ d1@12 d2@2 d1@2", AS: "e1@12 e1@3 ~ e1@12 g#1@2 e1@2", AT: "d#1",
  AU: "[f1@21 d2@5 f2@5 d#1@32 f1@31 d#1@32 f1@21 d2@5 f2@5 ~ d#1@31 f1@32 d#1@31 f1@4]/8",
  AV: "[~@17 d2@5 ~ f2@5 d#1@32 f1@31 d#1@32 f1@21 d2@5 f2@5 d#1@32 f1@32 g1@38]/8",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · lead 3 calliope
const lead_3_calliope = note(`<
  ~@5 A B C D E B F G H I J K L I M N O P Q R S T P U S V H I J K L I M N H I J K L I M N O P Q R S T P U S V H I J K H
  I J K L I M N ~@18
>`.pickRestart({
  A: "[b4,d5] g4 [b4,d5] g4 [a4,d5] f#4 [a4,d5] f#4, g3", B: "[a4,b4] e4 [a4,b4] e4 [g#4,b4] e4 [g#4,b4] e4, e3",
  C: "[c5,e5] a4 [c5,e5] a4 [c5,e5] g#4 [c5,e5] g#4, a3", D: "[c5,e5] g4 [c5,e5] g4 [a4,d5] f#4 [a4,d5] f#4, d3",
  E: "[b4,d5] g4 [b4,d5] g4 [b4,d5] f4 [b4,d5] f4, g3 f3", F: "[c5,e5] a4 [c5,e5] a4 [c5,e5] a4 [c5,e5] a4, a3",
  G: "[a4,d5] g4 [a4,d5] g4 [a4,d5] f#4 [a4,d5] f#4, d3", H: "[b4,d5] g4 [b4,d5] g4 [a4,d5] f#4 [a4,d5] f#4",
  I: "[a4,b4] e4 [a4,b4] e4 [g#4,b4] e4 [g#4,b4] e4", J: "[c5,e5] a4 [c5,e5] a4 [c5,e5] g#4 [c5,e5] g#4",
  K: "[c5,e5] g4 [c5,e5] g4 [a4,d5] f#4 [a4,d5] f#4", L: "[b4,d5] g4 [b4,d5] g4 [b4,d5] f4 [b4,d5] f4",
  M: "[c5,e5] a4 [c5,e5] a4 [c5,e5] a4 [c5,e5] a4", N: "[a4,d5] g4 [a4,d5] g4 [a4,d5] f#4 [a4,d5] f#4",
  O: "[g4,a#4,d5] ~ [g4,a#4,d5] ~ [g4,a#4,d#5] ~ [g4,a#4,d#5] ~", // Gm D#
  P: "[f4,a#4,c5] ~ [f4,a#4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", Q: "[a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~",
  R: "[g4,c5,d5] ~ [g4,c5,d5] ~ [g4,a#4,d5] ~ [g4,a#4,d5] ~", // Gsus4 Gm
  S: "[g4,a#4,e5] ~ [g4,a#4,e5] ~ [g4,a#4,e5] ~ [g4,a#4,e5] ~", // Edim
  T: "[g4,a#4,d#5] ~ [g4,a#4,d#5] ~ [g4,a#4,d#5] ~ [g4,a#4,d#5] ~", // D#
  U: "[d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~", // A#
  V: "[g4,a#4,d5] ~ [g4,a#4,d5] ~ [g4,a#4,d5] ~ [g4,a#4,d5] ~", // Gm
})).s("gm_lead_3_calliope").gain(0.3).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C@2 ~@8 D@4 E@4 F G H I J K L M N O D@4 E@4 P@4 E@4 F G H I J K L Q N O ~@8 E@4 R S T U@2 V W X@7 Y@4
>`.pickRestart({
  A: "~@7 g4@24 ~, ~@4 d4@27 ~", B: "~@3 g4@12 ~, ~@4 d4@27 ~", C: "~@3 g4@12 ~, ~@3 d4@27 ~@2",
  D: "[~@15 a3, g3@16 f#3@15 ~ e3@11 ~ e3@19 ~@9 e4@12 ~@4 e4@12 ~@4 e4@12 ~@12, ~@4 a3@13 ~@3 a3@12 ~@4 a3@8 ~@4 g#3@15 ~ a3@13 ~@3 g#3@16 g3@9 ~@3 g3@8 ~@12, ~@8 b3@13 ~@3 b3@12 ~@4 b3@12 ~@4 b3@12 c4@12 ~@4 c4@12 ~@4 c4@16 ~@12, ~@28 d4@3 ~]/4",
  E: "[~@14 b3@2 ~@11 g4 ~@2 d4@2, g3@15 ~ f3@16 e3@10 ~@2 e3@19 ~@13 a3@17 ~@7 a3@28, ~ a3@3 ~ a3@4 g#3@3 g#3@3 ~ a3@2 e4@3 ~ e4@4 c4@4 ~@2, ~@8 b3@13 ~@3 b3@12 ~@4 b3@12 ~@4 e4@12 c4@12 ~@4 c4@12 g4@8 ~@8 f#4@16]/4",
  F: "~@4 [a#3,d4,g4] ~@3 [a#3,d4,g4] ~@3 [a#3,d4,g4] ~@3 [a#3,d#4,g4]@13 ~@3", // Gm D#
  G: "~@4 [a#3,c4,f4] ~@3 [a#3,c4,f4] ~@3 [a#3,c4,f4] ~@3 [a3,c4,f4]@13 ~@3", // A#sus2 F
  H: "~@4 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4]@15 ~@5", I: "~ c4 ~ a#3, g4@7 ~ g4@8, ~@4 d4@13 ~@3 d4@12",
  J: "~@4 [a#3,d4,g4] ~@3 [a#3,d4,g4] ~@3 [a#3,d4,g4] ~@3 [a#3,d4,g4]@9 ~@7", // Gm
  K: "~@8 a#3@4 ~@4 a#3@13 ~@3, ~ g3@6 ~, ~@3 d#4@4 ~", L: "~@3 f4, ~ a#3@2 f4@2 c4@3, ~ c4 a3@2",
  M: "~@3 a#3@4 ~, a#4@7 ~, ~@4 f4@23 ~@5, ~@2 c4@5 ~",
  N: "~@4 [a#3,d4,g4] ~@3 [a#3,d4,g4] ~@3 [a#3,d4,g4] ~@3 [a#3,d4,g4]@12 ~@4", // Gm
  O: "~@4 [a#3,d4,g4] ~@3 [a#3,d4,g4]@2 ~@2 [a#3,d4,g4]@2 ~@2 [a#3,d4,g4]@15 ~", // Gm
  P: "[~@15 a3, g3@16 f#3@15 ~ e3@11 ~ e3@19 ~@9 e4@12 ~@4 e4@12 ~@4 e4@8 d4@12 ~@4, ~@4 a3@13 ~@3 a3@12 ~@4 a3@8 ~@4 g#3@15 ~ a3@13 ~@3 g#3@16 g3@9 ~@3 g3@8 ~@12, ~@8 b3@13 ~@3 b3@12 ~@4 b3@12 ~@4 b3@12 c4@12 ~@4 c4@12 ~@4 c4@16 ~@12]/4",
  Q: "~@3 a#3@5, a#4, ~ f4@7, ~ c4@3", R: "~@5 g4@24 ~@3, ~@3 d4@27 ~@2", S: "~@5 g4@24 ~@3, ~@2 d4@27 ~@3",
  T: "~ g4@6 ~, ~@2 d4@27 ~@3", U: "~ g4@6 ~, ~ d4@27 ~@4", V: "~@3 g4@24 ~@5, ~ d4@27 ~@4",
  W: "~@3 g4@24 ~@5, d4@27 ~@5",
  X: "[~@2 g4@24 ~@8 g4@24 ~@8 g4@24 ~@7 g4@24 ~@8 g4@24 ~@7 g4@24 ~@8 g4@24 ~@5 d4@3, d4@27 ~@4 d4@27 ~@5 d4@27 ~@5 d4@27 ~@4 d4@27 ~@5 d4@27 ~@4 d4@27 ~@8]/7",
  Y: "[g4@24 ~@7 g4@24 ~@11 c5@47 ~@15, ~@29 d4@27 ~@2 d4@45 ~@25, ~@60 g4@47 ~@21, ~@63 d5@53 ~@12]/4",
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.2)

// other · distortion guitar
const distortion_guitar = note("<~@3 A@2 ~@52 B@4 C@2 D E ~@4 F@3 G@7 H@6 ~@2>".pickRestart({
  A: "[~@11 d5@21]/2",
  B: "[~@4 b4 ~@3 c5 ~@3 d5@4 a4@8 b4@22 ~@2 g#4@4 a4@4 b4@4 c5@8 d5@4 e5@4 b4@8 c5@2 ~@2 c5@15 ~ a4@21 ~@3]/4",
  C: "[~@2 [g4,b4]@2 [a4,c5]@2 [c5,f5] ~ [f#5,a5]@4 [d5,f#5]@2 [e5,b5]@9 ~ [g#5,b5]@3 [a5,c6]@3 [b5,d6]@2]/2", // G Am F5 F#m D E5 G#m Am …
  D: "[b5,e6]@3 [a5,c6] [g#5,b5]@2 [e5,g#5]@2", E: "~@4 [d5,b5]@4 [e5,c6]@2 ~@2 [f#5,d6]@2 ~@2 [b5,e6]@15 ~",
  F: "[~@31 d5@42 ~@23]/3",
  G: "[~@25 f5@3 d5@2 f5@36 ~@17 f5@10 d5@47 f5@3 c5@31 ~@4 a#4@2 c5 ~@2 c5@2 ~@4 a#4@5 g4@25 ~ f4@3 g4]/7",
  H: "[~ d4@21 f4@2 ~ d4@2 ~ c5@26 ~@5 c5@3 a#4@17 ~@4 c5@4 a#4@3 g4@4 a#4@14 ~@4 a4@3 a#4@3 c5@4 a#4@11 c5@5 d5@11 g5@23 ~@20]/6",
})).s("gm_distortion_guitar").gain(0.4).pan(0.6)

// chords · orchestral harp
const orchestral_harp = note("<~ A@5 ~@63 B@5 C@2 D@4 E@2 F@4 ~>".pickRestart({
  A: "[~@5 g3@3 a3@2 a#3@3 ~@2 a3@2 ~ a#3@3 ~@5 a3@3 a#3@2 ~@3 g3@2 a3@3 a#3@3 ~@2 g3@3 a3@2 ~@6 g3@3 a3@2 d4@2 ~@6 g3@3 a3@2 a#3@3 ~@3 a3@2 a#3@3 ~@5 a3@3 a#3@2 ~@3 g3@3 a3@2 a#3@3 ~@5 a3@2 ~@6 g3@3 a3@2 a#3@3 d4@9 ~@25, ~@2 d4@7 ~@4 g3@5 ~@3 d4@7 ~@3 d4@7 ~@4 d4@8 d5@10 g3@4 f4@9 ~@41 c5@15 ~@31, ~@23 g3@5 ~@22 a#3@2 d4@3 a4@10 g4@13 ~@35 d5@15 ~@32, ~@51 c5@11 d#4@3 d4@7 ~@12 d4@7 ~@3 d4@7 ~@4 d4@8 ~@2 d4@3 a4@11 ~@31, ~@53 a#4@10 a3@3 ~@10 g3@5 ~@6 g3@5 ~@16 g3@4 ~ a#3@3 a#4@13 ~@31]/5",
  B: "[~@5 a3@3 a#3@3 ~@2 a3@2 ~ a#3@2 ~@6 a3@2 a#3@3 ~@3 g3@2 a3@3 a#3@2 ~@3 g3@3 a3@2 a#3@2 ~@4 g3@2 a3@3 d4@2 ~ a3@2 ~@5 a3@3 a#3@3 ~@2 a3@2 ~ a#3@3 ~@5 a3@3 a#3@2 ~@3 g3@2 a3@3 a#3@3 ~@2 g3@3 a3@2 ~@6 g3@2 a3@3 a#3@3 d4@2 ~@3 g3@3 a3@2 a#3@3 ~@3 a3@2 a#3@3 ~@5 a3@3 a#3@2 ~@3 g3@2, d4@7 ~@11 d4@7 ~@4 d4@7 ~@3 d4@8 d5@6 a4@10 g4@13 ~@34 d5@16 ~@34, ~@3 g3@4 ~@4 g3@5 ~@5 g3@5 ~@23 c5@11 d#4@3 d4@7 ~@12 d4@7 ~@3 d4@7 ~@4 d4@8 ~@2 d4@2 a4@11 d4@8 ~@3 g3@5 ~@3 d4@7 ~@3 d4@5, ~@50 d4@8 g3@4 ~@4 g3@4 ~@4 g3@5 ~@5 g3@5 ~@22 a#3@3 a#4@13 ~@20 g3@5 ~@8, ~@51 a#4@10 f4@9 ~@42 c5@15 ~@33]/5",
  C: "[~ a3@2 a#3@3 ~@5 a3@2 ~ a#3@2 ~@3 g3@3 a3@2 d4@2 ~@6 g3@3 a3@2 a#3@3 ~@3 a3@2 a#3@3 ~@5 a3@3 a#3@3 ~@2 g3@3, ~@6 d4@8 d5@10 g3@4 f4@9 ~@27, ~@9 g3@4 ~@3 c5@10 d#4@3 ~ d4@7 ~@11 d4@7 ~@4 d4@5, ~@16 d4@3 a4@10 ~ g4@13 ~@21, ~@17 a#4@10 a3@3 ~@10 g3@5 ~@6 g3@5 ~@8]/2",
  D: "[a3@2 a#3@3 ~@5 a3@2 ~ a#3@2 ~@3 g3@3 a3@3 a#3@2 d4@3 ~@2 g3@3 a3@3 ~@5 a3@2 ~ a#3@2 ~@5 a3@3 a#3@3 ~@2 g3@3 a3@3 a#3@2 ~@3 g3@3 a3@2 a#3@2 ~@3 g3@3 a3@3 ~@10 a3@3 a#3@3 ~@2 a3@2 ~ a#3@2 ~@6 a3@2 a#3@3 ~@3 g3@2 a3@2, ~@5 d4@8 d5@16 ~@47 d5@5 a4@9 f4@9 ~@29, ~@8 g3@4 ~@3 c5@15 ~@48 c5@9 d4@2 a3@3 d4@7 ~@11 d4@7 ~@4 d4@7, ~@16 a#4@13 ~@10 g3@5 ~@6 g3@5 ~@25 a#4@8 d#4@3 ~ g4@13 ~@23, ~@16 d4@2 a4@11 d4@8 a#3@4 ~@6 d4@7 ~@4 d4@7 ~@3 d4@8 ~@3 d4@8 g3@4 ~@4 g3@4 ~@4 g3@5 ~@5 g3@5 ~@10]/4",
  E: "[~ a#3@2 ~@3 g3@3 a3@2 a#3@2 ~@4 g3@2 a3@3 a#3@3 d4@2 ~@5 a3@3 a#3@3 ~@2 a3@2 ~ a#3@3 ~@5 a3@3 a#3@2 ~@3 g3@2 a3@3, ~@3 d4@8 d5@16 ~@37, ~@13 c5@15 ~@36, ~@14 d4@2 a4@11 d4@8 ~@11 d4@7 ~@3 d4@7 ~, ~@15 a#4@13 ~@2 g3@4 ~@4 g3@5 ~@5 g3@5 ~@11]/2",
  F: "[a#3@3 ~@2 g3@3 a3@2 ~@6 g3@2 a3@3 d4@2 ~@6 g3@3 a3@2 a#3@3 ~@3 a3@2 a#3@3 ~@5 a3@3 a#3@2 ~@3 g3@3 a3@2 a#3@3 ~@5 a3@2 ~@6 g3@3 a3@2 a#3@3 ~@3 g3@2 a3@3 a#3@2 ~@3 g3@3 a3@2 a#3@3 d4@11 ~@9, ~@3 d4@8 d5@10 g3@4 f4@9 ~@41 c5@12 d4@10 d4@11 ~@20, ~@11 a#3@2 d4@3 a4@10 g4@13 ~@35 d5@16 ~@38, ~@12 c5@11 d#4@3 d4@7 ~@12 d4@7 ~@3 d4@7 ~@4 d4@8 ~@2 d4@3 a4@11 ~@38, ~@14 a#4@10 a3@3 ~@10 g3@5 ~@5 g3@5 ~@17 g3@4 ~ a#3@3 ~ a#4@13 ~@37]/4",
})).s("gm_orchestral_harp").gain(0.25).pan(0.7)

// chords · epiano1
const epiano1 = note("<~ A@4 ~@64 B@5 C@2 D@4 E@2 F@5>".pickRestart({
  A: "[~@4 g4@3 a4@3 ~@5 a4@2 a#4@3 ~@5 a4@3 a#4@3 ~@2 g4@3 a4@2 a#4@3 ~@5 a4@2 ~ a#4@2 ~@3 g4@3 a4@3 ~@7 g4@3 a4@3 ~@5 a4@2 ~ a#4@2 ~@6 a4@2 a#4@3 ~@2 g4@3 a4@3 a#4@2 ~@3 g4@3 a4@2 a#4@2 ~@3 g4@3 a4@3 a#4@2 d5@3, ~@2 d5@7 ~ a#4@4 ~@6 d5@7 ~@4 d5@7 ~@3 d5@8 d6@11 ~ d#5@2 f5@8 ~@12 d5@7 ~@4 d5@7 ~@3 d5@8 ~@2 c6@14, ~@12 g4@5 ~@6 g4@5 ~@16 g4@4 ~@3 c6@3 a5@11 g5@13 ~@34 d6@14 ~@2, ~@52 d5@8 g4@4 ~@9 a#4@4 ~@38 d5@2 a5@10 ~, ~@53 a#5@7 d5@2 a4@3 d5@7 ~@3 g4@5 ~@6 g4@5 ~@25 a#5@12]/4",
  B: "[~@5 a4@3 a#4@3 ~@2 a4@2 ~ a#4@2 ~@6 a4@2 a#4@3 ~@3 g4@2 a4@3 a#4@2 ~@3 g4@3 a4@2 a#4@2 ~@4 g4@2 a4@3 d5@2 ~ a4@2 ~@5 a4@3 a#4@3 ~@2 a4@2 ~ a#4@3 ~@5 a4@3 a#4@2 ~@3 g4@2 a4@3 a#4@3 ~@2 g4@3 a4@2 ~@6 g4@2 a4@3 a#4@3 d5@2 ~@3 g4@3 a4@2 a#4@3 ~@3 a4@2 a#4@3 ~@5 a4@3 a#4@2 ~@3 g4@2, d5@7 ~@11 d5@7 ~@4 d5@7 ~@3 d5@8 d6@11 ~@3 f5@8 ~@43 c6@14 ~@34, ~@3 g4@4 ~@4 g4@5 ~@5 g4@5 ~@23 c6@4 a5@11 ~@2 g4@4 ~@4 g4@5 ~@5 g4@5 ~@22 a#4@3 a#5@12 ~@21 g4@5 ~@8, ~@50 d5@8 g4@4 ~ d5@7 ~@12 d5@7 ~@3 d5@7 ~@4 d5@8 ~@2 d5@3 a5@10 d5@7 ~@4 g4@5 ~@3 d5@7 ~@3 d5@5, ~@51 a#5@7 ~@2 d#5@3 g5@13 ~@35 d6@14 ~@35]/5",
  C: "[~ a4@2 a#4@3 ~@5 a4@2 ~ a#4@2 ~@3 g4@3 a4@2 d5@2 ~@6 g4@3 a4@2 a#4@3 ~@3 a4@2 a#4@3 ~@5 a4@3 a#4@3 ~@2 g4@3, ~@6 d5@8 d6@11 ~@2 a4@3 ~@10 g4@5 ~@6 g4@5 ~@8, ~@9 g4@4 ~@3 [d5,c6]@8 g4@4 f5@8 ~@28, ~@17 a#5@7 ~@2 d#5@3 ~ d5@7 ~@11 d5@7 ~@4 d5@5, ~@19 a5@11 g5@13 ~@21]/2", // D7
  D: "[a4@2 a#4@3 ~@5 a4@2 ~ a#4@2 ~@3 g4@3 a4@3 a#4@2 d5@3 ~@2 g4@3 a4@3 ~@5 a4@2 ~ a#4@2 ~@5 a4@3 a#4@3 ~@2 g4@3 a4@3 a#4@2 ~@3 g4@3 a4@2 a#4@2 ~@3 g4@3 a4@3 ~@10 a4@3 a#4@3 ~@2 a4@2 ~ a#4@2 ~@6 a4@2 a#4@3 ~@3 g4@2 a4@2, ~@5 d5@8 d6@14 ~@49 d6@11 ~ d#5@2 f5@8 ~@30, ~@8 g4@4 ~@3 c6@14 ~@49 c6@3 a5@11 g5@13 ~@23, ~@16 d5@2 a5@10 ~ d5@7 ~ a#4@4 ~@6 d5@7 ~@4 d5@7 ~@3 d5@8 ~@3 d5@8 g4@4 ~@4 g4@4 ~@4 g4@5 ~@5 g4@5 ~@10, ~@17 a#5@12 ~@10 g4@5 ~@6 g4@5 ~@25 a#5@7 d5@2 a4@3 d5@7 ~@11 d5@7 ~@4 d5@7]/4",
  E: "[~ a#4@2 ~@3 g4@3 a4@2 a#4@2 ~@4 g4@2 a4@3 a#4@3 d5@2 ~@5 a4@3 a#4@3 ~@2 a4@2 ~ a#4@3 ~@5 a4@3 a#4@2 ~@3 g4@2 a4@3, ~@3 d5@8 d6@6 a5@10 ~@3 g4@4 ~@4 g4@5 ~@5 g4@5 ~@11, ~@13 c6@14 ~@37, ~@14 d5@11 ~@2 d5@7 ~@12 d5@7 ~@3 d5@7 ~, ~@15 a#5@12 ~@37]/2",
  F: "[a#4@3 ~@2 g4@3 a4@2 ~@6 g4@2 a4@3 d5@2 ~@6 g4@3 a4@2 a#4@3 ~@3 a4@2 a#4@3 ~@5 a4@3 a#4@2 ~@3 g4@3 a4@2 a#4@3 ~@5 a4@2 ~ a#4@2 ~@3 g4@3 a4@2 a#4@3 ~@3 g5@63 ~@7, ~@3 d5@8 d6@11 ~@2 a4@2 d5@7 ~@4 g4@5 ~@5 g4@5 ~@17 g4@4 ~@4 a#5@10 d5@2 d5@63 ~@8, ~@11 a#4@2 d5@8 g4@4 f5@8 ~@12 d5@7 ~@3 d5@7 ~@4 d5@8 ~@2 d5@3 a5@10 ~@71, ~@12 c6@4 a5@11 ~@47 d6@14 [g4,a#4,c5]@64 ~@8, ~@14 a#5@7 ~@2 d#5@3 g5@13 ~@37 c6@14 ~@70]/5", // C7
})).s("gm_epiano1").gain(0.35).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@13 A B A B A B A B C@25 D C@9 E C@12 ~@18>".pickRestart({
  A: "x ~@6 x", B: "x", C: "x ~@2 x!2 ~@3", D: "x ~@2 x ~@2 x ~ x ~@2 x ~@4", E: "x ~@5 x ~@8 x",
})).gain(0.59)

// drums · rim
const rim = s("rim").struct("<~@13 [~ x ~ x]!8 [~ x ~@2]!10 ~@56>").gain(0.59)

// drums · snare
const snare = s("sd").struct("<~@21 [~@3 x]!9 ~ [~ x ~ x]!15 [~ x ~@2] [~ x ~ x]!21 [~ x ~@2] ~@18>").gain(0.59)

// drums · hihat
const hihat = s("hh").struct("<~@12 A B@8 C@9 D E B@6 F E B@6 G E B@8 H ~@8 E B@2 H ~@18>".pickRestart({
  A: "~@3 x", B: "x!8", C: "x!6 ~ x", D: "x!5 ~@3", E: "~ x!7", F: "x!7 ~", G: "x!2 ~ x!3 ~@2", H: "x!4 ~@4",
})).gain(0.46)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@15 B ~@9 C ~@7 D ~@22>".pickRestart({
  A: "~@5 x!2 ~", B: "~@11 x!2 ~@3", C: "~@8 x!3 ~@3 x ~", D: "~@10 x!2 ~@4",
})).gain(0.59)

// drums · open hat
const open_hat = s("oh").struct("<~ A ~ B ~@8 C ~@56 D E ~ F ~ F ~ G ~ C ~ H ~ I ~@4>".pickRestart({
  A: "~ x ~@14", B: "~ x ~@30", C: "~@7 x", D: "x", E: "~@31 x", F: "~@15 x", G: "~@29 x ~@2", H: "~@27 x ~@4",
  I: "~@13 x ~@2",
})).gain(0.39)

// drums · crash
const crash = s("cr").struct("<~@31 A ~@7 A ~@6 B A ~@9 A ~@3 A ~@3 A ~@21>".pickRestart({
  A: "x", B: "~ x ~@2",
})).gain(0.46)

// drums · ride
const ride = s("rd").struct("<A B C D E ~@52 F G@3 F G@3 ~@3 H I J K L M N O P Q R S T U V W X ~@2>".pickRestart({
  A: "~@31 x", B: "x ~@6 x ~@4 x ~@7 x ~@2 x ~@4 x ~@3", C: "~ x ~@4 x ~@5 x ~@4 x ~@4 x ~@2 x ~@2 x ~@3",
  D: "~@6 x ~@4 x ~@10 x ~@2 x ~ x ~@4", E: "x ~@5 x ~@4 x ~@4 x ~@10 x ~ x ~@2", F: "~ x!7", G: "x!8", H: "~ x",
  I: "~@5 x ~@5 x ~@6 x ~@2 x ~@4 x ~@5", J: "x ~@4 x ~@4 x ~@12 x ~@2 x ~@5", K: "~@10 x ~@9 x ~@2 x ~@2 x ~@4 x",
  L: "~@4 x ~@4 x ~@5 x ~@9 x ~@6", M: "~@4 x ~@4 x ~@7 x ~ x ~@5 x ~@4 x ~", N: "~@3 x ~@5 x ~@12 x ~ x ~@7",
  O: "~@8 x ~@10 x ~ x ~@2 x ~@4 x ~@2", P: "~@2 x ~@5 x ~@4 x ~@10 x ~@7",
  Q: "~@2 x ~@4 x ~@7 x ~@2 x ~@4 x ~@4 x ~@3", R: "~@2 x ~@4 x ~@12 x ~@2 x ~@8", S: "~@7 x ~@9 x ~@2 x ~ x ~@5 x ~@3",
  T: "~ x ~@4 x ~@4 x ~@10 x ~@9", U: "x ~@5 x ~@7 x ~ x ~@5 x ~@4 x ~@4", V: "x ~@4 x ~@12 x ~@2 x ~@10",
  W: "~@5 x ~@9 x ~@2 x ~@2 x ~@4 x ~@4 x", X: "~@5 x ~@4 x ~@9 x ~@2 x ~@8",
})).gain(0.33)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~ A ~ B C ~@63 D E F G H I J K L M N O P Q R S T U ~>".pickRestart({
  A: "~@17 x ~@14", B: "~@17 x ~ x ~@12", C: "~@21 x ~@2 x ~@7", D: "~@15 x", E: "~ x", F: "~@15 x ~@5 x ~@10",
  G: "~@4 x ~@10 x ~@2 x ~@13", H: "~@10 x!2 ~@2 x ~", I: "~@7 x ~@8", J: "~@14 x ~@4 x ~@12",
  K: "~@3 x ~@9 x ~@2 x ~@15", L: "~@18 x ~@2 x ~@4 x ~@5", M: "~@13 x ~@18", N: "~@12 x ~@4 x ~@14",
  O: "~ x ~@10 x ~ x ~@17", P: "~@17 x ~ x ~@5 x ~@6", Q: "~@11 x ~@20", R: "~@11 x ~@4 x ~@15",
  S: "x ~@9 x ~@2 x ~@18", T: "~@15 x ~@2 x ~@7 x ~ x ~@2 x", U: "~@4 x ~@2 x ~ x ~@5 x ~ x ~@2 x ~@4 x ~@2 x ~ x ~",
})).gain(0.13)

// drums · tambourine
const tambourine = s("tb").struct("<~@21 [~@3 x]!10 [~ x ~ x]!15 [~@3 x] [~ x ~ x]!21 [~ x ~@2] ~@18>").gain(0.59)

// drums · triangle
const triangle = s("triangles:35").struct("<~ A ~ B ~@65 C ~ D ~ E ~ F ~ G ~ H ~ I ~ J ~@3>".pickRestart({
  A: "~@23 x ~@8", B: "~@11 x ~@20", C: "~@21 x ~@10", D: "~@5 x ~@10", E: "~@19 x ~@12", F: "~ x ~@2", G: "~@9 x ~@6",
  H: "~@7 x ~@24", I: "~ x", J: "~@5 x ~@26",
})).gain(2.86)

// drums · bell tree
const bell_tree = s("marktrees:0").struct("<A ~@3 B ~@63 C ~@3 D ~@3 E ~@3 F ~@3 G ~@2>".pickRestart({
// … 8 more lines

More by Tozzi