Strudelify

Mezzo angolo di cielo

Anna Oxa

KeyE majorTempo106 bpm
0:00/0:00
// Mezzo angolo di cielo — Anna Oxa
// 106.4 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 118 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(106.4/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 · epiano2 · "E.PNO/BASS"
const epiano2 = note("<~ A B C D E@2 F G H@2 I J K ~@104>".pickRestart({
  A: "~@20 [e4,f#4,a4]@2 ~@2 [e4,f#4,a4]@3 ~ e4@2 ~@2, ~@20 b3 ~@11", // F#m7
  B: "[b3,e4,f#4,a4]@3 ~ [e4,f#4,a4]@3 ~@5 [b3,e4,f#4,a4]@2 ~@2 e4@2 ~@2 b3@3 ~ [b3,e4,f#4,a4]@3 ~ [e4,f#4,a4]@3 ~", // Bsus4 F#m7 Bsus4 F#m7
  C: "~@4 [b3,e4,f#4,a4]@3 ~ [e4,f#4]@2 ~@2 [b3,e4]@2 ~@2 [b3,e4,f#4,a4]@3 ~ [e4,f#4,a4]@3 ~ b3@2 ~@2 [b3,e4,f#4,a4]@3 ~", // Bsus4 Esus2 E5 Bsus4 F#m7 Bsus4
  D: "[e4,f#4,a4]@3 ~ [b3,e4,f#4]@3 ~ [b3,e4,f#4,a4]@3 ~ [e4,f#4,a4]@2 ~@2 [b3,e4]@2 ~@2 [b3,e4,f#4,a4]@3 ~ [e4,a4]@2 ~@2 [b3,e4,f#4]@3 ~", // F#m7 Bsus4 F#m7 E5 Bsus4 A5 Bsus4
  E: "[[b3,e4,f#4,a4]@3 ~@5 [b3,e4]@2 ~@2 [b3,e4,f#4,a4]@3 ~ [d#4,f#4,b4]@10 ~@2 [c#4,e4,a4]@7 ~ [b3,e4,f#4]@2 ~@2 [b3,e4,f#4,a4]@2 ~@2 [e4,f#4,a4]@3 ~ [e4,f#4,a4]@3 ~ [b3,e4,f#4]@2 ~@2 [e4,f#4,a4]@2 ~@2 [e4,a4]@2 ~@2, ~@44 b3 ~@19]/2", // Bsus4 E5 Bsus4 B A Bsus4 F#m7 Bsus4 …
  F: "[e4,f#4,a4]@2 ~@2 [e4,f#4]@2 ~@2 [a4,b4] ~@3 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4,a4,e5]@3 ~ [e4,f#4,a4,e5]@3 ~ [e4,f#4,a4,e5]@2 ~@2, ~@4 b3 ~@3 e5@2 ~@22", // F#m7 Esus2 Asus2 F#m7
  G: "[e4,e5]@2 ~@2 [e4,a4]@2 ~@2 [e4,a4,e5]@2 ~@2 [e4,f#4,a4]@2 ~@2 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4] ~@3 [a4,e5]@2 ~@2 [e4,f#4] ~@3, [f#4,a4] ~@3 f#4 ~@3 f#4 ~@11 a4@2 ~@2 [e4,f#4] ~@3 a4@2 ~@2", // E A5 F#m7 Esus2 A5 Esus2 F#m Esus2
  H: "[[f#4,a4,e5]@2 ~@2 [e4,f#4,a4]@2 ~@2 [e4,f#4,a4,e5]@3 ~ [e4,f#4,a4] ~@3 [d#4,f#4,b4]@9 ~@3 [c#4,e4,a4]@7 ~ [b3,e4,f#4]@2 ~@2 [b3,e4,f#4,a4]@2 ~@2 [b3,e4,f#4,a4]@2 ~@2 [b3,e4,f#4,a4]@2 ~@2 f#4@2 ~@2 [f#4,a4]@2 ~@2 [b3,e4] ~@3, e4 ~@51 e4 ~@3 [b3,e4] ~@3 f#4@2 ~@2]/2", // F#m7 B A Bsus4 F#m E5
  I: "[f#4,a4]@2 ~@2 [b3,e4] ~@3 [b3,f#4,a4]@2 ~@2 [b3,e4,a4] ~@3 [f#4,a4]@2 ~@2 [b3,e4] ~@3 [f#4,a4]@2 ~@2 b3 ~@3, [b3,e4] ~@3 f#4@2 ~@2 e4 ~@3 f#4@2 ~@2 [b3,e4] ~@7 [b3,e4] ~@7", // F#m E5 B7 Esus4 F#m E5 F#m E5
  J: "[e4,f#4,a4,e5]@2 ~@2 [f#4,a4]@2 ~@2 [f#4,a4,e5]@2 ~@2 [e4,f#4] ~@3 [f#4,a4,e5]@2 ~@6 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4] ~@3, ~@4 e4 ~@3 e4 ~@3 a4@2 ~@2 e4 ~@11 a4@2 ~@2", // F#m7 F#m F#m7 Esus2 F#m7 Esus2
  K: "[a4,e5]@2 ~@2 [e4,f#4] ~@3 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4,a4]@2 ~@18, [e4,f#4] ~@3 a4@2 ~@26", // A5 Esus2 F#m7 Esus2
})).s("gm_epiano2").gain(0.35)

// chords · epiano2 · "E.PNO/BASS" · soft notes
const epiano2_soft = note("<~ A B C D E F ~@3 G A H ~@105>".pickRestart({
  A: "~@28 f#4 ~@3", B: "~@4 b3@2 ~@2 [b3,e4]@2 ~@6 [f#4,a4]@2 ~@2 e4 ~@7 b3@2 ~@2",
  C: "[b3,e4]@2 ~@6 [b3,a4]@2 ~@10 b3@2 ~@2 e4 ~@7", D: "b3 ~@7 f#4 ~@3 f#4 ~@3, ~@24 b3 ~@7",
  E: "~@2 [b3,e4,f#4,a4] ~ f#4 ~@11", F: "~@14 f#4 ~", G: "~@10 b3 ~@5", H: "~@10 [f#4,a4] ~@5, ~@20 e4 ~@11",
})).s("gm_epiano2").gain(0.14)

// bass · electric bass finger · "E.PNO/BASS"
const bass = note(`<
  ~@14 A B C D E F G@5 H@8 I@8 J@8 K@2 L@8 M@2 N@7 O@8 P@3 Q R S T U V W X@2 Y Z AA AB AC AD AE@2 AF AG AH AI AJ AK AL
  AM AN AO AP@2 AQ@7 AR@3
>`.pickRestart({
  A: "~@12 e1@3 ~ e1@10 ~@2 e1@2 ~@2", B: "e1@9 ~@3 e1 ~@3 e1@9 ~@3 e1@2 ~@2", C: "e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~",
  D: "e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2", E: "e1@9 ~@3 e1@3 e1@9 ~@3 e1@2 ~@3", F: "e1@10 ~ e1@2 ~@3 e1@9 ~@3 e1@4",
  G: "[e1@9 ~@2 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@10 ~@2 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@4 e1]/5",
  H: "[~@11 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@8 ~@4 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@8 ~@4 e1@2 ~@2 e1]/8",
  I: "[~@11 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e2@4 c2@4 c#2@4 c#2@4 c#1@3 ~ c#2@2 ~@2 c#2@2 ~@2 c#1@2 ~@2 c#1@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#1@2 ~@2 c#1@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#1 ~@3 c#2@4 e1@4 f1@2 ~@2 f1@3 ~ f#1@3 ~ f#1 ~@3 f#1 ~@3 f#1@2 ~@2 f#1@2 ~@2 f#1 ~@3 f#1 ~@3 f#1 ~@3 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1 ~@3 f1@3 ~ f#1@3 ~ g#1@4 a1@4 a#1@4 b1@4 c#2@4 e2@4 c#2@3 ~ e1]/8",
  J: "[~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@4 f#1@2 ~@2 g#1@3 ~ g#1 ~@3 g#1 ~@3 g#1 ~@3 g#1@3 ~ a1@2 ~@2 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 f1@4 f#1@4 g#1@4 a1@4 a#1@4 b1@4 c#2@4 e2@4 c#2@4 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2 ~@2 e1@3 ~ f#1@2 ~@2 f#1@3 ~ g#1@2 ~@2 g#1@2 ~@2 g#1@3 ~ e1@4 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 g#1@3 ~ a1@2 ~@2 f#1@3 ~ f#1]/8",
  K: "[~@3 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 a1@4 b1@4 c#2@4 c#1@2 ~@2 c#1@2 ~@2 c#1@2 ~@2 c#1@4 b1@2 ~@2 b1@4 c#2@2 ~@2 a1@4 a1]/2",
  L: "[~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@9 ~@19 e1@4 e1@8 ~@4 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 b1@4 e2@4 b1@4 e1@4 e1@10 ~@2 e1@3 ~ e1@10 ~@2 e1@2 ~@2 e1@9 ~@2 e1 ~@3 e1@9 ~@4 e1@2 ~ e1@2]/8",
  M: "[~@10 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@4 b1@4 e1@4 b1@4 e1@2]/2",
  N: "[~@2 e1@7 ~ e1@4 ~ e1@9 ~@2 e1@2 ~@2 e1@10 ~@2 e1@2 ~@2 e1@9 ~@3 e1@4 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@10 ~@2 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e2@3 ~ e2@3 ~ b1@4 e1@4 e1@2]/7",
  O: "[~@10 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e2@4 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 b1@4 e2@4 e1@4 b1@4 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@8 ~@4 e1@2 ~@2 e1@2]/8",
  P: "[~@10 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e2@4 c2@4 c#2@4 c#2@4 c#1@2]/3",
  Q: "~ c#2 ~ c#2 ~ c#1 ~ c#1 ~ c#2 ~ c#2 ~ c#1 ~ c#1",
  R: "~@2 c#2@2 ~@2 c#2@2 ~@2 c#1 ~@3 c#2@4 e1@4 f1@2 ~@2 f1@3 ~ f#1@2",
  S: "~@2 f#1 ~@3 f#1 ~@3 f#1@2 ~@2 f#1@2 ~@2 f#1 ~@3 f#1 ~@3 f#1 ~@3 f#1@2",
  T: "~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1 ~@3 f1@3 ~ f#1@2",
  U: "~@2 g#1@4 a1@4 a#1@4 b1@4 c#2@4 e2@4 c#2@3 ~ e1@2", V: "~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1",
  W: "~@2 e1@4 f#1@2 ~@2 g#1@3 ~ g#1 ~@3 g#1 ~@3 g#1 ~@3 g#1@3 ~ a1@2",
  X: "[~@2 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 f1@4 f#1@4 g#1@4 a1@4 a#1@4 b1@4 c#2@4 e2@4 c#2@4 e1@2]/2",
  Y: "~@2 e1 ~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2",
  Z: "~@2 e1@3 ~ f#1@2 ~@2 f#1@3 ~ g#1@2 ~@2 g#1@2 ~@2 g#1@3 ~ e1@4 a1@2",
  AA: "~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1",
  AB: "~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 g#1@3 ~ a1@2 ~@2 f#1@3 ~ f#1@2",
  AC: "~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ a1@2 b1@2 c#2@2 c#1", AD: "~ c#1 ~ c#1 ~ c#1@2 b1 ~ b1@2 c#2 ~ a1@2 a1",
  AE: "[~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@9 ~@3 a#1@4 b1@4 c#2@4 e2@4 c#2@3 ~ e1@2]/2",
  AF: "~@2 e1@2 ~ e1@2 ~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2",
  AG: "~@2 e1@4 f#1@2 ~ g#1@3 ~@2 g#1 ~@3 g#1 ~@3 g#1 ~@3 g#1@3 ~ a1@2",
  AH: "~ a1 ~@4 a1 ~@3 a1 ~@2 a1 ~@3 a1 ~@3 a1 ~@4 f1@3 f#1@3",
  AI: "~ g#1@4 a1@4 ~ a#1@4 b1@3 c#2@4 e2@4 ~ c#2@3 e1@2 ~",
  AJ: "~ e1 ~@3 e1@2 ~@3 e1@2 ~ e1@2 ~@2 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2 ~",
  AK: "~ e1@3 ~ f#1@2 ~@2 f#1@3 ~ g#1@2 ~@2 g#1@2 ~@2 g#1@3 ~ e1@4 a1@2 ~",
  AL: "~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~",
  AM: "~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 g#1@3 ~ a1@2 ~@2 f#1@3 ~ f#1@2 ~",
  AN: "~ f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 a1@4 b1@4 c#2@4 c#1@2 ~",
  AO: "~ c#1@2 ~@2 c#1@2 ~@2 c#1@4 b1@2 ~@2 b1@4 c#2@2 ~@2 a1@4 a1@2 ~",
  AP: "[~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@9 ~@19 e1@4 e1@3]/2",
  AQ: "[~@9 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@10 ~@2 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@10 ~@2 e1@2 ~@2 e1@10 ~@2 e1@3 ~ e1@10 ~@2 e1@2 ~@2 e1@9 ~@3 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@3]/7",
  AR: "[~@9 e1@2 ~@2 e2@4 e2@3 ~ b1@4 e1@56 ~@15]/3",
})).s("gm_electric_bass_finger").gain(0.69)

// chords · harpsichord · "PRG.CHANGE"
const harpsichord = note("<~@40 A@7 B@6 ~@30 C@7 D@5 E@7 F@6 ~@10>".pickRestart({
  A: "[~@31 e4@12 [g#3,b3,e4]@32 [b3,e4,g#4]@15 ~@13 [a3,c#4]@4 b3@12 [g#3,c#4]@4 [a3,e4]@20 f#4@8 e4@4 f#4@4 [a3,c#4,e4]@12 [g#3,b3,e4]@32 [b3,e4,g#4]@16 e4 ~ e4 ~ e4, ~@31 a3@72 ~@4 g#3@10 ~@26 a3@16 ~@65, ~@95 a2@48 ~@81, ~@107 a3 ~@15 c#4@28 ~@73]/7", // E A C#5 A5 A E
  B: "[~@3 e4 ~@3 [a3,c#4]@4 e4@10 ~@2 e4@3 ~ e4@15 ~ e4@7 ~ e4@4 ~@4 e2@4 ~@8 a3@4 b3@8 a3@2 f#3@2 c#3@3 ~ c#3@3 ~@5 g#3@4 c#4@4 e4@3 ~ d#4@4 b3@3 ~ g#3@6 ~@2 b3@8 a3@3 ~ a3@4 ~@4 a3@3 ~ a3@3 ~ a3@3 ~ [a2,e3,a3]@5 ~@28, ~@7 e4@3 ~ [g#3,b3]@15 ~ [a3,c#4]@36 f#2@23 ~@9 c#3@14 ~@2 b2@15 e3@32 ~@34, ~@55 e4@8 ~@62 a2@32 ~@35, ~@143 e4@17 ~@32]/6", // A A5 G#m A
  C: "[~@30 [a3,c#4,e4]@12 [g#3,b3,e4]@32 [b3,e4,g#4]@15 ~@13 [a3,c#4]@4 b3@12 [g#3,c#4]@4 [a3,e4]@20 f#4@8 e4@4 f#4@4 [a3,c#4,e4]@12 [g#3,b3,e4]@32 [b3,e4,g#4]@16 e4 ~ e4 ~ e4 ~, ~@47 a2@24 ~@41, ~@53 g#3@5 ~@13 a3@8 ~@33, ~@106 a3 ~@15 c#4@28 ~@74]/7", // A E A C#5 A5 A E
  D: "[~@2 e4 ~@3 [a3,c#4]@4 e4@10 ~@2 e4@3 ~ e4@15 ~ e4@7 ~ e4@4 ~@4 e2@4 ~@8 a3@4 b3@8 a3@2 f#3@2 c#3@3 ~ c#3@3 ~@5 g#3@4 c#4@4 e4@3 ~ d#4@4 b3@3 ~ g#3@6 ~@2 b3@8 a3@3 ~ a3@4 ~@4 a3@3 ~ a3@3 ~ a3@3 ~ [e4,a4]@2, ~@6 e4@3 ~ [g#3,b3]@15 ~ [a3,c#4]@36 f#2@23 ~@9 c#3@14 ~@2 b2@15 e3@32 ~@3, ~@27 e4@4 ~@31 a2@16 ~@2, ~@71 [e4,a4]@8 ~]/5", // A A5 G#m A A5
  E: "[~@2 a3@4 ~@4 a3@3 ~ a3@3 ~ a3@3 ~ e4@4 a3@3 ~ [a3,c#4,e4]@12 [g#3,b3,e4]@31 [b3,e4,g#4]@15 ~@14 [a3,c#4]@4 b3@11 [g#3,c#4]@5 [a3,e4]@20 f#4@7 e4@4 ~ f#4@3 [a3,c#4,e4]@12 ~ [g#3,b3,e4]@31 ~ [e4,g#4]@15 e4 ~ e4 ~ e4 ~@2, ~@3 [e4,a4]@8 ~@36 a2@24 ~@41, ~@106 g#3@10 ~@26 a3@15 ~@44 b3@14 ~@9, ~@106 a3 ~@15 c#4@28 ~@74]/7", // A E A C#5 A5 A E A5
  F: "[~ e4 ~@3 [a3,c#4]@4 e4@10 ~@2 e4@3 ~ e4@15 ~ e4@7 ~ e4@4 ~@4 e2@4 ~@8 a3@4 b3@8 a3@2 f#3@2 c#3@3 ~ c#3@3 ~@5 g#3@4 c#4@4 e4@3 ~ d#4@4 b3@3 ~ g#3@7 ~@2 b3@7 a3@3 ~ a3@4 ~@4 a3@3 ~ a3@3 ~ a3@3 ~ [a2,e3,a3]@5 ~@30, ~@5 e4@3 ~ [g#3,b3]@15 ~ [a3,c#4]@36 f#2@23 ~@9 c#3@14 ~@2 b2@16 ~@16 e4@17 ~@34, ~@53 e4@8 ~@63 [a2,e3]@32 ~@36]/6", // A A5 G#m A A5
})).s("gm_harpsichord").gain(0.5)

// chords · lead 5 charang · "SAW WAVE"
const lead_5_charang = note(`<
  ~@5 A@8 B@6 C@5 D@6 E@3 F@8 G@5 H@6 I@8 J@7 K@6 L@3 M@8 N@5 O@6 P@5 Q@7 R@8 S@3
>`.pickRestart({
  A: "[~@4 [b3,d#4,f#4,b4,d#5]@3 [a3,c#4,e4]@29 [b3,d#4,f#4,d#5]@3 [a3,c#4,e4]@25, ~@28 [a4,c#5]@16 ~@100 b4@9 ~@3 [a4,c#5]@16 ~@84]/8", // B A B A
  B: "[~@4 [b3,d#4,f#4,b4,d#5]@3 [a3,c#4,e4]@13 [b3,d#4,f#4,b4,d#5]@3 [a3,c#4,e4]@13 [b3,d#4,f#4,b4,d#5]@3 [a3,c#4,e4]@9, ~@7 [a4,c#5]@4 ~@12 [a4,c#5]@4 ~@12 [a4,c#5]@4 ~@5]/6", // B A B A B A
  C: "[~@16 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@19 [a3,c#4,e4,a4,c#5]@12 [g#3,b3,e4]@52 [a3,c#4,f#4,a4,c#5]@12 ~ [b3,e4]@36, ~@28 [a4,c#5]@16 ~@15 [g#4,b4]@16 ~@48 g#4@16 ~@21, ~@31 b4@4 ~@5]/5", // B A E F#m E5 A G#m
  D: "[~@15 [b3,d#4,f#4,b4,d#5]@12 ~ [a3,c#4,e4]@51 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@37, ~@27 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@21]/6", // B A B A B A
  E: "[~@15 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@20 [a3,c#4,e4,c#5]@12 [g#3,b3,e4]@37, ~@27 [a4,c#5]@16 ~@4 a4@9 ~@3 [g#4,b4]@16 ~@21]/3", // B A E A G#m
  F: "[~@15 [a3,c#4,f#4,a4,c#5]@12 [b3,e4]@64 [c#3,c#4,e4,g#4]@68 [f#3,c#4,f#4,a#4]@64 [f#3,c#4,f#4,a4]@16 [b3,c#4,f#4,a4]@14 ~@2 [a3,c#4,f#4], ~@27 [g#4,b4]@16 ~@213]/8", // F#m E5 C#m F# F#m G#m
  G: "[~@11 [g#3,b3,e4]@32 [g#3,b3,e4,g#4]@20 [a3,c#4,e4]@28 [f#3,a3,c#4,e4]@20 [a3,c#4,e4,f#4]@16 [a3,c#4,f#4]@12 [g#3,b3,e4]@21]/5", // E A F#m7 F#m E
  H: "[~@11 [g#3,b3,e4,g#4]@20 [a3,c#4,e4]@28 [a3,c#4,e4]@36 [f#3,a3,c#4,f#4]@32 [g#3,c#4,e4,g#4]@16 [g#3,b3,d#4,g#4]@16 [a3,c#4,e4]@32 [a3,c#4,e4]]/6", // E A F#m C#m G#m A
  I: "[~@15 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@51 [b3,d#4,f#4,b4,d#5]@12 ~ [a3,c#4,e4]@37, ~@27 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@21]/8", // B A B A B A B A
  J: "[~@14 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@20 [a3,c#4,e4,a4,c#5]@12 [g#3,b3,e4]@52 ~ f#4@11 [b3,d#4]@38, ~@13 [a4,c#5]@8 ~@24 [a4,c#5]@8 ~@8 [g#4,b4]@8 ~@18 [a3,c#4,a4,c#5]@6 [g#4,b4]@8 ~@11]/7", // B A B A E B A G#m …
  K: "[~@7 [b3,d#4,f#4,b4,d#5]@6 [a3,c#4,e4]@26 [b3,d#4,f#4,d#5]@6 [a3,c#4,e4]@26 [b3,d#4,f#4,b4,d#5]@6 [a3,c#4,e4]@19, ~@26 [a4,c#5]@16 ~@36 b4@9 ~@3 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@22]/6", // B A B A B A
  L: "[~@7 [b3,d#4,f#4,b4,d#5]@6 [a3,c#4,e4]@10 [a3,c#4,e4,a4,c#5]@6 [g#3,b3,e4]@19, ~@13 [a4,c#5]@8 ~@8 [g#4,b4]@8 ~@11]/3", // B A E A G#m
  M: "[~@7 [a3,c#4,f#4,a4,c#5]@6 [b3,d#4]@32 [c#3,c#4,e4,g#4]@34 [f#3,c#4,f#4,a#4]@32 [f#3,c#4,f#4,a4]@8 [b3,c#4,f#4,a4]@7 ~ [a3,c#4,f#4], ~@13 [g#4,b4]@8 ~@107]/8", // F#m B C#m F# F#m G#m
  N: "[~@5 [g#3,b3,e4]@16 [g#3,b3,e4,g#4]@10 [a3,c#4,e4]@14 [f#3,a3,c#4,e4]@10 [a3,c#4,e4,f#4]@8 [a3,c#4,f#4]@6 [g#3,b3,e4]@11]/5", // E A F#m7 F#m E
  O: "[~@5 [g#3,b3,e4,g#4]@10 [a3,c#4,e4]@14 [a3,c#4,e4]@18 [f#3,a3,c#4,f#4]@16 [g#3,c#4,e4,g#4]@8 [g#3,b3,d#4,g#4]@8 [a3,c#4,e4]@16 [a3,c#4,e4]]/6", // E A F#m C#m G#m A
  P: "[~@10 [b3,c#4,f#4,a4]@18 ~@2 [a3,c#4,f#4]@12 [g#3,b3,e4]@31 [g#3,b3,e4,g#4]@20 ~ [a3,c#4,e4]@28 [f#3,a3,c#4,e4]@20 [a3,c#4,e4,f#4]@15 [a3,c#4,f#4]@3]/5", // F#m E A F#m7 F#m
  Q: "[~@10 [g#3,b3,e4]@32 [g#3,b3,e4,g#4]@19 [a3,c#4,e4]@28 [a3,c#4,e4]@36 [f#3,a3,c#4,f#4]@32 [g#3,c#4,e4,g#4]@16 [g#3,b3,d#4,g#4]@16 [a3,c#4,e4]@32 [a3,c#4,e4]@3]/7", // E A F#m C#m G#m A
  R: "[~@13 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,d#5]@12 [a3,c#4,e4]@39, ~@25 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@36 b4@9 ~@3 [a4,c#5]@16 ~@23]/8", // B A B A B A B A
  S: "[~@13 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4,a4,c#5]@64 ~@7]/3", // B A
})).s("gm_lead_5_charang").gain(0.48)

// other · piano · "PRG.CHANGE"
const piano = note("<A B C@2 D@14 E F G@8 H@7 I@6 ~@77>".pickRestart({
  A: "~ e1 ~@4 e1@2 ~@8", B: "e1 ~ e3 ~@2 e3 ~@2", C: "e1 ~ e3 ~@2 e3 ~ e3", D: "e1 e2 e3 e1 e2 e3 e2 e3",
  E: "e1@3 e2@4 ~ e3@4 e1@4 e2@4 e3@3 e2@4 ~ e3@4", F: "e1@3 e2@4 ~ e3@3 e1@4 ~ e2@4 e3@3 e2@4 ~ e3@4",
  G: "[e1@4 e2@3 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 ~ e3@3 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 ~ e3@3 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 ~ e2@3 e3@4 e2@4 ~ e3@3 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1]/8",
  H: "[~@3 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1]/7",
  I: "[~@3 e2@4 e3@4 e1@4 [e3,g#4]@4 [c3,d#4]@4 [c#3,e4]@4 [c#4,e4]@52 [c#3,b3,c#4,e4,g#4]@12 ~@4 f#2@48 ~@16 f#2@4 g#2@4 a2@4 a#2@4 b2@4 [c#3,c#4]@4 [e3,e4]@4 [c#3,c#4]@4 ~, ~@27 [c#2,g#3]@59 ~@5 [f#3,a#3]@51 ~@17 [c#4,e4]@16 ~@17]/6", // E Cm C#m C#m7 C# E C# C#5 …
})).s("gm_piano").gain(0.64)

// other · piano · "PRG.CHANGE" · soft notes
const piano_soft = note("<[~ e2 e3 ~ e2 e3 e2 e3] [~ e2 ~ e1 e2 ~ e2 e3] [~ e2 ~ e1 e2 ~ e2 ~]!2 ~@114>")
  .s("gm_piano").gain(0.32)

// other · epiano2 · "PRG.CHANGE"
const epiano2_2 = note("<~@57 A@2 ~@2 B@2 C D E F G ~@50>".pickRestart({
  A: "[~@15 e4@3 a4@4 b4@4 ~ e5@22 ~@15]/2", B: "[~@10 e4 ~@3 e4@4 a4@4 b4@4 e5@19 ~@5 a4@4 ~ b4@3 a4@6]/2",
  C: "~@2 a4@4 b4@4 e5@10 ~@2 e5 ~@9", D: "~@2 b4@3 ~ g#5@2 ~@10 b4@2 ~@2 g#5@4 f#5@6",
  E: "~@2 g#5@4 e5@4 b4@4 ~ a4@3 f#4@4 a4@4 b4@5 ~", F: "~@2 g#4 ~@3 g#4 ~@7 g#4 ~@7 e5@4 d#5@3 ~ b4@2",
  G: "~@6 g#4@3 ~ f#4@4 g#4@4 e4@4 b3@4 a3@6",
})).s("gm_epiano2").gain(0.8)

// other · electric guitar jazz · "PRG.CHANGE"
const electric_guitar_jazz = note("<~@68 A@8 B@8 ~@11 C ~@22>".pickRestart({
  A: "[~@3 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1]/8",
  B: "[~ e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 [e3,g#4]@2 [c3,d#4]@2 [c#3,e4]@2 [c#4,e4]@26 [c#3,b3,c#4,e4,g#4]@6 ~@2 f#2@24 ~@8 f#2@2 g#2@2 a2@2 a#2@2 b2@2 [c#3,c#4]@2 [e3,e4]@2 [c#3,c#4]@2 ~, ~@90 [c#2,g#3]@59 ~@5 [f#3,a#3]@51 ~@17 [c#4,e4]@16 ~@18]/8", // E Cm C#m C#m7 C# E C# C#5 …
  C: "~@5 a#2@2 b2@2 [c#3,c#4]@2 [e3,e4]@2 [c#3,c#4]@2 ~", // C# E C#
})).s("gm_electric_guitar_jazz").gain(0.64)

// drums · kick
const kick = s("bd").struct(`<
  ~@24 A B@15 C B D B@9 E B@5 F G@8 H G@15 I G J G@9 K L M N O P@7 Q P@7 R ~@2
>`.pickRestart({
  A: "~@31 x", B: "~@11 x ~@3 x ~@11 x ~@3 x", C: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
  D: "~@11 x ~@3 x ~@15 x", E: "~@27 x ~@3 x", F: "~@10 x ~@3 x ~@12 x ~@2 x ~", G: "~@5 x ~ x ~@5 x ~ x",
  H: "~@5 x ~ x ~@3 x ~ x ~ x", I: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", J: "~@5 x ~ x ~@7 x", K: "~@13 x ~ x",
  L: "~@10 x ~@3 x ~@10 x ~@4 x ~", M: "~@9 x ~@4 x ~@15 x ~", N: "~@9 x ~@3 x ~@12 x ~@2 x ~@2",
  O: "~@10 x ~@3 x ~@10 x ~@3 x ~@2", P: "~@9 x ~@3 x ~@11 x ~@3 x ~@2", Q: "~@25 x ~@3 x ~@2", R: "~@25 x ~@6",
})).gain(0.67)

// drums · snare
const snare = s("sd").struct(`<
  ~@25 A@10 B A@4 C A D A@9 ~ A@3 B A E@2 F@7 G F@15 H F I F@9 J K L M@9 ~ M@7 ~@3
>`.pickRestart({
  A: "~@7 x ~@15 x ~@8", B: "~@7 x ~@24", C: "~@23 x ~@3 x ~ x ~@2", D: "~@7 x ~@15 x ~@3 x ~ x ~@2",
  E: "~@7 x ~@14 x ~@9", F: "~@3 x ~@7 x ~@4", G: "~ x ~ x ~@3 x ~ x ~@6", H: "~@11 x ~ x!2 ~",
  I: "~@3 x ~@7 x ~ x!2 ~", J: "~@3 x ~ x ~ x ~@8", K: "~@5 x ~@16 x ~@9", L: "~@6 x ~@14 x ~@3 x ~@2 x ~@3",
  M: "~@5 x ~@15 x ~@10",
})).gain(0.67)

// drums · low tom
const low_tom = s("lt").struct("<~@13 A ~@21 B ~@16 C ~@3 D ~@38 E ~@11 F ~@7 G ~@2>".pickRestart({
  A: "~@11 x ~@4", B: "~@27 x ~ x ~@2", C: "~@15 x ~@5 x ~@10", D: "~@23 x ~@8", E: "~@5 x ~@2", F: "~@13 x ~@6 x ~@11",
  G: "~@13 x ~@5 x ~@12",
})).gain(0.53)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@14 A@4 B C@2 B C@2 D E@10 F E@4 ~ G H I J I@7 K E@3 L M N O P@7 Q P@10 R P@4 ~ S T U V U@3 W U@3 ~ X Y Z AA I@3 AB
  I@2 AC AD AE@7 ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~@8 x ~@14 x ~@8", C: "~@7 x ~@15 x ~@8", D: "~@7 x ~@15 x ~@7 x",
  E: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~ x ~ x", F: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x",
  G: "~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  H: "~ x ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  I: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  J: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@6", K: "~@31 x",
  L: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@7 x", M: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@2 x ~@3 x ~@4 x ~ x ~ x",
  N: "~@3 x ~@2 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@4 x!2 ~ x ~", O: "~@3 x ~@3 x ~@2 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~ x ~ x ~",
  P: "~ x ~ x ~ x!3 ~ x ~ x ~ x!3", Q: "~ x ~ x ~ x!3 ~ x!3 ~ x!3", R: "~ x ~ x ~ x!3 ~ x!3 ~ x!2 ~", S: "~ x!15",
  T: "x!4 ~ x!11", U: "x!16", V: "x!13 ~@3", W: "x!15 ~",
  X: "~@2 x ~ x!2 ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~@2 x ~ x ~",
  Y: "x!2 ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x!2",
  Z: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x!2 ~ x ~ x",
  AA: "~ x ~ x ~ x ~ x ~@2 x!2 ~@2 x!2 ~ x ~ x ~ x ~ x ~@7 x",
  AB: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@5 x ~ x",
  AC: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2", AD: "~@29 x ~@2",
  AE: "~ x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~ x ~ x ~@2",
})).gain(0.47)

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A ~@21 B ~@16 C ~@3 D ~@38 D ~@11 E ~@7 F ~@2>".pickRestart({
  A: "~@21 x ~@10", B: "~@19 x ~ x ~ x ~@8", C: "~@11 x ~@8 x ~@11", D: "~@19 x ~@12", E: "~@9 x ~@9 x ~@12",
  F: "~@9 x ~@8 x ~@13",
})).gain(0.6)

// drums · high tom
const high_tom = s("ht").struct("<~@13 A ~@38 B ~@42 C ~@11 D ~@7 E ~@2>".pickRestart({
  A: "~@4 x!2 ~@2", B: "~@3 x ~@3 x ~@11 x ~@12", C: "~ x ~@7 x ~@6", D: "~ x ~@3 x ~@12 x ~@13",
// … 25 more lines

More by Anna Oxa