Strudelify

Apriti cuore

Dalla

KeyC majorTempo90 bpm
0:00/0:00
// Apriti cuore — Dalla
// 90 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: duplicate parts dropped: ch 15 distortion guitar (copy of ch 12 distortion guitar)
// note: Full arrangement: all 104 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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(`<
  ~@24 A B C D A ~@2 D A B C D E F G H E I A B J K A L C M B A L C D ~@3 N O P C Q E F G H E I A B J K R@2 C M B A B J K
  R@2 C M B A B J K R@2 C M B S@3 ~@5
>`.pickRestart({
  A: "c2", B: "a1", C: "f1", D: "g1", E: "e1@31 ~", F: "a1@13 ~@19", G: "e1", H: "a1@3 ~@5", I: "a1@15 a1",
  J: "f1@31 ~", K: "g1@23 ~ g1@2 a1@2 c2@2 a1@2", L: "a1@31 ~", M: "a#1", N: "g1@23 ~ g1@2 a1@2 c2@2 a1 ~",
  O: "c2@23 g#1 a1@2 c2@2 ~@4", P: "a1@15 ~", Q: "g1@31 ~", R: "[c2@12 e2@2 a1@17 ~]/2", S: "[c2@67 ~@29]/3",
})).s("gm_fretless_bass").gain(0.52)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@4 B@4 C D E F G H I J K L M N M O ~@2 P@4 Q@2 R@2 Q@2 R@2 K L M N S T@5 U@5 V W X Y P@4 Q@2 R@2 K L M N S T@5 U@5
  A@4 U@5 Z@4 U@5 AA@2 ~@6
>`.pickRestart({
  A: "[~@2 d4!2 ~@2 d4!2 ~@2 g4 e4@2 d4 c4 g3@3 d4!2 ~@2 g4 e4@2 d4 c4 ~ c4 ~@2 c4@3 d4!2 ~@2 d4!2 ~@2 g4 ~@2 d4 c4 g3@3 d4!2 ~@2 g4 ~@2 d4 g4 ~@3 c4 a2, c3@32 ~@54 e4@7 ~@17 e4@7 ~ e4@8 ~@2, ~@8 d4@4 ~@4 d4@7 ~@17 d4@6 ~@12 c4@4 ~@10 d4@4 ~@4 d4@7 ~@17 d4@6 ~@12 d4@4 ~@2, ~@10 g3@6 ~@2 g3@5 ~@19 g3@4 ~@8 g3@6 g3@6 ~@8 g3@5 ~@3 g3@5 ~@19 g3@5 ~@17]/4",
  B: "[~@4 d4 ~ d4 ~@5 d4@2 d4@2 ~@4 g4@2 ~@4 d4@2 c4@2 g3@6 d4@2 d4@2 ~@4 g4@2 ~@4 d4@2 c4@2 g3@4 ~@2 c4@2 ~@6 d4@2 d4@2 ~@4 d4@2 d4@2 ~@4 g4@2 e4@4 d4@2 c4@2 g3@6 d4@2 d4@2 ~@4 g4@2 e4@4 d4@2 ~@2 e4@4 d4@2 c4@2 g3@2, ~@8 d4@4 ~@4 d4@6 e4@7 ~@11 d4@6 e4@7 ~@19 d4@4 ~@4 d4@7 ~@17 d4@6 ~@6 g4@4 ~@8, ~@10 g3@6 ~@2 g3@5 ~@19 g3@4 ~@12 g3@4 [g3,c4]@10 ~@2 g3@6 ~@2 g3@5 ~@19 g3@4 ~@18]/4", // C5
  C: "g3@13 ~@2 e3, [c3,d4], ~@13 c4@3, ~@7 g3", D: "[g3,c4,d4]@3 [g3,c4]@5", E: "[g3,d4]@3 c4@5",
  F: "~@3 g4@5, [g3,d4]", G: "[c3,g3,d4]", H: "[a2,g3,c4]", I: "[f3,g3,c4]@15 f3", J: "~@12 g4@19 ~, [g3,d4]",
  K: "~@8 [d4,g4] ~@3 [d4,a4]@8 g4@10 ~@2", L: "~@8 c4 ~@3 [g3,d4]@9 ~@11", M: "~@8 g4 ~@3 [d4,a4]@9 ~@11",
  N: "~@8 g3 ~@3 [g3,d4]@9 ~@11", O: "~@12 [g3,d4]@9 ~@11",
  P: "[~@2 d4!2 ~@2 d4!2 ~@2 g4 e4@2 d4 c4 g3@3 d4!2 ~@2 g4 e4@2 d4 c4 ~ c4 ~@2 c4@3 d4!2 ~@2 d4!2 ~@2 g4 ~@2 d4 c4 g3@3 d4!2 ~@2 g4 ~@2 d4 g4 ~@3 c4@2, c3@32 ~@54 e4@7 ~@17 e4@7 ~ e4@8 ~@2, ~@8 d4@4 ~@4 d4@7 ~@17 d4@6 ~@12 c4@4 ~@10 d4@4 ~@4 d4@7 ~@17 d4@6 ~@12 d4@4 ~@2, ~@10 g3@6 ~@2 g3@5 ~@19 g3@4 ~@8 g3@6 g3@6 ~@8 g3@5 ~@3 g3@5 ~@19 g3@5 ~@17]/4",
  Q: "[~@4 d4@2 d4@2 ~@4 d4@2 d4@2 ~@20 d4@2 d4 ~@17 c4@6 ~@2, ~@8 d4@4 ~@4 d4@6 e4@17 ~@7 e4@8 g3@6 ~@4, ~@10 g3@8 g3@6 ~@2 d4@10 ~@4 d4@7 ~@3 d4@6 ~@8, ~@20 g4@19 ~@5 g4@12 ~@8, ~@30 g3@9 ~@3 g3@5 ~@5 c4@4 ~@8]/2",
  R: "[~@4 d4@2 d4@2 ~@2 g3@4 d4@2 ~@12 d4@2 ~@6 d4@2 d4@2 ~@18 d4@5 ~, ~@8 d4@4 ~@4 d4@6 e4@9 ~@9 d4@6 e4@8 e4@9 ~, ~@18 g3@6 ~@6 c4@10 ~@2 g3@5 ~@3 d4@5 ~@9, ~@20 g4@11 ~@13 g4@8 g4@11 ~]/2",
  S: "~@8 [d4,g4] ~@3 [d4,a4]@9 ~@11", // G5 D5
  T: "[~@6 [a3,d4,e4]@4 ~@8 d4!2 ~@2 d4!2 ~@2 g4 e4@2 d4 c4 g3@3 d4!2 ~@2 g4 e4@2 d4 c4 ~ c4 ~@2 c4@3 d4!2 ~@2 d4!2 ~@2 g4 ~@2 d4 c4 g3@3 d4!2 ~@2 g4 ~@2 d4 g4 ~@3 c4 a2, ~@20 [a3,e4]@20 ~@2 g3@6 ~@2 g3@5 ~@19 g3@4 ~@8 g3@6 g3@6 ~@8 g3@5 ~@3 g3@5 ~@19 g3@5 ~@17, ~@20 d4@16 ~@4 d4@4 ~@4 d4@7 ~@17 d4@6 ~@12 c4@4 ~@10 d4@4 ~@4 d4@7 ~@17 d4@6 ~@12 d4@4 ~@2, ~@32 c3@32 ~@54 e4@7 ~@17 e4@7 ~ e4@8 ~@2]/5", // Asus4 A5
  U: "[~@4 d4 ~ d4 ~@5 d4@2 d4@2 ~@4 g4@2 ~@4 d4@2 c4@2 g3@6 d4@2 d4@2 ~@4 g4@2 ~@4 d4@2 c4@2 g3@4 ~@2 c4@2 ~@6 d4@2 d4@2 ~@4 d4@2 d4@2 ~@4 g4@2 e4@4 d4@2 c4@2 g3@6 d4 ~ d4 ~@5 c4@2 c4@24 d4@2 ~@4 c4@2 c4@18, ~@8 d4@4 ~@4 d4@6 e4@7 ~@11 d4@6 e4@7 ~@19 d4@4 ~@4 d4@7 ~@17 d4@6 ~@26 d4@23 ~, ~@10 g3@6 ~@2 g3@5 ~@19 g3@4 ~@12 g3@4 [g3,c4]@10 ~@2 g3@6 ~@2 g3@5 ~@19 f3@30 ~@24]/5", // C5
  V: "~@2 d4!2 d4@2 d4!2 ~@6 c4@2, ~@8 d4@3 e4@5, ~@10 g4@2 ~ d4@3",
  W: "~@3 d4 d4@3 ~@4 g3 ~ g3@2 ~, ~@7 e4@5 ~@4, ~@9 d4@3 ~@4, ~@5 c4 c4@2",
  X: "~@3 d4 d4@2 ~ d4 ~@5 d4@3, ~@8 d4@5 ~@3, ~@5 g4@3, ~@11 e4@5",
  Y: "~@3 d4 ~@9 d4@3, ~@4 d4@3 e4@3 g4@5 ~, ~@6 g4@2 ~ d4@2 e4@4 ~",
  Z: "[~@2 d4!2 ~@2 d4!2 ~@2 g4 e4@2 d4 c4 g3@3 d4!2 ~@2 g4 e4@2 d4 c4 ~ c4 ~@2 c4@3 d4!2 ~@2 d4!2 ~@5 d4 c4 g3@3 d4!2 ~@2 g4 ~@2 d4 g4 ~@3 c4 a2, c3@16 ~@26 g4@2 ~@17 d4@2 ~, ~@8 d4@4 ~@4 d4@7 ~@17 d4@6 ~@12 c4@4 ~@10 d4@4 ~@4 d4@6 e4@7 ~@11 d4@6 e4@7 ~ e4@8 ~@2, ~@10 g3@6 ~@2 g3@5 ~@19 g3@4 ~@8 g3@6 g3@6 ~@8 g3@5 ~@3 g3@5 ~@19 g3@5 ~@17]/4",
  AA: "[~@8 g4@51 ~@5, c2@59 ~@5, ~@3 c3@56 ~@5, ~@4 g3@2 d4@53 ~@5, ~@5 c4@54 ~@5]/2",
})).s("gm_electric_guitar_clean").gain(0.19).pan(0.3)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@4 A ~@5 B ~@2 C D ~ E F G H I J K L ~@3 M N@3 ~ N@3 ~ E F G H O ~@5 A ~@3 P Q@2 R@2 ~@3 M N@3 ~ E F G H O ~@5 A ~@3
  P ~@4 A ~@3 P ~@4 A ~@3 P ~@8
>`.pickRestart({
  A: "c3 ~", B: "f3@3 [f3,g3]@5", C: "~@3 g4@5", D: "~@15 [g3,c4]", E: "~@10 d4@5 ~", F: "~@8 g3 ~@11 [g3,c4]@12",
  G: "~@8 d4 ~@11 [d4,g4]@10 ~@2", H: "~@8 c4 ~@11 [g3,c4]@10 ~@2", I: "~@8 d4 ~@11 [d4,g4]@9 ~@3", J: "~@5 [g3,c4]@3",
  K: "[f3,a#3,d4]", L: "[e3,g3,c4]", M: "~@15 g3", N: "[~@28 c4@11 ~@23 c4@5 ~@9 d4@2 ~@18, ~@15 g3@2 ~@7]/3",
  O: "~@20 [d4,g4]@9 ~@3", P: "~@4 d4@2 ~@4 g3@21 ~", Q: "[~@18 d4 ~@3 g4@2 ~@7 g3, ~@15 g3@5 ~@10 e3@2]/2",
  R: "[~@2 d4 ~@3 d4 ~@11 d4 ~@13, f3@9 ~@19 c4@4 ~@32, ~@15 g3@5 ~@12]/2",
})).s("gm_electric_guitar_clean").gain(0.11).pan(0.3)

// other · flute
const flute = note("<~@3 A@4 B@2 ~@2 C@4 ~@7 D E ~@80>".pickRestart({
  A: "[~@19 c6@5 b5@4 g5@23 c6@2 b5@5 g5@2 e5@27 g5@4 e5@4 c5@28 ~ c5@4]/4", B: "[c5 d5@15]/2",
  C: "[~@20 c6@4 b5@4 g5@24 c6@2 b5@4 g5@2 e5@28 g5@2 e5@2 d5@3 c5@33]/4", D: "f5@11 g5@4 a5@4 a#5@3 a5@5 f5@5",
  E: "g5@4 c6@11 ~",
})).s("gm_flute").gain(0.29).pan(0.2)

// other · pad new age
const pad_new_age = note(`<
  ~@63
  [~@5 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5]
  [a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5]!4
  [a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 g4 g5 a4 a5 ~@14]
  ~@35
>`).s("gm_pad_new_age").gain(0.15).pan(0.3)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A@8 B@2 C@2 D@4 E@7 F G@8 H@4 I@4 J@2 K L@8 M@2 N@2 G@8 O@6 K L@8 K L@8 K P@8 Q@3 ~@5
>`.pickRestart({
  A: "[c3@31 a2@32 ~@8 g3@24 ~@30 a2@2 ~ c3@32 a2@32 ~@8 g3@24 g3@32, [c4,d4], g3@67 ~@29 g3@101 ~@59, ~@63 f3@33 ~@96 f3@32 ~@32]/8", // Csus2
  B: "[~@23 c4@7 ~@2 g3@11 ~ g3@18 ~@2, ~@31 c4@12 ~@21, ~ a2]/2", C: "[d4@12 c4@19 d4@31 ~@2, g3, f3@33 ~@31]/2",
  D: "[c3@31 a2@32 ~ f3@31 ~@11 g4@22, ~@63 g3@31 ~ g3@33]/4",
  E: "[~@8 [d4,g4] ~@2 [d4,a4]@8 g4@9 ~@3 [a1,a2]@12 ~ c4@7 c4@8 ~@12 g4 ~@3 a4@8 g4@11 ~ a1@12 ~ c4@7 c4@9 ~@11 g4 d4 ~@3 a4@7 g4@12 ~@9 [g3,c4] ~@3 d4@7 c4@12 ~ [a#1,a#3,d4]@32, [e1,e2]@33 ~@10 g3@14 ~@6 e2@44 ~ g3@15 ~@36 a1@16 ~@16 [a#2,f3]@33, ~@43 d4@9 ~@11 e1@33 ~@31 [e1,e2]@33 ~@64, ~@75 d4@19 ~@13 d4@8 ~@25 d4@20 ~@12 g3@20 ~@32]/7", // G5 D5 A C5 A# E A#5 E
  F: "[a1,a2,e3,c4]", // Am
  G: "[c3@31 a2@32 ~@8 g3@24 ~@33 c3@32 a2@32 ~@8 g3@23 ~ g3@32, [c4,d4], g3@67 ~@29 g3@101 ~@59, ~@63 f3@33 ~@96 f3@32 ~@32]/8", // Csus2
  H: "[c3@31 a2@32 ~@8 g3@24 ~ g3@32, [c4,d4]@127 ~, g3@67 ~@61, ~@63 f3@33 ~@32]/4", // Csus2
  I: "[~@8 [d4,g4] ~@2 [d4,a4]@8 g4@9 ~@3 [a1,a2]@12 ~ c4@7 c4@8 ~@12 g4 ~@3 a4@8 g4@11 ~ a1@12 ~ c4@7 c4@9 ~@4, [e1,e2]@33 ~@10 g3@14 ~@6 e2@45 g3@15 ~@5, ~@43 d4@9 ~@11 e1@33 ~@32, ~@75 d4@19 ~@13 d4@8 ~@13]/4", // G5 D5 A E
  J: "[~@7 g4 d4 ~@3 a4@7 g4@12 ~ d4@23 ~ [a3,d4,e4]@8, [e1,e2]@31 a1@16 ~@17, ~@3 d4@5 ~@8]/2", K: "[c2,c3,g3,c4,d4]",
  L: "[~@16 f3@16 ~@32 a2@16 f3@16 [a#2,a#3,f4]@15 ~ [c4,e4]@16, a2@32 ~@40 g4@32 g3@83 ~@36 g3@33, ~@8 [c4,d4]@95 ~ d4@117 ~@35, ~@4 g3@28 g3@20 c4@45 ~@31, ~@96 [c2,c3]@32 ~@94 a2@33 ~]/8", // A#5 C Csus2 C
  M: "[[c3,g3] a2, d4@21 ~@11]/2", N: "[~ g3, f3@17 ~@15, ~@3 d4@4 ~]/2",
  O: "[~@8 [d4,g4] ~@2 [d4,a4]@8 g4@9 ~@3 [a1,a2]@12 ~ c4@7 c4@8 ~@12 g4 ~@3 a4@8 g4@11 ~ a1@12 ~ c4@7 c4@9 ~@11 g4 d4 ~@3 a4@7 g4@12 ~ d4@23 ~ [a3,d4,e4]@8, ~@43 g3@14 ~@6 e2@45 g3@15 ~@4 e2@32 a1@16 ~@17, ~@43 d4@9 ~@23 d4@19 ~@13 d4@8 ~@25 d4@20 ~@32]/6", // G5 D5 A Asus4
  P: "[~@16 f3@16 ~@32 a2@16 f3@16 [a#2,a#3,f4]@15 ~ [g3,c4,e4]@16, a2@32 ~@40 g4@32 g3@83 ~@69, ~@8 [c4,d4]@95 ~ d4@117 ~@35, ~@4 g3@28 g3@20 c4@45 ~@31, ~@96 [c2,c3]@32 ~@94 a2@33 ~]/8", // A#5 C Csus2 C
  Q: "[[c2,c3,d4]@35 ~@13, [g3,c4] ~@2]/3", // Csus2 C5
})).s("gm_string_ensemble_1").gain(0.25).pan(0.6)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note(`<
  ~@8 A B ~ C@2 D@3 E ~ F@2 G@2 ~ H ~@12 E ~ F@2 I@2 ~@10 J@2 K ~@8 L M@5 ~@35
>`.pickRestart({
  A: "d4@11 g4@13 ~@8, [c3,g3]", B: "~@3 c4@5", C: "[~ g3, ~@31 d4@33]/2",
  D: "[~@31 c4@32 d4@31 ~@2, c4@31 ~@65, ~@5 g4@12 ~@31]/3", E: "~@19 d4@8 ~@5",
  F: "[~@7 d4 ~@32 [g3,c4] ~@23, ~@31 a2@13 ~@20]/2", G: "[~@31 a2@16 ~@17]/2", H: "g3@31 ~",
  I: "[~@32 [a3,e4]@23 ~@9, ~@31 a2@33]/2", J: "[~ c4@6 ~]/2", K: "~@3 c4", L: "~@19 d4@8 ~@5, [e1,e2]",
  M: "[~@39 d4 ~@32 [g3,c4] ~@22 e1@32 ~ [a3,e4]@23 ~@9, ~@31 e1@32 a2@13 ~@51 a2@16 ~@17]/5", // C5 A5
})).s("gm_string_ensemble_1").gain(0.15).pan(0.6)

// chords · synth strings 1
const synth_strings_1 = note(`<
  A@4 B@4 C D E F G H I J ~@12 K@2 L@2 K@2 M@2 ~@15 N O P Q N O P Q N O P Q ~@41
>`.pickRestart({
  A: "[~@2 d4!2 ~@2 d4!2 ~@2 g4 e4@2 d4 c4 g3@3 d4!2 ~@2 g4 e4@2 d4 c4 ~ c4 ~@2 c4@3 d4!2 d4@2 d4!2 ~@5 d4 c4 g3@3 d4!2 ~@2 g4 ~@2 d4 g4 ~@3 c4 a2, ~@8 d4@4 ~@4 d4@7 ~@17 d4@7 ~@33 d4@6 e4@7 ~@11 d4@6 e4@7 ~ e4@8 ~@2, ~@10 g3@6 ~@2 g3@5 ~@19 g3@5 ~@7 g3@6 g3@6 ~@16 g3@6 ~@18 g3@5 ~@17, ~@42 g4@2 ~@17 d4@2 ~]/4",
  B: "[~@4 d4 ~ d4 ~@5 d4@2 d4@2 ~@4 g4@2 ~@4 d4@2 c4@2 g3@6 d4@2 d4@2 ~@4 g4@2 ~@6 c4@2 g3@4 ~@2 c4@2 [g3,c4]@6 d4@2 d4@2 ~@4 d4@2 d4@2 ~@4 g4@2 e4@4 d4@2 c4@2 g3@6 d4@2 d4@2 ~@4 g4@2 e4@4 d4@2 ~@2 e4@4 ~@2 c4@2 g3@2, c3@16 ~@6 e4@7 ~@17 e4@7 ~@63 g4@4 ~@8, ~@8 d4@4 ~@4 d4@7 ~@17 d4@7 ~@3 d4@4 ~@18 d4@4 ~@4 d4@7 ~@17 d4@6 ~@12 d4@4 ~@2, ~@10 g3@6 ~@2 g3@5 ~@19 g3@5 ~@11 g3@4 ~@12 g3@6 ~@2 g3@5 ~@19 g3@4 ~@18]/4", // C5
  C: "g3@13 ~@2 e3, [c3,d4], ~@13 c4@3, ~@7 g3", D: "[g3,c4,d4]@3 [g3,c4]@5", E: "[g3,d4]@3 c4@5",
  F: "~@3 g4@5, [g3,d4]", G: "[c3,g3,d4]", H: "[a2,g3,c4]", I: "[f3,g3,c4]@15 f3", J: "~@12 g4@19 ~, [g3,d4]",
  K: "[~@6 d3@2 d3@2 g2@2 d3@2 d3@2 ~@2 g2@2 ~@2 e3@4 d3@3 ~ g2@6 d3@2 d3@2 ~@2 g2@2 ~@2 e3@4 ~@2 c3@2 ~@2 c3@5 ~@3, ~@16 d3@4 g3@6 ~@14 d3@4 g3@5 ~ d3@4 g2@4 ~@6]/2",
  L: "[~@4 d3@2 d3@2 d3@2 g2@2 ~@2 d3@2 ~@6 e3@6 d3@2 c3@6 ~@2 d3@2 ~@6 e3@4 d3@2 ~@2 e3@4 d3@3 ~@3, ~@16 d3@4 g3@9 ~@11 d3@4 g3@5 ~@3 g3@6 ~@6, ~@9 g2@2 ~@10 g2@2 ~@9]/2",
  M: "[~@2 d3!3 g2 ~ d3 ~@3 e3@3 d3 c3@3 ~ d3 ~@3 e3@2 d3 ~ e3@2 d3@3, ~@16 d3@4 g3@9 ~@11 d3@4 g3@5 ~@3 g3@6 ~@6, ~@9 g2@2 ~@10 g2@2 ~@9]/2",
  N: "~@2 d3!2 d3@2 d3!2 d3@2 g3 e3@2 d3 c3 ~", O: "~@3 d3 d3@2 ~ e3@2 d3 c3 g2 ~ g2 ~@2, ~@24 c3@7 ~",
  P: "~@6 d3@2 d3@4 ~@2 d3@2 d3@4 g3@2 e3@4 d3@3 ~@3", Q: "~@3 d3 d3@2 ~ e3@2 d3 ~ e3@2 d3@3, ~@12 g3@4 ~@4 g3@5 ~@7",
})).s("gm_synth_strings_1").gain(0.16).pan(0.8)

// chords · synth strings 1 · soft notes
const synth_strings_1_soft = note(`<
  ~ A B ~@7 C ~@2 D E ~@13 F G@2 H F G@2 H ~@15 I@2 J@2 I@2 J@2 I@2 J@2 ~@41
>`.pickRestart({
  A: "~@13 c4@2 ~", B: "~@5 g3@3 ~@8", C: "f3@3 [f3,g3]@5", D: "~@3 g4@5", E: "~@15 [g3,c4]", F: "~@4 d3@2 ~@22 c3@3 ~",
  G: "[~@14 g2 c3@3 ~@4 d3 ~@9]/2", H: "~@2 d3 ~@13", I: "[~@30 g2@6 d3@2 ~@6 g3@3 ~@13 e2@2 g2@2]/2",
  J: "[f2@4 d3 ~@7 d3@2 ~@14 c3@2 g2@6 d3@2 ~@26]/2",
})).s("gm_synth_strings_1").gain(0.08).pan(0.8)

// other · string ensemble 1
const string_ensemble_1_2 = note("<~@69 A B C@6 D A B E@4 F G H A B I@6 H ~@8>".pickRestart({
  A: "[d5,d6] [g5,g6]", B: "[d5,d6] [c5,c6]",
  C: "[~@64 d6@16 ~@16 d6@16 [c5,c6]@15 ~ g4@31 ~ f6@32, [g4,g5]@66 ~@29 d5@17 ~@47 f5@33, ~@63 d5@17 [g5,g6]@19 ~@28 g5@34 ~@31]/6", // C G
  D: "~@3 [g4,g5]@5, [e5,e6]", E: "[~@4 d6 ~ [d5,d6] [c5,c6], [g4,g5]@33 ~@31, ~@63 d5@17 [g5,g6]@19 ~@29]/4",
  F: "[g4,g5]", G: "[f5,f6]", H: "~@3 g5@5, [e5,e6]",
  I: "[~@64 d6@16 ~@16 d6@16 [c5,c6]@15 ~ g4@32 [f5,f6]@32, [g4,g5]@66 ~@29 d5@17 ~@80, ~@63 d5@17 [g5,g6]@19 ~@28 g5@34 ~@31]/6", // C F G
})).s("gm_string_ensemble_1").gain(0.2).pan(0.3)

// other · piano
const piano = note("<~@60 A@2 ~@7 B C D E F G H I J@2 C D E F G K I J@2 C D E F G K I L ~@8>".pickRestart({
  A: "[~@3 c5@4 ~, ~@5 g4@9 ~@2]/2",
  B: "e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 g6 ~ e6 f6 g6 ~ e6 f6 g6 ~",
  C: "e6 ~ g6 ~ e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 g6 ~ e6 f6 g6 ~ e6 f6 g6 ~ e6 f6 g6 ~, ~ f6@2 ~@29",
  D: "e6 f6 g6 ~ e6 f6 g6 ~ e6 f6 g6 ~ e6 f6 g6 ~ e6 ~ g6 ~ e6 f6 g6 ~ e6 f6 g6 ~ e6 f6 g6 ~, ~@17 f6@2 ~@13",
  E: "e6 f6 g6 ~ e6 f6 g6@2 e6 ~ g6@2 e6 f6 g6@2 e6 f6 g6@2 e6 f6 g6@2 e6 f6 g6@2 e6 f6 g6@2, ~@9 f6@2 ~@21",
  F: "e6 f6 g6@2 e6 f6 ~@2 e6 ~ g6@2 e6 ~ g6@2 e6 ~ g6@2 e6 f6 ~@2 e6 ~ g6@2 ~@2 g6 ~, ~@7 g6@2 f6@2 ~@2 f6@2 ~@2 f6@2 ~@4 g6@2 f6@2 ~ e6@2 ~@2, ~@29 f6@2 ~",
  G: "e6 ~ g6@2 e6 f6 g6@2 e6 f6 g6@2 e6 f6@2 ~ e6 f6 g6@2 e6 f6 g6@2 e6 ~ g6@2 ~ f6 g6@2, ~ f6@2 ~@12 g6@2 ~@8 f6@2 ~ e6@2 ~@2",
  H: "e6 f6 g6@2 e6 f6 g6@2 ~ f6 ~@2 e6 f6 ~@2 e6 f6 g6@2 e6 ~ g6@2 e6 ~ g6@2 e6 ~ g6@2, ~@8 e6@2 ~ g6@2 ~@2 g6@2 ~@4 f6@2 ~@2 f6@2 ~@2 f6@2 ~",
  I: "e6 f6 g6@2 e6 f6 g6@2 e6 f6 g6@2 e6 f6 ~@2 e6 ~ g6 ~ e6 f6 g6@2 ~@2 g6@2 e6 ~ g6@2, ~@15 g6@2 f6@2 ~@5 e6@2 ~@6, ~@25 f6@2 ~@2 f6@2 ~",
  J: "[e6 f6 ~@2 e6 ~ g6@2 ~@2 g6@2 e6 f6 ~@2 e6 f6@2 ~ e6 f6@2 ~ e6 f6 ~@2 e6 f6 ~@2 e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 ~ g6 e6 f6 g6 ~ e6 f6 g6 ~ e6 f6 g6 ~, ~@3 g6@2 f6@2 ~ e6@2 ~@54, ~@9 f6@2 ~@4 g6@2 ~@2 g6@2 ~@2 g6@2 ~@2 g6@2 ~@2 g6@2 ~@31]/2",
  K: "e6 f6 g6@2 e6 ~ g6@2 ~ f6 ~@2 e6 f6 ~@2 e6 f6 g6@2 e6 ~ g6@2 e6 ~ g6@2 e6 ~ g6@2, ~@5 f6@2 ~ e6@2 ~ g6@2 ~@2 g6@2 ~@4 f6@2 ~@2 f6@2 ~@2 f6@2 ~",
  L: "e6 f6 ~@2 e6 ~ g6@2 ~@2 g6@2 e6 f6 ~@2 e6 f6@2 ~ e6 ~@11, ~@3 g6@2 f6@2 ~ e6@2 ~@22, ~@9 f6@2 ~@4 g6@2 ~@2 g6@2 ~@11",
})).s("gm_piano").gain(0.25).pan(0.2)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@41 A B C D E F G H I J ~@16 K A B C D E F G H I J B C D E F G H I J B C D E F G H I J ~@8
>`.pickRestart({
  A: "[a2,e3]", B: "c3@31 ~", C: "a2@31 ~", D: "f2@29 ~ f2@2", E: "g2", F: "c3", G: "a2", H: "f2@29 ~@3", I: "a#2",
  J: "a2@7 ~", K: "~@3 b2@5",
})).s("gm_distortion_guitar").gain(0.28).pan(1)

// other · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@48 A ~@18 B ~@7 A ~@8 A ~@8 A ~@10>".pickRestart({
  A: "~@15 f2", B: "~@3 e2@5",
})).s("gm_distortion_guitar").gain(0.2).pan(1)

// other · electric guitar muted · Emaj7
const electric_guitar_muted = note(`<
  ~@28
  [d4 ~ d4@2 ~@8 d4 ~ d4 ~@17]
  [d4 ~ d4 ~@9 d4 ~ d4 ~@9 [d#5,e5]@2 g5@6]
  [d4 ~ d4 ~@29]!2
  ~@72
>`).s("gm_electric_guitar_muted").gain(0.26).pan(0.9)

// other · pad warm
const pad_warm = note(`<
  ~@16 A@2 B@2 C@3 ~@13 D@2 E F G@2 H@4 I@3 J@2 ~@12 K@2 L M G@2 H@4 I@3 J@2 H@4 I@3 J@2 H@4 I@3 J@2 N@3 ~@5
>`.pickRestart({
  A: "[[b5,b6]@5 c7@2 ~]/2", B: "[b5@39 c6@16 ~@9]/2", C: "[~@23 [g5,g6]@8 e5@34 ~@31, b5@26 ~@5 e6@31 ~@34]/3",
  D: "[~@3 c7, ~@4 [g6,g7]@5 ~@7, ~@31 d6@20 ~@13, ~@32 d7@19 ~@13]/2", E: "[b5,b6]@5 ~@3", F: "c7",
  G: "[~ a6, ~@16 [g6,g7]@19 ~@29]/2", // G
  H: "[[d6,d7]@16 ~@31 [c6,c7]@16 ~@33 d7@32, ~@16 [g6,g7]@19 ~@60 d6@32 ~, ~@32 [d6,d7]@18 ~@13 [g5,g6]@65]/4", // D C G D G
  I: "[~@55 [d6,d7]@8 c6@18 ~@15, [d6,d7]@25 ~@23, ~@47 [e6,e7]@11 ~@5 c7@15 ~@18]/3", // D E
  J: "[d6@36 ~@4 [a5,a6]@17 ~@7, d7@33 ~@31]/2", // A
  K: "[d6 ~@2 c7, ~@4 [g6,g7]@5 ~@7, ~@31 d6@20 ~@13, ~@32 d7@19 ~@13]/2", L: "b6@17 ~@15", M: "c8",
  N: "[[c3,c4,g4,c5,d5]@71 ~@25]/3", // Csus2
})).s("gm_pad_warm").gain(0.02).pan(0.2)

// other · pad warm · soft notes
const pad_warm_soft = note(`<
  ~@17 A B@2 C ~@16 D@3 ~ E ~@6 F@2 G ~@12 H I@2 J ~ E ~@6 F@2 G ~@6 F@2 G ~@6 F@2 G ~@8
>`.pickRestart({
  A: "~@8 c6@15 ~@9", B: "[b6@5 c7@2 ~]/2", C: "b6@3 ~", D: "[~@4 c6@5 ~@7 c6@8, ~@49 [g6,g7]@20 ~@27]/3", E: "a7",
  F: "[~@8 e7@31 ~@25, ~@2 e6@7 ~@7]/2", G: "[c6,c7]@31 ~", H: "d7@17 ~@15",
  I: "[~@32 b7@17 [g6,g7]@15, ~@4 c6@5 ~@7]/2", J: "c7",
})).s("gm_pad_warm").gain(0.01).pan(0.2)

// … 83 more lines

More by Dalla