Strudelify

String Quartet No. 12 in F op. 96 American by Antonín DvoÅák

Antonín DvoÅák

KeyF majorTempo53 bpm
0:00/0:00
// String Quartet No. 12 in F op. 96 American by Antonín DvoÅák — Antonín DvoÅák
// 52.5 bpm, 6/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5544107; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 97 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(52.5/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · flute
const flute = note(`<
  ~@2 A B C D E F G H I@2 J I@2 K L M N O P Q R F S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AK AM AN AO AN AO
  AP AQ AR AS AT AU AV AW AX@3 AK AL AK AM AY AO AY AO AP AZ AR BA BB BC BD BE BF@4 BG BH@3 BI@2 BJ BK BL@2 BM@3 BN@2 BO
>`.pickRestart({
  A: "a5@6 a5@2 g5@2 f5 d5, a4 ~@23", B: "d5@6 d5 a4!2 d5!2 e5", C: "f5@8 d5@4 [c5,d5] c5@7 a4@2 c5@2",
  D: "d5@11 ~@5 d5 a4 b4 db5 d5 e5 [f5,g5] ab5", E: "a5@6 a5@2 g5@2 f5 d5", F: "d5@6 d5 a4!2 d5 e5 f5",
  G: "g5@8 f5@2 e5@2 e5@8 d5 c5 ~ a4", H: "c5@3 c5 ~@2", I: "d5@2 f5@4 f5@2 ~@2 f5 ~ d5@2 f5@4 f5@2 ~@2 f5 ~",
  J: "d5@2 f5@4 f5@2 ~@2 f5 ~ c5@2 f5@4 f5@2 ~@2 f5 ~", K: "d5@2 f5@4 f5@2 ~@2 f5 ~ d5@2 f5@4 f5@2 g5@2 a5@2",
  L: "c5@2 e5@4 e5@2 ~@2 e5 ~ c5@2 e5@4 e5@4 c6@2", M: "c5@2 e5@4 e5@2 ~@2 e5 ~ c5@2 e5@4 e5@2 ~@2 e5 ~",
  N: "g5@8 f5@2 e5@2 g5@8 f5 bb5 ~ g5", O: "g5@11 ~@9 g5@4", P: "g5@8 f5@2 e5@2 g5@8 f5 a5!2 e5",
  Q: "g5@11 ~ g5@8 ab5@4", R: "a5@2 c6@2 bb5 a5 g5@2 f5@2 d5@2, ~@12 d4 ~@11", S: "a5@6 a5 f5!2 g5 a5 c6",
  T: "c6@11 ~ d6@4 g6@4 bb5@4", U: "bb5 a5 c6@4 c6 bb5 g5 eb5 g5 bb5", V: "a5@11 ~ g5@4 f5@4 d5@4",
  W: "c5@8 c5@2 a5@2 a5@11 ~", X: "f5@6 f5@2 a4 c5!2 a4", Y: "[bb4,c5]!23 [a4,bb4]", Z: "bb4@2 e5@2 f5 e5 g5@2 e6@3 g5",
  AA: "[bb5,c6]!23 [a5,bb5]", AB: "bb5@4 e6@4 f6@2 e6@2 e6@4 f6@6 f6 ~", AC: "f6@2 a6@2 g6 f6 e6@2 d6@2 bb5@2",
  AD: "a5@3 a5!2 g5", AE: "c6 a5 f6 f6@2 f6", AF: "a6@11 ~ bb6@8 d6@4", AG: "d6 c6 a5@2 g5 f5 eb5@4 eb5 g5",
  AH: "f5@3 f5 d5 g5", AI: "a4@8 d5@4 c5@11 ~", AJ: "c5@6 c5 f4 a4 c5!2 f5", AK: "a5@6 a5@2 g5@2 gb5 d5",
  AL: "a5@6 a5@2 ~@2 a4 a5", AM: "a5@3 a5 ~ a5", AN: "d6@6 d6@2 c6@2 bb5 g5", AO: "g5@3 g5 ~ g5", AP: "bb5@3 bb5 a5 g5",
  AQ: "a5@6 g5@2 g5 f5 ~ d5 d5@8 d5@4", AR: "g5@2 a5@3 d6 g5@2 a5@3 d6", AS: "d6@11 ~ eb6@11 ~",
  AT: "e6 c7 b6 a6 g6 a6", AU: "e6@3 e6@2 ~", AV: "e6 a6 g6 e6 d6 e6", AW: "c6@3 c6 b5 c6, a4 ~@23",
  AX: "c6@3 c6 b5 c6", AY: "d6@6 d6@2 bb5@2 a5 f5", AZ: "a5@6 g5@2 g5 f5 ~ d5 d5@8 d5@2 ~@2", BA: "g5 ab5",
  BB: "a5@2 f6@2 e6@2 d6@3 c6 d6@2", BC: "a5@3 a5@2 ~", BD: "a5 d6 c6 a5 ab5 a5", BE: "a5@11 ~ f5@4 e5@4 f5@4",
  BF: "f5@11 ~ f5@4 e5@4 f5@4", BG: "d5 ~ d5 ~@3 d5 ~ d5 ~@3", BH: "a4@2 a4@2 ~@2 a4 ~ a4 ~@3",
  BI: "f4@2 f4@2 ~@2 f4 ~ f4 ~@3", BJ: "b3@23 ~", BK: "c4@11 ~ bb4@11 ~", BL: "f4 ~ f4 ~@3 f4 ~ e4 ~@3",
  BM: "f4 ~ f4 ~@3 f4 ~ f4 ~@3", BN: "f4 ~@2 f4 ~@2", BO: "f4@23 ~",
})).s("gm_flute").gain(0.2)

// other · oboe
const oboe = note(`<
  ~@3 A@2 B C D E F ~ G H I J ~ K L M N M O P Q R S T U V W X@3 Y Z AA AB AC AD AE AF AG ~@2 AH@2 ~ AI ~@3 AJ AK AL L@2
  AM ~@4 AN AO AN AO ~ AP ~@3 AJ AK AQ ~@2 U ~@5 AR AS@3 AT@2 ~ AU ~@2 AV ~@2 AW AX AY
>`.pickRestart({
  A: "a4 ~@5", B: "a4@4 ~@12 d5 a4 b4 db5 d5 e5 [f5,g5] ab5", C: "a4@6 a4@2 g4@2 f4 d4", D: "d4@6 d4 a4!2 d4 e4 f4",
  E: "g4@4 f4 e4 c5@4 f4@2", F: "e4@3 c4 ~@2", G: "~@7 a4!2 d5!2 e5", H: "f5@8 d5@4 [c5,d5] c5@7 a4@2 c5@2",
  I: "d5@12 ~@4 d5 a4 bb4 c5 d5 e5 [f5,g5] ab5", J: "a5@3 a5 ~@2", K: "~@3 c4 ~@2", L: "c4 ~@2 c4 ~@2",
  M: "bb4@4 f5 e5 bb4@4 a4@2", N: "bb4 ~", O: "bb4@3 bb4@2 b4", P: "bb4@3 d4@2 d4", Q: "f4@3 f4!3", R: "f4@2 a4!4",
  S: "c4@3 d4@2 bb4", T: "bb4 a4 a4@4 g4@6", U: "f4 ~", V: "f4@2 a4 a4@3", W: "a4@3 a4@2 ~",
  X: "db4@6 ~@2 db4!4 db4@6 ~@2 db4!4", Y: "db4@6 ~@2 db4!4 db4@6 ~@6", Z: "a4@2 c5@2 bb4 a4 g4@2 f4@2 d4@2",
  AA: "f4@3 f4!2 g4", AB: "c5@4 c4@2 ~@2 db4!4 d4@6 ~@2 eb4!4", AC: "c5@3 d5 g4 bb4",
  AD: "bb4 a4 c5@4 c5 bb4 g4 eb4 g4 bb4", AE: "a4@6 ~@2 a4!4 bb4@6 ~@2 b4!4", AF: "c5@6 ~@2 c5!4 e4@12",
  AG: "f4@6 f4 ~@5", AH: "gb4 a4!2 c5!2 a4 gb4 a4!2 c5!2 a4", AI: "g4@3 g4 ~ eb5", AJ: "d5@2 ~ d5 a4 f4",
  AK: "bb4 f4 f5 bb4 f4 f5", AL: "f4 f5 ~ bb4 bb5 ~", AM: "c5", AN: "~@8 g4@2 gb4 d4",
  AO: "~@2 gb4 ~ eb5@6 d5@2 d5@2 c5@2 eb5@8", AP: "g4@3 g4 ~@2", AQ: "bb4 bb5 ~ e4 e5 ~", AR: "f4 ~ f4 ~@3 f4 ~ f4 ~@3",
  AS: "f4@2 f4@2 ~@2 f4 ~ f4 ~@3", AT: "d4@2 d4@2 ~@2 d4 ~ d4 ~@3", AU: "c4 bb3", AV: "d4@6 d4@2 a4@2 g4 f4",
  AW: "a4@2 ~ a4@2 ~", AX: "f4@2 ~ f4@2 ~", AY: "d4",
})).s("gm_oboe").gain(0.2)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B@3 C@2 B@2 D@2 E@2 F E@3 G@2 H I H J K L M N O P Q R S@3 T U V W X Y Z AA AB ~ AC ~ AC AD AE AF AE AG B AH AI AJ AK
  AL AM AN AO AP AQ AR ~ AR AS AE AT AE AG AU AV@2 AW AX AY AZ BA@4 BB@6 BC BD BE@2 BF@3 BG@2 BH
>`.pickRestart({
  A: "c4@2 f4@4 f4@2 ~@2 f4 ~ d4@2 f4@4 f4@2 ~@2 f4 ~", B: "d4@2 f4@4 f4@2 ~@2 f4 ~ d4@2 f4@4 f4@2 ~@2 f4 ~",
  C: "d4@2 f4@4 f4@2 ~@2 f4 ~ c4@2 f4@4 f4@2 ~@2 f4 ~", D: "c4@2 e4@4 e4@2 ~@2 e4 ~ c4@2 e4@4 e4@2 ~@2 f4 ~",
  E: "f4 a4!2 d5!2 a4 f4 a4!2 d5!2 a4", F: "f4 a4!2 d5!2 a4 f4 a4!2 c5!2 a4", G: "f4 a4!2 c5!2 a4 f4 a4!2 c5!2 a4",
  H: "g4 ~@5", I: "bb3@2 e4@2 f4 e4 g4@2 e5@3 g4", J: "bb3@2 e4@2 f4 e4 g4@2 e5@2 f5@2", K: "f5@3 a5 g5 f5 d5@4 bb4@2",
  L: "a4@3 a4!3", M: "a4@2 f5!4", N: "e5@3 bb5@2 g5", O: "g5 f5 f5@4 eb5@6", P: "d5@3 d5@2 g4", Q: "a4@2 f5 e5@3",
  R: "c5@3 c5@2 ~", S: "e4 g3!2 bb3 a3 g3 e4 g3!2 bb3 a3 g3", T: "e4 g4!2 bb4 a4 g4 e4 bb4!2 b4!2 f4",
  U: "f4 a4 f4 c4 f4 c5!2 db5 d5 gb5 gb4 g4", V: "a4 f5!2 a4!2 f5!2 a4!2 f5 g5 d5",
  W: "f4 f5!2 f4!2 f5!2 f4!2 a5 c5 a4", X: "e4 e5!2 e4!2 e5 e4 g4!2 e4!2 g4", Y: "c4 f4!2 c4 a4@2 bb3 eb4!2 bb3 bb4@2",
  Z: "a3 d4!2 a3 a4@2 d4 f4!2 d4 f4@2", AA: "c4 f4!2 c4!2 f4 c4 c5!2 c4!2 c5", AB: "f4 c5!2 a4!2 f4 f4@2 ~@4",
  AC: "~ g4 eb5@3 d5!2 c5 eb5@4", AD: "d5@2 bb5@3 bb5 bb5@2 a5@2 g5 eb5", AE: "eb5@3 eb5 ~ eb5",
  AF: "bb5@6 bb5@2 a5@2 g5 eb5", AG: "g5@3 eb5 bb4@2 g4@2 f4@2 e4@2", AH: "d4 d5@2 d5@2 d5 d4 d5@2 d5@2 d5",
  AI: "a3 a4@2 a4@2 a4 a3 a4@2 a4@2 a4", AJ: "e4 e5 e5@4 e5@6", AK: "e5 c6 b5 a5 g5 a5", AL: "e5",
  AM: "e5 a5 g5 e5 d5 e5", AN: "e5@3 e5 d5 e5", AO: "e5@3 eb5 d5 eb5", AP: "eb5@3 eb5 d5 eb5", AQ: "c5@3 c5 ~@2",
  AR: "~@2 gb4 ~ eb5@6 d5@2 d5@2 c5@2 eb5@8", AS: "d5@4 bb5@6 bb5 ~ bb5@4 g5@4 f5@2 d5@2", AT: "bb5@6 bb5@2 g5@2 f5 d5",
  AU: "d4 f4@2 f4@2 f4 d4 f4@2 f4@2 f4", AV: "d4@2 d5@4 d5@4 d5 ~ d4@2 d5@4 d5@4 d5 ~", AW: "a4 a5 a5@4 a5@6",
  AX: "a4@2 f5@2 e5 ~ d5@3 c5 d5@2", AY: "a4@3 a4 bb4 a4", AZ: "a4 d5 c5 a4 ab4 a4", BA: "a4@3 a4 ab4 a4",
  BB: "a3@2 a3@2 ~@2 a3 ~ a3 ~@3", BC: "g3 ab3", BD: "a3 g3", BE: "a3 ~ a3 ~@3 bb3 ~ bb3 ~@3",
  BF: "a3 ~ a3 ~@3 a3 ~ a3 ~@3", BG: "a3@2 ~ a3@2 ~", BH: "a3",
})).s("gm_clarinet").gain(0.2)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A@4 B A@2 C D E F G H I F J K L M@3 N O P Q R S T U V W X Y Z AA J AB AC AD AE AF AG AH AI AH AI AJ AK AJ AK AL AM AN
  AO AI@4 AP AQ AP AH AI AH AR AJ AK AJ AK AL AM AN AS AT@4 AU AV AW AX F G H I F J AY AZ BA@2 BB BC BD BE@3
>`.pickRestart({
  A: "d3 ~@2 d3 ~@2", B: "d3 ~@2 a2 ~@2", C: "a3 ~@2 d3 ~@2", D: "c3 ~@2 g2 ~@2", E: "g2 ~@2 c3 ~@2",
  F: "a4@6 a4@2 g4@2 f4 d4", G: "d4@6 d4 a3!2 d4!2 e4", H: "f4@8 d4@4 [c4,d4] c4@7 a3@2 c4@2",
  I: "d4@12 ~@4 d4 a3 bb3 c4 d4 e4 [f4,g4] ab4", J: "d4@6 d4 a3!2 d4 e4 f4", K: "g4@8 f4@2 e4@2 e4@8 e4 c4 ~ a3",
  L: "c4@3 c4 ~@2", M: "db3 ~@2 db3 ~@2", N: "db3 ~@2 db3 ~ db3", O: "f3 f2 ~ bb2 ~ bb2", P: "d3 ~ d3 bb2 ~ bb2",
  Q: "c3 ~ db3 d3 ~ eb3", R: "e3 ~@2 e3 ~ e3", S: "f3 ~@2 g3 ~@2", T: "a3 ~@2 bb3 ~ bb3", U: "c4 ~ c4!2 ~ c4",
  V: "f3 ~ c3 ~ f2 ~", W: "g4@8 f4@2 e4@2 g4@8 f4 a4 ~ e4", X: "g4@3 g4 ~ g4", Y: "g4@8 f4@2 e4@2 g4@8 f4 a4!2 e4",
  Z: "g4@3 g4 ab4@2", AA: "a4@2 c5@2 bb4 a4 g4@2 f4@2 d4@2", AB: "a4@6 a4 f4!2 g4 a4 c5", AC: "c5@3 d5 g4 bb4",
  AD: "bb4 a4 c5@4 c5 bb4 g4 eb4 g4 bb4", AE: "a4@3 g4 f4 d4", AF: "c4@4 c4 a4 a4@6", AG: "a4@3 a4 ~@2",
  AH: "d3@2 ~@4 d3@2 ~@2 d3 gb3", AI: "c3 ~@2 c3 ~@2", AJ: "bb2 ~@2 bb2 ~@2", AK: "eb3 ~@2 eb3 ~@2",
  AL: "eb3 ~@2 db3 ~@2", AM: "d3@2 ~ d3 a2 f2", AN: "bb2 f2 f3 bb2 f2 f3", AO: "f2 f3 ~ bb2 bb3 ~", AP: "c3 ~@2 a2 ~@2",
  AQ: "g2 ~@2 f2 ~@2", AR: "c3 ~@2 c3 ~ c3", AS: "bb2 bb3 ~ e2 e3 ~", AT: "f2 ~@2 f3 ~@2", AU: "d3 ~@2 g2 ~@2",
  AV: "a2 ~@2 bb2 ~ bb2", AW: "c3 ~@2 db3 ~@2", AX: "c3 ~@2 db3 ~ a2", AY: "f4", AZ: "f4@3 f4 e4 eb4",
  BA: "d4@6 d4@2 c4@2 bb3 c4", BB: "d4@6 d4@2 a3@2 g3 f3", BC: "d3@6 d3@2 a2@2 g2 f2",
  BD: "d2@2 a2@2 g2 f2 d2@2 a2@2 g2 f2", BE: "d2",
})).s("gm_french_horn").gain(0.2)

stack(flute, oboe, clarinet, french_horn)

More by Antonín DvoÅák