Strudelify

Psien (Poesy), Song for Voice & Piano, Op. 18 5

Edvard Grieg

KeyA minorTempo83 bpm
0:00/0:00
// Psien (Poesy), Song for Voice & Piano, Op. 18 5 — Edvard Grieg
// 83 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 91 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(83/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 · "A.PIANO 1"
const piano = note("<~ A@6 B ~@12 C@4 D@8 E@2 F@3 G H@3 I@2 J K L@2 M N@2 ~@4 O@8 P Q R S T U V@7 ~@16>".pickRestart({
  A: "[~@12 [a4,a5,a6,a7]@19 ~@3 [g#4,g#6]@2 [e4,e5,e6,e7]@19 ~@3 [c4,c6]@2 [a3,a4,a5,a6]@6 ~@3 [g#3,g#5]@3 [e3,e4,e5,e6]@6 ~@3 [c3,c5]@3 [a2,e3,a3,a4,e5,a5]@6 ~@3 [g#2,g#4]@3 [e2,e3,e4,e5]@4 ~@4 [c2,c3,c4,c5]@4 ~@139 [f2,f3]@5 [f3,a3,d4,a4]@3 ~ [f3,a3,d4,f4,a4,d5,a5]@30 ~@2, ~@12 [c5,c7]@22 g#5@2 [g#4,g#6]@19 [e4,e5,e6,e7]@3 c7@21 [e3,e5]@2 [c4,c6]@5 ~@10 [g#2,b2,g#4,b4]@12 ~@37 a0@11 e2@5 ~ c3@9 c4@9 e3@10 e4@9 a3@5 e4@27 a5@3 c6@3 e6@3 a6 c7@6 f1@5 [f2,a2,d3]@34 ~@2, ~@12 [e5,e7]@22 g#7@50 [c3,c5]@2 ~@5 [a2,a3,a4,a5]@17 a3@57 e3@9 a2@18 a4@4 c5@6 ~@5 a4@7 e5@5 c6@6 c5@61 ~@2, ~@31 a7@27 c5@2 [c4,e4,c6,e6]@7 [a3,a4,a5,a6]@20 ~@6 [g#3,g#5]@15 a4@76 a3@3 c4@14 c4@85 ~@2, ~@31 [a4,a5,a6]@5 [b4,b6]@33 [g#4,g#6]@3 [g#3,b3,g#5,b5]@7 [e4,e6]@8 ~@14 [e2,e3,e4,e5]@7 [a1,a2]@47 a1@4 a2@9 a3@9 c3@24 ~@9 c5@6 a5@6 a4@6 e5@58 ~@2]/6", // A G# E C A G# E C …
  B: "~@5 [g#2,g#3]@7 [g#3,b3,e4,b4]@4 [g#3,b3,e4,g#4,b4,e5,b5]@32, ~@5 g#1@43, ~ [g#2,b2,e3]@3", // G# E
  C: "[~@12 [a3,c4,e4,a4,c5,e5]@11 ~ [a3,d4,f4,a4,d5,f5]@8 ~ [a3,b3,e4,g4,a4,b4,d5,g5]@2 ~ [a3,d4,f4,a4,d5,f5]@2 ~@16 [a2,e3]@6 [a3,c4,e4,a4,c5,e5]@8 ~ [a3,d4,f4,a4,d5,f5]@2 ~ [a3,d4,f4,a4,d5,f5]@2 ~@4 [a3,b3,d4,g4,a4,b4,d5,g5]@2 ~@4 [a3,c4,e4,a4,c5,e5]@22 ~@2 [c4,e4,g4,c5,e5,g5]@11 ~ [c4,f4,a4,c5,f5,a5]@8 ~ [c4,d4,f4,b4,c5,d5,f5,b5]@2 ~ [c4,a4,c5,f5,a5]@2 ~@16 [c3,g3]@6 [c4,e4,g4,c5,e5,g5] ~@8 [c4,a4,c5,f5,a5]@2 ~ [c4,f4,a4,c5,f5,a5] ~@5 [c4,d4,f4,b4,c5,d5,f5,b5] ~@5 [c4,e4,g4,c5,e5,g5]@12, ~@12 [a2,e3]@2 ~@28 [a3,c4,e4,a4,c5,e5]@18 ~@48 [c3,g3]@2 ~@28 [c4,e4,g4,c5,e5,g5]@18 ~@9 f4 ~@26]/4", // Am Dm Em7 Dm A5 Am Dm G …
  D: "[~@46 d4@2 ~@82 a4@2 ~@21 f3@3 ~@48 e4 ~@117 a5@2 ~@25 d#4@13 ~@4 [f2,f3,c4,d#4,a4]@6 [e2,e3,e4,a4,c5]@3 ~@9, ~@12 e2@7 g#3@5 d2@5 f3@2 a3@19 d4@2 b3@2 f3@2 d3@2 g#2@7 a3@2 c#4@10 a#3@7 c#2@16 e4@2 a#3@4 c#3@7 d4@2 f4@5 [a2,e5]@8 f4@5 [f4,a4]@14 b3@3 a3 d5@5 f#2@6 g#3@4 d#4@4 b2@2 d#3@6 d#4@6 f#3@6 f#4@10 e4@4 [e3,e5]@10 d5@9 a4@5 b4@4 d4@10 d5@4 f4@2 d4@5 ~@2 e4@5 c#5@10 a#4@5 g5@4 c#4@17 g4@9 d5@3 f5@4 [a3,c6,e6]@12 [d3,f5,a5]@8 a4@2 b4@2 [d5,b5]@3 b4@6 f4@5 ~@34, ~@13 e4@21 d4@3 b4@23 a4@20 d4@6 c#3@12 g4@6 g3@14 a4@7 c4@7 ~@2 a2@23 g#4@23 e2@5 c4@3 d#4@4 e2@2 e3@2 g#3@6 g#4@10 g#4@5 ~ b3@8 d5@8 f4@2 b4@2 d5@2 f5@11 g#3@12 g5@4 e4@6 d5@25 e4@12 a5@9 f5@5 ~@4 b5@2 f4@2 c6@10 [a4,d6]@6 [f#3,c4]@13 ~@23, ~@15 b2@7 d4@5 b2@9 g#1@24 a2@9 g4@5 e3@8 g4@6 g3@2 a#3@2 e4@2 g4@2 a#4@11 ~ d3 [d5,f5]@12 c5@11 ~@4 d3 b4 f3@2 a3 c5@17 ~@2 d#3@7 ~ [f2,a4]@6 a3@2 b3@5 ~ e3@11 b4@12 ~@4 e4@7 f4@4 ~ f4@7 ~@2 g#3@14 b4@8 a4@5 ~ a4@6 a#5@12 e6@4 g4@2 a#4@2 e5@2 g5@2 a#5@2 g5@2 e5@8 ~@3 a4@10 ~@4 c5@8 ~@3 d4@20 [g#4,c5,g#5]@9 ~@27, ~@17 e3@6 ~ f4@14 g#2@2 d3@2 f3@2 b3@4 f4@14 e3@9 ~ [g2,a#4]@12 e5@27 a3@10 ~@2 f3@9 d2@10 b3@2 d4 b4@13 c3@6 c4@16 c5@18 b3@7 ~ b3@10 [d3,f5]@12 [g#2,b5]@24 [a3,a5]@12 a#4 g3@11 e5 c#3@17 a#4@6 [d4,d6,f6]@14 ~ f4@10 ~ a3@23 d#5@8 ~@27]/8", // F7 Am A5 F E Am Dm G …
  E: "[[e2,e3,b3,d4,g#4]@3 ~@11 [a2,d#3,a5,e6]@4 ~ [e3,c4,e5,a5]@2 ~ c6@2 [f#3,a3,d4,b5]@2 ~@5 [g#3,b3]@2 ~@4 [a2,d#3,a4]@4 [f4,c5]@2 [e3,c4,e4,a4]@2 ~@4 [f#3,a3]@2 ~@3 [g#3,b3,e4]@2 ~@10 [e3,c4,e4]@2 ~@4 [a3,c4,a4]@2 ~@2 [e4,b4]@2 ~ g#3@2 ~ [a4,d#5]@2 [a3,c5,e5] ~@3 [c5,g#5]@2 [f#3,a3,c4,e5,a5]@2 ~@2 [e5,b5]@2, ~@12 [c6,f6]@6 [f5,c6]@2 ~@9 g#5@2 ~@4 [c5,f5]@8 ~@4 c5@2 ~@4 g#4@2 ~@5 [a2,d#3,f4]@8 ~@28, ~@30 [e4,e5]@2 ~@4 e5@6 ~@6 [d4,b4]@2 ~@8 c4@6 d#4@4 ~@3 g#4@2 ~@5 [a3,c4,a4,c5]@2 ~@4 [g3,c4]@2 ~@10]/2", // E7 A Am Bm7 G#m Adim F5 Am …
  F: "[[f3,a3,a5,c6]@2 ~@2 [a5,d#6]@2 [e3,a3,c4,c6,e6]@2 ~@16 [b5,d6,b6,d7]@3 ~@9 [g#5,b5,g#6,b6]@3 ~@9 [e5,g#5,e6,g#6]@3 ~@9 [d5,f5,d6,f6]@5 ~@7 [b4,d5,b5,d6]@5 ~@7 [g#4,b4,g#5,b5]@5 ~@8 [e4,g#4]@5 [e2,e3,e5,e6]@6 ~ [a2,d#3,a5,e6]@3 ~ [f5,c6]@2 [e3,c4,e5,a5]@2 ~@3 [f#3,a3,d4]@2 ~@2 g#5@2 [g#3,b3,e4,e5]@2 ~@11 [e3,c4]@2 ~ c5@2, c4 ~@11 [e2,e3]@10 [f5,e7]@6 ~@4 [a5,a6]@7 ~@3 [a5,b5]@9 ~@3 [g5,g#5]@9 ~@7 [f4,e6]@6 ~@3 [a4,a5]@7 ~@4 [a4,b4]@9 ~@21 b5 ~@12 [a2,d#3]@5 [e4,a4]@2 ~@4, ~@18 [e6,f6]@9 ~@7 [d5,c7]@6 ~@4 [f5,f6]@7 ~@5 [e5,e6]@7 ~@3 [e5,f5]@9 ~@7 [d4,c6]@6 ~@4 [f4,f5]@7 ~@32 [c5,f5]@9 ~@4, ~@20 [c6,c7]@7 ~@3 [c6,d6]@9 ~@7 [b4,a6]@6 ~@6 g6@6 ~@32 [e5,g#5]@5 ~@7 [c6,f6]@2 ~@9 c6@2 ~@16 [f4,c5]@3 ~@4, ~@59 g#4@6 ~@3 [c5,c6]@7 ~@3 [c5,d5]@9 ~@7 [b3,a5]@6 ~@32 [a4,e5]@7 ~@5]/3", // F Adim Am Bm G#m E Dm Bm …
  G: "[f#3,a3,d4]@2 ~@2 g#4@2 [g#3,b3,e4]@2 ~@8 d#4@2 ~ e3@2 ~ g#4@2 [a3,c4,a4]@2 ~@2 [e4,b4]@2 ~ [g#3,a3,c4]@2 ~@4 [a3,c4]@2 ~@3 [f#3,a3,c4,d#5,a5]@2 ~@2 [d#5,b5]@2, b4 ~@9 c4@8 [c4,e4]@2 ~@15 d5@2 ~@4 [c5,g#5]@2 ~@5, ~@12 f4@7 ~@11 [a4,c5]@2 ~@2 a4@3 [g3,c5] ~@10, ~@13 [a2,d#3]@6 ~@17 d#5@2 ~@10", // D E Am E5 G# Am F#dim G#m …
  H: "[[f3,a3,c4,a5,c6]@2 ~@2 [g5,d6]@2 [d#3,g3,c4,c6,d#6]@2 ~@2 [a5,g6]@2 [d6,f#6]@5 ~@7 [a5,c6,a6,c7]@5 ~@7 [f#5,a5,f#6,a6]@5 ~@7 [d5,f#5,d6,f#6]@5 ~@7 [c5,d#5,c6,d#6]@5 ~@7 [a4,c5,a5,c6]@5 ~@7 [f#4,a4,f#5,a5]@5 ~@7 [d4,f#4,d5,f#5]@5 ~ [d5,d6]@3 ~@3 [g3,c#4,d6]@2 c6@2 a#5@2 a#5 ~ a5@2 ~@3 [e4,g4,c5,a5]@3 ~@2 [f#4,a4,c5,d5]@2 ~@2 [d#5,f#5]@2 [g3,e5]@2 ~@4 [d4,e4,a#4,e5,d6]@2 ~@2 [d#5,f#5]@2, ~@12 [d2,d3]@10 [d#5,d7]@6 ~@4 [g5,g6]@7 ~@3 [g5,a5]@9 ~@3 [f5,f#5]@9 ~@7 [d#4,d6]@6 ~@4 [g4,g5]@7 ~@3 [g4,a4]@9 ~@19 g5@4 ~@3 f#5@2 ~@5 g5 ~@4 [g5,a#5]@2 ~@5, ~@18 [d6,d#6]@9 ~@7 a#6@6 ~@68 d#6@5 ~ d6@7 ~@23, ~@20 [a#5,a#6]@7 ~@3 [a#5,c6]@9 ~@7 [a4,g6]@6 ~@6 [f#4,f6]@6 ~@4 [a#4,a#5]@7 ~@3 [a#4,c5]@9 ~@7 [a3,g5]@6 ~@44, ~@35 c5@6 ~@3 [d#5,d#6]@7 ~@5 [d5,d6]@7 ~@3 [d5,d#5]@9 ~@7 [c4,a#5]@6 ~@4 [d#4,d#5]@7 ~@15 [d4,a#4]@4 ~@2 a#5@2 ~@22]/3", // F G5 Cm A7 D Am F#m D …
  I: "[[g3,e5,g5]@2 ~@4 [d4,e4,a#4,e5,d6]@2 ~@8 f6@2 ~ [a4,f5,f6]@2 e6@2 ~ f6 [b4,d5,g5]@3 ~ c#6@2 [c#5,e5,g5,a5]@2 ~@3 [d4,b5,d6]@4 [d6,f6]@2 ~ [a4,b4,f5,b5]@2 ~@4 [d4,b5]@4 ~ [a4,b4,f5,b5,a6]@2 ~@13 [c7,d#7]@3 [b4,f5,a5,b6,d7]@3 [a#6,c#7]@3 [a6,c7]@3 [g#6,b6]@3 [g6,a#6]@3 [f#6,a6]@3 [f6,g#6]@3 [e6,g6]@3, ~@5 [g5,a#5]@2 ~@5 [d4,g#4,a6,a#6]@7 ~@4 d6@4 ~@8 [a#5,c#6]@7 ~@5 [a#5,c#6]@8 ~@4 [a#5,c#6]@11 ~@26, ~@14 g6@5 a6@6 e6 ~@16 a6@2 ~@4 d6@4 ~ [d6,f6]@2 ~@5 [d4,b5,d6]@10 ~@26, ~@63 [d7,f7]@7 ~@26, ~@66 [a4,b4,f5,c#7,e7]@5 ~@25]/2", // C Em7b5 Dm G A7 G Dm Bm7b5 …
  J: "~ f#6@2 [d6,f6]@3 [c#6,e6]@3 ~@15 [b3,f4,a4]@2 ~ [f#5,a5]@3 [f5,g#5]@3 [e5,g5]@3 [d#5,f#5]@3 [d5,f5]@3 [c#5,e5]@3 [c5,d#5]@3, d#6@4 ~@5 d#6@12 [g#5,b5]@5 ~@22, ~@3 c6@2 [a#5,c#6]@3 [g5,a#5] ~@7, ~@12 [d2,d3,d6]@13 ~@23, ~@6 b5@3 [a3,b3,f4,a5,c6]@4 ~@11", // Dm C#m Bm7b5 F#m Fm Em D#m Dm …
  K: "~@2 [a#4,c#5]@3 [a4,c5]@2 [g#4,b4]@5 ~@2 d3@2 f3@2 c4@2 f3@2 d3@2 ~@2 g4 ~ f3@2 c4@2 f3@2 d3@2 g2@2 d3@2 f3@2 [c4,f5]@2 ~@2 d3@2, [b4,d5]@4 ~@8 c5@12 [g2,g4]@2 d3@4 ~@2 a4@5 ~@7 f3@4, ~@12 g2@4 ~@2 a4@7 a4@2 ~ f4@5 ~@3 c5@6 ~@6", // A#m Am G#m F5 Bm G
  L: "[g2@2 d3@2 f3@2 c4@2 ~@2 d3@2 g2@2 d3@2 f3@2 c4@2 f3@2 d3@2 ~ c5 d3@2 f3@2 c4@2 f3@2 d3@2 g2@2 ~@2 f3@2 [c4,a5]@2 f3@2 ~@2 g2@2 d3@2 f3@2 c4@2 ~@4 g2@2 d3@2 ~@2 c4@2 f3@2 ~@6 f3@2 c4@2 ~@4 [g2,a5]@2 [d3,b5]@2 [f3,a5]@2 [c4,f5]@2 ~@2 [d3,f5]@2, f5@20 ~@4 [g2,b4]@3 ~@5 c5@5 ~ d3@4 ~@4 d3@4 ~@6 f3@4 ~@4 f3@4 ~@2 d3@4 [d3,e5]@4 ~@2 [f3,f5]@6 ~@6 [f3,d5]@4, ~@8 f3@4 ~@6 c5@7 ~ b4 ~ a4@5 ~@3 f5@7 ~@5 a5@21 ~@3 [g2,e5]@3 ~@7 d3@4 ~@10, ~@58 d3@4 ~@4 f5@7 f5@2 ~ d5@5 ~@15]/2", // F Gsus2 G F F5 Dm G Dsus2 …
  M: "[g2,a5] [d3,b5] [f3,a5] [c4,f5] [f3,d5] [d3,f5] [g2,c6] [d3,d6] ~ [c4,a5] [f3,f5] [d3,a5] [g2,c6] [d3,d6] ~ [c4,a5] [f3,f5] [d3,a5] [g2,f6] [d3,g6] [f3,f6] [c4,c6] [f3,a5] [d3,c6], ~@4 [f3,c6] ~@2 [f3,c6] ~@4", // Gsus2 G F F5 Dm C5 D F …
  N: "[~@2 [d3,g6]@2 [f3,f6]@2 [c4,c6]@2 [f3,a5]@2 [d3,c6]@2 ~@49 [d6,g6,d7]@8 ~@27, f6@3 ~@9 a6@13 d3@2 f3@2 a3 c4@2 d4 f4@2 a4 c4 d4@2 f4 a4 c5@2 d5@2 f5 a5@2 c5 d5 f5@2 a5 c6 d6 f6@2 a6@3 [b4,d5,f5,g5]@12 ~@24, ~ g2@3 ~@8 g1@49 f6@5 ~@30, ~@7 g2@26 ~@15, ~@8 c3 d3 f3 a3 c3@21 ~@15]/2", // G5 F C F D7 G5 G7
  O: "[~@34 g4@2 ~@40 [c4,f#5]@3 ~ c4@4 ~@20 g4@4 ~@12 [a#4,a#5]@4 ~@4 [a4,a5]@2 [g4,g5]@2 ~@18 [g4,c5,c6]@5 ~@9 f#3@4 [g#4,g#5]@3 ~@5 [f#5,f#6]@4 ~@19 g4@5 ~@44 f2@4 ~@108 d5@6 ~@14 c4@4, ~@12 c3@18 b4@2 e4@7 ~@3 e5@2 f4@4 [g#3,d5]@4 c4@2 b4@14 d#4@12 f#4@8 d3@4 a#3@4 [b3,g4,g5]@4 d4@8 ~@4 g3@12 [d3,c5,c6]@8 ~@3 a#2@9 [a#3,d#5,d#6]@3 c#4@8 ~@2 [c5,d#5]@11 c4@7 ~ [c4,f#4,a#4]@29 ~@3 c3@12 [c3,b4]@7 ~ [e2,e5]@9 e4@3 [a3,c5]@4 c3@8 [f#2,d5]@17 c#5@6 ~@4 c5@6 f#4@3 [b3,d5]@4 d3@7 ~ g#2@16 [e3,e5]@7 ~@5 g3@4 d#4@4 [e4,g5]@4 [g3,e5]@7 ~ [d3,a4]@12 f#4@24, ~@12 c5@12 f#3@8 a4@4 c3@20 f4@16 [e4,g4]@12 ~@2 a5@22 ~@8 d#4@10 [a#4,a#5]@5 ~@7 [c#3,f5,f6]@17 ~ [g#2,a#4]@13 ~@11 [g2,a5,b5]@4 d3@4 a#3@4 [b3,g5,g6]@3 d4@9 [e2,c5]@20 f2@12 g#3@16 ~@4 d3@12 d3@7 ~ [f#2,f#5]@20 g2@28 [b2,b5]@20 [c3,c5]@22 b4@18, ~@16 g3@8 b4@3 c5@10 a4@23 ~@4 g3@11 [c5,d5]@4 [c5,d5,f#5,b5]@5 a4@24 [c5,c6]@12 g2@8 a#3@13 g3@14 ~@3 a#5@12 ~@11 d6@23 ~@8 a#3@12 c5@8 c3@2 d5@18 ~@12 [b3,b4]@8 g2@12 a#3@15 ~@5 e3@4 d4@12 [a2,c6]@27 ~@5 c4@15 ~@5 [g2,a4,d5]@12, ~@20 e4@8 g3@9 ~@3 a3@19 ~ [c3,a4]@14 ~@2 [d3,d6]@9 [g2,b4,d5]@23 c3@23 ~ [d#2,a#4,a#5]@23 ~@5 d#3@10 ~@2 [d3,d5,d6]@9 ~ a6@22 ~@12 [a3,a4]@11 ~@4 a#4@21 ~@8 c4@12 d5@8 d3@2 e5@17 ~ e5@12 [c4,c5]@11 ~@7 a5@17 ~@9 g4@11 ~@9 f3@8]/8", // Cdim A# A G C5 G# F# G#dim …
  P: "g4@10 ~@6 [c3,a#3,c4]@4 [c3,a#3,c4]@4 [a4,a5]@2 ~@2 [c3,a3,c4]@4 [c3,a3,c4,c5,c6]@3 ~@9 [c3,g#3,c4]@4, b3@24 ~@4 [b4,b5]@7 ~@5 [c3,g#3,c4]@4 ~@4, ~@12 [e2,c5,c6]@12 f2@11 ~ [e2,e5,e6]@12, ~@7 [d5,d6]", // C7 A F Fm B Fm C E …
  Q: "~@4 [c3,a3,c4]@4 [c3,a3,c4]@4 ~@4 [d3,c4,d4]@4 [d3,c4,d4]@3 ~@5 [d3,b3,d4]@4 [d3,b3,d4,d5,d6]@3 ~@9 [d3,a#3,d4]@2 ~@2, [f2,c5,c6]@12 [f#2,d5,d6]@11 ~ [g2,b4,b5]@11 ~ [f#2,f#5,f#6]@10 ~@2, ~@28 [c#5,c#6]@7 ~@5 [d3,a#3,d4]@4 ~@4, ~@21 [e5,e6]@2 ~", // F D7 G Gm F5 D G F# …
  R: "~@4 [d3,b3,d4]@4 [d3,b3,d4]@3 ~@5 [e3,d4,e4]@4 [e3,d4,e4]@3 ~@5 [e3,c4,e4]@4 [e3,c4,e4,c6,c7]@4 ~@8 [g3,d#4,g4]@3 ~, [g2,d5,d6]@11 ~ [g#2,e5,e6]@11 ~ [a2,c5,c6]@11 ~ [b2,b5,b6]@11 ~, ~@28 [e5,e6]@7 ~@5 [g3,d#4,g4]@4 ~@4, ~@42 [a5,a6]@5 ~", // G E7 C Cm G5 C#m Am B …
  S: "~@4 [g3,e4,g4]@4 [g3,e4,g4,c5,c6]@3 ~ [d2,d3,a4,a5]@4 [g3,c4,d4,g4]@3 ~ [g3,c4,d4,g4]@3 ~ [f3,c4,d4,f4,d5,d6]@2 ~@2 [f3,c4,d4,f4]@2 [b4,b5]@2 [f#3,c4,d4,f#4]@4 [g1,g2,a4,a5]@3 ~ [f3,b3,d4,f4,f#4,b4,d5,f#5]@3 ~ [f3,b3,d4,f4,g4,g5]@3 ~, [c3,g5,g6]@11 ~@37, ~@4 [e5,e6]@7 ~@33 [b4,d5] ~@3", // C D5 Gsus4 Dm7 B D7 Gsus2 Bm …
  T: "[f3,b3,d4,f4,g#4,b4,d5,g#5]@3 ~ [f3,b3,d4,f4,f#4,b4,d5,f#5]@3 ~ [f3,b3,d4,f4,g4,b4,d5,g5]@3 ~ [f3,b3,d4,f4,g#4,b4,d5,g#5]@3 ~ f#4 [f3,b3,d4]@3 [f3,b3,d4,f4,g4,b4,d5,g5]@3 ~ [e3,g3,c4,e4,g#4,c5,e5,g#5]@3 ~@2 [e3,g3,c4,e4,e5,f#5]@3 ~ g3@3 [a1,a2]@3 ~ [g3,c#4,e4,g4,g#4,c#5,e5,g#5]@3 ~@2 c#4@3, ~@16 [f4,b4,d5,f#5]@3 ~@9 [f#4,c5]@2 ~@2 [g4,c5,e5,g5]@5 ~@11, ~@32 [e3,c4,e4]@3 ~@9 [g3,e4,g4,a4,c#5,e5,a5]@3 ~", // Fdim Bm G7 Fdim Bdim G7 C A …
  U: "~ [g3,c#4,e4,g4,a#4,c#5,e5]@3 [g3,c#4,e4,g4,g#4,c#5,e5,g#5]@3 ~@2 [g3,c#4,e4,g4,a5]@3 ~ [g3,g4]@3 ~ [c#4,e4,g4]@3 ~ [e4,g4]@3 ~ [d4,f4]@3 ~ [f3,a3,d4,f4,g#4,d5,f5,g#5]@3 ~ [f3,d4,f4]@3 [b1,b2]@3 ~ [a3,d#4,f#4,a4,a#5]@3 ~ [a3,d#4,f#4,a4]@4, a#5@2 ~@6 [a4,c#5,e5]@2 ~@2 [c#4,e4,a#4,c#5,e5,a#5]@3 ~ [g3,g#4,c#5,e5,g#5]@3 ~ [g3,c#4,a4,c#5,e5,a5]@3 ~ [f3,a3,a#4,d5,f5,a#5]@3 ~@5 [a3,a4,d5,f5,a5]@4 ~@4 [a#4,d#5,f#5] ~@3 [b4,d#5,f#5,b5]@2 ~@2", // Gdim C#m A7 G C#dim Em Dm B …
  V: "[[g3,b3,e4,g4,c5,e5,g5,c6]@3 ~ [g3,b3,e4,g4,a#4,e5,g5,a#5]@3 ~ [g3,b3,e4,g4,b4,e5,g5,b5]@3 ~@13 [b3,f4,a4,b4]@4 ~ [f4,a4,b4]@3 [b3,f4,a4,b4]@4 ~ [b3,f4,a4]@3 ~ [f4,a4]@3 ~ [b3,f4,a4]@3 ~ [b3,f4,a4]@3 [b3,f4,a4,b4]@4 [b3,f4,a4,b4]@4 [b3,f4,a4,b4]@4 [b3,f4,a4,b4]@4 ~ [b3,f4,a4,b4]@3 ~ [f4,a4]@3 [b3,f4,a4,b4]@4 ~@4 [b3,f4,a4,b4]@3 ~ [f4,a4,b4]@4 [b3,f4,a4,b4]@4 [b3,f4,a4,b4]@3 ~ [b3,f4,a4,b4]@3 ~ [b3,f4,a4,b4]@4 [b3,f4,a4]@12 ~@13 a4@11 a4@12 a5@12 a5@12 ~ a4@11 ~ d3@11 ~@17 [d4,f4,b4]@3 ~@23 c7@3 [d6,f6,b6]@2 c7@2 ~@38 [d6,f6,b6]@2 ~@6 [c2,c6,e6,g6,c7]@19 ~@17, ~@12 [d2,d3]@52 e6@4 f7@16 [a5,a6]@3 b3 [e5,e6]@68 [g3,d4,a4,b4,f5]@12 a6@24 [g2,b3,f4]@12 g1@34 b5@20 [f4,c7]@2 [d6,f6,b6] [d4,d5] c7@2 [b3,b4,d6,f6,b6]@2 c7 [g3,g4] [d6,f6,b6]@2 [f3,f4,c7]@2 [d6,f6,b6] [d3,d4] c7@2 [b2,b3,d6,f6,b6]@2 c7 [g2,g3] [d6,f6,b6]@2 [f2,f3,c7]@2 [d6,f6,b6] [d2,d3] c7@2 [b1,b2,d6,f6,b6]@2 c7 [g1,g2]@3 [f1,f2,c7]@2 [d6,f6,b6] [d1,d2,a6]@2 b6@20 ~@17, ~@16 c#5@40 g#6@4 a7@13 c#6@3 d7@24 d6@68 [d5,b5]@12 a5@24 [d3,f3,b3]@3 c4@2 [d3,f3,b3]@2 c4@44 g4 [d6,f6,b6]@2 f5@61 ~@17, ~@16 [b3,f4,a4,b4]@4 [b3,f4,a4,b4] d5@39 a6@4 e7@12 d6@4 [b3,f4,a4,b4] [g#5,g#6]@19 d5@3 [a5,a6]@5 [b4,a5,a6]@12 [b3,a4] [g2,d3,a3,f4]@11 [b4,a5] [g3,d4,f5]@11 [g2,d3,a3,b3,f4]@24 g4@13 d4@11 [a3,a4]@34 [d4,f4,b4]@2 [d5,f5,b5]@3 c6@2 [d5,f5,b5]@2 c6@3 [d5,f5]@2 [d6,f6,b6]@3 c7@2 [d6,f6,b6]@5 ~@2 [d6,f6,b6]@2 c7 g5@64 ~@17, ~@17 c#6@4 d6@3 [e5,e6]@4 [b3,f5,f6]@4 [g#5,g#6]@4 [b4,a5,a6]@4 [b3,b4,c#6,c#7]@4 [b4,d6,d7]@4 [b4,e6,e7]@4 [f6,f7]@4 g#7@13 f6@3 [b3,b4] c#7@19 [f5,f6]@4 [c#5,c#6]@72 f6@12 [b4,f5] g3@23 g2@10 [d3,f3,b3]@2 [d4,f4,b4]@2 c5@5 ~ c5@95 ~@17]/7", // Cmaj7 Em Bm7b5 F Bm7b5 F Bm7b5 Bdim …
})).s("gm_piano").gain(0.52)

// chords · flute
const flute = note(`<
  ~ A ~@6 B C D E ~@4 F@3 G ~@13 H@2 I ~ J@2 K ~@7 L@3 ~ M N O N ~@7 P Q R S ~@8 T@2 U@4 V@5 W X Y Z ~@2
>`.pickRestart({
  A: "~@3 [a5,a6] ~@8", B: "~@12 [c5,e5]@8 ~@4 [d5,f5]@7 ~@3 [b4,d5]@2 [d5,f5]@2 ~@4 [c5,e5]@6",
  C: "~@12 [c5,e5]@7 ~@3 [d5,f5]@2 [d5,f5]@3 ~@3 [b4,d5]@3 ~@3 [c5,e5]@11 ~", // C Dm Bm C
  D: "~@12 [e5,g5]@9 ~@3 [f5,a5]@8 ~@2 [d5,f5]@2 [f5,a5]@3 ~@3 [e5,g5]@6", // Em F Dm F Em
  E: "~@12 [e5,g5]@7 ~@3 [f5,a5]@2 [f5,a5]@3 ~@3 [d5,f5]@3 ~@3 [e5,g5]@11 ~", // Em F Dm Em
  F: "[~@12 e5@12 f5@12 b5@23 ~ a5@12 a#5@12 e6@23 ~ f6@12 e6@12 a5@4 b5@4 c6@4]/3", G: "b5@6 d6@5 ~ g#5@11 ~@25",
  H: "[~@24 [a4,c5]@35 ~@7 [c6,e6]@2 ~@4 [b5,d6]@2 ~@16 [f5,a5]@2 ~@4]/2", I: "[e5,g#5] ~@8 [c5,e5] ~@2 [b4,d5] ~@11",
  J: "[~@24 [a4,c5]@35 ~@7 [a#5,d6]@2 ~@4 [a5,c6]@2 ~@16 [d#5,g5]@2 ~@4]/2", // Am A# Am D#
  K: "[d5,f#5] ~@8 [a#4,d5] ~@2 [a4,c5] ~@11", L: "[~@12 c6@24 f6@23 ~ a6@48 g6@6 ~@30]/3", M: "~@5 b5 a5@2",
  N: "g5 ~@3", O: "~@5 d6 a5@2", P: "~@3 g#5", Q: "a5@7 ~@29 a#5@12", R: "b5@7 ~@29 d#6@12", S: "e6@7 ~@41",
  T: "[~@3 c6@4 c6 b5 g5@4 g5 b5 c6!2 b5 g5!2 b5 c6!2 b5]/2",
  U: "[g5@4 g5@4 b5@4 g5@48 a5@47 ~ d6@16 d6@4 c#6@4 a5@16 a5@4 c#6@4 d6@4 d6@4 c#6@4 a5@4 a5@4 c#6@4 d6@4 d6@4 c#6@4, ~@12 c6@95 ~@85]/4",
  V: "[a5@4 a5@4 c#6@4 a5@48 g5@23 ~@97 f6@23 ~@25 [c6,f6]@6 ~@6, ~@12 d6@95 ~ e6@72 ~@60, ~@84 b5@47 ~ c6@71 ~@37]/5", // F5
  W: "~@6 [c6,f6] ~", X: "~@4 [c6,f6] ~@3", Y: "[c6,e6] ~@3 [c6,d#6] ~@3", Z: "[c6,e6] ~@7",
})).s("gm_flute").gain(0.24).pan(0.3)

// chords · oboe
const oboe = note(`<
  ~@8 A B C D ~@4 E@3 F ~@13 G H I ~ G J K ~@4 L M N@2 O@2 ~@12 P Q R S ~@8 T@2 U@4 V@5 W X Y Z ~@2
>`.pickRestart({
  A: "~@12 [a4,e5]@8 ~@4 [a4,f5]@7 ~@3 [a4,g5]@2 [a4,f5]@2 ~@4 [a4,e5]@6", // A5 Dm A7 Dm A5
  B: "~@12 [a4,e5]@7 ~@3 [a4,f5]@2 [a4,f5]@3 ~@3 [a4,g5]@3 ~@3 [a4,e5]@11 ~", // A5 Dm A7 A5
  C: "~@12 [c5,g5]@9 ~@3 [c5,a5]@8 ~@2 [c5,b5]@2 [c5,a5]@3 ~@3 [c5,g5]@6", // C5 F Cmaj7 F C5
  D: "~@12 [c5,g5]@7 ~@3 [c5,a5]@2 [c5,a5]@3 ~@3 [c5,b5]@3 ~@3 [c5,g5]@11 ~", // C5 F Cmaj7 C5
  E: "[~@12 e4@12 f4@12 b4@23 ~ a4@12 a#4@12 e5@23 ~ [d5,f5]@12 [c5,e5]@12 a4@4 b4@4 c5@4, ~@11 f4]/3", // Dm C
  F: "b4@6 d5@5 ~ g#4@11 ~@25", G: "~@3 e4 a4 g#4 g4 f#4", H: "f4@6 e4@5 ~@7 f5@2 ~@4 f5@2 ~@16 b4@2 ~@4",
  I: "b4 ~@8 f4 ~@2 f4 ~@11", J: "f4@3 d#4@3 ~@3 d#5 ~@2 d#5 ~@8 a4 ~@2", K: "a4 ~@8 d#4 ~@2 d#4 ~@11", L: "~@6 c5 a4",
  M: "g4 a4 g4@2 f4@4 a4@4 c5@6 f5@6 f5@18 c5@6", N: "[b4 c5 b4@2 a4@4 c5@4 f5@6 a5@6 a5@39 ~@33]/2",
  O: "[~@2 [d5,f5]@9 ~@5]/2", P: "~@3 g#5", Q: "a5@7 ~@29 a#5@12", R: "b5@7 ~@29 d#6@12", S: "e6@7 ~@41",
  T: "[~@12 [c5,e5]@23 ~ a4@12 b4@11 ~ [c5,e5]@11 ~ [g4,d5]@11 ~ [c5,e5]@11 ~, ~@36 f5@23 ~@37]/2", // C G5 C
  U: "[[g4,d5]@11 ~ e5@72 f5@23 ~ [d5,f5]@23 ~ b4@12 c#5@11 ~ [d5,f5]@11 ~ [a4,e5]@11 ~ [d5,f5]@11 ~, ~@12 c5@95 ~@25 g5@23 ~@37]/4", // G5 Dm A5 Dm
  V: "[[a4,e5]@11 ~ [d5,f5]@95 ~ g5@48 ~@24 f5@23 ~@25 [f5,a5]@6 ~@6, ~@9 e5@6 ~@5, ~@156 a5@47 ~@37]/5", // A5 Dm F
  W: "~@6 [f5,a5] ~", X: "~@4 [f5,a5] ~@3", Y: "[e5,g5] ~@3 [d#5,f#5] ~@3", Z: "[e5,g5] ~@7",
})).s("gm_oboe").gain(0.24).pan(0.4)

// other · clarinet
const clarinet = note(`<
  ~ A ~@6 B C D E F@3 G H@3 ~@14 I@2 J ~ K@2 L ~@7 M@3 ~ N O P O ~@7 Q R S ~@9 T@2 U@4 V@5 W X Y Z ~@2
>`.pickRestart({
  A: "~@4 e5 ~@11", B: "~@12 e4@8 ~@4 f4@7 ~@3 g4@2 f4@2 ~@4 e4@6", C: "~@12 e4@7 ~@3 f4@2 f4@3 ~@3 g4@3 ~@3 e4@11 ~",
  D: "~@12 g4@9 ~@3 a4@8 ~@2 b4@2 a4@3 ~@3 g4@6", E: "~@12 g4@7 ~@3 a4@2 a4@3 ~@3 b4@3 ~@3 g4@11 ~",
  F: "[~@12 e4@12 f4@12 b4@23 ~ a4@12 a#4@12 e5@24 f5@12 e5@12 a4@4 b4@4 c5@4]/3",
  G: "b4@3 ~@3 d5@5 ~ g#4@18 a4@6 c5@12",
  H: "[b4@9 ~@3 g#3@12 a3@12 [d4,f4]@23 ~ c#4@12 d4@12 [g4,a#4]@23 ~ [f4,a4]@12 [f4,a4]@12 [f4,a4]@10 ~@2, ~ d4@2 ~@2 g4@2 ~@5]/3", // Dm Gm F
  I: "[~@24 [a3,c4]@35 ~@7 [c5,e5]@2 ~@4 [b4,d5]@2 ~@16 [f4,a4]@2 ~@4]/2", J: "[e4,g#4] ~@8 [c4,e4] ~@2 [b3,d4] ~@11",
  K: "[~@24 [a3,c4]@35 ~@7 [a#4,d5]@2 ~@4 [a4,c5]@2 ~@16 [d#4,g4]@2 ~@4]/2", // Am A# Am D#
  L: "[d4,f#4] ~@8 [a#3,d4] ~@2 [a3,c4] ~@11", M: "[~@12 c5@24 f5@23 ~ [c5,a5]@48 [b4,g5]@6 ~@30]/3", N: "~@5 b4 a4@2",
  O: "g4 ~@3", P: "~@5 d5 a4@2", Q: "~@3 c5", R: "~@3 d5", S: "~@3 g5",
  T: "[~@3 c5@4 c5 b4 g4@4 g4 b4 c5!2 b4 g4!2 b4 c5!2 b4]/2",
  U: "[g4@4 g4@4 b4@4 g4@48 a4@47 ~ d5@16 d5@4 c#5@4 a4@16 a4@4 c#5@4 d5@4 d5@4 c#5@4 a4@4 a4@4 c#5@4 d5@4 d5@4 c#5@4, ~@12 c5@95 ~@85]/4",
  V: "[a4@4 a4@4 c#5@3 ~ a4@48 g4@23 ~@97 f5@23 ~@25 [c5,f5]@6 ~@6, ~@12 d5@95 ~ e5@72 ~@60, ~@84 b4@47 ~ c5@71 ~@37]/5", // F5
  W: "~@6 [c5,f5] ~", X: "~@4 [c5,f5] ~@3", Y: "[c5,e5] ~@3 [c5,d#5] ~@3", Z: "[c5,e5] ~@7",
})).s("gm_clarinet").gain(0.26)

// chords · oboe
const oboe_2 = note(`<
  ~ A ~@6 B C D E F@3 G H@3 I ~@13 J K L ~ J M N ~@7 O@3 P@2 Q@2 ~@4 R S T U V W X Y ~@8 Z@2 AA@4 AB@5 AC AD AE AF ~@2
>`.pickRestart({
  A: "~@3 [a1,a2] ~@8", B: "~@12 [c4,e4]@8 ~@4 [d4,f4]@7 ~@3 [b3,d4]@2 [d4,f4]@2 ~@4 [c4,e4]@6",
  C: "~@12 [c4,e4]@7 ~@3 [d4,f4]@2 [d4,f4]@3 ~@3 [b3,d4]@3 ~@3 [c4,e4]@11 ~", // C Dm Bm C
  D: "~@12 [e4,g4]@9 ~@3 [f4,a4]@8 ~@2 [d4,f4]@2 [f4,a4]@3 ~@3 [e4,g4]@6", // Em F Dm F Em
  E: "~@12 [e4,g4]@7 ~@3 [f4,a4]@2 [f4,a4]@3 ~@3 [d4,f4]@3 ~@3 [e4,g4]@11 ~", // Em F Dm Em
  F: "[~@12 e3@12 f3@12 b3@23 ~ a3@12 a#3@12 e4@24 f4@12 e4@12 a3@4 b3@4 c4@4]/3",
  G: "b3@3 ~@3 d4@5 ~ g#3@18 a3@6 c4@12",
  H: "[b3@9 ~@3 e3@12 f3@12 [d3,b3]@23 ~ a3@12 a#3@12 [g3,e4]@23 ~ [d4,f4]@12 [c4,e4]@12 a3@4 b3@4 c4@4, ~ b2@2 ~@2 e3@2 ~@4 f3]/3", // G C Dm C
  I: "b3@6 d4@5 ~ g#3@11 ~@25", J: "~@3 e3 a3 g#3 g3 f#3", K: "f3@6 e3@5 ~@7 f4@2 ~@4 f4@2 ~@16 b3@2 ~@4",
  L: "b3 ~@8 f3 ~@2 f3 ~@11", M: "f3@3 d#3@3 ~@3 d#4 ~@2 d#4 ~@8 a3 ~@2", N: "a3 ~@8 d#3 ~@2 d#3 ~@11",
  O: "[~@12 c4@24 f4@23 ~ [c4,a4]@48 [b3,g4]@6 ~@30]/3", P: "[~@12 c3@24 f2@24 c2@17 ~@19]/2",
  Q: "[~@12 c3@12 g2@12 d#2@24 g#2@17 ~@19]/2", R: "~ a#3 a3 g#3", S: "a3 c4 b3 a#3", T: "b3 d4 c4 d#4",
  U: "e4@2 g4@2 f#4@2 f4 c#4", V: "e4 d4 c4@2 ~@2 c4@2", W: "d4@7 ~@29 f#3@12", X: "g3@7 ~@29 b3@12", Y: "c4@7 ~@41",
  Z: "[~@12 [c4,e4]@23 ~ a3@12 b3@11 ~ [c4,e4]@11 ~ [g3,d4]@11 ~ [c4,e4]@11 ~, ~@36 f4@23 ~@37]/2", // C G5 C
  AA: "[[g3,d4]@11 ~ e4@72 f4@23 ~ [d4,f4]@23 ~ b3@12 c#4@11 ~ [d4,f4]@11 ~ [a3,e4]@11 ~ [d4,f4]@11 ~, ~@12 c4@95 ~@25 g4@23 ~@37]/4", // G5 Dm A5 Dm
  AB: "[[a3,e4]@11 ~ [d4,f4]@95 ~ g4@48 ~@24 f4@23 ~@25 a2@6 ~@6, ~@9 e4@6 ~@5, ~@156 a4@47 ~@37]/5", AC: "~@6 a2 ~",
  AD: "~@4 a2 ~@3", AE: "a2 ~@3 a2 ~@3", AF: "a2 ~@7",
})).s("gm_oboe").gain(0.24)

// other · french horn · "FR.HORN"
const french_horn = note(`<
  ~ A ~@6 B C D E ~@4 F@3 ~@15 G ~@3 H ~@9 I@2 J@2 K@2 ~@20 L M N ~ O P Q ~@7 R@3
>`.pickRestart({
  A: "~@12 [a3,e4]@5 ~@31", B: "~@12 a3@9 ~@3 a3@8 ~@2 a3@2 a3 ~@5 a3@6",
  C: "~@12 a3@7 ~@3 a3@2 a3@3 ~@3 a3@3 ~@3 a3@11 ~", D: "~@12 c4@9 ~@3 c4@8 ~@2 c4@2 c4@3 ~@3 c4@6",
  E: "~@12 c4@7 ~@3 c4@2 c4@3 ~@3 c4@3 ~@3 c4@11 ~",
  F: "[~@36 [b3,d4]@23 ~ e3@11 ~ e3@11 ~ [g3,e4]@23 ~ [f3,a3]@11 ~ [f3,a3]@11 ~ [f3,a3]@12]/3", // Bm C F
  G: "~@12 [e3,e4]@7 ~ [e3,e4] ~@27", H: "~@12 [d3,d4]@7 ~ [d3,d4] ~@27", I: "[~@12 [d4,f4]@48 [d4,f4] ~@35]/2",
  J: "[~@6 e4@12 f4@12 e4@11 ~@7]/2", K: "[~@3 d#4@3 d4@3 g4@6 d#4@5 ~@4]/2", L: "~@12 g3@23 ~ a3@10 ~@2",
  M: "b3@10 ~@2 g3@5 ~@7 b3@5 ~@7 g3@5 ~@7", N: "b3@5 ~@7 g3@8 ~@28", O: "~@12 a3@23 ~ b3@10 ~@2",
  P: "c#4@10 ~@2 a3@5 ~@7 c#4@5 ~@7 a3@5 ~@7", Q: "c#4@5 ~@7 a3@8 ~@28", R: "[~ c4@4 b3@4 ~@3]/3",
})).s("gm_french_horn").gain(0.31).pan(0.6)

// other · trombone
const trombone = note("<~ A ~@72 B@2 C ~ D@2 E ~@3 F G H@2 ~@3>".pickRestart({
  A: "~@12 a3@5 ~@31, ~@4 a5 ~@11", B: "[~@3 [c4,c5]@5 ~ [g3,g4]@5 ~ [c4,c5] ~@2 [g3,g4] ~@2 [c4,c5] ~@2]/2",
  C: "[g3,g4]@4 ~@8 [c4,c5]@5 ~@31", // G C
  D: "[~@12 [d4,d5]@20 ~@4 [a3,a4]@20 ~@4 [d4,d5]@5 ~@7 [a3,a4]@4 ~@8 [d4,d5]@4 ~@8]/2", E: "[a3,a4] ~@2 [d4,d5] ~@8",
  F: "~ [c4,c5]@3", G: "~@6 [c4,c5] ~ [c4,c5]@2 [c4,c5]@2 [c4,c5]@34 ~@2",
  H: "[~@6 [c4,c5]@2 [c4,c5]@2 [c4,c5]@2 [c4,c5]@12 ~@12 [c4,c5]@16 ~@8 [c4,c5]@15 ~@9 [c4,c5]@12]/2", // C
})).s("gm_trombone").gain(0.63).pan(0.6)

// chords · trombone
const trombone_2 = note("<~ A ~@48 B@2 C@2 ~@20 D@2 E ~ F@2 G ~@3 H@2 I J K ~@2>".pickRestart({
  A: "~@12 a2@5 ~@31, ~@4 e3 ~@11", B: "[~ g3@2 a3 g#3 g3@2 ~, ~ [c3,c4]@6 ~]/2",
  C: "[~ [c3,c4] [d3,a#3] [d#3,c#4]@2 [g#2,d#3,c4]@2 ~, ~ g3@4 ~@3]/2", // C Gm D#7 G#
  D: "[~@12 [c3,e4]@19 ~@5 [c3,g3,f4]@19 ~@5 [c3,g3,e4]@4 ~@8 [c3,g3,f4]@4 ~@8 [c3,g3,e4]@4 ~@8]/2", // C Csus4 C Csus4 C
  E: "[c3,g3,f4] ~@2 [c3,g3,e4] ~@8", // Csus4 C
  F: "[~@12 [d3,a3,f4]@19 ~@5 [d3,a3,g4]@19 ~@5 [d3,a3,f4]@4 ~@8 [d3,a3,g4]@4 ~@8 [d3,a3,f4]@4 ~@8]/2", // Dm Dsus4 Dm Dsus4 Dm
  G: "[d3,a3,g4] ~@2 [d3,a3,f4] ~@8", H: "~@9 [a3,c4,f4] ~@2", I: "~@6 [a3,c4,f4] ~@5",
  J: "[g3,c4,e4] ~@5 [f#3,c4,d#4] ~@5", K: "[g3,c4,e4] ~@11",
})).s("gm_trombone").gain(0.37).pan(0.6)

// chords · orchestra hit · "ORCH.HIT" · Am
const orchestra_hit = note("<~ [~@6 [a3,c4,e4,a4,a5] ~@17] ~@89>").s("gm_orchestra_hit").gain(0.64)

// chords · pizzicato strings · "ORCH.HIT"
const pizzicato_strings = note("<~@28 A B C ~@9 D E F ~@45 G H I>".pickRestart({
  A: "~@6 e2 ~@5 d2 ~@5 g#1 ~@5", B: "~@12 a2 ~@11 g2 ~@11 c#2@2 ~@10", C: "~@12 d3@2 ~@10 a2@2 ~@10 d2 ~@11",
  D: "~@21 d4 ~@2", E: "[g3,d4]@2 ~@4 d4@2 ~@4 [d3,f4] ~@29 [a4,b4]@2 ~@4",
  F: "[d4,b4] ~@2 [a4,b4] ~@2 [d4,b4] ~@5 [d4,b4,f5,a5] ~@11", G: "~@18 [a2,a3,c4,f4] ~@5",
  H: "~@12 [b2,g3,b3] ~@23 [b1,b2,f#3,a3]@2 ~@10", I: "~@6 [e2,e3] ~@17",
})).s("gm_pizzicato_strings").gain(0.27)

// other · timpani
const timpani = note(`<
  [~@12 a2!2 ~ a2!4 ~ a2!4 ~ a2!4 ~ a2!4 ~ a2!4 ~ a2!4 ~ a2!3]
  [a2 ~ a2!4 ~ a2!5 ~@2 a2 ~@33]
  ~@82
  [~@9 a2 ~@2]!2
  [~@6 a2 ~@5]
  [a2 ~@5 a2 ~@5]
  [a2 ~@11]
  ~@2
>`).s("gm_timpani").gain(0.5).pan(0.4)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@8 A B C D E F G H I@3 J K L M N O ~@3 P@3 ~ Q ~ R S T ~ U V W@2 ~@2 X Y Z AA AB AC AD AE@2 AF@6 AG AH AI@2 AJ AK
  AL@3 AM ~@22
>`.pickRestart({
  A: "~@21 a3 ~@2", B: "a3@2 ~@4 b3@2 ~@4 a3@5 ~@19 a3@4 ~@5 a3@2 ~", C: "a3@2 ~@4 b3@2 ~@4 c4@5 ~@25 c4@2 ~@4",
  D: "c4@2 ~@4 d4@2 ~@4 c4@5 ~@19 c4@5 ~@4 c4@2 ~", E: "c4 ~@2 d4 ~@5 d4 ~@5 d4 ~@5 f4 ~@2",
  F: "~@3 f4 ~@5 g4 ~@5 g4 ~@5 a#4 ~@2", G: "~@3 a#4 ~@5 a4 ~@5 c5 ~@5 f4 ~@2", H: "~@9 d#4 ~@5 d#4 ~@5 e4 ~@2",
  I: "[~@6 e4@2 ~@7 d4@3 e4@3 g#4@3 a4@3 d4@3 f4@3 a4@3 b4@3 d4@3 f4@3 b4@6 d4@3 f4@3 b4@3 ~@3 g4@3 a4@3 c#5@3 d5@3 g4@3 a#4@3 d5@3 e5@3 g4@3 a#4@3 e5@6 g4@3 a#4@3 e5@3 ~@3 f4@3 a4@3 d5@3 e5@3 a4@3 c5@3 e5@3 f5@6 ~@6]/3",
  J: "~@12 d#4@17 ~ d#4@5 ~ [e4,a4]@5 ~@7", K: "d4@5 ~@8 c4@5 ~@30", L: "~@36 a3@4 ~@5 a3@2 ~",
  M: "a3 ~@2 b3 ~@2 c4@2 ~@16", N: "~@36 c4@4 ~@5 c4@2 ~", O: "c4 ~@2 d4 ~@20",
  P: "[~ d4@2 f4@2 g4@2 a#4@2 a4 c5 f4]/3", Q: "e4 ~@15", R: "~@6 d4 ~@8 a5 ~@2 g#5 ~@5",
  S: "~@3 e5 ~@2 d5 ~@8 a4 ~@2 g#4 ~@2 f4 ~@2", T: "e4 ~@23", U: "~@12 c4@3 ~@15 g5@2 ~@4 f#5@2 ~@10",
  V: "~@3 d5 ~@2 c5 ~@8 g4 ~@2 f#4 ~@2 d#4 ~@2",
  W: "[d4@2 ~@39 g4@2 ~@4 a#4@2 ~@4 g4 ~@42, ~@20 f#4 ~@2 a4 ~@2 f#4 ~@21]/2", X: "~@12 c4@30 c4@5 ~",
  Y: "c4@5 ~ c4@5 ~ d4@30 d4@5 ~", Z: "d4@5 ~ d4@5 ~ f4@26 ~ f4@2 ~ f4@2 ~ f4@2 ~",
  AA: "f4@2 ~ f4@2 ~ f4@2 ~ f4@2 ~ a4@2 ~ a4@2 ~ f4@2 ~ f4@2 ~ f4@2 ~ f4@2 ~ a4@2 ~ a4@2 ~ c5@2 ~ c5@2 ~ a4@2 ~ a4@2 ~",
  AB: "a4@2 ~ a4@2 ~ c5@2 ~ c5@2 ~ f5@5 ~@31", AC: "~@3 a3", AD: "b3 c4 ~@2", AE: "[~@5 d4@5 ~@6]/2",
  AF: "[~@30 c4@6 b3@24 c4@66 c5@6 b4@19 ~@5 c4@12 d4@12 g4@24 f#4@24 d4@21 ~@27 g#3@12]/6", AG: "a3 ~@2 a#3",
  AH: "b3 ~@2 d#4", AI: "[e4@6 d4@3 f4@6 g3 ~@8]/2", AJ: "~@3 a3 ~@8", AK: "~@3 b3 ~@5 d#4 ~@2",
  AL: "[~@12 c4@4 ~@20 b3@36 c4@11 ~ c#4@36 d4@11 ~ d#4@12]/3", AM: "e4@11 ~ f4@4 ~@32",
})).s("gm_string_ensemble_1").gain(0.33).pan(0.4)

// other · tremolo strings · "STRINGS"
const tremolo_strings = note("<~@74 A B C@3 D E@5 ~@6>".pickRestart({
  A: "~@12 c5@20 ~@4 g4@11 ~", B: "g4@2 b4 c5!2 b4 g4!2 b4 c5!2 b4",
  C: "[g4!2 b4 c5 ~@5 g4@6 a4@12 [a3,f4] ~@2 d5!2 c#5 a4!3, ~@9 d5 ~@2]/3", D: "a4!2 c#5 d5!2 c#5 a4!2 c#5 d5!2 c#5",
  E: "[a4!2 c#5 d5 ~@5 a4@6 g4@6 b4@6 b4@6 c5@6 c5@6 c5@6 ~@9]/5",
// … 100 more lines

More by Edvard Grieg