Strudelify
Rosamunde cover art

Die schönsten Melodien der letzten 100 Jahre

Rosamunde

Last

KeyB♭ majorTempo112 bpm
0:00/0:00
// Rosamunde — Last
// 112 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 73 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 · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order, A@4 for four bars: edit a riff to change every repeat.

// chords · clarinet
const clarinet = note(`<
  ~ A B C D E B F G H B I J K B F L M N O P Q R S T U N O P Q R V W X Y Z AA ~ AB AC AD ~ AE AF@2 AG@2 AH@5 AI@2 AJ AK Y
  AL AM ~ AB AC AD ~ AE AF@2 AG@2 AN AO AP AQ
>`.pickRestart({
  A: "~@6 d5 db5 d5 ~ bb4@2 ~@2 d5 db5", B: "d5 ~ bb4@3 ~ d5 db5 d5 ~ d5 ~ d5@2 ~ d5",
  C: "d5 ~@2 db5 ~@2 c5 b4 c5 ~ eb5 ~ eb5@2 ~ eb5, ~@2 c5@3 ~@11", D: "eb5 ~ c5@3 ~ c5 b4 c5 ~ c5@3 ~ c5 a4",
  E: "[bb4,b4] ~ bb4@3 ~ [db5,d5]!2 d5 ~ bb4@3 ~ d5 db5", F: "d5 ~ c5@4 ~@2 c5 ~ c5 ~ c5@2 ~ c5",
  G: "a4 ~ a4@5 ~ a4 ~ c5 ~ a4@2 ~ a4", H: "f4 ~ f4@3 ~ d5 db5 d5 ~ bb4@3 ~ d5 db5",
  I: "d5 ~ c5@3 ~ c5 b4 c5 ~ c5 ~ eb5@2 ~ eb5", J: "d5 ~ c5@3 ~ c5 b4 c5 ~ c5@3 ~ c5 a4",
  K: "bb4 ~ bb4@3 ~ d5 db5 d5 ~ bb4@3 ~ d5 db5", L: "a4 ~ a4@3 ~@3 f4@2 eb4 ~ d4 ~ c4 ~", M: "bb3 ~@7",
  N: "~@10 [a4,c5] [bb4,d5] [c5,eb5] ~ [d5,f5] ~", O: "[eb5,g5] [d5,gb5] [eb5,g5]@2 ~@12",
  P: "~@10 [f4,bb4] [a4,c5] [bb4,d5] ~ [d5,g5] ~", Q: "[d5,f5]@3 ~@13", R: "~@5 eb5 d5 c5", S: "a4@3 ~@13",
  T: "~@5 bb4 g4 f4", U: "bb4@3 ~@13", V: "a4 ~@7", W: "~@5 f4 g4 f4", X: "bb4 ~@15",
  Y: "~@10 [c4,eb4] [d4,f4] [eb4,g4] ~ [eb4,g4] ~", // Cm Dm Eb
  Z: "~@2 [eb4,g4] [f4,ab4] [g4,bb4] ~ [g4,ab4,bb4] ~@5 [g4,bb4]@2 [bb4,d5]@2", // Eb Fm Gm Bb
  AA: "[c5,eb5] ~ [c5,eb5] ~ [ab4,c5] [g4,b4] [ab4,c5] ~ [c5,eb5] ~ [c5,eb5] ~ [ab4,c5] [g4,b4] [ab4,c5] ~", // Cm Ab G Ab Cm Ab G Ab
  AB: "~@10 [bb3,d4] [c4,eb4] [d4,f4] ~ [d4,f4] ~", // Bb Cm Dm
  AC: "~@2 [d4,f4] [eb4,g4] [f4,ab4] ~ [f4,ab4] ~@5 [f4,ab4]@2 [g4,bb4] ~", // Dm Eb Fm Gm
  AD: "[bb4,d5] ~ [bb4,d5] ~ [ab4,c5] [g4,b4] [ab4,c5]@2 ~@8", AE: "~@4 g4@3 ~",
  AF: "[g4@7 ~ g4 ~ g4@11 ~@3 g4 ~ g4@3 ~ g4 ~]/2", AG: "[g4 ~ g4@3 ~ g4@2 ab4@12 ~@4 d4 ~ d4@2 f4 ~ f4 ~]/2",
  AH: "[f4@5 ~ f4 ~ f4@2 eb4@9 ~ bb3@2 d4@2 eb4@11 ~ d4 ~ d4 ~ eb4@10 ~@2 eb4@2 ~@2 [c4,eb4,g4]@16 g4@2 f4@2 eb4@2 d4@2]/5", // Cm
  AI: "[eb4@2 d4@2 c4@3 ~ [bb3,d4,f4]@15 ~ f4@2 eb4@2 d4@2 c4@2]/2", AJ: "bb3@2 ~@6 bb4@2 b4@2 bb4@3 ~",
  AK: "bb4@2 d5@2 bb4@3 ~ eb5 ~@7",
  AL: "~@2 [eb4,g4] [f4,ab4] [g4,bb4] ~ [g4,bb4] ~@3 [g4,bb4,d5] ~ [c5,eb5] ~ [c5,eb5] ~", // Eb Fm Gm Cm
  AM: "[ab4,c5] [g4,b4] ab4@2 ~@12, ~@2 c5 ~@13", AN: "f4@5 ~ f4 ~ f4@2 eb4@6", AO: "~@4 bb3@2 d4@2 eb4@7 ~",
  AP: "d4@3 ~ d4 ~ d4@2 bb3@8", AQ: "~@4 bb3 ~@11",
})).s("gm_clarinet").gain(0.35)

// bass · tuba
const bass = note(`<
  A B C D E C F D E G C H E G F D I J K L M N E@2 O P K Q M N E@2 O R S T@2 U V W X Y Z AA AB AC AD AE T AF AG AH AI AJ
  AK AL AM T@2 AN V W@2 AO Z AP AB AQ AD AR AS AE AT
>`.pickRestart({
  A: "~@8 f1 ~@3 f1 ~@3", B: "f1 ~@3 f1 ~@3 bb1 ~@3 f1 ~@3", C: "bb1 ~@3 f1 ~@3 bb1 ~@3 f1 ~@3",
  D: "f1 ~@3 f1 ~@3 c2 ~@3 f1 ~@3", E: "c2 ~@3 f1 ~@3 c2 ~@3 f1 ~@3", F: "bb1 ~@3 bb1 ~@3 bb1 ~@3 f1 ~@3",
  G: "bb1 ~@3 f1@2 ~@2 bb1 ~@3 f1 ~@3", H: "f1 ~@3 f1 ~@3 c2 ~@3 f1@2 ~@2", I: "c2 ~@3 f1 ~@3 f1@8",
  J: "bb1 ~@3 bb1 ~@3 f1 ~@3 c2 ~ f2 ~", K: "~@8 c2 ~@3 f1 ~@3", L: "c2 ~@3 f1@2 g1 ~ bb1 ~@3 g1 ~ bb1 ~, ~@4 gb1 ~@11",
  M: "~@8 bb1 ~@3 f1 ~@3", N: "bb1 ~@3 f1 ~@3 c2 ~@3 f1 ~@3", O: "c2 ~@3 f1 ~@3 bb1 ~@3 f1 ~@3",
  P: "bb1 ~@3 bb1@2 ~@2 f1@2 ~@2 c2@2 f2@2", Q: "c2 ~@3 f1@2 g1 ~ bb1 ~@3 g1@2 bb1 ~", R: "bb1 ~@3 bb1 ~@3 eb2@4 c2@4",
  S: "bb1@4 g1@3 ~ eb1 ~@3 bb1 ~@3", T: "eb2 ~@3 bb1 ~@3 eb2 ~@3 bb1 ~@3", U: "eb2 ~@3 bb1 ~@3 f2@3 ~ d2@3 ~",
  V: "c2@3 ~ bb1@2 ~@2 f2@2 ~@2 bb1 ~@3", W: "f2@2 ~@2 bb1 ~@3 f2 ~@3 bb1 ~@3", X: "f2 ~@3 bb1 ~@3 f2 ~@3 bb1 ~@3",
  Y: "f2 ~@3 bb1 ~@3 eb2@3 ~ f2@3 ~", Z: "eb2@2 d2@2 c2@2 bb1@2 eb2@2 ~@2 bb1 ~@3",
  AA: "eb2@2 ~@2 bb1 ~@3 eb2@2 ~ f2 g2 ~ eb2 ~", AB: "f2@2 ~@2 eb2 ~@3 eb2 ~@3 bb1 ~@3",
  AC: "eb2 ~@3 bb1 ~@3 ab1@2 ~@2 bb1@3 ~", AD: "c2@3 ~ eb2@3 ~ f2@2 ~@2 bb1@2 ~@2",
  AE: "f2 ~@3 bb1@2 ~@2 eb2 ~@3 bb1@2 ~@2", AF: "f2@2 ~@2 bb1 ~@3 eb2 ~@3 bb1 ~@3",
  AG: "eb2 ~@3 eb2 ~@3 c2@3 d2 eb2@2 d2@2", AH: "c2 d2 eb2 f2 g2@11 ~", AI: "g2 ~ g2 ~ g2 ~@3 bb1@3 c2 d2@2 c2 ~",
  AJ: "bb1 c2 d2 eb2 f2@12, ~@4 gb2 ~@11", AK: "bb1 ~@3 bb1 ~@3 bb1 ~ b1 ~ bb1@3 ~",
  AL: "bb1 ~ d2 ~ bb1@3 ~ eb2@3 ~ c2@3 ~", AM: "bb1@3 ~ g1@3 ~ eb2 ~@3 bb1 ~@3", AN: "eb2 ~@3 bb1 ~@3 f2 ~@3 d2@3 ~",
  AO: "f2@2 ~@2 bb1@2 ~@2 eb2 ~@3 f2@2 ~@2", AP: "eb2 ~@3 bb1 ~@3 eb2@3 f2 g2@2 eb2@2",
  AQ: "eb2@2 ~@2 bb1 ~@3 ab1@2 ~@2 bb1@3 ~", AR: "f2@2 ~@2 bb1 ~@3 eb2@2 ~@2 bb1 ~@3",
  AS: "eb2 ~@3 bb1@2 ~@2 eb2@2 ~@2 bb1@2 ~@2", AT: "eb2 ~@3 eb1@2 ~@10",
})).s("gm_tuba").gain(0.6)

// chords · accordion
const accordion = note(`<
  A B C D E F G H I J G K L M C N O P ~ Q ~ R S@2 T U ~ Q ~ R V W X Y Z AA@2 AB@2 AC@2 AD@2 AE@2 AF@2 AG@2 AH AI AJ AK
  AL AM AN AO AP@2 AQ@2 AC@2 AR@2 AS@2 AT@2 AU@2 AV AW
>`.pickRestart({
  A: "~@8 [a3,c4,eb4,f4] ~@3 [a3,c4,eb4,f4] ~@3", // F7
  B: "[a3,c4,eb4,f4] ~@5 [d4,f4] [db4,e4] [d4,f4] ~ [bb3,d4]@2 ~@2 [d4,f4] [db4,e4]", // F7 Dm Dbm Dm Bb Dm Dbm
  C: "[d4,f4] ~ [bb3,d4]@2 ~@2 [d4,f4] [db4,e4] [d4,f4] ~ [d4,f4,bb4] ~ [d4,f4,c5]@2 ~ [d4,f4,bb4]", // Dm Bb Dm Dbm Dm Bb Dm7 Bb
  D: "[d4,f4,bb4] ~ [c4,eb4,a4]@3 ~ [c4,a4] [b3,ab4] [c4,a4] ~ [eb4,g4,bb4] ~ [eb4,a4,c5]@2 ~ [d4,f4,bb4]", // Bb Adim F E F Eb Adim Bb
  E: "[eb4,g4,bb4] ~ [c4,eb4,a4]@3 ~ [c4,a4] [b3,ab4] [c4,a4] ~ [c4,eb4,g4]@3 ~ [c4,eb4,g4] [d4,gb4]", // Eb Adim F E F Cm D
  F: "[d4,f4,g4] ~ [bb3,d4,f4]@3 ~ [d4,f4] [db4,e4] [d4,f4] ~ [bb3,d4]@3 ~ [d4,f4] [db4,e4]", // G7 Bb Dm Dbm Dm Bb Dm Dbm
  G: "[d4,f4] ~ [bb3,d4]@3 ~ [d4,f4] [db4,e4] [d4,f4] ~ [d4,f4,bb4] ~ [d4,f4,c5]@2 ~ [d4,f4,bb4]", // Dm Bb Dm Dbm Dm Bb Dm7 Bb
  H: "[d4,f4,bb4] ~ [c4,eb4,a4]@4 ~@2 [c4,f4,a4] ~ [c4,f4,a4] ~ [f4,a4]@2 ~ [eb4,g4], ~@12 [eb4,e4] ~@3", // Bb Adim F Eb Emaj7
  I: "[eb4,g4] ~ [a3,f4]@5 ~ [a3,f4]@2 [eb4,g4] ~ [a3,f4]@3 [a3,eb4]", // Eb Dm Eb Dm Adim
  J: "[a3,eb4] ~ [bb3,d4]@3 ~ [d4,f4] [db4,e4] [d4,f4] ~ [bb3,d4]@3 ~ [d4,f4] [db4,e4]", // Adim Bb Dm Dbm Dm Bb Dm Dbm
  K: "[d4,f4,bb4] ~ [c4,eb4,a4]@3 ~ [c4,a4] [b3,eb4,ab4] [c4,a4] ~ [eb4,g4,bb4] ~ [eb4,a4,c5]@2 ~ [d4,f4,bb4]", // Bb Adim F Abm F Eb Adim Bb
  L: "[eb4,g4,bb4] ~ [c4,eb4,a4]@3 ~ [c4,a4] [b3,ab4] [c4,a4] ~ [eb4,g4]@3 ~ [eb4,g4] [c4,gb4]", // Eb Adim F E F Eb Cdim
  M: "[bb3,d4,g4] ~ [bb3,d4,f4]@3 ~ [d4,f4] [db4,e4] [d4,f4] ~ [bb3,d4]@3 ~ [d4,f4] [db4,e4]", // Gm Bb Dm Dbm Dm Bb Dm Dbm
  N: "[d4,f4,bb4] ~ [c4,eb4,a4]@3 ~@3 [c4,a4] ~ [c4,a4] ~ [c4,a4]@2 ~ [eb4,g4]", // Bb Adim F Eb
  O: "[eb4,g4] ~ [a3,f4]@4 ~@2 [a3,f4] ~ [g3,eb4] ~ [f3,db4,d4] ~ [eb3,c4] ~", // Eb Dm Cm Db Cm
  P: "[d3,bb3] ~@3 [bb3,d4,f4]@2 gb4 ~ [a3,c4,eb4,g4]@2 ~@2 [a3,c4]@2 [a3,c4,eb4,g4]@2, ~@12 [eb4,gb4] ~@3", // Gm Bb Am7b5 Am Am7b5 Ebm
  Q: "~@4 [a3,c4,eb4] ~ [g3,db4,e4] ~ [bb3,d4] ~@3 [db4,e4]@2 [bb3,d4,f4]@2, ~@8 f4@2 ~@2 bb3 ~@3", // Adim Dbdim Bb Dbm Bb
  R: "~ [g4,bb4] [a4,c5] [g4,bb4] [f4,a4]@3 [a4,c5]", // Gm Am Gm F Am
  S: "[[eb4,g4]@5 ~ [eb4,f4] ~ [f4,a4]@10 [g4,bb4]@2 [a4,c5]@2 [g4,bb4]@2 [f4,a4]@6 [a4,c5]@2]/2", // Eb Ebsus2 F Gm Am Gm F Am
  T: "[eb4,g4]@5 ~ [eb4,gb4] ~ [d4,f4]@8", // Eb Ebm Dm
  U: "~@4 [d4,f4]@2 [bb3,d4,gb4] ~ [a3,c4,eb4,g4] ~@3 [a3,c4,eb4,gb4]@2 [a3,c4,eb4,g4]@2, ~@4 bb3 ~@11", // Dm Bbaug Am7b5 Adim Am7b5
  V: "[eb4,g4]@5 ~ eb4@2 [f4,a4]@8, ~@6 f4 ~@9", W: "~@2 [g4,bb4]@2 [a4,c5]@2 [g4,bb4]@2 [f4,a4]@5 ~ [a4,c5] ~",
  X: "[eb4,g4]@5 ~ [eb4,f4] ~ [d4,f4,bb4]@8", Y: "~@2 bb4!4 bb4@3 ~@7", Z: "~@7 gb4 [g4,bb4]@7 [gb4,a4], ~@8 a4 ~@7",
  AA: "[[g4,bb4]@7 ~ g4@2 [ab4,c5]@13 ~ [g4,bb4]@2 [ab4,c5]@4 [g4,bb4]@2, ~@8 bb4 ~@23]/2", // Gm Ab Gm Ab Gm
  AB: "[[ab4,c5]@2 [g4,bb4]@4 gb4@2 [f4,ab4]@14 ~ [g4,b4] [ab4,c5]@7 [g4,b4], ~@6 a4 ~@25]/2", // Ab Gm Fm G Ab G
  AC: "[[ab4,c5]@7 ~ [ab4,c5]@2 [bb4,d5]@13 ~ c5@2 [bb4,d5]@4 [ab4,c5]@2, ~@24 ab4 ~@7]/2", // Ab Bb Ab
  AD: "[[bb4,d5]@2 [ab4,c5]@4 ab4@2 [g4,bb4]@11 ~@5 [eb4,g4,bb4]@7 ~, ~@6 b4 ~@25]/2", // Bb Ab Gm Eb
  AE: "[[eb4,g4,bb4]@7 ~ [eb4,g4,bb4] ~ [eb4,g4,c5]@10 ~@4 [eb4,g4,bb4] ~ [eb4,g4,c5]@3 ~ [eb4,g4,bb4] ~]/2", // Eb Cm Eb Cm Eb
  AF: "[[eb4,g4,c5] ~ [eb4,g4,bb4]@3 ~ g4@2 [eb4,ab4,c5]@14 ~@2 [f3,f4]@2 [g3,g4]@2 [ab3,ab4]@2 [bb3,bb4]@2, ~@6 eb4 ~@25]/2", // Cm Eb Ab F G Ab Bb
  AG: "[[d4,d5]@5 ~ [c4,c5] ~ [c4,c5]@2 [bb3,bb4]@10 [g3,eb4]@2 [ab3,f4]@2 [bb3,g4]@8]/2", // D C Bb Cm Db Eb
  AH: "[d4,ab4]@3 ~ [d4,f4] ~ [d4,g4] ~ [g3,eb4] ~ eb4!3 ~ eb4 ~", AI: "eb4 ~@3 [g3,bb3,eb4] ~@3 c4@3 d4 eb4@2 d4@2",
  AJ: "c4 d4 eb4 f4 g4@3 ~ [eb4,g4]@2 [d4,f4]@2 [c4,eb4] ~ [b3,d4] ~", AK: "c4@2 d4 ~ c4@2 ~@2 [bb3,d4,f4]@8",
  AL: "bb3 c4 d4 eb4 f4@3 ~ [d4,f4]@2 eb4@2 [bb3,d4] ~ [a3,c4] ~, ~@10 c4 ~@5", // Dm Bb Am
  AM: "bb3@2 ~@2 [bb2,bb3] [b2,b3] [bb2,bb3] ~", // Bb B Bb
  AN: "[bb2,bb3]@2 [d3,d4]@2 [bb2,bb3]@2 ~@2 [eb3,g3,bb3,eb4] ~ [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~", // Bb D Bb Eb
  AO: "~@2 [g3,bb3,eb4] ~@5 [g4,bb4]@7 ~, ~@8 [gb4,a4] ~@7", // Eb Gm Gbm
  AP: "[[g4,bb4]@7 ~ [g4,bb4]@2 [ab4,c5]@13 ~ [g4,bb4]@2 [ab4,c5]@4 [g4,bb4]@2, [gb4,a4] ~@31]/2", // Gm Ab Gm Ab Gm Gbm
  AQ: "[[ab4,c5]@2 [g4,bb4]@3 ~ [gb4,a4] ~ [f4,ab4]@12 ~@4 [ab4,c5]@7 [g4,b4], ~@24 [g4,b4] ~@7]/2", // Ab Gm Gbm Fm Ab G
  AR: "[[bb4,d5]@2 [ab4,c5]@3 ~ [ab4,b4] ~ [g4,bb4]@12 ~@4 [eb4,g4,bb4]@7 ~]/2", // Bb Ab Abm Gm Eb
  AS: "[[eb4,g4,bb4]@7 ~ [eb4,g4,bb4]@2 [eb4,g4,c5]@12 ~@2 [eb4,g4,bb4] ~ [eb4,g4,c5]@3 ~ [eb4,g4,bb4] ~]/2", // Eb Cm Eb Cm Eb
  AT: "[[eb4,g4,c5] ~ [eb4,g4,bb4]@3 ~ g4@2 [eb4,ab4,c5]@16 [f3,f4]@2 [g3,g4]@2 [ab3,ab4]@2 bb4@2, ~@6 eb4 ~@23 bb3 ~]/2", // Cm Eb Ab F G Ab
  AU: "[[d4,d5]@5 ~ [c4,c5] ~ c5@2 [bb3,bb4]@9 ~ [g3,eb4]@2 [ab3,f4]@2 [bb3,eb4,g4]@7 ~, ~@8 c4 ~@23]/2", // D C Bb Cm Db Eb
  AV: "[d4,ab4]@3 ~ [d4,f4] ~ [bb3,g4] ~ g3@2 eb4!3 ~ eb4 ~, ~@8 eb4 ~@7", AW: "[g3,bb3,eb4] ~@3 [g3,eb4]@3 ~@9",
})).s("gm_accordion").gain(0.5).pan(0.3)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~ A B C D B@2 C@2 B@2 C D B@2 D C E F G A H C H I J F G A H C H I K L M L N B@3 O L@2 P@2 Q R S R T U V W X Y Z L@2 N
  B@3 O L@3 AA AB R S R AC
>`.pickRestart({
  A: "~@10 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~", B: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~",
  C: "~@2 [eb4,a4,c5] ~@3 [eb4,a4,c5] ~@3 [eb4,a4,c5] ~@3 [eb4,a4,c5] ~", // Adim
  D: "~@2 [eb4,a4,c5] ~@3 [eb4,a4,c5] ~@3 [eb4,a4,c5] ~@3 [f4,a4,c5] ~", E: "[d4,f4,bb4] ~@3 [d4,f4,bb4]@2 ~@10",
  F: "~@10 [eb4,a4,c5] ~@3 [eb4,a4,c5] ~", G: "~@2 [eb4,a4,c5] ~@13",
  H: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [eb4,a4,c5] ~@3 [eb4,a4,c5] ~", // Bb Adim
  I: "~@2 [eb4,a4,c5] ~@3 [eb4,a4,c5] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~", J: "~@2 [d4,f4,bb4] ~@13",
  K: "[d4,f4,bb4] ~@3 [d4,f4,bb4] ~@5 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~", // Bb Eb
  L: "~@2 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~", // Eb
  M: "~@2 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,ab4,bb4] ~@3 [eb4,g4,bb4] ~", // Eb Ebsus4 Eb
  N: "~@2 [eb4,g4,bb4] ~@3 [eb4,a4,c5] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~", // Eb Adim Bb
  O: "~@2 [d4,f4,bb4] ~@3 [d4,f4,ab4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~", // Bb Ddim Eb
  P: "[~@2 g4 ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] ~, ~ [eb4,bb4]@2 ~@13, ~@3 c-1@24 ~@5]/2", // Eb Ab Eb5
  Q: "~@2 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] ~@3 [c4,d4,f4,bb4] ~@3 [d4,f4,bb4] ~", // Ab Bb
  R: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~", // Bb Eb
  S: "~@2 [eb4,g4,bb4] ~@3 [d4,f4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~", T: "[eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@11",
  U: "~@8 g4@2 f4@2 eb4@2 d4 ~", V: "eb4@2 d4 ~ c4@2 ~@10", W: "~@8 f4 ~ eb4 ~ d4 ~ c4 ~", X: "bb3 ~@7",
  Y: "~@10 [g4,bb4,eb5] ~@3 [eb4,g4,bb4] ~", Z: "~@2 [bb3,eb4,g4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~",
  AA: "~@2 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] ~", // Eb Ab
  AB: "~@2 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~", AC: "[eb4,g4,bb4] ~@3 [g3,bb3,eb4]@2 ~@10",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.7)

// chords · trumpet
const trumpet = note(`<
  A B ~@2 C D E F G H ~@2 C D E F I J ~ K ~ L M L N O ~ K ~ L M P Q R S ~@7 T U@2 V@2 W X Y@2 Z AA AB AC AD AE ~@7 T
  AF@2 AG@2 AH X AI AJ
>`.pickRestart({
  A: "~@8 [a3,eb4,f4] ~@3 [a3,eb4,f4] ~@3", B: "[a3,f4] ~@15, eb4 ~@7", C: "~@8 f3 ~ f3!3 ~ a3 ~",
  D: "bb3 ~ f3 ~ bb3 ~ [d4,f4] [db4,e4] [d4,f4] ~ [bb3,d4]@3 ~ [d4,f4] [db4,e4]", // Dm Dbm Dm Bb Dm Dbm
  E: "[d4,f4] ~ [bb3,d4]@3 ~ [d4,f4] [db4,e4] [d4,f4] ~ [d4,bb4] ~ [d4,c5]@2 ~ [d4,bb4]", // Dm Bb Dm Dbm Dm Gm D7 Gm
  F: "[d4,bb4] ~ [c4,a4]@5 ~ [c4,a4] ~ [c4,a4] ~ [c4,a4]@2 ~ [eb4,g4]", // Gm F Eb
  G: "[eb4,g4] ~ [a3,f4]@4 ~@2 [a3,f4] ~ [eb4,g4] ~ [a3,f4]@2 ~ [a3,eb4]", H: "[a3,eb4] ~ [bb3,d4]@3 ~@11",
  I: "[eb4,g4] ~ [a3,f4]@5 ~ [f3,a3,f4] ~ [eb3,eb4] ~ [d3,d4] ~ [c3,c4] ~", // Eb Dm F Eb D C
  J: "[bb2,bb3]@2 ~@2 [bb3,d4,f4]@2 gb4@2 [a3,c4,eb4,g4]@2 ~@2 [a3,c4,eb4,gb4] ~ [a3,c4,eb4,g4]@2", // Bb Am7b5 Adim Am7b5
  K: "~@4 [a3,c4,eb4] ~ [g3,db4,e4] ~ [bb3,d4,f4]@2 ~@2 [db4,e4]@2 [bb3,d4,f4] ~, ~@12 bb3 ~@3", // Adim Dbdim Bb Dbm Bb
  L: "~ [g3,bb3] [a3,c4] [g3,bb3] [f3,a3]@3 [a3,c4]", M: "[eb3,g3]@5 ~ [eb3,f3]@2 [f3,a3]@8",
  N: "[eb3,g3]@5 ~ gb3@2 [d3,f3]@8, ~@6 eb3 ~@9", // Eb Dm
  O: "~@4 [bb3,d4,f4]@2 gb4 ~ [c4,eb4,g4]@2 ~@2 [a3,c4,eb4,gb4] ~ [a3,c4,eb4,g4]@2, ~@8 a3 ~@7", // Bb Cm Adim Am7b5
  P: "~@2 [g3,bb3] ~ [a3,c4]@2 g3@2 [f3,a3]@5 ~ [a3,c4] ~, ~@6 bb3 ~@9", Q: "[eb3,g3]@5 ~ [eb3,f3] ~ [d3,bb3]@8",
  R: "~@4 [d4,bb4] ~@5 [eb4,g4,bb4] ~@3 [bb3,eb4,g4] ~", S: "~@2 [g3,bb3,eb4] ~@3 [eb3,g3,bb3] ~@9",
  T: "~@8 [eb4,g4,bb4]@7 ~", // Eb
  U: "[[eb4,g4,bb4]@7 ~ [eb4,bb4] ~ [eb4,g4,c5]@11 ~@3 [eb4,g4,bb4]@2 [eb4,g4,c5]@3 ~ [eb4,g4,bb4] ~, ~@4 g4 ~@11]/2", // Eb Eb5 Cm Eb Cm Eb
  V: "[[g4,c5]@2 [eb4,g4,bb4]@3 ~ [bb3,g4]@2 [eb4,ab4,c5]@13 ~@3 [f3,f4]@2 g3@2 [ab3,ab4]@2 [bb3,bb4] ~, eb4 ~@5 eb4 ~@19 g4 ~@5]/2", // C5 Eb Ab F Ab Bb
  W: "[d4,d5]@5 ~ [c4,c5] ~ [c4,c5]@2 bb4@6, ~@10 bb3 ~@5", X: "~@4 eb4@2 ab3@2 [bb3,g4]@7 ~, ~@4 g3 ~ f4 ~@9",
  Y: "[[d4,ab4]@4 [d4,f4] ~ [d4,g4] ~ [g3,eb4]@10 ~@2 [g3,eb4]@2 ~@10]/2", Z: "~@4 g4 f4 eb4 d4",
  AA: "eb4 ~ d4 ~ c4@3 ~@9", AB: "~@4 f4 eb4 d4 c4",
  AC: "bb3 ~@3 bb3 ~@3 bb2@2 [b2,b3] ~ bb3@2 ~@2, ~@8 bb3 ~@3 bb2 ~@3", // B
  AD: "[bb2,bb3] ~ [d3,d4] ~ [bb2,bb3]@2 ~@2 [eb3,g3,eb4] ~ [eb3,g3,eb4] ~@3 [eb3,g3,eb4] ~", // Bb D Bb Eb
  AE: "~@2 [eb3,g3,eb4] ~@3 [eb3,g3,eb4] ~@9", // Eb
  AF: "[[eb4,g4,bb4]@7 ~ [eb4,g4,bb4]@2 [eb4,g4,c5]@13 ~ [eb4,g4,bb4]@2 [eb4,g4,c5]@3 ~ [eb4,g4,bb4] ~]/2", // Eb Cm Eb Cm Eb
  AG: "[[eb4,g4,c5]@2 [eb4,g4,bb4]@3 ~ [bb3,eb4,g4] ~ [eb4,ab4,c5]@15 ~ [f3,f4]@2 [g3,g4]@2 [ab3,ab4]@2 [bb3,bb4]@2]/2", // Cm Eb Ab F G Ab Bb
  AH: "[d4,d5]@5 ~ [c4,c5] ~ [c4,c5] ~ [bb3,bb4]@6", AI: "[d4,ab4]@3 ~ f4@2 [d4,g4] ~ [g3,eb4]@8, ~@4 d4 ~@11",
  AJ: "~@4 [g3,eb4] ~@11", // Cm
})).s("gm_trumpet").gain(0.36).pan(0.7)

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

// drums · snare
const snare = s("sd").struct(`<
  ~ A B@3 A B@3 C B@3 D B@3 E F G F B@4 H F G F B@4 I J B@3 A B@3 A B@3 A B G K L ~ M ~ N O J B@3 J B@3 A B@3 J B@3 L
>`.pickRestart({
  A: "~@2 x!3 ~ x ~@3 x ~@3 x ~", B: "~ x ~ x ~ x ~ x", C: "~@2 x!3 ~ x!2 ~@2 x ~@3 x ~",
  D: "~@2 x ~ x!4 ~@2 x ~@3 x ~", E: "x ~ x!6 ~@2 x ~@3 x ~", F: "~@5 x ~ x", G: "~ x ~ x ~ x!3",
  H: "x ~ x!6 ~@4 x ~ x ~", I: "x ~ x!3 ~@5 x ~@3 x ~", J: "~ x!3 ~ x ~ x", K: "~@2 x ~ x ~ x ~@3 x ~@3 x!2",
  L: "x ~ x!3 ~@11", M: "~@2 x!3 ~ x ~@9", N: "~@2 x!3 ~ x ~@3 x ~ x ~@3", O: "~ x!2 ~ x!2 ~ x",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  A B ~@3 C ~@3 C ~@3 C ~@3 C ~ D ~@5 D ~ D ~@5 E ~@8 C ~@7 C A B A B@2 ~@8 C ~@7 F
>`.pickRestart({
  A: "~@2 x!2", B: "x!2", C: "~ x", D: "~@4 x ~@2 x", E: "~ x!2 ~", F: "~ x ~@2",
})).gain(0.5)

// drums · ride
const ride = s("rd").struct("<A B C@16 A C A C@5 A C A C@21 D B D B E B C@16 F>".pickRestart({
  A: "~@2 x!2", B: "x ~ x!2", C: "x!4", D: "x!3 ~", E: "x!2", F: "x",
})).gain(0.43)

stack(clarinet, bass, accordion, electric_guitar_jazz, trumpet, kick, snare, crash, ride)

More by Last