Strudelify
Come saprei cover art

Come saprei

Giorgia

KeyE majorTempo70 bpm
0:00/0:00
// Come saprei — Giorgia
// 70 bpm, 4/4, key E 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 85 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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 · electric bass finger · "Bass"
const bass = note(`<
  ~@16 A B C D E F G H I J K L M N O P Q R S T U V W X@2 Y Z AA AB AC AD AE AF AG@2 AH@3 AI AJ@2 AK AL AM AN AO AP AQ AR
  AS AT AU AV AW AX AY AZ BA BB BC BD BE@2 BF BG BH@4
>`.pickRestart({
  A: "~@30 e4 ~@2 b3 ~@2 b1@12", B: "e1@3 d#1", C: "c#1", D: "f#1@17 ~ f#1@6", E: "b1@29 ~ f#2@3 b2@3 a2@12",
  F: "g#2@31 ~@5 d#2@12", G: "c#2@13 ~ d2 d#2", H: "e2@22 ~@2 e1@6 f#1@6 g#1@11 ~", I: "a1@14 e2 a2", J: "d#2 ~",
  K: "~@3 g#1 ~@2 c#2@3 d#2@3 e2@3 g#2@3 e3@3 a3@9 e3@6 f#3@12", L: "g#1 c#2", M: "f#1 b1", N: "e1@43 ~@5",
  O: "a1@41 ~ a1@3 b1@3", P: "c#2@34 ~@2 c#2@3 d#2@3 e2@6", Q: "b1@12 f#2@11 ~ e1@12 e2@11 ~",
  R: "a1@15 ~@3 a1@2 ~@4 a1@10 ~@2 a1@12", S: "f#1@5 ~ f#1 ~ f#1@4 c#2@2 f#1@2",
  T: "b1@13 ~@2 b1 ~@2 b1@3 ~@3 b1@9 f#2@3 b2@12", U: "e2@13 ~@2 e2@3 b1@6 e1@7 ~@2 e1 ~@2 e2@11 ~",
  V: "a1@15 ~@3 a1@2 ~@4 a1@16 ~@2 a1@6", W: "f#1@15 ~@3 f#1@2 ~@4 f#1@11 ~ f#2@12",
  X: "[~@3 e1@3 f#1@2 ~ e1 ~@2 d2@3 a1@3 b1@2 ~@4 e2@12 ~@3 e2 ~@2 b1@27 ~@3 a1@6 b1@6 c#2@6 a1@6]/2",
  Y: "d2@16 ~@2 d2@2 ~@4 d2@19 ~@2 a1@3", Z: "g#1@13 ~@2 g#1@3 d2@3 b1@3 c#2@10 ~@2 c#2@11 ~",
  AA: "f#1@3 c#2@3 f#2@3 g#2@3 a2@3 c#3@3 f#3@3 a3@3 c4@6 a3@6 b3@9 e3 d3 ~", AB: "c#3 f#2", AC: "b1", AD: "e2 e3",
  AE: "a1", AF: "~@3 a2 ~@44", AG: "d2/2", AH: "[f#3@23 ~ f#2@48 d1@51 ~@21]/3", AI: "~@18 e2@5 ~ f#2@24",
  AJ: "[~@30 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 b1@15 ~@3 b1@2 ~@4, f#1@3 ~]/2",
  AK: "b1@10 ~@2 b1@12 g#1@15 g#2 ~@2 g#1@3 ~@3", AL: "g#1@4 d#2@2 g#1@2 c#2@6 c#1 ~",
  AM: "c#1@24 f#1@15 c#2@5 ~ f#2@3", AN: "e2@17 ~ e2@6 d#2@15 ~@3 d#2@2 ~@4",
  AO: "d#2@16 ~@2 d#2@6 g#1@15 ~@3 g#1@2 ~@4", AP: "g#1@11 ~ g#2@12 f#1@3 c#2@3 f#2@12 c#2@3 f#1@3",
  AQ: "b1@3 c#1@3 d#1@6 e1@8 ~ e1 ~@2", AR: "e1@4 e2@4 a#1@5 ~ a#1@2",
  AS: "d#2@10 ~@2 d#2@11 ~ g#1@9 d#2@3 g#2@6 f#2@6", AT: "e2@11 ~ a1@12 d#2@15 ~@3 d#2@3 ~@3",
  AU: "g#1@15 d#2@3 g#1@6 c#2@9 c#1@2 ~@7 g#2@6", AV: "f#2@12 f#1@11 ~ b1@16 ~@2 b1@3 ~@3",
  AW: "b1@16 ~@2 b1@5 ~ g#1@15 d#2@3 g#2@3 g#1 ~@2", AX: "g#1@10 ~@2 g#1@11 ~ c#2@9 g#2@3 c#3@6 g#2@6",
  AY: "c#2@4 g#2@2 c#2@2 f#1@7 ~", AZ: "b1@6 c#2@3 b1 ~@2 d#2@6 b1@6 e1@16 ~@2 e1@2 ~@4",
  BA: "e1@15 b1@3 e2@6 a#1@17 ~ e2@6", BB: "d#2@13 ~@2 d#2 ~@2 g1@5 ~ g#1@15 a#1@2 ~ b1@3 c#2@3",
  BC: "e2@12 a1@12 d#2@16 ~@2 d#2@3 ~@3", BD: "g#1@16 ~@2 d#2@3 g#1@2 ~ c#2@18 g#2@6",
  BE: "[c#3@22 ~@2 f#2@47 ~ b1@3 ~@6 b1@3 ~@6 b1@3 ~@3]/2", BF: "~@2 b1@2 ~@2 b1 ~ g#1 ~@2 g#1 ~@2 g#1 ~",
  BG: "~ g#1 f#1 e1 g#1@2 f#1@2 e1 ~@2 e1 ~@2 e1 ~", BH: "[~ e1 ~@2 e1@2 ~@2 f#1 ~@2 f#1 ~@2 f#1@10 b0@32 ~@8]/4",
})).s("gm_electric_bass_finger").gain(0.43)

// bass · electric bass finger · "Bass" · soft notes
const bass_soft = note("<~@21 A B ~@25 C ~@4 D E F ~@29>".pickRestart({
  A: "~@33 e2 ~@14", B: "~@39 g#2 ~@8", C: "~ a1@7",
  D: "~ d2 e2 d2 e2 d2 e2 d2 ~ e2 d2 e2 d2 e2 d2 e2 d2 ~ e2 d2 e2 d2 e2 d2 e2 d2 ~ e2 d2 e2 d2 e2 d2 e2 d2 ~ e2 d2 e2 d2 e2 d2 e2 d2 ~ e2 d2 e2",
  E: "d2 e2 d2 e2 d2 ~ e2 d2 e2 d2 e2 d2 e2 d2 ~ e2 d2 e2 ~@30", F: "~@8 f#2!2 ~@6",
})).s("gm_electric_bass_finger").gain(0.16)

// chords · string ensemble 2 · "Slow str"
const string_ensemble_2 = note("<A@5 ~@12 B@3 C@3 D@3 E@4 ~@48 F@7>".pickRestart({
  A: "[d#6@5 b5@6 g#5@30 e6@6 d#6@6 b5@6 g#5@30 e5@3 f#5@3 g#5@6 e5@6 c#5@36 c#5@24 c5@24 [g#4,b4]@27 ~@22, ~@143 e4@75 ~@22, ~@143 a4@48 ~@49]/5", // G#m
  B: "[~@35 b5@6 e6@6 d#6@18 e6@78 e6]/3", C: "[~@23 d#6@12 c6@12 b5@96 ~]/3",
  D: "[~@23 g#5@6 a5@6 ~@30 a5@54 ~@25, ~@35 b5@30 ~@79, ~@47 [e5,c#6]@78 ~@19]/3", // C#m
  E: "[~@11 g#6@12 g6@12 ~@36 e6@48 [a5,c6]@24 [g#5,b5]@48 ~, ~@11 e6@36 b5@72 ~@73, ~@35 f#6@36 ~@121]/4", // Am G#m
  F: "[~@24 [d#6,b6]@47 [c#6,a#6]@24 [d#6,b6]@24 e6@48 ~@48 d#6@96 ~@25, ~@17 b6@30 ~, ~@119 c#7@96 ~@121, ~@167 f#6@159 ~@10]/7", // G#m F# G#m
})).s("gm_string_ensemble_2").gain(0.08)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@32 A@8 B@4 C@5 D@7 E@7 F@3 G@6 H@7 ~@6>".pickRestart({
  A: "[~@47 [a4,c#5]@48 g#5@24 a5@24 [d5,f#5]@48 [b4,e5]@48 [a4,c#5]@48 [g#5,b5]@24 a5@73, ~@95 e5@48 ~@144 e5@97]/8", // A D E5 A G#m
  B: "[~@23 [c#4,c#5]@6 [d4,d5]@6 [e4,e5]@6 [c#5,c#6]@6 [a4,a5]@48 [f#4,d5,d6]@24 [c#5,c#6]@18 [b4,b5]@6 [e4,a4,a5]@24 [c5,c6]@12 [b4,b5]@12 [b4,b5], ~@119 f4@24 ~@49]/4", // C# D E C# A D C# B …
  C: "[~@17 [e5,e6]@6 [a4,a5]@213 ~@4]/5", // E A
  D: "[~@2 d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 g#3 ~@2 d3 ~@2 g#3 ~@2 d3 ~@2 g#3 ~@2 d3 ~@2 a3@2 ~ d3 ~@2 a3 ~@2 d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 g#3@2 ~ d3 ~@2 g#3@2 ~ d3 ~@2 g#3@2 ~ d3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ d3@2 ~ f#3@2 ~ d3 ~@2 f#3 ~@2 d3 ~@2 f#3 ~@2 d3 ~@2 f#3@2 ~ c#3@2 ~ f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3 ~@2 c#3 ~@5 d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 g#3 ~@2 d3 ~@2 g#3 ~@2 d3 ~@2 g#3 ~@2 d3 ~@2 a3@2 ~ d3 ~@2 a3 ~@2 d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 a3@2 ~ d3 ~@2 g#3@2 ~ d3 ~@2 g#3@2 ~ d3 ~@2 g#3@2 ~ d3 ~@5 c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3 ~@2 c#3 ~@2 f#3 ~@2 c#3 ~@2 f#3 ~@2 c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3 ~@2 c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3]/7",
  E: "[~@2 c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 f#3@2 ~ c#3 ~@2 [d#5,d#6]@48 [a#4,a#5]@24 [b4,b5]@24 [e5,e6]@48 [g#4,g#5]@12 [b4,b5]@12 [a#4,a#5]@12 [c#5,c#6]@12 [f#5,f#6]@42 [d#5,d#6]@6 [a#4,a#5]@24 [b4,b5]@48 [b3,b4]]/7", // D# A# B E G# B A# C# …
  F: "[~@2 [c#4,c#5]@3 [d#4,d#5]@3 [e4,e5]@3 [f#4,f#5]@3 [g#4,g#5]@3 [a4,a5]@3 [d#5,d#6]@3 [b4,b5]@48 [g#4,g#5]@12 [e5,e6]@12 [d#5,d#6]@12 [c#5,c#6]@12 [b4,b5]@24 [d5,d6]]/3", // C# D# E F# G# A D# B …
  G: "[~@11 [c#5,c#6]@30 [f#5,f#6]@6 [b4,b5]@72 ~ b4@47 ~ a#4@23 ~ b4@95 d#5, ~@119 b5@48 a#5@24 b5@96 ~]/6", // C# F# B
  H: "[d#4@5 ~ e4@5 ~ f#4@2 ~ g#4@2 ~ a4@2 ~ e4@2 ~ g#4@71 ~ g4@23 ~ f#4@23 ~ d5@11 ~ c#5@11 ~ c#5@17 ~ f#5@5 ~ b4@120 ~@24, ~@5 e5@6 f#5@3 g#5@3 a5@3 d#5@3 [g#5,g#6]@72 [g5,g6]@24 [f#5,f#6]@24 d6@12 c#6@12 c#6@18 f#6@6 b5@120 ~@25]/7", // G# G F#
})).s("gm_string_ensemble_1").gain(0.25)

// chords · epiano2 · "El.piano"
const epiano2 = note(`<
  A B C D ~ E@2 F@2 G H@2 I J@2 K@2 L M@2 N@2 O P Q J@2 K@2 R ~@17 S@2 ~@29 T@2 U@2 ~@3
>`.pickRestart({
  A: "[f#4,d#5] [d#4,b4] g#4@5 e5, [e1,e2], ~ b3@3", B: "[f#4,d#5] [d#4,b4] [b3,g#4]@6, [c#2,c#3]",
  C: "[f#1,f#2,a3,c#4,e4,g#4]", D: "[a3,c#4]@4 ~@3 a3, [b1,b2,e4], ~ [f#3,c4]",
  E: "[~@3 b3@4 ~ [f#2,e4]@8, [c#2,c#3]@45 ~ f#3@41 ~@9, ~@47 a3@47 ~@2]/2", // F#7 C#
  F: "[[b1,a3]@24 [a1,c4]@25 ~@47, ~@24 f#3@71 ~]/2", G: "~@18 [g#3,e4]@29 ~, [c#2,c#3]@47 ~, [f#3,d#4]@3 ~@5, ~ g#2@3",
  H: "[[b2,a3]@48 ~@20 d4 ~ a3@2 [e2,g#3,b3]@6 [f#2,a3,c#4]@6 [g#2,b3,d4]@12, d4@68 ~ b3@2 ~@25]/2", // B7 E F#m G#dim
  I: "[a2,e4], b3@3 ~@5", // A5
  J: "[[f#2,f#3,c#4]@8 [g#2,c4,d#4]@8 [c#2,b3,e4]@8 [a2,c4]@3 ~ [d2,d4,f#4]@4, a3 ~@23 g#3@48 a3@22 ~@2, ~@72 e4 ~@23]/2", // F#5 G# C#m7 Am D
  K: "[f#4@18 e4@3 d#4@3 c#2@24 [f#2,a3]@23 ~ c4@24, b3@47 ~@49, g#1 e4@2 ~]/2", L: "~@6 b4 e5, [e2,e3,b3]@47 ~",
  M: "[d#5@18 [b3,e5]@25 ~@5 [f#2,e4]@48, [c#2,c#3]@45 ~ e5@46 ~@4, ~@46 f#3@41 ~@9, ~@47 [a3,b4]@47 ~@2, ~@12 a4@11 ~]/2", // E5 F#7 C# Asus2
  N: "[a4@12 e5@12 d#5@12 c5@12 b4@47 ~, [b1,a3]@24 f#3@71 ~, ~@24 [a1,c4]@25 ~@47]/2", // B7 Am
  O: "~@6 [g#3,e4]@8 [d3,g3] [d#3,g#3], [c#2,c#3]@7 ~, [f#3,d#4]@3 ~@5, ~@2 g#2@5 ~", // C#m G5 G#5 C# D#m
  P: "d4@20 d4 ~ a3 ~ [e2,g#3,b3]@6 [f#2,a3,c#4]@6 [g#2,b3,d4]@12, [b2,a3]@21 b3@2 ~@25", Q: "b3@3 a3@5, [a2,e4]",
  R: "[e2,e3,b3]@47 ~", S: "[[e3,a3,b3,e4]@25 ~@7]/2",
  T: "[~ f#4@2 ~, ~@7 f#5@17 ~@8, ~@11 d#5@25 ~@12, ~@23 c#5@49 ~@24]/2",
  U: "[~ [f#3,b3,c#4,f#4]@2 ~, ~@21 f#5@2 b4@4 ~@69, ~@22 c#5@3 ~@71]/2", // F#sus4
})).s("gm_epiano2").gain(0.25)

// chords · epiano2 · "El.piano" · soft notes
const epiano2_soft = note("<~@4 A B ~@2 C ~@2 D E ~ F ~ G ~ B ~@2 C ~@4 F ~ G ~@56>".pickRestart({
  A: "[e2,f#3]@3 e3@5, ~@3 e2@2 ~@3", B: "~@3 [e3,g#3]@4 ~", C: "~@7 e3, [g#1,b3]@23 ~", D: "[e2,g#3] ~", E: "~@3 a3@5",
  F: "~@11 g#2 ~@5 d#2 ~@6", G: "~ [a2,f#3]",
})).s("gm_epiano2").gain(0.15)

// chords · electric guitar clean · "Clean gt"
const electric_guitar_clean = note(`<
  ~@30 A B C D@8 E@3 F@4 ~@8 G H I@3 H J K L M N O@2 H I@2 K L M N P@5 Q@4
>`.pickRestart({
  A: "[e3,a3,c#4]@14 [e3,a3,c#4] [f#3,b3,d#4]", B: "[g#3,c#4,e4]@12 c#4 d4 e4@2", C: "[a3,d4,f#4] [g#3,b3,e4]",
  D: "[~@12 [e3,a3,b3,e4]@8 ~ [a3,b3,e4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,e4]@23 ~ [e3,g#3,b3,e4]@8 ~ [g#3,b3,e4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,e4]@23 ~ [e3,a3,b3,e4]@8 ~ [a3,b3,e4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,e4]@23 ~ [e3,a3,b3,e4]@8 ~ [a3,b3,e4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,e4]@23 ~ [e3,a3,b3,e4]@8 ~ [a3,b3,e4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,e4]@23 ~ [e3,g#3,b3,e4]@8 ~ [g#3,b3,e4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,e4]@23 ~ [e3,a3,b3,d4]@8 ~ [a3,b3,d4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,d4]@23 ~ [e3,a3,b3,e4]@8 ~ [a3,b3,e4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,e4]@12]/8", // Esus4 Asus2 Esus4 E Esus4 Asus2 Esus4 Asus2 …
  E: "[~@12 [d3,a3,e4,f#4]@8 ~ [a3,e4,f#4] ~@8 [d3,a3,e4] ~@5 [d3,a3,e4,f#4]@23 ~ [f#3,b3,d4,f#4]@8 ~ [b3,d4,f#4] ~@8 [g#3,b3,c#4] ~@5 [g#3,b3,c#4,f4]@23 ~ [e3,a3,b3,e4]@12 [a3,b3,d4,f4]@12 [g3,b3,d4,f4]@12]/3", // D F#m7 Dsus2 D Bm C#7 Esus4 Bm7b5 …
  F: "[~@12 [e3,b3,c#4,e4]@8 ~ [b3,c#4,e4] ~@8 [e3,a3,b3] ~@5 [e3,a3,b3,e4]@11 ~@2 d4@46 ~@2 e4@95, ~@47 e3@48 e3@96 ~, ~@48 [a3,b3]@47 ~ [a3,b3]@96]/4", // C#m7 Esus4 Asus2
  G: "~@36 [f#3,b3,c#4,f#4]@8 ~ [b3,c#4,f#4] ~@2", // F#sus4 Bsus2
  H: "~@6 [f#3,b3,c#4] ~@5 [f#3,b3,c#4,f#4]@23 ~ [f#3,a#3,c#4,f#4]@8 ~ [a#3,c#4,f#4] ~@2", // F#sus4 F#
  I: "~@6 [f#3,b3,c#4] ~@5 [f#3,b3,c#4,f#4]@23 ~ [f#3,b3,c#4,f#4]@8 ~ [b3,c#4,f#4] ~@2", // F#sus4 Bsus2
  J: "~@6 [f#3,b3,c#4] ~@5 [f#3,b3,c#4,f#4]@23 ~ [f#3,b3,c#4,e4]@8 ~ [b3,c#4,e4] ~@2", // F#sus4 C#m7
  K: "~@6 [f#3,b3,c#4] ~@5 [f#3,b3,c#4,f#4]@23 ~ [e3,b3,f#4,g#4]@8 ~ [b3,f#4,g#4] ~@2", // F#sus4 E G#m7
  L: "~@6 [e3,b3,f#4] ~@5 [e3,b3,f#4,g#4]@23 ~ [g#3,c#4,e4,g#4]@8 ~ [c#4,e4,g#4] ~@2", // Esus2 E C#m
  M: "~@6 [a#3,c#4,d#4] ~@5 [a#3,c#4,d#4,g4]@23 ~ [f#3,b3,c#4,f#4]@12", // D#7 F#sus4
  N: "[b3,c#4,e4,g4]@12 [a3,c#4,e4,g4]@12 ~@12 [f#3,c#4,d#4,f#4]@8 ~ [c#4,d#4,f#4] ~@2", // C#m7b5 A7 D#m7
  O: "[~@6 [f#3,b3,c#4] ~@5 [f#3,b3,c#4,f#4]@11 ~@2 e4@22 ~@2 f#4@34 ~ [f#3,b3,c#4,f#4]@8 ~ [b3,c#4,f#4] ~@2, ~@23 f#3@24 f#3@36 ~@13, ~@24 [b3,c#4]@24 [b3,c#4]@35 ~@13]/2", // F#sus4 Bsus2
  P: "[~@6 [f#3,b3,c#4] ~@5 [f#3,b3,c#4,f#4]@11 ~@2 e4@46 ~@2 f#4@47 ~@9 [b3,f#4]@9 [f#3,b3,c#4]@30 c#4@9 [f#3,b3]@9 [f#3,b3,c#4]@30 ~@9 [f#3,b3,f#4]@9 [f#3,b3,c#4]@6, ~@23 f#3@48 f#3@49 ~@6 f#3@9 ~@81 c#4@18 ~@6, ~@24 [b3,c#4]@47 ~ [b3,c#4]@48 c#4@10 ~@47 f#4@40 ~@23]/5", // F#sus4 B5 F#sus4 B5 F#sus4 B5 F#sus4 Bsus2
  Q: "[~@9 c#4@15 ~@6 f#3@3 [f#3,b3,f#4]@9 [f#3,b3,c#4]@28 ~@2 f#4@96 ~@24, ~@12 c#4@9 ~@14 b3@48 ~@13, ~@71 c#4@96 ~@25]/4", // B5 F#sus4
})).s("gm_electric_guitar_clean").gain(0.1).pan(0.7)

// chords · electric guitar clean · "Clean gt" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@33 A@6 B A C D ~ A ~@11 E F@6 G H I E J E F@3 G H I E J ~ K L@2 M N@3
>`.pickRestart({
  A: "~@21 e3 ~@5 e3 ~@2 e4 ~@17", B: "~@21 e3 ~@5 e3 ~@2 d4 ~@17", C: "~@21 d3 ~@5 d3 ~@2 f#4 ~@17",
  D: "~@21 f#3 ~@5 f#4 ~@2 f4 ~@17", E: "~@45 f#3 ~@2", F: "~@3 f#3 ~@2 f#4 ~@38 f#3 ~@2",
  G: "~@3 f#3 ~@2 f#4 ~@38 e3 ~@2", H: "~@3 e3 ~@2 g#4 ~@38 g#3 ~@2", I: "~@3 g#4 ~@2 g4 ~@41",
  J: "~@3 f#3 ~@2 f#4 ~@41", K: "~@9 b3@2 ~@2 f#3 ~@2", L: "~@10 f#3 ~@2 f#3 ~@2, ~@9 b3@2 ~@5",
  M: "~@2 b3@3 ~@2 b3 ~ b3@2 ~@2 f#3 ~@2, ~ f#3@4 b3@2 ~@9, ~@3 f#3 ~@4", N: "[~@7 f#3@32 ~@9]/3",
})).s("gm_electric_guitar_clean").gain(0.05).pan(0.7)

// chords · electric guitar muted · "Muted gt"
const electric_guitar_muted = note("<~@45 A B ~@2 C@5 D ~@23 E@4 ~@3>".pickRestart({
  A: "~@6 [b2,d3] ~@5 [b2,d3] ~@8 [b2,d3] ~@5 a2 ~@2 [b2,d3] ~@5 [b2,d3] ~@11", // Bm
  B: "~@6 [b2,e3] ~@5 [b2,e3] ~@8 [b2,e3] ~@5 b2 ~@2 [b2,e3] ~@5 [b2,e3] ~@11", // E5
  C: "a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2",
  D: "a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@26",
  E: "~@24 [b3,f#4] ~@8 [b3,f#4] ~@8 [b3,f#4] ~@2 [b3,f#4] ~@2", // B5
})).s("gm_electric_guitar_muted").gain(0.09).pan(1)

// chords · electric guitar muted · "Muted gt" · soft notes · B5
const electric_guitar_muted_2 = note(`<
  ~@78
  [~@30 [b3,f#4] ~@8 [b3,f#4] ~@8]
  [~@3 [b3,f#4] ~@26 [b3,f#4] ~@8 [b3,f#4] ~@8]!3
  [~@3 [b3,f#4] ~@44]
  ~@2
>`).s("gm_electric_guitar_muted").gain(0.06).pan(1)

// other · distortion guitar · "Dist. gt" · F#5
const distortion_guitar = note(`<
  ~@49
  [~@15 e4 d4 e4 d4 e4 d4 e4 d4 ~ e4 d4 e4 d4 e4 d4 e4 d4 ~ e4 d4 e4 d4 e4 d4 e4 d4 ~ e4 d4 e4 d4 e4 d4]
  [e4 d4 ~ e4 d4 e4 d4 e4 d4 e4 d4 ~ e4 d4 e4 d4 e4 d4 e4 d4 ~ e4 d4 e4 d4 e4 d4 e4 d4 ~ e4 d4 e4 d4 e4 d4 e4 d4 ~ e4 d4 e4 d4 e4 d4 e4 d4 ~]
  [c#4!8 ~ c#4!6 ~@33]
  ~@4
  [~@3 [f#2,c#3,f#3]@2 ~ [f#2,c#3,f#3]@2 ~ [f#2,c#3,f#3]@2 ~ [f#2,c#3,f#3]@2 ~ [f#2,c#3,f#3]@2 ~ [f#2,c#3,f#3]@2 ~ [f#2,c#3,f#3]@2 ~@25]
  ~@28
>`).s("gm_distortion_guitar").gain(0.23).pan(0.4)

// other · distortion guitar · "Dist. gt" · soft notes
const distortion_guitar_soft = note(`<
  ~@49
  [d4 e4 d4 e4 d4 ~ e4 d4 e4 d4 e4 d4 e4 d4 ~@34]
  ~
  [~@15 c#4!2 ~ c#4!7 ~@23]
  ~@33
>`).s("gm_distortion_guitar").gain(0.11).pan(0.4)

// other · timpani
const timpani = note(`<
  ~@54
  [~@24 f2 g2 f2 g2 f2 ~ g2 f2 g2 f2 g2 f2 g2 f2 ~ g2 f2 g2 f2 g2 f2 g2 f2 ~]
  [g2 f2 g2 f2 g2 f2 g2 f2 ~ g2 f2 g2 f2 g2 f2 g2 f2 ~ g2 f2 g2 f2 g2 f2!2 g2 f2 g2 f2 ~ g2 f2 g2 f2 g2 f2 g2 f2 ~ g2 f2 g2 f2 g2 f2 g2 f2 ~]
  [g2 f2 g2 f2 g2 f2 g2 f2 ~ g2 f2 g2 f2 g2 f2 g2 f2 ~ g2 f2 g2 f2 g2 f2 ~@24]
  ~@28
>`).s("gm_timpani").gain(0.13)

// chords · synth strings 2 · "Syn str."
const synth_strings_2 = note("<A@5 ~@24 B@5 C@8 D@7 ~@2 E@2 ~ F@3 G@8 H I@5 J@4 K@7 L@3>".pickRestart({
  A: "[d#4@41 e4@6 [g#3,b3,d#4,f#4]@48 [e4,g#4]@6 [a3,e4]@6 ~@6 e4@30 [a3,c#4]@24 c4@24 b3@27 ~@22, [g#3,b3]@47 ~@48 c#4@12 [g#3,a3,c#4]@36 ~@24 f#3@51 ~@22]/5", // G#m7 E A5 A G#m Amaj7
  B: "[~@47 [e3,a3,c#4]@45 [f#3,b3,d#4]@3 [g#3,c#4,e4]@48 [a3,d4,f#4]@24 [g#3,b3,e4]@24 [a3,c#4,e4]@48 [e3,g#3,b3]]/5", // A B C#m D E A E
  C: "[~@23 [f#3,a3,c#4]@24 [b3,d4,f#4]@48 a3@24 g#3@24 [a3,c#4,e4]@48 [e3,g#3,b3]@24 [f#3,a3,c#4]@24 [g3,b3,d4]@48 [g3,c#4,e4]@48 [a3,e4,f#4]@48 [b3,d4], ~@95 [b3,e4]@48 ~@241]/8", // F#m Bm A E F#m G C#dim F#m7 …
  D: "[~@23 [b3,c#4,f4]@24 [a3,c#4,e4]@24 c4@12 ~@36 [a3,c#4]@24 d4@48 b3@141 ~@4, ~@71 f4@24 e4@48 ~@193, ~@83 b3@36 ~@24 [a3,e4]@189 ~@4]/7", // C#7 A A5
  E: "[c#4 d4 c#4 ~, [f#3,a3]@3 ~]/2", F: "[~@24 [c#3,f#3,b3]@95 [d#4,f#4]@25, ~@119 b3 ~@24]/3",
  G: "[~@23 [a#3,c#4]@24 [b3,d#4]@24 [b3,e4,g#4]@48 [b3,f#4]@24 [f#3,e4]@24 [b3,c#4,f#4]@48 [g#3,a#3,c#4]@24 [g#3,b3,d#4]@24 [a3,c#4,e4]@24 [a3,d#4,f#4]@24 [b3,f#4]@48 [c#4,e4]@24 [c#4,d#4,g4], ~@23 f#3@48 ~@48 c#4@48 ~@144 g#4@72 ~]/8", // A#m B E B5 F#7 Bsus2 A#m7 G#m …
  H: "~@23 [b3,d#4,f#4]@24 [b3,d4,g4]", // B G
  I: "[~@23 a#3@24 [b3,d#4]@24 [b3,e4,f#4]@48 [b3,d#4,f#4]@48 [a#3,c#4]@24 [b3,d#4]@24 [b3,d#4,g#4]@25, ~@11 c#4@36 ~@120 f#3@48 ~@25, ~@23 f#4@48 ~@169]/5", // B Bsus4 B A#m B G#m
  J: "[~@23 [b3,c#4,f#4]@24 [a3,d#4,f#4]@24 [b3,f#4]@48 [c#4,e4]@24 [c#4,d#4,g4]@24 [b3,d#4,f#4]@24 [b3,d4,g4], ~@71 g#4@72 ~@49]/4", // Bsus2 D#dim B5 C#m D#7 B G
  K: "[~@23 a#3@24 [b3,d#4]@24 [b3,e4,f#4]@48 [b3,c#4,f#4]@48 [c#4,d#4,f#4]@96 e4@47 ~ c#4@25, ~@11 c#4@36 ~@216 [b3,f#4]@73, ~@23 f#4@48 ~@265]/7", // B Bsus4 Bsus2 D#m7 B5
  L: "[~@23 [b3,c#4,f#4]@96 ~@25]/3", // Bsus2
})).s("gm_synth_strings_2").gain(0.31)

// chords · rock organ · "Organ"
const rock_organ = note("<~@15 A@2 ~@2 B C ~@64>".pickRestart({
  A: "[f#5@18 f#6@6 b4@59 ~@13, ~@24 e5@23 ~@49]/2", B: "~@45 [a5,b5,e6] ~@2", C: "a4@25 ~@23",
})).s("gm_rock_organ").gain(0.2).pan(0.7)

// chords · piano
const piano = note(`<
  A B C D ~@26 E F G H I J K L M N O P Q R S T@2 ~@7 U@3 V W X Y Z AA AB AC AD AE AF AG V W AH AI AC AD AJ AK@6 AL@3
>`.pickRestart({
// … 148 more lines

More by Giorgia