Strudelify

Vorrei che fosse amore

Mina

KeyA minorTempo61 bpm
0:00/0:00
// Vorrei che fosse amore — Mina
// 61 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 37 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(61/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 · french horn
const french_horn = note("<A B C ~ D@4 ~@3 E@7 F@5 ~ G@8 H@5>".pickRestart({
  A: "[f#2,c#3,a#3,f#4,a#4]", B: "[a2,e3,c#4,a4,c#5]", C: "[c3,g3]", D: "[~@24 b3@26 ~@5 b3@24 a#3@15 a3@32 ~@2]/4",
  E: "[~@28 b3@31 c#4@32 c4@31 b3@31 ~ a#3@31 e4@16 d#4@16 e4@7]/7", F: "[~@9 e4@15 c4@63 a3@15 ~ g#3@15 g3@31 ~@11]/5",
  G: "[~@21 a#3@15 ~ d4@16 [c4,g4]@31 a#3@15 ~ a3@16 [d3,f3]@31 [f3,c#4]@32 c4@31 d4@30 ~@2 [f3,d4]@14, ~@84 d#4@31 ~@141]/8", // C5 Dm C# Dm
  H: "[~@2 [f3,d4]@22 ~@3 [f3,d4]@8 ~ [f3,c4]@33 [a#3,c#4]@23 ~ [a#3,c#4]@8 ~ [g#3,b3]@4 ~ [g#3,b3]@4 ~ [g#3,b3]@6 ~ [f3,a#3]@7 [f3,a3,c4]@28 ~@6]/5", // Dm F5 A#m G#m A#5 F
})).s("gm_french_horn").gain(0.33).pan(0.9)

// other · synth brass 2
const synth_brass_2 = note("<A B C ~ D@4 ~@3 E@7 F ~ G@5 H@8 I@2 ~@2>".pickRestart({
  A: "~@4 d#4 c#4 a#3 f#3", B: "e3@4 f#4 e4 c#4 a3", C: "b3@3 [a3,a#3] g3@6 ~@22, ~@4 g#3 ~@27",
  D: "[g#3@63 g#3@16 g3@15 f#3@16 ~@18]/4",
  E: "[~@28 g#3@63 a3@31 g#3@63 ~ b3@3 c#4@4 b3@4 e4@4 [b3,d#4]@15 b3 ~@7, ~@185 a3@16 ~@23]/7", // B
  F: "~@9 [g3,c4]@14 ~@9", G: "[~@23 f3@63 a#3@30 ~@2 a#3@30 ~@12]/5",
  H: "[~@21 f3@31 d#3@31 ~ a#3@15 f3@8 d3@8 g3@31 ~ a3@30 ~ a3@31 ~ c4@39 ~@2 c4@5]/8", I: "[~@4 [a3,c4]@33 ~@27]/2",
})).s("gm_synth_brass_2").gain(0.25).pan(0.7)

// chords · string ensemble 1
const string_ensemble_1 = note("<A B C@2 ~@7 D@2 ~@5 E@2 ~@6 F ~@10>".pickRestart({
  A: "~@8 d#4@2 c#4@2 a#3@2 f#3 ~", B: "e3@16 f#4@4 e4@4 c#4@4 a3 ~@3",
  C: "[b3@2 [a3,a#3] g#3 [c5,c6]@4 [c5,c6]@4 [d5,d6]@4 [d5,d6]@4 [c5,c6]@4 [b4,b5]@4 [a4,a5]@4 [b4,g#5,b5]@16 ~@16, [e5,g5]@12 b5@8 g5 ~@43, [b4,b5]@4 g3@27 ~@33, ~@12 g5 ~@7 e5@28 ~@16]/2", // A#maj7 C D C B A E Em …
  D: "[~@21 f#4 g#4 a4 b4 c#5 [d#5,e5] f#5 g#5@15 c#6@8 b5@8 ~@5, ~@10 e4 ~@21]/2", // Emaj7
  E: "[~@16 g4 a4 a#4 c5 [d5,e5] f5 g5 [a5,a#5] c6@16 ~@24]/2", // Dsus2 A#maj7
  F: "~@11 d4 e4 f4 [g4,a4] a#4 [c5,d5] e5 [f5,g5] a5 a#5 ~@11", // Gsus2 Csus2 Fsus2
})).s("gm_string_ensemble_1").gain(0.36).pan(0.4)

// chords · string ensemble 1 · soft notes · G#m Fsus2
const string_ensemble_1_soft = note(`<
  [f#3@7 ~, a#3@3 ~, c#4@5 ~@3]
  [a3@7 ~, c#4@3 ~, e4@5 ~@3]
  ~
  [~ [d#3,g#3,d#4,g#4,b4]]
  ~@22
  [~@5 c3 d3 e3 [f3,g3] a3 a#3 c4 ~@20]
  ~@10
>`).s("gm_string_ensemble_1").gain(0.14).pan(0.4)

// other · trombone
const trombone = note("<A B ~@30 C@2 D E@2>".pickRestart({
  A: "c#5 ~ d#5 ~ f5@4", B: "e5@4 ~@12 g#5@15 ~", C: "[~@31 f5@4 ~ f5@4 g5@4 g5@4 a5@4 a5@12]/2",
  D: "f5!2 g5!2 a5 a5@3", E: "[~ f5@4 f5@5 ~ g5@4 ~@2 g5@6 a5@4 ~@3 a5@30 ~@4]/2",
})).s("gm_trombone").gain(0.52)

// other · trombone · soft notes
const trombone_soft = note("<[~ d#5 ~ f5 ~@4] [~ f#5!2 g#5 ~@4] ~@35>").s("gm_trombone").gain(0.33)

// chords · trombone
const trombone_2 = note("<A B ~@10 C@4 D@2 E@3 ~@5 F@4 G@2 H@5>".pickRestart({
  A: "[f#2,a#3]", B: "[a2,e3]", C: "[~@12 d3@15 c#3@30 ~@2 c3@31 b2@31 ~@7]/4", D: "[~@25 f#2@16 [b2,a3]@16 ~@7]/2",
  E: "[~@8 f2@21 ~@3]/3", F: "[~@20 [f2,c3]@30 ~@2 [f2,d3]@22 ~ [d2,f3]@8 [c#2,f3]@32 ~@13]/4",
  G: "[~@18 f3@31 ~ [g2,a#3]@14]/2", // Gm
  H: "[~@2 [c3,a#3]@23 ~@2 [c3,a#3]@9 f2@23 ~@2 [f2,c3]@7 ~@5 d#5@3 ~ d#5@4 f5@3 ~ f5@8 ~@4 c5@4 c5@5 ~ d#5@4 ~@2 d#5@6 [c2,g2]@7 ~ [f2,c3]@28 ~@5, ~@36 a3@32 ~@51 c5@4 ~@3 c5@30 ~@4, ~@36 c3 ~@32 [d#2,a#2]@23 ~ [d#2,a#2]@7 ~ [c#2,g#2]@17 ~ a2 ~@40]/5", // C7 F5 C5 F5 D#5 C#5
})).s("gm_trombone").gain(0.39).pan(0.2)

// chords · trombone · soft notes
const trombone_soft_2 = note("<A B ~@14 C@2 ~@16 D ~@2>".pickRestart({
  A: "c#3@31 ~", B: "c#4", C: "[~@25 a3@15 ~@24]/2", D: "~@4 c#5@3 ~@25",
})).s("gm_trombone").gain(0.26).pan(0.2)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<A B C D E@5 F G H I J K L@2 M N O P@5 Q R S T U V W X Y Z ~@2>".pickRestart({
  A: "~@2 [c#4,f#4] ~@3 [c#4,f#4] ~", B: "~@2 [e4,a4] ~@3 a4 ~", C: "c4 ~ [e3,g3,c4,e4] ~ c4 ~ [e3,g3,c4,e4] ~",
  D: "c#4 ~ c#4 ~ d#4@3 ~",
  E: "[[e3,g#3,c#4,e4]@4 ~@4 [e3,g#3,c#4,e4]@4 ~@4 [c#4,e4]@4 ~@4 [e3,g#3,c#4,e4]@4 ~@3 [e3,g#3,b3,d#4]@4 ~@4 [e3,g#3,b3,d#4]@4 ~@4 [c#4,e4]@4 ~@4 [e3,g#3,c#4,e4]@4 ~@4 [g#3,b3,f#4,g#4]@4 ~@4 [g#3,b3,f#4,g#4]@4 ~@4 [c#4,g4]@4 ~@4 [e3,a#3,c#4,g4]@4 ~@3 [f#3,a3,e4,f#4]@4 ~@4 [f#3,a3,e4,f#4]@4 ~@4 f4@4 ~@4 [f#3,a3,e4,f#4]@4 ~@4 [f#3,a3,d#4,f#4]@4 ~@4 [f#3,a3,d#4,f#4]@4 ~@4 [e4,f#4]@4 ~@4 [f#3,a3,e4,f#4]@4 ~@3 [f#3,a3,d#4,f#4]@3]/5", // C#m Emaj7 C#m G#m7 C#dim Edim F#m7 D#dim …
  F: "~@5 [f#3,a3,d#4,f#4]@4 ~@4 [e4,f#4]@4 ~@4 [f#3,a3,e4,f#4]@4 ~@4 [f#3,a3,d#4,f#4]@3", // D#dim Esus2 F#m7 D#dim
  G: "~@5 [f#3,a3,d#4,f#4]@4 ~@4 [b3,d#4]@4 ~@4 [d#3,g3,b3,d#4]@4 ~@3 [e3,g#3,d#4]@4", // D#dim B D#aug Emaj7
  H: "~ [e3,g#3,d#4] ~ [c#4,e4] ~ [e3,g#3,c#4,e4] ~ [e3,g#3,d4,f#4]", // Emaj7 C#m E7
  I: "~@4 [e3,g#3,d4,f#4]@4 ~@4 [d4,f#4]@4 ~@3 [e3,g#3,d4,f#4]@4 ~@4 [e3,a3,c#4,f#4]@4 ~", // E7 D E7 F#m7
  J: "~@3 [e3,a3,c#4,f#4]@4 ~@4 [c#4,f#4]@4 ~@4 [e3,a3,c#4,f#4]@4 ~@4 [e3,a3,c4,e4]@4 ~", // F#m7 F#5 F#m7 Am
  K: "~@3 [e3,a3,c4,e4]@4 ~@4 [c4,e4]@4 ~@3 [e3,a3,c4,e4]@4 ~@4 [e3,g#3,b3,e4]@4 ~@2", // Am C Am E
  L: "[~@2 [e3,g#3,b3,e4]@4 ~@4 [b3,e4]@4 ~@4 [e3,g#3,b3,e4]@4 ~@3 e4 [e3,g#3,c#4,e4]@4 ~@4 [e3,g#3,c#4,e4]@4 ~@4 [c#4,e4]@4 ~@3 [e3,g#3,c#4,e4]@4 ~@4 [e3,a3,c#4,e4]@4 ~@3, ~@25 g#4@29 ~@10, ~@13 c#5@14 ~@5]/2", // E E5 E C#m A
  M: "~ [e3,a3,c#4,e4]@4 ~@4 [d#4,f#4]@4 ~@4 [f#3,a3,d#4,f#4]@4 ~@4 [e3,g#3,b3,e4]@4 ~@3", // A D#m D#dim E
  N: "~ [e3,g#3,b3,e4]@4 ~@4 [a#3,e4]@4 ~@3 [c3,g3,a#3,e4]@4 ~@4 [f3,a3,d4,f4]@4 ~@4", // E A#dim C7 Dm
  O: "[f3,a3,d4,f4] ~ [d4,f4] ~ [f3,a3,d4,f4] ~ [f3,a3,c4,e4] ~", // Dm Fmaj7
  P: "[[f3,a3,c4,e4]@4 ~@3 [d4,f4]@4 ~@4 [f3,a3,d4,f4]@4 ~@4 [a3,c4,g4,a4]@4 ~@4 [a3,c4,g4,a4]@4 ~@4 [d4,g#4]@4 ~@4 [f3,b3,d4,g#4]@4 ~@4 [g3,a#3,f4,g4]@4 ~@4 [g3,a#3,f4,g4]@4 ~@3 [f#4,g4]@4 ~@4 [g3,a#3,f4,g4]@4 ~@4 [g3,a#3,e4,g4]@4 ~@4 [g3,a#3,e4,g4]@4 ~@4 [f4,g4]@4 ~@4 [g3,a#3,f4,g4]@4 ~@4 [g3,a#3,e4,g4]@4 ~@4 [g3,a#3,e4,g4]@4 ~@3 [f4,g4]@4 ~@4 [g3,a#3,f4,g4]@4 ~@4 [g3,a#3,e4,g4]@4 ~@4 [g3,a#3,e4,g4]@3]/5", // Fmaj7 Dm Am7 Ddim Fdim Gm7 Gmaj7 Gm7 …
  Q: "~@5 [c4,e4]@4 ~@4 [e3,g#3,c4,e4]@4 ~@4 [f3,a3,d4,f4]@4 ~@4 [f3,a3,d4,f4]@3", // C Eaug Dm
  R: "~ [d4,f4] ~ [f3,a3,d4,f4] ~ [f3,a3,d#4,g4] ~ [f3,a3,d#4,g4]", // Dm F7
  S: "~@4 [d#4,g4]@4 ~@4 [f3,a3,d#4,g4]@4 ~@4 [f3,a#3,d4,g4]@4 ~@3 [f3,a#3,d4,g4]@4 ~", // D# F7 Gm7
  T: "~@3 [d4,g4]@4 ~@4 [f3,a#3,d4,g4]@4 ~@4 [f3,a#3,c#4,f4]@4 ~@4 [f3,a#3,c#4,f4]@4 ~", // G5 Gm7 A#m
  U: "~@3 [c#4,f4]@4 ~@4 [f3,a#3,c#4,f4]@4 ~@4 [f3,a3,c4,f4]@4 ~@3 [f3,a3,c4,f4]@4 ~@2", // C# A#m F
  V: "~ [c4,f4]@2 ~@2 [f3,a3,c4,f4]@2 ~@2 [f3,a3,d4,f4]@2 ~@2 [f3,a3,d4,f4]@2 ~", // F5 F Dm
  W: "~ [d4,f4]@2 ~@2 [f3,a3,d4,f4]@2 ~@2 [f3,a#3,d4,f4]@2 ~@2 [f3,a#3,d4,f4]@2 ~", // Dm A#
  X: "~@2 [d4,f4]@4 ~@4 [f3,a#3,d4,f4]@4 ~@4 [d4,f4]@4 ~@5 [f3,a#3,d4,f4]@4 ~", // Dm A# Dm A#
  Y: "~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4]", // F
  Z: "~@4 f4@4 ~@4 [c#3,a#3,f4]@4 ~@5 f4@4 ~@4 [c#3,a#3,f4]@3", // A#m
})).s("gm_acoustic_guitar_nylon").gain(0.12)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  A B C D E F G H@2 I J K@2 L@2 M@2 N O P Q R S T U V W@2 X@2 Y@2 Z ~ AA ~@2
>`.pickRestart({
  A: "[f#3,a#3,c#4,f#4] ~ [f#3,a#3] ~ [f#3,a#3,c#4,f#4] ~ [f#3,a#3] ~", // F#
  B: "[a3,c#4,e4,a4] ~ [a3,c#4] ~ [a3,c#4,e4,a4] ~ [a3,c#4,e4] ~", C: "[e3,g3,e4] ~@3 [e3,g3,e4] ~@3",
  D: "[f#3,b3,g4] ~ [f#3,b3,f#4] ~ [f#3,a3,f#4]@3 ~", E: "~@4 [e3,g#3] ~@3", F: "~@15 [e3,g#3]@4 ~@13",
  G: "~@15 [e3,a#3]@4 ~@13", H: "~@7 [f#3,a3]@2 ~@7", I: "~@13 [f#3,a3]@4 ~@15", J: "~@13 [d#3,g3]@4 ~@15",
  K: "~@3 [e3,g#3] ~@4", L: "~@11 [e3,a3]@4 ~@17", M: "~@5 [e3,g#3]@2 ~@9", N: "~@9 [f#3,a3]@4 ~@19",
  O: "~@9 [c3,g3]@4 ~@19", P: "~@2 [f3,a3] ~@5", Q: "~@7 [f3,a3]@4 ~@21", R: "~@7 [f3,b3]@4 ~@21",
  S: "~@3 [g3,b3]@2 ~@11", T: "~@3 [g3,a#3]@2 ~@11", U: "~@5 [g3,a#3]@4 ~@23", V: "~@5 [e3,g#3]@4 ~@23",
  W: "~ [f3,a3] ~@6", X: "~@3 [f3,a#3]@4 ~@25", Y: "~ [f3,a3]@2 ~@13", Z: "~ [f3,a#3]@2 ~@6 [f3,a#3]@2 ~@5",
  AA: "~@4 [c#3,a#3]@4 ~@13 [c#3,a#3]@4 ~@7", // F#
})).s("gm_acoustic_guitar_nylon").gain(0.07)

// other · glockenspiel · C D C D
const glockenspiel = note(`<
  ~@25
  [~@21 [c6,c7] ~@7 c5 ~@2]
  [~ [d5,d6] ~@2 d5 ~@27]
  ~@3
  [~@2 [c5,c6] ~@15 [d5,d6] ~@13]
  ~
  [~@7 c3@15 ~@10]
  ~@4
>`).s("gm_glockenspiel").gain(0.26).pan(0.3)

// chords · clarinet · E Bsus4 F#sus2 F#m D#m Cm C#m A …
const clarinet = note(`<
  ~@3
  [~@12 [e5,g#5] [b4,c#5,e5,f#5] [f#4,g#4] e4 c#4 ~@7 g#5@8]
  ~@3
  [~@22 [f#5,a5] [e5,f5,g5,g#5] [d#5,f#5] [c#5,d5,e5,f5] [c5,d#5] [a#4,b4,c#5,d5] [g#4,a4,b4,c5] ~@3]
  [~@7 [c#5,e5]@4 [a4,c#5]@3 ~@2]
  [~@13 [e5,g#5]@8 [c#5,e5]@7 ~@4]
  ~@27
>`).s("gm_clarinet").gain(0.14).pan(0.3)

// chords · clarinet · soft notes
const clarinet_soft = note("<~@3 A ~@3 B@2 ~@28>".pickRestart({
  A: "~@14 [b4,c#5] g#4 b3@10 ~@6, ~@4 e4 ~@3, ~@16 f#4 ~@15", B: "[~@29 [g4,a#4] [f#4,a4]@6 ~@28]/2",
})).s("gm_clarinet").gain(0.07).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@5 A@3 B@8 C@6 D@5 E@4 F@6>".pickRestart({
  A: "[~@15 f#4@4 [f#4,b4]@4 c#5@4 c#6@4 b5@8 f3@4 f#3@2 ~@3, ~@23 e4@8 ~@17]/3", // B5
  B: "[~@5 f#2@7 ~ e3@8 c#3@8 f#2@7 ~ c#3@7 ~ [c#3,g#3]@8 e3@6 ~@2 f#4@7 c#5@8 ~@8 d#5@8 c#5@7 ~ d#4@2 e4@2 d#4 e4@2 ~ c#4@2 d#4@2 ~ d#4@2 ~@9 e4@31 e5@16 b5@8 a5@8 e5@27 f#5@4 [e4,g#5]@30 ~@6 e5@2, ~@61 f#3@15 g4@8 ~@24 c#3@15 ~@133, ~@77 g3@15 g#3@30 ~@134, ~@56 c#4 ~@71]/8", // C#5 E
  C: "[~@2 d#6@4 c#6@4 g#5@3 e5@4 d#5@4 c#5@4 [c#4,e4]@16 [f#3,d#4]@15 ~ [e3,g#3,b3]@15 [c3,g3,c4]@15 ~ c3@16 [d3,g5]@15 [e3,d5]@16 [d3,a4]@15 ~ c4@16 b3@15 d3@10, ~@25 a3@30 ~@96 f3@31 ~@10]/6", // C#m D#m E C5 G5 E7 D5
  D: "[~@2 f3@3 ~ f#3@4 a3@8 g3@4 ~ [e3,e5]@7 [f3,d4,d5,f5]@7 ~ [e5,g5]@10 ~@14 [e3,c5]@7 [f3,d5,f5]@10 ~@6 [d3,a#3,g4]@8 [d4,d5]@8 [a4,a5]@7 [e3,c#4,g#4,g#5]@8 ~ c5@25 ~@6 c6@4 a#5@3 ~ a#5@4, ~@23 c3@25 ~@5 [d3,a#4,d5]@8 e5@8 ~@24 [d3,a#4] ~@7 d4 ~@14 g5@16 ~@28, ~@37 e4@10 ~@7 [g2,a#3]@27 ~@4 g3@30 ~ [e3,a3]@24 ~@20, ~@117 g4@16 ~@27]/5", // E Dm Em C Dm Gm D A …
  E: "[a5@3 ~ a5@16 c6@3 a#5@3 ~ a#5@4 a5@3 ~@2 a5@15 c6@4 a#5@3 ~ a#5@4 a5@3 a5@5 g5@4 f5@3 c#5@4 c5@29 ~@3 [d4,d5]@8 [a4,a5]@6]/4", // D A
  F: "[~@2 [e5,e6]@7 [d5,d6]@8 ~ [f5,f6]@82 [f3,g3,a#3,c#4]@32 ~ [d#3,f3,g#3,b3,d#4]@4 ~@2 [d#3,f3,g#3,b3,d#4]@4 ~@2 [d#3,f3,g#3,b3,d#4]@4 ~@2 [f3,a#3,d4]@7 ~ [f3,a3,c4,f4]@26 ~@7]/6", // E D F Gm7b5 Fm7b5 A# F
})).s("gm_string_ensemble_2").gain(0.32).pan(0.4)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@4 A@2 ~ B ~ C@8 ~@4 D@3 E F@2 ~@2 G@2 ~@6>".pickRestart({
  A: "[e4@31 d#4@31 ~@2, [g#3,b3]@63 ~]/2", B: "~@11 [a3,c#4]@4 ~, ~@7 f#5@8 ~",
  C: "[~@29 d#3@47 ~@16 [g#3,b3]@31 [a3,c#4,e4]@31 ~ [a3,c4,e4]@30 ~ [g#3,b3]@31 ~ [g#3,c#4]@31 e3@7, ~@217 e3@32 ~@7]/8", // G#m A Am G#m C#5
  D: "[~@22 a#3@31 ~@17 g3@10 ~@16, ~@27 c4@4 ~@17, ~@55 c5@24 ~@17]/3", E: "~@21 a#4@8 ~@3", F: "[~@20 c4@25 ~@19]/2",
  G: "[~@19 [a3,c4]@29 ~@16]/2", // Am
})).s("gm_string_ensemble_2").gain(0.16).pan(0.4)

// other · timpani
const timpani = note("<~@26 A ~@6 B C D@2>".pickRestart({
  A: "~@12 g2 e2 g2!2 [e2,g2] e2 [e2,g2] g2 e2 ~@11", B: "~@4 g2!4 ~@2 g2!16 ~@2 g2@4", C: "~@5 g2!20 ~@4 g2@3",
  D: "[~@5 d#2@4 ~@2 d#2@5 ~ d#2@5 ~ d2@6 ~ g2@18 ~@16]/2",
})).s("gm_timpani").gain(0.25).pan(0.4)

// other · timpani · soft notes · Em
const timpani_soft = note("<~@26 [~@4 g2 e2 g2 e2 g2 [e2,g2] e2 g2 e2 ~ e2 ~@17] ~@6 [~@8 g2!2 ~@22] ~@3>")
  .s("gm_timpani").gain(0.15).pan(0.4)

// bass · acoustic bass
const bass = note("<A B C D E@8 F@8 G@7 H I J K L M N@4>".pickRestart({
  A: "f#2@5 ~@3 f#2@5 ~@3", B: "a1@10 ~@6 a1@9 ~@7", C: "c2@8 g2@8 e2@8 c2@7 ~", D: "f#2@7 ~ f#2@7 ~ b1@14 ~@2",
  E: "[e2@14 ~@2 b1@14 ~ e2@14 ~@2 b1@14 ~@2 g#2@14 ~@2 g2@14 ~ f#2@14 ~@2 f#2@14 ~@2 b1@14 ~@2 f#2@14 ~ b1@14 ~@2 f#2@14 ~@2 b1@14 ~@2 b1@14 ~ e2@14 ~@2 b1@14 ~@2 e2@4]/8",
  F: "[~@12 e2@14 ~ a1@14 ~@2 a1@14 ~@2 c2@14 ~@2 c2@14 ~ b1@14 ~@2 b1@14 ~@2 a#1@14 ~@2 a#1@14 ~ f#2@14 ~@2 b1@14 ~@2 e2@14 ~@2 c2@7 c2@6 ~@2 f2@14 ~@2 c2@14 ~@2 f2@8]/8",
  G: "[~@7 c2@14 ~@2 a2@14 ~@2 g#2@14 ~@2 g2@14 ~ g2@14 ~@2 c2@14 ~@2 g2@14 ~@2 g2@14 ~ g2@14 ~@2 c2@14 ~@2 c2@14 ~@2 f2@14 ~ c2@14 ~@2 f2@12]/7",
  H: "~ f2@2 d#2@2 d2@3", I: "~@3 d2@14 ~@2 c#2@13", J: "~@3 c#2@14 ~@2 c2@13", K: "~ c2@7 ~ b1@7",
  L: "~ b1@7 ~ g1@4 g1@3", M: "~ c2@7 ~ c2@7",
  N: "[~@44 a#1@9 a#1@6 ~@2 d#1@8 c#2@4 ~@2 c#2@4 ~@2 c#2@5 ~ c2@5 ~@2 f1@30 ~@4, ~@2 f2@7 ~ a1@7 ~ d#2@7 ~@39, ~@6 c2@7 ~ f1@7 ~@43]/4",
})).s("gm_acoustic_bass").gain(0.44)

// drums · kick
const kick = s("bd").struct("<~@32 [~@27 x ~@4] ~@2 [~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~] ~>").gain(0.55)

// drums · snare
const snare = s("sd").struct(`<
  A B A C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI ~
>`.pickRestart({
  A: "x!4", B: "~ x!3", C: "x!2 ~@2", D: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~ x",
  E: "~@5 x ~ x ~@5 x ~ x ~@4 x ~@2 x ~@4 x ~@2 x", F: "~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~",
  G: "~@4 x ~ x ~@5 x ~ x ~@4 x ~@2 x ~@4 x ~@4", H: "~@3 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@2",
  I: "~@3 x ~ x ~@5 x ~ x ~@4 x ~@2 x ~@4 x ~@2 x ~@2", J: "~@2 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@3",
  K: "~@2 x ~ x ~@5 x ~ x ~@4 x ~@2 x ~@4 x ~@6", L: "~ x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@5 x ~ x ~@4",
  M: "~ x ~ x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4", N: "x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@5 x ~ x ~@5",
  O: "x ~ x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@7 x", P: "~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@5 x ~ x ~@5 x",
  Q: "~ x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~", R: "~ x ~@4 x ~@2 x ~@4 x ~ x ~ x ~@3 x ~@7 x ~",
  S: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2", T: "x ~@4 x ~ x ~@5 x ~ x ~@5 x ~@6 x ~@2 x",
  U: "~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x", V: "~@4 x ~ x ~@5 x ~ x ~@5 x ~ x ~@4 x ~@2 x ~",
  W: "~@3 x ~@2 x ~@4 x ~@2 x ~@4 x ~@7 x ~@2 x ~", X: "~@3 x ~ x ~@5 x ~ x ~@5 x ~@6 x ~@2 x ~@2",
  Y: "~@2 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@2", Z: "~@2 x ~ x ~@5 x ~ x ~@5 x ~@6 x ~@2 x ~@3",
  AA: "~ x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@4", AB: "~ x ~ x ~@5 x ~ x ~@4 x ~@2 x ~@4 x ~@2 x ~@4",
  AC: "x ~@2 x ~@4 x ~@2 x ~@4 x ~@7 x ~ x ~@5", AD: "x ~ x ~@5 x ~ x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x",
// … 43 more lines

More by Mina