Strudelify

Father of Mine

Everclear

KeyD♭ majorTempo98 bpm
0:00/0:00
// Father of Mine — Everclear
// 98 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(98/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 · clarinet · "Bk"
const clarinet = note(`<
  ~@3 A@2 ~@2 B ~@3 C D E F@3 ~@13 G H D I@2 J@2 ~@2 K@6 L ~@3 M@2 N@6 O P ~@4 Q@8 R@4 S@4 ~ T@8 U@4 ~
>`.pickRestart({
  A: "[~@5 bb4 bb4@2 bb4@2 bb4@2 bb4@2 ab4@4 ~@14]/2", B: "~@6 bb4!2 bb4@2 bb4@2 bb4!2 ab4@2",
  C: "~@7 bb4 bb4@2 bb4 bb4@2 bb4@2 ab4", D: "ab4", E: "bb4",
  F: "[db5@6 ~@2 db5@2 db5@2 db5 db5@2 db5@3 bb4@2 bb4@2 ab4 bb4 db5@2 db5@2 db5@2 db5@4 ~@14]/3",
  G: "~@6 db5!5 db5@2 db5!3", H: "db5@2 db5@2 db5@2 bb4!2 bb4@2 bb4@2 bb4@2 ab4@2",
  I: "[~@10 gb4@2 gb4@2 ~@2 db5@5 ~ db5!4 db5@2 db5@2 db5@2, bb4 ~, ~@7 gb4@2 ~@7]/2",
  J: "[bb4@2 bb4@2 ~ db5 db5@2 db5@2 db5@2 db5!2 db5@4 ~@14]/2",
  K: "[~@2 f4@2 f4@2 f4@2 gb4@2 gb4@2 gb4@2 gb4@4 ~@4 db4!2 db4@2 eb4 eb4@7 ~@2 a4@2 a4@2 bb4@2 bb4@2 gb4@2 db4@4 ~@4 f4!2 f4@2 db4 eb4@7 a4@2 a4@2 a4@2 bb4@2 bb4@2 bb4@2 ab4@4 ~@10 db4@2 bb3@2]/6",
  L: "~@10 eb4@2 bb3@3 ~", M: "[~@2 f4!2 gb4!3 gb4@2 ~@7]/2",
  N: "[~@4 f4@2 f4@2 gb4@2 gb4@2 gb4@2 ab4@4 ~@4 [f4,db5]!2 [gb4,db5]@2 [f4,db5] [gb4,db5]@7 ~@2 a4@2 a4@2 bb4@2 bb4@2 gb4@2 db4@4 ~@4 f4!2 f4@2 db4 eb4@7 a4@2 a4@2 a4@2 bb4@2 bb4@2 bb4@2 ab4@4 ~@10 bb4@3 ~]/6", // Db Gb5 Db Gb5
  O: "~@12 bb4@3 ~", P: "~@10 bb4@2 gb4@3 ~",
  Q: "[~@5 bb4 bb4@2 bb4@2 bb4@2 bb4@2 ab4@4 ~@6 ab4@2 ab4@2 ab4@2 ab4@4 ~@4 ab4!2 ab4@2 ab4@2 ab4@2 ab4@4 ~@4 bb4!2 bb4@2 bb4@2 bb4!2 bb4@4 bb4@2 ~@2 bb4!2 bb4@2 bb4 bb4@2 bb4@2 ab4@3 ~@3 ab4 ab4@2 ab4@2 ab4 ab4@2 ~ a4@4 ~@4 a4!2 a4@2 a4 a4@2 ~ bb4@5 ~@3 bb4!2 bb4@2 bb4 bb4@2 ~ bb4@2]/8",
  R: "[~@2 bb4@2 bb4@2 bb4!2 bb4@2 bb4 bb4@2 ~ ab4@4 ~@2 ab4@3 ~ ab4@2 ab4 ab4@2 ~ a4@4 ~@4 a4!2 a4@2 a4 a4@2 ~ bb4@4 ~@14]/4",
  S: "[~@6 db5!2 db5@2 db5@2 db5@2 db5@47 ~@3]/4",
  T: "[~@6 [f4,db5]!2 [gb4,db5]@2 [f4,db5] [gb4,db5]@7 ~@2 a4@2 a4@2 bb4@2 bb4@2 gb4@2 db4@4 ~@4 f4!2 f4@2 db4 eb4@7 a4@2 a4@2 a4@2 bb4@2 bb4@2 bb4@2 ab4@4 ~@4 [f4,db5]!2 [gb4,db5]@2 [f4,db5] [gb4,db5]@7 a4@2 a4@2 a4@2 bb4@2 bb4@2 gb4@2 db4@4 ~@4 f4!2 f4@2 db4 eb4@7 a4@2 a4@2 a4@2 bb4@2 bb4@2 bb4@2 ab4@2]/8", // Db Gb5 Db Gb5 Db Gb5 Db Gb5
  U: "[~@6 db4!2 db4@2 eb4@2 eb4@6 ~@4 db4!2 db4@2 eb4@2 eb4@6 ~@4 f4!2 f4@2 db4@2 db4@6 ~@14]/4",
})).s("gm_clarinet").gain(0.19)

// chords · overdriven guitar · "Overdrive"
const overdriven_guitar = note(`<
  A B C D A B C D A B C D A B E F G ~@3 A B C D A B C H I J K H I J L M G ~@7 A B N O G ~@7 A@5 B C D A B C H P Q R S P
  T U V G ~@11 A@4 ~
>`.pickRestart({
  A: "[db3,ab3,db4]@2 [db3,ab3,db4]@2 [db3,ab3,db4]!4 ~@8", B: "[f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4]!4 ~@8",
  C: "[gb3,db4,gb4]@2 [gb3,db4,gb4]@2 [gb3,db4,gb4]!4 ~@8", D: "[eb3,bb3,eb4]@2 [eb3,bb3,eb4]@2 [eb3,bb3,eb4]!4 ~@8",
  E: "[gb3,db4,gb4]@2 [gb3,db4,gb4]@2 [gb3,db4,gb4,bb4]!4 ~@2 [gb3,db4,gb4,bb4]@2 [f3,c4,f4,a4]@2 [e3,b3,e4,ab4]@2", // Gb5 Gb F E
  F: "[eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]!2 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]!4 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]!2 [d3,a3,d4,gb4] [db3,ab3,db4,f4]", // Eb D Db
  G: "[db3,ab3,db4,f4]!3 [db3,ab3,db4,f4]@2 ~@3", // Db
  H: "[eb3,bb3,eb4]@2 [eb3,bb3,eb4]@2 [eb3,bb3,eb4]!4 ~@4 [eb3,bb3,eb4]@3 ~", // Eb5
  I: "[db3,ab3,db4]@2 [db3,ab3,db4]@2 [db3,ab3,db4]!4 ~@4 [db3,ab3,db4]@3 ~", // Db5
  J: "[f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4]!4 ~@4 [f3,c4,f4]@3 ~", // F5
  K: "[gb3,db4,gb4]@2 [gb3,db4,gb4]@2 [gb3,db4,gb4]!4 ~@4 [gb3,db4,gb4]@3 ~", // Gb5
  L: "[gb3,db4,gb4]@2 [gb3,db4,gb4]@2 [gb3,db4,gb4]!4 ~@2 [gb3,db4,gb4,bb4]@2 [f3,c4,f4,a4]@2 [e3,b3,e4,ab4]@2", // Gb5 Gb F E
  M: "[eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]!8 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]!2 [d3,a3,d4,gb4]@2", // Eb D
  N: "[gb3,db4,gb4]@2 [gb3,db4,gb4]@2 [gb3,db4,gb4]!4 ~@2 [gb3,db4,gb4,bb4] [f3,c4,f4,a4]!2 [e3,b3,e4,ab4]!2 [eb3,bb3,eb4,g4]", // Gb5 Gb F E Eb
  O: "[eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]!2 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]!8 [d3,a3,d4,gb4]@2", // Eb D
  P: "[db3,ab3,db4,f4]!8 ab4@3 ~ [db3,ab3,db4,f4]@3 ~", Q: "[c3,f3,c4,f4,a4]!8 ~@4 [c3,f3,c4,f4,a4]@3 ~",
  R: "[db3,gb3,db4,gb4,bb4]!8 ab4@3 ~ [db3,gb3,db4,gb4,bb4]@3 ~", // Gb
  S: "[bb2,eb3,bb3,eb4,g4]!8 f3 g3 [bb3,eb4] g3 [bb3,eb4,g4] c4 [bb3,eb4] g3", // Eb Eb5 Eb Eb5
  T: "[c3,f3,c4,f4,a4]!8 [c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4]!2 [c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] [gb3,db4,gb4]", // F Gb5
  U: "[db4,gb4,db5,gb5,bb5]@2 [db4,gb4,db5,gb5,bb5]!2 [db4,gb4,db5,gb5,bb5]@2 [db4,gb4,db5,gb5,bb5]!4 [db4,gb4,db5,gb5,bb5]@2 [c4,f4,c5,f5,a5]@2 [c4,f4,c5,f5,a5] [b3,e4,b4,e5,ab5]", // Gb F E
  V: "[bb3,eb4,bb4,eb5,g5]@2 [bb3,eb4,bb4,eb5,g5]!2 [bb3,eb4,bb4,eb5,g5]@2 [bb3,eb4,bb4,eb5,g5]!8 [a3,d4,a4,d5,gb5]!2", // Eb D
})).s("gm_overdriven_guitar").gain(0.39)

// chords · overdriven guitar · "Extra"
const overdriven_guitar_2 = note(`<
  ~@12 A@4 B ~@2 C D ~@6 E F@4 G@2 H I B ~@7 J K L M ~@8 N O@2 P ~@3 Q R@4 ~@8 B ~@11 N O@2 P ~
>`.pickRestart({
  A: "[~@14 db6@13 ~@5, [db4,db5]@27 ~@5]/4", B: "[db5,f5] [eb5,gb5] [db5,f5]@3 ~@3",
  C: "e5 eb5 db5 bb4 ab4 bb4 db5 bb4 ab4 bb4 gb4 ab4 [d4,eb4] f4 eb4@2", D: "db4@3 ~@5", E: "~@10 eb4 f4 ab4 f4 eb4 f4",
  F: "[~@12 db5@49 ~@3, db4@61 ~@3]/4", G: "[[db4,db5]@15 ~]/2",
  H: "[gb4,db5,gb5]!8 [gb4,db5,gb5]@2 [gb4,db5,gb5]@2 [f4,c5,f5] [e4,b4,e5]!2 [eb4,bb4,eb5]", // Gb5 F5 E5 Eb5
  I: "[eb4,bb4,eb5]@2 [eb4,bb4,eb5]!8 [eb4,bb4,eb5]@2 [eb4,bb4,eb5]!2 [d4,a4,d5]@2", // Eb5 D5
  J: "e5 eb5 db5 bb4 ab4 bb4 db5 eb5 f5 eb5 db5 bb4 db5@2 bb4 f5",
  K: "[g5,ab5] [ab5,a5,bb5] bb5 db6 bb5 db6 eb6 db6 e6@3 ~ e6@3 ~", L: "e6@2 e6@2 ab5@3 ~ f5 ab5 f5 eb5 d5 bb4 db5 eb5",
  M: "e5 eb5 db5 bb4 ab4 f4 eb4 f4 ab4 bb4 [ab4,db5] [f4,bb4] [ab4,db5] bb4 ab4 f4", N: "db6@3 ~ ab5 gb4!2 [gb5,db6]",
  O: "[f5,db6]@6 ~@2 ab5@2 gb4!2 gb4@2 [gb5,db6]@2", P: "[f5,db6]!8 f4@2 a3@2 ~@4", Q: "~@10 e4 f4 ab4 f4 eb4 db4",
  R: "[[db4,db5]@25 ~@7]/4", // Db
})).s("gm_overdriven_guitar").gain(0.19)

// chords · distortion guitar · "Distorted"
const distortion_guitar = note(`<
  ~@14 A B C D E D F G H I J G H K L M N K L M O P Q R S R S R S R F G T U V R S R S R S R W X@2 Y ~@4 J G H K Z AA AB
  AC Z AD AE AF AG R AH AI AH AI AH AI AH AI AH AI W X@2 Y AJ
>`.pickRestart({
  A: "[gb4,db5,gb5]@2 [gb4,db5,gb5]@2 [gb4,db5,gb5]!4 [gb4,db5,gb5]@2 [gb4,db5,gb5]@2 [f4,c5,f5]@2 [e4,b4,e5]@2", // Gb5 F5 E5
  B: "[eb4,bb4,eb5]@2 [eb4,bb4,eb5]!8 [eb4,bb4,eb5]@2 [eb4,bb4,eb5]!2 [d4,a4,d5] [db4,ab4,db5]", // Eb5 D5 Db5
  C: "[ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!2 [ab3,db4,ab4,f5]@2 [ab3,db4,ab4,db5,f5]!4 [ab3,eb4,ab4,db5]@2 [ab3,eb4,ab4,db5]@2 [gb3,db4,gb4,bb4]@2", // Db Absus4 Gb
  D: "[gb3,db4,gb4,bb4] [f3,c4,f4,a4] [f3,c4,f4,a4]@2 [f3,c4,f4,a4]@2 [f3,c4,f4,a4]!3 [gb3,db4,gb4,bb4] [gb3,db4,gb4,bb4]@2 [ab3,eb4,ab4,c5]!4", // Gb F Gb Ab
  E: "[ab3,eb4,ab4,c5]@2 [ab3,db4,ab4,db5,f5]!8 [ab3,eb4,ab4,c5]@2 [ab3,eb4,ab4,c5]@2 [gb3,db4,gb4,bb4]@2", // Ab Db Ab Gb
  F: "[ab3,eb4,ab4] [db4,ab4,db5]!7 ~@8", G: "[f4,c5,f5]!8 ~@8", H: "[gb4,db5,gb5]!8 ~@8", I: "[eb4,bb4,eb5]!8 ~@8",
  J: "[db4,ab4,db5]!8 ~@8", K: "[eb4,bb4,eb5]!8 ~@4 [eb4,bb4,eb5]@3 ~", L: "[db4,ab4,db5]!8 ~@4 [db4,ab4,db5]@3 ~",
  M: "[f4,c5,f5]!8 ~@4 [f4,c5,f5]@3 ~", N: "[gb4,db5,gb5]!8 ~@4 [gb4,db5,gb5]@3 ~",
  O: "[gb4,db5,gb5]!8 [gb4,db5,gb5]@2 [gb4,db5,gb5,bb5]@2 [f4,c5,f5,a5]@2 [e4,b4,e5,ab5]@2", // Gb5 Gb F E
  P: "[bb3,eb4,bb4,eb5,g5]@2 [bb3,eb4,bb4,eb5,g5]@2 [bb3,eb4,bb4,eb5,g5]@2 [bb3,eb4,bb4,eb5,g5]!4 [bb3,eb4,bb4,eb5,g5]@2 [bb3,eb4,bb4,eb5,g5]!2 [a3,d4,a4,d5,gb5]@2", // Eb D
  Q: "[ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!8 [ab3,eb4,ab4,db5]@2 [ab3,eb4,ab4,db5]@2 [gb3,db4,gb4,bb4]@2", // Db Absus4 Gb
  R: "[gb3,db4,gb4,bb4]@2 [f3,c4,f4,a4]@2 [f3,c4,f4,a4]@2 [f3,c4,f4,a4]!3 [gb3,db4,gb4,bb4] [gb3,db4,gb4,bb4]@2 [gb3,db4,gb4,bb4] [ab3,eb4,ab4,c5]!3", // Gb F Gb Ab
  S: "[ab3,eb4,ab4,c5]@2 [ab3,db4,ab4,db5,f5]!8 [ab3,eb4,ab4,db5]@2 [ab3,eb4,ab4,db5]@2 [gb3,db4,gb4,bb4]@2", // Ab Db Absus4 Gb
  T: "[gb4,db5,gb5]!8 ~@2 [gb4,db5,gb5,bb5] [f4,c5,f5,a5]!2 [e4,b4,e5,ab5]!2 [eb4,bb4,eb5,g5]", // Gb5 Gb F E Eb
  U: "[eb4,bb4,eb5,g5]@2 [eb4,bb4,eb5,g5]!2 [eb4,bb4,eb5,g5]@2 [eb4,bb4,eb5,g5]!8 [d4,a4,d5,gb5]@2", // Eb D
  V: "[ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!3 [ab3,db4,gb4,bb4,eb5] [ab3,eb4,ab4,db5]@2 [ab3,eb4,ab4,db5]@2 [gb3,db4,gb4,bb4]@2", // Db Ebm7 Absus4 Gb
  W: "[ab3,eb4,ab4]@2 [db4,ab4,db5]@2 [db4,ab4,db5]!4 ~@8", X: "[db4,ab4,db5]@2 [db4,ab4,db5]@2 [db4,ab4,db5]!4 ~@8",
  Y: "[db4,ab4,db5]@2 [db4,ab4,db5]@2 [db4,ab4,db5]!4 [f5,b5,eb6] [e5,bb5,d6] [eb5,a5,db6] [d5,ab5,c6] [db5,g5,b5] [c5,gb5,bb5] [b4,f5,a5] [bb4,e5,ab5]", // Db5 Fm7b5 Em7b5 Ebm7b5 Dm7b5 Dbm7b5 Cm7b5 Bm7b5 …
  Z: "[db4,ab4,db5,f5]!8 ab5@3 ~ [db4,ab4,db5,f5]@3 ~", AA: "[c4,f4,c5,f5,a5]!8 ~@4 [c4,f4,c5,f5,a5]@3 ~",
  AB: "[db4,gb4,db5,gb5,bb5]!8 ab5@3 ~ [db4,gb4,db5,gb5,bb5]@3 ~", // Gb
  AC: "[bb3,eb4,bb4,eb5,g5]!8 f4 g4 [bb4,eb5] g4 [bb4,eb5,g5] c5 [bb4,eb5] g4", // Eb Eb5 Eb Eb5
  AD: "[c4,f4,c5,f5,a5]!8 [c4,f4,c5,f5,a5]@2 [c4,f4,c5,f5,a5]!2 [c4,f4,c5,f5,a5]@2 [c4,f4,c5,f5,a5] [gb4,db5,gb5]", // F Gb5
  AE: "[db4,gb4,db5,gb5,bb5]@2 [db4,gb4,db5,gb5,bb5]!2 [db4,gb4,db5,gb5,bb5]@2 [db4,gb4,db5,gb5,bb5]!4 [db4,gb4,db5,gb5,bb5]@2 [c4,f4,c5,f5,a5]@2 [c4,f4,c5,f5,a5] [b3,e4,b4,e5,ab5]", // Gb F E
  AF: "[bb3,eb4,bb4,eb5,g5]@2 [bb3,eb4,bb4,eb5,g5]!2 [bb3,eb4,bb4,eb5,g5]@2 [bb3,eb4,bb4,eb5,g5]!8 [a3,d4,a4,d5,gb5]!2", // Eb D
  AG: "[ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!2 [ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!3 [ab3,db4,gb4,bb4,eb5] [ab3,eb4,ab4,db5]@2 [ab3,eb4,ab4,db5]@2 [gb3,db4,gb4,bb4]@2", // Db Ebm7 Absus4 Gb
  AH: "[ab3,eb4,ab4,c5]@2 [ab3,db4,ab4,db5,f5]!2 [ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!3 [ab3,db4,gb4,bb4,eb5] [ab3,eb4,ab4,db5]@2 [ab3,eb4,ab4,db5]@2 [gb3,db4,gb4,bb4]@2", // Ab Db Ebm7 Absus4 Gb
  AI: "[gb3,db4,gb4,bb4] [f3,c4,f4,a4] [f3,c4,f4,a4]@2 [f3,c4,f4,a4]@2 [f3,c4,f4,a4]!3 [gb3,db4,gb4,bb4] [gb3,db4,gb4,bb4]@2 [gb3,db4,gb4,bb4] [ab3,eb4,ab4,c5]!3", // Gb F Gb Ab
  AJ: "[ab4,db5,f5]@7 ~", // Db
})).s("gm_distortion_guitar").gain(0.32)

// other · distortion guitar · "Extra 2"
const distortion_guitar_2 = note(`<
  ~@36 A B A B A B A B ~@4 A B A B A B A B C D E F G@2 ~@14 A B A B A B A B A B A B H I J K@2
>`.pickRestart({
  A: "[db5,db6]@2 [db5,db6]!2 [db5,db6]@2 [db5,db6]!4 [db5,db6]@2 [db5,db6]@2 [db5,db6]@2", // Db
  B: "[db5,db6]@2 [db5,db6]@2 [db5,db6]@2 [db5,db6]!4 [db5,db6]@2 [db5,db6]@2 [db5,db6]!2", // Db
  C: "[db4,ab4,db5]@2 [db4,ab4,db5]@2 [db4,ab4,db5]!4 [db4,ab4,db5]@3 ~@3 [db4,ab4,db5]@2", // Db5
  D: "[db4,ab4,db5]@2 [db4,ab4,db5]@2 [db4,ab4,db5]!4 [db4,ab4,db5]@3 ~ [db4,ab4,db5]@2 [db4,ab4,db5]@2", // Db5
  E: "[db4,ab4,db5]@2 [db4,ab4,db5]@2 [db4,ab4,db5]!4 [db4,ab4,db5]@3 ~ [db4,ab4,db5]@2 ~@2", // Db5
  F: "[db4,ab4,db5,f5]!8 [f5,b5,eb6]@8", G: "[[ab4,db5,f5]@13 ~@3]/2",
  H: "[ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!4 [ab3,db4,ab4,db5,f5]@2 ~@4 [ab3,db4,ab4,db5,f5]@2", // Db
  I: "[ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!4 [ab3,db4,ab4,db5,f5]@3 ~@3 [ab3,db4,ab4,db5,f5]@2", // Db
  J: "[ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]@2 [ab3,db4,ab4,db5,f5]!4 [ab3,db4,ab4,db5,f5]@2 ~@4 [ab3,db4,ab4,db5,f5]!2", // Db
  K: "[[ab3,db4,ab4,db5,f5]!8 [f5,b5,eb6]@22 ~@2]/2", // Db Fm7b5
})).s("gm_distortion_guitar").gain(0.29)

// bass · electric bass pick · "Bass"
const bass = note(`<
  A B C D A B C D A B C D A B E F G H I J K L M N O P Q R S L M N O P T F U V W X W X W X Y L M Z AA AB I AC I AC I AC K
  AD@2 AE A B C N A B C N AF P AG R AF P AH AI U AB AJ AB AJ AB AJ AB AJ AB AJ AB S AD@3 ~
>`.pickRestart({
  A: "db2@2 db2@2 db2!4 ~@8", B: "f2@2 f2@2 f2!4 ~@8", C: "gb2@2 gb2@2 gb2!4 ~@8", D: "eb2@2 eb2@2 eb2!4 ~@8",
  E: "gb2@2 gb2@2 gb2!4 ~@2 gb2@2 f2@2 e2@2", F: "eb2@2 eb2!12 d2@2", G: "db2@2 db2!8 ab1@2 ab1@2 gb1@2",
  H: "gb1 f1!3 f1@2 f1!3 gb1!4 ab1!3", I: "ab1@2 db2!7 eb1 ab1@2 ab1@2 gb1!2",
  J: "gb1 f1!3 f1@2 f1!3 gb1 gb1@2 gb1 ab1 ab1@2", K: "ab1 db2!7 ~@8", L: "f2!8 ~@8", M: "gb2!8 ~@8", N: "eb2!8 ~@8",
  O: "db2!8 ~@4 db2@3 ~", P: "f2!8 ~@4 f2@3 ~", Q: "gb2!8 ~@4 gb2@3 ~", R: "eb2!8 ~@4 eb2@3 ~", S: "db2!8 ~@8",
  T: "gb2!8 gb2@2 gb2@2 f2@2 e2@2", U: "db2@2 db2!7 eb1 ab1@2 ab1@2 gb1@2",
  V: "gb1@2 f1@2 f1@2 f1!3 gb1 gb1@2 gb1 ab1 ab1@2", W: "ab1@2 db2!7 eb1 ab1@2 ab1@2 gb1@2",
  X: "gb1@2 f1!7 gb1 gb1@2 gb1 ab1 ab1@2", Y: "ab1 db2 db2@2 db2!4 ~@8", Z: "eb2@2 eb2!12 d2 db2",
  AA: "~@2 db2!7 eb1 ab1@2 ab1@2 gb1@2", AB: "gb1@2 f1!2 f1@2 f1!3 gb1 gb1@2 gb1 ab1 ab1@2",
  AC: "gb1@2 f1!7 gb1 gb1@2 gb1 ab1!3", AD: "db2@2 db2!6 ~@8", AE: "db2@2 db2!2 db2@2 db2!2 ~@8",
  AF: "db2 ~ db2!6 ~@4 db2@3 ~", AG: "gb2@2 gb2!6 ~@4 gb2@3 ~", AH: "gb2@2 gb2!2 gb2@2 gb2!4 gb2@2 f2@2 e2@2",
  AI: "eb2!14 d2!2", AJ: "ab1@2 db2!6 db2@2 ab1@2 ab1@2 gb1@2",
})).s("gm_electric_bass_pick").gain(0.29)

// drums · rim
const rim = s("rim").struct("<~@16 A@3 B ~@16 A@3 B A@3 ~@5 A@3 B A@3 ~@21 A@3 ~ A@3 ~ A@3 ~@6>".pickRestart({
  A: "~@7 x ~ x!2 ~@5", B: "~@7 x!5 ~@4",
})).gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@7 A B@8 C D@2 E B@15 F C D@2 E C D@2 G B@3 F C D@2 E C D@2 G B@3 H B@7 I B@7 F C D@2 G C D@2 G C D@2 G J@3 K ~
>`.pickRestart({
  A: "~@12 x ~ x!2", B: "x ~ x!3 ~@5 x ~@3 x ~", C: "x!2 ~@3 x ~ x", D: "x!2 ~@2 x!2 ~ x", E: "x!2 ~@2 x!4",
  F: "x ~ x!3 ~@5 x ~ x ~ x ~", G: "x!8", H: "x ~ x!3 ~@11", I: "x ~ x!3 ~@3 x ~ x!3 ~@3", J: "x ~ x!3 ~@5 x ~@5",
  K: "x",
})).gain(0.3)

// drums · clap
const clap = s("cp").struct("<~@7 [~@12 x ~ x!2] ~@85>").gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@7 A B@3 C B@3 D E@3 F B@3 C B@3 C B@3 C B@3 G E@3 F E@3 H B@3 G E@3 F E@3 H B@3 I B@3 C B@3 J B@3 C B@3 G E@3 H E@3
  H E F E H B@3 K ~
>`.pickRestart({
  A: "~@12 x ~ x!2", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~@4 x ~@2 x ~@4 x ~ x!2", D: "~@4 x ~@2 x!2 ~ x ~ x!4",
  E: "~ x ~ x", F: "~@4 x ~@7 x!4", G: "~@4 x ~@2 x!9", H: "x!16", I: "~@4 x ~@2 x ~@8",
  J: "x ~ x ~ x!2 ~@2 x ~ x ~ x!4", K: "x!8 ~@8",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<~@8 [x!8]!51 [x!4 ~@4] [x!8]!31 [x ~ x ~ x ~ x!2 ~@8] ~>").gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@16 A@4 ~@16 A@8 ~@4 A@8 ~@12 A@23 B ~>".pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x!2 ~@8",
})).gain(0.3)

// drums · ride bell
const ride_bell = s("rd").struct("<~@8 A@8 ~@4 A@16 ~@8 A@4 ~@8 A@3 B A@8 ~@25>".pickRestart({
  A: "x!8", B: "x!4 ~@4",
})).gain(0.3)

stack(
  clarinet, overdriven_guitar, overdriven_guitar_2, distortion_guitar, distortion_guitar_2, bass, rim, kick, clap,
  snare, hihat, crash, ride_bell
)

More by Everclear