Strudelify

L'altra faccia dell'amore

Pooh

KeyD minorTempo128 bpm
0:00/0:00
// L'altra faccia dell'amore — Pooh
// 128 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 143 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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(`<
  ~@7 A B@4 C@3 ~ D@2 E F@3 G@4 H I@4 J@2 K@2 L@2 M@4 N@3 O@3 P Q@2 R@2 S@2 T U V W X@2 Y@2 Z@2 AA AB AC@2 AD@2 AE@2
  AF@2 AG@2 AH@2 AI@4 K@2 AJ@6 N@3 O@3 AK Q@2 R@2 S@2 T U V W X@2 Y@2 Z@2 AA AB AC@2 AL@2 AE@2 AM@2 AN@2 AO@3 AP@2 AQ@2
  AR AS@8 ~@2
>`.pickRestart({
  A: "~@4 f5 e5 d5 c5", B: "[d5@11 a4 f5 e5 d5 c5]/2", C: "[d5@8 a5@4 g5@8 e5@4 c5@4 d5@19 ~]/3",
  D: "[~@3 f4, f4@11 ~@5, d3 bb3, ~ d4@3]/2", E: "[c3,e4], g3@7 ~@9",
  F: "[~@16 d4@7 ~ d4@7 ~@13 f3@4, f2@15 ~ d3@15 ~ [bb2,bb3]@16, ~@4 f4@19 ~ f4@24]/3", // Bb
  G: "[~@20 f4@4 ~@8 f4@11 ~@5 bb3@11 ~@5, e4@10 ~@6 d4@7 ~@9, c3@16 [f2,f3]@8 [e2,e4]@8 d2@17 ~@15, g3@11 ~@9 a3@7 ~ a3@11 ~@25, ~@4 c4@39 ~ f4@20]/4", // F E
  H: "~ c4, e4",
  I: "[~@8 [e2,e4]@8 ~@8 d4@7 ~ [g2,bb3]@11 ~ bb3@4 d4@8 db4@8, f4@9 ~@7 f4@33 ~@15, ~@4 c4@17 ~@11 d4@12 ~@4 e4@16, ~ d2 ~@2, ~@16 a3@11 ~@37]/4", // E Gm
  J: "[~@12 a5@3 ~, [d3,a3,d4]@15 ~, ~@6 a4@4 d5@5 ~, ~@9 e5@6 ~, ~@11 a4@4 ~]/2", K: "[[d3,a3] [bb2,bb3], [d4,f4]]/2",
  L: "[[c3,g3,e4]@2 [f3,a3,f4] [e3,g3,e4], c4]/2", // C F Em
  M: "[[d3,a3]@8 [bb2,bb3]@8 [c3,g3]@8 ~@3 f4 ~@2 g4@2, [d4,f4]@8 e4@5 c4@3, ~@6 [f2,f3] ~, ~@50 a3@5 ~ [e3,g3,e4]@6 ~@2]/4", // D5 Bb C5 Dm F Em
  N: "[[d3,d4]@16 g3@11 ~@13 bb3@8, f4@2 ~, a3@7 ~ [g2,bb3]@8 [c3,c4,e4]@8, ~@8 d4@7 ~@9, ~@14 g3@9 ~]/3", // D Gm C
  O: "[[f3,f4] ~ d3@2 [g2,g3,bb3]@2, a3@11 ~ a3@19 ~@17, g4@3 ~@5 [e3,g4]@8 d4@28 ~@4, ~@8 e4@6 ~@2 f4@31 ~]/3", // F Gm Em
  P: "d4 db4, [a2,g3]", Q: "[d2@8 ~@4 [d2,gb3,a3,d4]@15 ~@5, [g3,a3,d4]@11 ~@21, d3@6 ~@2 d3@19 ~@5]/2",
  R: "[[c4,f4]@7 ~@9 [c4,f4]@7 ~@5 f3@2 f2@2, f2@7 ~, a4@23 ~@9, f3@8 [c4,f4]@4 f3@9 ~@3 [c4,f4,a4]@7 ~, ~@8 a3@23 ~]/2", // F5 F
  S: "[[db4,e4,g4]@8 [db4,e4]@7 ~ a2@4 ~@8 [a2,a3]@4, a2@15 ~@5 a3@7 ~@5, a3@11 ~@5 [db4,e4]@6 a2@5 ~@5, ~ g4@3, ~@24 [db4,e4]@7 ~]/2", // Dbdim Dbm A Dbm
  T: "d4@4 ~@4 d4@7 ~, f4@15 ~, bb2@5 ~@3, ~ bb3@3", U: "bb3@3 ~ bb3@3 ~ [a2,c4,f4]@8, [d4,f4] ~",
  V: "[bb3,d4]@7 ~@5 g3@3 ~, [g2,f4]@15 ~, g3@3 ~@5 [bb3,d4]@8", // Bb G7 Bb
  W: "bb3@3 ~ bb3@2 ~@2 g3@3 ~ g3@2 c2@2, c3, f4 [c4,e4], d4@3 c2@4 ~", // C
  X: "[[c4,f4]@7 ~@9 [c4,f4]@7 ~@5 [f3,a3]@3 ~, f2@31 ~, a3@27 ~@5, ~@8 [c4,f4]@7 ~@9 [c4,f4]@7 ~, ~@12 f3@9 ~@11]/2", // F5 F F5
  Y: "[[db4,e4]@7 ~@23 e3@2, e2, [e3,g3]@11 ~ e3@16 g3@4, ~@8 [db4,e4]@7 ~ g4@15 ~, ~@12 g3@4 [db4,e4]@4 g3@4 [db4,e4]@7 ~]/2", // Dbm Em Dbm
  Z: "[[bb3,d4,f4]@7 ~@9 [bb3,d4,f4]@9 ~ [a2,a3,e4]@5 ~, bb2@11 ~ bb2@7 ~@13, ~@8 [bb3,d4,f4]@7 ~@17]/2", // Bb A5 Bb
  AA: "[bb3,d4,f4] [bb3,f4], g2, ~@8 d4@5 ~@3, ~@8 g3@3 ~@5", // Bb Bb5
  AB: "g3@3 ~ g3@2 ~@2 g3@3 ~ c3@3 ~, c3@5 ~@3, [bb3,d4]@8 [bb3,c4,e4]@7 ~, f4@6 c2@7 ~@3", // Bb C7
  AC: "[[bb3,c4,d4,f4]@8 [c4,d4,f4]@8 [c4,d4,f4]@7 ~ bb3@4 bb2@4, bb2@27 ~@5, ~@8 bb3@3 ~@13 [c4,d4,f4]@8]/2", // Bb Dm7
  AD: "[[a3,c4,e4,g4]@8 a3@3 ~ a3@4 [a3,c4,e4]@4 [a3,c4,g4]@2 [a3,c4,f4]@3 ~ [a3,c4,e4]@6, a2, ~ [c4,e4,g4] ~@2]/2", // Am7 Am Am7 F Am C
  AE: "[[bb3,d4,f4]@8 [bb3,d4,f4]@7 ~ [bb3,d4,f4]@8 [bb3,d4,f4]@7 ~, g2@31 ~, ~@8 g3@3 ~@13 g3@2 ~@6]/2", // Bb
  AF: "[[a3,c4,e4,g4]@8 [c4,e4,g4]@8 [a3,c4,g4] ~ [a3,c4,f4]@6 [a3,c4,g4] ~@3 a2@4, a2@27 ~@5, ~@8 a3@3 ~@15 [a3,c4,f4]@6]/2", // Am7 C Am7 F Am7 F
  AG: "[[bb3,d4,f4]@7 ~ [bb3,d4,f4]@7 ~ [bb3,d4,f4]@7 ~ [bb3,d4,f4]@7 ~, g2@29 ~@3, g3@19 ~@13]/2", // Bb
  AH: "[[bb3,d4,f4]@7 ~ [d4,f4]@22 ~@2, c2@15 ~, c3@15 ~@17, f3@3 ~@5 bb3@7 ~@17]/2", // Bb Dm
  AI: "[[d2,d3,c4,d4,g4]@15 ~, g3@57 ~@7]/4", // Csus2
  AJ: "[[c3,g3,e4]@8 [f3,f4]@4 [e3,e4]@4 [d3,a3]@8 [bb2,bb3]@8 [c3,g3]@8 ~@3 f4 ~@2 g4@2, c4@33 ~@31 e4@20 c4@12, ~@16 a3@7 ~ g3@7 ~ [d4,f4]@33 ~@15 [f2,f3]@8 ~@8, ~@82 a3@5 ~ [e3,g3,e4]@6 ~@2]/6", // C F E D5 Bb C5 Dm F …
  AK: "f4 e4, [a2,g3,db4]", // A7
  AL: "[[a3,c4,e4,g4]@8 a3@3 ~ a3@4 [a3,c4,e4]@5 ~ [a3,c4,e4] ~ [a3,c4,f4] ~ [a3,c4,e4]@6, a2, ~ [c4,e4,g4] ~@2]/2", // Am7 Am F Am C
  AM: "[[a3,c4,e4,g4]@8 [c4,e4,g4]@8 c4@2 d4@2 f4@2 e4@2 f4 ~ a4 ~ bb4 ~ c5 ~, a2@27 ~ a2@4, ~@8 a3@3 ~@21]/2", // Am7 C
  AN: "[[bb3,d4,f4]@7 ~ [bb3,d4,f4]@7 ~ [bb3,d4,f4]@7 ~ [bb3,d4,f4]@7 ~, g2@29 ~@3, g3@19 ~@13, d5 ~@3]/2", // Bb
  AO: "[[f3,bb3]@4 [f3,a3]@4 [f3,bb3]@3 ~ [g3,c4]@26 a4@2 f5@2 e5@2 d5 ~ c5@2]/3", // Bb5 F Bb5 C5
  AP: "[d5@21 ~ a4@2 f5 ~ e5@2 d5 ~ c5@2]/2", AQ: "[d5@21 ~ a4 ~ f5@2 e5@2 d5 ~ c5@2]/2", AR: "d5@2 ~ e4",
  AS: "[~@6 e4@4 ~ c4@11 ~@2 d4@102 ~@2, ~@22 d3@105 ~, ~@23 [d2,gb3,a3]@105]/8", // D
})).s("gm_piano").gain(0.27).pan(0.7)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@16 A B C@3 D E ~ F G@2 H I J K ~@3 L ~@3 L M@2 ~@3 N ~@6 O P@2 Q@2 R ~ S O ~@3 T U V W@2 ~@2 X@2 Y ~@2 Z AA@2 ~@5 L
  ~@3 L M@2 ~@3 N ~@6 O P@2 Q@2 R ~ S O ~@3 T U V W@2 ~@2 X@2 Y ~@2 Z ~@18
>`.pickRestart({
  A: "~ a3@3", B: "~@2 f3@3 ~ f3 ~, bb2", C: "[~@8 g3@6 ~@14 a3@7 ~ a3@11 ~, ~ c4@7 ~@4, ~@8 a3@5 ~@11, ~@3 f3 ~@2]/3",
  D: "~ f3@2 ~, d4", E: "~@3 g3", F: "~ a3, ~ d3@3",
  G: "[~@20 g3@6 ~@2 g3@3 ~, g2 c3, d4@7 ~@9, ~@8 g3@9 ~@15, ~@3 bb3@5]/2", H: "[f2,a3]@10 ~@2 g3@3 ~",
  I: "~@3 a3, ~ d3@3", J: "~@4 g3@3 ~", K: "a3@3 ~ a3@5 ~@7, a2@7 ~@9", L: "~@4 f3@3 ~", M: "[~@4 c4@15 ~@11 e3@2]/2",
  N: "~ c4@3", O: "~@3 f3@2 ~@3", P: "[~@12 a3@7 ~@13]/2", Q: "[~@3 bb2@3 ~@2]/2", R: "~@4 g3@7 ~@5", S: "~@6 f3@5 ~@5",
  T: "~ bb2 ~@2", U: "~@14 d4 ~, ~@3 g3", V: "~@6 g3 c2", W: "[~@3 bb3@3 ~@2]/2", X: "[~@12 g3@7 ~ g3@3 ~@5 g3@3 ~]/2",
  Y: "~@12 a3@3 ~", Z: "~@4 g3@7 ~ g3@2 g2@2", AA: "[~@4 f3@7 ~@5 c3@15 ~, ~@3 f3@4 ~, ~@16 bb3@13 ~@3]/2",
})).s("gm_piano").gain(0.16).pan(0.7)

// bass · fretless bass
const bass = note(`<
  ~@4 A@2 B C D@2 E@2 F@2 G@2 C H I J C H I K C L I K C L M N@2 C H I K C H I O P H Q R C H S T@2 U V W X Y Z AA AB AC
  AD AE AF Y AG AH AI Y AJ AK AL AM AN AO AL AP AQ AR I AS@4 C H I K C H I O P H Q R C H S T@2 U V W X Y Z AT AB AC AD
  AE AF Y AG AH AI Y AU AK AL AM AN AO AL AP AQ AV@3 AW@2 AX ~ AY AZ@8 ~@2
>`.pickRestart({
  A: "d2/2", B: "d3 d2@2 d3 d2@6 d3@6", C: "d2", D: "[d1@8 f3@4 e3@19 ~]/2", E: "[c3@4 e3@4 f3@4 g3@19 ~]/2",
  F: "[c1@2 a3 g3@2 e3 c3 [d2,d3]]/2", G: "[d1,d2]/2", H: "bb1", I: "c2", J: "f1", K: "f1 e2", L: "g1", M: "a1",
  N: "[d2@12 a1@3 ~]/2", O: "f2 e2", P: "d2 c2", Q: "c2 bb1", R: "a1@2 f1 a1", S: "a1 db2",
  T: "[d2@10 ~@2 d2@15 ~ e2@3 ~]/2", U: "f1@8 ~@4 f2 ~@3", V: "f2@11 ~ f2@2 f1@2", W: "a1@9 ~@3 a1@2 ~@2",
  X: "a1@6 e2 a1", Y: "bb1@9 ~@3 bb1 ~@3", Z: "bb1 a1", AA: "g1@9 ~@3 bb1@2 d2@2", AB: "c2@4 c3 g2 c2@2",
  AC: "f1@9 ~@3 [f1,g1] ~@3", AD: "f1@11 ~ f1@2 g1 ~", AE: "a1@9 ~@3 e1@2 ~@2", AF: "a1@11 ~ a1@3 ~",
  AG: "bb1@9 ~ a1@5 ~", AH: "g1@6 bb1 ~", AI: "c2@15 ~", AJ: "bb1@7 ~, c2 ~@15", AK: "a1@9 ~@3 a1 ~@3", AL: "a1@15 ~",
  AM: "g1@8 ~@4 g1 ~@3", AN: "g1@13 ~@3", AO: "a1@11 ~ a1 ~@3", AP: "g1@9 ~@3 g1 ~@3", AQ: "g1@12 bb1@2 d2 ~",
  AR: "c2@7 ~", AS: "d2/4", AT: "g1@9 ~@3 bb1@2 d2@2, ~@14 e2 ~", AU: "bb1@7 ~", AV: "[c2 c2@3]/3", AW: "d3/2",
  AX: "c3@3 ~", AY: "d3@3 ~ d3@3 ~ a3@4 g3@4", AZ: "[~@6 e3@5 c3@12 [d1,d2]@105]/8",
})).s("gm_fretless_bass").gain(0.4)

// bass · fretless bass · soft notes
const bass_soft = note("<~@52 A ~ B ~ C ~@7 D ~@5 E@2 ~@4 F ~@24 A ~ B ~ C ~@7 D ~@5 E@2 ~@22>".pickRestart({
  A: "~@10 a1 ~@5", B: "~@14 bb1 ~", C: "~@5 g1 ~@2", D: "~@14 d2 ~", E: "~@14 g1 ~", F: "~@14 c2 ~",
})).s("gm_fretless_bass").gain(0.25)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 G H@3 I@2 J@2 I@2 K L M ~ N O P ~ Q R@2 S T U V@3 W@2 X ~ Y@2 Z AA AB AC@3 AD@2 AE@2 AF@4 AG@3
  AH AI AJ AK AL@2 AM@2 AN@2 AO@2 AP@4 ~@2 AQ@2 S T U V@3 W@2 X ~ Y@2 Z AA AB AC@3 AD@2 AE@2 AF@4 AG@3 AH AI AJ AK AL@2
  AM@2 AN@2 AO@2 AP@2 AR@3 AS@2 AT@4 AU@8 ~
>`.pickRestart({
  A: "[~@2 a3 ~ d4 ~@13 e4@2 d4@2 c4@2 d4@2 [d3,a3]@6, d3@3 d3@2 d3@3 d3@5 ~@3, ~@4 c4@2 e4@3 ~@7]/2", // D5
  B: "[~@2 a3 ~ d4 ~@7 a4@20, d3@3 d3@2 d3@3 ~@8, ~@2 c4 ~@5]/2",
  C: "[~@2 a3 ~@15 e4@2 d4@2 c4@2 d4@2 [d3,a3]@6, d3@3 d3@2 d3@3 d3@5 ~@3, ~@2 d4@2 c4@2 e4@3 ~@7]/2", // D5
  D: "[~@2 a3 ~@9 a4@20, d3@3 d3@2 d3@3 ~@8, ~ d4 c4 ~@5]/2",
  E: "[a4 d4 a4 d4 a4 d4 a4 d4 a4 d4 a4 d4 a4 d4 a4 d4, ~ a3 f4 e4@5]/2",
  F: "[e4 a4 ~ a4 ~ a4 d4 a4 e4 a4 d4 a4 e4 a4 d4 a4, ~@4 e4@4 f4@4 g4@19 ~]/2",
  G: "d4@2 g4 ~ e4@2 g4@2 d4@2 g4@2 e4@2 g4@2", H: "[d4@2 g4@2 e4@2 g4@2 c4@4 [d3,a3,d4]@35 ~]/3",
  I: "[~@4 a3@4 d4@4 a3@19 ~]/2", J: "[~@4 g3@4 c4@4 g3@19 ~]/2", K: "~@4 g3@3 ~ c4@4 g3@4, c3",
  L: "f4 a3 c4 f4 e4 g3 c4 e4", M: "f3 a3 d4 a3", N: "e4@3 ~ c4@2 d4 ~ e4@4 [g3,c4]@4",
  O: "f4@3 ~ a3@2 c4@2 e4@4 g3@2 c4@2", P: "~ a3 [f3,d4] a3", Q: "a2@4 a3@3 ~ db4@4 e4@3 ~", R: "[[d3,a3,d4]@31 ~]/2",
  S: "~ a3 d4 a3, f3", T: "~ f4 a4@2, bb2@15 ~", U: "~@4 g3@4 c4 g3@2 e3@5, c3",
  V: "[c4@3 ~@2 a3 d4 c4@5, ~@3 c4@4 a3 ~@4]/3", W: "[~@8 g3@3 ~ c4@20]/2", X: "f3 a3 c4 f4 c4 a4 f4 ~",
  Y: "[e4@3 ~ d4@2 e4@2 c4@4 g3@2 c4@12 ~@6]/2", Z: "~@4 d4@3 f4@3 a4@2 f4@4, f3", AA: "bb2@15 ~",
  AB: "~@8 db4@3 ~ e4@4, a2", AC: "[[a3,d4,g4]@10 ~@2 [a3,d4,gb4]@19 ~ [a3,c4,f4]@16, ~@31 f3@17]/3",
  AD: "[f4@7 ~ c5@7 ~ [db4,e4,a4,db5]@16, ~@15 a3@16 ~]/2", AE: "[~ [d4,f4], ~@15 [f3,bb3]@17]/2",
  AF: "[f4@7 ~ g4@7 ~ [d4,g4,bb4]@15 ~ [c4,e4,a4]@5 ~ [g3,c4,e4,g4]@8 ~@2 [f3,a3,c4]@16, ~@15 bb3@15 ~ g3@6 ~@10 c3@17]/4", // Gm Am C F
  AG: "[~@8 c4@7 ~ [a3,d4]@24 [e3,a3,db4]@8, ~@5 e3@8 ~@3]/3", AH: "f3 bb3 d4 bb3 f4 d4 bb3 d4",
  AI: "f3 bb3 d4 bb3 f4 [a3,c4]@3", AJ: "[f3,bb3]@7 ~", AK: "f4@7 ~ e4@8", AL: "[~ f3 a3 d4@5, bb2]/2",
  AM: "[c4@4 e3@3 ~ f3@4 c4@20]/2", AN: "[~ a3 bb3 f4@5]/2", AO: "[c4@8 d4@3 ~ c4@19 ~]/2",
  AP: "[~@4 g3@3 ~ bb3@4 c4@20]/2", AQ: "[[d3,a3,d4]@29 ~@3]/2", AR: "[~@4 g3@3 ~ bb3@4 c4@36]/3",
  AS: "[~@4 d4@4 c4@4 e4@6 e4@2 d4@2 c4@2 d4@2 a3@5 ~]/2", AT: "[~ d4 c4 e4@5]/2", AU: "[~@7 [gb3,a3,d4]@107 ~@14]/8",
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.4)

// other · electric guitar muted · D5
const electric_guitar_muted = note("<~@3 [d4 ~@2 d4 ~@2 a3@3 ~@7] ~@3 [c4 d4!5 [a3,d4] ~ d4!5 ~@3] ~@135>")
  .s("gm_electric_guitar_muted").gain(0.35).pan(0.4)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A@8 B@2 C@2 D E F@2 G@2 H I J G H K J L M N J G O P@2 G@2 H I J G H K J L M N J G O Q@2 R@2 S@2 T@2 U V R@2 W@2 X@2 U
  Y Z@2 AA@2 Z@2 AA@2 AB@2 AC@2 AD@4 G@2 H I J G H K J L M N J G O Q@2 R@2 S@2 T@2 U V R@2 W@2 X@2 U Y Z@2 AA@2 Z@2 AA@2
  AB@2 AE@3 AF@4 AG AH AI@8 ~
>`.pickRestart({
  A: "[~ [d2,d3,a3,c4], [d2,d3,a3,c4] ~, ~@11 a4@21]/8", B: "[d3,a3,d4,a4]/2", C: "[f4@3 e4@5, [c3,g3,c4]@31 ~]/2",
  D: "[bb2,f3,bb3,d4]", E: "[c3,g3,c4,e4]@3 [d3,f3,a3,d4]", F: "[d3,f3,a3,d4,d5]/2", G: "[d3,f3,a3]", H: "[c3,e3,g3]",
  I: "[a3,c4,f4]", J: "[f3,a3,d4]", K: "[a3,c4,f4] [g3,c4,e4]", L: "[d3,f3,bb3]", M: "[e3,g3,c4]",
  N: "[a3,c4,f4] [a3,c4,e4]", O: "[e3,a3,d4] [e3,a3,db4]", P: "[d3,f3,a3,d4]/2",
  Q: "[[a3,d4,g4]@2 [a3,d4,g4] [a3,d4,gb4]@5]/2", R: "[f3,a3,c4,f4]/2", S: "[e3,a3,db4,e4]/2",
  T: "[[bb3,d4,f4,a4]@3 [a3,c4,e4,g4]]/2", U: "[g3,bb3,d4,f4]", V: "[d4,f4,a4] [c4,e4,g4]",
  W: "[[a3,e4,g4]@3 [a3,db4,e4]]/2", X: "[[a3,d4,f4]@13 [c4,e4,g4]@3]/2", Y: "[c4,e4,g4]", Z: "[f3,bb3,d4]/2",
  AA: "[e3,g3,c4]/2", AB: "[d3,f3,bb3]/2", AC: "[c3,e3,g3,c4]/2", AD: "[d2,d3,f3,a3,d4]/2", AE: "[c3,e3,g3,c4]/3",
  AF: "[d3,a3,d4]/4", AG: "[d3,a3,d4]", AH: "~ [g3,c4,e4]@7", AI: "[~@7 [d2,d3,f3,a3,d4]@121]/8",
})).s("gm_string_ensemble_2").gain(0.15)

// other · distortion guitar
const distortion_guitar = note("<~@77 A B C@2 D ~@61>".pickRestart({
  A: "~@12 a3 d4 e4 ~", B: "a4", C: "[~@2 a4@2 ~ a4@2 ~ a4@2 ~ a4@3 ~ a4@14 ~ a4 g4]/2", D: "d4@15 ~, f4 ~@15",
})).s("gm_distortion_guitar").gain(0.4)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@13 A ~@26 B ~@10 B C ~@2 B@2 ~@2 B ~@5 C ~@7 B ~ B ~@3 B ~@9 B ~@3 B ~@6 B C ~@2 B@2 ~@8 C ~@7 B ~ B ~@18
>`.pickRestart({
  A: "~@3 x", B: "~@7 x", C: "~@3 x ~@4",
})).gain(0.16)

// drums · rim
const rim = s("rim").struct("<~@8 A@25 ~@33 A@10 ~@39 A@10 B ~@2 A@4 ~@11>".pickRestart({
  A: "~ x", B: "~@3 x",
})).gain(0.28)

// drums · snare
const snare = s("sd").struct("<~@33 [~ x]!33 ~@16 [~ x]!33 ~@28>").gain(0.4)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@33 A B C D A E C F A B@2 G A E H I J ~@16 K J L@2 A L@2 F K J ~ D ~@4 A B C D A E C F A B@2 G A E H I J ~@16 K J L@2
  C L@2 F K J ~@18
>`.pickRestart({
  A: "~ x!3", B: "x!3 ~", C: "x!4", D: "x", E: "x!2", F: "x ~ x ~@2 x ~@2", G: "x ~@2 x", H: "~ x!2 ~", I: "~ x ~@2",
  J: "x!2 ~@2", K: "~ x ~ x", L: "x!2 ~ x",
})).gain(0.32)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@36 A ~ B ~@7 B ~@38 A ~ B ~@7 B ~@47>".pickRestart({
  A: "~@2 x!2 ~ x ~@2", B: "~ x ~@2",
})).gain(0.16)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@8 A ~@3 A ~ A ~ A ~@3 A ~@3 A ~@3 A ~@2 A ~ A ~@15 B ~@27 C A ~@2 D ~@16 B ~@30 A ~@13
>`.pickRestart({
  A: "x", B: "~@5 x ~@2", C: "~ x", D: "~@3 x!2 ~@3",
})).gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@40 A ~@8 A ~@7 B ~@5 C ~@9 C ~@7 D ~@7 A ~@8 A ~@7 B ~@5 C ~@9 C ~@20>".pickRestart({
  A: "~@3 x ~@4", B: "~@3 x ~ x ~@2", C: "~ x ~ x ~@4", D: "~ x ~@6",
})).gain(0.28)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@34 A ~ A ~ A ~ A ~ A@2 B ~ A@2 C A ~@17 A ~ D ~ D ~ A ~ A C A ~@3 A ~ A ~ A ~ A ~ A ~ A@2 B ~ A@2 C A ~@17 A ~ D ~ D
// … 56 more lines

More by Pooh