Strudelify

Opus Insert

Kansas

KeyF minorTempo128 bpm
0:00/0:00
// Opus Insert — Kansas
// 128 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 13 "MELODY (VARIOUS)" celesta (copy of ch 1 "BASS AND LEAD" lead 6 voice)
// note: Full arrangement: all 144 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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.

// bass · lead 8 bass lead · "BASS AND LEAD"
const bass = note("<A@12 ~@107 B C D@4 E@2 F G H@3 ~@12>".pickRestart({
  A: "bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2 ~ bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2 ~", B: "~@13 bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2",
  C: "~ bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2 ~ bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2",
  D: "[~ bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2 ~ bb1@2 ~@2 bb1@2 ~ bb2@2 ~ bb2@2 ~ bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2 ~ bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2 ~ bb1@2 ~ bb1@2 ~ bb2@2 ~ bb2@2 ~ c2@2 ~ c2@2 ~ c3@2 ~ c3@2 ~ c2@2 ~ c2@2 ~@2 c3@2 ~ c3@2 ~ c2@2 ~ c2@2 ~ c3@2 ~]/4",
  E: "c3@2 ~ c2@2 ~ c2@2 ~ c3@2 ~ c3@2 ~ c2@2 ~ c2@2 ~ c3@2 ~",
  F: "~ c3@2 ~ c2@2 ~ c2@2 ~ c3@2 ~ c3@2 ~ f1@2 ~ f1@2 ~ f2@2",
  G: "~ f2@2 ~ f1@2 ~ f1@2 ~ f2@2 ~ f2@2 ~ f1@2 ~ f1@2 ~ f2@2",
  H: "[~ f2@2 ~ f1@2 ~ f1@2 ~ f2@2 ~ f2@2 ~@2 db2@2 ~ db2@2 ~ db2@2 ~ db2@2 ~ db2@2 ~ db2@2 ~ db3@2 ~ db3@2 ~ db2@2 ~ db2@2 ~ db2@2 ~ db2@2 ~ db2@3 ~@2 eb2@3 ~ f2@3 ~@7]/3",
})).s("gm_lead_8_bass_lead").gain(0.4).pan(0)

// other · contrabass · "BASS AND LEAD"
const contrabass = note("<~@13 A B@2 C@3 D@2 ~ E F G@3 H@2 ~@10 I J K@2 L@3 ~@57 M N@6 ~@34>".pickRestart({
  A: "~@19 bb3@3 c4@2", B: "[~ d4@6 c4@3 bb3@6 d4@6 bb3@12 ~@9 bb3@3 c4@2]/2",
  C: "[~@2 d4@6 c4@3 bb3@6 d4@6 bb3@12 ~@3 d4@3 c4@3 bb3@3 bb3@6 c4@12 ~@7]/3", D: "[~ c4@3 ab3@5 ~@7]/2",
  E: "~@10 bb3@3 c4@3 d4@6 c4@2", F: "~ bb3@6 d4@6 bb3@11",
  G: "[~@11 bb3@3 c4@3 d4@6 c4@3 bb3@6 d4@6 bb3@12 ~@3 d4@3 c4@3 bb3@3 bb3@6 ~ c4@3]/3",
  H: "[c4@12 ~@6 c4@9 ab3@16 ~@5]/2", I: "~@4 bb3@3 c4@3 d4@6 c4@3 bb3@5", J: "~ d4@3 bb3@6 ~@2",
  K: "[~@5 bb3@3 c4@3 d4@6 c4@3 bb3@6 d4@6 bb3@12 ~@4]/2",
  L: "[d4@3 c4@3 bb3@3 bb3@6 c4@15 ~@6 c4@7 ~@2 ab3@16 ~@11]/3", M: "~@19 d4@5",
  N: "[~ c4@3 bb3@6 d4@6 bb3@12 ~@9 bb3@3 ~ c4@3 d4@6 c4@3 bb3@6 d4@6 bb3@12 ~@3 d4@3 c4@3 bb3@3 bb3@6 c4@15 ~@7 c4@9 ab3@16 ~@2]/6",
})).s("gm_contrabass").gain(0.4)

// other · string ensemble 1 · "BASS AND LEAD"
const string_ensemble_1 = note("<~@20 A B@2 ~@6 C D ~@14 E F G ~@8 H I@8 ~@45 J K ~@19 L@2 M@2 N@2 O@7>".pickRestart({
  A: "~@4 f4 ~ g4 ~", B: "[f4@3 ~@3 g4@3 ~@4 f4@3 ~@3 g4@3 g4@9 ~@17]/2", C: "~@3 f4@3 ~@4 g4@3 ~@3 f4@3 ~@3 g4@2",
  D: "~@4 f4@3 ~@3 g4@3 g4@9 ~@2", E: "~@11 f4", F: "~@4 g4@3 ~@3 f4@3 ~@3 g4@3 ~@3 f4@2", G: "~@4 g4@3 g4@9 ~@8",
  H: "~ ab5@6 eb6@5",
  I: "[~@2 db6@6 c6@6 bb5@6 ~ ab5@6 ab5@12 db6@12 b5@6 bb5@6 ab5@6 gb5@6 ab5@12 ~ eb6@12 db6@6 c6@6 bb5@6 ab5@6 ab5@12 db6@12 ~ b5@5 bb5@5 ab5@6 gb5@5 ab5@12 ~@10]/8",
  J: "~@2 f4 ~ g4 ~ f4 ~", K: "~ g4@3 ~@3 f4@3 ~@3 g4@3 g4@8", L: "[~@17 ab5@12 eb6@12 ~ db6@6]/2",
  M: "[c6 bb5 ab5 ab5@2 db6@2 b5]/2", N: "[~ bb5@6 ab5@6 gb5@6 ab5@12 eb6@12 db6@5]/2",
  O: "[~ c6@6 bb5@6 ab5@6 ~ ab5@12 db6@12 b5@6 bb5@6 ab5@6 gb5@6 ab5@85 ~@15]/7",
})).s("gm_string_ensemble_1").gain(0.72)

// other · pad choir · "BASS AND LEAD"
const pad_choir = note("<~@87 A B@2 C@2 D@2 E ~@49>".pickRestart({
  A: "~@8 ab3@2 bb3@12 gb3 ~, ~@7 gb3@2 ~@15",
  B: "[~ bb3@3 c4@3 ab3@2 ~ c4@3 ~ db4@3 ~ c4@2 db4@3 eb4@3 ~ eb4@2 f4@2 ~ eb4@2 ~ gb4@2 ~ f4@2 ~ ab4@2 ~ gb4@2 ab4@2, ab3@2 ~@7 bb3@2 ~@6 bb3@2 ~@7 db4@2 ~@3 gb4@2 ~ f4@2 ~ ab4@2 ~ gb4@2 ~ bb4@2 ~@3]/2",
  C: "[~ c5@2 ~ ab4@2 ~ c5@2 c5@3 bb4@2 ~ gb4@12 ~@21, bb4@2 ~ gb4@2 ~ bb4@2 ~@6 ab4@2 ~@32]/2",
  D: "[~@10 c5@3 ~@2 ab4@2 gb4@12 gb4@3 f4@2 ~ db4@2 ~ f4@2 gb4 gb4@2 ~ bb4@2 c5@2, ~@14 bb4@2 ~@18 eb4@2 ~ eb4@2 ~@4 ab4@2 ~@3]/2",
  E: "db5 ~@11",
})).s("gm_pad_choir").gain(0.64).pan(1)

// other · synth strings 1 · "SYNTH STRING 1"
const synth_strings_1 = note(`<
  A@2 B C A@2 B C A@2 B C ~@44 D@4 E@5 ~@22 F G@2 H@2 I@2 ~@25 J K L M@3 N@6 O@4 P@8 ~
>`.pickRestart({
  A: "[eb6 d6@2 c6]/2", B: "f6 eb6", C: "d6 c6", D: "[~ ab5@47]/4", E: "[~@3 ab5@107 ~@10]/5",
  F: "~@8 ab3@2 bb3@12 gb3 ~, ~@7 gb3@2 ~@15",
  G: "[~ bb3@3 c4@3 ab3@2 ~ c4@3 ~ db4@3 ~ c4@2 db4@3 eb4@3 ~ eb4@2 f4@2 ~ eb4@2 ~ gb4@2 ~ f4@2 ~ ab4@2 ~ gb4@2 ab4@2, ab3@2 ~@7 bb3@2 ~@6 bb3@2 ~@7 db4@2 ~@3 gb4@2 ~ f4@2 ~ ab4@2 ~ gb4@2 ~ bb4@2 ~@3]/2",
  H: "[~ c5@2 ~ ab4@2 ~ c5@2 c5@3 bb4@2 ~ gb4@12 ~@21, bb4@2 ~ gb4@2 ~ bb4@2 ~@6 ab4@2 ~@32]/2",
  I: "[~@10 c5@3 ~@2 ab4@2 gb4@12 gb4@3 f4@2 ~ db4@12 ~, ~@7 bb4 ~@9 eb4 ~@6]/2", J: "~@13 eb6@11", K: "~ d6@23",
  L: "~ c6@12 f6@11", M: "[~ eb6@6 d6@6 c6@6 f6@6 eb6@11]/3",
  N: "[~@3 d6@12 g6@12 f6@12 eb6@12 ~ d6@12 bb6@12 a6@24 g6@12 ~ ab6@12 g6@12 f6@3 g6@3 ab6]/6",
  O: "[~@2 bb6@2 ~ bb6@3 ~@2 c7@3 ~ db7@3 [ab5,ab6]@79]/4", P: "[~@29 ab3@19, ~@19 [ab5,ab6]@173]/8",
})).s("gm_synth_strings_1").gain(0.72)

// chords · pad halo · "PAD 7 (HALO)"
const pad_halo = note(`<
  A B C B D@2 C B D@2 C B ~@44 E@4 F@5 ~@3 G H I ~@3 J@5 ~@40 K@3 L@7 M@4 N@2 O@8 ~
>`.pickRestart({
  A: "[bb4,f5]", B: "[bb4,gb5]", C: "[c5,g5]", D: "[f5 gb5, bb4]/2", E: "[~@2 ab5@49 ab5@45]/4",
  F: "[~@3 ab5@49 ab5@58 ~@10]/5", G: "~@23 [eb4,gb4,g4,b4,c5]",
  H: "[e4,f4,ab4,a4,db5,d5] [gb4,b4,eb5]@11 [gb4,bb4,db5]@12", // Amaj7 B Gb
  I: "[ab4,c5,eb5]@5 [gb4,g4,bb4,b4,db5,d5] [e4,f4,ab4,a4,c5] eb4 ~@16", // Ab Gmaj7 Fmaj7
  J: "[~@21 [eb4,gb4,g4,b4,c5] [e4,f4,ab4,a4,db5,d5] ~@11 [gb4,bb4,db5]@12 [ab4,c5,eb5]@12 [bb4,d5,f5]@12 ~ [c5,g5]@37 ~@12, ~@11 [gb4,b4,eb5]@6 ~@43]/5", // Cm Amaj7 Gb Ab Bb C5 B
  K: "[~@13 [bb4,f5]@24 [bb4,gb5]@24 ~ g5@10, ~@61 c5@11]/3", // Bb5 Ebm
  L: "[~@14 [bb4,gb5]@24 g5@24 ab5@25 [c5,a5]@24 ~ ab5@24 [f4,f5,f6]@32, ~@38 c5@49 ~@24 c5@24 ~@33]/7", // Ebm F
  M: "[~@4 f4@24 ~ f4@36 ab5@31, ~@4 [f5,f6]@61 ~@31]/4", N: "[~@3 ab5@5]/2", O: "[~@19 ab5@49 ab5@124]/8",
})).s("gm_pad_halo").gain(0.48)

// chords · piano · "PAD 7 (HALO)"
const piano = note("<~@56 A@2 B@8 C@2 D E F G@5 ~@7 H I J K ~@2 L M@4 N ~@17 O P@4 Q R S ~@24>".pickRestart({
  A: "[~ [ab2,ab3]@12 [gb2,gb3]@11]/2", // Ab Gb
  B: "[~@3 [f2,f3]@24 [e2,e3]@24 [ab2,ab3]@24 ~ [gb2,gb3]@24 [f2,f3]@24 ~ [e2,e3]@21 [ab4,c5,eb5]@3 ~@3 [ab4,c5,eb5]@3 ~@3 [ab4,c5,eb5]@3 ~@3 [ab4,c5,eb5]@3 ~@3 [gb4,c5,eb5]@3 ~@3 [gb4,c5,eb5]@3 ~@3 [gb4,c5,eb5]@3 ~@3 [gb4,c5,eb5]@3 ~, ~@73 [ab1,ab2]@12 [gb1,gb2]@11]/8", // F E Ab Gb F E Ab Cdim …
  C: "[~@2 [f4,ab4,db5]@3 ~@3 [f4,ab4,db5]@3 ~@3 [f4,ab4,db5]@3 ~@2 [f4,ab4,db5]@3 ~@3 [e4,ab4,b4]@3 ~@3 [e4,ab4,b4]@3 ~@3 [e4,ab4,b4]@3 ~@3 [e4,ab4,b4]@3 ~@2, ~@2 [f1,f2]@23 [e1,e2]@23]/2", // Db E F E
  D: "~ [gb4,bb4,db5]@3 ~@3 [gb4,bb4,db5]@3 ~@3 [gb4,bb4,db5]@3 ~@3 [gb4,bb4,db5]@3 ~@2, ~ [gb1,gb2]@23", // Gb
  E: "~ [ab4,b4,eb5]@11 [gb4,bb4,db5]@12", F: "[ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [ab4,c5,eb5] ~ [ab4,c5,eb5] ~, [ab1,ab2]",
  G: "[[gb4,c5,eb5]@3 ~@3 [gb4,c5,eb5]@3 ~@3 [gb4,c5,eb5]@3 ~@3 [gb4,c5,eb5]@3 ~@2 [f4,ab4,db5]@3 ~@3 [f4,ab4,db5]@3 ~@3 [f4,ab4,db5]@3 ~@3 [f4,ab4,db5]@3 ~@3 [e4,ab4,b4]@3 ~@3 [e4,ab4,b4]@3 ~@3 [e4,ab4,b4]@3 ~@3 [e4,ab4,b4]@3 ~@3 [gb4,bb4,db5]@3 ~@3 [gb4,bb4,db5]@3 ~@3 [gb4,bb4,db5]@3 ~@2 [gb4,bb4,db5]@3 ~@3 [ab1,ab4,b4,eb5]@12 [gb1,gb4,bb4,db5]@12 ~@2, [gb1,gb2]@23 [f1,f2]@24 [e1,e2]@24 [gb1,gb2]@24 ~@25]/5", // Cdim Db E Gb Abm Gb F E …
  H: "~@7 [f3,f4] [f3,f4]@2 [bb3,bb4]@3 [eb4,eb5]@3 [d4,d5]@3 [bb3,bb4]@5", // F Bb Eb D Bb
  I: "~@7 [f3,f4]@2 ~ [bb3,bb4]@3 ~ [eb4,eb5]@3 [d4,d5]@3 [bb3,bb4]@3 ~, ~@9 [f3,f4]@2 ~@13", // F Bb Eb D Bb F
  J: "~@2 [a3,d4,a4,d5]@6 [g3,g4]@2 ~ [d3,d4]@8 ~ [e3,e4]@2 [f3,f4]@2, ~@5 [f3,f4] ~@6", // D5 G D E F
  K: "~ [d3,d4]@2 [c3,c4]@3 [b2,b3]@3 [c3,c4]@3 [a2,a3]@3 [b2,b3]@2 ~ [a2,a3]@6, [e3,e4]@2 ~@15 [c3,c4]@2 ~@5", // D C B C A B A E …
  L: "~@3 eb4@2 f4@2 ~ eb4@2 ~ gb4@2 ~ f4@2 ~ ab4@2 ~ gb4@2 ab4@2, ~@2 db4@2 ~@3 gb4@2 ~ f4@2 ~ ab4@2 ~ gb4@2 ~ bb4@2 ~@3",
  M: "[~ c5@2 ~ ab4@2 ~ c5@2 [c4,c5]@3 [bb3,bb4]@2 ~ [gb3,gb4]@12 ~@7 [c4,c5,c6]@3 [bb3,bb4,bb5]@2 [ab3,ab4,ab5]@2 [gb3,gb4,gb5]@12 ~@5 c5@3 ~@2 ab4@2 gb4@12 gb4@3 f4@2 ~ db4@12 ~, bb4@2 ~ gb4@2 ~ bb4@2 ~@6 [ab3,ab4]@2 ~@46 bb4@2 ~@18 eb4@2 ~@12]/4", // C Bb Gb C Bb Ab Gb Ab
  N: "~@7 [b1,c2] [a1,bb1] [gb1,g1,ab1] ~@14, ~@3 db2 ~@8", O: "~@4 g5@3 a5@3 bb5@3 g5@3 d5@3 g5@3 a5@2",
  P: "[~ f5@3 c5@3 f5@3 g5@3 eb5@3 ~ bb4@3 eb5@3 f5@3 ~@3 d4@3 e4@3 f4@3 d4@3 a3@3 d4@3 e4@3 c4@3 g3@3 c4@3 d4@3 bb3@3 f3@3 bb3@3 d4@6 g5@3 ~ a5@3 bb5@3 g5@3 d5@3 g5@3]/4",
  Q: "a5 f5 c5 f5 g5 eb5 bb4 eb5", R: "f5 ~ d5 e5 f5 d5 a4 d5", S: "~ e5@3 c5@3 g4@3 c5@3 ~@11",
})).s("gm_piano").gain(0.64)

// other · pad halo · "PAD 7 (HALO)"
const pad_halo_2 = note("<A@2 B C A@2 B C A@2 B C D E ~@105 F G H I@3 J@6 K@8 L@5>".pickRestart({
  A: "[eb5 d5@2 c5]/2", B: "f5 eb5", C: "d5 c5", D: "eb3 ab2", E: "c3@11 ~@13", F: "~@13 eb5@11", G: "~ d5@23",
  H: "~ c5@12 f5@11", I: "[~ eb5@6 d5@6 c5@6 f5@6 eb5@11]/3",
  J: "[~@3 d5@12 g5@12 f5@12 eb5@12 ~ d5@12 bb5@12 a5@24 g5@12 ~ ab5@12 g5@12 f5@3 g5@3 ab5]/6",
  K: "[~@2 bb5@2 ~ bb5@3 ~@2 c6@3 ~ db6@3 [ab2,ab3]@24 ~ [gb2,gb3]@24 [f2,f3]@24 [e2,e3]@24 ~ [ab2,ab3]@24 [gb2,gb3]@24 ~ [f2,f3]@24 [e2,e3]@4, ~@17 ab6@175]/8", // Ab Gb F E Ab Gb F E
  L: "[~@4 [ab1,ab2]@17 ~@3]/5", // Ab
})).s("gm_pad_halo").gain(0.64)

// chords · pad poly · "PAD 3 (POLYSYNTH)"
const pad_poly = note(`<
  A@2 B C A@2 B C A@2 B C ~@75 D E@2 F@2 G@2 H I J@3 K L@2 M@2 ~@15 N O P Q@3 R@8 ~@6 S@5
>`.pickRestart({
  A: "[eb5 d5@2 c5]/2", B: "f5 eb5", C: "d5 c5", D: "~@8 ab4@2 bb4@12 gb4 ~, ~@7 gb4@2 ~@15",
  E: "[~ bb4@3 c5@3 ab4@2 ~ c5@3 ~ db5@3 ~ c5@2 db5@3 eb5@3 ~ eb4@2 f4@2 ~ eb4@2 ~ gb4@2 ~ f4@2 ~ ab4@2 ~ gb4@2 ab4@2, ab4@2 ~@7 bb4@2 ~@6 bb4@2 ~@7 db4@2 ~@3 gb4@2 ~ f4@2 ~ ab4@2 ~ gb4@2 ~ bb4@2 ~@3]/2",
  F: "[~ c5@2 ~ ab4@2 ~ c5@2 c5@3 bb4@2 ~ gb4@12 ~@21, bb4@2 ~ gb4@2 ~ bb4@2 ~@6 ab4@2 ~@32]/2",
  G: "[~@10 c5@3 ~@2 ab4@2 gb4@12 gb4@3 f4@2 ~ db4@11 ~@2, ~@7 bb4 ~@9 eb4 ~@6]/2",
  H: "~@12 [gb4,b4,eb5]@2 [gb4,b4,eb5] [gb4,b4,eb5]@2 [gb4,b4,eb5] [gb4,b4,eb5]@2 ~ [f4,bb4,db5]@2 ~", // B Bbm
  I: "[gb4,b4] ~@2 [f4,bb4,db5]@2 ~@2 [eb4,gb4,bb4]@3 ~ [eb4,ab4,b4]@2 [f4,ab4,db5]@8 ~ [eb4,ab4,b4]@2, eb4 ~@11", // B5 Bbm Ebm Abm Db Abm
  J: "[~ [f4,ab4,db5]@2 ~ [eb4,ab4,b4]@2 ~ [eb4,gb4,bb4]@2 ~ [eb4,ab4,b4]@2 ~@2 [gb4,b4,eb5] [gb4,b4,eb5]@2 [gb4,b4,eb5] [gb4,b4,eb5]@2 [gb4,b4,eb5]@2 ~ [f4,bb4,db5]@2 ~ [gb4,b4] ~@2 [f4,bb4,db5]@2 ~ [eb4,gb4,bb4]@3 ~@2 ab4 [f4,ab4,db5]@8 ~ [eb4,ab4,b4]@2 ~@2 [f4,ab4,db5]@2 ~ [eb4,ab4,b4]@2 ~ [f4,ab4,db5]@3 ~@3 [bb4,db5,f5]@2 [bb4,db5,f5] [bb4,db5,f5]@2 [bb4,db5,f5] [bb4,db5,f5]@2 ~, ~@26 eb4@2 ~@9 [eb4,b4]@2 ~@33]/3", // Db Abm Ebm Abm B Bbm B5 Bbm …
  K: "[ab4,c5,eb5]@2 ~ [gb4,bb4,db5]@2 ~@2 [ab4,c5,eb5]@2 ~ [eb4,ab4,c5]@3 ~ [gb4,bb4,db5]@2 [ab4,c5,eb5]@8", // Ab Gb Ab Gb Ab
  L: "[~ [gb4,bb4,db5]@2 ~ [ab4,c5,eb5]@2 ~ [gb4,bb4,db5]@2 ~ [eb4,ab4,c5]@2 ~@2 [gb4,bb4,db5]@2 ~ [bb4,db5,f5] [bb4,db5,f5]@2 [bb4,db5,f5] [bb4,db5,f5]@2 [bb4,db5,f5]@2 ~ [ab4,c5,eb5]@2 ~ [gb4,bb4,db5]@2 ~ [ab4,c5,eb5]@2 ~ [eb4,ab4,c5]@3 ~@3 [ab4,c5,eb5]@7, ~@20 [gb4,bb4,db5] ~@3]/2", // Gb Ab Gb Ab Gb Bbm Ab Gb …
  M: "[~@3 [gb4,bb4,db5]@2 ~ [ab4,c5,eb5]@3 ~@3 [eb4,c5]@3 bb4@2 ~ [d4,bb4]@12 ~@18, ~@17 ab4@2 ~@29]/2", // Gb Ab Cm Gm
  N: "~@13 eb5@11", O: "~ d5@23", P: "~ c5@12 f5@11", Q: "[~ eb5@6 d5@6 c5@6 f5@6 eb5@11]/3",
  R: "[~@3 d5@12 g5@12 f5@12 eb5@12 ~ d5@12 bb5@12 a5@24 g5@12 ~ ab5@12 g5@12 f5@3 g5@3 ab5@3 bb5@2 ~ bb5@3 ~@2 c6@3 ~ db6@3 eb6@24 ~@7]/8",
  S: "[~@4 ab5@17 ~@3]/5",
})).s("gm_pad_poly").gain(0.72).pan(0)

// bass · electric bass finger · "BASS"
const bass_2 = note(`<
  ~@12 A B C D E F@2 G H I@2 J K@5 L M N@8 O P Q R S@3 T U V@4 W@2 X@2 Y@2 Z@8 AA@2 AB AC AD AE@4 AF@3 AG AH AI@2 AJ AK
  AL@2 AM AN AO AP AQ AR AS@2 AT AU AV AW AX AY AZ@2 BA BB BC BD@5 BE BF BG@5 BH BI BJ@2 ~@8 BK@2 BL BM@3 BN@8 ~
>`.pickRestart({
  A: "db2 ab1", B: "c2@3 c2@3 c2@3 ~ c2@3 c2@3 ~@8", C: "~ f1@3 f1@3 f2@2 ~ f1@3 ~@3 f1@3 f2@2 ~@3",
  D: "~@4 f1@3 f2@2 f2@2 ~@5 f1@3 f2@2 ~@3", E: "~@2 f1@3 f1@3 f2@2 ~ f1@3 ~@3 f1@3 f2@2 ~@2",
  F: "[~@5 f1@3 f2@2 f2@2 ~@2 g2@3 f2@3 eb2@3 eb1@3 ~@3 f1@11 ~@8]/2", G: "~ c2@3 ab1@3 ~", H: "~@4 eb2 ~ bb1 ~",
  I: "[eb2@3 ~@3 bb1@3 ~@4 eb2@3 ~@3 bb1@3 eb2@6 ~@12 f1@3 f1@3 f2@2]/2", J: "~ f1@3 ~@3 f1@3 f2@2 ~@7 f1@3 f2@2",
  K: "[f2@2 ~@6 f1@3 f2@2 ~@4 f1@3 f1@3 f2@2 ~ f1@3 ~@3 f1@3 f2@2 ~@7 f1@3 f2@2 f2@2 ~@2 g2@3 f2@3 eb2@3 eb1@3 ~@4 f1@11 ~@10 c2@9 ab1@9 ~@12]/5",
  L: "~@3 eb2@3 ~@4 bb1@3 ~@3 eb2@3 ~@3 bb1@2", M: "~@4 eb2@3 ~@3 bb1@3 eb2@6 ~@5",
  N: "[~ d2@3 f2@3 g2@12 f2@12 ~ eb2@12 bb1@6 bb1@3 c2@3 d2@12 c2@12 bb1@3 d2@3 f2@3 ~ bb2@9 d2@3 f2@3 g2@12 f2@12 eb2@12 bb1@6 bb1@3 c2@3 ~ d2@12 c2@12 bb1@3 bb1@3 bb1@3 bb1@3 bb1@2]/8",
  O: "~@10 f1@3 f1@3 f2@2 ~ f1@3 ~@2", P: "~@2 f1@3 f2@2 ~@7 f1@3 f2 f2@2 ~@4",
  Q: "~@2 f1@3 f2@2 ~@4 f1@3 f1@3 f2@2 ~ f1@3 ~", R: "~@2 f1@3 f2@2 ~@7 f1@3 ~ f2 f2@2 ~@3",
  S: "[g2@3 f2@3 eb2@3 eb1@3 ~@3 f1@11 ~@10 c2@9 ab1@9 ~@16 eb2@2]/3", T: "~@4 bb1@3 ~@3 eb2@3 ~@3 bb1@3 ~@3 eb2@2",
  U: "~@4 bb1@3 eb2@6 ~@6 d2@3 f2@2",
  V: "[~@2 g2@12 f2@12 eb2@12 bb1@6 bb1@3 c2@3 d2@12 c2@12 ~ bb1@3 d2@3 f2@3 bb2@9 d2@3]/4",
  W: "[f2@3 g2@12 f2@12 eb2@12 ~ bb1@6 bb1@2]/2", X: "[~ c2@3 d2@12 c2@12 bb1@14 ~@6]/2", Y: "[~ ab1@12 gb1@11]/2",
  Z: "[~@3 f1@24 e1@24 ab1@24 ~ gb1@24 f1@24 ~ e1@21 ab1@24 gb1@22]/8", AA: "[~@2 f1@23 e1@23]/2", AB: "~ gb1@23",
  AC: "~ b1@3 bb1@3 b1@5 gb1@3 f1@3 gb1@6", AD: "ab1", AE: "[gb1@23 f1@24 e1@24 gb1@23 b1@2]/4",
  AF: "[~ bb1@3 b1@6 gb1@3 f1@3 gb1@6 ab1@12 bb1@12 ~ c2@3 ~@3 c2@3 ~@3 c2@3 ~@3 g1@3 bb1@3 ~]/3",
  AG: "c2 ~ c2 ~ c2 ~ g1 bb1", AH: "c2@3 ~@4 c2@3 ~@3 c2@3 ~@3 g1@3 bb1@2",
  AI: "[~ c2@3 ~@3 c2@3 ~@4 c2@3 ~@3 g1@3 bb1@3 c2@3 ~@3 c2@3 ~@3 c2@3 ~@3 g1@3 ~]/2", AJ: "bb1 c2 ~ c2 ~ c2 ~ g1",
  AK: "bb1@3 c2@3 ~@4 c2@3 ~@3 c2@3 ~@3 g1@2",
  AL: "[~ bb1@3 c2@3 ~@3 c2@3 ~@4 c2@3 ~@3 g1@3 bb1@3 c2@3 ~@3 c2@3 ~@3 c2@3 ~@4]/2", AM: "g1 bb1 c2 ~ c2 ~ c2 ~",
  AN: "g1@3 bb1@3 ~ ab1@3 ~@3 ab1@3 ~@3 ab1@3 ~@2", AO: "~ gb2@3 ab2@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~",
  AP: "~@2 gb2@3 ab2@3 ab1@3 ~@3 ab1@3 ~@3 ab1@3 ~", AQ: "~ gb2 ab2 d2 ~ d2 ~ d2",
  AR: "~@3 d2@3 ~ d1@3 d2@3 ~@3 d2@3 ~@3 d2@2",
  AS: "[~@4 d2@3 d1@3 ab1@3 ~@4 ab1@3 ~@3 ab1@3 ~@3 ab1@3 f2@3 db2@3 ~@3 db2@3 ab1@3 ~]/2",
  AT: "db2@3 ~@4 [b1,c2] [a1,bb1] [gb1,g1,ab1] ~@2 db2@3 ~@3 ab1@3 ~@3, ~@3 db2 ~@8", // Cmaj7 Bbmaj7
  AU: "db2@3 ~@4 db2@3 ~@3 db2@3 ~@3 ab1@3 ~@2", AV: "~ db2@3 ~@3 db2@3 ~@4 db2@3 ~@3 ab1@3 ~",
  AW: "~@2 db2@3 ~@3 db2@3 ~@3 db2@3 ~@3 db2@3 ~", AX: "~ db2 ~ db2 ~ eb2 ~ eb2",
  AY: "~@3 eb2@3 ~@4 eb2@3 bb1@3 eb2@3 ~@3 eb2@2",
  AZ: "[~@4 eb2@3 ~@3 eb2@3 ~ bb1@3 eb2@3 ~@3 eb2@3 ~@3 eb2@3 ~@3 eb2@3 bb1@3 eb2@3 ~@4]/2",
  BA: "eb2 ~ eb2 ~ f2 ~ bb1 ~", BB: "bb1@3 ~@4 bb1@3 ~@9 f1@3 f1@2", BC: "~ f2@2 ~ f1@3 ~@3 f1@3 f2@2 ~@7 f1@2",
  BD: "[~ f2@2 f2@2 ~@5 f1@3 f2@2 ~@5 f1@3 f1@3 f2@2 ~ f1@3 ~@3 f1@3 f2@2 ~@7 f1@3 f2@2 f2@2 ~@2 g2@3 f2@3 eb2@3 eb1@3 ~@3 f1@11 ~@11 c2@9 ab1@9 ~@9]/5",
  BE: "~@2 eb2 ~ bb1 ~ eb2 ~", BF: "~ bb1@3 ~@3 eb2@3 ~@3 bb1@3 eb2@6 ~@2",
  BG: "[~@4 d2@3 f2@3 g2@12 f2@12 eb2@12 ~ bb1@6 bb1@3 c2@3 d2@12 c2@12 bb1@3 d2@3 f2@3 bb2@9 d2@3 ~ f2@3 g2@12]/5",
  BH: "f2 eb2", BI: "bb1@2 bb1 c2 d2@4", BJ: "[~ c2@12 bb1@26 ~@9]/2",
  BK: "[~@17 db2@3 db2@3 db2@3 db2@3 db2@3 db2@3 db2@3 db2@3 db2@3 db2@3 db2]/2",
  BL: "~@2 db2@3 db2@3 ~@2 eb2@3 ~ f2@3 ab1@7", BM: "[~@3 gb1@4 f1@4 e1]/3",
  BN: "[~@19 ab1@24 gb1@24 ~ f1@24 e1@24 ab1@76]/8",
})).s("gm_electric_bass_finger").gain(0.8)

// chords · drawbar organ · "ORGAN"
const drawbar_organ = note(`<
  ~@12 A B C@2 D@3 E@2 F@2 G@5 H@2 I ~@8 J K@3 L@3 M N ~@21 O P ~@3 Q@5 ~@15 R S T@3 U V W X@2 Y@5 Z@2 AA ~@32
>`.pickRestart({
  A: "[db3,ab4,db5,f5] [ab2,eb4,ab4,c5]", B: "[c3,g4,c5,e5]@5 ~@3",
  C: "[~ [g4,bb4]@6 [f4,a4]@3 [f4,bb4]@6 [g4,bb4]@6 [eb4,g4,bb4]@6 [eb4,f4,bb4]@12 ~@8]/2", // Gm F Bb5 Gm Eb Ebsus2
  D: "[~@2 [g4,bb4]@6 [g4,a4]@3 [f4,bb4]@6 [g4,bb4]@6 [eb4,g4,bb4]@6 [eb4,f4,bb4]@9 g5@3 ~@3 eb5@3 [g4,bb4,eb5]@5 ~ [a4,c5,f5]@12 ~ c5@3 f5@3, ~@41 f5@6 ~@25]/3", // Gm Gsus2 Bb5 Gm Eb Ebsus2 Eb F
  E: "[c5 f5 c5 a4 [c5,eb5,ab5]@5 [ab4,ab5] c6 [ab4,ab5] [f4,bb4,d5] ~ [g4,bb4,eb5] ~, ~@9 [c5,eb5]@3 ~@4]/2", // Ab Bb Eb Cm
  F: "[[f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@3 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@3 [g4,bb4,eb5]@6 ~@12 [g4,bb4]@6 [f4,a4]@2]/2", // Bb Eb Bb Eb Gm F
  G: "[~ [f4,bb4]@6 [g4,bb4]@6 [eb4,g4,bb4]@6 [eb4,f4,bb4]@12 ~@10 [g4,bb4]@6 [g4,a4]@3 [f4,bb4]@6 [g4,bb4]@6 [eb4,g4,bb4]@6 [eb4,f4,bb4]@9 g5@3 ~@3 eb5@3 [g4,bb4,eb5]@5 ~@2 [a4,c5,f5]@12 c5@3 f5@3 c5@3 f5@3 c5@3, ~@40 f5@3 ~@17]/5", // Bb5 Gm Eb Ebsus2 Gm Gsus2 Bb5 Gm …
  H: "[a4@3 [c5,eb5,ab5]@15 [ab4,ab5]@3 c6@3 [ab4,ab5]@3 [f4,bb4,d5]@3 ~@4 [g4,bb4,eb5]@3 ~@3 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2, ~@6 [c5,eb5]@3 ~@7]/2", // Ab Bb Eb Bb Eb Cm
  I: "~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@3 [g4,bb4,eb5]@6 ~@5", J: "~@10 [g4,bb4]@6 [f4,a4]@3 [f4,bb4]@5",
  K: "[~@2 [g4,bb4]@6 [eb4,g4,bb4]@6 [eb4,f4,bb4]@12 ~@9 [g4,bb4]@6 [g4,a4]@3 [f4,bb4]@6 [g4,bb4]@6 ~ eb4@5 [eb4,f4,bb4]@9 ~, ~@28 [g4,bb4]@3 ~@5]/3", // Gm Eb Ebsus2 Gm Gsus2 Bb5 Gm Ebsus2 …
  L: "[g5@3 ~@3 eb5@3 [g4,bb4,eb5]@5 ~ [a4,c5,f5]@12 c5@3 f5@3 c5@3 f5@3 c5@3 a4@3 [c5,eb5,ab5]@15 ~ [ab4,ab5]@3 c6@3 [ab4,ab5]@3 [f4,bb4,d5]@2, ~@3 f5@6 ~@52 [c5,eb5]@9 ~@2]/3", // Eb F Ab Bb Cm
  M: "~@4 [g4,bb4,eb5]@3 ~@3 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@3 ~@3 [f4,bb4,d5]@2", // Eb Bb Eb Bb
  N: "~@4 [g4,bb4,eb5]@3 [g4,bb4,eb5]@6 ~@11", O: "~ [gb4,b4,eb5]@11 [gb4,bb4,db5]@12",
  P: "[ab4,c5,eb5]@5 [gb4,g4,bb4,b4,db5,d5] [e4,f4,ab4,a4,c5] eb4 ~@16", // Ab Gmaj7 Fmaj7
  Q: "[~@22 [gb4,b4,eb5]@12 [gb4,bb4,db5]@12 [ab4,c5,eb5]@12 [bb4,d5,f5]@12 ~ [c5,g5]@37 ~@12]/5", // B Gb Ab Bb C5
  R: "~@6 db2@2 ~@4 [gb4,b4,eb5]@8 ~ [f4,bb4,db5]@2 ~", // B Bbm
  S: "[gb4,b4] ~@2 [f4,bb4,db5]@2 ~@2 [eb4,gb4,bb4]@3 ~ [eb4,ab4,b4]@2 [f4,ab4,db5]@8 ~ [eb4,ab4,b4]@2, eb4 ~@11", // B5 Bbm Ebm Abm Db Abm
  T: "[~ [f4,ab4,db5]@2 ~ [eb4,ab4,b4]@2 ~ [eb4,gb4,bb4]@2 ~ [eb4,ab4,b4]@2 ~@2 [gb4,b4,eb5]@8 ~ [f4,bb4,db5]@2 ~ [gb4,b4] ~@2 [f4,bb4,db5]@2 ~ [eb4,gb4,bb4]@3 ~@2 ab4 [f4,ab4,db5]@8 ~ [eb4,ab4,b4]@2 ~@2 [f4,ab4,db5]@2 ~ [eb4,ab4,b4]@2 ~ [f4,ab4,db5]@3 ~@3 [bb4,db5,f5]@8 ~, ~@26 eb4@2 ~@9 [eb4,b4]@2 ~@33]/3", // Db Abm Ebm Abm B Bbm B5 Bbm …
  U: "[ab4,c5,eb5]@2 ~ [gb4,bb4,db5]@2 ~@2 [ab4,c5,eb5]@2 ~ [eb4,ab4,c5]@3 ~ [gb4,bb4,db5]@2 [ab4,c5,eb5]@8", // Ab Gb Ab Gb Ab
  V: "~ [gb4,bb4,db5]@2 ~ [ab4,c5,eb5]@2 ~ [gb4,bb4,db5]@2 ~ [eb4,ab4,c5]@2 ~@2 [gb4,bb4,db5]@2 ~ [bb4,db5,f5]@7", // Gb Ab Gb Ab Gb Bbm
  W: "~@2 [ab4,c5,eb5]@2 ~ [gb4,bb4,db5]@2 ~ [ab4,c5,eb5]@2 ~ [eb4,ab4,c5]@3 ~@3 [ab4,c5,eb5]@7, ~@8 [gb4,bb4,db5] ~@3", // Ab Gb Ab Gb
  X: "[~@3 [gb4,bb4,db5]@2 ~ [ab4,c5,eb5]@3 ~@3 [eb4,ab4,c5]@6 [d4,f4,bb4]@12 ~@13 [g4,bb4]@5]/2", // Gb Ab Bb Gm
  Y: "[~ [f4,a4]@3 [f4,bb4]@6 [g4,bb4]@6 [eb4,g4,bb4]@6 [eb4,f4,bb4]@12 ~@10 [g4,bb4]@6 [g4,a4]@3 [f4,bb4]@6 [g4,bb4]@6 [eb4,g4,bb4]@6 [eb4,f4,bb4]@9 g5@3 ~@3 eb5@3 [g4,bb4,eb5]@5 ~ [a4,c5,f5]@12 ~ c5@3 f5@3 c5@3 f5@3, ~@83 f5@6 ~@31]/5", // F Bb5 Gm Eb Ebsus2 Gm Gsus2 Bb5 …
// … 228 more lines

More by Kansas