Strudelify

Here I Go Again

BND

KeyA majorTempo97 bpm
0:00/0:00
// Here I Go Again — BND
// 97 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 16 "#Pnnr.Pad" pad metallic (copy of ch 6 "#Soft Pad" pad warm); ch 15 "Organ" drawbar organ (copy of ch 14 "#Rtr.Orga" rock organ)
// note: Full arrangement: all 83 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(97/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"
const piano = note(`<
  ~@10 A ~@2 B C D@2 E C F@2 G H I J K H I J K A ~@2 B A ~@2 B C D@2 E C F@2 G H I J K H I J K A ~@2 B C D@2 E C F@2 G H
  I J K H I J K H I J K H I J K ~
>`.pickRestart({
  A: "[a3,d4,f#4,a4,d5]@15 ~@17", // D
  B: "~@12 [g3,c#4,g4,c#5]@5 ~ c#4@2 [g3,d4,g4,d5] ~@3 [g3,e4,g4,e5]@7 ~, ~@18 c#5 ~@13", // Gdim G5 C
  C: "[g3,c4,e4,g4]@15 ~ [a3,d4,f#4,a4]@15 ~", // C D
  D: "[[b3,d4,g4,b4]@7 ~ [a3,d4,f#4,a4]@7 ~ [g3,b3,e4,g4]@7 ~ [g3,a3,d4,f#4]@6 [g3,c4,e4,g4]@18 [a3,d4,f#4,a4]@15 ~]/2", // G D Em D C D
  E: "[b3,d4,g4,b4]@15 ~@5 [f4,b4]@2 ~@2 [d4,f4,g4,b4]@7 ~, ~@20 [d4,g4] ~@11", // G Fdim G7 G5
  F: "[[b3,d4,g4,b4]@7 ~ [a3,d4,f#4,a4]@7 ~ [g3,b3,e4,g4]@7 ~ [g3,a3,d4,f#4]@5 ~ [a3,c#4,e4,a4]@32 ~@2]/2", // G D Em D A
  G: "b4@4 d#5 ~@3 [b4,c#5] ~@3 [b4,d#5]@7 ~ [a4,b4,e5] ~@3 [a4,b4,f#5]@7 ~, [b3,f#4]@5 ~@3, e5@3 ~@29", // Bsus2 B Asus2 B7 B5
  H: "[b3,e4,b4,e5,g#5]@11 ~ [b3,e4,b4,d#5,g#5]@19 ~", I: "[a3,e4,a4,c#5,e5]@15 ~",
  J: "[b3,e4,b4,e5]@11 ~ [b3,e4,b4,d#5]@19 ~", K: "[a3,e4,a4,c#5,e5]@9 ~@3 [a3,d#4,f#4,b4,d#5]@19 ~",
})).s("gm_piano").gain(0.25)

// bass · electric bass finger · "Fing.Bass"
const bass = note(`<
  ~@13 A B C B D B C E F G H I J G K G L M N M O M N P O Q R Q S Q R E F G H I J G K G L M N M O Q R Q S Q R E F G H I J
  G K G L G H I J G K G L ~
>`.pickRestart({
  A: "~@12 a1@8 b1 ~@3 c#2@7 ~", B: "c2@15 ~ d2@15 ~", C: "g2@7 ~ f#2@7 ~ e2@7 ~ d2@7 ~", D: "g1@19 ~ a1 ~@3 b1@7 ~",
  E: "a1@31 ~", F: "b1@7 ~", G: "e1@6 ~@2 b1@7 ~ e2@5 ~ b1@5 ~ e1@3 ~", H: "f#1@7 ~ a1@7 ~ b1@5 ~ c#2@5 ~ b1@3 ~",
  I: "e1@6 ~@2 b1@7 ~ e2@5 ~ e1@5 ~ f#1@3 ~", J: "f#1@5 ~ c#2@5 ~ f#2@3 ~ e2@3 ~ d#2@3 ~ c#2@3 ~ b1@3 ~",
  K: "f#1@5 ~ a1@5 ~ a1@3 ~ b1@5 ~ c#2@5 ~ b1@3 ~", L: "a1@5 ~ a1@2 ~@4 a1@3 ~ b1@5 ~ b1@2 ~@4 b1@3 ~",
  M: "d1@6 ~@2 a1@7 ~ d2@5 ~ a1@5 ~ d1@3 ~", N: "e1@5 ~ g1@5 ~ a1@3 ~ a1@5 ~ b1@5 ~ a1@3 ~",
  O: "e1@5 ~ b1@5 ~ e2@3 ~ d2@3 ~ c#2@3 ~ b1@3 ~ a1@3 ~", P: "d1@6 ~@2 a1@7 ~ d2@5 ~ d1@5 ~ e1@3 ~",
  Q: "c1@5 ~ c2@5 ~ c1@3 ~ d1@5 ~ d2@5 ~ d1@3 ~", R: "g1@2 ~@2 g1@3 ~ f#1@3 ~ f#1@3 ~ e1@2 ~@2 e1@3 ~ d1@3 ~ d1@3 ~",
  S: "g1@3 ~ a1@3 ~ b1@3 ~ c2@3 ~ d2@3 ~ c2@3 ~ b1@3 ~ a1@3 ~",
})).s("gm_electric_bass_finger").gain(0.31)

// chords · acoustic guitar steel · "St.Str.Gt"
const acoustic_guitar_steel = note(`<
  ~@2 A B A C A B A B A B A B D E D E D E F G H I H J H I H J A B A B A B A B D E D E D E F G H I H J H I H J A B A B D
  E D E D E F G H I H J H I H J H I H J H I H K ~
>`.pickRestart({
  A: "[a3,d4,f#4]@3 ~ [a3,d4,f#4]@4 [d4,f#4]@2 [d4,f#4] ~ [a3,d4,f#4]@2 f#4 d4 [a3,c#4,f#4]@3 ~ [a3,c#4,f#4]@4 [c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 f#4 c#4, ~@2 a3 ~@3 a3 ~", // D F#m F#5 F#m
  B: "[b3,e4,g4]@4 [b3,e4,g4]@4 [e4,g4]@2 [e4,g4] ~ [b3,e4,g4]@3 [c4,f4,g#4] [c#4,f#4,a4]@3 ~ [c#4,f#4,a4]@4 [f#4,a4]@2 [f#4,a4] ~ [c#4,f#4,a4]@2 e4 b3, ~@2 b3 ~@3 c#4 ~", // Em Fm F#m
  C: "[b3,e4,g4]@4 [b3,e4,g4]@4 [e4,g4]@2 [e4,g4] ~ [b3,e4,g4]@3 [c4,f4,g#4] [c#4,f#4,a4]@2 ~@14, ~@2 b3 ~@5", // Em Fm F#m
  D: "[g3,c4,e4]@3 ~ [g3,c4,e4]@4 [c4,e4]@2 [c4,e4] ~ [g3,c4,e4]@2 e4 c4 [a3,d4,f#4]@3 ~ [a3,d4,f#4]@4 [d4,f#4]@2 [d4,f#4] ~ [a3,d4,f#4]@2 f#4 d4, ~@2 g3 ~@3 a3 ~", // C D
  E: "[b3,d4,g4]@4 [b3,d4,g4]@4 [d4,g4]@2 [d4,g4] ~ [b3,g4]@4 [b3,d4,g4]@3 ~ [b3,d4,g4]@4 [d4,g4]@2 [d4,g4] ~ [b3,g4]@2 d4 b3, ~@2 b3 ~@3 b3 ~", // G G5 Em G G5 Em
  F: "[a3,c#4,e4]@29 ~@3", G: "[b3,d#4,f#4]@29 ~@3",
  H: "[b3,e4,g#4]@3 ~ [b3,e4,g#4]@4 [e4,g#4]@2 [e4,g#4] ~ [b3,e4,g#4]@2 g#4 e4 [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@4 [d#4,g#4]@2 [d#4,g#4] ~ [b3,d#4,g#4]@2 g#4 d#4, ~@2 b3 ~@3 b3 ~", // E G#m G#5 G#m
  I: "[a3,c#4,f#4]@3 ~ [a3,c#4,f#4]@4 [c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 f#4 c#4 [a3,c#4,f#4]@3 ~ [a3,c#4,f#4]@4 [c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 f#4 c#4, ~@2 a3 ~@3 a3 ~", // F#m F#5 F#m F#5 F#m
  J: "[a3,c#4,f#4]@3 ~ [a3,c#4,f#4]@4 [c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 f#4 c#4 [a3,d#4,f#4]@3 ~ [a3,d#4,f#4]@4 [d#4,f#4]@2 [d#4,f#4] ~ [a3,d#4,f#4]@2 f#4 d#4, ~@2 a3 ~@3 a3 ~", // F#m F#5 F#m D#dim D#m D#dim
  K: "[a3,c#4,f#4]@3 ~ [a3,c#4,f#4]@4 [c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 f#4 c#4 [a3,d#4,f#4]@3 ~ [a3,d#4,f#4]@4 [d#4,f#4]@2 [d#4,f#4] ~ [a3,d#4,f#4]@2 ~@2, ~@2 a3 ~@3 a3 ~", // F#m F#5 F#m D#dim D#m D#dim
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.6)

// chords · pad warm · "#Soft Pad"
const pad_warm = note("<A@2 ~@3 B ~@77>".pickRestart({
  A: "[d2,d3,e4,a4,c#5]/2", B: "~ [d2,d3,e4,a4,c#5]",
})).s("gm_pad_warm").gain(0.03).pan(0.3)

// chords · pad warm · "#Soft Pad" · soft notes
const pad_warm_soft = note("<A@2 ~@3 B ~@77>".pickRestart({
  A: "[a2,f#4]/2", B: "~ [a2,f#4]",
})).s("gm_pad_warm").gain(0.01).pan(0.3)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@22 A B A C A B A C D E D E D E D E F G F H F G ~@2 A B A C A B A C D E D E F G F H F G ~@2 A B A C A B A C A B A C A
  B A C ~
>`.pickRestart({
  A: "~@4 [b3,e4,g#4] ~@7 [b3,e4,g#4] ~@7 [b3,d#4,g#4] ~@7 [b3,d#4,g#4] ~@3", // E G#m
  B: "~@4 [a3,c#4,f#4] ~@7 [a3,c#4,f#4] ~@7 [a3,c#4,f#4] ~@7 [a3,c#4,f#4] ~@3", // F#m
  C: "~@4 [a3,c#4,f#4] ~@7 [a3,c#4,f#4] ~@7 [a3,d#4,f#4] ~@7 [a3,d#4,f#4] ~@3", // F#m D#dim
  D: "~@4 [a3,d4,f#4] ~@7 [a3,d4,f#4] ~@7 [a3,c#4,f#4] ~@7 [a3,c#4,f#4] ~@3", // D F#m
  E: "~@4 [b3,e4,g4] ~@7 [b3,e4,g4] ~@7 [c#4,f#4,a4] ~@7 [c#4,f#4,a4] ~@3", // Em F#m
  F: "~@4 [g3,c4,e4] ~@7 [g3,c4,e4] ~@7 [a3,d4,f#4] ~@7 [a3,d4,f#4] ~@3", // C D
  G: "~@4 [b3,d4,g4] ~@7 [a3,d4,f#4] ~@7 [g3,b3,e4] ~@7 [a3,d4,f#4] ~@3", // G D Em D
  H: "~@4 [b3,d4,g4] ~@7 [b3,d4,g4] ~@7 [b3,d4,g4] ~@7 [b3,d4,g4] ~@3", // G
})).s("gm_string_ensemble_1").gain(0.2)

// other · shamisen · "#Tsugaru"
const shamisen = note("<~@30 A@8 ~@8 B@2 C@2 B@2 D E A@2 F@2 ~@25>".pickRestart({
  A: "[d3@3 a3@3 d3@2 e3@3 a3@3 d3@16 ~@2]/2", B: "[e3@3 b3@3 e3@2 f#3@3 b3@3 e3@16 ~@2]/2",
  C: "[e3@3 b3@3 e3@2 f#3@3 b3@3 f#3@16 ~@2]/2", D: "e3@3 b3@3 e3@2 f#3@3 b3@3 ~@2", E: "e4@15 ~ f#4@15 ~",
  F: "[d3@3 a3@3 d3@2 e3@3 a3@3 d4@16 ~@2]/2",
})).s("gm_shamisen").gain(0.3)

// other · music box · "#Sft.Crst"
const music_box = note("<~@30 A@8 ~@8 B@2 C@2 B@2 D E A@2 F@2 ~@25>".pickRestart({
  A: "[d5@3 a5@3 d5@2 e5@3 a5@3 d5@16 ~@2]/2", B: "[e5@3 b5@3 e5@2 f#5@3 b5@3 e5@16 ~@2]/2",
  C: "[e5@3 b5@3 e5@2 f#5@3 b5@3 f#5@16 ~@2]/2", D: "e5@3 b5@3 e5@2 f#5@3 b5@3 ~@2", E: "e6@15 ~ f#6@15 ~",
  F: "[d5@3 a5@3 d5@2 e5@3 a5@3 d6@16 ~@2]/2",
})).s("gm_music_box").gain(0.39)

// chords · synth strings 1 · "#OB Strin"
const synth_strings_1 = note("<~ A@7 B@7 C@4 D@7 E@8 F@5 C@4 D@7 G@6 H@7 I J@5 K@8 L@5 ~>".pickRestart({
  A: "[~@47 c#4@16 [b3,d4]@16 c#4@16 d4@16 c#4@16 ~@16 [a3,c#4]@3 ~@29 c#4@16 [b3,d4,g4]@16 [c#4,f#4,a4]@16 d4, ~@31 f#4@33 ~@31 f#4@33 ~@31 f#4@33 ~@32, ~@31 d4@17 ~@15 [g3,e4]@32 ~@32 [g3,b3,d4,e4]@19 ~@14 a3@32 ~@32, ~@32 a3@32 ~@15 a3@32 ~@48 d4@17 ~@15 e4@32 ~]/7", // Bm A G F#m C Em7
  B: "[~@15 c#4@16 [b3,d4,g4]@16 [c#4,a4]@16 ~@16 c#4@16 [b3,d4,g4]@16 [c#4,a4]@16 ~@16 c#4@16 [b3,d4,g4]@16 [c#4,f#4,a4]@16 [g3,c4]@16 [a3,d4,f#4]@16 [b3,d4,g4], a3@31 e4@32 d4@17 ~@15 e4@32 d4@17 ~@15 e4@64 ~, ~@47 f#4@32 ~@32 f#4@32 ~@81, ~@2 a3 ~ a3 ~@2]/7", // G F#m G F#m G F#m C5 D …
  C: "[~@7 [a3,f#4]@8 [g3,b3,e4]@8 ~ [a3,f#4]@7 [g3,c4,e4]@16 [a3,d4,f#4]@16 [b3,d4,g4]@32 [g3,c4,e4]@16 [a3,d4,f#4]@16 [b3,d4,g4], ~@23 d4@7 ~@98]/4", // D Em D C D G C D …
  D: "[~@7 [a3,f#4]@8 [g3,b3,e4]@8 ~ f#4@7 [c#4,e4]@32 [b3,d#4,f#4]@32 ~@16 d#4@16 [a3,c#4,f#4]@32 ~@16 d#4@16 c#4@16 d#4@16 [e4,g#4], ~@23 d4@7 ~@65 g#4@33 ~@31 g#4@33 ~@32, ~@24 a3@15 ~@56 e4@17 ~@47 e4@17 ~@15 [a3,f#4]@32 ~, ~@3 b3 ~ b3 ~]/7", // D Em C#m B F#m E D
  E: "[~@15 d#4@16 [a3,c#4,f#4]@32 ~@16 d#4@16 c#4@16 d#4@16 ~@16 c#4@16 [b3,d4,g4]@16 [c#4,a4]@16 ~@16 c#4@16 [b3,d4,g4]@16 [c#4,f#4,a4]@16 d4, b3@32 ~@31 g#4@32 a3@32 ~ a3@32 ~@32 a3@32 ~@32, ~@63 e4@17 ~@15 f#4@64 e4@32 d4@17 ~@15 e4@32 ~, ~@64 b3@32 ~@31 d4@17 ~@31 f#4@32 ~@49]/8", // F#m G F#m G F#m
  F: "[~@15 c#4@16 [b3,d4,g4]@16 [c#4,a4]@16 ~@16 c#4@16 [b3,d4,g4]@16 [c#4,f#4,a4]@16 [g3,c4]@16 [a3,d4,f#4]@16 [b3,d4,g4], a3@31 e4@32 d4@17 ~@15 e4@64 ~, ~@47 f#4@32 ~@81, ~@2 a3 ~@2]/5", // G F#m G F#m C5 D G
  G: "[~@15 d#4@16 [a3,c#4,f#4]@32 ~@16 d#4@16 c#4@16 d#4@16 ~@16 c#4@16 [b3,d4,g4]@16 [c#4,f#4,a4]@16 d4, b3@32 ~@31 g#4@32 a3@32 ~ a3@32 ~@32, ~@63 e4@17 ~@15 f#4@64 e4@32 ~, ~@64 b3@32 ~@31 d4@17 ~@48]/6", // F#m G F#m
  H: "[~@15 c#4@16 [b3,d4,g4]@16 [c#4,f#4,a4]@16 [g3,c4]@16 [a3,d4,f#4]@16 [b3,g4]@8 [a3,f#4]@8 [g3,b3,e4]@8 ~ [a3,f#4]@7 [g3,c4,e4]@16 [a3,d4,f#4]@16 [b3,d4,g4]@32 [g3,c4,e4]@16 [a3,d4,f#4]@16 [b3,d4,g4], a3@31 e4@64 d4@16 ~@8 d4@7 ~@98]/7", // G F#m C5 D Em D Em D …
  I: "~@7 [a3,f#4]@8 [g3,b3,e4]@8 ~ [a3,f#4]@7 [c#4,e4], ~@23 d4@7 ~@2", // D Em D C#m
  J: "[~@31 [b3,d#4,f#4]@32 e4@16 d#4@16 [a3,c#4,f#4]@32 e4@16 d#4@16 [a3,c#4,f#4], ~@63 [b3,g#4]@33 ~@31 [b3,g#4]@33]/5", // B F#m E
  K: "[~@15 d#4@16 e4@16 d#4@16 [a3,c#4,f#4]@32 e4@16 d#4@16 c#4@16 d#4@16 e4@16 d#4@16 [a3,c#4,f#4]@32 e4@16 d#4@16 [a3,c#4,f#4], ~@31 [b3,g#4]@33 ~@31 [b3,g#4]@32 [a3,f#4]@32 [b3,g#4]@33 ~@31 [b3,g#4]@33]/8", // F#m E D E
  L: "[~@15 d#4@16 e4@16 d#4@16 [a3,c#4,f#4]@32 e4@16 d#4@16 c#4@16 d#4@16 ~, ~@31 [b3,g#4]@33 ~@31 [b3,g#4]@32 [a3,f#4]@32 ~]/5", // F#m E D
})).s("gm_synth_strings_1").gain(0.16)

// other · string ensemble 1 · "#Vlo.Strn"
const string_ensemble_1_2 = note(`<
  ~@17 A@4 B@2 C@2 D@2 C@2 E F@8 ~@3 A@4 B@2 C@2 D@2 C@2 G@5 ~@3 H@4 I@2 J@2 K@2 J@2 L@2 J@2 K@2 J@2 M ~
>`.pickRestart({
  A: "[~@11 [b4,b5]@8 [c5,c6] ~@3 [d5,d6]@4 c5@2 ~ [d5,d6] [e5,e6]@3 ~ [d5,d6]@2 ~@3 [c5,c6] ~@3 [b4,b5] ~@2 [a4,a5]@9 ~@3 [d5,d6]@8 [c5,c6] ~@3 [b4,b5] ~@3 [a4,a5] ~@3 [g4,g5]@5 ~@4 [f#4,f#5]@5 ~@2 [e4,e5]@29 ~@4, ~@27 c6 ~@100]/4", // B C D E D C B A …
  B: "[[e5,e6]@3 [d#5,d#6] ~@3 [c#5,c#6] ~@3 [d#5,d#6]@6 ~@9 c#5@2 ~@2 f#5 f#5@4 ~ e5@4 b4 ~@3 g#5@12 ~@8, ~@22 f#4@2 a4@2 ~@3 e5@2 ~@33, ~@23 g#4@2 b4@2 ~ d#5@2 ~@34]/2", // E D# C# D#
  C: "[~@4 b4 ~@3 e5 ~@3 f#5 ~@2 g#5@6 ~@3 f#5@7 f#5@4 ~ e5@4 b4 ~@3 g#5@12 ~@8]/2",
  D: "[e5@2 f#5@2 e5 ~ d#5@2 ~@3 b4@13 ~@7 f#5@4 ~ e5@4 b4 ~@3 g#5@12 ~@8]/2",
  E: "e5@2 f#5@2 e5 ~ d#5@2 ~@3 b4@8 e5 ~@4 f#5@8",
  F: "[f#5@15 ~ e5@15 ~ d5@15 ~@9 c#6@7 ~@17 e5@15 ~ d5@15 ~@9 c#6@7 ~@17 e5@15 ~ d5@15 ~@9 c#6@7 ~@17 e5@15 ~ d5@16 e5@16, a5 a5 a5 a5, ~@47 d6@9 ~@7 f#5@16 ~@32 d6@9 ~@7 f#5@16 ~@32 d6@9 ~@7 f#5@16 ~@49, ~@3 e5 ~@3 e5 ~@3 e5 ~@4]/8",
  G: "[e5@2 f#5@2 e5 ~ d#5@2 ~@3 b4@8 e5 ~@4 f#5@7 ~ f#5@15 ~ e4@8 a4@7 ~ d5@15 ~@9 [f#4,c#6]@7 ~@17 e5@15 ~ d5@16 e5@16, ~@31 f#4@16 ~ e5@15 d4@16 [c#4,d6]@9 ~@7 [b3,f#5]@16 a3@48 ~, ~ a5@2 a5@2, ~@5 e5 ~@4]/5", // F#5 Dmaj7 B5
  H: "[~@11 [b4,b5]@8 [c5,c6] ~@3 [d5,d6]@4 c5@2 ~ [d5,d6] [e5,e6]@3 ~ [d5,d6]@2 ~@2 [c5,c6] ~@4 [b4,b5] ~@2 [a4,a5]@9 ~@3 [d5,d6]@8 [c5,c6] ~@3 [b4,b5] ~@3 [a4,a5] ~@3 [g4,g5]@5 ~@4 [f#4,f#5]@5 ~@2 [e4,e5]@29 ~@4, ~@27 c6 ~@100]/4", // B C D E D C B A …
  I: "[[e5,e6]@3 [d#5,d#6] ~@3 [c#5,c#6] ~@3 [d#5,d#6]@6 ~@11 e5@2 f#5 f#5@4 ~ e5@3 b4 ~@4 g#5@12 ~@8, ~@11 f#4 a4 c#5 ~@18, ~@23 g#4@2 b4@2 d#5@2 ~@35]/2", // E D# C# D#
  J: "[~@4 b4 ~@3 e5 ~@3 f#5 ~@2 g#5@6 ~@3 f#5@7 f#5@4 ~ e5@3 b4 ~@4 g#5@12 ~@8]/2",
  K: "[e5@2 f#5@2 e5 ~ d#5@2 ~@3 b4@13 ~@7 f#5@4 ~ e5@3 b4 ~@4 g#5@12 ~@8]/2",
  L: "[e5@2 f#5@2 e5 ~ d#5@2 ~@11 e5 ~@4 f#5@7 f#5@4 ~ e5@3 b4 ~@4 g#5@12 ~@8, ~@11 b4@13 ~@40]/2",
  M: "e5@2 f#5@2 e5 ~ d#5@2 ~@11 e5 ~@4 f#5@8, ~@11 b4@13 ~@8",
})).s("gm_string_ensemble_1").gain(0.23).pan(0.6)

// chords · string ensemble 1 · "#Vlo.Strn"
const string_ensemble_1_3 = note("<~@21 A@7 B@2 ~@15 A@7 B@2 ~@8 C D E@8 F@8 B@2 ~>".pickRestart({
  A: "[~@31 [b4,e5,g#5]@15 ~ [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]@15 ~ [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]@15 ~ [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]]/7", // E G#m7 F#m7 B7 E G#m7 F#m7 B7 …
  B: "[~@15 [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~@2]/2", C: "~@19 b4 ~@4 c5@6 ~ d5, ~@15 c#5",
  D: "~@23 b4@8 a4",
  E: "[~@63 [e5,g#5]@15 ~ [d#5,f#5,g#5]@15 ~ [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]@15 ~ [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]@15 ~ [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5], ~@31 b4@65 ~@160]/8", // E G#7 F#m7 B7 E G#m7 F#m7 B7 …
  F: "[~@15 [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]@15 ~ [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]@15 ~ [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]@15 ~ [b4,d#5,f#5,g#5]@16 [f#4,a4,c#5,e5]@15 ~ [a4,b4,d#5,f#5]@15 ~ [b4,e5,g#5]]/8", // G#m7 F#m7 B7 E G#m7 F#m7 B7 E …
})).s("gm_string_ensemble_1").gain(0.13)

// chords · rock organ · "#Rtr.Orga"
const rock_organ = note("<~@57 A B@4 ~@21>".pickRestart({
  A: "~@24 e3 [a3,b3] [d4,e4] [f4,g4,a4] [b4,c5,d5] [e5,f5,g5] [a5,b5,c6] [d6,e6,f6]", // Asus2 Dsus2 F Bm Em Am Dm
  B: "[[g6,a6] ~@3 a6@4 g6@4 f#6@4 ~@20 c5@4 b4@4 a4@4 g4@8 f#4@4 [c5,g6]@8 [b4,f#6]@4 [a4,e6]@4 d6@4 c#6@2 d6@2 [f#4,c#6]@8 [d4,a5]@25 [c4,d4] [e4,f4,b5,c6] [g4,a4,b4,c5,d6,e6,f6,g6] [d5,e5,a6,b6] ~@7, e5@24 d5@13 ~@39 g4@8 ~@44, b6@4 ~@12 e6@16 d6@28 ~@60 [f5,c7]@7 ~]/4", // Gsus2 C5 B5 A5 F#5 D5 Csus2 Cmaj7 …
})).s("gm_rock_organ").gain(0.43)

// chords · rock organ · "#Rtr.Orga" · soft notes · Fsus2 Bm7b5
const rock_organ_soft = note("<~@57 [~@24 [f3,g3] ~ c4 ~@5] ~@3 [~@21 [b3,f5,g5,a5] ~@10, ~@10 g#4 ~@5] ~@21>")
  .s("gm_rock_organ").gain(0.21)

// drums · kick
const kick = s("bd").struct(`<
  ~@10 A@4 B@3 C B D E@2 B C B C B C B C B@3 C B@3 C B@3 C B D E@2 B C B C B C B C B@3 C B@3 C B D E@2 B C B C B C B C B
  C B C B C B C ~
>`.pickRestart({
  A: "~ x ~ x", B: "x!4", C: "x ~ x ~ x ~ x!2", D: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3", E: "x",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct(`<
  ~@21 A B@3 C B@3 D B@3 C B@3 E B@3 E B@2 ~ A B@3 C B@3 F B@3 G B@3 H B@2 ~ A B@3 I B@3 F B@3 J B@3 K ~
>`.pickRestart({
  A: "~@10 x ~ x ~@2 x", B: "~ x ~ x", C: "~@4 x ~@5 x ~ x ~@2 x", D: "~@4 x ~@5 x ~ x ~ x!2", E: "~@2 x ~@2 x!3",
  F: "~@4 x ~@2 x ~ x!2 ~ x ~@2 x", G: "~@4 x ~@4 x ~@2 x ~ x ~", H: "~@4 x ~@4 x ~@2 x ~@2 x",
  I: "~@4 x ~@4 x!2 ~ x ~ x ~", J: "~@4 x ~@7 x ~@2 x", K: "~@4 x ~@2 x ~ x!2 ~ x ~@3",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct("<~@10 A@10 ~@2 A@22 ~@2 A B A@2 C D A@3 C A@5 C A@2 E@2 A@16 ~>".pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~", C: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
  D: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x!2", E: "x!4",
})).gain(0.42)

// drums · crash
const crash = s("cr").struct(`<
  ~@2 A ~@3 A ~@3 B ~@3 A ~@3 A ~ A ~ B ~@3 B ~@3 B ~@3 B ~@3 B ~ B ~ B ~ A ~ B ~ B ~ B ~ B ~ B ~@3 A ~ A ~ A ~ A ~ B
  ~@3 B ~@3 B ~@3 B ~@4
>`.pickRestart({
  A: "x!2 ~@2", B: "x",
})).gain(0.36)

// drums · tambourine
const tambourine = s("tb").struct("<~@2 A@3 B A@14 ~@2 A@22 ~@2 A@18 ~@2 A@16 ~>".pickRestart({
  A: "x!3 ~ x ~ x ~ x!3 ~ x ~ x ~", B: "x!3 ~ x ~ x ~ x ~@7",
})).gain(0.18)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@2 A@3 B A@14 ~@2 A@22 ~@2 A@18 ~@2 A@15 C ~>".pickRestart({
  A: "~@3 x ~ x ~ x ~@3 x ~ x ~ x", B: "~@3 x ~ x ~ x ~@8", C: "~@3 x ~ x ~ x ~@3 x ~ x ~@2",
})).gain(0.12)

stack(
  piano, bass, acoustic_guitar_steel, pad_warm, pad_warm_soft, string_ensemble_1, shamisen, music_box, synth_strings_1,
  string_ensemble_1_2, string_ensemble_1_3, rock_organ, rock_organ_soft, kick, snare, hihat, crash, tambourine,
  tambourine_soft
)