Strudelify

Voglio solo te

Giorgia

KeyC majorTempo118 bpm
0:00/0:00
// Voglio solo te — Giorgia
// 118 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 131 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · synth strings 1
const synth_strings_1 = note(`<
  ~@26 A@4 B@2 C@2 D@2 E@2 F@2 G H I@2 J@2 K@2 L@2 G M N@2 O@4 P@5 ~@5 Q@4 R@2 S@8 T U V W X@4 Y@2 T U V Z AA AB@3 AC@24
  ~@7
>`.pickRestart({
  A: "[c3,g3]/4", B: "[[g3,a3,b3,d4]@31 ~]/2", C: "[a2,a3,c4,f4]/2", D: "[b2,b3,d4,g4]/2", E: "[a3,c4,d4,f4]/2",
  F: "[[c#3,a3,b3,e4]@31 ~]/2", G: "a3@8 g#3@7 ~, [b2,b3,e4]", H: "g#3@7 a3@8 ~, [f#2,c#4,f#4]@15 ~",
  I: "[[b2,a3,b3,d4,f#4]@15 ~ e2@16, ~@15 [g#3,b3,e4]@16 ~]/2", J: "[f#2,f#3,a3,c#4,e4]/2",
  K: "[[a3,b3,f#4] [g#3,e4], d4@31 ~]/2", L: "[g#4@14 a4@17 ~, [b3,c#4,e4]@31 ~]/2", M: "g#3@7 a3@8 ~, [f#2,c#4,f#4]",
  N: "[[b2,a3,b3,d4,f#4]@15 ~ [e2,e4]@16, ~@15 [g#3,b3]@17]/2", O: "[~ [f3,a3,c4,e4]@32 [g3,c4,d4,e4]@31]/4",
  P: "[~ [f3,a3,c4,e4]@32 [g3,c4,d4,e4]@32 ~@15]/5", Q: "[~ [c3,g3]@63]/4", R: "[~ [g3,a3,b3,d4]@31]/2",
  S: "[~ [a2,a3,c4,f4]@32 [b2,b3,d4,g4]@32 [a3,c4,d4,f4]@32 [c#3,a3,b3,e4]@31]/8", T: "~ a3@8 g#3@7, ~ [b2,b3,e4]@15",
  U: "~ g#3@7 a3@8, ~ [f#2,c#4,f#4]@15", V: "~ [b2,a3,b3,d4,f#4]@15", W: "~ [e2,g#3,b3,e4]@15",
  X: "[~ [f#2,f#3,a3,c#4,e4]@32 [a3,b3,f#4]@16 [g#3,e4]@15, ~@33 d4@31]/4", Y: "[~ g#4@14 a4@17, ~ [b3,c#4,e4]@31]/2",
  Z: "~ [c#3,a3,b3,c#4,e4]@15", AA: "~ [d3,a3,d4,e4,f#4]@15",
  AB: "[~ a3@8 ~ g#3@8 [f3,a3,c4,e4]@30, ~ [e2,d4,e4,f#4]@17 ~@30]/3", // Fmaj7 D
  AC: "[~ [g3,c4,d4,e4]@16 [f3,a3,c4,e4]@16 [g3,c4,d4,e4]@16 [f3,a3,c4,e4]@15]/8", // C Fmaj7 C Fmaj7
})).s("gm_synth_strings_1").gain(0.26)

// chords · synth strings 1 · soft notes
const synth_strings_1_soft = note("<A@8 ~ B@6 C@5 B@6 ~@36 D@7 ~@55 E@7>".pickRestart({
  A: "[c3,g3]/8", B: "[c3,g3]/6", C: "[c3,g3]/5", D: "[~ [c3,g3]@96 ~@15]/7",
  E: "[~@2 [g3,c4,d4,e4]@31 ~ [f3,a3,c4,e4]@32 [g3,c4,d4,e4]@31 ~@15]/7", // C Fmaj7 C
})).s("gm_synth_strings_1").gain(0.15)

// bass · fretless bass
const bass = note(`<
  ~@30 A B C D E F G H I@2 J K L M N O P Q I@2 J K L R S T U V W X Y Z ~@10 AA AB AC AD AE AF AG AH AI@2 AJ AK AL AM AN
  AO AP AQ AI@2 AE AK AR AS AT AU@5 AV@8 AW AX@3 AY@4 AZ@4 BA@2 ~@7
>`.pickRestart({
  A: "g1@12 g1@3 ~", B: "g1@15 ~", C: "a1@12 a1@3 ~", D: "a1@15 ~", E: "b1@12 b1@3 ~", F: "b1 g2", G: "d2",
  H: "d3@15 ~", I: "[c#2@6 c#3@5 c#2 c#2@4]/2", J: "b1@11 ~ b1@3 ~", K: "f#1@2 c#2 f#2", L: "b1@3 e1", M: "e1 e2",
  N: "f#1", O: "f#2", P: "b1", Q: "e2 d3", R: "e1@8 ~ e2@7", S: "~ f2@4 f1@8 f2@3", T: "~ f2@8 f1@7",
  U: "~ c2@11 ~ c2@3", V: "~ c3@15", W: "~ f2@12 f1@3", X: "~ f1@8 f2@4 f1@3", Y: "~ c2@15", Z: "~ g2@15",
  AA: "~ g1@12 g1@3", AB: "~ g1@15", AC: "~ a1@12 a1@3", AD: "~ a1@15", AE: "~ b1@12 b1@3", AF: "~ b1@8 g2@7",
  AG: "~ d2@15", AH: "~ d3@15", AI: "[~ c#2@12 c#3@10 c#2@2 c#2@7]/2", AJ: "~ b1@11 ~ b1@3", AK: "~ f#1@8 c#2@4 f#2@3",
  AL: "~ b1@12 e1@3", AM: "~ e1@8 e2@7", AN: "~ f#1@15", AO: "~ f#2@15", AP: "~ b1@15", AQ: "~ e2@8 d3@7",
  AR: "~ b1@12 c#2@3", AS: "~ c#2@8 c#3@7", AT: "~ d2@12 d2@3",
  AU: "[~ e1@17 f2@4 f1@8 f2@4 f2@8 f1@8 c2@11 ~ c2@4 c3@14]/5",
  AV: "[~ f2@6 f1@2 f1@4 f2@2 f1@2 c2@8 g2@8 f2@2 f1@4 f2@2 f2@4 f1@4 c2@6 c2@2 c3@7]/8", AW: "~ f2@6 f1",
  AX: "[~ f1@4 f2@2 f1@2 c2@8 g2@7]/3", AY: "[~ f2@2 f1@4 f2@2 f2@4 f1@4 c2@6 c2@2 c3@7]/4",
  AZ: "[~ f2@6 f1@2 f1@4 f2@2 f1@2 c2@8 g2@7]/4", BA: "[~ f2@2 f1@4 f2@2 f2@4 ~@3]/2",
})).s("gm_fretless_bass").gain(0.49)

// bass · fretless bass · soft notes
const bass_soft = note("<~@62 A@2 B C B C B C B C ~@51 D@3 E F@3 ~>".pickRestart({
  A: "[~ c2@31]/2", B: "~ c2@11 ~ c2@3", C: "~ c2@15", D: "[~@10 f1@8 c2@11 ~ c2@4 c3@14]/3", E: "~ f2@6 f1",
  F: "[~ f1@4 f2@2 f1@2 c2@8 g2@7]/3",
})).s("gm_fretless_bass").gain(0.24)

// chords · piano
const piano = note(`<
  ~@8 A B@4 C@6 D E@5 F@5 G@8 H@2 I@2 J K@3 L M N O I@2 J P Q@2 R@2 S@2 T@2 U@5 V@5 W@4 X@2 Y@2 Z@2 AA AB AC AD AE@2 AF
  AG AH AI AA AB AC AJ AK AL@7 AM@2 AN@6 AO@2 AP@6 AQ@2 AR@3 ~@6
>`.pickRestart({
  A: "~@3 g4, ~ g3@3, ~ c4", B: "[c4@20 ~@8 g4@3 ~ [a3,c4]@20 ~@8 g4@4, c2@15 ~, a3@18 ~@6 c4@7 ~@33]/4",
  C: "[[a3,c4]@19 ~@9 g4@3 ~ [a3,c4]@19 ~@9 g4@3 ~ [a3,c4]@19 ~@9 g4@3 ~, c2@5 ~, ~@24 c4@7 ~@25 c4@7 ~@25 c4@7 ~]/6", // Am
  D: "~@6 f4 g4 [a3,f4]@2 [g3,e4]@2 [a3,f4]@3 ~, [a3,c4] ~", // Dm C Dm Am
  E: "[~@12 g4@4 c4@20 ~@8 g4@3 ~ [a3,c4]@20 ~@8 g4@4, c2@39 ~, ~@8 c4@8 a3@18 ~@6 c4@7 ~@33]/5", // Am
  F: "[[a3,c4]@19 ~@9 g4@3 ~ [a3,c4]@7 ~ [g#3,d4,f4]@8 [g3,c4]@21 ~@3 d4 ~ d4@2 c4@4, c2, ~@24 c4@7 ~@41 g3@8, ~@73 e4@2 ~@5]/5", // Am Ddim C5
  G: "[[g3,a3]@14 ~@2 a3@7 ~ [g3,a3,b3,d4]@7 ~ f4@22 ~@4 c5@5 ~@25 g2@7 ~ c4@18 ~@2 c4@11 ~, g1@32 a1@31 d4@32 ~ a3@17 ~ a3@12 ~@2, [b3,d4]@23 ~@8 c4@21 ~@2 c4@9 b1@25 ~@7 [d2,e4,f4]@32 ~, ~@14 g3@9 ~@9 c5@24 f4@8 [g4,d5]@32 ~@32]/8", // Gsus2 G Bm Dm G5
  H: "[~ c#3@23 [a3,b3,e4]@8, [a3,b3,e4]@3 ~, ~ a4@22 ~@9]/2", // Asus2
  I: "[e4@8 g#3@7 ~@2 g#4@7 [f#4,a4]@7 ~, b3@15 b3@15 ~@2, ~@16 [f#2,c#4,e4]@15 ~]/2", J: "[b2,a3,b3,e4]",
  K: "[~@12 b4@3 ~@17 f#4@13 ~@3, g#3@5 ~@11, ~@4 b3@11 b3@27 ~@6, ~@2 e4@2 [c#4,e4]@7 ~]/3", L: "[a3,b3,d4,f#4]",
  M: "e4@8 d4@7 ~, [g#3,b3]@15 ~", N: "c#4@10 b3@5 ~, e4@15 ~, g#4@13 ~@3, b3@9 ~@7", O: "[b3,e4,a4]@7 ~ [a3,b3,e4]@8",
  P: "~@13 b4@3, g#3, ~ b3@3, ~@9 e4@7",
  Q: "[~ a3@8 ~@12 e4@10 ~, ~ f2@31, ~ c4@29 ~@2, ~ e4@12 a3@18 ~, ~ f3@5 ~@3 f3@22 ~]/2",
  R: "[~ g3@12 ~@8 c4@4 [g3,c4,d4,e4]@7, ~ c2@31, ~ e4@23 ~@8, ~ [c4,d4]@19 ~@12, ~@15 g3@9 ~@8]/2", // C Csus2
  S: "[~ [f3,a3]@12 ~@4 a3@12 ~@3, ~ [f2,c4,e4]@29 ~@2, ~@13 f3@16 ~@3]/2", // F Fmaj7
  T: "[~@3 e5@2 f5@2 e5@2 d5@6 ~@4 c5@2 d5@2 e5@2 ~@7, ~ c2@29 ~@2, ~ e4@21 ~@10, ~ d4@17 ~@3 d4@10 ~, ~ [g3,c4]@14 ~@2 c4@14 ~]/2", // C5
  U: "[~@13 g4@4 c4@20 ~@8 g4@3 ~ [a3,c4]@20 ~@8 g4@3, ~ c2@78 ~, ~@9 c4@8 a3@18 ~@6 c4@7 ~@32]/5", // Am
  V: "[~ [a3,c4]@19 ~@9 g4@3 ~ [a3,c4]@7 ~ [g#3,d4,f4]@8 [g3,c4]@21 ~@3 d4 ~ d4@2 c4@3, ~ c2@79, ~@25 c4@7 ~@41 g3@7, ~@37 e4 ~@2]/5", // Am Ddim C5
  W: "[~ [g3,a3]@14 ~@2 a3@7 ~ [g3,a3,b3,d4]@7 ~@27 c5@5, ~ g1@32 a1@31, ~ [b3,d4]@23 ~@8 c4@21 ~@2 c4@9, ~@15 g3@9 ~@9 f4@22 ~@2 f4@7, ~@17 c5@12 ~@3]/4", // Gsus2 G Bm
  X: "[~@25 g2@7, d4, b1@25 ~@7, ~ [g4,d5]@31]/2", Y: "[~ c4@18 ~@2 c4@11, [d2,e4,f4], ~ a3@17 ~ a3@12 ~]/2",
  Z: "[~@2 c#3@23 [a3,b3,e4]@7, ~ [a3,b3,e4]@24 ~@7, ~ a4@11 ~@4]/2", AA: "~ e4@8 g#3@7, ~ b3@15",
  AB: "~@2 g#4@7 [f#4,a4]@7, ~ [f#2,b3,c#4,e4]@15", AC: "~ [b2,a3,b3,e4]@15",
  AD: "~@13 b4@3, ~ g#3@15, ~@5 b3@11, ~@9 e4@7", AE: "[~@17 f#4@13 ~@2, b3@27 ~@5, ~ [c#4,e4]@28 ~@3]/2",
  AF: "~ [a3,b3,d4,f#4]@15", AG: "~ e4@8 d4@7, ~ [g#3,b3]@15", AH: "~ c#4@10 b3@5, ~ e4@15, ~ g#4@13 ~@2, ~ b3@9 ~@6",
  AI: "~ [b3,e4,a4]@7 ~ [a3,b3,e4]@7", AJ: "~ a3@10 ~@2 a3@3, ~ [c#3,b3,c#4,e4]@15",
  AK: "~ f#3@11 ~ f#3@3, ~ [d2,a3,d4,e4]@15", // Dsus2
  AL: "[~ a3@7 ~ g#3@7 ~@2 a3@8 ~@12 e4@10 ~@2 g3@12 ~@8 c4@4 [g3,c4,d4,e4]@7 ~ [f3,a3]@12 ~@4 a3@12 ~@2, ~ [e2,d4,e4,f#4]@17 f2@31 ~ c2@31 ~ [f2,c4,e4]@29 ~, ~@18 c4@29 ~@3 e4@23 ~@39, ~@18 e4@12 a3@18 ~@2 [c4,d4]@19 ~@43, ~@18 f3@5 ~@3 f3@22 ~@16 g3@9 ~@21 f3@16 ~@2]/7", // C F D Fmaj7 Csus2
  AM: "[~@2 e5 f5 e5 d5@3 ~@2 c5 d5 e5 ~@3, ~@2 c2@29 ~, ~@2 e4@21 ~@9, ~@2 d4@17 ~@3 d4@10, ~ [g3,c4]@7 ~ c4@7]/2", // C5
  AN: "[~@4 g5 ~ g5 ~ g5 ~@7 f5 ~ f5@2 e5@2 ~@2 e5 ~ e5@2 d5@5 ~@3 f5@2 ~ f5@2 ~ f5@2 ~ e5@2 ~@3 e5@2 ~@4 d5@2 [g3,c4,d4,e4]@7 ~@11 f5@2 g5@2 ~@8 e5@2 f5@2 g5@3 ~, ~@2 f2@31 ~ c2@31 ~ [f2,c4,e4]@29 ~, ~@2 c4@20 e4@10 ~@2 e4@23 ~ d5@2 ~@20 a5@9 ~@7, ~@2 e4@8 g5@4 a3@18 ~@2 [c4,d4]@19 d5 c4@4 ~@24 a3@12 ~@2, ~@2 [f3,a3]@8 f3@22 ~@2 g3@12 ~ e5 g3@9 ~@9 [f3,a3]@12 f3@16 ~@2]/6", // C Fmaj7 Csus2 F
  AO: "[~@6 e6 g6, b4@2 [g3,c4]@4 e5@3 g5@3 b5@9 d6@4 ~@7, ~@2 c2@29 ~, ~ e4@10 d4@5, ~ d4@8 c4@7]/2", // C5
  AP: "[~@2 a3@8 ~@18 g#4@2 b4@2 ~@4 e5@10 ~ d5 ~ c5 ~ b4 ~@6 [g3,c4,d4,e4]@7 ~@5 c5@2 d5@2 g4@2 a4@2 e5@2 f5@2 ~@4 g5@2 a5@4 b5@4, ~@2 f2@31 ~ c2@31 ~ [f2,c4,e4]@29 ~, ~@2 c4@20 e4@10 f5@2 g3@12 ~@2 g3@7 b4@7 ~@34, ~@2 e4@12 a3@18 ~@2 e4@23 ~@25 a3@12 ~@2, ~@2 f3@5 ~@3 f3@22 ~@2 [c4,d4]@19 c5 c4@4 ~@8 [f3,a3]@12 f3@16 ~@2]/6", // C Fmaj7 Csus2 F
  AQ: "[d6@2 [g3,b5]@11 ~@9 d4@10, ~@2 c2@29 ~, ~@2 e4@21 ~@9, ~ d4@8 c4@7, ~@2 c4@12 g3@17 ~]/2", // G
  AR: "[~ a3@4 ~@9 g#4 b4 f5@2 ~@6, ~@2 f2@31 ~@15, ~ c4@10 e4@5 ~@8, ~ e4@6 a3@9 ~@8, ~@2 f3@5 ~@3 f3@22 ~@16]/3",
})).s("gm_piano").gain(0.45).pan(0.4)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@10 A ~ B ~ C ~ C ~ C ~ D ~ A ~ B ~ C ~@21 E@2 ~@10 F@2 G ~ H ~ I ~ G ~@21 J@2 ~@12 K@2 ~@3 L ~@2 M@2 ~@10 N@4 O@2 ~
>`.pickRestart({
  A: "~@4 g3@9 ~@3", B: "~@2 c4 ~, ~ g3@2 ~", C: "~@4 g3@11 ~", D: "~ g3@3", E: "[~@13 c#4@10 ~@9]/2",
  F: "[~@13 b4@3, ~@13 g3@17 ~@2]/2", G: "~@5 g3@11", H: "~@5 g3@9 ~@2", I: "~@9 c4@4 ~@3, ~@5 g3@8 ~@3",
  J: "[~@7 c#4@5 ~@4]/2", K: "[~@13 b4@3, ~@14 g3@17 ~]/2", L: "~@13 c5@3", M: "[~@14 g3@17 ~]/2",
  N: "[~@4 e5@10 ~ d5 ~ c5 ~ b4 ~@6 [g3,c4,d4,e4]@7 ~@5 c5@2 d5@2 g4@2 a4@2 e5@2 f5@2 ~@4 g5@2 a5@4 b5@4, ~@2 c2@31 ~ [f2,c4,e4]@29 ~, ~@2 e4@21 b4@7 ~@34, ~@2 [c4,d4]@19 c5 c4@4 ~@24 a3@12 ~@2, ~@2 g3@12 ~@2 g3@9 ~@9 [f3,a3]@12 f3@16 ~@2]/4", // C Fmaj7 Csus2 F
  O: "[d6@2 [g3,b5]@11 ~@9 d4@10, ~@2 c2@29 ~, ~@2 e4@21 ~@9, ~ d4@8 c4@7, ~@2 c4@12 g3@17 ~]/2", // G
})).s("gm_piano").gain(0.19).pan(0.4)

// other · pad new age
const pad_new_age = note(`<
  ~@8 A@8 B ~@3 A@8 B ~ C@2 D@2 E@2 F@2 G@2 H@2 I@4 J@2 K@2 L@2 M N O@4 ~@4 P@8 Q ~ R@4 S@8 T@6 U@5 V W@4 X@2 ~@29
>`.pickRestart({
  A: "[~@8 c4@2 d4@2 e4@2 g4@6 f4@2 e4@6 d4@2 c4@9 ~ c4@2 d4@2 e4@2 g4@6 f4@2 e4@6 d4@2 e4@7 ~@3 c4@2 d4@2 e4@2 d4@6 c4 ~ c4@5 ~ c4 ~ c4@7 ~@3 c4@2 d4@2 e4@2 g4@6 f4@2 e4@6 d4@2 e4@2]/8",
  B: "~@2 d4@2 c4@11 ~", C: "[~@2 g4 ~ g4@2 e4 ~ g4@4 e4@2 g4@4 e4@2 g4@4 ~@4 a4 ~ b4@2]/2",
  D: "[c5@4 f4 ~ f4@4 g4 ~ g4@10 ~@10]/2", E: "[~@2 e4@2 g4 ~ e4@2 g4@4 e4@2 g4@4 e4@2 g4@6 g4@2 a4@2 b4@2]/2",
  F: "[c5@4 b4@2 a4@4 g4@3 a4@11 ~@4 g4@2 f4@2]/2", G: "[e4@3 ~ e4 ~ e4@4 a4@3 ~ a4@11 ~@3 g#4@2 f#4@2]/2",
  H: "[e4@3 ~ e4@2 e4@4 c#5@4 c#5@13 ~ g#4@2 f#4@2]/2",
  I: "[e4@3 ~ e4 ~ e4@4 b4@3 ~ b4@5 ~@3 e4 ~ e4@4 d4@2 c#4@5 ~ c#4 ~ c#4@4 a4@3 ~ a4@10 ~@4 b4@2 c#5@2]/4",
  J: "[d5@4 c#5@2 b4@4 a4@4 b4@7 ~@3 g#5@4 f#5@4]/2", K: "[e5@3 ~ e5 ~ e5@4 a5@4 a5@11 ~@3 g#5@2 f#5@2]/2",
  L: "[e5@3 ~ e5 ~ e5@4 c#6@3 ~ c#6@11 ~@3 b5@2 c#6@2]/2", M: "d6@4 c#6@4 b5@4 a5@3 ~", N: "d6@4 c#6@5 b5@4 ~ a5@2",
  O: "[~ b5@4 ~ a5@25 a5@2 g5@5 ~ f5 e5 d5@6 c5@2 c5@8 ~@7]/4",
  P: "[~@9 c4@2 d4@2 e4@2 g4@6 f4@2 e4@6 d4@2 c4@9 ~ c4@2 d4@2 e4@2 g4@6 f4@2 e4@6 d4@2 e4@7 ~@3 c4@2 d4@2 e4@2 d4@6 c4 ~ c4@5 ~ c4 ~ c4@7 ~@3 c4@2 d4@2 e4@2 g4@6 f4@2 e4@6 d4@2 e4]/8",
  Q: "~@3 d4@2 c4@11", R: "[~@3 g4 ~ g4@2 e4 ~ g4@4 e4@2 g4@4 e4@2 g4@4 ~@4 a4 ~ b4@2 c5@4 f4 ~ f4@4 g4 ~ g4@10 ~@9]/4",
  S: "[~@3 e4@2 g4 ~ e4@2 g4@4 e4@2 g4@4 e4@2 g4@5 ~ g4@2 a4@2 b4@2 c5@4 b4@2 a4@4 g4@3 a4@11 ~@4 g4@2 f4@2 e4@3 ~ e4 ~ e4@4 a4@3 ~ a4@11 ~@3 g#4@2 f#4@2 e4@3 ~ e4@2 e4@4 c#5@3 ~ c#5@13 ~ g#4@2 f#4]/8",
  T: "[~ e4@3 ~ e4 ~ e4@4 b4@3 ~ b4@5 ~@3 e4 ~ e4@4 d4@2 c#4@5 ~ c#4 ~ c#4@4 a4@3 ~ a4@10 ~@4 b4@2 c#5@2 d5@4 c#5@2 b4@4 a4@4 b4@7 ~@3 g#5@4 f#5@3]/6",
  U: "[~ e5@3 ~ e5 ~ e5@4 a5@3 ~ a5@11 ~@3 g#5@2 f#5@2 e5@3 ~ e5 ~ e5@4 c#6@3 ~ c#6@11 ~@3 b5@2 c#6@2 d6@4 c#6@4 b5@4 a5@3]/5",
  V: "~ d6@4 c#6@4 b5@4 a5@3", W: "[~ d6@3 c#6@3 ~ a5@10 ~ e5@2 ~ d6@2 c#6@3 b5@3 a5@4 b5@4 a5@25 ~]/4",
  X: "[a5@2 g5@5 ~ f5 e5 d5@5 c5@2 ~ c5@8 ~@6]/2",
})).s("gm_pad_new_age").gain(0.33)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@30 A@2 B@2 C@2 D@2 ~@10 E@2 F G H I J@2 K@6 ~@10 L@8 ~@10 M@3 N O P Q@4 R@16 S@8 ~@7
>`.pickRestart({
  A: "[g3,d4]/2", B: "[~ c5, [f3,c4]]/2", C: "[~ d5, [g3,d4]]/2", D: "[c5 a4, [d4,f4]]/2", E: "[g#4@15 a4@17, e4]/2",
  F: "[f#4,a4] [e4,g#4]", G: "g#4 a4, e4", H: "[d4,a4]", I: "d5 c#5 b4@2, e4", J: "[~ [c4,f4,c5]@31]/2",
  K: "[~ [c4,g4]@32 [c4,f4]@32 [c4,g4]@31]/6", // C5 F5 C5
  L: "[~ [g3,d4]@32 ~@16 c5@16 ~@16 d5@16 c5@16 a4@15, ~@33 [f3,c4]@32 [g3,d4]@32 [d4,f4]@31]/8", // G5 F5 G5 Dm
  M: "[~ g#4@15 a4@17 [f#4,a4]@8 [e4,g#4]@7, ~ e4@32 ~@15]/3", N: "~ g#4@8 a4@7, ~ e4@15", O: "~ [f#4,b4]@15",
  P: "~ [a4,e5]@15", Q: "[~ f#5@24 e5@9 [f4,c5]@30, ~ d5@33 ~@30]/4",
  R: "[~ [c4,g4]@16 [c4,f4]@16 [c4,g4]@16 [f4,c5]@15]/8", S: "[~ [c4,g4]@16 [c4,f4]@16 [c4,g4]@16 [c4,f4,c5]@15]/8",
})).s("gm_string_ensemble_1").gain(0.29).pan(0.6)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@124 A@7>".pickRestart({
  A: "[~@2 [c4,g4]@32 [c4,f4]@32 [c4,g4]@31 ~@15]/7", // C5 F5 C5
})).s("gm_string_ensemble_1").gain(0.12).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@37 A@3 ~@3 B@2 ~@35 C@2 ~@4 D ~@44>".pickRestart({
  A: "[~@17 a4@18 ~@13, ~@5 a3@7 ~@4, ~@5 b3@5 ~@6, ~@16 e4@15 ~@17]/3",
  B: "[~@17 e4@13 ~@2, ~@15 [a3,b3]@10 ~@7, ~@4 c#4@3 ~]/2", C: "[~ a4@9 ~@6, a3@21 ~@11, b3@15 ~@17, ~ e4@15 ~@16]/2",
  D: "~@2 e4@13 ~, [a3,b3]@5 ~@3, ~ c#4@12 ~@3", // Asus2
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.7)

// other · ocarina
const ocarina = note(`<
  ~@4 A B C D@2 A B C D A B C D A B E A B C D A B C D A B ~@24 F@8 G@8 H@3 ~@25 I J K L M J K L M J K L M J K L M J K L
  M J K L M J N ~@6
>`.pickRestart({
  A: "d4 ~ e4@2 d4@2 e4@2 g4@2 ~ g4 g4@2 e4@2", B: "d4@2 e4 ~ g4@2 ~ g4!2 ~ e4@2 d4@2 e4@2",
  C: "d4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4 g4@2 e4@2", D: "d4@2 e4@2 g4@2 ~ g4!2 ~@7",
  E: "g4@2 ~ g4 g4@2 e4@2 d4@2 e4@2 d4@2 e4 ~",
  F: "[~ d4 ~ e4@2 d4@2 e4@2 g4@2 ~ g4 g4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4!2 ~ e4@2 d4@2 e4@2 d4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4 g4@2 e4@2 d4@2 e4@2 g4@2 ~ g4!2 ~ e4@2 d4@2 e4@2 d4 ~ e4@2 d4@2 e4@2 g4@2 ~ g4 g4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4!2 ~ e4@2 d4@2 e4@2 d4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4 g4@2 e4@2 d4@2 e4@2 g4@2 ~ g4!2 ~ e4@2 d4@2 e4]/8",
  G: "[~ d4 ~ e4@2 d4@2 e4@2 g4@2 ~ g4 g4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4!2 ~ e4@2 d4@2 e4@2 d4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4 g4@2 e4@2 d4@2 e4@2 g4@2 ~ g4!2 ~@6]/4",
  H: "[~ d4 ~ e4@2 d4@2 e4@2 g4@2 ~ g4 g4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4!2 ~ e4@2 d4@2 e4@2 ~@15]/3",
  I: "~@2 d4 ~ e4@2 d4@2 e4@2 g4@2 ~ g4 g4@2", J: "e4@2 d4@2 e4 ~ g4@2 ~ g4!2 ~ e4@2 d4@2",
  K: "e4@2 d4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4 g4@2", L: "e4@2 d4@2 e4@2 g4@2 ~ g4!2 ~ e4@2 d4@2",
  M: "e4@2 d4 ~ e4@2 d4@2 e4@2 g4@2 ~ g4 g4@2", N: "e4 d4 ~@6",
})).s("gm_ocarina").gain(0.2).pan(0.2)

// other · ocarina · soft notes
const ocarina_soft = note(`<
  ~@124
  [~@4 e4@2 d4@2 e4 ~ g4@2 ~ g4 g4@2]
  [e4@2 d4@2 e4@2 g4@2 ~ g4!2 ~ e4@2 d4@2]
  [e4@2 d4 ~ e4@2 d4@2 e4@2 g4@2 ~ g4 g4@2]
  [e4@2 d4@2 e4 ~ g4@2 ~ g4!2 ~ e4@2 d4@2]
  [e4@2 d4@2 e4@2 d4@2 e4 ~ g4@2 ~ g4 g4@2]
  [e4@2 d4@2 e4@2 g4@2 ~ g4!2 ~ e4@2 d4@2]
  [e4 ~@7]
>`).s("gm_ocarina").gain(0.08).pan(0.2)

// other · pad halo
const pad_halo = note("<~@20 A@8 ~@34 B@8 ~@61>".pickRestart({
  A: "g4/8", B: "[~ g4@127]/8",
})).s("gm_pad_halo").gain(0.25).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B A C A B@2 A B A C A B A B A C B A B A C A B A B A C A B A C A B A B A B A C A B A B A B A B A C A B D E D E D
  E D F D E D F D E D E D F D E D F D E D E D E D F D E D E D E D E D F D E D E G H G H G H G H I H G H G H G H I H G H
  G H G H I H G H G H G H B
>`.pickRestart({
  A: "x ~@2 x", B: "x", C: "x ~@6 x", D: "~ x ~@11 x ~@2", E: "~ x ~@14", F: "~ x ~@13 x", G: "~ x ~@5 x", H: "~ x ~@6",
  I: "x!2 ~@5 x",
})).gain(0.69)

// … 80 more lines

More by Giorgia