Strudelify

In questo mondo di ladri

Antonello Venditti

KeyB majorTempo116 bpm
0:00/0:00
// In questo mondo di ladri — Antonello Venditti
// 116 bpm, 4/4, key B 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 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · pad halo · "HALO PAD"
const pad_halo = note(`<
  ~@16 A ~@3 B ~@3 A ~@3 B C@4 D@7 E@2 ~@11 A ~@3 B ~@3 A ~@3 B C@4 D@7 ~@8 F ~@12 G ~@3 H I@4 J@7 K@2 L M N O L M N O L
  M N O L O N O L M N P
>`.pickRestart({
  A: "a3", B: "[a3,c#4]", C: "[[g3,c4,e4] [a3,d4,f#4] [g3,c4,e4] [a3,d4,f#4], c3]/4", D: "[~ a3 e3 a3 e3 a3 e3, b3]/7",
  E: "[~@2 c4@13 [g#3,b3,e4]]/2", F: "~@3 [d4,g4,b4]@2 [c4,e4,g4]@2 ~ [d4,f#4,a4]@3 ~@5", G: "b3", H: "[b3,d#4]",
  I: "[[a3,d4,f#4] [b3,e4,g#4] [a3,d4,f#4] [b3,e4,g#4], d3]/4", J: "[~ b3 f#3 b3 f#3 b3 f#3, c#4]/7",
  K: "[~@2 d4@13 [a#3,c#4,f#4]]/2", L: "a#4 g#4", M: "f#4@15 ~", N: "f#4 g#4", O: "f#4", P: "f#4 ~@3",
})).s("gm_pad_halo").gain(0.43)

// chords · pad halo · "HALO PAD" · soft notes
const pad_halo_soft = note(`<
  ~@13 A@3 B A@3 ~ A@3 B A@3 ~@5 C ~@16 A@3 B A@3 ~ A@3 B A@3 ~@5 C ~@24 D@3 E D@3 ~@5 F ~@28
>`.pickRestart({
  A: "[~ a3 ~, b3]/3", B: "c#4", C: "e3", D: "[~ b3 ~, c#4]/3", E: "d#4", F: "f#3",
})).s("gm_pad_halo").gain(0.21)

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

// other · tenor sax
const tenor_sax = note(`<
  ~@5 A@2 B@2 A@2 C@2 ~@29 A@2 B@2 A@2 C@2 ~@6 D@2 ~@6 E F ~@21 G@2 H@2 G@2 I@2 ~@6 J K ~@13 G@2 H@2 G@2 I@2 G@2 H@2 G@2
  I@2 G@2 L@2
>`.pickRestart({
  A: "[~@2 e4@2 f#4@2 b4@2 g#4@4 e4@2 f#4@4 b4@3 ~ g#4@4 e4@2 f#4@2 e4@2]/2",
  B: "[~ e4 f#4 b4 g#4@2 e4 f#4@2 g#4@2 e4@2 c#4!2 b3]/2",
  C: "[~@2 e4@2 f#4@2 b4@2 g#4@4 e4@2 f#4@4 g#4@3 ~ e4@4 c#4@2 c#4@2 b3@2]/2",
  D: "[~@2 e4@2 f#4@2 b4@2 g#4@4 e4@2 f#4@4 g#4@3 ~ e4@3 ~ c#4@2 c#4@2 b3@2]/2",
  E: "~@2 e4@2 f#4@2 b4 ~ g#4@4 e4@2 f#4@2", F: "~@2 g#4@3 ~ e4@3 ~ c#4 ~ c#4@2 b3@2",
  G: "[~@2 f#4@2 g#4@2 c#5@2 a#4@4 f#4@2 g#4@4 c#5@3 ~ a#4@4 f#4@2 g#4@2 f#4@2]/2",
  H: "[~ f#4 g#4 c#5 a#4@2 f#4 g#4@2 a#4@2 f#4@2 d#4!2 c#4]/2",
  I: "[~@2 f#4@2 g#4@2 c#5@2 a#4@4 f#4@2 g#4@4 a#4@3 ~ f#4@4 d#4@2 d#4@2 c#4@2]/2",
  J: "~@2 f#4@2 g#4 ~ c#5@2 a#4@3 ~ f#4@2 g#4@2", K: "~@2 a#4@3 ~ f#4@3 ~ d#4@2 d#4@2 c#4@2",
  L: "[~ f#4 g#4 c#5 a#4@2 f#4 g#4@2 a#4 ~@6]/2",
})).s("gm_tenor_sax").gain(0.39)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@79 A B@2 ~@4 C@3 D@2 E@2 F@2 G@2 ~@39>".pickRestart({
  A: "~@8 c#5 g#4@7", B: "[c#5@2 g#4@8 c#5@9 ~@13]/2", C: "[~@7 c#5@14 a#4 g#4 d#5]/3",
  D: "[c#5@11 b4 a#4 b4 a#4 b4]/2", E: "[a#4@2 b4@2 a#4@17 ~ a#4@6 g#4@2 f#4@2]/2", F: "[g#4 f#4@13 d#4@2]/2",
  G: "[c#4@31 ~]/2",
})).s("gm_overdriven_guitar").gain(0.31)

// other · electric guitar muted · "MUTED GT"
const electric_guitar_muted = note(`<
  ~@21 A B A C A@3 D ~@21 A B A C A@3 D A B A C A@3 D ~@29 E F G E@2 G E@2 ~@13 H@2 I@2 H@5 I H I@2 H@2 I@2 H I J
>`.pickRestart({
  A: "~@2 g#3 e3!2 ~@3 g#3@3 e3 ~@2 e3 ~", B: "~@2 g#3 e3!2 ~@3 g#3@3 e3 ~ b2 e3 ~",
  C: "~@2 g#3 e3!2 ~@3 e3@2 ~ e3 ~ b2 e3 ~", D: "~@2 g#3 e3!2 ~@3 g#3@2 ~ e3 ~ b2 e3 ~",
  E: "~@2 f#3!4 ~@2 f#3@3 f#3 ~@2 f#3 ~", F: "~@2 f#3!2 ~ f#3 ~@2 f#3@3 f#3 ~@2 f#3 ~",
  G: "~@2 f#3!4 ~@2 f#3@2 ~ f#3 ~@2 f#3 ~", H: "~@2 f#3!5 ~ f#3@3 f#3 ~@2 f#3 ~",
  I: "~@2 f#3!5 ~ f#3@2 ~ f#3 ~@2 f#3 ~", J: "~@2 f#3!2 ~@12",
})).s("gm_electric_guitar_muted").gain(0.41)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note("<~@77 A@2 B C D@2 E F G H@4 ~@46>".pickRestart({
  A: "[c#3 ~ c#3 ~ b2 ~ c#3@2 ~@6 a2@8 b2@9 ~]/2", B: "c#3 ~ c#3@2 b2@2 ~@10", C: "~ f#2 g#2 a2@2 b2 c#3 e3",
  D: "[c#3 ~ c#3@2 b2 ~ c#3@2 ~@6 a2@7 ~ b2@7 ~@3]/2", E: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  F: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", G: "~@2 b2@3 c3@2 ~ d3@2 g3@2 ~ f#3@2 ~",
  H: "[d3@2 b2@2 ~ d3@2 ~@7 f#3@41 ~@9]/4",
})).s("gm_distortion_guitar").gain(0.64)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  A B C@8 D@3 E@8 F@6 G H@3 I@8 ~ J K@8 L E@8 F@6 G H@3 I@8 M N@2 O P Q@2 R S T U@8 V W@6 X Y@3 Z@8 ~ AA AB@8 AC@7 AD@6
>`.pickRestart({
  A: "~@15 e4", B: "e5@7 d#5@8 [a4,c#5], [g#4,b4]",
  C: "[~@15 e5@8 d#5@8 [e4,a4,c#5]@16 e4@8 f#4@8 e4@16 e4@8 f#4@8 c#4@16 e4@8 f#4@8 e4, ~@15 [g#4,b4]@16 ~@16 [g#4,b4]@32 [g#4,b4]@32 ~@17, ~@15 e4@14 ~@18 b3@17 ~@47 [b3,g#4,b4]@17]/8", // A G#m E
  D: "[~@15 e4@8 f#4@8 ~@16 [b3,g#4], ~@15 [b3,g#4,b4]@32 ~]/3", // E
  E: "[~@15 [e3,b3,e4]@16 [e3,e4]@8 [d#3,f#4]@8 [c#4,e4]@16 [e3,g#4]@8 [d#3,f#4]@8 [e3,b3,e4]@16 [e3,e4]@8 [d#3,f#4]@8 [c#4,e4]@16 [b3,g#4], ~@7 [d#3,f#4]@10 ~@14 b3@16 e3@15 ~ b3@15 ~@17 b3@16 ~@17]/8", // E5 E D#m C#m E D#m E5 E …
  F: "[~@15 [e3,b3,e4]@16 [e3,e4]@8 [d#3,f#4]@8 [c#4,e4]@16 [e3,g#4]@8 [d#3,f#4]@8 [e3,b3,e4]@16 [e3,b3,e4], ~@7 [d#3,f#4]@10 ~@14 b3@16 e3@15 ~ b3@15 ~@18]/6", // E5 E D#m C#m E D#m E5 D#m
  G: "~@7 [d#3,f#4]@8 [c#4,e4]", H: "[~@31 [a3,d4,f#4]@16 [g3,c4,e4], ~@5 [g3,c4,e4]@6 ~@5]/3",
  I: "[~@15 [a3,d4,f#4]@16 [g#3,b3]@16 ~@16 g#3@16 c#4@16 [g#3,b3]@16 c#4@16 [g#3,b3], ~@31 e4@97]/8", // D G#m
  J: "~@3 g3@10 a3@3, ~@3 [c4,e4]@13", // C
  K: "[~@13 e4@10 f#4@8 e4@16 e4@8 f#4@8 c#4@16 e4@8 f#4@8 e4@16 e4@8 f#4@8 ~, ~@13 [g#4,b4]@34 [g#4,b4]@32 [g#4,b4]@32 ~@17, ~@13 b3@17 ~@49 b3@17 ~@15 [b3,g#4,b4]@17]/8", // G#m E
  L: "~@15 [b3,g#4]", M: "~@15 [c#4,c#5]",
  N: "[~ [c#4,c#5] ~ [b3,b4] ~ [c#4,c#5] ~@7 [a3,c#4,e4,a4,a5]@7 ~ [b3,d#4,f#4,b4,b5]@7 ~@3 [c#4,c#5]]/2", // C# B C# A B C#
  O: "~ [c#4,c#5] ~ b3@2 ~@11, ~@3 b4 ~@12", // C#
  P: "~ [f#3,f#4]@2 [g#3,g#4]@2 [a3,a4]@4 [b3,b4]@2 [c#4,c#5]@2 [e4,e5] ~ [c#4,c#5]", // F# G# A B C# E C#
  Q: "[~ [c#4,c#5] ~ [b3,b4] ~ c#4@2 ~@6 [a3,c#4,a4]@6 ~@2 [b3,d#4,f#4,b4,b5]@8 ~@2 [d4,g4,b4], ~@5 c#5 ~@7 [e4,a5]@8 ~@11]/2", // C# B A B G A5
  R: "~ [d4,g4,b4] ~ [d4,f#4,a4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,f#4,a4] ~ [d4,g4,b4] ~ [e4,a4,c#5]", // G D G D G A
  S: "~ [e4,a4,c#5] ~ [e4,g#4,b4] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,g#4,b4] ~ [e4,a4,c#5] ~@2", // A E A E A
  T: "~@2 [b2,d4,b4]@3 [c3,e4]@2 [d3,f#4]@3 [g3,b4]@2 [f#3,a4]@3 [d3,f#4], ~ g4@3 ~@4", // Bm C D G F#m D
  U: "[~@2 [b2,d4]@2 ~ f#4@2 ~@6 f#4@10 g#4@8 f#4@16 f#4@8 g#4@8 d#4@16 f#4@8 g#4@8 f#4@16 f#4@8 g#4@8 ~, ~@4 d3@2 ~@7 [a#4,c#5]@34 [a#4,c#5]@32 [a#4,c#5]@32 ~@17, ~@13 c#4@18 ~@48 c#4@17 ~@15 [c#4,a#4,c#5]@17]/8", // Bm A#m F#
  V: "~@15 [c#4,a#4]", // F#
  W: "[~@15 [f#3,c#4,f#4]@16 [f#3,f#4]@8 [f3,g#4]@8 [d#4,f#4]@16 [f#3,a#4]@8 [f3,g#4]@8 [f#3,c#4,f#4]@16 [f#3,c#4,f#4], ~@7 [f3,g#4]@10 ~@14 c#4@16 f#3@15 ~ c#4@15 ~@18]/6", // F#5 F# Fm D#m F# Fm F#5 Fm
  X: "~@7 [f3,g#4]@8 [d#4,f#4]", Y: "[~@31 [b3,e4,g#4]@16 [a3,d4,f#4], ~@5 [a3,d4,f#4]@6 ~@5]/3",
  Z: "[~@15 [b3,e4,g#4]@16 [a#3,c#4]@16 ~@16 a#3@16 d#4@16 [a#3,c#4]@16 d#4@16 [a#3,c#4], ~@31 f#4@97]/8", // E A#m
  AA: "~@3 a3@10 b3@3, ~@3 [d4,f#4]@13", // D
  AB: "[~@13 [c#4,f#4]@2 a#3@16 b3@16 a#3@16 [b3,d#4]@16 a#3@16 b3@16 a#3@16 [b3,d#4], ~@13 [a#4,c#5]@34 ~@81, ~@15 f#4@113, ~@15 c#4@48 ~@16 c#4@48 ~]/8", // F#5 B A#m
  AC: "[~@15 a#3@16 b3@16 a#3@16 [b3,d#4]@16 a#3@16 b3@16 ~, ~@15 c#4@48 ~@16 c#4@33]/7", // B
  AD: "[~@15 [b3,d#4]@16 a#3@16 b3@16 a#3@16 [b3,d#4]@4 ~@13, ~@31 c#4@48 ~@17]/6", // B
})).s("gm_pad_warm").gain(0.3)

// chords · pad warm · "WARM PAD" · soft notes
const pad_warm_soft = note(`<
  ~@5 A@4 B@2 C@3 ~ D@2 ~@2 E@3 ~ D@2 ~@2 F@2 ~@4 G@4 D@2 ~@3 A@4 B@2 C@3 ~ D@2 ~@2 E@3 ~ D@2 ~@2 F@2 ~@4 G@4 D@2 ~@11
  H@4 I@2 J@3 ~ K@2 ~@2 L@2 ~@4 M@4 K@2 ~@16 N@2 ~@5
>`.pickRestart({
  A: "[~@15 c#4@16 ~@16 [a3,e4]@17, ~@31 b3@31 ~@2]/4", B: "[~@15 c#4@17]/2", C: "[~@15 [a3,c#4,e4]@16 e3@8 ~@9]/3",
  D: "[~@15 a3@16 ~]/2", E: "[~@15 [e3,a3]@16 e3@8 ~@9]/3", F: "[~@15 [e3,a3]@16 ~]/2",
  G: "[~@15 [a3,c#4]@16 b3@16 a3@16 ~]/4", H: "[~@15 d#4@16 ~@16 [b3,f#4]@17, ~@31 c#4@31 ~@2]/4", I: "[~@15 d#4@17]/2",
  J: "[~@15 [b3,d#4,f#4]@16 f#3@8 ~@9]/3", K: "[~@15 b3@16 ~]/2", L: "[~@15 [f#3,b3]@16 ~]/2",
  M: "[~@15 [b3,d#4]@16 c#4@16 b3@16 ~]/4", N: "[~@15 a#3@16 ~]/2",
})).s("gm_pad_warm").gain(0.15)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@5 A@2 B@2 C@4 ~@20 D@4 E@3 F@4 B@2 C@4 ~@6 G@2 ~@6 H I ~@4 J@7 K@2 L M N@2 O P Q R S@2 T@2 S@2 T@2 ~@6 U V ~@11 W@4
  X@2 Y@2 X@2 Y@2 X@2 Y@2 X@2 Y@2 Z@2
>`.pickRestart({
  A: "[~ e6 f#6 b6 g#6@2 e6 f#6@2 b6@2 g#6@2 e6 f#6 e6]/2", B: "[~ e6 f#6 b6 g#6@2 e6 f#6@2 g#6@2 e6@2 c#6!2 b5]/2",
  C: "[~ e6 f#6 b6 g#6@2 e6 f#6@2 b6@2 g#6@2 e6 f#6 e6@2 e6 f#6 b6 g#6@2 e6 f#6@2 g#6@2 e6@2 c#6!2 b5]/4",
  D: "[g#5 a5 g#5 a5, [e5,b5]]/4", E: "[g#5 a5 g#5, [e5,b5]]/3",
  F: "[~@2 e4@15 e6 f#6 b6 g#6@2 e6 f#6@2 b6@2 g#6@2 e6 f#6 e6, ~@2 c4@11 ~@19, ~@2 g3@5 ~@25]/4",
  G: "[~@2 e6@2 f#6@2 b6@2 g#6@4 e6@2 f#6@4 g#6@3 ~ e6@3 ~ c#6@2 c#6@2 b5@2]/2",
  H: "~@2 e6@2 f#6@2 b6 ~ g#6@4 e6@2 f#6@2", I: "~@2 g#6@3 ~ e6@3 ~ c#6 ~ c#6@2 b5@2", J: "[[b3,b4]@111 ~]/7",
  K: "[[c#6,c#7] ~ [c#6,c#7] ~ [b5,b6] ~ [c#6,c#7] ~@7 [a5,a6]@7 ~ [b5,b6]@6 ~@4]/2", // C# B C# A B
  L: "[c#6,c#7] ~ [c#6,c#7] ~ b6@2 ~@10, ~@4 b5 ~@11", // C#
  M: "~@2 [f#5,f#6]@2 [g#5,g#6]@2 [a5,a6]@4 [b5,b6]@2 [c#6,c#7]@2 [e6,e7] ~", // F# G# A B C# E
  N: "[[c#6,c#7] ~ [c#6,c#7] ~ [b5,b6] ~ [c#6,c#7] ~@7 [a5,a6]@7 ~ [b5,b6]@7 ~@3]/2", // C# B C# A B
  O: "[d6,g6,b6] ~ [d6,g6,b6] ~ [f#6,a6] ~ [d6,g6] ~ [d6,g6,b6] ~ [g6,b6] ~ [d6,f#6] ~ [d6,g6,b6] ~", // G F#m G5 G D G
  P: "[e6,a6] ~ [e6,a6,c#7] ~ [e6,g#6,b6] ~ [e6,a6,c#7] ~ c#7 ~ [e6,a6,c#7] ~ [g#6,b6] ~ [e6,a6,c#7] ~", // A5 A E A G#m A
  Q: "~@3 b5@2 c4@3 [d4,f#5]@3 b5@2 a5@3", R: "f#5@3 d5@2 f#5@2 ~@9",
  S: "[~ f#4 g#4 c#5 a#4@2 f#4 g#4@2 c#5@2 a#4@2 f#4 g#4 ~]/2",
  T: "[~ f#4 g#4 c#5 a#4@2 f#4 g#4@2 a#4@2 f#4@2 d#4!2 c#4]/2", U: "~@2 f#6@2 g#6 ~ c#7@2 a#6@3 ~ f#6@2 g#6@2",
  V: "~@2 a#6@3 ~ f#6@3 ~ d#6@2 d#6@2 c#6@2",
  W: "[~@2 f#4@15 f#6 g#6 c#7 a#6@2 f#6 g#6@2 c#7@2 a#6@2 f#6 g#6 ~, ~@2 d4@11 ~@19, ~@2 a3@5 ~@25]/4",
  X: "[~ f#6 g#6 c#7 a#6@2 f#6 g#6@2 a#6@2 f#6@2 d#6!2 c#6]/2",
  Y: "[~ f#6 g#6 c#7 a#6@2 f#6 g#6@2 c#7@2 a#6@2 f#6 g#6 ~]/2", Z: "[~ f#6 g#6 c#7 a#6@2 f#6 g#6@2 a#6 ~@6]/2",
})).s("gm_string_ensemble_1").gain(0.21)

// other · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note(`<
  ~@33 A@7 B@3 ~@27 C@4 D@3 ~@6 E F G H ~ I ~@3 J@2 ~@13 K@7 L@3 M ~@3 N@2 ~@2 M ~@3 N@2 ~@2 M ~@2
>`.pickRestart({
  A: "[~ [b3,b4]@111]/7", B: "[~@7 a3@8 g#3@2 ~@7]/3", C: "[g#5 a5 g#5 a5, [e5,b5]]/4", D: "[g#5 a5 g#5, [e5,b5]]/3",
  E: "~@4 d6 ~ b6 ~@3 d6 ~ a6 ~@3", F: "c#7 ~@7 [e6,a6] ~@3 e6 ~@3", G: "~@3 d4@2 e5@3 ~@3 g4@2 f#4@3",
  H: "d4@3 b3@2 d4@2 ~@9", I: "~@7 f#4", J: "[~@7 f#4@2 ~@7]/2",
  K: "[~ b5 a#5 b5 a#5 b5 a#5, [f#5,c#6]@4 [f#5,c#6]@3, a#5 ~@6, ~ [c#4,c#5]@111]/7", L: "[~@7 b3@8 a#3@2 ~@7]/3",
  M: "~@7 f#6", N: "[~@7 f#6@2 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.07)

// chords · electric guitar clean · "CLEAN GT"
const electric_guitar_clean = note(`<
  ~ A@3 B@3 ~@5 C@3 ~@14 D E D F@7 G@8 H@5 ~@14 D E D F@7 I@3 ~@24 E J E K@7 L@8 M@4 N@8 O@3
>`.pickRestart({
  A: "~@2 e4@2 d#4@2 b3@2 e4@3 d#4@3 e4@2", B: "[~@2 e4@2 d#4@2 b3@2 e4@3 d#4@3 e4@34]/3",
  C: "[~@10 [b3,e4]@2 [b3,e4] ~ [b3,e4]@34]/3", D: "~@3 g3, ~ g3@5 ~@2, ~@2 c4@3 c4@3, ~@3 e4@5",
  E: "~@3 a3, ~ a3@5 ~@2, ~@2 d4@3 d4@3, ~@3 f#4@5",
  F: "[~@15 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 e4@2 ~@6 e4, ~ a3@5 a3@16 ~@34, ~@2 d4@3 d4@15 e4@3 ~@2 e4@3 e4@3 ~@2 e4@3 e4@3 ~@2 e4@3 e4@3 ~@2 e4@3 e4@3 ~, ~@6 f#4@18 e4@3 d#4@7 e4@4 b3@16 b3@16 b3@16 b3@16 b3@10, ~@18 e4@2 d#4@2 b3@14 d#4@7 d#4@9 d#4@7 d#4@9 d#4@7 d#4@9 d#4@7 d#4@9 d#4@7 d#4@5]/7",
  G: "[~@14 e4@6 ~@10 a2@4 ~@12 [b3,e4]@28 [b3,e4]@2 [b3,e4]@2 [b3,e4]@27 ~ e4@2 f#4@2 [b3,e4]@18, ~ e4@3 e4@3 ~@3 [g3,c4]@8 g2@16 ~@30, ~@4 d#4@7 d#4@17 b2@18 [e2,g#3]@32 ~@50, ~@3 b3@10 c3@6 f#2@16 ~@29, ~@20 e4@14 a2@32 ~@40 b3 ~ b3 ~@19]/8", // E5 C5 E
  H: "[~@10 [b3,e4] ~ [b3,e4] ~ [b3,e4]@28 [b3,e4]@2 [b3,f#4]@2 [b3,e4]@25 ~@9]/5", // E5 B5 E5
  I: "[~@7 e4@16 ~, ~ e4@3 e4@3 ~@17, ~@4 d#4@7 d#4@32 ~@5, ~@3 b3@16 ~@5]/3",
  J: "~@3 b3, ~ b3@5 ~@2, ~@2 e4@3 e4@3, ~@3 g#4@5",
  K: "[~@15 f#4@2 ~@6 f#4@2 ~@6 f#4@2 ~@6 f#4@2 ~@6 f#4@2 ~@6 f#4, ~ b3@5 b3@16 ~@34, ~@2 e4@3 e4@15 f#4@3 ~@2 f#4@3 f#4@3 ~@2 f#4@3 f#4@3 ~@2 f#4@3 f#4@3 ~@2 f#4@3 f#4@3 ~, ~@6 g#4@18 f#4@3 f4@7 f#4@4 c#4@16 c#4@16 c#4@16 c#4@16 c#4@10, ~@18 f#4@2 f4@2 c#4@14 f4@7 f4@9 f4@7 f4@9 f4@7 f4@9 f4@7 f4@9 f4@7 f4@5]/7",
  L: "[~@14 f#4@6 ~@10 b2@4 ~@12 [c#4,f#4]@28 [c#4,f#4]@2 [c#4,f#4]@2 [c#4,f#4]@27 ~ f#4@2 g#4@2 [c#4,f#4]@18, ~ f#4@3 f#4@3 ~@3 [a3,d4]@8 a2@16 ~@30, ~@4 f4@7 f4@17 c#3@18 [f#2,a#3]@32 ~@50, ~@3 c#4@10 d3@6 g#2@16 ~@29, ~@20 f#4@14 b2@32 ~@40 c#4 ~ c#4 ~@19]/8", // F#5 D5 F#
  M: "[~@10 [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4]@28 [c#4,f#4]@2 [c#4,g#4]@2 [c#4,f#4]@18]/4", // F#5 C#5 F#5
  N: "[~@5 [c#4,f#4]!2 [c#4,f#4]@14 c#4 [c#4,g#4] [c#4,f#4]@14 [c#4,f#4]!2 [c#4,f#4]@14 c#4 [c#4,g#4] [c#4,f#4]@9, ~@21 f#4@2 ~@30 f#4@2 ~@9]/8", // F#5 C#5 F#5 C#5 F#5
  O: "[~@5 [c#4,f#4]!2 [c#4,f#4]@11 ~@6]/3", // F#5
})).s("gm_electric_guitar_clean").gain(0.31)

// … 112 more lines

More by Antonello Venditti