Strudelify
Che tesoro che sei cover art

1999 · Goodbye Novecento

Che tesoro che sei

Antonello Venditti

KeyD♭ majorTempo66 bpm
0:00/0:00
// Che tesoro che sei — Antonello Venditti
// 66 bpm, 4/4, key C# 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 85 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(66/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 · fretless bass
const bass = note(`<
  A B C D A E C D F G H I F G H J G K L M N O P Q R A B C D F G H I F G H J G K L M N O P Q R S T U V S W U X F G H I F
  G H J G K L M N O P Q R A B C Y S W U V S W U Z AA@2
>`.pickRestart({
  A: "db1@47 ~", B: "bb1@47 ~", C: "f1@47 ~", D: "gb1@3 ab1", E: "bb1", F: "db1@45 ab1!2 ~", G: "bb1@45 ab1!2 ~",
  H: "gb1@43 ~@2 gb1!2 ~", I: "ab1@43 ~@2 ab1 bb1 ~", J: "ab1@43 ~@2 ab1!2 ~", K: "ab1@45 bb1 ab1 ~",
  L: "gb1@43 ~@2 gb1 ab1 ~", M: "db1@43 ~@2 db1!2 ~", N: "eb1@45 eb1!2 ~", O: "gb1@45 gb1 ab1 ~",
  P: "bb1@24 ab1@21 gb1!2 ~", Q: "gb1@45 db1!2 ~", R: "gb1@15 ~", S: "eb1@47 ~", T: "c2@47 ~", U: "g1@47 ~",
  V: "ab1@3 bb1", W: "c2", X: "ab1@36 ab1 ~@11", Y: "gb1@3 bb1", Z: "ab1@37 bb1@11", AA: "[~ eb1@38 ~@9]/2",
})).s("gm_fretless_bass").gain(0.52)

// chords · synth strings 1
const synth_strings_1 = note("<A@8 B@7 C@7 D@2 E@8 F@4 C@7 D@2 G@8 H@8 C@7 D@2 I@8 J@7>".pickRestart({
  A: "[[ab3,db4,f4]@47 [bb3,db4,f4]@48 [ab3,c4,f4]@48 [bb3,db4,gb4]@48 [ab3,db4,f4]@48 [bb3,db4,f4]@48 [ab3,c4,f4]@48 [bb3,db4,gb4]@48 [ab3,db4,f4]]/8", // Db Bbm Fm Gb Db Bbm Fm Gb …
  B: "[~@47 [bb3,db4,f4]@48 [bb3,db4,gb4]@48 db4@24 c4@24 [ab3,db4,f4]@48 [bb3,db4,f4]@48 [bb3,db4,gb4]@48 [db4,eb4,ab4], ~@143 [eb4,ab4]@48 ~@145]/7", // Bbm Gb Db Bbm Gb Dbsus2 Ab5
  C: "[~@23 c4@24 [bb3,db4,f4]@48 [ab3,c4,eb4]@48 [gb3,bb3,db4]@48 [f3,ab3,db4]@48 [g3,eb4]@48 [db4,gb4]@48 f4, ~@239 bb3@97]/7", // Bbm Ab Gb Db Cm Gb5
  D: "[~@23 [c4,eb4]@24 ~@24 bb3@24 c4, ~@23 ab3@48 ~@25, ~@47 [gb3,db4]@49]/2", // Cm Gb5
  E: "[~@23 bb3@24 [ab3,db4,f4]@48 [bb3,db4,f4]@48 [ab3,c4,f4]@48 [bb3,db4,gb4]@48 [ab3,db4,f4]@48 [bb3,db4,f4]@48 [bb3,db4,gb4]@48 [db4,eb4,ab4]]/8", // Db Bbm Fm Gb Db Bbm Gb Dbsus2
  F: "[~@23 c4@24 [ab3,db4,f4]@48 [bb3,db4,f4]@48 [bb3,db4,gb4]@48 [db4,eb4,ab4]]/4", // Db Bbm Gb Dbsus2
  G: "[~@23 bb3@24 [bb3,eb4,g4]@48 [c4,eb4,g4]@48 [bb3,d4,g4]@48 [c4,eb4,ab4]@48 [bb3,eb4,g4]@48 [c4,eb4,g4]@48 [bb3,d4,g4]@48 [c4,eb4,ab4]]/8", // Eb Cm Gm Ab Eb Cm Gm Ab
  H: "[~@47 [ab3,db4,f4]@48 [bb3,db4,f4]@48 [bb3,db4,gb4]@48 db4@24 c4@24 [ab3,db4,f4]@48 [bb3,db4,f4]@48 [bb3,db4,gb4]@48 [db4,eb4,ab4], ~@191 [eb4,ab4]@48 ~@145]/8", // Db Bbm Gb Db Bbm Gb Dbsus2 Ab5
  I: "[~@23 bb3@24 [ab3,db4,f4]@48 [bb3,db4,f4]@48 [ab3,c4,f4]@48 [bb3,db4,gb4]@48 [bb3,eb4,g4]@48 [c4,eb4,g4]@48 [bb3,d4,g4]@48 [c4,eb4,ab4]]/8", // Db Bbm Fm Gb Eb Cm Gm Ab
  J: "[~@47 [bb3,eb4,g4]@48 [c4,eb4,g4]@48 [bb3,d4,g4]@48 [c4,eb4,ab4]@51 [bb3,eb4,g4]@77 ~@17]/7", // Eb Cm Gm Ab Eb
})).s("gm_synth_strings_1").gain(0.17).pan(0.3)

// other · string ensemble 2
const string_ensemble_2 = note("<~@22 A@8 ~@6 B@2 C@7 D@8 E@4 F@8 G@3 H@8 I@6 J@3>".pickRestart({
  A: "[~@47 ab4@24 bb4@24 c5@24 db5@25 ~@71 [eb4,eb5]@12 [f4,f5]@12 [c4,c5]@17 ~ f4@30 [eb4,eb5]@24 [f4,f5]@73, ~@95 ab4@121 ~@40 f5@31 ~@97]/8", // Eb F C Eb F
  B: "[~@23 [ab3,ab4]@6 [bb3,bb4]@6 [c4,c5]@6 [ab3,ab4]@6 [db4,db5]@45 ~@4]/2", // Ab Bb C Ab Db
  C: "[~@11 [c4,c5]@12 [bb3,bb4]@12 [ab3,ab4]@48 [bb3,bb4]@12 [f3,f4]@24 [ab3,ab4]@6 [db4,db5]@6 [eb4,eb5]@6 [f4,f5]@6 [g4,g5]@29 [ab4,ab5]@9 [bb4,bb5]@10 [c5,c6]@23 [db5,db6]@25 [eb5,eb6]@23 [f5,f6]@25 [gb5,gb6]@35 [f5,f6]@12 [db5,db6]@2]/7", // C Bb Ab Bb F Ab Db Eb …
  D: "[~@23 [bb4,bb5]@60 bb3@12 [c4,c5]@36 [bb3,bb4]@12 [g3,g4]@48 [bb4,bb5]@12 [c5,c6]@35 [bb4,bb5]@49 [f4,f5]@17 [g4,g5]@31 [f4,f5]@18 [g4,g5]@30 [ab4,ab5], ~@83 bb4 ~@300]/8", // Bb C Bb G Bb C Bb F …
  E: "[~@11 [g4,g5]@12 [eb4,eb5]@12 [bb3,bb4]@12 ~@36 [db3,db4]@12 [eb3,eb4]@24 [f3,f4]@24 [ab3,ab4]@36 [bb3,bb4]@12 [ab3,ab4], ~@47 [ab3,ab4]@43 ~@102]/4", // G Eb Bb Db Eb F Ab Bb …
  F: "[~@23 [bb3,bb4]@6 [ab3,ab4]@6 [db3,db4]@6 [eb3,eb4]@6 [f3,f4]@84 [bb3,bb4]@12 [ab3,ab4]@36 [bb3,bb4]@12 ~@24 [ab3,ab4]@6 [bb3,bb4]@6 [c4,c5]@6 [ab3,ab4]@6 [bb3,db4,bb4,db5]@48 [c4,c5]@48 [bb3,bb4]@48 [ab3,ab4], ~@191 [eb3,eb4]@48 ~@145]/8", // Bb Ab Db Eb F Bb Ab Bb …
  G: "[~@16 ab5@7 [gb4,gb5]@6 [f4,f5]@6 [eb4,eb5]@6 [ab3,ab4]@6 [bb3,bb4]@35 [c4,c5]@13 [db4,db5]@36 [eb4,eb5]@12 [f4,f5], ~@16 ab4 ~@127]/3", // Gb F Eb Ab Bb C Db Eb …
  H: "[~@23 [c5,c6]@24 ~@24 c6@24 [ab4,ab5]@144 [eb4,eb5]@48 [db4,db5]@48 [eb4,eb5]@48 [f4,f5], ~@47 [db5,db6]@97 ~@240]/8", // C Ab Eb Db Eb F Db
  I: "[~@16 [g4,g5]@31 [f4,f5]@17 [g4,g5]@31 [bb4,bb5]@24 [ab4,ab5]@24 [g4,g5]@48 [f4,f5]@17 [g4,g5]@31 [f4,f5]@17 [g4,g5]@30 [c5,c6]@2]/6", // G F G Bb Ab G F G …
  J: "[~@11 [bb4,bb5]@12 [c5,c6]@13 [eb5,eb6]@94 ~@14]/3", // Bb C Eb
})).s("gm_string_ensemble_2").gain(0.48).pan(0.7)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  A B C D@2 B E F@2 ~@16 A B C F@2 ~@16 G H I J@2 H K L@2 ~@16 A B C M@2 H K J@2 H K N@3
>`.pickRestart({
  A: "db3@34 ~@2 db3@3 eb3@3 f3@2 gb3@3 ~", B: "f3@35 ~ f3@3 gb3@3 ab3@3 bb3@3", C: "ab3@15 ~",
  D: "[bb3@4 ~@8 ab3@4 ~@8 gb3@5 ~@7 ab2@6 db3@37 ~@2 ab2@3 db3@3 eb3@3 f3@3 gb3@3]/2", E: "ab3@11 ~",
  F: "[bb3@4 ~@8 ab3@4 ~@8 gb3@5 ~@7 ab2@6 db3@37 ~@17]/2", G: "eb3@34 ~@2 eb3@3 f3@3 g3@2 ab3@3 ~",
  H: "g3@35 ~ g3@3 ab3@3 bb3@3 c4@3", I: "bb3@15 ~",
  J: "[c4@4 ~@8 bb3@4 ~@8 ab3@5 ~@7 bb2@6 eb3@37 ~@2 bb2@3 eb3@3 f3@3 g3@3 ab3@3]/2", K: "bb3@11 ~",
  L: "[c4@4 ~@8 bb3@4 ~@8 ab3@5 ~@7 ab2@6 db3@37 ~@17]/2",
  M: "[bb3@4 ~@8 ab3@4 ~@8 gb3@5 ~@7 bb2@6 eb3@37 ~@2 bb2@3 eb3@3 f3@3 g3@3 ab3@3]/2",
  N: "[c4@4 ~@8 bb3@4 ~@8 ab3@5 ~@8 bb2@6 eb3@84 ~@17]/3",
})).s("gm_electric_guitar_clean").gain(0.28).pan(0.7)

// other · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@3 A ~@3 A ~@20 A ~@20 B ~@3 B ~@20 A ~@3 B ~@3 C ~@2>".pickRestart({
  A: "~@4 [ab3,a3] g3 [f3,gb3] ~@9 g3 [f3,gb3] e3 eb3 ~@8 f3 e3 [d3,eb3] db3 ~@16", // Amaj7 Gbmaj7 Ebmaj7
  B: "~@4 [bb3,b3] a3 [g3,ab3] ~@9 a3 [g3,ab3] gb3 f3 ~@8 g3 gb3 [e3,f3] eb3 ~@16", // Bmaj7 Abmaj7 Fmaj7
  C: "~@4 [bb3,b3] a3 [g3,ab3] ~@9 a3 [g3,ab3] gb3 f3 ~@9 [gb3,g3] f3 e3 eb3 ~@15", // Bmaj7 Abmaj7 Gmaj7
})).s("gm_electric_guitar_clean").gain(0.14).pan(0.7)

// other · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A B C D@2 B E F@2 ~@16 A B C F@2 ~@16 G H I J@2 H K L@2 ~@16 A B C M@2 H K J@2 H K N@3
>`.pickRestart({
  A: "db4@34 ~@2 db4@3 eb4@3 f4@3 gb4@3", B: "f4@35 ~ f4@3 gb4@3 ab4@3 bb4@3", C: "ab4@15 ~",
  D: "[bb4@4 ~@8 ab4@4 ~@8 gb4@5 ~@7 ab3@6 db4@37 ~@2 ab3@3 db4@3 eb4@3 f4@3 gb4@3]/2", E: "ab4@11 ~",
  F: "[bb4@4 ~@8 ab4@4 ~@8 gb4@5 ~@7 ab3@6 db4@37 ~@17]/2", G: "eb4@34 ~@2 eb4@3 f4@3 g4@3 ab4@3",
  H: "g4@35 ~ g4@3 ab4@3 bb4@3 c5@3", I: "bb4@15 ~",
  J: "[c5@4 ~@8 bb4@4 ~@8 ab4@5 ~@7 bb3@6 eb4@37 ~@2 bb3@3 eb4@3 f4@3 g4@3 ab4@3]/2", K: "bb4@11 ~",
  L: "[c5@4 ~@8 bb4@4 ~@8 ab4@5 ~@7 ab3@6 db4@37 ~@17]/2",
  M: "[bb4@4 ~@8 ab4@4 ~@8 gb4@5 ~@7 bb3@6 eb4@37 ~@2 bb3@3 eb4@3 f4@3 g4@3 ab4@3]/2",
  N: "[c5@4 ~@8 bb4@4 ~@8 ab4@5 ~@8 bb3@6 eb4@84 ~@17]/3",
})).s("gm_acoustic_guitar_nylon").gain(0.41).pan(0.3)

// other · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note("<~@3 A ~@3 A ~@20 A ~@20 B ~@3 B ~@20 A ~@3 B ~@3 C ~@2>".pickRestart({
  A: "~@4 a4 [g4,ab4] gb4 f4 ~@8 g4 gb4 f4 [eb4,e4] ~@8 f4 e4 eb4 [db4,d4] ~@16", // Abmaj7 Emaj7 Dmaj7
  B: "~@4 b4 [a4,bb4] ab4 g4 ~@8 a4 ab4 g4 [f4,gb4] ~@8 g4 gb4 f4 [eb4,e4] ~@16", // Bbmaj7 Gbmaj7 Emaj7
  C: "~@4 b4 [a4,bb4] ab4 g4 ~@8 a4 ab4 g4 [f4,gb4] ~@9 g4 [f4,gb4] e4 eb4 ~@15", // Bbmaj7 Gbmaj7
})).s("gm_acoustic_guitar_nylon").gain(0.21).pan(0.3)

// chords · percussive organ
const percussive_organ = note(`<
  ~@16 A B C@2 D E F G@2 ~@12 A B C@2 D E F H@2 ~@16 A B C@2 D E F G@2 ~@14
>`.pickRestart({
  A: "[db5,f5,bb5]", B: "bb5 ab5, [c5,eb5]", C: "[gb5 f5, [db5,ab5,db6]]/2", D: "[eb5,g5,bb5]", E: "[gb5,ab5,db6]",
  F: "[f5,bb5,db6] [eb5,ab5,c6]", G: "[ab5 ~ c6 db6, gb5, db5 ~, ~ bb5@3]/2", H: "[ab5@2 bb5@2 ab5@3 bb5, [db5,gb5]]/2",
})).s("gm_percussive_organ").gain(0.24).pan(0.8)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@11 A ~@3 B ~@15 C@3 ~@27 B ~@23>".pickRestart({
  A: "~@36 ab4@4 [db4,d4,g4] [c4,f4,gb4] [bb3,b3,e4] eb4 ~@4, ~@35 eb4@4 ~@9", B: "db4@8 c4@7 ~",
  C: "[~@75 db4@3 ~@12 ab3@20 ~@34, ~@47 db4@7 ab3@6 c4@6 db4@6 ab3@5 ~@4 ab3@6 c4@23 ~@34, ~@51 c4@6 db4@6 ab3@5 ~ c4@9 c4@6 db4@26 ~@34]/3",
})).s("gm_electric_guitar_jazz").gain(0.25).pan(0.8)

// bass · piano · Db Eb Db
const bass_2 = note("<~@25 [[db1,db2]] ~@20 [[eb1,eb2]] ~@24 [[db1,db2]] ~@13>").s("gm_piano").gain(0.6).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D@2 E F@3 G H@3 I J K@2 L M N@2 O P Q R A B C S@2 I T@3 G U V@2 L W N@2 O X Q R Y Z AA AB@2 AC AD@3 I T@3 G U
  V@2 L W N@2 O X Q R AE B C AF@2 AC AG@3 AC AH@2 AI@2
>`.pickRestart({
  A: "[ab3,db4,f4]@5 ~ [db4,f4]@6 [ab3,db4,f4]@6 [ab3,db4,f4]@3 [db4,f4]@5 [db4,f4]@3 ~ [ab3,db4,f4]@6 [ab3,db4,f4]@6 [db4,f4]@2 ~ [ab3,db4]@3, f3@29 f3@18 ~, ~@5 ab3@6 ~@10 ab3@9 ~@14 f4@3 ~", // Db Db5
  B: "[bb3,db4,f4]@5 ~ f4@5 ~ [bb3,db4,f4]@6 [db4,f4]@3 [db4,f4]@5 [db4,f4]@3 ~ [bb3,db4,f4]@5 ~ [db4,f4]@6 [db4,f4]@3 [db4,f4]@3, f3@11 f3@9 ~ [f3,bb3]@8 f3@6 f3@12 ~, ~@5 [bb3,db4]@6 ~@25 bb3@12", // Bbm Db Bbm Db Bb5 Bbm
  C: "[ab3,c4,f4]@5 ~ [c4,f4]@6 [c4,f4]@5 ~ f4@2 ~ c4@5 [c4,f4]@3 ~ f4@5 ~ f4@5 ~ f4@2 ~ c4@3, f3@29 [f3,ab3,c4]@6 [f3,ab3]@12 ~, ~@5 ab3@6 ~ ab3@9 ab3@8 ~@6 c4@6 c4@3 ~@4, ~@17 c4@3 f4@5 ~@19 f4@3 ~", // Fm F5 Fm
  D: "[[db4,gb4]@6 [db4,gb4]@6 [gb3,bb3,db4,gb4]@6 [bb3,gb4]@3 [db4,gb4]@5 [db4,gb4]@3 ~ gb4@5 [bb3,db4,gb4]@5 ~ [bb3,db4,gb4]@5 ~@2 [db4,f4]@11 [ab3,db4,f4]@6 f4@3 [db4,f4]@5 ~ [db4,f4]@3 [ab3,db4,f4]@6 ~ f4@5 ~ f4@2 [db4,f4]@3 ~, [gb3,bb3]@12 ~@9 [gb3,bb3]@8 gb3@17 [ab2,db3]@50, ~@29 [bb3,db4]@6 ~@12 f3@30 f3@18 ~, ~@47 ab3@12 ~@9 ab3@6 ~@9 [ab3,db4]@6 ab3@6 ~, ~@89 db4@3 ~@4]/2", // Gb5 Gb Ebm Gb5 Gb Db Gb Db5 …
  E: "[db4,f4]@6 [db4,f4]@5 ~ f4@5 ~ f4@2 ~@6 [db4,f4]@3 ~ [bb3,db4,f4]@6 [bb3,db4,f4]@5 ~ [db4,f4]@2 ~ db4@3, f3@7 [f3,bb3]@3 f3@6, bb3@11 [bb3,db4]@6 db4@3 [db4,f4]@6 ~@15 bb3@6 ~, ~@44 f4@3 ~", // Db Bbm Db Bb5 Bbm Db
  F: "[[ab3,c4,f4]@6 [ab3,c4,f4]@5 ~ [ab3,c4,f4]@5 ~ f4@2 ~ c4@5 [c4,f4]@3 ~ f4@5 ~ [c4,f4]@5 ~ [c4,f4]@2 [c4,f4]@3 ~ [bb3,db4,gb4]@6 [bb3,db4,gb4]@6 [bb3,db4,gb4]@5 ~ [db4,gb4]@3 gb4@3 gb4@2 ~ db4@2 [db4,gb4]@6 [bb3,db4,gb4]@6 [bb3,db4,gb4]@5 ~ ab3 [ab3,db4,f4]@11 ~ [ab3,db4,f4]@6 [ab3,db4,f4]@3 [db4,f4]@5 ~ [db4,f4]@3 [ab3,db4,f4]@6 [ab3,db4,f4]@6 [db4,f4]@3 [ab3,db4,f4]@3, f3@21 [f3,ab3]@8 [f3,ab3,c4]@6 f3@12 gb3@47 ab2@50, ~@17 [ab3,c4]@3 f4@5 ~@10 ab3@6 ab3@6 ~@18 bb3@3 ~ [bb3,db4]@5 gb4@3 ~@18 f3@30 ~ f3@18, ~@75 bb3@8 ~@12 db3@49, ~@39 ab3@2 ~@7]/3", // Fm F5 Gb Gb5 Gb Db Fm Ab …
  G: "[bb3,db4,f4]@2 [bb3,db4,f4]@2 [f3,bb3,db4,f4]@2 [db4,f4] ~@2 [db4,f4] [f3,bb3,db4,f4]@2 [db4,f4]@2 [db4,f4]!2, f3@12 ~@9 bb3@8 ~@19, ~@21 [db4,f4]@5 ~@22, ~@11 f3@4 ~@3 [f3,bb3]@6", // Bbm Db Bbm Db Bb5
  H: "[[bb3,db4,gb4]@6 [bb3,db4,gb4]@6 [bb3,db4]@6 [db4,gb4]@3 [db4,gb4]@5 ~ db4@3 [gb3,bb3,db4,gb4]@6 [db4,gb4]@6 [db4,gb4]@3 [db4,gb4]@2 ~ eb4@6 [db4,eb4]@6 [ab2,ab3,db4,eb4]@6 [ab3,eb4]@3 [c4,eb4]@5 ~ c4@2 ~ [ab3,c4,eb4]@6 [ab3,c4,eb4]@5 [ab3,c4,eb4]@5 ~@2 [ab3,db4,f4]@11 ~ [ab3,db4,f4]@6 [ab3,db4,f4]@3 [db4,f4]@5 ~ [db4,f4]@3 [ab3,db4,f4]@6 [ab3,db4,f4]@6 [db4,f4]@2 ~ [ab3,db4,f4]@3, gb3@26 gb4@3 ~@18 ab2@12 ~@10 [ab2,ab3]@8 ab2@16 ~ ab2@31 ~@19, ~@12 gb4@5 ~@4 bb3@8 ~@7 [gb3,bb3]@12 ab3@12 ~@35 [db3,f3]@30 ~@19, ~@48 db4 ~@25 eb4@3 ~@40 ab3@6 ~@3 f3@18]/3", // Gb Bbm Gb5 Gb Gb5 Dbsus2 Absus4 Ab5 …
  I: "[bb3,db4,f4]@5 ~ [bb3,db4,f4]@6 [f3,bb3,db4,f4]@6 [db4,f4]@3 ~@6 [db4,f4]@3 [f3,bb3,db4,f4]@6 [db4,f4]@6 [db4,f4]@3 [db4,f4]@3, f3@12 ~@9 bb3@8 ~@19, ~@21 [db4,f4]@5 ~@22, ~@11 f3@4 ~@3 [f3,bb3]@6", // Bbm Db Bbm Db Bb5
  J: "[bb3,db4,gb4]@6 [bb3,db4,gb4]@6 [bb3,gb4]@6 [db4,gb4]@3 [db4,gb4]@5 ~ db4@3 [gb3,bb3,db4,gb4]@6 [db4,gb4]@6 [db4,gb4]@3 [db4,gb4]@3, gb3@26 gb4@3 ~@19, ~@12 db4@5 ~@4 bb3@8 ~@7 [gb3,bb3]@12", // Gb Ebm Gb5 Gb Gb5 Gb
  K: "[[db4,eb4]@6 ~ eb4@5 [ab2,ab3,db4,eb4]@6 [ab3,eb4]@3 [ab2,ab3]@6 [c4,eb4]@3 [ab3,c4,eb4]@6 [ab3,c4,eb4]@5 ~ [c4,eb4]@4 ~@2 [bb3,db4,f4]@11 ~ [bb3,db4,f4]@6 [bb3,db4,f4]@3 [db4,f4]@5 ~ db4@3 [bb3,db4,f4]@6 [bb3,db4,f4]@6 [db4,f4]@2 ~ [bb3,db4,f4]@3, [ab2,ab3]@12 ~@18 ab2@16 bb2@28 f4@3 ~@19, ~@6 db4@6 ~@9 [c4,eb4]@5 ~@15 ab3@6 [db3,f3]@30 ~ f3@18, ~@69 bb3@8 ~@19]/2", // Dbsus2 Absus4 Ab5 Ab Cm Ab Cm Bbm …
  L: "[ab3,c4,eb4]@5 ~ [c4,eb4]@6 [eb3,ab3,c4,eb4]@6 [c4,eb4]@3 [c4,eb4]@5 [c4,eb4]@3 ~ [eb3,ab3,c4,eb4]@6 [c4,eb4]@6 [c4,eb4]@3 [c4,eb4]@3, eb3@12 ~@9 [eb3,ab3]@8 ~@7 [eb3,ab3]@12, ~@5 ab3@6 ~@37", // Ab Cm Ab Cm Ab Cm Ab5
  M: "[bb3,db4,gb4]@6 [bb3,db4,gb4]@6 [db4,gb4]@5 ~ gb4@3 [db4,gb4]@5 [db4,gb4]@3 ~ [db4,gb4]@5 ~ [db4,gb4]@6 [db4,gb4]@3 [db4,gb4]@3, gb3@29 [gb3,bb3]@6 gb3@12 ~, ~@12 bb3@9 bb3@8 ~@7 bb3@12, ~@17 db4@3 ~@28", // Gb Gb5 Gb
  N: "[[db4,f4]@6 ~ f4@5 [db3,ab3,db4,f4]@6 [ab3,f4]@3 [db3,ab3]@6 [db4,f4]@3 [ab3,db4,f4]@6 [ab3,db4,f4]@5 ~ [db4,f4]@4 ~@2 [eb4,g4]@12 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [eb4,g4]@5 ~ eb4@3 [bb3,eb4,g4]@6 [bb3,eb4,g4]@6 [eb4,g4]@2 ~ [bb3,eb4,g4]@3, [db3,ab3]@12 ~@18 db3@16 bb2@28 g4@3 ~@19, ~@6 db4@6 ~@9 [db4,f4]@5 ~@15 ab3@6 [eb3,g3]@30 ~@19, ~@47 bb3@12 ~@10 bb3@8 ~ g3@18]/2", // Db Db5 Db Eb Db5 Db Eb
  O: "[bb3,db4,gb4]@5 ~ [db4,gb4]@6 [gb3,bb3,db4,gb4]@6 [db4,gb4]@3 [db4,gb4]@5 [db4,gb4]@3 ~ [gb3,bb3,db4,gb4]@6 [db4,gb4]@6 [db4,gb4]@3 [db4,gb4]@3, gb3@12 ~@9 [gb3,bb3]@8 ~@7 [gb3,bb3]@12, ~@5 bb3@6 ~@37", // Gb Gb5 Gb Gb5 Gb Gb5 Gb
  P: "[bb3,db4,f4]@6 [bb3,db4,f4]@6 db4@5 ~ f4@3 [c4,eb4]@5 [c4,eb4]@3 ~ [c4,eb4]@5 ~ [c4,eb4]@6 [c4,eb4]@3 [c4,eb4]@3, f3@21 [eb3,ab3]@8 [eb3,ab3]@6 eb3@12 ~, ~@4 [bb3,f4]@3 ~@5 ab3@4, ~@17 db4@3 ~@28", // Bbm Cm Ab5 Bb5
  Q: "[gb2,ab3,db4,gb4]@12 [gb3,ab3,db4,gb4]@6 [gb3,db4]@3 [ab3,db4]@5 [ab3,db4]@3 ~ [ab3,db4]@5 ~ [ab3,db4]@5 [gb3,ab3,db4]@6 ~, ~@21 [gb3,gb4]@8 gb4@18 ~, ~@29 gb3@6 gb3@5 ~@8", // Gbsus2 Gb5 Db5 Gbsus2 Gb
  R: "[ab3,db4]@6 [ab3,db4]@6 [gb3,ab3,db4,gb4]@6 [gb3,db4]@3 [ab3,db4]@5 [ab3,db4]@3 ~ [ab3,db4]@5 ~ [ab3,db4]@5 [gb3,ab3,db4]@6 ~, [gb3,gb4]@12 ~@9 [gb3,gb4]@8 gb4@18 ~, ~@29 gb3@6 gb3@5 ~@8", // Db5 Gbsus2 Gb5 Db5 Gbsus2 Gb
  S: "[[db4,gb4]@6 [db4,gb4]@6 [gb3,bb3,db4,gb4]@6 [bb3,gb4]@3 [db4,gb4]@5 [db4,gb4]@3 ~ gb4@5 [bb3,db4,gb4]@5 ~ [bb3,db4,gb4]@5 ~ ab3 [ab3,db4,f4]@11 ~ [ab3,db4,f4]@6 [ab3,db4,f4]@3 [db4,f4]@5 ~ [db4,f4]@3 [ab3,db4,f4]@6 [ab3,db4,f4]@6 [db4,f4]@2 ~ [ab3,db4,f4]@3, [gb3,bb3]@12 ~@9 [gb3,bb3]@8 gb3@17 [ab2,db3]@50, ~@29 [bb3,db4]@6 ~@12 f3@30 ~ f3@18, ~@23 ab3@2 ~@7]/2", // Gb5 Gb Ebm Gb5 Gb Db Gb Db5 …
  T: "[[bb3,db4,gb4]@6 [bb3,db4,gb4]@6 [db4,gb4]@5 ~ [db4,gb4]@3 [db4,gb4]@5 ~ db4@3 [gb3,bb3,db4,gb4]@6 [db4,gb4]@6 [db4,gb4]@3 [db4,gb4]@2 ~ eb4@6 [db4,eb4]@6 [ab2,ab3,db4,eb4]@6 [ab3,eb4]@3 [c4,eb4]@5 ~ c4@2 ~ [ab3,c4,eb4]@6 [ab3,c4,eb4]@5 [ab3,c4,eb4]@5 ~@2 [ab3,db4,f4]@11 ~ [ab3,db4,f4]@6 [ab3,db4,f4]@3 [db4,f4]@5 ~ [db4,f4]@3 [ab3,db4,f4]@6 [ab3,db4,f4]@6 [db4,f4]@3 [ab3,db4,f4]@3, gb3@26 gb4@3 ~@18 ab2@12 ~@10 [ab2,ab3]@8 ab2@16 ~ ab2@31 ~@19, ~@12 bb3@6 ~@3 bb3@8 ~@7 [gb3,bb3]@12 ab3@12 ~@35 [db3,f3]@30 ~@19, ~@48 db4 ~@25 eb4@3 ~@40 ab3@6 ~@3 f3@18]/3", // Gb Gb5 Gb Gb5 Dbsus2 Absus4 Ab5 Cm …
  U: "[bb3,db4,gb4]@6 [bb3,db4,gb4]@6 [bb3,db4]@6 [db4,gb4]@3 [db4,gb4]@5 ~ db4@3 [gb3,bb3,db4,gb4]@6 [db4,gb4]@6 [db4,gb4]@3 [db4,gb4]@3, gb3@26 gb4@3 ~@19, ~@12 gb4@5 ~@4 bb3@8 ~@7 [gb3,bb3]@12", // Gb Bbm Gb5 Gb Gb5 Gb
  V: "[[db4,eb4]@6 ~ eb4@5 [ab2,ab3,db4,eb4]@6 [ab3,eb4]@3 [ab2,ab3]@6 [c4,eb4]@3 [ab3,c4,eb4]@6 [ab3,c4,eb4]@5 ~ [c4,eb4]@4 ~@2 [bb3,db4,f4]@11 ~ [bb3,db4,f4]@6 [bb3,db4,f4]@3 [db4,f4]@5 ~ db4@3 [bb3,db4,f4]@6 [bb3,db4,f4]@6 [db4,f4]@2 ~ [bb3,db4,f4]@3, [ab2,ab3]@12 ~@18 ab2@16 bb2@28 f4@3 ~@19, ~@6 db4@6 ~@9 [c4,eb4]@5 ~@15 ab3@6 [db3,f3]@30 ~ f3@18, ~@23 bb3@3 ~@6]/2", // Dbsus2 Absus4 Ab5 Ab Cm Ab Cm Bbm …
  W: "[bb3,db4,gb4]@6 [bb3,db4,gb4]@6 db4@5 ~ gb4@3 [db4,gb4]@5 [db4,gb4]@3 ~ [db4,gb4]@5 ~ [db4,gb4]@6 [db4,gb4]@3 [db4,gb4]@3, gb3@29 [gb3,bb3]@6 gb3@12 ~, ~@12 [bb3,gb4]@9 bb3@8 ~@7 bb3@12, ~@17 db4@3 ~@28", // Gb Gb5 Gb Ebm
  X: "[bb3,db4,f4]@6 [bb3,db4,f4]@6 [db4,f4]@5 ~ f4@3 [c4,eb4]@5 [c4,eb4]@3 ~ [c4,eb4]@5 ~ [c4,eb4]@6 [c4,eb4]@3 [c4,eb4]@3, f3@21 [eb3,ab3]@8 [eb3,ab3]@6 eb3@12 ~, ~@4 bb3@3 ~@5 ab3@4, ~@17 db4@3 ~@28", // Bbm Db Cm Ab5
  Y: "[bb3,eb4,g4]@5 ~ [eb4,g4]@6 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [eb4,g4]@5 [eb4,g4]@3 ~ [bb3,eb4,g4]@6 [bb3,eb4,g4]@6 [eb4,g4]@2 ~ [bb3,eb4]@3, g3@29 g3@18 ~, ~@5 bb3@6 ~@10 bb3@8 ~@15 g4@3 ~", // Eb Eb5
  Z: "[c4,eb4,g4]@5 ~ g4@5 ~ [c4,eb4,g4]@6 [eb4,g4]@3 [eb4,g4]@5 [eb4,g4]@3 ~ [c4,eb4,g4]@5 ~ [eb4,g4]@6 [eb4,g4]@3 [eb4,g4]@3, g3@11 g3@9 ~ [g3,c4]@8 g3@6 g3@12 ~, ~@5 [c4,eb4]@6 ~@25 c4@12", // Cm Eb Cm Eb C5 Cm
  AA: "[bb3,d4,g4]@5 ~ [d4,g4]@6 [d4,g4]@5 ~ g4@2 ~ d4@5 [d4,g4]@3 ~ g4@5 ~ g4@5 ~ g4@2 ~ d4@3, g3@29 [g3,bb3,d4]@6 [g3,bb3]@12 ~, ~@5 bb3@6 ~ bb3@9 bb3@8 ~@6 d4@6 d4@3 ~@4, ~@17 d4@3 g4@5 ~@19 g4@3 ~", // Gm G5 Gm
  AB: "[[eb4,ab4]@6 [eb4,ab4]@6 [ab3,c4,eb4,ab4]@6 [c4,ab4]@3 [eb4,ab4]@5 [eb4,ab4]@3 ~ ab4@5 [c4,eb4,ab4]@5 ~ [c4,eb4,ab4]@5 ~@2 [eb4,g4]@11 [bb3,eb4,g4]@6 g4@3 [eb4,g4]@5 ~ [eb4,g4]@3 [bb3,eb4,g4]@6 ~ g4@5 ~ g4@2 [eb4,g4]@3 ~, [ab3,c4]@12 ~@9 [ab3,c4]@8 ab3@17 [bb2,eb3]@50, ~@29 [c4,eb4]@6 ~@12 g3@30 g3@18 ~, ~@47 bb3@12 ~@9 bb3@6 ~@9 [bb3,eb4]@6 bb3@6 ~, ~@89 eb4@3 ~@4]/2", // Ab5 Ab Fm Ab5 Ab Eb Ab Eb5 …
  AC: "[eb4,g4]@6 [eb4,g4]@5 ~ g4@5 ~ g4@2 ~@6 [eb4,g4]@3 ~ [c4,eb4,g4]@6 [c4,eb4,g4]@5 ~ [eb4,g4]@2 ~ eb4@3, g3@7 [g3,c4]@3 g3@6, c4@11 [c4,eb4]@6 eb4@3 [eb4,g4]@6 ~@15 c4@6 ~, ~@44 g4@3 ~", // Eb Cm Eb C5 Cm Eb
  AD: "[[bb3,d4,g4]@6 [bb3,d4,g4]@5 ~ [bb3,d4,g4]@5 ~ g4@2 ~ d4@5 [d4,g4]@3 ~ g4@5 ~ [d4,g4]@5 ~ [d4,g4]@2 [d4,g4]@3 ~ [c4,eb4,ab4]@6 [c4,eb4,ab4]@6 [c4,eb4,ab4]@5 ~ [eb4,ab4]@3 ab4@3 ab4@2 ~ eb4@2 [eb4,ab4]@6 [bb3,db4,gb4]@6 [bb3,db4,gb4]@5 ~ ab3 [ab3,db4,f4]@11 ~ [ab3,db4,f4]@6 [ab3,db4,f4]@3 [db4,f4]@5 ~ [db4,f4]@3 [ab3,db4,f4]@6 [ab3,db4,f4]@6 [db4,f4]@2 ~ [ab3,db4,f4]@3, g3@21 [g3,bb3]@8 [g3,bb3,d4]@6 g3@12 ab3@47 ab2@50, ~@17 [bb3,d4]@3 g4@5 ~@10 bb3@6 bb3@6 ~@18 c4@3 ~ [c4,eb4]@5 ab4@3 ~@18 f3@30 ~ f3@18, ~@75 c4@8 ~@12 db3@49, ~@39 ab3@2 ~@7]/3", // Gm G5 Ab Ab5 Gb Db Gm Bb …
  AE: "[ab3,db4,f4]@5 ~ [db4,f4]@6 [ab3,db4,f4]@6 [ab3,db4,f4]@3 [db4,f4]@5 [db4,f4]@3 ~ [ab3,db4,f4]@6 [ab3,db4,f4]@6 [db4,f4]@2 ~ [ab3,db4]@3, f3@29 f3@18 ~, ~@5 ab3@6 ~@10 ab3@8 ~@15 f4@3 ~", // Db Db5
  AF: "[[db4,gb4]@6 [db4,gb4]@6 [gb3,bb3,db4,gb4]@6 [bb3,gb4]@3 [db4,gb4]@5 [db4,gb4]@3 ~ gb4@5 [c4,eb4,ab4]@5 ~ [c4,eb4,ab4]@5 ~@2 [eb4,g4]@11 [bb3,eb4,g4]@6 g4@3 [eb4,g4]@5 ~ [eb4,g4]@3 [bb3,eb4,g4]@6 ~ g4@5 ~ g4@2 [eb4,g4]@3 ~, [gb3,bb3]@12 ~@9 [gb3,bb3]@8 ab3@17 [bb2,eb3]@50, ~@29 [bb3,db4]@6 ~@12 g3@30 g3@18 ~, ~@47 bb3@12 ~@9 bb3@6 ~@9 [bb3,eb4]@6 bb3@6 ~, ~@89 eb4@3 ~@4]/2", // Gb5 Gb Ebm Gb5 Ab Eb Gb Eb5 …
  AG: "[[bb3,d4,g4]@6 [bb3,d4,g4]@5 ~ [bb3,d4,g4]@5 ~ g4@2 ~ d4@5 [d4,g4]@3 ~ g4@5 ~ [d4,g4]@5 ~ [d4,g4]@2 [d4,g4]@3 ~ [c4,eb4,ab4]@6 [c4,eb4,ab4]@6 [c4,eb4,ab4]@5 ~ [eb4,ab4]@3 ab4@3 ab4@2 ~ eb4@2 [eb4,ab4]@6 [c4,eb4,ab4]@6 [c4,eb4,ab4]@5 ~@2 [eb4,g4]@11 [eb4,g4]@6 g4@3 [eb4,g4]@5 ~ [eb4,g4]@3 [bb3,eb4,g4]@6 ~ g4@5 ~ g4@2 [eb4,g4]@3 ~, g3@21 [g3,bb3]@8 [g3,bb3,d4]@6 g3@12 ab3@47 bb2@50, ~@17 [bb3,d4]@3 g4@5 ~@10 bb3@6 bb3@6 ~@18 c4@3 ~ [c4,eb4]@5 ab4@3 ~@18 g3@30 g3 ~@11 eb4@3 ~@4, ~@75 c4@8 ~@12 eb3@49, ~@95 bb3@12 bb3 ~@8 bb3@6 ~@9 [bb3,eb4]@6 bb3@6 ~]/3", // Gm G5 Ab Ab5 Ab Eb Gm Bb …
  AH: "[[bb3,d4,g4]@6 [bb3,d4,g4]@5 ~ [bb3,d4,g4]@5 ~ g4@2 ~ d4@5 [d4,g4]@3 ~ g4@5 ~ [d4,g4]@5 ~ [d4,g4]@2 [d4,g4]@3 ~ [c4,eb4,ab4]@6 [c4,eb4,ab4]@6 [c4,eb4,ab4]@5 ~ [eb4,ab4]@3 ab4@3 ab4@2 ~ [eb4,ab4]@3 [eb4,ab4]@6 [c4,eb4,ab4]@6 ~ [c4,eb4,ab4]@5, g3@21 [g3,bb3]@8 [g3,bb3,d4]@6 g3@12 ab3@49, ~@17 [bb3,d4]@3 g4@5 ~@10 bb3@6 bb3@6 ~@18 c4@3 ~ [c4,eb4]@6 c4@9 ~@12]/2", // Gm G5 Ab Ab5 Ab Gm Bb Cm
  AI: "[~@2 [g3,bb3,eb4,g4]@77 ~@17, bb2@79 ~@17, ~ eb3@79 ~@16]/2", // Eb
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.4)

// drums · kick
const kick = s("bd").struct("<[x ~@2 x ~@6 x ~@5]!83 [~ x ~@22] ~>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<[~@4 x ~@2 x ~@4 x ~@3]!82 [~@12 x ~@8 x ~@15 x ~@10] ~@2>").gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@70 [~@35 x ~@2 x ~@2 x ~@6] ~@11 [~@37 x ~@10] ~@2>").gain(0.56)

// drums · hihat
const hihat = s("hh").struct("<[x!8]!82 [x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@10] ~@2>").gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!82
  [~@3 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@7]
  ~@2
>`).gain(0.24)

// drums · mid tom
const mid_tom = s("mt").struct("<~@70 [~@12 x!3 ~] ~@11 [~@5 x ~@10] ~@2>").gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@82 [~@43 x ~@4] ~@2>").gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@82 [~@9 x ~@6] ~@2>").gain(0.56)

// drums · crash
const crash = s("cr").struct("<~@25 A ~@20 A ~@24 A ~@3 A ~@2 B A ~@3 C ~>".pickRestart({
  A: "x", B: "~@3 x", C: "~ x ~@22",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct("<~@22 A B ~@19 A B ~@16 A B ~@5 A B ~@4 C B ~@9>".pickRestart({
  A: "~@46 x!2", B: "x", C: "~@45 x!3",
})).gain(0.4)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@23 A ~@20 A ~@24 A ~@4 B ~@10>".pickRestart({
  A: "~@10 x ~@10 x ~@26", B: "~@43 x!3 ~@2",
})).gain(0.08)

stack(
  bass, synth_strings_1, string_ensemble_2, electric_guitar_clean, electric_guitar_clean_2, acoustic_guitar_nylon,
  acoustic_guitar_nylon_2, percussive_organ, electric_guitar_jazz, bass_2, acoustic_guitar_steel, kick, snare, low_tom,
  hihat, hihat_soft, mid_tom, open_hat, high_tom, crash, ride, ride_soft
// … 1 more lines

More by Antonello Venditti