Strudelify

Sing Sing Sing - Piano trumpet

Benny Goodman

KeyA majorTempo170 bpm
0:00/0:00
// Sing Sing Sing - Piano trumpet — Benny Goodman
// 170 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5830234; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 121 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(170/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.

// chords · piano
const piano = note(`<
  A B C D A B E@2 A B C D A B E@2 F G H I J K L M F G H I J K L N O P Q R S T U V F G H I J K L W X@2 Y Z AA AB AA AC AD
  AE AF AG AH AI AJ AK AL AM@2 AN A B C D A B E@2 A B C D A B E@2 AO AP AQ AR AS AT AU AV AW F G H I J K L M F G H I J K
  L AX AY AZ AY AZ BA BB BC BD BC BD BE BF
>`.pickRestart({
  A: "[e2,e3] ~@3 [g2,g3] ~@3", B: "[a2,a3]@2 ~@2 [g2,g3]@2 ~@2 [a2,a3]@2 ~@2 [a#2,a#3]@3 [b2,b3]",
  C: "~@3 [e3,e4] ~@12", D: "[f#2,f#3]@3 [g2,g3] [a2,a3]@3 [a#2,a#3] [b2,b3]@3 [a2,a3] [g2,g3]@3 [f#2,f#3]",
  E: "[~@3 [e3,e4] ~@11 [e3,e4]@4 [e3,e4] [d3,d4]@4 [c3,c4]@4 [b2,b3]@4]/2", // E D C B
  F: "e2@2 ~ [g3,e4]!2 ~@3 f#2@2 ~ [a3,d#4]!2 ~@3, ~@2 e2 ~@3 f#2 ~", // C Adim
  G: "g2@2 ~ [g3,e4]!2 ~@3 f#2@2 ~ [a3,d#4]!2 ~@3, ~@2 g2 ~@3 b2 ~", H: "[e2,g3,e4] ~ e2 ~ f#2 ~ f#2 ~",
  I: "g2@2 ~@2 g2@2 ~@2 f#2@2 ~ [a3,d#4] [b2,a3,d#4]@3 [a3,d#4]", // Adim B7 Adim
  J: "[g3,e4]@4 [g3,e4]@4 b2@2 ~@2 b2@2 ~ [g3,e4], e2 ~ e2 ~ [a3,d#4]@3 ~", // C Adim
  K: "e2@2 ~ [g3,e4] g2@2 ~ [g3,e4] b2@2 ~@2 b2@2 ~ [g3,e4], ~@4 [a3,d#4]@3 ~", // C Adim
  L: "e2@2 ~ b3 e2@2 ~@2 [a2,b3]@3 a3 [a2,a#3]@3 b3, ~@4 a3 ~@11", // Asus2 A#maj7
  M: "b2@2 ~ g#3 [f#2,g3]@3 e3 [e2,b2]@3 e3 [c3,g3]@3 a3, a3 ~@15", // Gmaj7 E5 C5
  N: "b2@2 ~ g#3 [b2,g3]@3 e3 e2@2 ~@2 e2@2 ~@2, a3 ~@15", O: "g2@2 ~@2 [g2,g3]@3 g3 [a2,a3]@3 b3 b2@2 ~ g3",
  P: "g2@2 ~ b3 d3@2 ~ b3 c3@2 ~@2 b2@2 ~@2, ~ a3", Q: "a3@4 a3@4 [a2,a3]@3 a3 d2@2 ~ d3, a2 ~ g#2 ~@5",
  R: "[g2,d3]@3 d3 d2@2 ~@2 e2@2 ~@2 f#2@2 ~@2, ~@7 d3@9", S: "g2@2 ~@2 [d2,g3]@3 g3 [d#2,a3]@3 b3 e2@2 ~ g3",
  T: "g2@2 ~ b3 b2@2 ~ b3 a2@2 ~@2 d2@2 ~@2, ~ a3", U: "g2 ~ g2 ~ d2 ~ d2 ~, g3 f#3", V: "g2 ~ g2 ~ b1 ~ b1 ~, d3 b2",
  W: "b2@2 ~ g#3 [d#3,g3]@3 e3 e3@2 ~@2 e3@4, a3 ~@11 b2@2 ~@2", // D#
  X: "[[a2,a3]@3 b3 [e3,c4]@3 d4 [c3,e4]@3 c4 [a2,e4]@3 ~ b2@2 ~ c4 [b2,d#4]@3 ~ e3@2 ~ a3 [g#2,d4]@3 ~, ~@15 d#4@4 ~@4 d4@4 ~@5]/2", // A C A5 B G#dim
  Y: "[a2,c3]@3 e3 e3@4 c3@2 ~@2 [a2,e3]@2 ~@2", Z: "[b2,d#3]@2 ~ d3 e3@2 ~ c3 a2@3 ~ e3@2 ~@2",
  AA: "a2 ~ a2 ~ b2 ~ b2 ~", AB: "c3 ~ c3 ~ b2 ~ b2 ~", AC: "c3 ~ b2 ~ a2 ~ e3 ~", AD: "a2 ~ e3 ~ c3 ~ a2 ~",
  AE: "b2@2 ~@2 b2@2 ~@2 e3@2 ~@2 g#2@2 ~ a3", AF: "c4@4 c4@4 [c3,e4]@3 c4 [a2,a3]@3 e3, a2 ~ e3 ~@5",
  AG: "[b2,g#3]@3 e3 [e3,g#3]@3 ~ a2@2 ~@2 e3@2 ~@2, ~@7 a3@9", AH: "a2@2 ~ a4 a2@2 ~ e4 b2@2 ~ d#4 b2@2 ~ c4",
  AI: "[c3,a3]@3 e3 [c3,g#3]@3 ~ b2@2 ~ a3 [b2,c4]@3 d4, ~@7 a3@4 ~@5", // F Fm Cmaj7
  AJ: "[a2,c4]@3 a3 [a2,c4]@3 a3 [b2,d#4]@3 d4 [b2,c4]@3 a3", // Am B Cmaj7
  AK: "[c3,c4]@3 a3 c4 a3 ~ c4 [a2,d#4]@3 d4 [e3,c4]@3 g#3, ~@2 b2 ~@5", // C Adim C
  AL: "a2@2 ~@2 a2@2 ~@2 b2@2 ~@2 b2@2 ~ g#3, a3@6 ~ g#3@8 ~",
  AM: "[[c3,a3] ~ c3 ~ b2 ~ b2 ~ a2 ~ a2 ~ b2 ~ d3 ~, ~@3 a3@2 ~@2 g#3@8 a3@4 ~@13]/2", // F
  AN: "e3@4 e3@3 a2 ~@3 [a2,a3] [g2,g3]@3 [f#2,f#3]", AO: "e3@4 g3@3 e3 a3@3 e3 ~@3 a#3",
  AP: "e3@3 ~ b3@3 e3 ~@3 d4 b3@3 g3", AQ: "e3@3 d3 e3@3 d3 ~@3 g3 ~@3 b3", AR: "[e3,e4]@4 g3@3 e3 a3@3 e3 ~@3 a#3",
  AS: "e3@3 ~ b3@3 e3 ~@3 d4 e3@3 ~", AT: "e4@3 e3 ~@3 [g3,g4] ~@3 [e3,e4] ~@3 b3",
  AU: "a#3@3 g3 e3@3 ~ d4@3 g3 e3@3 ~", AV: "e4@3 d4 ~@3 b3 ~@3 a#3 ~@3 g3", AW: "[e3,e4]@3 ~ b3@3 ~ a#3@3 ~ g3@3 ~",
  AX: "b2@2 ~ g#3 [b2,g3]@3 e3 e2@2 ~@2 g3 a3 ~ b3, a3 ~@11 g2@2 ~@2", // Em
  AY: "[a2,a3]@3 e3 [a2,a3]@3 ~ [e2,g#3]@3 e3 [f#2,g#3]@3 ~", // A E F#sus2
  AZ: "[f#2,a3]@3 e3 [f#2,a3]@3 g#3 g#2@2 ~ g#3 g#2@2 ~ g#3", BA: "[a2,e3]@3 ~ [a2,a3]@3 e3 [e2,c4]@3 a3 [f#2,d4]@3 a3",
  BB: "[f#2,e4]@3 a3 [f#2,d4]@3 a3 [g#2,c4]@3 e3 [g#2,a3]@3 e3", BC: "[a2,f#3,a3,c4] ~ a2 ~ [e2,e3,g#3,b3] ~ f#2 ~",
  BD: "[f#2,f#3,a3,c4]@2 ~@2 f#2@2 ~ [e3,g#3,b3] g#2@2 ~ [e3,g#3,b3] g#2@2 ~ [e3,g#3,b3]", // F#dim E
  BE: "a2@2 ~@2 a2@2 ~@2 e2@2 ~@3 f#4 ~ g#4, ~@2 e4@4 g#2 ~", BF: "[a2,a4]@3 e3 [a2,a3]@3 ~@9",
})).s("gm_piano").gain(0.3)

stack(piano)

More by Benny Goodman