Strudelify
L'ombelico del mondo cover art

Backup 1987-2012

L'ombelico del mondo

Jovanotti

KeyC minorTempo108 bpm
0:00/0:00
// L'ombelico del mondo — Jovanotti
// 108 bpm, 4/8, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 240 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(108/2)

// 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, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass
const bass = note(`<
  ~@23 A B C D A B C D A B C D A B C D A B C D A B E F G H I J G H I J G H I J G H K ~ A B C D A B C D G H I J G H I J G
  H I J G H L M A B C D A B N O A B C D A B P Q A B C D A B R S ~@14 I T A B C D A B U V A B C D A B W X Y@2 Z AA Y AB
  AC AD AE AF AG AH AI@2 AJ AK AL@4 AM AN AO AP@2 AQ AR AS AT AU AV ~ A B C D A B W X A B C D A B AW AX ~@4 A B C D A B
  AY AZ A B C BA A B C D A B BB BC A B BD@2 A B C D A B C D A B C D BE@2 BF@7
>`.pickRestart({
  A: "c2@3 g2@3 c2@2", B: "bb1@3 d2@3 bb1@2", C: "eb2@3 g2@3 eb2@2", D: "f2@3 a2@3 f2@2", E: "eb1@3 bb1@3 eb2@2",
  F: "c2 eb2 c2 ab2 g2@3 ~", G: "c2@6 eb2@5 ~ c2@4", H: "bb1 ~", I: "eb2@6 g1@5 ~ bb1@4", J: "a1@9 ~@7", K: "c2 ~@7",
  L: "eb1 ~ eb1@2 ~@2 eb1@2 ~@2 eb1 ~@3 eb1 ~", M: "f1 ~ f1 ~@3 f2 ~@3 f2@5 ~", N: "eb2@2 g2@2 bb2@2 eb3@6 bb2@2 f2 ~",
  O: "f2 a2 c3 f3@3 c3@2", P: "bb2@2 ~ c3@2 bb2@2 ~ c3@2 ~ bb2@2 c3@2 ~", Q: "g2@2 ~ gb2@2 f2@2 ~ eb2@8",
  R: "eb2@3 bb1@3 g1@2", S: "f1@6 ~@2 a1@4 a1@3 ~", T: "a1@6 ~ g2@8 ~", U: "eb2 ~@2 eb2@2 g2@2 ~ g2@2 ~ bb2@2 b2@2 ~",
  V: "c3@3 eb3@2 f3@2 ~ eb3@7 ~, ~@8 d3 ~@7", W: "eb2@2 ~ g2@2 bb2@2 ~ f2@2 ~ c3@2 eb3@2 ~",
  X: "ab3@2 ~ f3@2 ab3@2 ~ g3@3 ~ d3@3 ~", Y: "c2@6 c3@5 ~ c2@3 ~", Z: "c2@3 c3@2 ~ c3 ~", AA: "c3@7 ~ c3@3 ~ c3@4",
  AB: "c2@6 c3@5 ~ c2@2 ~@2", AC: "c2@6 c3@5 ~ c2@4, c4@15 ~", AD: "[c3,c4]@6 ~@2 e2@3 ~ g2@3 ~, ~@3 c2 ~@4, ~@7 c4@9",
  AE: "~@6 c3@5 ~ c2@3 ~, c2@3 ~@5, ~ c4@14 ~", AF: "[c2,c4]@3 ~@3 c2 ~, ~@3 c3@3 ~@2, ~@7 c4@9",
  AG: "c2@6 g2@6 bb2@3 ~, c4@7 ~", AH: "[db3,c4]@2 c3 bb2 c3@2 g2@2, ~@6 c4@9 ~",
  AI: "[c2@6 c3@5 ~ c2@3 ~ c3@5 ~ c2@2 c3@2 ~@2 c3@4, c4@14 ~ c4@6 ~ c4@9 ~]/2", AJ: "c4@6 c2@2 c3@3 ~ c3@3 ~, c2 ~@3",
  AK: "g2@3 ~ g2@3 ~ g2@2 ~@2 g2@3 ~", AL: "[c2@27 ~@5]/4", AM: "c2@3 ~@5", AN: "d2@7 ~@9", AO: "eb2@7 ~@7 f2 ~",
  AP: "[f2@2 ~@2 f2 ~ g2@3 ~ bb2@12 c3@10]/2", AQ: "~@2 c3@3 ~ f2@2 ~@2 g2@2 ~@2 d3@2", AR: "~ bb2@5 c3@10",
  AS: "~@2 c3@2 ~@2 f2@2 ~@3 g2 ~@2 bb2 ~", AT: "~ eb3@5 c3@9 ~", AU: "~ c3 ~ bb2 ~ g2@2 ~", AV: "c3@5 ~@11",
  AW: "eb1@2 ~ g1@2 bb1@2 ~ f1@2 ~ c2@2 eb2@2 ~", AX: "ab2@2 ~ f2@2 ab2@2 ~ g2@8",
  AY: "eb2@2 f2@2 g2@2 a2 ~ a2@2 bb2@2 b2@2 c3@2", AZ: "bb2 ~ eb3@2 d3@2 bb2@2 a2@2 bb2@2 a2@2 f2@2",
  BA: "f2@3 ~ c3@2 f3@2 a3@8", BB: "eb2@6 g2@6 eb2@2 d3 ~", BC: "d3@6 d3 ~ d3@7 ~", BD: "a3 bb3 a3 bb3 a3 bb3 a3 bb3",
  BE: "c2/2", BF: "[~@4 b3@3 g3@6 ~@19 e2@74 ~@6, ~@13 e3@93 ~@6, ~@25 g2@81 ~@6]/7",
})).s("gm_fretless_bass").gain(0.37)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@47 A@2 B@2 A@2 B@2 A@2 B@2 A@2 C ~@9 A@2 B@2 A@2 B@2 A@2 B@2 A@2 C ~@105 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2
  A@2 B@2 A@2 B@2 A@2 B@2 ~@9
>`.pickRestart({
  A: "[~ g4 c5 ~@2 eb4@2 ~@2 bb4@2 [d4,f4]@2 ~ f4 bb4, eb4@5 ~ g4@8 d4@8 ~@4 d4@4 ~@2]/2", // Dm
  B: "[bb4@2 ~@2 eb5@2 ~@4 g4@4 ~@4 f5@4 ~@2 [a4,f5]@2 ~@2 [ab4,e5]@3 ~, g4@3 ~@13, ~@2 bb4@4 bb4@7 ~ a4@8 c5@4 ~@6]/2", // Dm Dbm
  C: "[c4,g4] ~@7", // C5
})).s("gm_acoustic_guitar_steel").gain(0.23)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@49 A@2 ~@2 A@2 ~@2 A@2 ~@14 A@2 ~@2 A@2 ~@2 A@2 ~@110 A@2 ~@10 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2
  ~@9
>`.pickRestart({
  A: "[~@7 c5@4 a4 ~@4]/2",
})).s("gm_acoustic_guitar_steel").gain(0.15)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@31 A B C D A B C D A B C D A B ~@18 A B C D A B C D A B C D A B C D A B C D A B ~@2 A B C D A B C D A B C D A B ~@26
  A B C D A B ~@2 A B C D A B ~@34 A B C D A B ~@2 A B C D A B ~@6 A B C D A B C D A B C D A B C D A B C D A B C D A B C
  D A B C D A B C D ~@9
>`.pickRestart({
  A: "~@4 [eb4,g4,c5] ~@7 [eb4,g4,c5]@2 ~@2", B: "~@4 [d4,f4,bb4]@2 ~@6 [d4,f4] bb4@2 ~",
  C: "~@2 [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~", D: "~@2 [a4,c5,f5] ~@3 [a4,c5,f5] ~",
})).s("gm_electric_guitar_clean").gain(0.22)

// chords · tenor sax
const tenor_sax = note(`<
  ~@37 A B ~@2 C D ~@59 E F@2 G H I J K L ~@66 A B ~@15 E F@2 G H I J K L M N O P Q R S T U N O P V R W X Y ~ M N O P Q
  R S T Z N AA P AB R AC X AD ~@2
>`.pickRestart({
  A: "~@2 [e3,c4] ~ [e3,c4] ~ [f3,d4] ~ [g3,e4] ~ [f3,d4] ~ [e3,c4] ~@3", // C Dm C Dm C
  B: "[f3,d4]@3 ~ [d3,bb3] ~ [d3,bb3] ~@3 [d3,bb3] ~ [e3,c4]@2 ~@2", // Dm Gm C
  C: "~@2 [bb3,f4] ~ [bb3,f4] ~ [c4,g4] ~ [d4,a4] c4 g4 ~ [bb3,f4] ~@3", // Bb5 C5 D5 Bb5
  D: "d4 [eb4,g4] [d4,gb4] [eb4,g4] [d4,gb4] [eb4,g4] ~@2, gb4 ~@15", // Eb D Eb D Eb
  E: "~@11 [bb2,bb3]@2 ~ [b2,b3]@2, ~@10 c4@2 ~ d4@2 ~", // Bb B
  F: "[e4 [c3,c4] ~ [c3,c4]@2 ~ [bb2,g3,d4]@2 ~ [c3,c4,e4]@2 ~ [bb2,g3] c4 ~ [c3,bb3,d4]@2 ~ [bb2,c4] g4 ~@6 [bb3,f4] ~ [c4,g4] ~ [d4,a4] ~, ~@3 e4 ~@28]/2", // C Gm C Eb Gm Bbsus2 Bb5 C5 …
  G: "[eb4,bb4]@4 [d4,a4] ~ [c4,g4] ~ [d4,a4] [c4,g4]@2 [bb3,f4] [c4,g4] [bb3,f4]@2 [ab3,eb4]", // Eb5 D5 C5 D5 C5 Bb5 C5 Bb5 …
  H: "[g3,d4]@2 ~@2 [d3,bb3] ~ [d3,bb3] ~ [d3,bb3] ~@3 [bb2,b3,c4]@2 [b2,db4,d4] ~", // G5 Gm Bm
  I: "~ [c3,eb4,e4]@2 ~ [c3,eb4,e4] ~@2 [bb2,db4,d4] ~ [c3,eb4,e4]@2 ~ [bb2,b3,c4] ~@2 [c3,db4,d4]", // C Bb C
  J: "~@2 [c3,e4,g4] ~@6 [eb4,e4,bb4] ~ [f4,c5] ~@2 [g4,d5] ~", // C Eb F5 G5
  K: "~ ab4 g4 f4 [d4,eb4,c6,d6] [c4,eb6,f6] [bb3,g6] a6 bb6 [bb3,c4] [d4,eb4] f4 [g4,bb6,b6] [ab4,g6] f6 [d6,eb6], [bb4,f5]@2 ~@5 ab3@2 c7@3 ~@2 bb4@2", // Cm F7 Eb Bbsus2 Ebmaj7 G Abmaj7 Ebmaj7 …
  L: "[ab4,c6] [g4,bb5] [eb4,f4,a5] d4 c4 [bb3,a5] [ab3,bb5,c6] d6 eb6 ~@7, ~@3 g5@2 ~@11", // Ab Gm F7 Bbmaj7 Ab
  M: "[d2,d4,d5,eb5] ~@3 d4 ~ [d2,d4,d5,eb5] ~@3 d4 ~ [d2,d4]@2 ~@2", N: "~@2 d4 ~@7 [d2,d4] ~ d4 ~@3",
  O: "[d2,d4]@2 ~@2 d4 ~ [d5,eb5] ~ [d2,d4] ~@3 d4 ~@3, [d5,eb5] ~@15", // D Ebmaj7 D Ebmaj7
  P: "[d2,d4] ~@2 d4 ~ [d2,d4] ~@2 d4 ~@2 [d2,d4] ~ d4 ~@2", // D
  Q: "[d2,d4,d5,eb5] ~ d4 ~ [d2,d4] ~ [d4,d5,eb5] ~@3 [d2,d4] ~ d4@2 ~@2", R: "~@2 [d2,d4] ~@7 d4 ~ [d2,d4] ~@3",
  S: "[d4,d5,eb5] ~@2 [d2,d4] ~ d4 [d5,eb5] ~ [d2,d4] ~@2 d4 ~ [d2,d4] ~@2", T: "d4 ~@2 [d2,d4] ~ d4 ~@2 [d2,d4]@2 ~@6",
  U: "[d4,d5,eb5] ~ [d2,d4] ~ d4 ~ [d2,d4,d5,eb5] ~@3 d4 ~ [d2,d4] ~@3", // Ebmaj7 D Ebmaj7 D
  V: "[d2,d4,d5,eb5] ~ d4 ~ [d2,d4] ~ [d4,d5,eb5] ~@3 [d2,d4] ~ d4 ~@3", // Ebmaj7 D Ebmaj7 D
  W: "[d4,d5,eb5] ~@3 [d2,d4] ~ [d5,eb5] ~ d4 ~@3 [d2,d4] ~@3", // Ebmaj7 D Ebmaj7 D
  X: "d4 ~@2 [d2,d4] ~ d4 ~@2 [d2,d4] ~@2 d4 ~ [d2,d4] ~@2", // D
  Y: "[d4,d5,eb5] [eb4,f4] g4 [a4,bb4] c5 [d5,eb5] [d5,eb5,f5] [g5,a5] [bb5,c6] d6 [eb6,f6] ~@5", // Ebmaj7 Ebsus2 Bbmaj7 Ebmaj7 Dm Gsus2 Bbsus2 Ebsus2
  Z: "d4 ~ [d2,d4] ~ d4 ~ [d2,d4] ~@3 d4 ~ [d2,d4] ~@3", AA: "[d2,d4]@2 ~@2 d4 ~@3 [d2,d4] ~@3 d4@2 ~@2",
  AB: "[d2,d4] ~ d4 ~ [d2,d4] ~ d4 ~@3 [d2,d4] ~ d4 ~@3", AC: "d4 ~@3 [d2,d4] ~@3 d4 ~@3 [d2,d4] ~@3",
  AD: "d4 [eb4,f4] g4 [a4,bb4] c5 [d5,eb5] f5 [g5,a5] [bb5,c6] d6 [eb6,f6] ~@5", // Ebsus2 Bbmaj7 Ebmaj7 Gsus2 Bbsus2 Ebsus2
})).s("gm_tenor_sax").gain(0.36).pan(0.8)

// chords · trumpet
const trumpet = note("<~@37 A B ~@2 C D ~@2 E F ~@31 G ~@98 A B ~@61>".pickRestart({
  A: "~@2 [e3,c4] ~ [e3,c4] ~ [f3,d4] ~ [g3,e4] ~ [f3,d4] ~ [e3,c4] ~@3", // C Dm C Dm C
  B: "[f3,d4]@4 [d3,bb3] ~ [d3,bb3] ~@3 [d3,bb3] ~ [e3,c4]@2 ~@2", // Dm Gm C
  C: "~@2 [bb3,f4] ~ [bb3,f4] ~ [c4,g4] ~ [d4,a4] c4 g4 ~ [bb3,f4] ~@3", // Bb5 C5 D5 Bb5
  D: "[d4,gb4] [eb4,g4] [d4,gb4] [eb4,g4] [d4,gb4] [eb4,g4] ~@2", // D Eb D Eb D Eb
  E: "~@2 [bb4,d5]@2 [a4,db5]@2 d5@2 f5@2 [db5,e5]@2 [d5,f5] ~ a5@2, ~@6 bb4 ~ d5 ~@5 f5 ~", // Bb A Dbm Dm
  F: "~@2 a5@2 [e5,f5,ab5] [e5,ab5,a5] f5 [e5,f5,ab5,a5]!2 [e5,f5,a5] [ab5,a5] [f5,a5] [f5,ab5] [f5,a5]!2 [ab5,a5], [e5,ab5]@2 ~@8 e5@2 ~ [e5,ab5]@2 ~, ~ f5@2 ~@13", // E Amaj7 Fmaj7 Amaj7 F Fm F Amaj7 …
  G: "[eb4,g4,eb5]", // Eb
})).s("gm_trumpet").gain(0.31).pan(0.4)

// chords · brass section
const brass_section = note("<~@41 A B ~@2 C D ~@31 E ~@23 F G@2 H I J@2 K L ~@83 F G@2 H I J@2 K L ~@37>".pickRestart({
  A: "~@2 [bb3,f4] ~ [bb3,f4] ~ [c4,g4] ~ [d4,a4] c4 g4 ~ [bb3,f4] ~@3", // Bb5 C5 D5 Bb5
  B: "d4 [eb4,g4] [d4,gb4] [eb4,g4] [d4,gb4] [eb4,g4] ~@2, gb4 ~@15", // Eb D Eb D Eb
  C: "~@2 [bb4,d5]@2 [a4,db5]@2 d5@2 f5@2 [db5,e5]@2 [d5,f5] ~ a5@2, ~@6 bb4 ~ d5 ~@5 f5 ~", // Bb A Dbm Dm
  D: "~ f5 a5@2 [e5,f5,ab5] [e5,ab5,a5] f5 [e5,f5,ab5,a5]!2 [e5,f5,a5] [ab5,a5] [f5,a5] [f5,ab5] [f5,a5]!2 [ab5,a5], [e5,ab5]@2 ~@8 e5@2 ~ [e5,ab5]@2 ~", // E Amaj7 Fmaj7 Amaj7 F Fm F Amaj7 …
  E: "[eb4,g4,eb5]", F: "~@12 [c4,c5] ~ [d4,d5] ~, ~@11 bb3@3 b3@2",
  G: "[~ [e4,e5]@2 ~ [e4,e5] ~ [g3,d4,d5]@2 ~ [c4,d4,e5]@2 ~ [g3,bb3,c5] ~@2 bb3@2 ~ [e4,e5]@2 ~@6 [bb3,f5] [c4,g5] c4 [d4,a5] d4 ~, ~ c4 ~ c4@2 ~@9 [d4,d5]@2 ~@2 c4 ~@13]/2", // E G5 C C7 E Bb5 C5 D5 …
  H: "[eb4,bb5]@3 ~ [d4,a5] [c4,g5] c4 [d4,a5] d4 [c4,g5] [bb3,f5] [bb3,c4,g5] c4 [bb3,f5] [ab3,eb5] ab3", // Eb5 D5 C5 D5 C5 Bb5 C7 Bb5 …
  I: "d5@4 [d3,bb3,bb4] ~ [d3,bb3,bb4] ~ [bb3,bb4]@2 ~@2 [c4,c5] ~ [db4,d4,d5] ~, g3@2 ~@6 d3 ~@3 b3@2 ~@2", // Gm Bb C Dmaj7
  J: "[~ eb4@2 ~ [e4,e5]@2 ~ db4 ~ [eb4,e4,e5]@2 ~ [b3,c4,c5] ~@2 [d4,d5]@2 ~ [g4,g5]@2 ~@5 e4 ~ [c5,c6]@3 [d5,d6]@2, [e4,e5]@2 ~@2 eb4 ~ [d4,d5]@2 ~@7 db4 ~@2 e4 ~@7 [bb4,bb5]@2 ~@4, ~@27 f4 ~@2 g4 ~]/2", // E Emaj7 Cmaj7 D G C D E …
  K: "[f5,f6]@6 ~ [d5,d6]@2 ~@3 [g4,g5]@2 [f4,f5]!2, bb4@2 ~@4 [eb5,eb6]@2 ~ [c5,c6]@2 [a4,a5]@2 ~@3, ~@5 [bb4,bb5] ~@2", // F D G F Eb C A Bb
  L: "~@2 [bb4,bb5]@2 ~@2 [e5,e6]@2 ~ [g5,g6] ~@2 [g5,g6] ~@3, [g4,g5]@2 ~@3 [db5,db6]@2 ~ [f5,f6]@2 ~@6, ~ [a4,a5]@2 ~ [c5,c6]@2 ~@10", // Bb E G Db F A C
})).s("gm_brass_section").gain(0.4).pan(0.2)

// other · sitar
const sitar = note(`<
  ~@111 A B C D E B F G H I J I K L M N ~@16 O@2 P Q R S T U V W V X V W Y Z ~@6 AA AB ~@18 AC AD ~@53
>`.pickRestart({
  A: "~@6 b4 ~ b4@2 ~@2 c5@2 ~@2", B: "eb5@3 ~@3 b4 ~ b4@3 ~ c5@2 ~@2", C: "c5 ~ bb4 ~ bb4 ~ g4 ~ g4 ~ f4 ~ f4 ~ eb4 ~",
  D: "eb4@2 ~@4 f4 ~@2 f4@2 ~ g4@2 ~@2", E: "f4@2 ~@4 b4 ~ b4@2 ~@2 c5@2 ~@2", F: "c5@2 g4@2 ~@2 c5@2 bb4@3 ~ g4@2 ~@2",
  G: "f4@3 ~ g4@3 ~ f4@4 eb4@3 ~", H: "c4@5 ~ c4@3 ~@2 c4@3 ~@2", I: "bb3@3 ~ c4@4 g3@4 bb3@2 ~@2",
  J: "c4@5 ~ c4@4 ~@2 c4@3 ~", K: "eb4@2 c4@2 ~@2 eb4 ~@2 eb4@2 c4@2 eb4@2 ~",
  L: "eb4@2 ~ c4 ~ eb4@2 ~ eb4@2 c4@2 ~ eb4 ~@2",
  M: "~@2 eb5@2 ~@2 eb5@2 c5@2 bb4 ~ eb5@2 c5@2, g5@2 ~@3 f5@2 ~@9, ~ f5@2 ~ c5@2 ~@10",
  N: "~ bb4 ~@2 bb4 ~ g4 f4 bb4@2 ~ f4@2 g4@2 ~, ~ g4 ~@3 g4 ~@2, ~@3 c5@2 ~@11",
  O: "[c4@2 ~ e4@2 ~@2 e4@2 db4@2 ~ c4@8 c4@2 ~@2 c4@3 ~@5, ~ db4 ~ f4 ~@12]/2",
  P: "c4@2 db4@2 e4@2 f4@2 g4@3 ~ f4@3 ~", Q: "e4@3 ~ c4@3 ~ c4@4 ~@4", R: "ab4 ~ ab4 ~ ab4@2 ~@2 g4@2 ~@2 f4@2 ~@2",
  S: "e4 ~ f4@2 e4@2 db4@2 c4@3 ~@5", T: "c4 ~ bb3 ~ c4 ~ bb3 ~", U: "c4 ~@2 c4 ~@4", V: "c3@2 e3@2 g3@2 bb3 ~",
  W: "db4@2 ~@2 c4@7 ~@5", X: "db4@2 ~@2 c4@2 bb3 ~ c4@4 ~@4", Y: "c5 ~ c5 ~ c5@2 ~@2 e5@2 ~@2 c5@2 ~@2",
  Z: "bb4@2 ~@2 c5@2 ~ bb4 c5@4 ~@4", AA: "~@8 c5 ~@2 c5 ~@2 c5 ~", AB: "c5 ~@2 c5 ~ c5 ~@2 c5 ~@2 c5 ~ c5@2 ~",
  AC: "~ db4@2 ~ e4@2 f4@2 g4@2 f4@2 e4 ~ e4 db4, c4@2 ~@11 f4@2 ~", AD: "c4@2 ~@2 c4 ~ bb3 ~ c4@3 ~@5",
})).s("gm_sitar").gain(0.23).pan(0.3)

// chords · muted trumpet
const muted_trumpet = note(`<
  ~@203 A B C D E F G H I B C D J F K G L ~ A B C D E F G H I B C D J F K G L ~@2
>`.pickRestart({
  A: "[d4,bb4] ~@3 [bb4,d5] ~ [d4,bb4] ~@3 [bb4,d5] ~ [d4,bb4]@2 ~@2", B: "~@2 [bb4,d5] ~@7 [d4,bb4] ~ [bb4,d5] ~@3",
  C: "[d4,bb4]@2 ~@2 [bb4,d5] ~@3 [d4,bb4] ~@3 [bb4,d5] ~@3", // Gm Bb Gm Bb
  D: "[d4,bb4] ~@2 [bb4,d5] ~ [d4,bb4] ~@2 [bb4,d5] ~@2 [d4,bb4] ~ [bb4,d5] ~@2", // Gm Bb Gm Bb Gm Bb
  E: "[d4,bb4] ~ [bb4,d5] ~ [d4,bb4] ~ [bb4,d5] ~@3 [d4,bb4] ~ [bb4,d5]@2 ~@2", // Gm Bb Gm Bb Gm Bb
  F: "~@2 [d4,bb4] ~@7 [bb4,d5] ~ [d4,bb4] ~@3", // Gm Bb Gm
  G: "[bb4,d5] ~@2 [d4,bb4] ~ [bb4,d5] ~@2 [d4,bb4] ~@2 [bb4,d5] ~ [d4,bb4] ~@2", // Bb Gm Bb Gm Bb Gm
  H: "[bb4,d5] ~@2 [d4,bb4] ~ [bb4,d5] ~@2 [d4,bb4]@2 ~@6", // Bb Gm Bb Gm
  I: "[bb4,d5] ~ [d4,bb4] ~ [bb4,d5] ~ [d4,bb4]@2 ~@2 [bb4,d5] ~ [d4,bb4] ~@3", // Bb Gm Bb Gm Bb Gm
  J: "[d4,bb4] ~ [bb4,d5] ~ [d4,bb4] ~ [bb4,d5] ~@3 [d4,bb4] ~ [bb4,d5] ~@3", // Gm Bb Gm Bb Gm Bb
  K: "[bb4,d5] ~@3 [d4,bb4] ~@3 [bb4,d5] ~@3 [d4,bb4] ~@3", // Bb Gm Bb Gm
  L: "bb4 [b4,db5] eb5 [f5,gb5] ab5 [bb5,b5] db6 [eb6,f6] [gb6,ab6] bb6 [b6,db7] ~@5", // Bsus2 Gbmaj7 Bmaj7 Ebsus2 Gbsus2 Bsus2
})).s("gm_muted_trumpet").gain(0.24)

// other · sitar
const sitar_2 = note(`<
  ~@153
  [e3@2 ~@2 g3@3 ~ bb3@2 ~@2 db4@2 ~@2]
  [f4 ~@3 e4 ~ d4 ~ e4@6 ~@2]
  [e3@2 ~@2 g3@3 ~ bb3@2 ~@2 db4@2 ~@2]
  [f4 ~@3 e4@6 ~@6]
  ~@83
>`).s("gm_sitar").gain(0.29).pan(0.9)

// other · taiko drum
const taiko_drum = note(`<
  ~@2 A ~ A B C D@40 ~@16 D@8 ~@16 D@14 B C D@8 ~@16 D@6 B C D@6 B C D@16 ~@16 D@6 B C D@6 B C ~@4 D@36 ~@9
>`.pickRestart({
  A: "f6 ~ f6!2 b6 ~@3 f6 ~ f6!2 b6 ~@3", B: "c6 ~@2 c6@2 ~ f5 ~@2 f5@2 c5 ~@2 c5 ~", C: "g4 ~@2 g4 ~ c4 ~@2 c4@3 ~@5",
  D: "b3 ~ b3 ~ e5 ~ b4 ~ b3 ~ b3 ~ e5 ~ b4 ~",
})).s("gm_taiko_drum").gain(0.21)

// drums · kick
const kick = s("bd").struct(`<
  ~@15 A@14 ~@2 A@14 ~@2 A@6 B@2 A@6 C ~ A@14 B@2 A@6 C ~ A@14 ~@2 A@14 B@2 A@6 C ~ A@6 ~@2 A@6 ~@2 A@16 ~@14 C ~ A@6
  ~@2 A@6 ~@6 A@14 B@2 A@14 B@2 A@4 ~@9
>`.pickRestart({
  A: "x!2", B: "x ~@2 x ~@4", C: "x",
})).gain(0.57)

// drums · snare
const snare = s("sd").struct(`<
  ~@5 A B ~@8 C@14 ~@2 C@14 ~@2 C@6 D@2 C@6 E ~ C@14 D@2 C@6 E ~ C@14 A B C@14 D@2 C@6 E ~ C@6 A B C@6 A B C@16 ~@14 E ~
  C@6 A B C@6 A B ~@4 C@14 D@2 C@14 D@2 C@4 ~@9
>`.pickRestart({
  A: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2", B: "x ~@2 x ~ x ~@2 x ~@7", C: "~@2 x!2 ~@2 x ~", D: "~@2 x ~@2 x!2 ~", E: "x",
})).gain(0.45)

// drums · clap
const clap = s("cp").struct(`<
  ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@41 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~@17 A ~
  A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@17 A ~ A ~ A ~@3 A ~ A ~ A ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@10
>`.pickRestart({
// … 146 more lines

More by Jovanotti