Strudelify

Tra te e il mare

Laura Pausini

KeyE majorTempo112 bpm
0:00/0:00
// Tra te e il mare — Laura Pausini
// 112 bpm, 4/4, key E 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: Full arrangement: all 105 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.

// bass · fretless bass
const bass = note(`<
  ~@17 A B C D@2 B C D@2 B C E@3 C F@3 G@4 H I J@2 G@4 H I K L M N O L M P@2 B C E@3 Q F@3 G@4 H I R S T@4 U V W@5 X Y
  Z@2 X Y Z@2 X Y Z@2 AA AB AC@3 ~@2
>`.pickRestart({
  A: "~@7 c#2@2 g#2@7", B: "~ a1@4 ~@2 a1@8 ~", C: "~ b1@5 ~ b1@8 ~",
  D: "[~ c#2@4 ~@2 c#2@6 ~@2 b1@2 c#2@4 ~@2 c#2@4 e2@2 b1@3]/2",
  E: "[~ c#2@4 ~@2 c#2@6 ~@2 b1@2 c#2@5 ~ b1@2 c#2@2 e2@2 b1@2 e2@2 a1@4 ~@2 a1@8 ~]/3",
  F: "[~ c#2@4 ~@2 c#2@6 ~@2 b1@2 c#2@4 ~@2 c#2@2 b1@2 b2@2 f#2@2 b1@2 e2@4 ~@2 e2 ~ e2@7]/3",
  G: "[~ c#2@5 ~ c#2 ~ c#2@5 ~ c#2@2 a1@4 ~@2 a1 ~ a1@5 ~ a1@2 b1@4 ~@2 b1 ~ b1@4 ~@2 b1@2 c#2@4 ~@2 c#2 ~ c#2@7]/4",
  H: "~ b1@4 ~@2 b1 ~ b1@4 e2@3", I: "~ a1@4 ~@2 a1 ~ a1@7",
  J: "[~ b1@4 ~@2 b1 ~ b1@2 b2@2 f#2@2 b1@2 e2@4 ~@2 e2 ~ e2@7]/2", K: "~ b1@4 ~@2 b1@2 f#2@2 b2@5",
  L: "~ a1@4 ~@2 a1@9", M: "~ b1@4 ~@2 b1@9", N: "~ c#2@5 ~ c#2@2 f#2 ~ b2@5", O: "~ b2@2 f#2@5 ~ f#2@2 c#2@5",
  P: "[~ c#2@4 ~@2 c#2@7 ~ c#2@8 c#2@9]/2", Q: "~ b1@5 ~ b1@9", R: "~ b1@5 ~ d#2 f#2 b2 b1 f#2 ~ d#2@2 b1",
  S: "~ g1@4 ~@2 g1 ~ g1@7",
  T: "[~ e1@5 ~ e1 ~ e1@5 ~ e1@2 c2@4 ~@2 c2 ~ c2@5 ~ c2@2 d2@4 ~@2 d2 ~ d2@4 ~@2 d2@2 e2@4 ~@2 e2 ~ e2@7]/4",
  U: "~ d2@4 ~@2 d2 ~ d2@4 g2@3", V: "~ c2@4 ~@2 c2 ~ c2@7",
  W: "[~ d2@4 ~@2 d2@2 a2 d3 a2 d2 d3 a2 d2@2 c2 ~ c2@2 c2 ~ c2@2 c2 ~ c2@2 c2 ~ c2@2 d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2 e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2@2 e2 ~ e2 ~ e2 ~ e2]/5",
  X: "~ c2@4 ~@2 c2@9", Y: "~ d2@4 ~@2 d2@9", Z: "[~ e2@4 ~@2 e2@7 ~ e2@8 e2@5 ~ e2@3]/2", AA: "~ c2@15", AB: "~ d2@15",
  AC: "[~ e2@32 ~@15]/3",
})).s("gm_fretless_bass").gain(0.53)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A@4 ~@30 B@5 C D E F@2 G H I C D J ~@16 K@3 L M N O P Q@2 R@2 S T U V ~@8 W X Y@3 Z AA@3 AB AC@2 ~@3
>`.pickRestart({
  A: "[~ [c#5,d#5,e5,g#5]@48 ~@15]/4", B: "[~ b5@64 c#6@15]/5", C: "~ b5@12 g#5@3", D: "~ b5@15", E: "~ g#5@8 b5@7",
  F: "[~ b5@24 g#6@7]/2", G: "~ f#6@4 e6@11", H: "~ e6@8 d#6@7", I: "~ d#6@12 c#6@3", J: "~ f#5@14 ~",
  K: "[~ [b4,b5]@40 [c#5,c#6]@4 [d#5,d#6]@3]/3", L: "~ [e5,e6]@8 [f#5,f#6]@7", M: "~ [f#5,f#6]@8 [e5,e6]@7",
  N: "~ [d#5,d#6]@8 [b4,b5]@7", O: "~ [e5,e6]@4 [d#5,d#6]@4 [c#5,c#6]@7", P: "~ [b4,b5]@15",
  Q: "[~ [d4,d6]@28 [b4,b6]@3]/2", R: "[~ [g4,g6]@8 [f#4,f#6]@4 [g4,g6]@12 [f#4,f#6]@7]/2",
  S: "~ [b5,d6,b6]@4 [a5,c6,a6]@8 [g5,b5,g6]@3", T: "~ [f#5,a5,f#6]@8 [d5,f#5,d6]@7", U: "~ [c4,e5,c6]@15",
  V: "~ [d4,f#5,d6]@15", W: "~ [e5,b5]@15", X: "~ [d5,a5]@15", Y: "[~ [e5,g5]@32 [g5,b5]@15]/3", Z: "~ [f#5,a5]@15",
  AA: "[~ [e5,g5]@32 [g3,c4,e4]@15]/3", AB: "~ [a3,d4,f#4]@15", AC: "[~ [b3,e4,f#4,g4]@31]/2",
})).s("gm_string_ensemble_2").gain(0.23)

// other · string ensemble 1
const string_ensemble_1 = note("<~@50 A@8 ~@24 B@8 ~@11 C@3 ~>".pickRestart({
  A: "[~ [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [f#4,f#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [b4,b5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [f#4,f#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [d#4,d#5]@2 [e4,e5,e6] [b4,b5,b6] [g#4,g#5,g#6] [e4,e5,e6] [d#4,d#5,d#6] [b3,b4,b5] [g#3,g#4,g#5]@2 [e3,e4,e5] [b3,b4,b5] [g#3,g#4,g#5] [e3,e4,e5] [d#3,d#4,d#5] [b2,b3,b4] [g#2,g#3,g#4]]/8", // E D# E D# E D# E D# …
  B: "[~ [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [a4,a5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [d5,d6]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [e4,e5]@2 [b3,b4]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@2 [f#4,f#5]@2 [a4,a5]@2 [f#4,f#5]]/8", // G F# G F# G F# G F# …
  C: "[~ g4@2 f#4@2 g4@2 f#4@2 g4@2 f#4@2 g4@2 f#4@2 g4@2 f#4@2 g4@2 f#4@2 e4@2 b3@2 g3@2 f#3@2 e3@15]/3",
})).s("gm_string_ensemble_1").gain(0.23).pan(0.6)

// chords · epiano1
const epiano1 = note(`<
  ~@2 A@2 B@2 C@2 D@2 E F G@2 E F H@4 I J K@2 I J L M B@2 L M N@2 O@2 P Q R@2 S T O@2 P Q R@2 S T ~@8 L M B@2 L M U@2
  O@2 P Q R@2 S T V@2 W X Y@2 Z AA ~@16 AB AC AD@2 ~@3
>`.pickRestart({
  A: "[~@23 g#4@4 b3@5, ~ a2@15 ~ b2@15, ~@5 f#4@6 c#4@7 ~@14, ~@7 g#4@6 g#4@7 ~ f#4@5 ~@6]/2",
  B: "[~@5 d#4@2 ~@8 g#3@2 ~@4 d#4@2 ~@2 c#2@7, ~ c#2@15 ~ c#2@7 ~@8, ~@7 e4@13 ~@3 e4@9]/2",
  C: "[~@23 g#4@4 ~@2 g#4@3, ~ a2@15 ~ b2@15, ~@5 f#4@6 c#4@7 ~@9 b3@5, ~@7 g#4@6 g#4@7 ~ f#4@5 ~@6]/2",
  D: "[~@5 d#4@2 ~@14 d#4@2 ~@2 c#2@7, ~ c#2@15 ~ c#2@7 ~@8, ~@7 e4@13 ~@3 e4@9]/2", E: "~ [a2,b3,c#4,e4]@15",
  F: "~ [b2,f#3,b3,d#4]@15", G: "[~ [c#3,g#3,d#4,e4,f#4]@31]/2",
  H: "[~ [c#3,g#3,d#4,e4,f#4]@32 ~@6 g#4@10 ~@6 g#4@9, ~@33 a2@16 b2@15, ~@35 c#4@15 ~ c#4@13, ~@37 f#4@12 ~@4 f#4@11]/4", // C#m
  I: "~@7 e4@9, ~ c#3@14 ~, ~@3 g#3@13, ~@5 b3@11", J: "~@7 e4@9, ~ c#3@15, ~@3 g#3@13, ~@5 d#4@11",
  K: "[~@7 g#4@10 ~@6 g#4@9, ~ a2@16 b2@15, ~@3 c#4@15 ~ c#4@13, ~@5 f#4@12 ~@4 f#4@11]/2",
  L: "~ c#4@3 ~@3 [c#4,c#5]@9, ~ [a2,a4]@15", M: "~ d#4@5 ~ [d#4,d#5]@9, ~ [b2,b4]@14 ~",
  N: "[~ c#2@14 g#3@2 ~@4 d#4@2 e4@2 [b1,f#3,b3,d#4]@7, ~ e4@13 ~@3 c#2@7 ~@8]/2", // B
  O: "[~@23 e5@9, ~ e2@16 c#3@15, ~@5 b4@13 ~@3 b4@11, ~@7 f#5@12 ~@13]/2", P: "~@5 a2@11, ~ [c#4,a4]@15",
  Q: "~@11 b4@5, ~ b2@15, ~@5 b4@5 ~@6, ~@7 f#5@9",
  R: "[~@7 d#5@4 ~@12 d#5@4 e5@5, ~ c#3@15 ~ b2@15, ~@5 g#4@15 ~ g#4@11, ~@11 e5@11 ~@10]/2",
  S: "~@7 c#5@9, ~ a2@15, ~@5 e4@11", T: "~@7 c#5@8 ~, ~ b2@14 ~, ~@5 f#4@10 ~",
  U: "[~ c#2@14 g#3@2 ~@4 d#4@2 ~@2 [f#3,b3,d#4]@7, ~ e4@13 ~@3 c#2@6 e4@3 ~@6, ~@3 b1]/2", // B
  V: "[~@23 g5@9, ~ g2@16 e3@15, ~@5 d5@13 ~@3 d5@11, ~@7 a5@12 ~@13]/2", W: "~@5 c3@11, ~ [e4,c5]@15",
  X: "~@11 d5@5, ~ d3@15, ~@5 d5@5 ~@6, ~@7 a5@9",
  Y: "[~@7 f#5@4 ~@12 f#5@4 g5@5, ~ e3@15 ~ d3@15, ~@5 b4@15 ~ b4@11, ~@11 g5@11 ~@10]/2",
  Z: "~@7 e5@9, ~ c3@15, ~@5 g4@11", AA: "~@7 e5@8 ~, ~ d3@14 ~, ~@5 a4@10 ~", AB: "~ [c3,d4,e4,g4]@15",
  AC: "~ [d3,a3,d4,f#4]@15", AD: "[~ [e2,b3,d4,f#4,g4]@31]/2",
})).s("gm_epiano1").gain(0.26).pan(0.3)

// chords · epiano1 · soft notes
const epiano1_soft = note("<~@2 A B C D A E F@2 ~@16 G ~ C D G ~ H I ~@24 G ~ C D G ~ H I ~@39>".pickRestart({
  A: "~@3 c#4@7 ~@6", B: "~@3 b3@7 ~@3 g#4@3", C: "~@3 g#3@7 ~@3 g#3 ~@2", D: "~@3 g#3@12 ~", E: "~@3 b3@7 ~@6",
  F: "[~@3 g#3@7 ~@3 g#3 ~ g#3@3 ~ g#3@12 ~]/2", G: "~@5 c#4 ~@10", H: "~ g#3@7 ~@5 g#3 ~@2", I: "~@3 g#3@6 ~@7",
})).s("gm_epiano1").gain(0.18).pan(0.3)

// chords · pad sweep
const pad_sweep = note(`<
  A@4 ~@6 B C ~@2 B C ~@18 D@3 C E C B C D@3 C E C B C ~@16 D@3 C E C B C F@3 G H G I G ~@16 I G ~@5
>`.pickRestart({
  A: "[~ [g#4,b4,c#5,d#5,e5]@48 ~@15]/4", B: "~ [a3,c#4]@15", C: "~ [b3,d#4]@15",
  D: "[~ g#3@16 b3@16 [a3,e4]@15, ~ e4@32 ~@15]/3", E: "~ [c#4,e4]@15", F: "[~ b3@16 d4@16 [c4,g4]@15, ~ g4@32 ~@15]/3",
  G: "~ [d4,f#4]@15", H: "~ [e4,g4]@15", I: "~ [c4,e4]@15",
})).s("gm_pad_sweep").gain(0)

// other · pad metallic
const pad_metallic = note(`<
  ~@4 A@2 B@2 ~@2 C@2 D@2 C@2 D@2 ~@8 E F G@2 H I J ~@25 E F G@2 H I K ~@25 L M N@3 O P ~ Q R S@2 ~@3
>`.pickRestart({
  A: "[~@5 b4@27]/2", B: "[~@6 e5@7 f#5@7 ~ b4@5 ~@6]/2", C: "[~@7 c#5@10 ~@6 b4@8 ~, ~ g#5@30 ~, ~@17 f#5@15]/2",
  D: "[~ d#5@5 e5@20 ~@6]/2", E: "~@3 c#5@13", F: "~ b4@13 ~@2", G: "[~ d#5@6 e5@18 ~@7]/2", H: "~ g#5@5 ~ c#5@9",
  I: "~ f#5@6 b4@9", J: "~ c#5@12 ~@3", K: "~@7 d#4@4 e4@5", L: "~ [g4,b4]@15", M: "~@7 d5@9, ~ [f#4,a4]@15",
  N: "[~ [b4,f#5]@6 [b4,g5]@26 b5@15]/3", O: "~ a5@8 d6@7", P: "~ e6@15", Q: "~ b5@5 ~ e5@9", R: "~ a5@5 ~ d5@9",
  S: "[~ f#5@5 g5@20 ~@6]/2",
})).s("gm_pad_metallic").gain(0.24).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@10 A@2 B C A@2 D ~@4 E@2 ~@2 F@2 ~@6 G@2 ~ H@2 ~@2 I G@2 ~ H@2 ~@2 I ~ J K L@2 M N O@2 ~@2 P@2 ~@3 Q@2 ~ H@2 ~@2 I
  R@2 ~ S@2 ~@2 T ~ U V W@2 X Y Z@2 U V AA AB X Y AC AD AE AF ~@5
>`.pickRestart({
  A: "[~@7 c#5@10 ~@6 b4@8 ~, ~ g#5@30 ~, ~@17 f#5@15]/2", B: "~ d#5@6 e5@7 ~ e5", C: "~@3 e5 ~@2 e5 ~@2 e5@3 ~@4",
  D: "~ c#5@9 ~@6", E: "[~@7 e4@8 b4@9 ~@8, ~@3 g#3@21 ~@8, ~@5 d#4@19 ~@8]/2",
  F: "[~@15 b4@8 ~@9, ~@3 g#3@20 ~@9, ~@5 d#4@18 ~@9, ~@7 e4@16 ~@9]/2",
  G: "[~@17 e4@12 ~@3, ~@15 e3@14 ~@3, ~@8 [g#3,b3]@7 ~]/2", // G#m
  H: "[~@17 b2@12 ~@3, ~ a2@14 ~@17, ~@3 a3@25 ~@4, ~@5 b3@23 ~@4, ~@7 e4@21 ~@4]/2",
  I: "~@11 b4@5, ~@3 a2@13, ~@5 c#4@11, ~@7 e4@9", J: "~@7 e4@9, ~@3 a2@13, ~@5 b3@10 ~",
  K: "~@7 d#4@7 ~@2, ~@3 b2@10 ~@3, ~@5 f#3@8 ~@3",
  L: "[~@3 g#3@2 c#4@2 ~@16 c#4@3 c#3 g#3@2 c#3 ~ g#3, ~ c#3@13 ~@5 c#3@5 ~@8, ~@7 [g#3,e4]@14 g#3@6 c#4@5]/2", // C#m
  M: "~@7 e4@9, ~ a2@7 ~@8, ~@5 a3@11", N: "~@7 d#4@6 b2 ~@2, ~@3 b2@5 ~@8, ~@5 f#3@9 ~@2",
  O: "[~@7 e4@8 g#3@2 ~@4 c#4@2 c#3@6 ~@3, ~@3 c#3@12 ~@2 c#3@5 ~@10, ~@5 g#3@8 ~@6 g#3@4 ~@9]/2",
  P: "[~@13 e5@2 ~@6 g#4@9 ~@2, ~@9 g#4@10 b4@11 ~@2, ~@11 b4@4 d#5@15 ~@2]/2",
  Q: "[~ [e4,g#4]@2 c#4@2 [e4,g#4]@2 c#4 ~@3 b3@2 [d#4,f#4]@2 b3 ~ e4@12 ~@3, ~@9 [d#4,f#4]@4 ~@2 e3@14 ~@3, ~@8 [g#3,b3]@7 ~]/2", // E D#m G#m
  R: "[~@17 g4@12 ~@3, ~@15 g3@14 ~@3, ~@8 [b3,d4]@7 ~]/2", // Bm
  S: "[~@17 d3@12 ~@3, ~ c3@14 ~@17, ~@3 c4@25 ~@4, ~@5 d4@23 ~@4, ~@7 g4@21 ~@4]/2",
  T: "~@11 d5@5, ~@3 c3@13, ~@5 e4@11, ~@7 g4@9", U: "~@7 g4@9, ~@3 c3@13, ~@5 d4@10 ~",
  V: "~@7 f#4@7 ~@2, ~@3 d3@10 ~@3, ~@5 a3@8 ~@3",
  W: "[~@3 b3@2 e4@2 ~@16 e4@3 e3 ~@2 e3 ~ b3, ~ e3@13 ~@5 e3@5 ~@8, ~@7 [b3,g4]@14 b3@6 [b3,e4]@4 ~]/2", // Em E5
  X: "~@7 g4@9, ~ c3@7 ~@8, ~@5 c4@11", Y: "~@7 f#4@6 d3 ~@2, ~@3 d3@5 ~@8, ~@5 a3@9 ~@2",
  Z: "[~@7 g4@8 b3@2 ~@4 e4@2 e3@6 ~@3, ~@3 e3@12 ~@2 e3@5 ~@10, ~@5 b3@8 ~@6 b3@4 ~@9]/2",
  AA: "~ f#4@2 ~@6 f#4@2 ~@2 e3@2 g4, ~ e3@4 d5@4 ~@2 d5@5, ~@3 g4@4 e3@5 ~@4",
  AB: "~ f#4@2 ~@10 e3@2 g4, ~ e3@4 d5@4 g4@5 ~@2, ~@3 g4@4 e3@4 d5@4 ~",
  AC: "~@3 g4@2 d5 ~@7 e3@2 g4, ~ [e3,f#4]@5 ~ f#4@9, ~@7 e3@4 d5@5, ~@9 g4@4 ~@3", // Esus2
  AD: "~@5 d5@2 f#4@2 ~@4 e3@2 g4, ~ [e3,f#4]@6 e3@4 d5@5, ~@3 g4@4 ~@2 g4@5 ~@2", AE: "~ [c3,g3,c4]@14 ~",
  AF: "~ [d3,a3,d4]@13 ~@2", // D5
})).s("gm_electric_guitar_clean").gain(0.31).pan(0.6)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@9 A ~@2 B@2 ~@2 C ~@83 D ~@4>".pickRestart({
  A: "~@3 [e4,b4]@12 ~", B: "[~@9 e4@17 ~@6]/2", C: "~@3 c#5@12 ~", D: "~@3 e5@12 ~",
})).s("gm_electric_guitar_jazz").gain(0).pan(0.7)

// other · epiano1
const epiano1_2 = note(`<
  ~@4 A ~ B ~ A ~ C ~ D E A ~ D E ~@2 B ~ C ~ A ~ C ~ C ~ C ~ B ~@25 B ~ B ~ B ~ B ~@2 F G H I ~ J ~@25 K ~ L M ~@3
>`.pickRestart({
  A: "~ g#5 e5 d#5 e5 g#5 e5 d#5 e5 d#5 c#5 e5 d#5 c#5 e5 d#5",
  B: "~ g#5 e5 d#5 e5 g#5 e5 d#5 e5 d#5 c#5 e5 d#5 c#5 e5 ~", C: "~ g#5 e5 d#5 e5 g#5 e5 d#5 e5 d#5 c#5 e5 d#5 c#5 ~@2",
  D: "~@5 g#5 e5 d#5 e5 g#5 e5 d#5 e5 d#5 c#5 e5", E: "d#5 c#5 e5 ~@13", F: "~@7 b6!2 ~ b6 ~@4 b6", G: "b6 ~ b6 ~@13",
  H: "~@7 b6!2 ~ b6!2 ~@4", I: "~@7 b6!3 ~ b6 ~@4", J: "~@3 b6!3 ~ b6 ~@8",
  K: "~ b5 g5 f#5 g5 b5 g5 f#5 g5 f#5 e5 g5 f#5 e5 ~@2", L: "~@5 b5 g5 f#5 g5 b5 g5 f#5 g5 f#5 e5 g5",
  M: "f#5 e5 g5 ~@13",
})).s("gm_epiano1").gain(0.23)

// other · epiano1 · soft notes
const epiano1_soft_2 = note(`<
  ~@5 A B A ~ A C A ~ D ~ A ~ D ~@2 B A C A ~ A C A C A C A B A ~@24 B A B A B A B A ~@32 E F ~ G ~@3
>`.pickRestart({
  A: "c#5 e5 d#5 c#5 ~@12", B: "~@15 d#5", C: "~@14 e5 d#5", D: "~@3 d#5 c#5 e5 d#5 c#5 ~@8", E: "~@14 g5 f#5",
  F: "e5 g5 f#5 e5 ~@12", G: "~@3 f#5 e5 g5 f#5 e5 ~@8",
})).s("gm_epiano1").gain(0.11)

// chords · piano
const piano = note(`<
  ~@16 A@2 ~@5 B ~@2 C D E@2 C D F@2 G H I J K L M N G H I O P Q M R S T U@2 V W X@2 C D E@2 C D F@2 G Y C O P L M N Z
  AA AB AC AD AE AF AG AH AI AJ@2 AK AL AM@2 AN AI AJ@2 AK AO AM@2 AP AQ ~@5
>`.pickRestart({
  A: "[~@15 e4@13 ~@4, ~@5 g#3@24 ~@3, ~@7 d#4@21 ~@4, ~@11 g#4@17 ~@4]/2",
  B: "~@7 f#4@8 ~, ~ b2@14 ~, ~@3 b3@12 ~, ~@5 c#4@10 ~", C: "~@7 c#4@9, ~ a2@15, ~@3 e3@12 ~, ~@5 a3@11",
  D: "~@7 d#4@7 ~@2, ~ b2@14 ~, ~@3 f#3@12 ~, ~@5 b3@9 ~@2",
  E: "[~ [b3,d#4,f#4]@6 [b3,d#4,f#4]@5 ~ [b3,e4,g#4]@11 ~@8]/2", // B E
  F: "[~@5 [b3,d#4,f#4]@2 [d#4,f#4]@4 g#4@4 e4@2 [c#3,c#4,e4]@7 ~ [b2,f#3,b3,d#4]@5 ~@2, ~ c#3@15 ~@16, ~@7 b3@9 ~ g#4@5 ~@10]/2", // B D#m C#m B
  G: "~@7 g#4@9, ~ e3@15, ~@3 b3@12 ~, ~@5 e4@11", H: "~@7 g#4@9, ~ c#3@15, ~@5 e4@11",
  I: "~@7 c#4@9, ~ a2@15, ~@5 a3@11", J: "~@7 d#4@9, ~ b2@15, ~@5 b3@11",
  K: "~@7 e4@9, ~ c#3@15, ~@3 g#3@12 ~, ~@5 c#4@11", L: "~@7 e4@9, ~ b2@15, ~@5 c#4@11",
  M: "~@7 e4@9, ~ a2@15, ~@3 a3@12 ~, ~@5 c#4@11", N: "~@7 f#4@9, ~ b2@15, ~@3 b3@12 ~, ~@5 d#4@11",
  O: "~@7 d#4@9, ~ b2@15, ~@3 f#3@12 ~, ~@5 b3@11", P: "~@7 e4@9, ~ c#3@15, ~@5 c#4@11",
  Q: "~@7 e4@9, ~ b2@15, ~@3 g#3@12 ~, ~@5 c#4@11", R: "~@7 f#4@9, ~ b2@15, ~@5 d#4@11",
  S: "~ b3@3 ~@3 b3@2 ~@2 b3@2 a2@2 b3, ~ [a2,c#4,e4]@10 [c#4,e4]@5", // A C#m
  T: "~ f#3@6 ~@2 f#3 ~ [f#3,b3,d#4]@2 b2@3, ~ [b2,b3,d#4]@10 ~@5", // B
  U: "[~ [c#4,e4]@9 ~ g#3@2 ~@8 g#3@2 [g#3,c#4,e4]@3 ~ [g#3,c#4,e4]@2 [c#2,c#3]@3, ~ c#3@10 ~@2 c#3@4 c#2@11 ~@4, ~ g#3@4 ~@6 [c#4,e4]@11 ~@10, ~@15 g#3@4 c#3@9 ~@4]/2", // C#m C# C#m
  V: "~ [c#4,e4]@8 b3 ~ b3@2 a2@2 b3, ~ a2@11 ~@4, ~ b3@7 ~@3 [c#4,e4]@5", // C#m
  W: "~ [b2,b3,d#4]@10 ~@2 b2@3, ~ f#3@6 ~@4 [f#3,b3,d#4]@4 ~", // B
  X: "[~ [c#4,e4]@9 ~@5 c#2 ~@3 g#3@2 ~@2 [g#3,e4]@9, ~ c#3@15 ~ c#3@15, ~ g#3@5 ~@5 [c#4,e4]@10 c#4@11, ~@11 g#3@7 ~@14]/2", // C#m
  Y: "~@7 g#4@9, ~ c#3@15, ~@3 b3@12 ~, ~@5 e4@11", Z: "~@7 b4@9, ~ g3@15, ~@3 d4@12 ~, ~@5 g4@11",
  AA: "~@7 b4@9, ~ e3@15, ~@5 g4@11", AB: "~@7 e4@9, ~ c3@15, ~@5 c4@11", AC: "~@7 f#4@9, ~ d3@15, ~@5 d4@11",
  AD: "~@7 g4@9, ~ e3@15, ~@5 e4@11", AE: "~@7 g4@9, ~ d3@15, ~@3 b3@12 ~, ~@5 e4@11",
  AF: "~@7 e4@9, ~ c3@15, ~@3 g3@12 ~, ~@5 c4@11", AG: "~@7 f#4@9, ~ d3@14 ~, ~@5 d4@11",
  AH: "~ [c3,e4,g4]@10 d4@2 c3@2 d4, ~ d4@3 ~@7 [e4,g4]@5", // C Em
  AI: "~ a3@6 ~@2 a3 ~ [a3,d4,f#4]@2 d3@3, ~ [d3,d4,f#4]@10 ~@5", // D
  AJ: "[~ [e4,g4]@8 b3@2 b3@2 ~@10 [b3,e4,g4]@3 ~ [b3,e4,g4]@2 [e2,e3]@3, ~ e3@11 ~ e3@4 e2@11 ~@4, ~ b3@4 ~@6 [e4,g4]@11 ~@10, ~@15 b3@4 e3@9 ~@4]/2", // Em E Em
  AK: "~ [e4,g4]@8 d4 ~ d4@2 c3@2 d4, ~ c3@11 ~@4, ~ d4@7 ~@3 [e4,g4]@5", // Em
  AL: "~ a3@6 ~@2 a3 ~@3 d3@3, ~ [d3,d4,f#4]@10 [a3,d4,f#4]@4 ~", // D
  AM: "[~ [e4,g4]@9 ~@5 e2 ~@3 b3 ~@3 [b3,g4]@9, ~ e3@15 ~ e3@15, ~ b3@5 ~@5 [e4,g4]@10 e4@11, ~@11 b3@8 ~@13]/2", // Em
  AN: "~ d4@3 ~@3 d4@2 ~@2 d4@2 c3@2 d4, ~ [c3,e4,g4]@10 [e4,g4]@5", // C Em
  AO: "~ [d3,d4,f#4]@10 ~@2 d3@3, ~ a3@6 ~@4 [a3,d4,f#4]@4 ~", AP: "~@7 e4@4 e4@5, ~ g4@15",
  AQ: "~@7 d4@3 ~ d4@5, ~ f#4@14 ~",
})).s("gm_piano").gain(0.29).pan(0.3)

// … 129 more lines

More by Laura Pausini