Strudelify

Un Emozione da Poco - Pagliaccio

Anna Oxa

KeyF♯ minorTempo116 bpm
0:00/0:00
// Un Emozione da Poco - Pagliaccio — Anna Oxa
// 116 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 125 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 · piano
const piano = note(`<
  ~ A B C D E F G ~@11 H@2 I J K L K L K M I J K L K L K M N O P Q R S T U N O P Q R S T V A B C D E F G ~@5 H@2 I J K L
  K L K M N O P Q R S T U N O P Q R S T U W X Y R Z AA AB AC W X Y R Z AA AB AC W X Y R Z AA AB AC W X Y R Z AA AB AD
  AE@2
>`.pickRestart({
  A: "[a2,e4], [c#4,a4]@7 ~", B: "[g#2,b3,e4,g#4]@15 ~", C: "[f#2,a3,d4,f#4]@15 ~", D: "[f2,a3,d4,f4]@15 ~",
  E: "[e2,a3,c#4,e4]@7 ~ [e2,g#3,b3,e4]@8", F: "[d2,a#3,f4]@13 ~@3, d4@11 ~@5", G: "[e2,g#3,b3,f4] ~",
  H: "[[c#3,g#3,c#4]@31 ~]/2", // C#5
  I: "[e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~", // A
  J: "[e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~", // E
  K: "[a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D
  L: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~", // A
  M: "[g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~", // C#
  N: "[a#5,c#6,f#6] ~ [a#5,c#6,f#6] ~ [a#5,c#6,f#6] ~ [a#5,c#6,f#6] ~ [a#5,c#6,f#6] ~ [a#5,c#6,f#6] ~ [a#5,c#6,f#6] ~ [a#5,c#6,f#6] ~", // F#
  O: "[g#5,c#6,f6] ~ [g#5,c#6,f6] ~ [g#5,c#6,f6] ~ [g#5,c#6,f6] ~ [g#5,c#6,f6] ~ [g#5,c#6,f6] ~ [g#5,c#6,f6] ~ [g#5,c#6,f6] ~", // C#
  P: "[f#5,a#5,d#6] ~ [f#5,a#5,d#6] ~ [f#5,a#5,d#6] ~ [f#5,a#5,d#6] ~ [f#5,a#5,d#6] ~ [f#5,a#5,d#6] ~ [f#5,a#5,d#6] ~ [f#5,a#5,d#6] ~", // D#m
  Q: "[f5,a#5,d6] ~ [f5,a#5,d6] ~ [f5,a#5,d6] ~ [f5,a#5,d6] ~ [f5,a#5,d6] ~ [f5,a#5,d6] ~ [f5,a#5,d6] ~ [f5,a#5,d6] ~", // A#
  R: "[f#5,b5,d#6] ~ [f#5,b5,d#6] ~ [f#5,b5,d#6] ~ [f#5,b5,d#6] ~ [f#5,b5,d#6] ~ [f#5,b5,d#6] ~ [f#5,b5,d#6] ~ [f#5,b5,d#6] ~", // B
  S: "[f#5,a#5,c#6] ~ [f#5,a#5,c#6] ~ [f#5,a#5,c#6] ~ [f#5,a#5,c#6] ~ [f#5,a#5,c#6] ~ [f#5,a#5,c#6] ~ [f#5,a#5,c#6] ~ [f#5,a#5,c#6] ~", // F#
  T: "[c6,d#6,g#6] ~ [c6,d#6,g#6] ~ [c6,d#6,g#6] ~ [c6,d#6,g#6] ~ [c6,d#6,g#6] ~ [c6,d#6,g#6] ~ [c6,d#6,g#6] ~ [c6,d#6,g#6] ~", // G#
  U: "[c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~", // C#
  V: "[c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~ [c#6,f6,g#6] ~@7", // C#
  W: "[b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~", // G
  X: "[a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~", // D
  Y: "[g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~", // Em
  Z: "[g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~", // C
  AA: "[g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~", // G
  AB: "[c#6,e6,a6] ~ [c#6,e6,a6] ~ [c#6,e6,a6] ~ [c#6,e6,a6] ~ [c#6,e6,a6] ~ [c#6,e6,a6] ~ [c#6,e6,a6] ~ [c#6,e6,a6] ~", // A
  AC: "[d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~", // D
  AD: "[d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6] ~@2 [d6,f#6,a6] ~ [d6,f#6,a6] ~ [d6,f#6,a6]", // D
  AE: "[~ [g5,b5,d6]@8 ~@7]/2", // G
})).s("gm_piano").gain(0.42).pan(0.7)

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

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A B C D E F G H ~@21 I J K@2 L ~@3 M@2 N@2 O@2 P@2 Q@2 R@2 O@2 S@2 B C D E F G H ~@7 I J K@2 L ~@3 M@2 N@2 O@2 P@2 M@2
  N@2 O@2 P@2 T@2 U@2 V@2 W@2 T@2 U@2 V@2 W@2 T@2 U@2 V@2 W@2 T@2 U@2 V@2 X@4
>`.pickRestart({
  A: "~@14 [d5,e5] [f#5,g#5]", B: "a5 ~@3 a5 ~@3 e5@5 ~@3", C: "~@4 b5 ~@3 e5@5 ~ c#5 ~",
  D: "d5 ~ c#5 ~ d5 ~ e5 ~ f#5 ~ e5 ~ f#5 ~ g#5 ~", E: "a4 g4@2 a4 b4 a4 ~ b4 c#5 b4 ~ c#5 d5 c#5 ~ d5",
  F: "e5 d5 e5 f#5 g#5 f#5 g#5 a5 b5 a5 b5 c#6 d6 c#6 d6 e6", G: "f6 d6 a#5 f5 d6 a#5 f5 d5 a#5 f5 d5 a#4 f5 d5 a#4 f4",
  H: "e6 b5 g#5 e5 b5 g#5 e5 b4 e5 ~@7", I: "~@10 c#6 ~ d6 ~ e6 ~", J: "~@10 g#5 ~ a5 ~ b5 ~",
  K: "[a5@25 ~ a5 ~ c#6 ~ e6 ~]/2", L: "f#6 ~@15", M: "[~@2 a#5 ~@3 b5 ~@3 c#6@3 ~ c#6@18]/2",
  N: "[~@2 f#5 ~@3 g#5 ~@3 a#5@3 ~ a#5@18]/2", O: "[~@2 d#5@2 ~@2 f#5@2 ~@2 b5@3 ~ c#6@16 ~@2]/2",
  P: "[c6@2 c#6@2 ~@2 d#6@3 ~ c6@3 ~ c#6@17 ~]/2", Q: "[~@2 a#5 ~@3 b5 ~@3 c#6@22]/2",
  R: "[~@2 f#5 ~@3 g#5 ~@3 a#5@21 ~]/2", S: "[c6@2 c#6@2 ~@2 d#6@3 ~ c6@3 ~ c#6@10 ~@6 [d5,e5] [f#5,g#5]]/2",
  T: "[~@2 b5 ~@3 c6 ~@3 d6@3 ~ d6@18]/2", U: "[~@2 g5 ~@3 a5 ~@3 b5@3 ~ b5@18]/2",
  V: "[~@2 e5@2 ~@2 g5@2 ~@2 c6@3 ~ d6@18]/2", W: "[c#6@2 d6@2 ~@2 e6@3 ~ c#6@3 ~ d6@18]/2",
  X: "[c#6@2 d6@2 ~@2 e6@3 ~ c#6@3 ~ d6@19 ~ b5@16 ~@14]/4",
})).s("gm_string_ensemble_1").gain(0.51).pan(0.4)

// chords · electric guitar muted
const electric_guitar_muted = note("<~@8 A@2 B C D E A@2 B C D ~@41 A@2 B C D ~@60>".pickRestart({
  A: "[c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~", // F#5
  B: "[c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [d3,a3] ~", // F#5 D5
  C: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~", // D5
  D: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", // E5
  E: "[c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~", // C#5
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note("<~@7 A B A C D E ~ B A C D F ~@40 A B A C D F ~@60>".pickRestart({
  A: "~@7 [c#3,f#3,a3]", B: "[c#3,f#3,a3] ~@7", C: "~@7 [f#3,a3,d4]", D: "~@14 [f#3,a3,d4] ~", E: "[g#3,b3,e4] ~@7",
  F: "[g#3,b3,e4] ~@15", // E
})).s("gm_distortion_guitar").gain(0.46).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@19 A B C D E F G H G I C D E F G H G I J K L@2 M N O P J Q@4 R@2 S ~@12 A B C D E F G H G I J Q@4 T@2 U J V@4 T@2 W
  X Y@4 Z@2 AA X Y@4 Z@2 AA X AB@4 Z@2 AA X Y@4 Z@2 AC ~@2
>`.pickRestart({
  A: "[c#3,g#3] ~ [c#3,g#3] ~ c#3 ~ [c#3,g#3] ~ [c#3,g#3] ~ c#3 ~ [c#3,g#3] ~ c#3 ~", // C#5
  B: "[c#3,g#3] ~ [c#3,g#3] ~ c#3 ~ g#3 ~ [c#3,g#3] ~ c#3 ~ [c#3,g#3] ~ [c#3,g#3] ~", C: "~@3 c#4 [a3,c#4]@4, c#3@15 ~",
  D: "~@6 e4@2 [b3,e4]@7 ~, e3", E: "~@4 d4@3 ~ [a3,d4]@8, f#3@15 ~", F: "e3@5 ~@3 [a3,c#4]@6 ~@2, ~@3 e3@4 ~",
  G: "~@6 a3 ~ [a3,d4]@8, d3", H: "~@6 c#4 ~ [c#4,e4]@7 ~, e3", I: "~@6 c#4 ~ [g#3,c#4]@7 ~, f3",
  J: "[f#3,a#3,c#4,f#4]@13 ~@3", K: "[f3,a#3,c#4]@15 ~", L: "[[d#3,f#3,a#3,d#4]@7 ~ d4@7 ~, ~@15 [d3,f3,a#3]@14 ~@3]/2",
  M: "[b2,f#3,b3,d#4]@7 ~", N: "[a#2,f#3,a#3,c#4]@15 ~", O: "[g#3,c4,d#4]@13 ~@3, d#3@15 ~",
  P: "[c#3,f3,g#3,c#4]@13 ~@3", // C#
  Q: "[~ f5@2 f#5@2 g#5@2 ~ [d#3,f#3,a#3,d#4]@7 ~@2 f5@2 f#5@2 g#5@2 ~ [b2,f#3,b3,d#4]@7 ~, [f3,a#3,c#4]@14 f#5@12 ~@5 [d3,f3,a#3]@14 ~@19, ~@16 d4@7 f#5@6 ~@3]/4", // D#m B A#m A#
  R: "[~@2 g#5@4 a#5@4 f#5@4 ~@2 [g#3,c4,d#4]@13 ~@3, [a#2,f#3,a#3,c#4]@7 g#5@5 ~@4, ~@16 d#3@15 ~]/2", // G# F#
  S: "~ f#5@2 g#5@2 ~@3, [c#3,f3,g#3,c#4]@13 ~@3", // C#
  T: "[f#5@2 g#5@4 a#5@4 f#5@4 ~@2 [g#3,c4,d#4]@13 ~@3, [a#2,f#3,a#3,c#4]@16 d#3@15 ~, ~@7 g#5@5 ~@4]/2", // G# F#
  U: "g#5 f#5@2 g#5@2 f5@2 ~, [c#3,f3,g#3,c#4]@13 ~@3", // C#
  V: "[~@2 f5@4 f#5@4 g#5@4 ~@2 [d#3,f#3,a#3,d#4]@13 ~@5 f5@4 f#5@4 g#5@4 ~@2 [b2,f#3,b3,d#4]@14 ~@2, [f3,a#3,c#4]@14 f#5@12 ~@5 [d3,f3,a#3]@14 ~@19, ~@16 d4@7 f#5@6 ~@3]/4", // D#m B A#m A#
  W: "g#5 f#5@2 g#5@2 f5@2 ~, [c#3,f3,g#3]@13 ~@3", X: "[g3,b3,d4,g4]@13 ~@3",
  Y: "[~ f#5@2 g5@2 a5@2 ~ [e3,g3,b3,e4]@7 ~@2 f#5@2 g5@2 a5@2 ~ [c3,g3,c4,e4]@7 ~, [f#3,b3,d4]@14 g5@12 ~@5 [d#3,f#3,b3]@14 ~@19, ~@16 d#4@7 g5@6 ~@3]/4", // Em C Bm B
  Z: "[g5@2 a5@4 b5@4 g5@4 ~@2 [a3,c#4,e4]@13 ~@3, [b2,g3,b3,d4]@16 e3@15 ~, ~@7 a5@5 ~@4]/2", // A G
  AA: "a5 g5@2 a5@2 f#5@2 ~, [d3,f#3,a3,d4]@13 ~@3", // D
  AB: "[~ f#5@2 g5@2 a5@2 ~ [e3,g3,b3,e4]@7 ~@2 f#5@2 g5@2 a5@2 ~ [c3,g3,c4,e4]@7 ~, [f#3,b3,d4]@14 g5@12 ~@5 [d#3,f#3,b3]@14 ~@19, ~@32 d#4@14 g5@13 ~@5]/4", // Em C Bm B
  AC: "a5@2 g5@4 a5@4 ~ f#5@4 ~, [d3,f#3,a3,d4]@7 ~", // D
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.6)

// chords · pad warm
const pad_warm = note("<A@8 ~@27 B@7 C@8 D@2 E@8 ~@12 F@8 G@8 H@8 I@24 J@3 K@2>".pickRestart({
  A: "[~@15 [c#4,e4,a4]@9 ~ [c#4,e4,a4]@3 ~ [c#4,e4,a4] ~ [b3,e4,g#4]@9 ~ [b3,e4,g#4]@4 [b3,e4,g#4]@2 [d4,f#4,a4]@9 ~ [d4,f#4,a4]@4 [d4,f#4,a4] ~ [d4,f4,a4]@9 ~ [d4,f4,a4]@4 [d4,f4,a4]@2 [c#4,a4]@7 ~ [b3,g#4]@8 [d4,f4,a#4]@16 [b3,e4,g#4]@8 ~@9, ~@79 e4@15 ~@34]/8", // A E D Dm F#m E A# E
  B: "[~@16 [f4,g#4]@15 [c#4,f#4,a#4]@13 ~@3 [f4,g#4]@15 ~ [d#4,f#4]@15 ~ [d4,f4]@16 [b3,d#4]@14 ~@3, ~@15 c#4@15 ~@33 a#3@32 f#4@17]/7", // Fm F# Fm D#m Dm B
  C: "[[a#3,c#4]@15 [c4,d#4]@14 ~@2 [c#4,f4]@15 ~ [f#4,a#4]@14 ~@2 [f4,g#4]@15 ~ [d#4,f#4]@15 ~ [d4,f4]@16 [b3,d#4]@14 ~@3, ~@15 g#4@31 ~ c#4@31 ~ a#3@32 f#4@17]/8", // A#m Cm C# F# Fm D#m Dm B
  D: "[[a#3,c#4]@15 [c4,d#4]@14 ~@2 [c#4,f4], ~@15 g#4@16 ~]/2", // A#m Cm C#
  E: "[~@15 [c#4,e4,a4]@9 ~ [c#4,e4,a4]@3 ~ [c#4,a4] ~ [b3,e4,g#4]@9 ~ [b3,e4,g#4]@4 [b3,e4,g#4]@2 [d4,f#4,a4]@9 ~ [d4,f#4,a4]@4 [d4,f#4,a4] ~ [d4,f4,a4]@9 ~ [d4,f4,a4]@4 [d4,f4]@2 [c#4,a4]@7 ~ [b3,g#4]@8 [d4,f4,a#4]@16 [b3,e4,g#4]@8 ~@9, ~@29 e4@2 ~@46 a4 ~ e4@15 ~@34]/8", // A F#m E D Dm F#m E A# …
  F: "[~@15 [d4,f#4,a4]@15 ~@2 [f4,g#4]@15 [c#4,f#4,a#4]@13 ~@3 [f4,g#4]@15 ~ [d#4,f#4]@15 ~ [d4,f4]@16 [b3,d#4]@14 ~@3, ~@31 c#4@15 ~@33 a#3@32 f#4@17]/8", // D Fm F# Fm D#m Dm B
  G: "[[a#3,c#4]@15 [c4,d#4]@14 ~@2 [c#4,f4]@15 ~ [c#4,f#4,a#4]@13 ~@3 [f4,g#4]@15 ~ [d#4,f#4]@15 ~ [d4,f4]@16 [b3,d#4]@14 ~@3, ~@15 g#4@31 ~@33 a#3@32 f#4@17]/8", // A#m Cm C# F# Fm D#m Dm B
  H: "[[a#3,c#4]@15 [c4,d#4]@14 ~@2 [c#4,f4]@15 ~ [g4,b4]@14 ~@2 [f#4,a4]@15 ~ [e4,g4]@15 ~ [d#4,f#4]@16 [c4,e4]@14 ~@3, ~@15 g#4@31 ~ d4@31 ~ b3@32 g4@17]/8", // A#m Cm C# G F#m Em D#m C
  I: "[[b3,d4]@15 [c#4,e4]@14 ~@2 [d4,f#4]@15 ~ [g4,b4]@14 ~@2 [f#4,a4]@15 ~ [e4,g4]@15 ~ [d#4,f#4]@16 [c4,e4]@14 ~@3, ~@15 a4@31 ~ d4@31 ~ b3@32 g4@17]/8", // Bm C#m D G F#m Em D#m C
  J: "[[b3,d4]@15 [c#4,e4]@14 ~@2 [d4,f#4]@17, ~@5 a4@11]/3", K: "[~ [g3,d4,g4]@17 ~@14]/2",
})).s("gm_pad_warm").gain(0.32).pan(0.3)

// other · tubular bells
const tubular_bells = note(`<
  ~ A B C A D E F ~@29 G H I C J I H K G H I C J I H K A B C A D E F ~@15 G H I C J I H K G H I C J I H K J A L M N L A
  C J A L M N L A C J A L M N L A C J A L M N L A C O ~
>`.pickRestart({
  A: "a4 ~@15", B: "e4 ~@15", C: "d4 ~@15", D: "e4 ~@7 e4 ~@7", E: "[f4,a#4] ~@15", F: "[e4,g#4] ~@15", G: "a#4 ~@15",
  H: "g#4 ~@15", I: "f#4 ~@15", J: "b4 ~@15", K: "c#4 ~@15", L: "g4 ~@15", M: "d#4 ~@15", N: "c5 ~@15",
  O: "~@2 g4 ~@13",
})).s("gm_tubular_bells").gain(0.55).pan(1)

// other · timpani
const timpani = note("<[~@10 g#2!6] ~@6 [~@2 g#2!6 ~@8] ~@44 [~@10 g#2!6] ~@6 [~@2 g#2!6 ~@8] ~@65>")
  .s("gm_timpani").gain(0.36).pan(0.3)

// other · timpani · soft notes
const timpani_soft = note("<[~@8 g#2!2 ~@6] ~@6 [g#2!2 ~@14] ~@44 [~@8 g#2!2 ~@6] ~@6 [g#2!2 ~@14] ~@65>")
  .s("gm_timpani").gain(0.22).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@7 B C@3 B ~ B C@3 B ~ C D E D E D E D F D E D E D E G@2 D E D E D E G@2 D E D E D E G B A@7 B C@3 B ~ C D E D E D
  E G@2 D E D E D E G@2 D E D E D E G@2 D E D E D E G@2 D E D E D E G@2 D E D E D E G@2 D E D E D E G@2 H ~
>`.pickRestart({
  A: "x!2", B: "x", C: "~@7 x", D: "x ~@5 x ~@8 x", E: "x!2 ~ x ~ x ~@2", F: "x!2 ~ x ~@4", G: "x ~@2 x ~@4",
  H: "~ x ~@6",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@6 B ~@13 C@7 D C@15 E C@7 E A@6 B ~@7 C@15 E C@7 E C@7 E C@7 E C@7 E C@7 E ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@4 x", C: "~ x", D: "~@4 x!2 ~@2", E: "~ x ~@2 x ~@3",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@19 A B ~@7 C ~@7 C ~@7 D ~@7 E ~@12 A B ~@7 C ~@7 D ~@7 D ~@7 D ~@7 D ~@7 D ~@7 F ~@2
>`.pickRestart({
  A: "~@4 x!2 ~@2", B: "~@8 x!2 ~ x!2 ~@3", C: "~@7 x", D: "~@6 x!2", E: "~@3 x ~@4", F: "~@13 x ~ x",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@6 B ~@11 C D E F@6 G E F@6 H E F@6 I E F@6 I A@6 B ~@5 C D E F@6 H E F@6 I E F@6 I E F@6 I E F@6 I E F@6 I E F@6 I
  ~@2
>`.pickRestart({
  A: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", B: "x ~ x!3 ~ x!3 ~@7", C: "x!2 ~ x", D: "x", E: "~ x!7", F: "x!8", G: "x!6 ~@2",
  H: "~ x!4 ~@3", I: "x!4 ~@4",
})).gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@19 A B ~@7 C ~@7 D ~@7 E ~@7 F ~@12 A B ~@7 D ~@7 E ~@7 E ~@7 E ~@7 E ~@7 E ~@7 G ~@2
>`.pickRestart({
  A: "~ x ~ x ~@4", B: "~ x!3 ~@4", C: "~@3 x", D: "~@5 x!2 ~", E: "~@5 x ~@2", F: "~ x ~@2", G: "~@11 x ~@4",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@19 [~@7 x]!2 ~@44 [~@7 x]!2 ~@58>").gain(0.32)

// drums · crash
const crash = s("cr").struct(`<
  ~@7 A B A@3 B ~ B A@3 B ~@2 B ~@7 B ~@6 B@2 ~@7 B ~@13 A B A@3 B ~@2 B ~@6 B@2 ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 C ~
>`.pickRestart({
  A: "~@7 x", B: "x", C: "~ x ~@6",
// … 36 more lines

More by Anna Oxa