Strudelify
Tango mit Fernando cover art

Rendezvous mit dem Feuer

Tango mit Fernando

Kristina Bach

KeyB♭ majorTempo127 bpm
0:00/0:00
// Tango mit Fernando — Kristina Bach
// 127 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(127/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 · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D E F G H I J K L M N O H I P Q R S T U V W X Y Z AA V@2 AB Q AC AD AE AF AG E F G H I J AH AI M AJ O H I P Q AK
  AL T U V AM AN AO AP AQ V@2 AR Q AC AD AS AT AU AV AW AX AY AX AZ BA T U V AM AN AO AP AQ V@2 AR BB AC BC AS BD BE V
  BF BG@2
>`.pickRestart({
  A: "eb2@12 ~@2 eb2 ~", B: "bb1@12 ~@2 bb1 ~", C: "f1@12 ~@2 f1 ~", D: "bb1 ~@3 bb1 ~@3 bb1 ~ f1@2 gb1@2 f1 ~",
  E: "bb1 ~@3 bb1@2 ~@2 bb1 ~@3 bb1@2 f1@2", F: "bb1 ~@3 bb1@2 ~@2 bb1@2 ~@2 bb1@2 f1@2", G: "bb1 ~ bb1 ~ bb1 ~ bb1 d2",
  H: "eb2 ~ eb2 ~ eb2 bb1 eb2 bb1", I: "ab1@2 ~@2 ab1@2 ~@2 ab1@2 ~@2 ab1 ~ c2@2",
  J: "db2@2 ~@2 db2@2 ~@2 db2@2 ~@2 db2@2 db2 ~", K: "eb2@2 ~@2 eb2@2 ~@2 eb2@2 bb1 ~ eb2@2 bb1 ~",
  L: "f2 ~@2 f1 f2 ~@2 f1", M: "bb1@2 ~@2 bb1 ~@3 bb1 ~@3 bb1@2 f1@2", N: "bb1@2 ~@2 bb1 ~@3 bb1@2 ~@2 bb1@2 f1@2",
  O: "bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1 ~ d2@2", P: "db2@2 ~@2 db2@2 ~@2 db2@2 ab1 ~ db2@2 ab1@2",
  Q: "c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2 ~ c2@2", R: "f1@3 ~@13", S: "~@10 f1@2 bb1@2 f1 ~",
  T: "bb1 ~@3 bb1 ~@3 bb1@2 ~@2 bb1@2 f1@2", U: "bb1 ~ bb1 ~ bb1 ~ bb1 f1", V: "bb1@2 ~@2 bb1@2 ~@2 bb1 ~@3 bb1@2 f1@2",
  W: "f2 ~ f2 ~ f2 c2 f2 c2", X: "f2 ~ f2 ~ f2 ~ f2 c2", Y: "f2 ~@3 f2@2 ~@2 f2@2 ~@2 f2@2 c2@2",
  Z: "f2 ~ f2 ~ f2 ~ f2 f1", AA: "bb1 ~ bb1 ~ bb1 f1 bb1 f1", AB: "g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~ g1 ~",
  AC: "eb2@2 ~@2 eb2@2 ~@2 eb2@2 ~@2 eb2 ~ eb2@2", AD: "bb1@2 ~@2 bb1@2 ~@2 bb1@3 ~ bb1 ~ bb1@2",
  AE: "f1@2 ~@2 f1@2 ~@2 f1@5 ~ a1@2", AF: "bb1@2 ~@4 gb2@2 f2@2 eb2@2 ~@2 db2 c2", AG: "bb1@2 ~@2 gb1@4 f1@3 ~@5",
  AH: "eb2@2 ~@2 eb2@2 ~@2 eb2@2 ~@2 eb2 ~ eb2 ~", AI: "f2 ~@2 f1 f2 ~@3",
  AJ: "bb1@2 ~@2 bb1 ~@3 bb1@2 f1@2 bb1@2 f1@2", AK: "f1@3 ~@3 f1@2 a1@2 ~@4 a1 ~",
  AL: "c2 ~ db2@2 eb2@2 gb2@2 f2@2 f1@2 bb1@2 f1 ~", AM: "f1@2 ~@2 f1@2 ~@2 f1@3 ~ c1@4", AN: "f1 ~ f1 ~ f1 ~ f1 c1",
  AO: "f1 ~@3 f1@2 ~@2 f1@2 ~@2 f1@2 c1@2", AP: "f1@2 ~@2 f1@2 ~@2 f1@3 ~ g1@4", AQ: "bb1 ~ bb1 ~ bb1 f1 g1 f1",
  AR: "g1@2 ~@2 g1@2 ~@2 g1@5 ~ g1 ~", AS: "f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1 ~ f1 ~",
  AT: "bb1 ~@3 bb1 ~ bb1 ~ bb1@3 ~ bb1@3 ~", AU: "eb2 ~@3 eb2@2 ~@2 eb2 ~@3 eb2 ~ eb2@2",
  AV: "bb1@2 ~@2 bb1 ~@3 bb1 ~ f1@2 bb1@2 f1@2", AW: "f2 ~@3 f2 ~@3 f2 ~@3 f2 ~ f2@2",
  AX: "bb1 ~@3 bb1 ~@3 bb1@2 f1@2 bb1@2 f1@2", AY: "eb2 ~@3 eb2 ~@3 eb2 ~@3 eb2 ~ eb2@2",
  AZ: "c2@2 ~@2 c2 ~@3 c2 ~@3 f1@2 c2@2", BA: "f2 ~@5 gb1@2 f1@2 ~@6", BB: "c2 ~ c2 ~ c2 g1 c2 g1",
  BC: "bb1@2 ~@2 bb1@2 ~@2 bb1@3 ~ bb1@3 ~", BD: "bb1 ~@3 bb1 ~@3 bb1@2 ~@2 bb1@2 bb1 ~",
  BE: "eb2 ~@3 eb2 ~@3 eb2 ~@3 eb2@2 a1@2", BF: "f2@2 ~@2 f2@2 ~@2 f2 ~@3 f2 ~ f1@2",
  BG: "[bb1@2 ~@2 f1@8 bb1@11 ~@9]/2",
})).s("gm_electric_bass_finger").gain(0.37)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A B C D@7 E F G@2 H@4 I@2 J@8 K@3 L@6 ~ M@3 N@3 E F G@2 H@4 I@2 J@8 K@3 O@5 P Q@6 R@2 S@7 T@5 U@2 V W X V Y ~@2
>`.pickRestart({
  A: "[f4,ab4] [gb4,bb4]@2 [f4,ab4] [eb4,gb4] ~@3", B: "[eb4,gb4] [f4,ab4]@2 [eb4,gb4] [db4,f4] ~@3",
  C: "[db4,f4]@2 [eb4,gb4]@4 [db4,f4]@2 [c4,eb4]@2 ~@2 [eb4,f4]@3 ~", // Db Ebm Db Cm Ebsus2
  D: "[bb4@4 ~@8 d4@4 ab4 gb4@3 c4@4 [db4,f4]@4, f4@4 eb4@2 ~, db4@47 ~@65, ~@16 bb3@63 ~ ab3@32]/7", // Db
  E: "[bb3,eb4,gb4]@15 ~", F: "[a3,c4,f4] ~@2 [db4,gb4] [a3,c4,f4] ~@3, ~@6 bb3 ~@9", G: "[bb3,db4,f4]/2",
  H: "[d4 gb4 c4 [db4,f4], [bb3,f4] ab3, ~ eb4@2 ~]/4", I: "[[g3,e4]@16 [a3,f4]@2 ~@4 f4 g4 a4 ~@5 a4 bb4, c4@9 ~@7]/2",
  J: "[c5@2 db5@2 eb5@2 gb5@2 f5@2 ~@12 a5@8 g5@6 ~@9 eb5@3 ~@4 bb5@4 c6@6 ~@6 a5@8 c6@9 bb5@8 ~@9 g5@7 f5@6 ~@4 g5@6 f5@3, ~@6 bb5@5 ~@20 bb5@3 ~@13 a5@4 ~@13, ~ bb4@3 [a4,c5]@4, ~@16 f5@32 f5@31 ~@49, ~@16 d5@20 d5@20 ~@40 eb5@19 eb5@13]/8", // Am
  K: "[d5@4 d5@8 ~@9 a5@9 g5@6 d5@8 d5@2 eb5@2, bb4, eb5@7 ~@5 bb5@10 ~@26, ~@16 f4@31 ~]/3",
  L: "[f5@4 d6@4 ~@6 d6@2 c6@4 g5@8 ~@10 ab5@8 ~@2 bb5@4 f5@8 g5@2 ~@2 g5@4 f5@8 c6@3 [bb4,d5,bb5]@2 ~@15, g4@31 ~ gb4@15 ~ f4@15 ~@33, b4@16 c5@14 ~@2 bb4@31 [a4,c5]@17 ~@16, ~@8 [f5,eb6]@8 eb5@31 d5@16 f5@5 ~@28, ~@14 bb5@5 ~@4 gb5 ~@7 a5 ~@16]/6", // Bb Am F7
  M: "[db4@2 d4, f4]/3", N: "[ab4 gb4@3 c4@4 [db4,f4]@4, eb4@2 ~, ~ ab3@2]/3",
  O: "[f5@2 d6@2 ~@3 d6 c6@2 g5@4 ~@5 ab5@4 ~ bb5@2 f5@4 g5 ~ g5@2 f5@4 c6@2, g4@31 ~ gb4@15 ~ f4@15 ~@17, b4@16 c5@14 ~@2 bb4@31 [a4,c5]@17, ~@8 [f5,eb6]@8 eb5@31 d5@16 f5@5 ~@12, ~@14 bb5@5 ~@4 gb5 ~@7 a5 ~@8]/5", // Am F7
  P: "[d4,f4,bb4]", // Bb
  Q: "[[eb4,gb4]@16 db4@16 [a3,c4]@16 db4@16 eb4@15 [db4,f4]@16 ~, bb3@31 ~@17 bb3@48, ~@16 f4@47 ~ gb4@14 ~@18]/6", // Ebm Am Db
  R: "[bb3 bb3@14 ~ [a3,f4]@2 ~@4 [db4,gb4]@2 [c4,f4]@2 ~@6, c4@9 ~@7, [g3,e4]@15 ~@17]/2", // Dm Gb5 F5 C
  S: "[~@5 a5@8 g5@6 ~@10 eb5@3 ~@4 bb5@4 c6@6 ~@6 a5@8 c6@9 bb5@8 ~@8 g5@7 f5@7 ~@5 g5@5 f5@3, bb4@3 [a4,c5]@4, f5@8 f5@8 ~@4 eb5@5 eb5@3, d5@20 d5@20 ~@7 bb5@6 ~@24 a5@8 ~@27]/7", // Am
  T: "[d5@4 d5@8 ~@9 a5@8 g5@6 ~ d5@8 d5@2 ~@2 f5@4 d6@4 [f5,eb6]@7 ~ c6@4 g5@8 bb5@4, bb4@3 b4 eb5, eb5@8 ~@4 bb5@10 ~@25 eb5@2 ~@14 d6@2 ~@15, ~@16 f4@31 ~ g4@31 ~, ~@32 c5@7 ~]/5", // F7
  U: "[bb5@4 ~ ab5@8 gb5@2 ~ bb5@4 f5@8 ~ a5@2 ~, bb4@31 ~, [gb4,eb5] [f4,d5], ~@14 g5 ~]/2", // Ebm Dm
  V: "[f5,g5] f5@2 c6, [a4,c5]", W: "bb5@4 ~ ab5@8 gb5@2 ~, [bb4,d5,eb5]",
  X: "bb5 ~@3 f5@8 ~ a5@2 ~, [f4,d5], ~@6 g5 ~", Y: "[bb4,d5,bb5]",
})).s("gm_string_ensemble_1").gain(0.11)

// chords · accordion
const accordion = note(`<
  A B C D@3 E F G H ~ I J@2 ~ K E L M N O P Q R S T U V W X Q Y Z AA AB AC AD AE ~@2 E F G H ~ I J@2 ~ K E L M N O P Q R
  S T U V W X Q Y Z AA AB AC AF AG AH AI AJ AG AH AI I AK AL AM AN AO AP AQ@2 X AR AS Z AT AU AV@2 AT AU AW@3
>`.pickRestart({
  A: "[ab4,f5]@2 [bb4,gb5]@4 [ab4,f5]@2 [gb4,eb5] ~@7", B: "[gb4,eb5]@2 [ab4,f5]@4 [gb4,eb5]@2 [f4,db5] ~@7",
  C: "[f4,db5]@2 [gb4,eb5]@3 ~ db5@2 [eb4,c5] ~@3 [eb4,f4]@4, ~@5 f4@3 ~@8", D: "[bb4@19 ~@5, db4@5 ~@3]/3",
  E: "~@4 bb4@3 ab4", F: "ab4@2 [ab4,bb4] ~ gb4@12, ~@4 bb6 ~@11", G: "~@4 bb4@3 ab4, eb4, c4@7 ~", H: "gb4 f4@3, db4",
  I: "~@6 [db5,gb5]@2 [c5,f5] ~@7", J: "~@6 [c5,e5]@2 [db5,f5] ~@7", K: "~@6 [d4,f4]@2 [eb4,gb4] ~@7",
  L: "gb4@2 ab4 gb4 f4@5 ~ f4@3 f4@3", M: "~@2 c4@2 [a4,c5]@3 [g4,bb4], e4 ~",
  N: "[a3,c4,f4] ~@5 [f3,f4] [g3,g4] [a3,a4] ~@5 [a3,a4] [bb3,bb4], a4 ~@7", // F G A Bb
  O: "[c4,c5]@2 [db4,db5]@2 [eb4,eb5]@2 [gb4,gb5]@2 [f4,f5] ~@3 [d5,bb5] ~ [d5,bb5] ~", // C Db Eb Gb F Gm
  P: "[d5,bb5]@5 ~ a5@2 a5@6 [bb4,g5] ~, ~@6 c5 ~ c5@4 ~@4", Q: "[bb4,g5] ~@3 [bb4,d5]@7 ~ [bb4,d5]@2 [c5,eb5]@2",
  R: "[d5,f5]@3 ~ [g5,bb5]@4 [a5,c6]@6 [g5,bb5] ~", S: "[g5,bb5]@4 [f5,a5]@7 ~ [a5,c6]@2 c6@2, ~@14 a5 ~",
  T: "[a5,c6]@3 g5 [g5,bb5]@3 f5, ~@6 bb5 ~@7 a5 ~", U: "[f5,a5]@3 [eb5,g5] [eb5,g5]@3 [d5,f5]",
  V: "f5@2 [c5,eb5]@2 g5@3 [d5,f5], d5 ~@3 eb5@2 ~@2", W: "[c5,eb5]@4 [bb4,d5]@8 [d5,bb5] ~ [d5,bb5] ~",
  X: "[d5,bb5]@5 ~ [c5,a5] ~ a5@6 [bb4,g5] ~, ~@2 c5 ~", Y: "[d5,f5]@2 [b5,d6]@2 [c6,eb6]@3 [b5,d6]",
  Z: "[g5,c6]@2 ~@2 [eb5,g5]@7 ~ [gb5,bb5] ~ [gb5,bb5] ~", AA: "[gb5,bb5]@3 [f5,ab5] [f5,ab5]@3 [eb5,gb5]",
  AB: "[gb5,bb5]@2 [d5,f5]@4 [eb5,g5] [f5,a5]", AC: "[eb5,g5] [d5,f5]@2 [f5,c6]",
  AD: "d5@2 ~@4 [eb5,gb5]@2 [db5,f5] ~ [c5,eb5]@4 [bb4,db5] [a4,c5], bb5 ~@15", // Ebm Db Cm Bbm Am
  AE: "[f4,bb4] ~@3 [bb4,gb5]@4 [a4,f5] ~@7", AF: "d5 ~@7, bb5 ~@15",
  AG: "~@10 [c5,eb5] [bb4,db5] [c5,eb5] [db5,f5] [eb5,gb5] [c5,eb5]", // Cm Bbm Cm Db Ebm Cm
  AH: "[bb4,db5] ~@9 [bb4,db5] [a4,c5] [bb4,db5] [c5,eb5] [db5,f5] [bb4,db5]", AI: "[a4,c5] ~@15",
  AJ: "~@10 [g4,bb4] [ab4,c5] [bb4,db5] ~@3", AK: "[d5,bb5]@5 ~ [c5,a5] ~@2 c5@4 ~ [bb4,g5] ~, ~@4 a5@3 ~",
  AL: "[bb4,g5] ~@3 [bb4,d5]@7 ~ bb4 ~ c5@2, ~@6 d5 ~, ~@13 eb5@2 ~", // Eb Bb
  AM: "[d5,f5]@3 ~ [g5,bb5]@3 ~ [a5,c6]@6 [g5,bb5] ~", AN: "[g5,bb5]@4 [f5,a5]@7 ~ [a5,c6] ~ [a5,c6] ~",
  AO: "[a5,c6]@6 [g5,bb5] ~ [g5,bb5]@6 [f5,a5] ~", AP: "~ a5@4 [eb5,g5] ~@2 g5@6 [d5,f5] ~, f5@5 ~@2 eb5@6 ~@3",
  AQ: "[f5@3 ~@5 g5@6 ~@2 c5@4 [bb4,d5]@7 ~ [d5,bb5] ~ [d5,bb5] ~, d5@2 ~ eb5@5 eb5@4 ~@2 [d5,f5]@2 ~@16, ~@4 c5@6 ~@5 eb5@3 ~@14]/2", // Bb Gm Dm
  AR: "[bb4,g5] ~@3 [bb4,d5]@7 ~ d5@2 [c5,eb5]@2, ~@12 bb4 ~@3", AS: "[d5,f5]@3 ~ [b5,d6]@4 [c6,eb6]@6 d6@2, ~@14 b5 ~",
  AT: "[gb5,bb5]@5 ~ ab5@2 [f5,ab5]@6 [eb5,gb5]@2, ~@5 f5@2 ~@9", AU: "bb5@2 d5@4 [eb5,g5] [f5,a5], gb5 ~ f5@3 ~@3",
  AV: "[[eb5,g5]@4 [d5,f5]@8 c6@3 ~ [d5,bb5]@12 ~@4, ~@3 f5@2 ~@3]/2", // Eb Dm Gm
  AW: "[[eb5,g5]@4 [d5,f5]@8 c6@3 ~ d5@2 ~@2 [f3,a3,c4]@8 [f3,bb3,d4]@8 ~@12, ~@3 f5@2 ~@7, ~@16 bb5 ~@31]/3", // Eb Dm F Bb
})).s("gm_accordion").gain(0.13).pan(0)

// chords · accordion
const accordion_2 = note(`<
  A B C D E@2 F G H I J K E@2 L G M N O P Q F R S T U@2 V S@3 W X Y Z AA AB AC E@2 F G H I J K E@2 L G M N O P Q F R S T
  U@2 V S@3 W X Y Z AA AD AE AF AG AH AI AJ AK AL F R S T U@2 V S@3 W X Y Z AA AM Y Z AA AN ~
>`.pickRestart({
  A: "f4 ~ gb4@4 f4@2 eb4 ~@7", B: "eb4 ~ f4@4 eb4@2 db4 ~@7", C: "db4 ~ eb4@4 db4@2 c4 ~@3 f3@4",
  D: "[bb3,db4,f4,bb4] ~@3 [db4,f4,bb4] ~@3 [db4,f4,bb4] ~@3 [db4,f4,bb4] ~ [db4,f4,bb4]@2", // Bbm
  E: "[db4,f4,bb4] ~@3 [db4,f4,bb4] ~@3 [db4,f4,bb4] ~@3 [db4,f4,bb4] ~ [db4,f4,bb4]@2", // Bbm
  F: "[d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~ [d4,f4,bb4]@2", // Bb
  G: "[eb4,gb4] ~@3 [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~ [eb4,gb4,bb4]@2", // Ebm
  H: "[c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~ [c4,eb4,ab4]@2", // Ab
  I: "[db4,f4] ~@3 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~ [db4,f4,ab4]@2", // Db
  J: "[eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~ [eb4,gb4,bb4]@2", // Ebm
  K: "[c4,f4,a4] ~@5 [bb4,db5]@2 [a4,c5] ~@7", // F Bbm Am
  L: "[db4,f4,bb4] ~@3 [db4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~ [d4,f4,bb4]@2", // Bbm Bb
  M: "[eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~ [c4,eb4,ab4]@2", // Ab5 Ab
  N: "[db4,f4] ~@3 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~@3 [f4,ab4] ~ [db4,f4,ab4]@2", // Db Fm Db
  O: "[c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~ [c4,e4,g4]@2", // C
  P: "[f4,a4] ~@5 [a3,f4] [bb3,g4] [c4,a4] ~@5 [c4,a4] [db4,bb4]", // F Dm Eb F Gb
  Q: "eb4@2 [f4,db5]@2 [gb4,eb5]@2 [bb4,gb5]@2 [a4,f5] ~@7, c5 ~@15", // Db Ebm Dm
  R: "[f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~ [d4,f4,bb4]@2", // Bb5 Bb
  S: "~@4 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~ [d4,f4,bb4]@2", // Bb
  T: "[c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~ [c4,f4,a4]@2", // F
  U: "~@4 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~ [c4,f4,a4]@2", // F
  V: "~@4 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~ [d4,f4,bb4]@2", // F Bb
  W: "[d4,f4,b4] ~@3 [d4,f4,g4,b4] ~@3 [d4,f4,g4,b4] ~@3 [d4,f4,g4,b4] ~ [d4,f4,g4,b4]@2, g4 ~@7", // Bdim G7
  X: "[c4,eb4,g4] ~@3 [c4,eb4,g4] ~@3 [c4,eb4,g4] ~@3 [c4,eb4,g4] ~ [c4,eb4,g4]@2", // Cm
  Y: "[gb4,bb4] ~@3 [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~@3 [eb4,gb4] ~ [eb4,gb4,bb4]@2", // Gb Ebm
  Z: "[d4,f4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~ [d4,f4,bb4]@2", // Dm Bb
  AA: "[c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4]@4", // F
  AB: "[d4,bb4] ~@5 [gb4,bb4]@2 [f4,ab4] ~ [eb4,gb4]@3 f4 [db4,eb4] c4, f4 ~@7", // Gm Gb Fm Ebm Dbsus2
  AC: "[bb3,db4,f4,bb4] ~@3 [db4,f4,bb4] ~@3 [db4,eb4,f4,bb4] ~@3 [db4,f4,bb4] ~ [db4,f4,bb4]@2, ~ gb4 ~@2", // Bbm
  AD: "[d4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~, f4 ~@7", // Gm Bb
  AE: "[gb4,bb4] ~ [gb4,c5] ~@3 [gb4,bb4] ~ [gb4,db5] ~@3 [gb4,bb4]@4", // Gb Gbdim Gb Gb5 Gb
  AF: "[f4,bb4] ~ [f4,c5] ~@3 [f4,bb4] ~ [f4,db5] ~@3 [f4,bb4]@3 ~", // Bb5 F5 Bb5 Db Bb5
  AG: "[db4,f4] ~ [db4,gb4] ~@3 [db4,f4] ~ [f4,ab4]@4 [eb4,gb4]@4", // Db Gb5 Db Fm Ebm
  AH: "[db4,f4] ~ [db4,gb4] ~@3 [db4,f4] ~ [db4,bb4] ~@3 bb3@3 ~", // Db Gb5 Db Gb
  AI: "bb4 ~ [gb4,c5] ~@3 [gb4,bb4] ~ [gb4,db5] ~@3 [gb4,bb4]@3 ~", // Gbdim Gb Gb5 Gb
  AJ: "[f4,bb4] ~ [f4,c5] ~@3 [f4,bb4] ~ [f4,bb4,db5] ~@3 [f4,bb4]@3 ~", // Bb5 F5 Bb5 Bbm Bb5
  AK: "[g4,bb4,c5] ~ [g4,bb4,db5] ~@3 [g4,bb4,c5] ~ [g4,bb4,db5] ~@3 [g4,bb4,c5]@3 ~", // C7 Gdim C7 Gdim C7
  AL: "[f4,a4,c5] ~@5 [bb4,db5]@2 [f4,a4,c5] ~@7, ~@6 f4 ~@9", // F Bbm F
  AM: "[d4,bb4] ~@3 [d4,f4,bb4] ~ [a4,db5]@2 [d4,f4,bb4,d5] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~, f4 ~@7", // Gm Bb A Bb
  AN: "[d4,bb4] ~@15, f4 ~@7", // Gm
})).s("gm_accordion").gain(0.27).pan(1)

// other · marimba
const marimba = note(`<
  A B ~@2 C@2 ~ D ~ E ~ F ~@3 D ~ E ~ G H ~@7 I ~@3 J ~@5 C@2 ~ D ~ E ~ F ~@3 D ~ E ~ G H ~@7 I ~ K ~ L ~ I ~@2 M N O P
  Q N R S ~@7 I ~ K ~ L ~ T ~@3 U ~@3
>`.pickRestart({
  A: "~@10 [bb4,bb5] ~ [eb5,eb6] ~@3", B: "~@10 [f4,f5] ~ [bb4,bb5] ~@3", C: "~@6 [f4,f5] ~ [bb4,bb5] ~@7",
  D: "~@6 [bb4,bb5] ~ [eb5,eb6] ~@7", E: "~@6 [ab4,ab5] ~ [db5,db6] ~@7", F: "~@6 [gb5,gb6] ~ [f5,f6]@2 ~@6",
  G: "~@6 [f4,f5] [g4,g5] [a4,a5] ~@5 [a4,a5] [bb4,bb5]", // F G A Bb
  H: "[c5,c6] ~ [db5,db6] ~ [eb5,eb6]@2 [gb5,gb6]@2 [f5,f6]@3 ~@5", // C Db Eb Gb F
  I: "~@4 [bb4,bb5] ~ [f5,f6] [bb5,bb6] [d6,d7]@2 ~@6", // Bb F Bb D
  J: "~@2 [eb5,g5,eb6,g6] ~ [eb5,g5,eb6,g6] ~ [eb5,g5,eb6,g6] ~ [eb5,g5,eb6,g6] ~@7", // Eb
  K: "~@4 [d5,f5,d6,f6] ~ [d5,f5,d6,f6] ~ [d5,f5,d6,f6] ~@7", // Dm
  L: "~@4 [eb5,g5,eb6,g6] ~ [eb5,g5,eb6,g6] ~ [eb5,g5,eb6,g6] ~@7", M: "[gb4,bb4,eb5] ~@13 [eb5,gb5,bb5] ~",
  N: "[f5,bb5,db6] ~@13 [db5,f5,bb5] ~", O: "[f5,a5,eb6] ~@13 [f5,a5,eb6] ~", P: "[db5,f5,bb5] ~@13 [db5,f5,bb5] ~",
  Q: "[bb4,eb5,gb5] ~@13 [eb5,gb5,bb5] ~", R: "[e5,g5,c6] ~@13 [e5,g5,c6] ~",
  S: "[a5,c6,f6] ~@5 [gb5,gb6]@2 [f5,f6] ~@7", T: "~@4 [bb4,bb5]!2 [f5,f6] [bb5,bb6] [d6,d7]@2 ~@6",
  U: "~@4 [bb4,bb5] [d5,d6] [f5,f6] [bb5,bb6] [d6,d7] ~@7", // Bb D F Bb D
})).s("gm_marimba").gain(0.25)

// chords · harpsichord · "HARPSICHRD"
const harpsichord = note(`<
  A B C D E F G H I J K L E@2 M H N J O ~@17 P Q E F G H I J K L E@2 M H N J O ~@18 R S T U R V W X ~@21
>`.pickRestart({
  A: "[ab4,f5] ~ [bb4,gb5]@4 [ab4,f5]@2 [gb4,eb5] ~@7", B: "[gb4,eb5] ~ [ab4,f5]@4 [gb4,eb5]@2 [f4,db5] ~@7",
  C: "[f4,db5] ~ [gb4,eb5]@4 [f4,db5]@2 [eb4,c5] ~@3 [eb4,f4]@4", // Db Ebm Db Cm Ebsus2
  D: "[bb3,db4,f4,bb4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@2", // Bbm
  E: "[bb3,db4,f4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@2", // Bbm
  F: "[bb3,db4,f4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4] ~ [bb3,db4,f4]@2", // Bbm
  G: "[bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [d4,f4] ~ [bb3,d4,f4]@2", // Bb Dm Bb
  H: "[eb4,gb4] ~@3 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~ [bb3,eb4,gb4]@2", // Ebm
  I: "[c4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~ [c4,eb4,ab4]@2, eb4 ~@7", // Fm Ab
  J: "[db4,f4] ~@3 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~ [db4,f4,ab4]@2", // Db
  K: "[eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~@3 [gb4,bb4] ~ [eb4,gb4,bb4]@2", // Ebm Gb Ebm
  L: "[c4,f4,a4] ~@5 [db4,gb4,bb4]@2 [c4,f4,a4] ~@7", // F Gb F
  M: "[d4,f4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~ [bb3,d4,f4]@2, bb3 ~@7", // Dm Bb
  N: "[c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~ [c4,eb4,ab4]@2", // Ab
  O: "[c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~ [c4,e4,g4]@2", // C
  P: "[f3,bb3,d4] ~@5 gb3@2 f3 ~ eb3@4 db3 c3", Q: "bb2 ~@3 gb3@4 f3 ~@7",
  R: "[bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~ [bb3,eb4,gb4]@2 ~@2 [bb3,eb4,gb4]@2", // Ebm
  S: "[db4,f4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2", // Db Bbm
  T: "[a3,c4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2", // Am F
  U: "[bb3,db4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2", // Bbm
  V: "[bb3,db4,f4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~ [bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2", // Bbm
  W: "[g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~ [g3,c4,e4]@2 ~@2 [c4,e4,g4]@2", X: "[a3,c4,f4] ~@15",
})).s("gm_harpsichord").gain(0.16).pan(0.2)

// drums · kick
const kick = s("bd").struct("<A B C D@8 A D@7 A B D@15 B ~ D@7 B D@7 A B D@23 E D@19 B ~>".pickRestart({
  A: "x ~@6 x", B: "x", C: "x ~@2 x", D: "x ~ x ~ x ~ x!2", E: "x ~@2 x!2 ~@3",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
  A B C D@8 ~ D@6 E B F D@7 G D@3 G D@3 ~ H D@7 ~ D@6 E B F D@7 G D@3 G D@3 G D@7 F D@7 G D@3 G D@3 G D@3 ~@2
>`.pickRestart({
  A: "x ~@6 x", B: "x", C: "x ~@9 x ~ x!3 ~", D: "~@14 x!2", E: "~@7 x", F: "~@12 x ~ x!2", G: "~@10 x ~ x ~ x!2",
// … 45 more lines

More by Kristina Bach