Strudelify

Fritz Love My Tits

E-Rotic

KeyE majorTempo146 bpm
0:00/0:00
// Fritz Love My Tits — E-Rotic
// 146 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 111 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(146/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.

// other · pad poly
const pad_poly = note("<~@20 A B C D A B C ~@84>".pickRestart({
  A: "e4 e3 g#4 b3 f#4 e3 g#4 e4 b3 e4 g#4 e3 f#4 b3 g#4 b3", B: "c#4 e3 e4 a3 d#4 e3 e4 c#4 a3 c#4 e4 e3 d#4 a3 e4 a3",
  C: "f#4 f#3 a4 c#4 g#4 f#3 a4 f#4 c#4 f#4 a4 f#3 g#4 c#4 a4 c#4",
  D: "d#4 d#3 f#4 b3 e4 f#3 f#4 d#4 d#3 d#4 f#4 b3 e4 f#3 f#4 b3",
})).s("gm_pad_poly").gain(0.15).pan(1)

// other · synth drum
const synth_drum = note("<~@11 [c1@11 ~@5] ~@94 [c1@11 ~@5] ~@4>").s("gm_synth_drum").gain(0.36)

// other · synth bass 1
const synth_bass_1 = note("<~@28 A B C D E B C D ~@27 A B C D E B C D ~@40>".pickRestart({
  A: "~@14 f#4 ~", B: "e4 ~ a3 ~ d#4 ~ f#4 e4@3 a3 ~ f#4 ~ e4 ~", C: "d#4 ~ f#3 ~ b3 ~ e4 d#4@3 f#3 ~ b3 ~ e4 ~",
  D: "d#4 ~ g#3 ~ c#4 ~ e4 d#4@3 g#3 ~ c#4 ~ d#4 ~", E: "e4 ~ g#3 ~ d#4 ~ f#4 e4@3 g#3 ~ d#4 ~ f#4 ~, ~@7 f#4 ~@8",
})).s("gm_synth_bass_1").gain(0.21).pan(0.7)

// other · synth bass 1 · soft notes
const synth_bass_1_soft = note(`<
  ~@28
  [e4 ~ g#3 ~ d#4 ~ f#4 e4@3 g#3 ~ d#4 ~@3, ~@7 f#4 ~@8]
  ~@34
  [e4 ~ g#3 ~ d#4 ~ f#4 e4@3 g#3 ~ d#4 ~@3, ~@7 f#4 ~@8]
  ~@47
>`).s("gm_synth_bass_1").gain(0.1).pan(0.7)

// bass · synth bass 1
const bass = note(`<
  ~@20 A B C D A B C ~ E B D F E B D F ~ A B C D A B C D A B C D A B C D B D A B C D A B C ~ E B D F E B D F ~ A B C D A
  B C D A B C D A B C D B D A B C D A B C D A B C D A B C ~@6
>`.pickRestart({
  A: "e1 ~ e1!3 ~ e1!3 ~ e1!3 ~ e1!2", B: "a1 ~ a1!3 ~ a1!3 ~ a1!3 ~ a1!2", C: "f#1 ~ f#1!3 ~ f#1!3 ~ f#1!3 ~ f#1!2",
  D: "b1 ~ b1!3 ~ b1!3 ~ b1!3 ~ b1!2", E: "c#2 ~ c#2!3 ~ c#2!3 ~ c#2!3 ~ c#2!2",
  F: "g#1 ~ g#1!3 ~ g#1!3 ~ g#1!3 ~ g#1!2",
})).s("gm_synth_bass_1").gain(0.48)

// other · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@11 A B C D A B C D ~@18 E F G H E F G H E F G H E F G H I J ~@17 E F G H E F G H E F G H E F G H I J ~@21
>`.pickRestart({
  A: "e5 e4 g#5 b4 f#5 e4 g#5 e5 b4 e5 g#5 e4 f#5 b4 g#5 b4", B: "c#5 e4 e5 a4 d#5 e4 e5 c#5 a4 c#5 e5 e4 d#5 a4 e5 a4",
  C: "f#5 f#4 a5 c#5 g#5 f#4 a5 f#5 c#5 f#5 a5 f#4 g#5 c#5 a5 c#5",
  D: "d#5 d#4 f#5 b4 e5 f#4 f#5 d#5 d#4 d#5 f#5 b4 e5 f#4 f#5 b4", E: "g#5 ~ f#5 ~ g#5 ~ f#5 ~ g#5 ~ f#5 ~ g#5 ~ b5 ~",
  F: "f#5 ~ e5 ~ f#5 ~ e5 ~ f#5 ~ e5 ~ f#5 ~ g#5 ~", G: "a5 ~ g#5 ~ a5 ~ g#5 ~ a5 ~ g#5 ~ a5 ~ b5 ~",
  H: "f#5 ~ e5 ~ f#5 ~ e5 ~ f#5 ~ e5 ~ f#5 ~ e5 ~", I: "a5 ~ e5 ~ a5 ~ e5 ~ a5 ~ e5 ~ a5 ~ e5 ~",
  J: "b5 ~ f#5 ~ b5 ~ f#5 ~ b5 ~ f#5 ~ b5 ~ f#5 ~",
})).s("gm_lead_2_sawtooth").gain(0.23).pan(0.8)

// other · lead 2 sawtooth
const lead_2_sawtooth_2 = note(`<
  ~@11 A B C D E F G H ~ I J K L M J K L ~@7 N ~@19 O J P D Q R S H ~@7 T ~@19 U B V W Q X S Y A B Z AA E AB G D ~@5
>`.pickRestart({
  A: "g#5@2 ~@2 g#5@2 ~ g#5@2 b4 g#5 b4 g#5@2 f#5@2", B: "e5@2 a4@2 e5@2 ~ e5@2 ~ e5 a4 f#5@2 g#5@2, ~@3 a4 ~@4",
  C: "a5@2 c#5@2 a5@2 c#5 a5@2 ~ a5 ~ a5@2 g#5@2", D: "f#5@2 b4@2 f#5@2 b4 g#5@2 g#5 ~ b4 e5@2 f#5 ~, ~@5 f#5 ~@2",
  E: "g#5@2 b4@2 g#5@2 ~ g#5@2 b4 g#5 b4 g#5@2 f#5@2", F: "e5@2 ~@2 e5@2 ~ e5@2 ~ e5 ~ f#5@2 g#5@2, ~@3 a4 ~@4",
  G: "a5@2 ~@2 a5@2 c#5 a5@2 ~ a5 c#5 a5@2 g#5@2", H: "f#5@2 b4@2 f#5@2 b4 g#5@2 g#5 f#5@2 e5@2 f#5 ~",
  I: "g#5@2 b4@2 g#5@2 b4 g#5@2 ~ g#5 b4 g#5@2 f#5@2", J: "e5@2 a4@2 e5@2 ~ e5@2 a4 e5 a4 f#5@2 g#5@2, ~@3 a4 ~@4",
  K: "a5@2 c#5@2 a5@2 ~ a5@2 ~ a5 c#5 a5@2 g#5@2", L: "f#5@2 b4@2 f#5@2 ~ g#5@2 g#5 ~ b4 e5@2 f#5 ~, ~@5 f#5 ~@2",
  M: "g#5@2 b4@2 g#5@2 b4 g#5@2 b4 g#5 b4 g#5@2 f#5@2",
  N: "~@10 d3 [a2,b2] [e2,f2,f#2,g2] [a#1,b1,c2,c#2,d2] [f1,f#1,g1,g#1,a1] [c1,d1,d#1,e1]", // Asus2
  O: "g#5@2 b4@2 g#5@2 b4 g#5@2 ~ g#5 ~ g#5@2 f#5@2", P: "a5@2 ~@2 a5@2 c#5 a5@2 c#5 a5 ~ a5@2 g#5@2",
  Q: "g#5@2 ~@2 g#5@2 b4 g#5@2 b4 g#5 b4 g#5@2 f#5@2", R: "e5@2 ~@2 e5@2 ~ e5@2 a4 e5 a4 f#5@2 g#5@2",
  S: "a5@2 c#5@2 a5@2 c#5 a5@2 c#5 a5 c#5 a5@2 g#5@2",
  T: "~@12 [d#2,e2,g2] [a#1,b1,c2,c#2,d2] [f1,f#1,g1,g#1,a1] [c1,d1,d#1,e1]", // D#
  U: "g#5@2 b4@2 g#5@2 ~ g#5@2 ~ g#5 ~ g#5@2 f#5@2", V: "a5@2 c#5@2 a5@2 ~ a5@2 c#5 a5 c#5 a5@2 g#5@2",
  W: "f#5@2 ~@2 f#5@2 b4 g#5@2 g#5 f#5@2 e5@2 f#5 ~", X: "e5@2 a4@2 e5@2 ~ e5@2 a4 e5 ~ f#5@2 g#5@2",
  Y: "f#5@2 b4@2 f#5@2 ~ g#5@2 g#5 f#5@2 e5@2 f#5 ~", Z: "a5@2 ~@2 a5@2 c#5 a5@2 c#5 a5 c#5 a5@2 g#5@2",
  AA: "f#5@2 ~@2 f#5@2 ~ g#5@2 g#5 ~ b4 e5@2 f#5 ~, ~@5 f#5 ~@2",
  AB: "e5@2 ~@2 e5@2 ~ e5@2 a4 e5 a4 f#5@2 g#5@2, ~@3 a4 ~@4",
})).s("gm_lead_2_sawtooth").gain(0.21)

// chords · rock organ
const rock_organ = note(`<
  ~@11 A B C D E F G H ~ I J K L M N O P ~@9 Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP ~@9 AQ
  AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW ~@6
>`.pickRestart({
  A: "[b4,e5,g#5]!2 ~ [b4,e5,g#5] [b4,e5] ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5] ~ [b4,e5] ~", // E E5 E E5
  B: "[c#5,e5,a5]!2 ~ [c#5,e5,a5]!2 ~ [c#5,e5] [c#5,e5,a5] ~ [e5,a5] [c#5,e5,a5] ~ [e5,a5] ~ [c#5,e5] ~", // A C#m A A5 A A5 C#m
  C: "[a4,c#5,f#5]!2 ~ [a4,c#5,f#5] [c#5,f#5] ~ [a4,f#5] [a4,c#5,f#5] ~ [a4,c#5,f#5]!2 ~ [a4,c#5,f#5] ~ [a4,c#5] ~", // F#m F#5 D F#m A
  D: "[b4,d#5,f#5] [b4,d#5] ~ [b4,f#5] [b4,d#5] ~ [b4,d#5,g#5]!2 ~ [b4,g#5] [b4,d#5,f#5] ~ [b4,e5] ~ [b4,e5,f#5] ~", // B B5 B G#m E B E5 Bsus4
  E: "[b4,e5,g#5]!2 ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5] [e5,g#5] ~ [b4,e5,g#5] ~ [b4,g#5] ~", // E
  F: "[c#5,e5,a5]!2 ~ [c#5,e5,a5]!2 ~ [c#5,e5] [c#5,e5,a5] ~ [c#5,e5]!2 ~ [c#5,e5,a5] ~ [e5,g#5] ~", // A C#m A C#m A E
  G: "[a4,c#5] [a4,c#5,f#5] ~ [c#5,f#5] f#5 ~ [a4,f#5] [c#5,f#5] ~ [a4,c#5,f#5] [c#5,f#5] ~ [a4,c#5,f#5] ~ [a4,c#5] ~", // A F#m F#5 D F#5 F#m F#5 F#m …
  H: "d#5 [b4,f#5] ~ [b4,d#5,f#5]!2 ~ b4 [d#5,g#5] ~ [b4,d#5,g#5] [b4,d#5,f#5] ~ [b4,e5] ~ [b4,e5,f#5] ~", // B5 B G#5 G#m B E5 Bsus4
  I: "[b4,e5] [e5,g#5] ~ [b4,e5,g#5] [b4,e5] ~ [b4,e5,g#5] [b4,e5] ~ g#5 [b4,e5] ~ e5 ~ [e5,g#5] ~", // E5 E E5 E E5 E
  J: "[c#5,a5] [c#5,e5,a5] ~ [c#5,e5,a5]!2 ~ [c#5,e5]!2 ~ [c#5,e5,a5] [c#5,e5] ~ [e5,a5] ~ [c#5,e5,g#5] ~", // F#m A C#m A C#m A5 C#m
  K: "[a4,c#5] [a4,c#5,f#5] ~ [a4,c#5,f#5]!2 ~ [c#5,f#5] [a4,c#5,f#5] ~ [a4,f#5]!2 ~ [a4,c#5] ~ [a4,f#5] ~", // A F#m F#5 F#m D A D
  L: "[b4,d#5,f#5]!2 ~ [b4,d#5,f#5]!2 ~ [b4,d#5,g#5]!2 ~ [b4,d#5,g#5] [d#5,f#5] ~ b4 ~ [b4,e5,f#5] ~", // B G#m D#m Bsus4
  M: "[b4,e5,g#5] [e5,g#5] ~ g#5 [b4,e5,g#5] ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5]!2 ~ [b4,e5] ~ [b4,e5] ~", // E E5
  N: "[c#5,e5,a5]!2 ~ [c#5,e5,a5] [c#5,e5] ~ e5 [c#5,e5] ~ [c#5,e5,a5] [c#5,a5] ~ [c#5,e5,a5] ~ [c#5,e5] ~", // A C#m A F#m A C#m
  O: "[a4,c#5,f#5] [a4,c#5] ~@2 [c#5,f#5] ~ [a4,c#5,f#5]!2 ~ [a4,c#5] [c#5,f#5] ~ [a4,c#5] ~ [a4,c#5] ~", // F#m A F#5 F#m A F#5 A
  P: "[b4,f#5] [d#5,f#5] ~ [d#5,f#5] [b4,d#5,f#5] ~ [b4,d#5] [d#5,g#5] ~ [b4,d#5,g#5] [b4,d#5,f#5] ~ [b4,e5] ~ [b4,f#5] ~", // B5 D#m B G#5 G#m B E5 B5
  Q: "[e5,g#5] e5 ~ [e5,g#5] g#5 ~ [e5,g#5]!2 ~ [e5,g#5]!2 ~ [e5,g#5] ~ [e5,g#5] ~", // E
  R: "a5 [e5,a5] ~ a5 e5 ~ e5 [e5,a5] ~ a5 [e5,a5] ~ [e5,a5] ~ [e5,g#5] ~", // A5 E
  S: "[c#5,f#5]!2 ~ [c#5,f#5]!2 ~ [c#5,f#5] f#5 ~ c#5 [c#5,f#5] ~ c#5 ~ c#5 ~", // F#5
  T: "[d#5,f#5]!2 ~ [d#5,f#5] d#5 ~ g#5 [d#5,g#5] ~ [d#5,g#5] [d#5,f#5] ~@3 [e5,f#5] ~", // D#m G#5 D#m Esus2
  U: "[e5,g#5]!2 ~ [e5,g#5] g#5 ~ g#5!2 ~ [e5,g#5]!2 ~ g#5 ~ [e5,g#5] ~", // E
  V: "a5 [e5,a5] ~ [e5,a5] a5 ~ e5!2 ~ e5 [e5,a5] ~ [e5,a5] ~ [e5,g#5] ~", // A5 E
  W: "[c#5,f#5] f#5 ~ [c#5,f#5] f#5 ~@2 [c#5,f#5] ~ c#5 [c#5,f#5] ~ c#5 ~ f#5 ~", // F#5
  X: "[d#5,f#5] d#5 ~ d#5 f#5 ~ [d#5,g#5]!2 ~ [d#5,g#5] [d#5,f#5] ~@3 f#5 ~", // D#m G#5 D#m
  Y: "[e5,g#5] g#5 ~ [e5,g#5] e5 ~ e5 [e5,g#5] ~ e5 g#5 ~ e5 ~ g#5 ~", // E
  Z: "[e5,a5]!2 ~ [e5,a5]!2 ~@2 [e5,a5] ~ a5 [e5,a5] ~ [e5,a5] ~ [e5,g#5] ~", // A5 E
  AA: "[c#5,f#5] f#5 ~ f#5 [c#5,f#5] ~ [c#5,f#5]!2 ~ [c#5,f#5] c#5 ~ [c#5,f#5] ~ [c#5,f#5] ~", // F#5
  AB: "[d#5,f#5]!2 ~ [d#5,f#5]!2 ~ d#5 [d#5,g#5] ~ g#5 [d#5,f#5] ~ e5 ~ [e5,f#5] ~", // D#m G#5 D#m Esus2
  AC: "[e5,g#5]!2 ~ [e5,g#5] g#5 ~ [e5,g#5] ~@2 [e5,g#5]!2 ~ [e5,g#5] ~ [e5,g#5] ~", // E
  AD: "e5 [e5,a5] ~ [e5,a5]!2 ~ e5!2 ~ [e5,a5] a5 ~ [e5,a5] ~ e5 ~", // A5
  AE: "c#5 [c#5,f#5] ~ [c#5,f#5] c#5 ~ [c#5,f#5]!2 ~ [c#5,f#5] c#5 ~ [c#5,f#5] ~ [c#5,f#5] ~", // F#5
  AF: "[d#5,f#5]!2 ~@2 d#5 ~ g#5 [d#5,g#5] ~ [d#5,g#5] [d#5,f#5] ~@3 [e5,f#5] ~", // D#m G#5 D#m Esus2
  AG: "e5 [e5,a5] ~ [e5,a5] a5 ~ [e5,a5] a5 ~ [e5,a5]!2 ~ [e5,a5] ~ [e5,a5] ~", // A5
  AH: "[f#5,b5]!2 ~ f#5 [f#5,b5] ~ f#5!2 ~@2 [f#5,b5] ~ [f#5,b5] ~ [f#5,b5] ~", // B5
  AI: "[b4,e5,g#5] [b4,e5] ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5] [b4,g#5] ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // E E5 E
  AJ: "[c#5,e5]!2 ~ [c#5,e5] [c#5,e5,a5] ~ e5 [e5,a5] ~ [c#5,e5,a5]!2 ~ [c#5,e5,a5] ~ [c#5,e5,g#5] ~", // C#m A A5 A C#m
  AK: "[a4,c#5,f#5]!2 ~ [a4,c#5,f#5]!2 ~ [a4,c#5]!2 ~ [a4,c#5,f#5] [a4,f#5] ~ [c#5,f#5] ~ [a4,f#5] ~", // F#m A F#m D F#5 D
  AL: "[b4,d#5] [b4,d#5,f#5] ~ [d#5,f#5] [b4,d#5,f#5] ~ [b4,d#5,g#5] b4 ~ [b4,d#5] [b4,d#5,f#5] ~ [b4,e5] ~ [b4,e5,f#5] ~", // B D#m B G#m B E5 Bsus4
  AM: "[e5,g#5] [b4,e5,g#5] ~ [b4,e5,g#5] [b4,e5] ~ [b4,e5,g#5]!2 ~ [b4,g#5] [b4,e5,g#5] ~ [b4,g#5] ~ [b4,e5,g#5] ~", // E E5 E
  AN: "e5 c#5 ~ [c#5,a5] [c#5,e5,a5] ~ e5 [c#5,e5,a5] ~ [c#5,e5,a5]!2 ~ [c#5,e5,a5] ~ [c#5,e5,g#5] ~", // F#m A C#m
  AO: "[a4,c#5,f#5]!2 ~ [a4,f#5] [a4,c#5,f#5] ~ [a4,c#5,f#5]!2 ~ [c#5,f#5] [a4,c#5,f#5] ~ [a4,c#5,f#5] ~ [a4,c#5,f#5] ~", // F#m D F#m F#5 F#m
  AP: "[d#5,f#5]!2 ~ [b4,f#5] [b4,d#5,f#5] ~ [b4,g#5] [b4,d#5,g#5] ~ [b4,d#5,g#5] [d#5,f#5] ~ [b4,e5] ~ [b4,e5] ~", // D#m B5 B E G#m D#m E5
  AQ: "[e5,g#5]!2 ~ e5 [e5,g#5] ~ [e5,g#5] ~@2 [e5,g#5]!2 ~ g#5 ~ [e5,g#5] ~", // E
  AR: "[e5,a5]!2 ~ [e5,a5]!2 ~ e5 [e5,a5] ~ a5 e5 ~ [e5,a5] ~ [e5,g#5] ~", // A5 E
  AS: "~ [c#5,f#5] ~ [c#5,f#5] f#5 ~ [c#5,f#5]!2 ~ c#5 [c#5,f#5] ~ [c#5,f#5] ~ f#5 ~", // F#5
  AT: "[d#5,f#5]!2 ~ [d#5,f#5]!2 ~ [d#5,g#5] g#5 ~ [d#5,g#5] f#5 ~@3 [e5,f#5] ~", // D#m G#5 Esus2
  AU: "[e5,g#5]!2 ~ [e5,g#5]!2 ~ e5 g#5 ~ [e5,g#5]!2 ~ [e5,g#5] ~ [e5,g#5] ~", // E
  AV: "[e5,a5] a5 ~ [e5,a5]!2 ~ e5 [e5,a5] ~ e5 [e5,a5] ~ e5 ~ [e5,g#5] ~", // A5 E
  AW: "[c#5,f#5]!2 ~ [c#5,f#5]!2 ~ [c#5,f#5]!2 ~ [c#5,f#5] f#5 ~ [c#5,f#5] ~ [c#5,f#5] ~", // F#5
  AX: "d#5 [d#5,f#5] ~ [d#5,f#5]!2 ~ [d#5,g#5] g#5 ~ [d#5,g#5] [d#5,f#5] ~ e5 ~ f#5 ~", // D#m G#5 D#m
  AY: "[e5,g#5]!2 ~ [e5,g#5] g#5 ~ [e5,g#5]!2 ~ g#5 [e5,g#5] ~ e5 ~ g#5 ~", // E
  AZ: "[e5,a5]!2 ~ [e5,a5]!2 ~ e5 a5 ~ e5 [e5,a5] ~ [e5,a5] ~ e5 ~", // A5
  BA: "c#5 [c#5,f#5] ~ f#5 [c#5,f#5] ~ [c#5,f#5]!2 ~ c#5 [c#5,f#5] ~ f#5 ~ [c#5,f#5] ~", // F#5
  BB: "f#5 [d#5,f#5] ~ [d#5,f#5] f#5 ~ [d#5,g#5] g#5 ~ [d#5,g#5] [d#5,f#5] ~ e5 ~ [e5,f#5] ~", // D#m G#5 D#m Esus2
  BC: "[e5,g#5]!2 ~ e5 [e5,g#5] ~ [e5,g#5] e5 ~ [e5,g#5]!2 ~ g#5 ~ g#5 ~", // E
  BD: "[e5,a5]!2 ~@2 a5 ~@2 [e5,a5] ~ [e5,a5]!2 ~ e5 ~ g#5 ~", // A5
  BE: "[c#5,f#5]!2 ~ [c#5,f#5] c#5 ~ [c#5,f#5] c#5 ~ [c#5,f#5]!2 ~ [c#5,f#5] ~ f#5 ~", // F#5
  BF: "[d#5,f#5] d#5 ~ [d#5,f#5] ~@2 [d#5,g#5] g#5 ~ d#5 [d#5,f#5] ~ e5 ~ [e5,f#5] ~", // D#m G#5 D#m Esus2
  BG: "a5 [e5,a5] ~ [e5,a5]!2 ~ [e5,a5]!2 ~ [e5,a5]!2 ~ [e5,a5] ~ [e5,a5] ~", // A5
  BH: "[f#5,b5]!2 ~ b5!2 ~ [f#5,b5] f#5 ~ f#5 b5 ~ [f#5,b5] ~ [f#5,b5] ~", // B5
  BI: "[b4,e5,g#5] [b4,g#5] ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5] g#5 ~ [b4,e5] ~ [b4,e5,g#5] ~", // E E5 E
  BJ: "[c#5,e5,a5] [c#5,a5] ~ [c#5,e5] [c#5,e5,a5] ~ [c#5,e5] a5 ~ [c#5,e5,a5]!2 ~ [c#5,e5,a5] ~ [c#5,e5,g#5] ~", // A F#m C#m A C#m A C#m
  BK: "[a4,c#5] [a4,f#5] ~ [a4,c#5,f#5]!2 ~ [a4,c#5] [a4,c#5,f#5] ~ [a4,c#5,f#5]!2 ~ [a4,c#5,f#5] ~ [a4,c#5,f#5] ~", // A D F#m A F#m
  BL: "[b4,d#5]!2 ~ [d#5,f#5] [b4,d#5] ~ [b4,g#5] [b4,d#5,g#5] ~ [d#5,g#5] b4 ~ [b4,e5] ~ [b4,e5,f#5] ~", // B D#m B E G#m G#5 E5 Bsus4
  BM: "[b4,e5]!2 ~ [b4,e5,g#5] [b4,e5] ~ [b4,e5,g#5] b4 ~ [b4,e5] [b4,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // E5 E E5 E E5 E
  BN: "c#5 [c#5,e5] ~ [c#5,e5,a5] [c#5,a5] ~ [c#5,e5] [c#5,e5,a5] ~ [c#5,e5,a5] e5 ~ [c#5,e5,a5] ~ [c#5,e5,g#5] ~", // C#m A F#m C#m A C#m
  BO: "[a4,c#5,f#5] [a4,f#5] ~ [a4,c#5,f#5] [a4,f#5] ~ [a4,c#5] [a4,c#5,f#5] ~ [a4,c#5,f#5] [a4,c#5] ~ [c#5,f#5] ~ [a4,c#5,f#5] ~", // F#m D F#m D A F#m A F#5 …
  BP: "[d#5,f#5] [b4,d#5,f#5] ~ [b4,d#5,f#5]!2 ~ [b4,d#5,g#5]!2 ~ [b4,d#5,g#5] [b4,d#5,f#5] ~ [b4,e5] ~ [b4,e5] ~", // D#m B G#m B E5
  BQ: "b4 [e5,g#5] ~ [b4,e5,g#5] g#5 ~ [e5,g#5] [b4,g#5] ~ [b4,e5,g#5]!2 ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // E
  BR: "[c#5,e5,a5]!2 ~ [c#5,e5,a5] [c#5,e5] ~ [c#5,e5] [c#5,e5,a5] ~ [c#5,e5,a5] [c#5,e5] ~ [e5,a5] ~ [c#5,e5,g#5] ~", // A C#m A C#m A5 C#m
  BS: "[a4,c#5,f#5]!2 ~ [a4,f#5] [a4,c#5,f#5] ~ [a4,c#5,f#5]!2 ~ [a4,c#5,f#5]!2 ~ [a4,c#5,f#5] ~ [a4,c#5,f#5] ~", // F#m D F#m
  BT: "[d#5,f#5] b4 ~ [b4,d#5]!2 ~ [b4,d#5,g#5]!2 ~ [b4,d#5,g#5] [b4,d#5,f#5] ~ [b4,e5] ~ [b4,f#5] ~", // D#m B G#m B E5 B5
  BU: "[b4,e5,g#5]!2 ~ [b4,e5,g#5] [e5,g#5] ~ [b4,e5,g#5] [b4,e5] ~ [b4,e5,g#5] [b4,g#5] ~ [b4,e5,g#5] ~ e5 ~", // E E5 E
  BV: "[c#5,e5] [c#5,a5] ~ [c#5,e5,a5]!2 ~ [c#5,e5] [c#5,e5,a5] ~ [c#5,e5] [c#5,a5] ~ [c#5,e5,a5] ~ [c#5,e5,g#5] ~", // C#m F#m A C#m A C#m F#m A …
  BW: "[a4,c#5,f#5]!2 ~ [a4,c#5,f#5] f#5 ~ [a4,c#5,f#5]!2 ~ [a4,c#5,f#5]!2 ~ f#5 ~ a4 ~", // F#m
})).s("gm_rock_organ").gain(0.17).pan(0)

// other · lead 2 sawtooth
const lead_2_sawtooth_3 = note(`<
  ~@37 A B C D A B C D A B C D A B C D B E A B C D A B C D ~@9 A B C D A B C D A B C D A B C D B D A B C D A B C D A B C
  D A B C ~@6
>`.pickRestart({
  A: "e4 ~ g#4 ~ f#4 ~ g#4 e4 ~ e4 g#4 ~ f#4 ~ g#4 ~", B: "c#4 ~ e4 ~ d#4 ~ e4 c#4 ~ c#4 e4 ~ d#4 ~ e4 ~",
  C: "f#4 ~ a4 ~ g#4 ~ a4 f#4 ~ f#4 a4 ~ g#4 ~ a4 ~", D: "d#4 ~ f#4 ~ e4 ~ f#4 d#4 ~ d#4 f#4 ~ e4 ~ f#4 ~",
  E: "d#4 ~ f#4 ~ e4 ~ f#4 d#4 ~ d#4 f#4 ~ e4 f#3 f#4 ~",
})).s("gm_lead_2_sawtooth").gain(0.23)

// other · slap bass 1
const slap_bass_1 = note("<~@28 A B C D E F G H ~@27 I J K L M N O P ~@40>".pickRestart({
  A: "c#3@2 ~@2 c#3@2 ~@2 c#3@2 c#3!2 ~@2 c#3 ~", B: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 c#3@2 ~ c#3 ~",
  C: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3!2 ~@2 c#3!2", D: "c#3@2 c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~@3",
  E: "c#3@2 ~@2 c#3@2 ~@2 c#3!2 ~ c#3 ~@2 c#3 ~", F: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3@2 c#3 ~",
  G: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~", H: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~@3",
  I: "c#4@2 ~@2 c#4@2 ~@2 c#4!2 ~ c#4 ~@2 c#4 ~", J: "c#4 ~ c#4 ~ c#4!2 ~ c#4@3 c#4 ~ c#4 ~ c#4 ~",
  K: "c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4!2 ~ c#4 ~@2 c#4 ~", L: "c#4 ~ c#4 ~ c#4@2 c#4 ~ c#4@2 c#4!3 ~@3",
  M: "c#4 ~@3 c#4@2 ~@2 c#4!2 ~ c#4 ~@2 c#4 ~", N: "c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~",
  O: "c#4 ~ c#4 ~ c#4 ~ c#4@2 c#4!2 ~ c#4 ~@2 c#4 ~", P: "c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~@3",
})).s("gm_slap_bass_1").gain(0.52)

// chords · synth strings 1
const synth_strings_1 = note("<~ A@8 B C ~@95 D E@4>".pickRestart({
  A: "[[e2,e3,b3,g#4,b4] [a2,a3] [f#2,f#3] [b2,b3,d#4,b4,d#5], e4 f#4, ~ [c#4,a4,c#5]@2 ~]/4", B: "[a2,a3,c#4,e4,a4]",
  C: "[b2,b3,d#4,f#4,b4]", D: "[a2,e3,a3,c#4,e4]", E: "[[f#3,d#4,f#4]@2 [e2,e3,g#3,e4]@5 ~, [b2,b3]@3 ~]/4",
})).s("gm_synth_strings_1").gain(0.28)

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

// drums · snare
const snare = s("sd").struct("<~@20 A@7 ~@10 A@25 ~@10 A@25 ~ A@7 ~@6>".pickRestart({
// … 32 more lines

More by E-Rotic