Strudelify

Gli altri siamo noi

Tozzi

KeyF majorTempo90 bpm
0:00/0:00
// Gli altri siamo noi — Tozzi
// 90 bpm, 4/4, key F major. 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: duplicate parts dropped: ch 16 piano (copy of ch 1 piano)
// note: Full arrangement: all 118 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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.

// bass · piano
const bass = note(`<
  ~@2 A B C D A B C D E F G H E F G I E F G H E F G H A B C D J K C L M N O D J K P Q M N O R S T U V M W X Y Z W AA Y C
  AB AC AD AE AF M W X Y Z W AA Y J K C L M N O R S T U V M W X Y Z W AA Y M W X Y Z W AA Y M W X Y Z W AA Y M W AG Y Z
  W AA AH AI@2
>`.pickRestart({
  A: "bb1@6 ~ bb1 bb1@7 ~", B: "a1@7 a1 a1@7 ~", C: "g1@6 ~ g1 g1@8", D: "f1@3 c2@3 f2@2 f1@3 c2@3 f2@2",
  E: "bb1@7 ~ bb1@8", F: "a1@7 ~ a1@7 ~", G: "g1@8 g1@7 ~", H: "f1@7 ~ f1@6 ~@2", I: "f1@4 f1@3 ~",
  J: "bb1@4 ~ bb1 ~ bb1 bb1@6 ~@2", K: "a1@5 a1 ~ a1 a1@6 ~@2", L: "f1@2 ~ c2@3 f2@2 f1@2 ~ c2@3 f2@2",
  M: "bb1@4 ~ bb1 ~ bb1 bb1@7 ~", N: "a1@4 ~ a1 ~ a1 a1@7 ~", O: "g1@6 ~ g1 g1@7 ~", P: "g1@6 g1 g1@8 ~",
  Q: "f1@2 c2@3 ~ f2@2 f1@2 ~ c2@3 f2@2", R: "d1@3 a1@3 d2@5 ~ d2 c2 a1 ~", S: "eb2@4 ~ eb2 ~ eb2 eb2@6 d2 eb2",
  T: "bb1@4 ~ bb1 ~ bb1 bb1@5 ~ bb1 a1", U: "ab1@4 ~ ab1 ~ ab1 ab1@5 ab2 ~ ab1",
  V: "eb1@6 ~ eb1 eb2 eb1 ~ eb1 ~ eb2 ~@2", W: "a1@4 ~ a1 ~ a1 a1@5 a2 ~ a1", X: "g1@4 ~ g1 ~ g1 g1@5 ~ g1 ~",
  Y: "f1@3 c2@3 f2@2 f1@3 c2@3 f2 ~", Z: "bb1@4 ~ bb1 ~ bb1 bb1@5 bb2 ~ bb1", AA: "g1@4 ~ g1 ~ g1 g1@4 ~ g2 ~ g1",
  AB: "gb1@6 ~ gb1 gb1@7 ~", AC: "f1@6 ~ f1 f1@7 ~", AD: "c2@7 c2 c2@5 c2 ~@2",
  AE: "bb1 ~ bb1 ~@2 bb1 ~ bb1 bb1@5 ~ bb1 a1", AF: "ab1@5 ab2 ~ ab1 eb1@3 eb2 ~ eb2 eb1 ~",
  AG: "g1@4 ~ g1 ~ g1 g1@6 g1 ~", AH: "f1@3 c2@3 f2@2 f1@3 ~ c2@3 f2", AI: "[~ bb1@20 ~@11]/2",
})).s("gm_piano").gain(0.46)

// chords · piano
const piano = note(`<
  ~@2 A@3 B A@3 C D E F G H E F I A@3 J K L M N O P Q J R S T U V W X Y O P Q J K L Z AA AB AC AD AE O P AF J AG P Q AH
  ~@6 O P AF J AG P Q AH O P Q AI K L Z AA AB AC AD AJ O P AF J AG P Q AH O P AF J AG P Q AH O P AF J AG P Q AH O P AF J
  AK P Q AL AM@2
>`.pickRestart({
  A: "[~@2 [bb3,d4]@3 [c4,eb4]@3 [d4,f4]@3 [c4,eb4]@3 [bb3,d4]@4 [a3,c4]@3 [bb3,d4]@3 [c4,eb4]@3 [bb3,d4]@3 [a3,c4]@4 [g3,bb3]@3 [a3,c4]@3 [bb3,d4]@3 [a3,c4]@3 [g3,bb3]@2]/3", // Bb Cm Dm Cm Bb Am Bb Cm …
  B: "d4@3 c4@3 bb3@2 d4@3 c4@3 bb3@2", C: "d4@3 c4@3 bb3@2 d4@3 c4@3 [eb3,bb3]@2", D: "[bb3,c4,d4]", E: "[a3,c4]@15 ~",
  F: "[g3,bb3,c4]@15 ~", G: "[f3,bb3,c4]@12 f4@3 ~", H: "d4@3 eb4, bb3@15 ~", I: "[f3,bb3,c4]@13 ~@3",
  J: "[bb3,d4]@3 [a3,c4]@3 [g3,bb3]@2 [bb3,d4]@3 [a3,c4]@3 [g3,bb3]@2", K: "~@2 [bb3,d4]@3 [c4,eb4]@3 [d4,f4]@6 ~@2",
  L: "~@2 [a3,c4]@3 [bb3,d4]@3 [c4,eb4]@7 ~", M: "~@2 [g3,bb3]@3 [a3,c4]@2 ~ [bb3,d4]@6 ~@2",
  N: "[bb3,d4]@3 [a3,c4]@3 g3@2 [bb3,d4]@3 [a3,c4]@3 [g3,bb3] ~, ~@6 bb3 ~@9", // Bb Am Bb Am Gm
  O: "~@2 [bb3,d4]@3 [c4,eb4]@3 [d4,f4]@3 [c4,eb4]@3 [bb3,d4]@2", // Bb Cm Dm Cm Bb
  P: "~@2 [a3,c4]@3 [bb3,d4]@3 [c4,eb4]@3 [bb3,d4]@3 [a3,c4]@2", // Am Bb Cm Bb Am
  Q: "~@2 [g3,bb3]@3 [a3,c4]@3 [bb3,d4]@3 [a3,c4]@3 [g3,bb3]@2", // Gm Am Bb Am Gm
  R: "~@2 [bb4,d5]@3 [c5,eb5]@3 [d5,f5]@3 [c5,eb5]@3 [bb4,d5]@2", // Bb Cm Dm Cm Bb
  S: "~@2 [a4,c5]@3 [bb4,d5]@3 [c5,eb5]@3 [bb4,d5]@3 [a4,c5]@2", // Am Bb Cm Bb Am
  T: "~@2 [g4,bb4]@3 [a4,c5]@3 [bb4,d5]@3 [a4,c5]@3 [g4,bb4]@2", // Gm Am Bb Am Gm
  U: "[bb4,d5]@3 [a4,c5]@3 [g4,bb4]@2 [bb4,d5]@3 [a4,c5]@3 [g4,bb4]@2", V: "~@2 [bb4,d5]@3 [c5,eb5]@3 [d5,f5]@6 ~@2",
  W: "~@2 [a4,c5]@3 [bb4,d5]@3 [c5,eb5]@7 ~", X: "~@2 [g4,bb4]@3 [a4,c5]@3 [bb4,d5]@7 ~",
  Y: "[bb4,d5]@3 [a4,c5]@3 [g4,bb4]@2 d5@3 [a4,c5]@3 [g4,bb4] ~, ~@8 bb4 ~@7", Z: "~@2 [g3,bb3]@3 [a3,c4]@3 [bb3,d4]@8",
  AA: "[a3,c4,gb4]@15 ~, d4 ~@15", AB: "~@7 bb4, [f4,g4,bb4]@10 bb3@3 g4@3, ~@9 eb3@5 ~@2, ~@11 eb4@3 ~@2, ~@3 f4",
  AC: "c4 ~@2 bb3@6 ~@5 f4 c4, [d4,f4]@11 bb3@4 ~, bb2@8 ~ bb2@6 ~, ~@2 f3@7 ~ f3@5 ~, ~@12 c4 d4@2 ~", // Dm
  AD: "[bb3,c4]@2 ~@9 [bb3,c4]@2 eb3 ab3 ~, ab2@7 ~, eb4@4 bb3 c4@2 eb4@9, ~@2 eb3@7 ab4@7, ~@3 ab3@8 ~@5", // Bbsus2
  AE: "~@15 g4, eb3@7 bb4@5 bb3@3 ~, ~ bb3@4 g4@8 eb4@2 ~, ~@2 eb4@7 eb5@4 ~ f4@2, ~@3 f4@8 eb3@5",
  AF: "~@2 [g3,bb3]@3 [a3,c4]@3 [bb3,d4]@3 [a3,c4]@3 [g3,bb3]@2, ~@5 b3 ~@10", // Gm Am Bb Am Gm
  AG: "~@2 [bb3,d4]@3 [c4,eb4]@3 [d4,f4]@3 [c4,eb4]@3 [bb3,d4] ~", // Bb Cm Dm Cm Bb
  AH: "[bb3,d4]@3 [a3,c4]@3 [g3,bb3]@2 [bb3,d4]@3 [a3,c4]@3 [g3,bb3] ~", // Bb Am Gm Bb Am Gm
  AI: "[bb3,d4]@3 [a3,c4]@2 [g3,bb3]@2 ~ [bb3,d4]@3 [a3,c4]@3 [g3,bb3]@2", // Bb Am Gm Bb Am Gm
  AJ: "~@15 g4, eb3@7 bb4@6 eb4@2 ~, ~ bb3@4 g4@6 eb3@5, ~@2 eb4@7 eb5@4 ~ f4@2, ~@3 f4@9 bb3@3 ~",
  AK: "~@2 [bb3,d4]@3 [c4,eb4]@3 [d4,f4]@3 [c4,eb4]@3 d4@2, ~@14 bb3 ~", // Bb Cm Dm Cm
  AL: "[bb3,d4]@3 [a3,c4]@3 [g3,bb3]@2 [bb3,d4]@3 ~ [a3,c4]@3 [g3,bb3]", AM: "[~ [f3,bb3,d4]@20 ~@11]/2",
})).s("gm_piano").gain(0.36)

// chords · piano
const piano_2 = note("<~@5 A B@4 ~@17 C D E F@4 G H D I J@5 K@2 ~@13 L@3 M N O ~@8 P@5 Q@2 ~@39>".pickRestart({
  A: "c4@15 ~", B: "[~@16 a3@15 ~ g3@15 ~ c4@15 ~, f3@31 ~]/4", C: "c4", D: "bb3@15 ~", E: "c4 [f4,bb4,c5]",
  F: "[~@16 c4@16 bb3@16 d5@2 ~ c5@2 bb4@2 ~ d5@3 c5@2 ~@3, f4@31 ~, ~@48 c4@15 ~]/4", G: "d5", H: "[c4,c5]@15 ~",
  I: "d5@3 c5@2 bb4@2 ~ [d5,d6]@3 c5@3 ~@2, c4@15 ~", // D
  J: "[~@2 d5@2 ~ eb5@2 ~ f5@2 ~ eb5@2 ~ d5@2 ~@2 c5 ~@2 d5 ~@2 eb5@2 ~ d5@2 ~ c5 ~@3 bb4@2 ~ c5@2 ~ d5@2 ~ c5 ~ bb4 ~@2 d5@2 ~ c5 ~@2 bb4 ~ d5 ~@2 c5@2 ~ bb4 ~@3 d5@2 ~ eb5@2 ~ f5@3 ~@5, f4@79 ~, ~@16 c4@15 ~ bb3@16 c4@15 ~ d4@16]/5",
  K: "[~@2 c5@2 ~ d5 ~@2 eb5@2 ~@8 bb4@2 ~ c5 ~@2 d5@3 ~@5, f4@31 ~, c4@16 bb3@15 ~]/2",
  L: "[[bb3,g4]@15 ~ [a3,gb4]@16 [ab3,f4]@16, d4@47 ~]/3", M: "[g3,c4,eb4]@15 ~", N: "[f3,bb3,d4,bb4]",
  O: "[ab3,c4,ab4]@8 [eb3,g3,eb5]@7 ~, eb4", // Ab Eb
  P: "[~@2 d5@2 ~ eb5@2 ~ f5@2 ~ eb5@2 ~ d5 ~@3 c5@2 ~ d5 ~@2 eb5@2 ~ d5@2 ~ c5 ~@3 bb4@2 ~ c5@2 ~ d5@2 ~ c5 ~ bb4 ~@2 d5@2 ~ c5 ~ bb4 ~@2 d5 ~@2 c5@2 ~ bb4 ~@3 d5@2 ~ eb5@2 ~ f5@3 ~@5, f4@79 ~, ~@16 c4@15 ~ bb3@16 c4@15 ~ d4@16]/5",
  Q: "[~@2 c5@2 ~ d5 ~@2 eb5@2 ~@8 bb4@2 ~ c5 ~@2 d5@2 ~@6, f4@31 ~, c4@15 ~ bb3@15 ~]/2",
})).s("gm_piano").gain(0.31)

// chords · piano · soft notes
const piano_soft = note("<~@2 A@8 ~@16 B@4 C D E F G H@3 I ~@6 J ~@26 I ~@6 J ~@38>".pickRestart({
  A: "[[bb3,d4]@16 [a3,c4]@16 [g3,bb3]@16 ~@16 [bb3,d4]@15 ~ c4@15 ~ bb3@15 ~@17, f4@63 ~]/8", // Bb Am Gm Bb
  B: "[f4@7 ~, d4@15 ~@49]/4", C: "[d4,d5]", D: "c5@15 ~", E: "bb4@15 ~", F: "~@13 bb4@2 ~", G: "[d4,f4,d6]",
  H: "[c6@15 ~ [bb4,bb5]@15 ~ d6@2 c6@3 ~ bb5@2 ~@3 c6@2 ~ bb4@2, f4@47 ~]/3", I: "d4@15 ~", J: "[gb4,c5]@7 ~",
})).s("gm_piano").gain(0.15)

// other · piano
const piano_3 = note("<A@45 B C D E ~ A@8 ~@6 A@15 B C D E ~ A@16 ~@18>".pickRestart({
  A: "f4 ~ f4!2 ~ f4!2 ~ f4!2 ~ f4!2 ~ f4 ~", B: "gb4 ~ gb4!2 ~ gb4!2 ~ gb4!2 ~ gb4!2 ~ gb4 ~",
  C: "eb4 ~ eb4!2 ~ eb4!2 ~ eb4!2 ~ eb4!2 ~ eb4 ~", D: "bb3 ~ bb3!2 ~ bb3!2 ~ bb3!2 ~ bb3!2 ~ bb3 ~",
  E: "ab3 ~ ab3!2 ~ ab3!2 ~ ab3!2 ~ ab3!2 ~ ab3 ~",
})).s("gm_piano").gain(0.28)

// chords · piano
const piano_4 = note(`<
  ~@46 A B C D E@6 F G ~@6 H@6 F I ~@8 A B C D J@6 F G K@6 F G K@6 F G L M N O@3 F P Q@2
>`.pickRestart({
  A: "[bb3,eb4,g4]", B: "[bb3,d4,f4]", C: "[ab3,c4,eb4]",
  D: "[bb3,eb4,g4]@8 [bb3,eb4]@4 [bb3,d4]@2 [gb3,ab3,bb3] ~, gb4 ~@15", // Eb Eb5 Bb Gb
  E: "[[bb3,d4]@15 ~ [a3,c4]@16 [g3,bb3,d4]@16 [a3,c4]@13 [e3,f3,g3] d3 [a3,b3,c4,db4] ~@16 [a3,c4]@15 ~, f4@61 ~@2 f4@32 ~, db4 ~@62 [bb3,d4]@16 ~ db4 ~@15]/6", // Bb Am Gm Am Em Am Bb
  F: "[g3,bb3,d4,f4], db4 ~@15", G: "[a3,c4,f4]@13 [c3,d3,e3,f3,g3] [f2,g2,a2,b2] ~",
  H: "[[bb3,d4]@15 ~ [a3,c4]@16 [g3,bb3,d4]@16 [a3,c4]@13 [e3,f3,g3] d3 [a3,b3,c4,db4,d4] ~@16 [a3,c4]@15 ~, f4@61 ~@3 f4@32, db4 ~@62 bb3@16 ~ db4 ~@15]/6", // Bb Am Gm Am Em Am
  I: "[a3,c4,f4]@13 [e3,f3,g3] [f2,g2,a2,b2,c3,d3] ~", // F Em Dm7
  J: "[[bb3,d4]@15 ~ [a3,c4]@16 [g3,bb3,d4]@16 [a3,c4]@13 [f3,g3] [d3,e3] [a3,b3,c4,db4,d4] ~@16 [a3,c4]@15 ~, f4@61 ~@3 f4@32, db4 ~@62 bb3@16 ~ db4 ~@15]/6", // Bb Am Gm Am Fsus2 Dsus2 Am
  K: "[[bb3,d4]@15 ~ [a3,c4]@16 [g3,bb3,d4]@16 [a3,c4]@13 [e3,g3] d3 [a3,b3,c4,db4,d4] ~@16 [a3,c4]@15 ~, f4@61 ~@3 f4@32, db4 ~@60 f3@2 bb3@16 ~ db4 ~@15]/6", // Bb Am Gm Am Em Am
  L: "[bb3,d4,f4]@15 ~, db4 ~@15", M: "[a3,c4,f4]", N: "[g3,bb3,d4,f4]",
  O: "[[a3,c4,f4]@13 g3 [d3,e3] [a3,b3,c4,db4,d4] ~@16 [a3,c4]@15 ~, ~@13 f3@2 [bb3,f4]@16 f4@16 ~, ~@32 db4 ~@15]/3", // F Dsus2 Am Bb5
  P: "[a3,c4,f4]@14 [b2,c3,d3,e3,f3,g3] [f2,g2,a2]", Q: "[~ [bb3,d4,f4]@20 ~@11]/2",
})).s("gm_piano").gain(0.41)

// chords · piano · soft notes
const piano_soft_2 = note(`<
  ~@47 A ~ B ~@3 C ~@3 D ~@9 E F ~@2 D ~@9 A ~ B ~@3 G H ~@2 D ~@3 G H ~@2 D ~@3 G H ~@2 D ~@3 G H ~@2 I ~@2
>`.pickRestart({
  A: "db4 ~@15", B: "~@14 db4 ~", C: "~@12 d4 b3 g3 [eb4,e4]", D: "~@12 [b3,d4] ~@3", E: "~@12 d4 b3 ~ [g3,eb4,e4]",
  F: "d4", G: "~@12 d4 b3 g3 e4", H: "d4, eb4 ~@15", I: "~@13 [b3,d4] ~@2",
})).s("gm_piano").gain(0.2)

// chords · piano
const piano_5 = note(`<
  ~@58
  [~@3 d4 ~@2 bb3@2 ~@3 d4 ~@2 bb3@2, g2@7 ~ g2@7 ~, ~@2 g3@3 d4@3 ~@2 g3@3 d4@3, ~ g4 ~ g4]
  [~@3 d4 ~@3 d3 ~@3 d4 gb4 d4 a3 gb3, gb2@6 a3@2 gb2@7 ~, ~@2 a3@2 gb4@3 ~@9, ~@5 d4@2 ~@3 a3@2 ~@4]
  [~@3 c4 ~@3 f3 ~@3 c4 ~@2 ab3@2, f2@7 ~ f2@7 ~, ~@2 f3@3 c4@3 ~@2 f3@3 c4@3, ~@4 f4@2 ab3@2 ~ c3@6 ~, ~@3 f4]
  [~@3 g3 ~@3 c3 ~@3 g3 c4@2 ~ c3, c2@6 eb3@2 ~ g2@7, ~ g2@6 ~ c2@8, ~@2 c3@3 g3@3 ~@2 c3@4 eb3@2, ~@4 c4@5 ~@7]
  [d4@3 f4@2 bb3 c4@2 ~@2 c4 ~@2 d4@2 ~, bb2@15 ~, ~@8 d4@2 ~ f4@5, ~@9 bb3@4 ~@3]
  [~@3 bb3@3 ~@6 g3@2 eb4 eb3, ab2@7 bb3@2 bb2@7, ~ ab3@2 ab4 eb2@4, ~@5 eb3@2 ~, ~@11 f3@3 ~@2]
  ~@54
>`).s("gm_piano").gain(0.26)

// chords · piano · soft notes
const piano_soft_3 = note("<~@58 A B C D E@2 ~@54>".pickRestart({
  A: "~ d3@6 g3 ~ d3@5 ~ g3", B: "~ d3@5 ~@3 d3@6 ~", C: "~ c3@6 ~@8 f3", D: "~@13 g3@3",
  E: "[~@2 bb3@2 f3@2 ~ f3@5 ~@2 f3 c4@2 ~@4 eb4@3 ~@5 bb3@3, ~ f3@2 ~@14 eb3@5 ~@10, ~@5 c4 ~@2]/2",
})).s("gm_piano").gain(0.1)

// other · piano
const piano_6 = note("<~@100 A B C D E F G H I J K L M N O P Q ~>".pickRestart({
  A: "~@2 d6@2 ~ eb6@3 f6@3 eb6@2 ~ d6@2, ~@2 db6 ~@13", B: "~@2 c6@3 d6@2 ~ eb6@3 d6@3 c6@2",
  C: "~@2 bb5@2 ~ c6@2 ~ d6@2 ~ c6@2 ~ bb5 ~, ~@8 db6 ~@7", D: "db6 ~@2 c6@3 bb5 ~ d6@3 c6@2 bb5@2 ~, ~@8 db6 ~@7",
  E: "~@2 d6@2 ~ eb6@2 ~ f6@3 eb6@2 ~ d6 ~, ~@2 db6 ~@13", F: "~@2 c6@2 ~ d6@2 ~ eb6@3 d6@3 c6@2",
  G: "~@2 bb5@2 ~ c6@2 ~ d6@2 ~ c6@3 bb5 ~, ~@8 db6 ~@7",
  H: "d6@2 ~ c6@2 ~ bb5 ~ d6@2 ~ c6@3 bb5 [ab4,bb4,db5,gb5,ab5], db6 ~@7 db6 ~@7", // Gb
  I: "gb4 ~ [d5,d6]@3 [eb5,eb6]@3 [f5,f6]@3 [eb5,eb6]@2 db6 [d5,d6]@2, ~@2 db6 ~@5 gb6 ~@7", // D Eb F Eb D
  J: "~@2 [c5,c6]@3 [d5,d6]@3 [eb5,eb6]@3 [d5,d6]@3 [c5,c6] ~, ~@8 d6 ~@7", // C D Eb D C
  K: "~@2 [bb4,bb5]@3 [c5,c6]@2 db5 [d5,d6]@2 ~ [c5,c6]@3 bb4@2, ~@8 db6 ~@2 d6 ~@2 bb5 ~", // Bb C D C
  L: "[d5,d6]@3 [c5,c6]@3 bb4@2 [d5,d6]@3 [c5,c6]@3 [bb4,bb5] ~, [db5,db6] ~@5 bb5 ~ db6 ~@7", // D C D C Bb Db
  M: "~@2 [db5,c6,db6] ~@2 [eb5,eb6]@3 [f5,f6]@3 [eb5,eb6]@2 db6 [d5,d6]@2, ~@2 [d5,d6]@3 ~@11", // Dbmaj7 Eb F Eb D
  N: "~@2 [c5,c6]@3 [d5,d6]@3 [eb5,eb6]@3 [d5,d6]@3 [c5,c6]@2, ~@11 db6 ~@4", // C D Eb D C
  O: "~@2 [bb4,bb5]@2 ~ [c5,c6]@3 d5@3 [c5,c6]@3 bb4@2, ~@8 db6 ~@5 bb5 ~", // Bb C
  P: "[d5,d6]@3 [c5,c6]@3 bb4@2 [d5,d6]@3 [c5,c6]@3 ~ bb5, ~@6 bb5 ~ db6 ~@7", Q: "[gb5,ab5,bb5] [db5,eb5] ~@14",
})).s("gm_piano").gain(0.46)

// other · piano · soft notes
const piano_soft_4 = note("<~@100 A ~@2 B ~@3 C D ~@2 E F ~ G H I ~>".pickRestart({
  A: "~@2 c6 ~@13", B: "d6 ~@7", C: "~@15 eb5", D: "~@13 [db5,c6] ~@2", E: "c6 ~@7 db5 ~@7", F: "~ c5 ~@14",
  G: "~@8 d6@2 ~@3 d6 ~@2", H: "db6 ~@15", I: "~ bb4 ~@14",
})).s("gm_piano").gain(0.26)

// chords · piano · Ab Bb Cm Dm Eb Ab Bb Cm …
const piano_7 = note(`<
  ~@48
  [[ab3,c4]@7 [bb3,d4] [c4,eb4]@7 [d4,f4]]
  [[eb4,g4]@3 ~]
  ~@32
  [[ab3,c4]@7 [bb3,d4] [c4,eb4]@7 [d4,f4]]
  [[eb4,g4]@3 ~]
  ~@34
>`).s("gm_piano").gain(0.46)

// drums · snare
const snare = s("sd").struct("<~@49 [~@9 x ~@6] ~@33 [~@9 x ~@6] ~@34>").gain(0.46)

// drums · clap
const clap = s("cp").struct("<~@10 [~ x ~ x]!20 ~@28 [~ x ~ x]!5 [~@4 x ~@4 x ~@2 x ~@3] ~@54>").gain(0.46)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@18 A@32 B@8 ~@6 B@8 A@12 B@31 C ~@2>".pickRestart({
  A: "~ x ~ x", B: "~ x ~ x ~ x ~ x", C: "~@2 x ~@3 x ~@3 x ~@4 x",
})).gain(0.51)

// drums · china
const china = s("cr").struct(`<
  ~@29 A ~@7 B C@3 D C@3 E F@3 G H I@2 J I H I J F K F@2 L M H I@2 J I H I J C@3 D C@3 E F@3 N H I@2 J I H I J H I@2 J I
  H I J H I@2 J I H I J H I@2 J I H I O ~@2
>`.pickRestart({
  A: "~@11 x!2 ~@3", B: "~@6 x!2", C: "~@7 x ~@8", D: "~@7 x!2 ~@4 x ~@2", E: "~@8 x ~@4 x ~@2", F: "~ x",
  G: "~@2 x ~@8 x ~ x ~ x", H: "~@13 x ~@2", I: "~@11 x ~ x ~@2", J: "~@7 x", K: "~@2 x ~@2 x ~@2 x ~@7",
  L: "~@2 x ~@2 x ~@10", M: "~@13 x ~ x", N: "~@2 x ~@8 x!3 ~ x", O: "~@15 x",
})).gain(0.41)

// drums · china · soft notes
const china_soft = s("cr").struct(`<
  ~@50 A ~@4 A ~@7 B A ~@4 A ~@14 A ~@4 A ~@2 A ~@4 A ~@2 A ~@4 A ~@2 A ~@4 A ~@4
>`.pickRestart({
  A: "~@11 x ~@4", B: "~@3 x",
})).gain(0.26)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@29 A ~@7 A B@3 C B@3 D@4 E F@3 A F@3 A D@4 ~ G F@3 A F@3 A B@3 C B@3 D@4 E F@3 A F@3 A F@3 A F@3 A F@3 A F@3 A F@3 A
// … 53 more lines

More by Tozzi