Strudelify

Rosalie

G. G. Anderson

KeyC majorTempo112 bpm
0:00/0:00
// Rosalie — G. G. Anderson
// 112 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano · "Ges./Pia"
const piano = note(`<
  ~@5 A B C D E F G H I B J K L M N O P Q R S T U V W P X Y Z AA U AB AC A B C D E F G H I B J K L M N O P Q R S T U V W
  P X Y Z AA U AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AM AU AV AW AX AR AY AZ AX AR AY BA ~
>`.pickRestart({
  A: "[e4,c5] ~ [e4,c5]@2 [e4,c5] ~ [e4,c5]@2 [e4,c5] ~ c5@2 b4@2 [e4,c5] ~, ~@10 e4 ~ d#4 ~@3", B: "[g4,e5]@7 ~",
  C: "[c5,a5]@9 ~ [b4,g5] ~ [a4,f5]@2 ~ [g4,e5]", D: "[f4,d5]",
  E: "[g4,b4] ~ g4@2 [g4,b4] ~ b4@2 [g4,b4] ~ b4@2 [f#4,a#4]@2 [g4,b4] ~, ~@2 b4 ~@3 g4 ~@3 g4 ~@5", F: "[b4,d5]@15 ~",
  G: "[b4,g5]@9 ~ [a4,f5]@2 [g4,e5]@2 ~ [f#4,d#5]", H: "[g4,e5]@3 ~",
  I: "[e4,c5] ~ [e4,c5]@2 [e4,c5] ~ [e4,c5]@2 [e4,c5] ~ c5@2 b4@2 [e4,c5] ~, ~@10 e4 ~ d4 ~@3", // C
  J: "[d5,a#5]@9 ~ a#5@2 [e5,c6]@2 ~ [a#4,g5], ~@10 d5 ~@5", K: "[c5,a5]@15 ~",
  L: "[c5,g#5] ~ g#5@2 g5@2 [c5,g#5] ~ [g#5,c6]@7 ~, ~@2 c5 ~ b4 ~@11", // Fm G#
  M: "[e5,g5] ~ g5@2 [d#5,f#5]@2 [e5,g5] ~ [e5,c6]@7 ~, ~@2 e5 ~@13", // Em D#m Em C
  N: "[d5,f#5] ~ f#5@2 [d5,f#5]@2 [e5,g5]@2 [f#5,a5] ~ [f#5,a5] ~ [g5,b5]@2 c6@2, ~@2 d5 ~@11 a5 ~", // D Em F#m G
  O: "[g5,b5]@4 ~@2 [c5,e5] [d5,f5]", // G C Dm
  P: "[e5,g5] ~ [e5,g5]@2 [c5,e5]@2 [d5,f5]@2 [e5,g5] ~ [e5,g5] ~ [g5,c6]@2 ~ [g5,b5]", // Em C Dm Em C5 G
  Q: "[c5,e5]@5 ~ [c5,e5] [d5,f5]", // C Dm
  R: "[e5,g5] ~ g5@2 [c5,e5]@2 [d5,f5]@2 [e5,g5] ~ [e5,g5] ~ [a5,c6]@3 [g5,b5], ~@2 e5 ~@13", // Em C Dm Em Am G
  S: "[d5,f5]@4 ~ [f5,a5]!2 [a5,c6]", T: "[a5,c6]@4 [g5,b5]@5 ~ a5@2 [f5,a5] ~ [a5,c6] ~, ~@10 f5 ~@5",
  U: "[a5,c6]@4 [g5,b5]@6 [f5,a5] ~ [f5,a5] ~ [a5,c6] ~", // Am G F Am
  V: "[a5,c6] [g5,b5] [f5,a5] [g5,b5] [a5,c6] [g5,b5] [f5,a5] [g5,b5]", W: "[e5,g5]@9 ~@3 [c5,e5]@2 [d5,f5]@2",
  X: "[c5,e5]@11 ~ [c5,e5]@2 [d5,f5]@2", // C Dm
  Y: "[e5,g5] ~ [e5,g5]@2 [c5,e5]@2 [d5,f5]@2 [e5,g5] ~ [e5,g5] ~ [a5,c6]@3 [g5,b5]", // Em C Dm Em Am G
  Z: "[d5,f5]@8 ~@2 [f5,a5] ~ [f5,a5]@2 [a5,c6]@2", AA: "[a5,c6]@4 [g5,b5]@5 ~ a5@2 f5@2 [a5,c6] ~, ~@10 f5 ~ a5 ~@3",
  AB: "[a5,c6]@2 [g5,b5]@2 [f5,a5]@2 [g5,b5] ~ [g5,e6] ~ [f5,d6] ~ a5@2 b5@2, ~@12 c5 ~ d5 ~", AC: "[e5,c6]@5 ~@3",
  AD: "[g5,b5] ~ [g5,b5] ~ [g5,b5]@2 [a5,c6] ~ [b5,d6]@7 ~", AE: "[e5,c6] ~ [e5,c6] ~ [e5,c6] ~ [f5,d6] ~ [g5,e6]@8",
  AF: "[g5,b5] ~ [g5,b5] ~ b5@2 a5@2 [b5,d6] ~ [c6,e6] ~ [e6,g6]@3 [d6,f6], ~@4 g5 ~ c6 ~@9", AG: "[c6,e6]@11 ~@5",
  AH: "[d5,f#5] ~ [d5,f#5] ~ [d5,f#5]@2 [e5,g5]@2 [f#5,a5]@7 ~", // D Em F#m
  AI: "[e5,g5] ~ [e5,g5] ~ g5@2 [f#5,a5]@2 [g5,b5]@7 ~, ~@4 e5 ~@11", // Em F#m G
  AJ: "[f#5,a5] ~ [f#5,a5] ~ [f#5,a5]@2 b5@2 [a5,c6] ~ c6@2 [g5,b5] ~ a5@2, ~@6 g5 ~@3 a5 ~@3 c6 ~", // F#m Am G
  AK: "[g5,b5]@13 ~ [g5,b5]@2", AL: "[g#5,c6]@5 ~ [c#5,f5] [d#5,f#5]",
  AM: "[f5,g#5] ~ [f5,g#5]@2 [c#5,f5]@2 [d#5,f#5]@2 [f5,g#5] ~ [f5,g#5] ~ [g#5,c#6]@2 ~ [g#5,c6]", // Fm C# D#m Fm C#5 G#
  AN: "[c#5,f5]@5 ~ [c#5,f5] [d#5,f#5]", // C# D#m
  AO: "[f5,g#5] ~ g#5@2 [c#5,f5]@2 [d#5,f#5]@2 [f5,g#5] ~ [f5,g#5] ~ [a#5,c#6]@3 [g#5,c6], ~@2 f5 ~@13", // Fm C# D#m Fm A#m G#
  AP: "[d#5,f#5]@4 ~ [f#5,a#5]!2 [a#5,c#6]", AQ: "[a#5,c#6]@4 [g#5,c6]@5 ~ a#5@2 [f#5,a#5] ~ [a#5,c#6] ~, ~@10 f#5 ~@5",
  AR: "[a#5,c#6]@4 [g#5,c6]@6 [f#5,a#5] ~ [f#5,a#5] ~ [a#5,c#6] ~", // A#m G# F# A#m
  AS: "[a#5,c#6] [g#5,c6] [f#5,a#5] [g#5,c6] [a#5,c#6] [g#5,c6] [f#5,a#5] [g#5,c6]", // A#m G# F# G# A#m G# F# G#
  AT: "[f5,g#5]@9 ~@3 [c#5,f5]@2 [d#5,f#5]@2", AU: "[c#5,f5]@11 ~ [c#5,f5]@2 [d#5,f#5]@2",
  AV: "[f5,g#5] ~ [f5,g#5]@2 [c#5,f5]@2 [d#5,f#5]@2 [f5,g#5] ~ [f5,g#5] ~ [a#5,c#6]@3 [g#5,c6]", // Fm C# D#m Fm A#m G#
  AW: "[d#5,f#5]@8 ~@2 [f#5,a#5] ~ [f#5,a#5]@2 [a#5,c#6]@2", // D#m F# A#m
  AX: "[a#5,c#6]@4 [g#5,c6]@5 ~ a#5@2 f#5@2 [a#5,c#6] ~, ~@10 f#5 ~ a#5 ~@3", // A#m G# A#m
  AY: "[a#5,c#6]@2 [g#5,c6]@2 [f#5,a#5]@2 [g#5,c6] ~ [g#5,f6] ~ [f#5,d#6] ~ a#5@2 c6@2, ~@12 c#5 ~ d#5 ~", // A#m G# F# G# C# D#m
  AZ: "[f5,c#6]@10 [f#5,a#5] ~ f#5@2 [a#5,c#6]@2, ~@12 a#5 ~@3", BA: "[f5,c#6]@5 ~@3",
})).s("gm_piano").gain(0.56)

// chords · bandoneon · "Accordeo"
const bandoneon = note(`<
  A B C D E F@3 G@4 F@3 H I J F K L M N O P Q@2 R S T U O V Q@2 W X F@3 G@4 F@3 H I J F K L M N O P Q@2 R Y T U O V Q@2
  W X G F Z AA AB AC AD AE AF AG AH AI AJ AK@2 AL AM AN AO AI AP AK@2 AQ AR AK@2 AQ AS AT
>`.pickRestart({
  A: "~@6 [c4,e4] [d4,f4]", B: "[e4,g4] ~ [e4,g4] ~ [c4,e4]@2 [d4,f4]@2 [e4,g4] ~ [e4,g4] ~ [g4,c5]@2 ~ [g4,b4]",
  C: "[c4,e4]@11 ~ [c4,e4]@2 [d4,f4]@2", // C Dm
  D: "[b3,g4] ~ [b3,g4]@2 [b3,g4] ~ [b3,g4]@2 [b3,g4] ~ [b3,g4] ~ [a3,f4]@2 ~ [f3,d4]", E: "[e3,c4]@13 ~@3",
  F: "~@2 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~", // C
  G: "~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~", // G
  H: "~@2 [e4,g4,a#4] ~@3 [e4,g4,a#4] ~@3 [e4,g4,a#4] ~@3 [e4,g4,a#4] ~", // Edim
  I: "~@2 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~", // F
  J: "~@2 [c4,f4,g#4] ~@3 [c4,f4,g#4] ~@3 [c4,f4,g#4] ~@3 [c4,f4,g#4] ~", // Fm
  K: "~@2 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~", // D
  L: "~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~ [c4,e4]@2 [d4,f4]@2", // G C Dm
  M: "[e4,g4] ~ [e4,g4] ~ e4@2 [d4,f4]@2 [e4,g4] ~ [e4,g4] ~ [a4,c5]@3 [g4,b4], ~@4 c4 ~@11", // Em Dm Em Am G
  N: "[c4,e4]@4 [a5,c6]@2 ~ [g5,b5] [c5,e5]@6 ~@2", // C Am G C
  O: "[e4,g4] ~ [e4,g4] ~ [c4,e4]@2 [d4,f4]@2 [e4,g4] ~ [e4,g4] ~ [a4,c5]@3 [g4,b4]", // Em C Dm Em Am G
  P: "[d4,f4]@4 [a5,c6]@2 ~ [g5,b5] [d5,f5]@5 ~@3", // Dm Am G Dm
  Q: "~@2 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5]@2 [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  R: "[g4,b4] ~ b4@2 [g4,b4] ~ [g4,b4]@2 [a4,c5]@2 b4@2 [f4,a4]@3 [f4,a4], ~@2 g4 ~@7 g4 ~@5", // G Am F
  S: "[e4,g4]@3 ~ [f5,a5]@2 ~ [f5,a5] [e5,g5]@5 ~@3", // Em F Em
  T: "[e4,g4] ~ [e4,g4]@2 e4@2 [d4,f4]@2 [e4,g4] ~ g4@2 [g4,c5]@3 [g4,b4], ~@4 c4 ~@5 e4 ~@5", // Em Dm Em C5 G
  U: "[c4,e4]@3 ~ [g5,c6]@3 [g5,b5] [c5,e5]@6 ~@2", V: "[d4,f4]@3 ~ [a5,c6]@3 [g5,b5] [d5,f5]@5 ~@3",
  W: "[a4,c5]@2 [g4,b4]@2 [f4,a4]@2 [g4,b4] ~ [g4,e5]@2 [f4,d5] ~ [c4,a4] ~ [d4,b4]@2", // Am G F G C Dm F G
  X: "[e4,c5]@3 ~ [e4,g4]@2 ~ [e4,a4] [e4,g4,c5]@6 ~@2", Y: "[e4,g4]@3 ~ [f5,a5]@2 ~ [f5,g#5] [e5,g5]@5 ~@3",
  Z: "~@2 [d4,g4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~, ~ b4@2 ~@5", // G5 G
  AA: "~@2 [e4,g4,c5] ~ c5@2 d5@2 f5@2 e5@2 d5@2 c5@2", AB: "[f#4,b4,d5]", AC: "[g4,b4,e5]@15 ~",
  AD: "[f#4,a4,d5]@15 ~", AE: "[d4,g4,b4]", AF: "~@4 [d#5,g#5]@3 ~ [c5,d#5]@3 ~ [g#4,c5]@3 ~",
  AG: "[f4,g#4] ~ [f4,g#4] ~ f4@2 [d#4,f#4]@2 [f4,g#4] ~ [f4,g#4] ~ [a#4,c#5]@3 [g#4,c5], ~@4 c#4 ~@11", // Fm D#m Fm A#m G#
  AH: "[c#4,f4]@4 [a#5,c#6]@2 ~ [g#5,c6] [c#5,f5]@6 ~@2", // C# A#m G# C#
  AI: "[f4,g#4] ~ [f4,g#4] ~ [c#4,f4]@2 [d#4,f#4]@2 [f4,g#4] ~ [f4,g#4] ~ [a#4,c#5]@3 [g#4,c5]", // Fm C# D#m Fm A#m G#
  AJ: "[d#4,f#4]@4 [a#5,c#6]@2 ~ [g#5,c6] [d#5,f#5]@5 ~@3", // D#m A#m G# D#m
  AK: "~@2 [g#4,c5,d#5] ~@3 [g#4,c5,d#5] ~@3 [g#4,c5,d#5]@2 [g#4,c5,d#5] ~ [g#4,c5,d#5] ~", // G#
  AL: "[g#4,c5] ~ c5@2 [g#4,c5] ~ [g#4,c5]@2 [a#4,c#5]@2 c5@2 [f#4,a#4]@3 [f#4,a#4], ~@2 g#4 ~@7 g#4 ~@5", // G# A#m F#
  AM: "[f4,g#4]@3 ~ [f#5,a#5]@2 ~ [f#5,a5] [f5,g#5]@5 ~@3", // Fm F# F#m Fm
  AN: "[f4,g#4] ~ [f4,g#4]@2 f4@2 [d#4,f#4]@2 [f4,g#4] ~ g#4@2 [g#4,c#5]@3 [g#4,c5], ~@4 c#4 ~@5 f4 ~@5", // Fm D#m Fm C#5 G#
  AO: "[c#4,f4]@3 ~ [g#5,c#6]@3 [g#5,c6] [c#5,f5]@6 ~@2", AP: "[d#4,f#4]@3 ~ [a#5,c#6]@3 [g#5,c6] [d#5,f#5]@5 ~@3",
  AQ: "[a#4,c#5]@2 [g#4,c5]@2 [f#4,a#4]@2 [g#4,c5] ~ [g#4,f5]@2 [f#4,d#5] ~ [c#4,a#4] ~ [d#4,c5]@2", // A#m G# F# G# C# D#m F# Cm
  AR: "[f4,c#5]@10 [f4,a#4] ~ [f4,a#4] ~ [a#4,c#5] ~", AS: "[f4,c#5]@3 ~ [f4,g#4]@2 ~ [f4,a#4] [f4,g#4,c#5]@6 ~@2",
  AT: "[f4,g#4,c#5] ~ [f4,g#4,c#5]@2 ~@2 [d#4,f#4,b4] ~ [f4,g#4,c#5] ~@7", // C# B C#
})).s("gm_bandoneon").gain(0.32).pan(0.6)

// bass · acoustic bass · "Bass"
const bass = note(`<
  ~ A@2 B C A@3 B@3 D A@3 E F G A H I A@3 B@4 C A@3 B@4 C A@3 B@3 D A@3 E F G A H I A@3 B@4 C A@3 B@4 C B J B A K L H B
  M N@3 O@4 P N@3 O@4 P O@3 P Q
>`.pickRestart({
  A: "c2@2 g1 a1 c2@2 g1 a1", B: "g1@2 b1 d2 g1@2 b1 d2", C: "c2@2 g1 a1 c2 g1 a1 b1",
  D: "g1@4 b1@2 d2@2 g1 ~ g1@2 a1@2 b1@2", E: "c2@4 g1@2 a1@2 c2@3 ~ c2@2 a#1@2", F: "f1@2 a1 c2 f1@2 a1 c2",
  G: "f1@3 ~ f1@2 g#1@2 f1@3 ~ f1@2 a1@2", H: "d2@2 a1 b1 d2@2 a1 b1", I: "g2@2 d2@2 g1@2 a1 b1",
  J: "c2@2 e2 g2 c2@2 e2 g2", K: "b1@4 b1@2 f#1@2 b1@3 ~ b1@2 f#1@2", L: "e2@4 e2@2 b1@2 e2@3 ~ e2@2 b1@2",
  M: "g#1@4 c2@4 d#2@4 c2@3 ~", N: "c#2@2 g#1 a#1 c#2@2 g#1 a#1", O: "g#1@2 c2 d#2 g#1@2 c2 d#2",
  P: "c#2@2 g#1 a#1 c#2 g#1 a#1 c2", Q: "c#2 ~ c#2@3 ~ b1 ~ c#2 ~@7",
})).s("gm_acoustic_bass").gain(0.48).pan(0.4)

// chords · piano · "Klavier"
const piano_2 = note(`<
  ~ A@2 B C D E F G@3 H I J I K L M N O P A@3 B@4 A@4 B@3 Q R D E F G@3 H I J I K L M N O P A@3 B@4 A@4 B@3 Q R B S B S
  T U V B W X@3 W@4 X@4 W@3 Y Z W@2 Y Z AA
>`.pickRestart({
  A: "c3 ~ [e4,g4,c5] ~ g2 ~ [e4,g4,c5] ~ c3 ~ [e4,g4,c5] ~ g2 ~ [e4,g4,c5] ~", // C
  B: "g3 ~ [d4,g4,b4] ~ d3 ~ [d4,g4,b4] ~ g3 ~ [d4,g4,b4] ~ d3 ~ [d4,g4,b4] ~", // G
  C: "c3 ~ [e4,g4,c5] ~ g2 ~ [e4,g4,c5] ~ c3@2 [e4,g4,c5] ~ a2@2 [b2,e4,g4,c5] ~, ~@5 g2 ~@2", // C Cmaj7
  D: "~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~, c3 g2 c3 g2", // C
  E: "~@2 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~, c3 g2 c3 g2", // C
  F: "~@2 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~ g2@2 [c4,e4,g4] ~, c3 g2 c3 ~", // C
  G: "~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~, g3 d3 g3 d3", // G
  H: "~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~ d3@2 [d4,g4,b4] ~, g3 d3 g3 ~", // G
  I: "~@2 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~, c3 g2 c3 g2", // C
  J: "~@2 [e4,g4,c5] ~@3 [e4,g4]@2 ~@2 [e4,g4,c5] ~@3 [e4,g4,c5] ~, c3 g2 c3 g2, ~@6 c5 ~@9", // C Em C
  K: "~@2 [e4,g4] ~@3 [e4,g4,a#4] ~@3 [e4,g4,a#4]@2 ~@2 [e4,g4,a#4] ~, c3 g2 c3 g2, ~ a#4 ~@6", // Em Edim
  L: "~@2 [c4,f4,a4]@2 ~@2 [f4,a4]@2 ~@2 [c4,f4,a4]@2 ~@2 [c4,f4] ~, f3 c3 f3 c3, ~@6 c4 ~@7 a4@2", // F F5
  M: "~@2 [c4,f4,g#4]@2 ~@2 [c4,f4] ~@3 [c4,f4] ~@3 [c4,f4] ~, f3 c3 f3 c3, ~@3 g#4 ~ g#4 ~ g#4", // Fm F5
  N: "~@2 [e4,c5] ~@3 [e4,c5] ~@3 [e4,c5] ~@3 [e4,g4] ~, c3@5 ~ g4@2 ~@2 g4@2 ~@2 c5@2, ~ g4 g2@2 c3@2 g2@2", // C Em
  O: "~@2 [f#4,a4]@2 ~@2 [d4,f#4,a4] ~@3 [f#4,a4]@2 a2@2 [d4,f#4,a4]@2, d3 a2 d3 ~, ~@2 d4 ~@7 d4 ~@5", // F#m D F#m D
  P: "g3@2 [d4,g4] ~ [g2,g3]@2 [d4,g4,b4]@2 [d2,d3]@2 [d4,g4,b4]@2 [b1,b2]@2 [d4,g4] ~, ~ b4 ~@5 b4", // G5 G D G B G5
  Q: "g3@2 [d4,g4,b4] ~ d3@2 [d4,g4,b4] ~ g3@2 [d4,g4,b4] ~ d3@2 [d4,g4] ~, ~@7 b4", // G G5
  R: "~@2 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~ g2@2 [e4,g4,c5] ~, c3 g2 c3 ~", // C
  S: "c4 ~ [e4,g4,c5] ~ g3 ~ [e4,g4,c5] ~ c4 ~ [e4,g4,c5] ~ g3 ~ [e4,g4,c5] ~", // C
  T: "b3 ~ [d4,f#4,b4] ~ f#3 ~ [d4,f#4,b4] ~ b3 ~ [d4,f#4,b4] ~ f#3 ~ [d4,f#4,b4] ~", // Bm
  U: "e3 ~ [e4,g4,b4] ~ b3 ~ [e4,g4,b4] ~ e3 ~ [e4,g4,b4] ~ b3 ~ [e4,g4,b4] ~", // Em
  V: "d3 ~ [d4,f#4,a4] ~ a2 ~ [d4,f#4,a4] ~ d3 ~ [d4,f#4,a4] ~ a2 ~ [d4,f#4,a4] ~", // D
  W: "g#3 ~ [d#4,g#4,c5] ~ d#3 ~ [d#4,g#4,c5] ~ g#3 ~ [d#4,g#4,c5] ~ d#3 ~ [d#4,g#4,c5] ~", // G#
  X: "c#3 ~ [f4,g#4,c#5] ~ g#2 ~ [f4,g#4,c#5] ~ c#3 ~ [f4,g#4,c#5] ~ g#2 ~ [f4,g#4,c#5] ~", // C#
  Y: "g#3@2 [d#4,g#4,c5] ~ d#3@2 [d#4,g#4,c5] ~ g#3@2 [d#4,g#4,c5] ~ d#3@2 [d#4,g#4] ~, ~@7 c5", // G# G#5
  Z: "~@2 [f4,g#4,c#5] ~@3 [f4,g#4,c#5] ~@3 [f4,g#4,c#5] ~ g#2@2 [f4,g#4,c#5] ~, c#3 g#2 c#3 ~", // C#
  AA: "[c#2,c#3,g#3,c#4,f4] ~@7 [c#2,c#3,g#3,c#4,f4] ~@7", // C#
})).s("gm_piano").gain(0.56).pan(0.7)

// chords · synth brass 1 · "Brass"
const synth_brass_1 = note(`<
  ~@2 A ~ B ~@17 C ~ D ~@3 E ~ F ~ G ~@3 H ~@17 C ~ D ~@3 I ~ F ~ G ~@3 H ~@10 J ~ K ~@3 L ~ M ~ N ~@7 O P
>`.pickRestart({
  A: "~@4 [e5,g5,c6]@2 ~ [d5,g5,b5] [g4,c5,e5]@7 ~", B: "~@4 [c5,e5,g5]@2 ~ [c5,f5,a5] [e5,g5,c6]@6 ~@2",
  C: "~@4 [g5,c6]@2 ~ [g5,b5] [c5,e5]@7 ~", D: "~@4 [a5,c6]@3 [g5,b5] [d5,f5]@6 ~@2",
  E: "~@4 [f5,a5]@2 ~ [f5,a5] [e5,g5]@6 ~@2", F: "~@4 [g5,c6]@2 ~ [g5,b5] [c5,e5]@6 ~@2",
  G: "~@4 [a5,c6]@2 ~ [g5,b5] [d5,f5]@5 ~@3", H: "~@4 [e5,g5]@2 ~ [e5,a5] [e5,g5,c6]@6 ~@2",
  I: "~@4 [f5,a5]@2 ~ [f5,g#5] [e5,g5]@6 ~@2", J: "~@4 [g#5,c#6]@2 ~ [g#5,c6] [c#5,f5]@7 ~",
  K: "~@4 [a#5,c#6]@3 [g#5,c6] [d#5,f#5]@6 ~@2", L: "~@4 [f#5,a#5]@2 ~ [f#5,a5] [f5,g#5]@6 ~@2",
  M: "~@4 [g#5,c#6]@2 ~ [g#5,c6] [c#5,f5]@6 ~@2", N: "~@4 [a#5,c#6]@2 ~ [g#5,c6] [d#5,f#5]@5 ~@3",
  O: "~@4 [f5,g#5]@2 ~ [f5,a#5] [f5,g#5,c#6]@6 ~@2", P: "[c#5,c#6] ~ [c#5,c#6]@3 ~ [b4,b5] ~ [c#5,c#6] ~@7",
})).s("gm_synth_brass_1").gain(0.29).pan(0.2)

// other · pan flute · "Panfl”te"
const pan_flute = note("<~@12 A B ~@2 C D ~@26 A B ~@2 C D ~@49>".pickRestart({
  A: "~@6 g5!2 a5@2 g5 ~ e5@2 d5 ~", B: "c5@3 ~@5", C: "~@6 c5!2 d5@2 c5 ~ a4@2 g4 ~", D: "f4@3 ~@5",
})).s("gm_pan_flute").gain(0.8).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!97 [x!2 ~ x!2 ~@3]>").gain(0.52)

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

// drums · clap
const clap = s("cp").struct("<~ A@4 ~@16 A@16 ~@16 A@16 ~@9 A@20 ~>".pickRestart({
  A: "x!4",
})).gain(0.52)

// drums · low tom
const low_tom = s("lt").struct("<~@28 A ~@31 A ~@7 B ~@4 C ~@11 A ~@7 A ~@5>".pickRestart({
  A: "~@15 x", B: "~@14 x!2", C: "x",
})).gain(0.59)

// drums · hihat
const hihat = s("hh").struct("<~ [x ~ x!3 ~ x!3 ~ x!3 ~ x!2]!4 [x!8]!93 ~>").gain(0.44)

// drums · mid tom
const mid_tom = s("mt").struct("<~@28 A ~@31 A ~@7 B ~@3 C ~@12 A ~@7 A ~@5>".pickRestart({
  A: "~@7 x", B: "~@12 x!2 ~@2", C: "~@12 x ~ x!2",
})).gain(0.59)

// drums · high tom
const high_tom = s("ht").struct("<~@28 A ~@31 A ~@7 B ~@3 B ~@12 A ~@7 A ~@5>".pickRestart({
  A: "~@5 x!2 ~", B: "~@10 x!2 ~@4",
})).gain(0.66)

stack(piano, bandoneon, bass, piano_2, synth_brass_1, pan_flute, kick, snare, clap, low_tom, hihat, mid_tom, high_tom)

More by G. G. Anderson