Strudelify

Tiger Rag

Dante Pipitone

KeyB♭ majorTempo200 bpm
0:00/0:00
// Tiger Rag — Dante Pipitone
// 200 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5839072; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(200/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.

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@2 B C A@2 B C A@2 B C A@2 B D ~ E F E G E ~ H A@2 B C I@2 B J K@2 L M N@2 L O P Q R S P T U ~ P T R S V W X Y Z AA Z
  AA Z AA AB AC AB AC AB AC AB AC AD ~ Z AA Z AA Z AE AF C@2 AG AH AI AH C AJ@2
>`.pickRestart({
  A: "bb5/2", B: "bb5@2 d6 c6@2 f5 g5 a5", C: "bb5", D: "bb5@3 ~", E: "~ a5 ~@2", F: "~ bb5 ~@2", G: "~ c6 ~@2",
  H: "~@4 d5 db5 c5 b4", I: "[bb5@5 ~@3]/2", J: "bb4@2 ab4 g4@2 g4 f4@2", K: "eb4/2", L: "~ bb4 c5 bb4",
  M: "eb5 d5 c5 bb4", N: "[eb4@5 ~@3]/2", O: "d5 db5 c5 bb4", P: "bb4!2 bb4@2", Q: "bb4 bb4@2 bb4@5", R: "eb5!2 eb5@2",
  S: "eb5 eb5@2 eb5@5", T: "bb4 bb4@2 bb4@3 c5@2", U: "eb5 ~@3", V: "ab4 g4", W: "ab4 a4",
  X: "eb4 f4 g4 ab4 bb4 c5 d5 eb5", Y: "eb5 ~", Z: "~ ab4@2 ab4", AA: "ab4@3 c5 ~@4", AB: "~ g4@2 g4",
  AC: "g4@3 bb4 ~@4", AD: "ab4 ~@3", AE: "ab4@2 ab4 c5@2 ab4 c5@2", AF: "bb4", AG: "b5", AH: "c6", AI: "db6",
  AJ: "ab5/2",
})).s("gm_clarinet").gain(0.3)

// other · trombone
const trombone = note(`<
  A@2 B C A@2 B D A@2 B C A@2 B C E F E G E F H I A@2 B D A@2 B J K@2 ~@2 K@2 ~@2 L@2 M@2 L N O ~ L@2 M@2 P Q ~ R S@4 T
  ~ U@2 V ~ V ~ V ~ W X Y@5 Z D AA@3 AB AC AD AE AF AG
>`.pickRestart({
  A: "bb2 a2 g2 f2", B: "bb2 f2 g2 a2", C: "bb2 a2 [g2,ab2] gb2 f2 gb2 [g2,ab2] a2 bb2@8", D: "bb2", E: "c3 ~@2 c3",
  F: "f3 ~@2 f3", G: "f3 ~@3", H: "c3 bb2 a2 f2", I: "f2!2 g2 a2", J: "bb2 ab2 g2 f2", K: "eb2/2", L: "bb2 f2 bb2@2",
  M: "eb3 bb2 eb3@2", N: "bb2@4 f2@4 bb2@2 ~ c3@2 ~ d3@2, ~@10 b2@2 ~ db3@2 ~", O: "eb3 ~@3", P: "c3 g2", Q: "ab2 a2",
  R: "eb2 f2 g2 ab2", S: "[[g3,ab3] [e3,f3,gb3] [db3,d3,eb3] [bb2,b2,c3] ab2@16 ~@12, ~@4 a2 ~@27]/2",
  T: "[g3,ab3] [e3,f3,gb3] [db3,d3,eb3] [bb2,b2,c3] ab2@12, ~@4 a2 ~@11", // Abmaj7
  U: "[[g3,ab3] [e3,f3,gb3] [c3,db3,d3,eb3] [a2,bb2,b2] g2@16 ~@12, ~@4 ab2 ~@27]/2", // Abmaj7
  V: "[g3,ab3] [e3,f3,gb3] [c3,db3,d3,eb3] [a2,bb2,b2] g2@12, ~@4 ab2 ~@11", W: "ab2 bb2 c3 db3",
  X: "ab3!2 g3@2 f3@2 eb3@2", Y: "ab2 g2 f2 eb2", Z: "c3!4", AA: "ab2 f2 ab2 f2", AB: "ab2 eb2 ab2 eb2",
  AC: "c3 f2 c3 f2", AD: "bb2 eb2 bb2 eb2", AE: "ab2!3 f2", AF: "ab2 g2 [f2,gb2] e2 eb2 e2 [f2,gb2] g2 ab2@8",
  AG: "eb2 f2@2 ab2@3 ~@2",
})).s("gm_trombone").gain(0.3)

// chords · banjo · "Banjo/Guitar/Piano"
const banjo = note(`<
  A@2 B A@3 B C A@2 B A@3 B D E F E F E F E G A@2 B A@3 B H I ~ I ~ I ~ H ~ J@2 K@2 J@2 ~@2 J@2 K@2 L M H N O P O Q O P
  R S R S R S R S T ~ U@5 V W X@2 Y U Z J AA AB@2
>`.pickRestart({
  A: "[d3,f3,bb3,f4]!4", B: "[d3,f3,bb3,f4]!2 [eb3,f3,a3,c4]!2", C: "[d3,f3,bb3,f4]!2 [d3,f3,bb3,f4]@2",
  D: "[d3,f3,bb3,f4] ~@3", E: "[e3,g3,bb3,c4] ~@2 [e3,g3,bb3,c4]", F: "[f3,a3,c4,f4] ~@2 [f3,a3,c4,f4]",
  G: "[f3,a3,c4,f4]", H: "[d3,f3,ab3,bb3]", I: "[eb3,g3,bb3,eb4]", J: "[d3,f3,ab3,bb3]!4", K: "[eb3,g3,bb3,eb4]!4",
  L: "[eb3,ab3,c4,eb4]!2", M: "[eb3,ab3,c4,eb4] [eb3,a3,c4,gb4]", N: "[eb3,g3,bb3,eb4] [eb3,g3,bb3,db4]",
  O: "~ [eb3,ab3,c4,eb4]@2 [eb3,ab3,c4,eb4]", P: "[eb3,ab3,c4,eb4]@6 [eb3,ab3,c4,eb4] ~@9",
  Q: "[eb3,ab3,c4,eb4]@3 [eb3,ab3,c4,eb4] ~@4", R: "~ [eb3,g3,bb3,db4]@2 [eb3,g3,bb3,db4]",
  S: "[eb3,g3,bb3,db4]@3 [eb3,g3,bb3,db4] ~@4", T: "[eb3,ab3,c4,eb4]", U: "[eb3,ab3,c4,eb4]!4", V: "[eb3,ab3,c4,gb4]!4",
  W: "[db3,f3,ab3,db4]", X: "[db3,f3,ab3,db4]!4", Y: "[d3,f3,ab3,d4]!4", Z: "[f3,a3,c4,eb4]!4",
  AA: "[eb3,g3,bb3,db4]!4", AB: "[[eb3,ab3,c4,eb4]@7 ~]/2",
})).s("gm_banjo").gain(0.3)

stack(clarinet, trombone, banjo)