Strudelify
Piu bella cosa cover art

1997 · Eros

Piu bella cosa

Ramazzotti

KeyA♭ majorTempo112 bpm
0:00/0:00
// Piu bella cosa — Ramazzotti
// 112 bpm, 4/4, key G# 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: ch 16 "PIUBELLA" named as a mallet, played on tubular bells (its piano patch is not one)
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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 · tubular bells · "PIUBELLA"
const tubular_bells = note(`<
  ~@17 A B C ~ A B C ~@9 A B C ~ A B C ~@2 D@2 ~@9 E F E ~@3 G@3 ~@5 A B C ~ A B C ~@2 D@2 ~@9 E F E ~@13 E F E ~@5 H@2
  I ~ H@2 I ~ J@3
>`.pickRestart({
  A: "~@6 c4@5 db4@3 eb4@2", B: "f4@3 eb4@2 ab3@2 db4", C: "c4@3 ~", D: "[~@6 eb4@5 f4@3 eb4@4 f4@10 ~@4]/2",
  E: "[eb4,ab4,c5]", F: "[d4,g4,bb4]", G: "[~@6 db4@27 bb3 ab3@4 ~@10]/3",
  H: "[~@3 [g4,bb4]@10 [ab4,c5] [g4,bb4] [ab4,c5], ~@3 [eb4,eb5]@13]/2", I: "~@3 bb4@2 g4@2 ~, ~@3 eb5@4 ~",
  J: "[~@3 [bb3,eb4,g4]@34 ~@11]/3", // Eb
})).s("gm_tubular_bells").gain(0.05)

// chords · piano
const piano = note(`<
  ~@5 A B C D A B E F A B G H ~@8 A B I J A B E K ~@15 L M ~@6 N ~@2 A B E O A B E K P Q R ~ P Q S ~@8 L M ~@6 N ~@7 L M
  ~@6 T ~@15
>`.pickRestart({
  A: "[ab2,db3,f3]", B: "[bb2,eb3,gb3]", C: "f3@8 f3@3 gb3@3 ab3@2, [ab2,db3]",
  D: "db4@3 c4@3 ab3@9 ~, [bb2,eb3,gb3]@7 ~", E: "[ab2,db3], f3 ~", F: "[bb2,eb3,gb3]@7 ~",
  G: "f3@8 f5@3 gb5@3 ab5@2, [ab2,db3]", H: "db6 ab5 bb5@2, [bb2,eb3,gb3]@7 ~", I: "f3@8 f4@3 gb4@3 ab4@2, [ab2,db3]",
  J: "db5@3 c5@3 ab4@2 bb4@8, [bb2,eb3,gb3]@7 ~", K: "[bb2,eb3,gb3]@7 ~, [ab4,db5]",
  L: "[f3,a3,c4,f4]@5 ~ [a3,c4,f4]@2, ~@5 f3@3", M: "[g3,bb3,eb4]@15 ~",
  N: "[ab3,c4,eb4]@8 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4]@4", O: "[db4,gb4]", P: "[eb3,ab3]@7 ~", Q: "[f3,bb3]",
  R: "[ab3,c4]", S: "[ab3,c4] ~", T: "[ab3,c4,eb4] ~@15",
})).s("gm_piano").gain(0.2).pan(0.6)

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

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@17 A B C ~ A B C ~@9 A B C ~ A B C ~@27 A B C ~ A B C ~@48>".pickRestart({
  A: "~@8 ab3@3 bb3@3 c4@2", B: "db4@15 ~", C: "eb4@15 ~",
})).s("gm_acoustic_guitar_steel").gain(0.1)

// other · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~@18 A@2 ~@2 A@2 ~@10 A@2 ~@2 A@2 ~@28 A@2 ~@2 A@2 ~@48>".pickRestart({
  A: "[~@15 ab3@16 ~]/2",
})).s("gm_acoustic_guitar_steel").gain(0.05)

// chords · rock organ
const rock_organ = note(`<
  ~@41 A B C@2 A D E@2 F@4 ~@14 G@4 ~@4 A B C@2 A D E@2 F@4 ~@4 A B C@2 A D E@2 F@4 ~@8 A B C@2 A B H@5
>`.pickRestart({
  A: "[eb5,g5]", B: "[bb4,f5]", C: "[[c5,eb5]@31 ~]/2", D: "[g5,bb5]", E: "[ab5 a5, c6]/2",
  F: "[bb5@15 ~ b5@15 ~ c6@15 ~ db6@13 ~@3, eb5@29 ~@3]/4", G: "[eb6,ab6]/4", H: "[c5@24 ~@11 bb4@39 ~@6, eb5@19 ~]/5",
})).s("gm_rock_organ").gain(0.09)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@3 A@6 ~@16 B@8 C D C E C D F G H@2 I@2 H@2 J@2 ~@10 K@4 L@4 C D C E C D F G H@2 I@2 H@2 J@2 ~@8 H@2 I@2 H@2 J@2 ~@8
  M N@3 O@2 P@2 O@2 Q@5
>`.pickRestart({
  A: "[~@7 ab4@89]/6", B: "[[db4,f4] gb4 [db4,f4] gb4 f4 gb4 f4 gb4, ab4]/8", C: "ab3", D: "bb3", E: "gb3",
  F: "ab3 gb3", G: "f3 eb3", H: "[g4 f4, bb3]/2", I: "[c4,eb4]/2", J: "[eb4 f4, c4]/2",
  K: "[[db4,f4] gb4 [db4,f4] gb4, ab4, db5@40 ~@8 db6@3 ~@13]/4", L: "[~ gb4 f4 gb4, ab4]/4",
  M: "~@6 g3@2 g5@2 d5 [eb5,f5] g5 [ab5,bb5] c6 [d6,eb6], ~@6 g5 ~ g3@4 ~@4, ~@5 ab3@2 bb3", // Ebsus2 Absus2 Ebmaj7
  N: "[[f4,f6] eb4@2, bb3, ~ eb6 ~]/3", O: "[g4 f4, bb5]/2", P: "[eb4,c5]/2", Q: "[[eb4,c5]@35 [g4,bb5]@39 ~@6]/5",
})).s("gm_string_ensemble_2").gain(0.13)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@26 A ~ A B A B C ~@27 A ~ A D A B C ~@55>".pickRestart({
  A: "eb4", B: "db4", C: "eb4@7 ~", D: "f4",
})).s("gm_string_ensemble_2").gain(0.07)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  A B C B D ~@19 E F@2 ~@22 G H I J K L M@2 ~@2 F@2 ~@22 G H I N K L O G ~@8 G H I N K L O P ~@15
>`.pickRestart({
  A: "~@14 [db3,ab3]!2", B: "[db3,ab3]@13 ~ [eb3,bb3]!2", C: "[eb3,bb3]@13 ~ [db3,ab3]!2",
  D: "[eb3,bb3]@14 [db3,ab3]!2", E: "~@14 [db2,ab2]!2", F: "[[db2,ab2]@29 ~@3]/2", G: "bb2", H: "b2", I: "c3",
  J: "db3@11 ~ [eb3,ab3]@2 [db3,d3] [bb2,b2,c3]", K: "[ab2,eb3], a2 ~@15", L: "[g2,d3]",
  M: "[f2@8 bb2@5 ~@3, c3@13 ~@3]/2", N: "db3@10 ~@2 [eb3,ab3]@2 [db3,d3] [bb2,b2,c3]", O: "[f2,c3]", P: "bb2 ~@15",
})).s("gm_overdriven_guitar").gain(0.12)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@18 A@2 B@2 C D@2 ~@9 E@2 F@2 C D@2 ~@3 G@2 ~@22 E@2 F@2 C D@2 ~@3 G@2 ~@11 H@8 ~@9 I@7 J@4 ~@3
>`.pickRestart({
  A: "[~@6 ab4@21 ~@5, ~@2 db4@11 ~@3]/2", B: "[~@2 db4@2 ~@2 db4@3 ~@3 ab4@8 ~@12, ~@2 ab4@3 ~@11]/2",
  C: "~@4 ab4@2 ~@4 db4@5 ~, ~@6 ab4@9 ~",
  D: "[~@5 eb4 ~ eb4 ~@6 ab4@2, ab3@6 gb3@10 f3@9 ~@7, ~@2 eb4@7 ~@9 eb4@4 ~@2 eb3@8, ~@4 ab4@7 ~ ab4@7 ~ ab4@6 eb4@4 ~@2]/2",
  E: "[~@6 ab4@21 ~@3 gb3@2, ~@2 db4@11 ~@3]/2", F: "[~@2 gb3@4 ~@2 db4@3 ~ db4@13 ~@7, db4@3 ~@13]/2",
  G: "[~@4 ab3@7 ~@3 eb3 ~@17, ~@3 ab3@2 ~@3]/2",
  H: "[~@4 eb4@2 ~@5 bb3 ~@13 bb3 ~ bb3 ~@3 eb4@2 ~@10 bb3 ~@6 f4 ~@8 f4 f4@2 ~ f4, eb4@3 ~@4 f4@4 ~ f4@3 eb4@5 eb4@2 ~ eb4@4 ~ eb4@2 ~@6 eb4@2 ~ f4@4 ~ f4@3 eb4@5 eb4@2 ~ f4@4 ~@5, ~ bb3@3 ~@5 bb3@2 ~@2 bb3@2 ~@2 bb3@2 ~@2 bb3@3 ~@5 bb3@3 ~ bb3@3 ~ bb3@2 ~@2 bb3@2 ~@2 bb3@2 ~@2 bb3@2 ~@2 bb3@3 ~@2 c4@3 ~ c4@2, ~@2 bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@4 bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@4 ~@6]/8",
  I: "[~@3 bb3 ~@16 eb4@2 ~ eb4 ~@4 eb4@2 ~@5 bb3 ~@16 eb4@2 ~ eb4, ~ bb3@2 ~ f4@3 eb4@5 eb4@2 ~ eb4@4 ~@5 eb4@3 ~@4 f4@4 ~ f4@3 eb4@5 eb4@2 ~ eb4@4 ~@5, ~@2 bb4@3 bb3@2 ~@6 bb3@3 ~@9 bb3@3 ~@5 bb3@2 ~@2 bb3@2 ~@2 bb3@2 ~@2 bb3@3 ~@8, ~@6 bb4@3 ~ bb4@3 ~ bb4@4 bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@4 bb4@3 ~ bb4@2]/7",
  J: "[~@4 eb4@2 ~@5 bb3 ~@11 eb4@4 ~@5, eb4@3 ~@4 f4@4 ~ f4@3 eb4@5 eb4@2 ~@10, ~ bb3@3 ~@5 bb3@2 ~@2 bb3@2 ~@6 bb3@3 ~@8, ~@2 bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@4 ~@6]/4",
})).s("gm_electric_guitar_clean").gain(0.32)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@20 A@2 ~@2 B ~@11 C@2 ~@2 B ~@3 D ~@25 C@2 ~@2 B ~@3 D ~@12 E ~ F ~@3 F G ~@10 H I E ~ J I E ~ H ~@4
>`.pickRestart({
  A: "[~@10 db4@3 ~ db4@6 ~@12]/2", B: "~@6 eb4@3 ~@5 eb4@2", C: "[~@3 gb3 ~ gb3 ~ gb3@4 ~@5]/2",
  D: "~@2 eb3@2 ~@2 eb3@3 ~ eb3@2 ~@4", E: "~@5 bb3@2 ~", F: "~@3 bb3 ~@4", G: "~ a3@4 a3@3", H: "~ bb3@2 bb3 ~@4",
  I: "~ bb3 ~ bb3 ~ bb3@3", J: "~@3 bb3@2 ~@3",
})).s("gm_electric_guitar_clean").gain(0.16)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note("<A B C B D E F G ~@16 H E ~@2 H E ~@27 I@2 E ~@62>".pickRestart({
  A: "~@14 [db3,f3,ab3,ab4]!2", B: "[db3,f3,ab3,ab4]@12 ~@2 [bb2,eb3,bb3,ab4]!2",
  C: "[bb2,eb3,bb3,ab4]@13 ~ [db3,f3,ab3,ab4]!2", D: "[bb2,eb3,bb3,ab4]@14 [db3,f3,ab3,db4]!2",
  E: "[db3,f3,ab3,db4]@7 ~", F: "[bb2,eb3,bb3,eb4]@14 [db3,f3,ab3,db4]!2", G: "[db3,f3]@7 ~",
  H: "~@14 [db3,f3,ab3,db4]!2", // Db
  I: "[[eb3,ab3,c4]@6 [f3,ab3,db5]@4 [f3,ab3,db5] ~ [eb3,ab3,c4]@12 ~@6 [db3,f3,ab3,db4]!2]/2", // Ab Db Ab Db
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel_4 = note(`<
  ~@5 A B A B C D C D C D C D E F E F E F G H C D C D C D C D E F E F E F G H I J E@2 I J E K I L M N O P E Q ~@2 C D C
  D C D C D E F E F E F G H I J E@2 I J E K I L M N O P E Q I J E@2 I J E K I L M N O P E R ~ J E@2 I J E@2 I J E S T@3
>`.pickRestart({
  A: "[ab3,db4,ab4]@2 [ab3,db4,ab4]@2 [ab3,db4,ab4]!2 [ab3,db4,ab4]@2", // Db5
  B: "[bb3,db4,ab4]@2 [bb3,db4,ab4]@2 [bb3,db4,ab4]!2 [bb3,db4,ab4]@2", // Bbm7
  C: "[db3,f3,ab3,db4]@2 [db3,f3,ab3,db4]@3 [db3,f3,ab3,db4]!3", // Db
  D: "[eb3,gb3,bb3,db4]@2 [eb3,gb3,bb3,db4]@3 [eb3,gb3,bb3,db4]!3", // Ebm7
  E: "[ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@3 [ab3,c4,eb4,ab4]!3", F: "[bb3,db4,ab4]@2 [bb3,db4,ab4]@3 [bb3,db4,ab4]!3",
  G: "[ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] [bb3,db4,ab4]@2 [bb3,db4,eb4,ab4]!3", // Ab Bbm7
  H: "[ab3,db4,f4,ab4]@4 [ab3,db4,f4,ab4]@3 ~ [ab3,c4,eb4,ab4]@3 ~ [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@2", // Db Ab
  I: "[eb3,g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@3 [eb3,g3,bb3,eb4]!3", // Eb
  J: "[g3,bb3,d4,f4]@2 [g3,bb3,d4,f4]@3 [g3,bb3,d4,f4]!3", K: "[a3,c4,eb4,a4]@2 [a3,c4,eb4,a4]@3 [a3,c4,eb4,a4]!3",
  L: "[eb3,g3,b3,eb4]@2 [eb3,g3,b3,eb4]@3 [eb3,g3,b3,eb4]!3", // Ebaug
  M: "[eb3,g3,c4,eb4]@2 [eb3,g3,c4,eb4]@3 [eb3,g3,c4,eb4]!3", // Cm
  N: "[eb3,g3,bb3,db4]@2 [eb3,g3,bb3,db4]@3 [eb3,g3,bb3,db4]!3", // Eb7
  O: "[ab3,c4,eb4]@2 [ab3,c4,eb4]@3 [ab3,c4,eb4]!3, ~@3 ab4", // Ab
  P: "[bb3,c4,eb4]@2 [bb3,c4,eb4]@3 [bb3,c4,eb4] [bb3,eb4] [bb3,eb4,c5], ~@3 c4", // Cm7 Eb5 Cm7
  Q: "[ab3,c4,eb4]@2 [ab3,c4,eb4]@3 [ab3,c4,eb4]!3", R: "[ab3,c4] ~@3, eb4 ~@15",
  S: "[ab3,c4,eb4,ab4]@4 [ab3,c4,eb4,ab4]@5 [ab3,c4,eb4,ab4]@4 ~@3", T: "[~ [g3,bb3,eb4]@13 ~@2, ~@2 eb3@31 ~@15]/3",
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean_3 = note(`<
  ~@5 A B A C ~@8 D E F G D E H ~@9 D E F G I E H J@2 K L@2 M K L@2 N@4 O@4 ~@10 D E F G I E H J@2 K L@2 M K L@2 N@4 O@4
  P K L@2 M K L@2 N@4 Q@4 ~ K L@2 P K L@2 P K F R@4
>`.pickRestart({
  A: "~ ab3@15, [db3,f3]", B: "~ bb3@15, [eb3,gb3]", C: "~ bb3@14 ~, [eb3,gb3]@15 ~", D: "~ c4@15, [eb3,ab3]",
  E: "[f3,bb3,db4]@15 ~", F: "[ab3,c4,eb4]", G: "[gb3,bb3,db4]@7 ~", H: "[ab3,c4,eb4]@7 ~", I: "[eb3,ab3,c4]@15 ~",
  J: "[~ [bb3,g4], ~@15 eb3@16 ~]/2", K: "[g3,bb3,f4]", L: "[[ab3,c4,eb4]@13 ~@3]/2", M: "[eb3,bb3,g4]",
  N: "[~@2 g4 ~@11 b3@2 ~@6 c4@3 ~@5 db4@2, eb4@5 eb4@5 eb4@3 eb4@4 ~ eb4@3 eb4@4 ~ eb4@3 eb4@3, ~ bb3@5 bb3@4 ~ g4@6 ~@2 g4@6 ~@2 g4@5, ~@3 g4@6 b3@4 ~@4 c4@4 ~@4 db4@4 ~@3]/4",
  O: "[~@2 eb4 eb4@2 ~ eb4@3 ~@5 eb4@3 ~@5 eb4@3 ~@7, ~ ab3@4 ab3@3 ~ g3@7 ~ f3@7 ~@8, ~@10 bb3@3 bb3@3 ~@2 ab3@3 ab3@3 ~@8, ~@11 eb4@3 ~@5 eb4@3 ~@10]/4",
  P: "[bb3,g4]", // Eb
  Q: "[~@2 eb4 eb4@2 ~ eb4@3 ~@5 eb4@3 ~@5 eb4@3 ~@7, ~@2 ab3@5 ~@3 ab3@6 ~@2 g3@14 ~@2 f3@14 ~@16, ~@10 bb3@3 bb3@3 ~@2 ab3@3 ab3@3 ~@8, ~@11 eb4@3 ~@5 eb4@3 ~@10]/4",
  R: "[[ab3,c4,eb4]@8 ~ [c4,eb4]@9 ~@2 [bb3,eb4]@39 ~@5, ~@8 ab3@10 eb3@21 ~@25, ~@19 g3@39 ~@6]/4", // Ab Cm Eb5
})).s("gm_electric_guitar_clean").gain(0.21)

// other · pad new age
const pad_new_age = note("<~@8 A ~@23 B ~@28 C D ~@3 D ~@4 E F ~@49>".pickRestart({
  A: "[f5,db6]@3 [eb5,c6]@2 ~ [c5,ab5]@2 [db5,bb5]@8", B: "db7 ab6 bb6@2", C: "~@8 f5@3 gb5@3 ab5@2",
  D: "db6@3 c6@3 ab5@2 bb5@8", E: "~@8 ab6@3 bb6@3 c7@2", F: "db7@3 ~",
})).s("gm_pad_new_age").gain(0.29).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~@4 A B@35 C B@17 D B@15 C B@30 E ~@2 B@10 F G ~@2>".pickRestart({
  A: "~@10 x ~@3 x!2", B: "x!2", C: "x ~@3 x!2 ~@2", D: "~@2 x ~@2 x ~@3 x ~@6", E: "x ~@7 x ~@5 x!2",
  F: "x ~@8 x ~@2 x!2 ~@2", G: "~@3 x ~@12",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@4 A B@11 C B@23 D B@17 E B@15 D B@31 F G B@10 H ~@3>".pickRestart({
  A: "~@8 x!2 ~@2 x!2 ~@2", B: "~ x ~ x", C: "~@4 x ~@7 x ~@2 x", D: "~@4 x ~@3 x!2 ~@2 x ~ x!2", E: "~@3 x", F: "x",
  G: "~@3 x!2 ~@2 x", H: "~@4 x ~@8 x ~@2",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<~@8 [~@3 x] ~@15 [~@3 x] ~@82 [~@10 x ~ x!2 ~ x] ~@14>").gain(0.4)

// drums · hihat
// … 59 more lines

More by Ramazzotti