Strudelify

Un'altra te

Ramazzotti

KeyD♭ majorTempo87 bpm
0:00/0:00
// Un'altra te — Ramazzotti
// 87 bpm, 4/4, key C# major. 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 103 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(87/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 · electric guitar clean
const electric_guitar_clean = note(`<
  ~@16 A B ~@2 C@2 D@2 E@2 ~@2 F@2 G@2 H@2 I@2 J K L M N O ~@6 P@2 Q@2 R S T S U V W X@2 Y@3 L M N O ~@7 P@2 Q@2 R S T S
  Z@2 AA@2 AB AC AD AC AE AF AG AH AI AJ AK ~@5
>`.pickRestart({
  A: "~@2 db4 ~@2 ab3 f3@2, ~ f3@4 ~@3, ~@6 c4@7 ~@3", B: "bb3@3 ~",
  C: "[~@7 eb4@6 ~@3, ~@4 ab3@7 ~ ab3@14 ~@6, ~@4 bb3@9 ~@3]/2",
  D: "[~@3 db4@2 eb4@2 ~@4 eb4@4 ~, ~ db3@6 db4@3 ab3@5 ~, ~@4 ab3@11 ~ ab2@14 ~@2, ~@9 eb3@6 ~]/2",
  E: "[~@4 db4@2 ~@4 ab3@2 ~@2 bb3@9 ~@9, ~ f3@4 ~ f3@4 ~@6, ~@3 c4@3 ~@10]/2",
  F: "[~@2 ab3@2 bb3@2 ~ eb4@6 ~@3, ~@6 ab3@7 ~@3]/2",
  G: "[~@3 db4@2 eb4@2 ~@4 eb4@4 ~, ~ db3@6 db4@3 ab3@5 ~, ~@4 gb3@11 ~ ab2@14 ~@2, ~@9 eb3@6 ~]/2",
  H: "[~@3 eb4@2 db4@5 ~@6, db3@21 ~@11, ~ ab3@9 ~@6, ~ db4 ~@6]/2",
  I: "[~@22 f3@9 ~, bb3@4 bb3@27 ~, ~ f3@2 f3@2 f3@2 f3@2 f3@2 ~@5, ~@8 c4@4 c4@19 ~, ~@16 db4@4 db4@11 ~]/2",
  J: "db4 ab3 db4 ab3 eb4 ab3 eb4 ab3", K: "f4 ab3 f4 ab3 f4 ab3 f4 ~", L: "bb3 f3 bb3 f3 c4 f3 c4 f3",
  M: "db4 f3 db4 f3@3 ~@2", N: "~ ab3 db4 ab3 eb4 ab3 eb4 ab3, db4 ~@3", O: "f4 ab3 f4 ab3 ~@4",
  P: "[~@2 ab3@2 db4@2 ab3@2 ~@4 eb3 ~@9 db4@8 ~@2, db3@4 c4@3 ~@2 f3@6 ~, ~@5 ab3@2 eb3@8 ~, ~@10 gb3@5 ~]/2",
  Q: "[db3@2 f3 ab3 ~ c3 eb3 ~@4 db4@3 ~@2, ~@8 ab2@4 ~@2 eb3@15 ~@3, ~@18 f3@5 ~@9, ~@20 gb3@9 ~@3]/2",
  R: "~@3 ab3 ~@2 eb3 ~, db3@4 ab2@3 ~, ~@2 f3@2 ~ c3@2 ~", S: "~@3 db4@4 ~, eb3@7 ~, ~ f3@6 ~, ~@2 gb3@5 ~",
  T: "db3@2 f3 ab3 ~ c3 eb3 ~, ~@4 ab2@3 ~", U: "[gb3,db4]@6 [f3,c4]@9 ~",
  V: "~ f3 db4 f3 ~@2 bb3@2, bb2, ~@2 c4 ~, ~@5 f3@3", W: "[gb3,db4]@5 ~ [ab3,eb4]@10",
  X: "[~@4 ab3@2 ~@2 db4@4 eb4 ~@3 [bb2,bb3]@16, ~@2 eb4@4 gb3@6 ab3@3 db4@17, ~@7 f4@9, ~@15 eb4@15 ~@2]/2", // Bb
  Y: "[~@16 [db3,ab3]@21 ~@11, ~@7 f4@11 ~@6, ~@15 [db4,eb4]@22 ~@11]/3", // Db5 Dbsus2
  Z: "[~@2 bb3@2 eb4@2 bb3@2 ~@4 f3 ~@9 eb4@8 ~@2, eb3@4 d4@3 ~@2 g3@6 ~, ~@5 bb3@2 f3@8 ~, ~@10 ab3@5 ~]/2",
  AA: "[eb3@2 g3 bb3 ~ d3 f3 ~@4 eb4@3 ~@2, ~@8 bb2@4 ~@2 f3@15 ~@3, ~@18 g3@5 ~@9, ~@20 ab3@9 ~@3]/2",
  AB: "~@3 bb3 ~@2 f3 ~, eb3@4 bb2@3 ~, ~@2 g3@2 ~ d3@2 ~", AC: "~@3 eb4@4 ~, f3@7 ~, ~ g3@6 ~, ~@2 ab3@5 ~",
  AD: "eb3@2 g3 bb3 ~ d3 f3 ~, ~@4 bb2@3 ~", AE: "[ab3,eb4]@6 [g3,d4]@9 ~",
  AF: "~ g3 eb4 g3 ~@2 c4@2, c3, ~@2 d4 ~, ~@5 g3@3", AG: "[ab3,eb4]@5 ~ [bb3,f4]@10",
  AH: "~@2 bb3 ~@2 eb3 f3 g3, ~ f4@2 ab3@3 [bb3,f4]@2, ~@2 eb4 ~", AI: "c3@10 eb3@2 ~@2 eb3 ~",
  AJ: "eb3 f3 bb2@6 ~@2 eb3@2 d3@2 bb2@2", AK: "c3@4 g3@2 g3@9 ~",
})).s("gm_electric_guitar_clean").gain(0.3)

// bass · fretless bass
const bass = note("<~ A B@2 C@2 D E F@2 ~@93>".pickRestart({
  A: "~@5 ab1@3", B: "gb1/2", C: "[~@14 g3 ab3 c3@7 ~ c3@4 f3@4, f1@11 ~@5]/2", D: "eb1@14 ab1 bb1", E: "ab1@15 ~",
  F: "[bb1@5 ~@3]/2",
})).s("gm_fretless_bass").gain(0.44)

// chords · pad warm
const pad_warm = note(`<
  ~@10 A@2 B@2 C@4 A@2 B@2 D@2 E@2 A@2 B@2 F@4 G@4 H@2 I@2 J@2 K@2 L@2 M@2 N@2 M@2 O@2 P Q R@2 S@2 T@2 H@2 I@2 J@2 U@2
  V@2 W M@2 N@2 M@2 O@2 X@2 Y@2 X@2 Z@2 AA AB AC@2 AD AE AF AG AH@4
>`.pickRestart({
  A: "[gb3,bb3]/2", B: "[ab3,c4]/2", C: "[bb3@16 ab3@16 bb3@17 ~@15, db4@49 ~@15]/4", D: "[gb3@15 ~ ab3@16, eb3]/2",
  E: "[[bb3,db4]@11 ~@5]/2", F: "[gb3@15 ~ db4@8 c4@7 [ab3,db4]@21 ~@12, eb3@31 ~@33, ~@16 ab3@15 ~@33]/4",
  G: "[db4@8 eb4@8 f4@15 [ab3,db4]@31 ~@2, bb3@15 ~@17]/4", H: "[db4@7 ~ eb4@8 [db4,f4]@15 ~, bb3@31 ~]/2",
  I: "[[ab3,db4]@31 ~]/2", J: "[[eb4,gb4]@7 ~ ab4@8 [gb4,bb4]@16, bb3, ~@7 f4@7 ~@18]/2",
  K: "[ab3@7 ~@8 eb4@16 ~, gb3@31 ~, db4 ~, ~@8 bb3@23 ~]/2", L: "[[bb3,gb4]@15 ~ [ab3,ab4]@15 ~, eb4@31 ~]/2",
  M: "[[db4,f4]@8 c4@5 ~ [bb3,gb4]@17 ~, ab4@7 ~@9, ~ eb4@3]/2", // Db Ebm
  N: "[[db4,f4]@8 c4@5 ~ [bb3,gb4]@16 ~@2, ab4@7 ~@9, ~@4 eb4@11 ~]/2", // Db Ebm
  O: "[[db4,f4]@8 c4@7 ~ [bb3,gb4]@14 ~@2, ab4@15 ~@17, ~@4 eb4@11 ~]/2", P: "[bb3,db4,gb4]@6 [c4,f4]@9 ~",
  Q: "[bb3,db4]@15 ~", R: "[[bb3,gb4]@7 ~ ab3@15 ~ [gb3,db4]@4 [ab3,eb4]@3 ~, eb4@3 ~]/2",
  S: "[[bb3,db4]@31 ~, f4 ~]/2", T: "[[ab3,db4]@15 ~]/2",
  U: "[ab3@7 ~@8 eb4@16 ~, gb3@31 ~, db4@15 ~@17, ~@8 bb3@23 ~]/2",
  V: "[[bb3,gb4]@15 ~ [ab3,bb3,db4,gb4,ab4]@15 ~, eb4@31 ~]/2", W: "[c4,eb4,ab4]",
  X: "[[eb4,g4]@8 d4@5 ~ [c4,ab4]@17 ~, bb4@7 ~@9, ~ f4@3]/2", // Eb Fm
  Y: "[[eb4,g4]@8 d4@5 ~ [c4,ab4]@16 ~@2, bb4@7 ~@9, ~@4 f4@11 ~]/2", // Eb Fm
  Z: "[[eb4,g4]@8 d4@7 ~ [c4,ab4]@14 ~@2, bb4@15 ~@17, ~@4 f4@11 ~]/2", AA: "[c4,eb4,ab4]@3 [d4,g4]@5",
  AB: "[c4,eb4]@15 ~", AC: "[[c4,ab4]@7 ~ bb3@15 ~ [ab3,eb4]@4 [bb3,f4]@3 ~, f4@3 ~]/2", AD: "[ab3,bb3,c4,eb4]",
  AE: "[g3,bb3,c4,f4]@15 ~", AF: "~@4 c4@11 ~, [f3,ab3,eb4]@15 ~", AG: "~@3 c4, [g3,eb4], d4@3 ~, ~ bb3@7",
  AH: "[[ab3,bb3,c4,eb4]@17 [g3,bb3,c4,d4,f4]@19 [f3,ab3,c4,eb4]@26 ~@2]/4", // Ab Gm7 Fm7
})).s("gm_pad_warm").gain(0.36).pan(0.6)

// chords · rock organ
const rock_organ = note(`<
  ~@41 A B@2 C@3 D E@2 F G H@2 F I J K L@2 ~@2 M N@2 ~@2 A B@2 C@3 O P E@2 Q G H@2 R I S@2 T U V@2 T W X Y Z@2 AA AB AC
  AD ~@4
>`.pickRestart({
  A: "~@12 d2 [e2,f2,g2,a2] [b2,c3,d3,e3,f3] [g3,a3,b3,c4,d4,e4]", B: "[gb5 [f5,ab5] [gb5,bb5]@2, eb5, f4 ~@31]/2",
  C: "[db5@16 eb5@15 ~ [db5,eb5,gb5]@13 [ab3,bb3,db4] [eb4,gb4] [ab4,bb4], [bb4,gb5]@31 bb4@13 ~@4]/3", // Ebm7 Bbm7 Ebm Absus2 Ebm
  D: "[ab5,db6,eb6]@15 ~", E: "[[db5,f5]@4 [c5,eb5]@3 [bb4,eb5,gb5]@9, ab5@7 ~@9]/2", F: "[db5,f5] [c5,eb5], ab5",
  G: "[bb4,eb5,gb5]", H: "[[db5,f5]@8 c5@7 ~ [bb4,gb5]@16, ab5 ~, ~ eb5@3]/2", I: "[bb4,eb5,gb5]@15 ~",
  J: "[bb4,db5,gb5]@6 [c5,eb5,f5,a5]@9 ~", K: "[db5,f5,bb5]@15 ~",
  L: "[[bb4,eb5,gb5]@6 [c5,eb5,ab5]@17 ~ [bb4,db5,gb5]@4 [c5,eb5,ab5]@3 ~]/2", M: "~@6 db6@4 bb5@4 ab5 ~, ~@6 c6 ~@9",
  N: "[bb5 ab5 f5@3 ~ eb5 ~ f5@2 ab5 ~ f5 eb5 db5@8 ~@10, ~@8 eb5 ~@23]/2", O: "[gb5,bb5,db6]", P: "[ab5,c6,eb6]@15 ~",
  Q: "[db5,f5]@8 [c5,eb5]@7 ~, ab5@15 ~", R: "[db5,f5] [c5,eb5], ab5@15 ~",
  S: "[[eb5,g5]@4 [d5,f5]@3 [c5,f5,ab5]@9, bb5@7 ~@9]/2", T: "[eb5,g5] [d5,f5], bb5", U: "[c5,f5,ab5]",
  V: "[[eb5,g5]@8 d5@7 ~ [c5,ab5]@16, bb5 ~, ~ f5@3]/2", W: "[c5,f5,ab5]@15 ~", X: "[c5,eb5,ab5]@6 [d5,f5,g5,b5]@9 ~",
  Y: "[eb5,g5,c6]@15 ~", Z: "[[c5,f5,ab5]@6 [d5,f5,bb5]@17 ~ [c5,eb5,ab5]@4 [d5,f5,bb5]@3 ~]/2", AA: "c5, ab4@7 ~",
  AB: "[g4,c5,d5]", AC: "[f4,eb5]@15 ~, a4 ~@15", AD: "[g4,bb4,d5,eb5]@15 ~",
})).s("gm_rock_organ").gain(0.26).pan(0.3)

// chords · rock organ · soft notes
const rock_organ_soft = note("<~@41 A B ~@3 C ~@20 A D ~@3 C ~@22 E@2 F ~@5>".pickRestart({
  A: "~@12 [g1,ab1,a1,bb1,b1,c2] [db2,eb2,gb2] [ab2,bb2,db3,eb3] [gb3,ab3,bb3,db4]", B: "[eb4,g4] ~@15",
  C: "~@12 [bb2,db3,eb3] gb3 ~@2", D: "eb4 ~@15", E: "[bb4@31 ~]/2", F: "~ ab4@13 ~@2",
})).s("gm_rock_organ").gain(0.05).pan(0.3)

// chords · overdriven guitar
const overdriven_guitar = note("<~@34 A@2 ~@2 A@2 B C D ~@21 A@2 B C D ~@13 E F@2 G@2 H@2 I@2 ~@12>".pickRestart({
  A: "~@4 [eb4,ab4] [f4,bb4]@3 ~@4 [eb4,ab4] [f4,bb4]@3", B: "~@7 db5", C: "c5 ab4 f4 db5 gb5@2 f5@2", D: "eb5@3 ~",
  E: "~@14 bb4!2", F: "[g5@5 ~@2 eb5 f5@3 g5 ~@2 c5@12 ~@2 g4 bb4 eb5 f5, ~@3 g5 ~@12]/2",
  G: "[g5@4 ab5@2 g5@2 bb5@2 d5@4 eb5@8 ~@2 f5 eb5 g5 eb5@2 c5 bb4 g4]/2",
  H: "[bb4@5 ~ [eb4,f4] eb4 d4@2 bb4@2 d4@2 c4@4 ab4@8 ~@2 c5@3 eb5]/2", // Ebsus2
  I: "[bb4@5 ~ c5 eb5 d5@2 bb4@2 g4 ~ c5@10 ~@8]/2",
})).s("gm_overdriven_guitar").gain(0.3).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@9 A@3 B@2 C@6 D@2 E@2 F@4 G@4 H@3 I@5 J K@2 L M N O P@3 Q R@2 S T U V W X Y@4 ~ Z@2 J K@2 L M N O AA AB@3 Q R@2 S T
  AC@3 AD AE@2 AF AG AH AI AJ AK AL@2 AM AN@2 ~@4
>`.pickRestart({
  A: "[~@8 [gb2,db3,gb3]@2 ~@13 [gb3,bb3], ~@7 db4@3 gb3@2 gb3@3 [gb3,ab3,bb3,db4]@3 ab3@6, ~@15 [ab3,bb3]@5 [ab3,bb3,db4]@6 [ab3,bb3,db4]@4 ~@4 db3@4 db3@6 ~@4, ~@11 [gb2,db3]@3 [gb2,db3]@2 gb2@4 gb2@2 [gb2,db3]@2, ~@18 [gb3,bb3,db4]@3 [gb3,bb3,db4]@2 ~]/3", // Gb5 Gb Absus2 Bbm7 Gb5 Gb
  B: "[[f3,ab3]@2 ~@10 f3 ~@2 [f3,ab3,eb4], eb3@4 eb3@4 ~@2 f3@2 ~ [f3,ab3,eb4]@2 ~, f2@3 f2@3 f2@2 [f2,eb3]@3 [f2,eb3]@3 [f2,eb3]@2, ~@2 [f3,ab3,eb4]@3 [f3,ab3,eb4]@2 [f3,ab3,eb4]@3 [ab3,eb4]@3 ~@3]/2", // Fm Fm7 F7 Fm7 Ab5
  C: "[~@6 eb2@2 ~@14 ab2@2 ~@14 bb2@2 ~@8 bb2@13 ~@9 gb2@2 ~@16 gb3@2 ~@4 [gb3,bb3]@2, db3@16 ab2@6 ~@2 ab2@4 ab2@3 [f3,bb3]@5 f3@4 ~@2 [f3,bb3,db4]@4 [f3,bb3,db4]@14 ~@3 gb3@5 db4@6 [gb3,db4]@4 gb3@4 ~@2 gb3@4 ~@2 [gb3,bb3,db4]@4 ~@2, eb2@6 ~@2 eb2@4 eb2@4 ~@15 ab3@11 ab3@6 ~@15 ab3@11 ab3@16 ~@6, ~@2 [eb3,gb3,db4]@3 gb3@3 ~@5 db4@2 db4@3 [bb3,db4]@3 ~@10 [bb3,db4]@3 bb3@5 [bb3,db4]@3 [bb3,db4]@3 ~@3, ~@10 [eb3,db4]@4 [eb3,db4]@6 [eb3,ab3,bb3,db4]@6 [eb3,ab3,bb3]@6 bb2@6 ~@2 bb2@4 bb2@4 ~@16 gb2@4 gb3@4 gb2@4 gb2@4 gb2@6 gb2@5 ~ gb2@4]/6", // Gb Bb5 Bbm Gb5 Gb Ebm7 Bbm Eb7 …
  D: "[~ f3!3 ~@7 f3!2 ~ f3 ab3, f2@8 f2@5 ~@3, ~@2 [ab3,eb4]@3 [ab3,eb4]@2 [ab3,eb4]@3 [ab3,eb4]@3 eb4@3, ~@4 f3@2 eb3@7 ~@3, ~@7 f3@2 f3@2 ~@2 ab3@2 ~]/2", // Ab5
  E: "[[eb3,db4]@2 ~@2 eb3!3 [eb3,gb3] ~ eb3!3 ~@2 [eb3,ab3,c4]@2, eb2@3 eb2@5 ab2@5 ab2@3, ~@2 [gb3,db4]@3 [gb3,db4]@2 db4@3 db4@6, ~ eb3 ~@3 ab3 [eb3,ab3,c4] ~]/2", // Eb7 Ebm Ab Gb5 Ab
  F: "[~ f3 ~@2 f3 ~@4 f3 [f3,bb3,db4]@2 ~@8 gb3 ~ gb2 ~@5 gb3 ~@2 f3, bb2@6 bb2@6 bb2@4 bb2@8 [bb2,f3]@7 [gb3,ab3]@4 ~ [ab3,db4]@6 ~@10 [ab3,db4]@6 ~@6, ~@4 [bb3,db4]@6 ~@4 [bb3,db4]@6 ~@4 db4@6 [bb3,db4]@5 ~ gb3@4 ~@2 [gb3,ab3,db4]@4 [gb3,ab3,db4]@6 gb3@4 ~@2 [gb3,ab3,db4]@6, ~@4 f3@4 ~@2 [f3,bb3,db4]@4 f3@4 ~@10 ab2@4 gb2@6 gb2@5 ~@7 gb2@4 gb2@6 gb2@4]/4", // Bbm Bb5 Gbsus2 Db5 Bbm Gbsus2 Bbm
  G: "[[f3,ab3,eb4]@4 ~@8 f3@2 ~@10 f3@2 ~@2 f2@3 ab3 eb3@4 ~@2 eb2@2 eb3@2 ~@2 eb2@2 ~@6 ab3@2 ~@4 eb3@2 ~@3 f3, f2@3 f2@3 f2@2 f2@3 f2@3 ~@2 eb2@3 ~ eb2@2 ~ eb3@2 eb3@2 eb3@2 ~ [eb3,ab3,db4]@2, ~@4 [ab3,eb4]@6 [ab3,eb4]@4 [ab3,eb4]@6 [ab3,eb4]@6 ~@5 [gb3,db4]@5 [gb3,db4]@6 ~@4 db4@8 ~@10, ~@2 f3@2 f3@2 ~ f3@2 f3@2 ~@2 [f3,ab3,eb4]@3 ~@2 eb3@2 ~ [eb3,gb3,db4]@2 ab3@3 ~ [ab3,db4]@3 ~@2, ~@24 ab2@4 ab2@3 ab2]/4", // Fm7 Dbsus2 Ab5 Gb5 Fm7 Ebm7 Db5
  H: "[[ab3,db4]@4 ~@4 f3@2 ~@6 db3@12 ~@4 bb2@4 ~@2 bb2 ~@7 bb2@2, ~@4 [ab3,db4]@6 ~@4 db4@14 ~@2 [bb3,db4]@5 ~@9 [bb3,db4]@4, ~@4 f3@4 ~@2 [f3,ab3,db4]@5 [f3,ab3]@13 ~@3 f3@4 ~ [f3,bb3,db4]@5 ~ f3@4 ~@2, ~@6 db3@6 db3@4 ~@15 ab3@2 ~@7 bb2@5 ~@3]/3", // Db5 Bbm Db Fm Bbm
  I: "[~@2 bb2@2 [f3,bb3,db4]@2 bb2@2 f3@2 ~@2 [f3,bb3,db4]@3 ~@3 db3@2 ~@2 db3@2 ~@2 db3@2 ~@2 db3@2 ~@2 db3@2 ~@2 db3@2 ~@2 db3@2 ab3@2 db3 ~@9 f3@2 ~@2 [ab3,bb3,db4]@2 ~@2 f3@4 ~@8 [f3,bb3,db4]@4, [f3,bb3,db4]@4 ~@4 [bb3,db4]@4 ~@3 f3@5 [f3,db4]@8 [f3,ab3]@8 f3@10 ~@2 ab3@12 ~@4 ab3@16, ~@10 bb2@4 ~ db3@3 ~@18 [ab3,f4]@4 ~@7 [bb3,db4]@4 ~ [bb3,db4]@8 ~@3 [bb3,db4]@5 ~@12, ~@8 [ab3,db4]@2 ab3@2 [ab3,eb4]@2 [db4,eb4]@2 f4@2 ~@2 db4@3 ~ f3@3 bb2@4 bb2 bb2 ~@2 bb2@2 bb2@3, ~@29 f3@3 ~@2 [f3,bb3,db4]@2 [f3,bb3]@2 ~@2]/5", // Bbm Bbm7 Bbm Db Fm Db Bbm Db5 …
  J: "[f3,ab3,db4]@2 [f3,ab3,db4]@2 ~@3 f3, ~@2 [ab3,db4]!2, ~@5 f3@2 ~", // Db Db5
  K: "[f3@2 ~@4 f3@2 f3 ~@11 bb3@2 [eb3,bb3]@2 ~@2 eb3@2 [bb3,f4]@2 eb3@2, [ab3,db4]@4 [ab3,db4]@4 [ab3,db4]@4 [ab3,db4]@3 [bb3,eb4]@5 ~@4 [bb3,f4,ab4]@4 ~@4, ~ f3@2 ~@2 f3@2 f3 gb4@2 [eb4,gb4]@2 ~@2 ab4@2, ~@15 eb3@3 eb3@4 ~@10]/2", // Eb5 Bb5 Db5 Eb5 Bb7 Ebm
  L: "[bb3,gb4,bb4] ~@2 eb3 ~ eb3 ~ eb3, ~ eb3@2 ~@5, ~ [bb3,gb4,bb4] [bb3,f4,ab4] [bb3,eb4,gb4]", // Ebm Bb7 Ebm
  M: "~@2 gb3 ~ gb3 ~ [ab3,db4]@2, gb2, ab3@5 db3@3, db4@3 db3 db4@2 ~@2, bb3 db3 bb3@2 bb3@3 ~", // Db5
  N: "~@3 [gb3,bb3], eb2, db4@3 eb3@2 eb3@2 ~, gb3!2 [gb3,db4] ~, ~ eb3@2 bb3@3 ~@2", // Gb Gb5
  O: "[gb3,bb3]@2 ~@3 eb3!3, eb3 ~ [gb3,bb3]@2 db4@4, ~@3 eb3@2 ~@3, ~@2 gb3 [gb3,bb3]", // Gb
  P: "[ab3@2 ~@8 ab3@2 ab3 ~@3 db4@4 ~@2 ab3@2 ab2 ~@3 ab3@2 eb3@4 ~@12 eb3@2, eb4@3 eb4@3 ~ ab4@5 ~@12, bb3@4 bb3@4 bb3@6 ~ [eb4,f4]@9 ab3@4 ~@2 bb3@6 bb3@4 [bb3,eb4,gb4]@4 [bb3,eb4,gb4]@4, ~ ab3@2 ab3@2 ~@3 db3@4 ~ ab2@2 ~@2 eb3@2 eb3@2 eb3@2 ~, ~@8 ab3@2 db4@2 [c4,eb4]@3 [eb4,gb4]@5 ~@4]/3", // Ebsus2 Ebm Cm Ebm
  Q: "~@4 ab3@2 ~@2 ab2 ~@3 ab3@4, [db4,f4] [c4,eb4], ab3 ~@3, ~ db3@3 ~ ab2@3", // Db Cm
  R: "[~@6 eb4@2 ~@8 db4@4 [db4,f4,ab4]@4 [c4,eb4,ab4]@7 ~, gb4@5 ~@2 ab4@3 ~@6, eb4@6 ~@9 f4@5 ~@12, bb3@2 bb3@2 ~ bb3@3 db3@4 ~@4, ~@2 eb3@10 ~@3 eb4@2 ~@15]/2", // Db Ab
  S: "~@14 bb3 ~, [bb3,eb4,gb4]@6 bb3@7 ~@3, ~ eb3@2 eb3, ~@4 eb4@3 ~, ~@10 gb4@5 ~", // Ebm
  T: "[ab3,f4]@2 ~ db4 ab3 ~ [c4,eb4]@2, db4@3 ~ [c4,eb4]@2 ~@2, ~@2 ab3@2 ~ ab3@3", // Db Cm
  U: "bb3 ~@3 bb3@2 bb3 ~, gb4@3 gb4@5, eb4@2 eb4@3 ~@3, ~ bb3@3 ~@4", V: "[bb3,eb4]@3 c4@3 [c4,a4]@2, ~@3 [eb4,f4]@5",
  W: "bb3@3 ~@4 bb3, f4@3 ~, db4@2 db4 [db4,f4], ~@3 bb3@2 bb3@2 ~", X: "[bb3,eb4,gb4]@4 ab3!2 ~ ab3, ~@2 eb4!2",
  Y: "[ab3@2 ab3@2 [ab3,eb4]@3 ~ gb3@4 [ab3,eb4]@2 ~@2 bb2@26 ~@6 ab2@11 ~@5, eb4@4 ~@3 bb3@5 ~@2 [bb3,db4]@28 ~@4 f4@14 ~@4, ~@7 db4@2 ~@6 [f3,ab3]@27 ~@5 [ab3,db4,eb4]@13 ~@4]/4", // Ab5 Bbm Fm Absus4
  Z: "[[bb3,db4]@2 ~@2 f3 ~ [ab3,bb3,db4] ~ f3@2 ~@4 [f3,bb3,db4]@2, ab3@3 ~ ab3@4, f3@3 bb2@4 bb2 bb2 ~@2 bb2@2 bb2@3, ~@4 [bb3,db4]@8 ~@3 [bb3,db4]@5 ~@12, ~@5 f3@3 ~@2 [f3,bb3,db4]@2 [f3,bb3]@2 ~@2]/2", // Bbm Bbm7 Bbm Bb5
  AA: "ab3@2 ~@8 ab3@2 ab3 ~@3, eb4@3 eb4@3 ~@2, bb3@2 bb3@2 bb3@3 ~, ~ ab3@2 ab3@2 ~@3",
  AB: "[~@16 db4@4 ~@2 ab3@2 ab2 ~@3 ab3@2 eb3@4 ~@12 eb3@2, ~@15 [f4,ab4]@5 [db4,f4,ab4]@4 [c4,eb4]@6 [eb4,gb4]@10 ~@8, ~@8 [db3,eb4]@4 ~ ab2@2 ~@2 eb3@2 eb3@2 eb3@2 ~, ~@8 ab3@3 ~ ab3@2 ~ bb3@3 bb3@2 [bb3,eb4,gb4]@2 [bb3,eb4,gb4]@2]/3", // Fm Db Cm Ebm Dbsus2 Ebm
  AC: "[bb3@2 ~@6 bb3@4 bb3@2 ~@2 eb4@4 ~@2 bb3@2 bb2 ~@3 bb3@2 f3@4 ~@12 f3@2, gb4@3 gb4@5 bb3@2 eb4@2 [d4,f4]@3 [f4,ab4]@5 ~@4, eb4@2 eb4@3 ~@2 bb4@5 ~@12, ~@2 bb3@6 ~@7 g4@9 ~@2 bb2@4 ~@4 f3@4 f3@4 f3@4 ~@2, ~@8 [eb3,f4]@4 bb3@2 ~ c4@3 c4@2 [c4,f4,ab4]@2 [c4,f4,ab4]@2]/3", // Dm Fm Ebsus2 Fm
  AD: "~@4 bb3@2 ~@2 bb2 ~@3 bb3@4, [eb4,g4] [d4,f4], bb3 ~@3, ~ eb3@3 ~ bb2@3", // Eb Dm
  AE: "[~@6 f4@2 ~@12 [eb4,g4,bb4]@4 [d4,f4,bb4]@7 ~, ab4@5 ~@2 bb4@3 ~@6, f4@6 ~@9 f4@9 ~@8, c4@2 c4@2 ~ c4@3 eb3@4 ~@4, ~@2 f3@10 ~@3 [eb4,g4]@5 ~@12]/2", // Eb Bb Eb
  AF: "~@14 c4 ~, [c4,f4,ab4]@6 c4@7 ~@3, ~ f3@2 f3, ~@4 f4@3 ~, ~@10 ab4@5 ~", // Fm
  AG: "[bb3,g4]@2 ~ eb4 bb3 ~ [d4,f4]@2, eb4@3 ~ [d4,f4]@2 ~@2, ~@2 bb3@2 ~ bb3@3", // Eb Dm
  AH: "c4 ~@3 c4@2 c4 ~, ab4@3 ab4@5, f4@2 f4@3 ~@3, ~ c4@3 ~@4", AI: "[c4,f4]@3 d4@3 [d4,b4]@2, ~@3 [f4,g4]@5",
  AJ: "c4@3 ~@4 c4, g4@3 ~, eb4@2 eb4 [eb4,g4], ~@3 c4@2 c4@2 ~", AK: "[c4,f4,ab4]@4 bb3!2 ~ bb3, ~@2 f4!2",
  AL: "[bb3@2 bb3@2 [bb3,f4]@3 eb4 ab3@4 [bb3,f4]@2 ~@2 ab3@2 ~@10 eb3@4, f4@4 ~@3 c4@5 ~@3 c4@7 eb4@10, ~@15 eb4@3 ab3@14, ~@15 bb3 eb3@4 bb3@12, ~ ab2]/2", // Bb5
  AM: "~@3 g2, [c4,d4], g2@3 f4@5, f4 bb3@3, bb3 g3@7", // Csus2
  AN: "[~@6 eb4@9 ~@13 bb3@4, f2@15 c3@3 c3@4 bb3@4 c3@6, eb4@6 ~@9 g3@5 g3@12, ab3 ab3@3 d4@4, ~ f3@7 [bb3,eb4]@3 eb4@5]/2", // Eb5
})).s("gm_acoustic_guitar_steel").gain(0.39).pan(0.3)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@11 A ~@2 B ~ C ~ D E F G H ~@2 I ~ J ~ K ~@7 L ~ M ~@4 N O P Q ~@2 R S ~@2 T U ~@2 V W ~@5 M ~@4 N O P Q ~@3 R S ~@2
  T U ~@2 X Y ~@2 Z AA ~@2 AB AC ~ AD ~@6
>`.pickRestart({
  A: "db3 ~@6 db4", B: "~ eb3 ~@6", C: "~@4 f3 ~@3", D: "~@4 gb3 ~@3", E: "~ gb3 ~@5 db4", F: "f3 ~@11 f3@2 ~@2",
  G: "~@7 f3", H: "gb3@3 eb3 ~@12", I: "~@4 bb3@3 ~", J: "gb2 ~@15", K: "~@3 f3 ~@3 eb2", L: "~@4 ab3 ~@3",
  M: "~ bb2@2 ~ db4@2 ~@2", N: "~@3 gb3 ~@3 bb3, ~@5 gb3@3", O: "~@7 eb3, ~@3 db4", P: "~ eb3@2 ~ bb3@2 ~@2",
  Q: "~@12 eb4 ~@3", R: "~@3 ab3 ~@4", S: "~@4 [bb3,eb4] ~ eb3@2, ~@5 [eb4,gb4]@3", T: "~@7 bb3",
  U: "~@7 bb3, ~@5 eb4@3", V: "~@6 ab3 ~", W: "~@9 db4@3 ~@4", X: "~@3 bb3 ~@4",
  Y: "~@4 [c4,f4] ~ f3@2, ~@5 [f4,ab4]@3", Z: "~@7 c4", AA: "~@7 c4, ~@5 f4@3", AB: "~@6 bb3 ~", AC: "~@9 eb4@3 ~@4",
  AD: "g3 ~@15",
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.3)

// other · kalimba · Bb Db Ab Bb F Ab Eb F …
const kalimba = note(`<
  ~@60
  [~@2 [bb4,bb5]!3 [db5,db6] ~@2 [ab4,ab5]!3 [bb4,bb5] ~@2 [f4,f5] ~]
  [~@2 [f4,f5]!3 [ab4,ab5] ~@2 [eb4,eb5]!3 [f4,f5] ~@2 [db4,db5] ~]
  ~@41
>`).s("gm_kalimba").gain(0.33).pan(0.4)

// chords · taiko drum
const taiko_drum = note("<~@2 A@2 ~@2 B ~ C ~@94>".pickRestart({
  A: "[[b2,c3]@21 ~@11, a2@9 ~@23]/2", B: "[b2,c3]@15 ~, a2@3 ~@13, d3 ~@15", C: "[b2,c3]@3 ~@5, a2@3 ~@13",
})).s("gm_taiko_drum").gain(0.64)

// bass · electric bass finger
const bass_2 = note(`<
  ~@10 A B C@2 D E F G A H C@2 D I F J A H C K L M N O F P Q R F S T U V W X Y Z AA AB@2 AC@2 AD@2 AE@2 AF AG AH AI AJ F
  AK AL F S T U V W X Y Z AA AM AB@2 AC@2 AD@2 AE@2 AN@2 AO@2 AP@2 AQ@2 AR AS AT AU AV AW AX AY AZ ~ BA@2
>`.pickRestart({
  A: "gb1@4 ~@2 gb1 ~ gb1@4 ~@4", B: "gb1@5 ~ gb1 ~ gb1@4 ~@4", C: "f1@4 ~@2 f1 ~ f1@4 ~@4",
  D: "eb1@4 ~@2 eb1 ~ eb1@5 ~@3", E: "ab1@4 ~@2 ab1 ~ ab1@5 ~@3", F: "bb1@4 ~@2 bb1 ~ bb1@4 ~@4", G: "bb1@7 ~",
  H: "gb1@4 ~@2 gb1 ~ gb1@5 ~@3", I: "ab1@5 ~ ab1 ~ ab1@4 ~@4", J: "bb1@3 ~ c2 db2 ab1@2 bb1@4 ab1@4",
  K: "f1@4 ~@2 f1 ~ f1@6 ~@2", L: "eb1@4 ~@2 eb1 ~ eb1@6 ~@2", M: "ab1@4 ~@2 ab1 ~ ab1@6 ~@2",
  N: "db1@4 ~@2 db1 ~ db1@4 f2 eb2 bb1@2", O: "db1 ~@3", P: "bb1@5 ~ bb1 ~ bb1@4 ~@4", Q: "db1@5 ~ db1 ~ db1@5 ~@3",
  R: "db2@4 ~@2 db2 ~ db2@4 c2@4", S: "bb1@4 ~@2 bb1 ~ eb2@2 f2@2 eb2@2 bb1@2", T: "db2@4 ~@2 db2 ~ db2@4 ~@4",
  U: "db1@5 ~ db1 ~ bb1@4 db2@3 ~", V: "eb2@4 ~@2 eb2 ~ eb2@4 ~@4", W: "eb2@5 ~ eb2 ~ eb2@4 f1@4",
  X: "gb1@5 ~ gb1 ~ gb1@4 f1@4", Y: "eb1@4 ~@2 eb1 ~ eb1@4 ~@4", Z: "eb2@2 ~ eb2 f2 gb2 eb2 bb1",
  AA: "ab1@4 ~@2 ab1 ~ ab1@2 ab1@2 ab1@2 bb1@2",
  AB: "[db2@4 f2@2 ab2@2 ab1@4 ~@2 eb2@8 bb1 ~ f2@2 eb2@2 bb1@2 ab1@2]/2",
  AC: "[db2@4 f2@2 ab2@2 ab1@4 bb1@2 eb2@8 bb1 ~ f2@2 eb2@2 bb1@2 ab1@2]/2",
  AD: "[db2@4 f2@2 ab2@2 ab1@4 bb1@2 eb2@7 ~ bb1 ~ f2@2 eb2@2 bb1@2 ab1@2]/2",
  AE: "[db2@4 f2@2 ab2@2 ab1@4 bb1@2 eb2@7 ~ bb1 ~ f2@2 eb2@2 bb1@3 ~]/2", AF: "eb2@5 ~ f2@6 f1@4",
  AG: "bb1@5 ~ bb1 ~ c2@2 db2@2 bb1@2 f1@2", AH: "eb1@4 eb1 ~ ab1 ~ ab1@5 ~ ab1 ~",
  AI: "ab1@4 ~@2 f2@2 eb2 ~ bb1@2 ab1@4", AJ: "bb1@4 ~@2 bb1 ~ bb1@4 ~@2 ab2 bb2", AK: "db2@4 ~@2 db2 ~ db2@5 ~@3",
  AL: "db2@4 ~@2 ab1@2 db2@4 c2@3 ~", AM: "ab1 ~ ab1 ~ ab1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1 bb1",
  AN: "[eb2@4 g2@2 bb2@2 bb1@4 ~@2 f2@8 c2 ~ g2@2 f2@2 c2@2 bb1@2]/2",
  AO: "[eb2@4 g2@2 bb2@2 bb1@4 c2@2 f2@8 c2 ~ g2@2 f2@2 c2@2 bb1@2]/2",
// … 100 more lines

More by Ramazzotti