Strudelify
KeyC majorTempo150 bpm
0:00/0:00
// America — Leonard Bernstein
// 150 bpm, 6/8, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/2 at bar 1, 6/8 at bar 48) are rendered on a constant 6/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5934941; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 169 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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 · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@51 A B C D E F G H ~@4 I J ~@2 K L M N ~ O P Q P R S T U V ~@4 I W ~@2 K L X Y ~ O P Q P R S T U Z ~ AA AB AC@2 AD@3
  AE AF AG AH@3 AI AJ@2 AK@3 AE AF AG AL AM AN AM AO AP AQ AR AS ~@4 I J ~@2 K L M N ~ AT AU AV AU D AW F AM AX AR AY AR
  AZ BA BB BC BD BE@2 BF ~
>`.pickRestart({
  A: "g4@3 ~@5 c5@3 ~@5", B: "a4@5 f4@5 ~ c4@5", C: "g4@3 g4 ~ g4 ~@2 c5@3 c5 ~ c5 ~@2", D: "d5@5 b4@5 ~ g4@5",
  E: "a#4@3 a#4 ~ a#4 ~@2 d#5@3 d#5@2 d#5@3", F: "d5@5 a#4@5 ~ f4@5", G: "d#4@3 d#4 ~ d#4 ~@2 g#4@3 g#4 ~ g#4 ~@2",
  H: "g4@5 e5@3 ~@8", I: "e4@3 a4@2 g4@3 e4@3 a4@2 g4@3", J: "e4@3 ~@2 e4 d4 c#4 c4@8", K: "b5@3 a5@5 ~@8",
  L: "a4@3 d5@2 c5@3 a4@3 d5@2 c5@3", M: "a4@3 ~@2 a4 g#4 g4 f4@8", N: "a4@3 ~@13", O: "g5@3 d5@2 b4@3 g4@3 f4@2 d4@3",
  P: "e5@3 ~@5 g5@3 ~@5", Q: "f5@3 ~@2 c5@3 ~@3 a4@3 ~@2", R: "b5@3 ~@2 g5@3 ~@3 d5@3 ~@2", S: "g5@3 ~@5 a#5@3 ~@5",
  T: "a#5@3 ~@2 f5@3 ~@3 d5@3 ~@2", U: "c5@3 ~@5 d#5@3 ~@5", V: "e5@5 c6 ~@10", W: "e4@5 e4@3 c4@8",
  X: "a4@5 a4@3 f4@8", Y: "a5@3 ~@13", Z: "e5@5 c6@3 ~@8", AA: "~@11 c5@2 c#5@3",
  AB: "d#5@3 d#5@2 d#5@3 d#5@3 d#5@2 d#5@3", AC: "d#5@3 f5@2 f#5@3 g#5@3 f#5@2 f5@3",
  AD: "[d#5@3 ~@2 d#5@3 d5@35 d5@2 d#5@3]/3", AE: "f5@3 d5@2 a#4@3 f5@3 d5@2 a#4@3",
  AF: "g#5 a#5@4 g#5 a#5@4 ~ g#5 a#5@4", AG: "a#5@3 g#5@2 f5@3 a#5@3 g#5@2 f5@3",
  AH: "[g5@3 ~@2 g5@3 e5@35 c5@2 d5@3]/3", AI: "e5@3 e5@2 e5@3 e5@3 e5@2 e5@3", AJ: "e5@3 f5@2 g5@3 a5@3 g5@2 f5@3",
  AK: "[e5@3 ~@2 e5@3 d5@35 d5@2 d#5@3]/3", AL: "a#5@3 ~@2 a#5@3 g#5@8", AM: "d#5@3 d#5@2 d#5@3 g#5@3 g#5@2 g#5@3",
  AN: "f5@5 c#5@5 ~ g#4@5", AO: "a#5@5 g5@5 ~ d#5@5", AP: "f#5@3 f#5@2 f#5@3 b5@3 b5@2 b5@3", AQ: "a#5@5 f#5@5 ~ c#5@5",
  AR: "b4@3 b4@2 b4@3 e5@3 e5@2 e5@3", AS: "d#5@5 c6@3 ~@8", AT: "g4@3 b4@2 d5@3 g5@3 b5@2 d5@3",
  AU: "g5@3 g5@2 g5@3 c6@3 c6@2 c6@3", AV: "a5@5 f5@5 ~ c5@5", AW: "a#5@3 a#5@2 a#5@3 d#5@3 d#5@2 d#5@3",
  AX: "g4@5 e5@3 ~@3 g4 g#4 a4 ~ a#4", AY: "c#5@5 a4@5 ~ e4@5", AZ: "f#5@5 d#5@5 ~ b4@5",
  BA: "d5@3 d5@2 d5@3 g5@3 g5@2 g5@3", BB: "f#5@5 d5@5 ~ a4@5", BC: "g4@3 g4@2 g4@3 c5@3 c5@2 c5@3",
  BD: "b4@5 e5@3 ~@3 g#5@2 a5@3", BE: "b5@3 b5@2 b5@3 b5@3 b5@2 b5@3", BF: "b5@3 c#6@2 d6@3 e6@3 d6@2 c#6@3",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet" · soft notes
const trumpet_soft = note("<~@15 A@2 B C@3 D E@3 ~@12 F@5 G H@4 ~@4 I ~@117>".pickRestart({
  A: "[~@8 a3@5 a#3@5 c4@5 d4@5 e4@4]/2", B: "~ f4@5 d4@5 c4@5",
  C: "[a#3@5 a3@5 a#3@5 c4@5 d4@4 c4@5 a#3@5 a3@5 a#3@5 c4@4]/3", D: "~ d4@5 e4@5 f4@5",
  E: "[e4@5 d4@5 c4@5 d4@5 e4@5 f4@5 g4@5 f4@5 e4@5 ~@3]/3", F: "[~@12 g#4@29 g#4@30 g4@4 ~@5]/5",
  G: "~@3 g4 ~ d#4 ~@2", H: "[~ g4@2 ~@2 c5@29 c5@30]/4", I: "~@3 g4 ~ g4 ~@5 c5 ~ c5 ~@2",
})).s("gm_trumpet").gain(0.2)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A@5 B@7 C@6 D@7 E@3 F@3 G@8 H@8 I@2 ~@2 J K L M N O P Q@3 ~@4 R S@2 ~@2 T U ~ V K W M X O Y Z@3 ~@4 R S@2 ~@2 T U AA V
  K W M X O Y AB@3 ~@22 AC AD AC AE AF AG AH AI AJ ~ AJ ~@3 R S@2 ~@2 T U AA V K W M X O ~ AK AH AL AH AM AN AO V AP AQ
  AR@2 AS
>`.pickRestart({
  A: "[~@11 g4@22 a4@7 ~ g4@5 d4@25 g4@9]/5", B: "[c5@10 b4@10 g4@5 d4@25 g4@10 c5@10 b4@9 g4@10 d4@10 g3@10 e4@3]/7",
  C: "[~@2 b3@47 ~@7 c4@10 e4@10 g4@10 b4@10]/6",
  D: "[a#4@10 g4@10 f4@4 d4@25 d5@10 b4@10 g4@10 d#5@7 a#4@7 ~ g4@7 f4@7 e4@4]/7", E: "[c4@26 ~@4 d5@7 b4@4 g4@7]/3",
  F: "[f4@7 ~ e4@3 c4@26 ~@4 c4@7]/3",
  G: "[e4@4 g4@7 ~ f4@7 e4@4 c4@26 ~@3 c4@7 ~ e4@3 g4@7 ~ f4@7 e4@4 c4@26 g#4@10 g#4@10]/8",
  H: "[g#4@9 g#4@10 a#4@10 g#4@10 g4@4 d#4@26 c5@10 g#4@9 f4@10 c5@10 g#4@10 f4@10]/8", I: "[d5@3 c5@29]/2",
  J: "e4@3 e4 ~ e4 ~@2 g4@3 g4 ~ g4 ~@2", K: "f4@5 c4@5 ~ a3@5", L: "g3@3 c4 ~ e4 ~@2 g4@3 e4 ~ g4 ~@2",
  M: "b4@5 g4@5 ~ d4@5", N: "f4@3 f4 ~ f4 ~@2 a4@3 a4 ~ a4 ~@2", O: "a#4@5 f4@5 ~ d4@5",
  P: "c4@3 g#3 ~ c4 ~@2 d#4@3 c4 ~ d#4 ~@2", Q: "[d#4@5 c5@3 ~@3 c4@37]/3", R: "e4@3 a4@2 g4@3 c5@3 a4@2 g4@3",
  S: "[b4@5 b4@3 a4@24]/2", T: "a3@3 d4@2 c4@3 f4@3 d4@2 c4@3", U: "b3@5 b3@3 g3@8", V: "e4@3 e4@2 e4@3 g4@3 g4@2 g4@3",
  W: "g3@3 c4@2 e4@3 g4@3 e4@2 g4@3", X: "d#4@3 d#4@2 d#4@3 g4@3 g4@2 g4@3", Y: "c4@3 g#3@2 c4@3 d#4@3 c4@2 d#4@3",
  Z: "[d4@5 c5 ~@5 c4@37]/3", AA: "g4@3 d5@2 b4@3 g4@3 f4@2 d4@3", AB: "[d4@5 c5@3 ~@3 c4@27 ~@10]/3",
  AC: "c5@3 c5@2 c5@3 d#5@3 d#5@2 d#5@3", AD: "c#5@5 g#4@5 ~ f4@5", AE: "g4@5 d#4@5 ~ a#3@5",
  AF: "d#4@3 d#4@2 d#4@3 f#4@3 f#4@2 f#4@3", AG: "f#4@5 c#4@5 ~ a#3@5", AH: "g#4@3 g#4@2 g#4@3 b4@3 b4@2 b4@3",
  AI: "c4@5 g#4@3 ~@3 g#3@5", AJ: "c4 ~@2 e4 ~ e4 ~@5 e4 ~ e4 ~@2", AK: "e4@5 c5@3 ~@3 e4 f4 f#4 ~ g4",
  AL: "a4@5 e4@5 ~ c#4@5", AM: "d#5@5 b4@5 ~ f#4@5", AN: "b4@3 b4@2 b4@3 d5@3 d5@2 d5@3", AO: "d5@5 a4@5 ~ f#4@5",
  AP: "g#4@5 b4@3 ~@3 g#4@2 a4@3", AQ: "b4@3 b4@2 b4@3 b4@3 b4@2 b4@3", AR: "b4@3 c#5@2 d5@3 e5@3 d5@2 c#5@3",
  AS: "b4@4 e5@3 ~ e4@3 ~@5",
})).s("gm_french_horn").gain(0.45)

// bass · tuba
const bass = note(`<
  A@3 B C@2 D E F G H@4 I J K@2 L M@2 N O@3 P Q ~ R S T ~ U V ~ W ~ X@5 Y Z@4 AA AB AA AB AC AD AC AD AC AD AC AE AA AB
  AA AB AC AD AC AF AG AC AF AH ~ AI AJ AD AJ AD AJ AD AJ AK AA AB AA AB AC AD AC AF AG AC AF AH ~ AL AM AD AM AD AM AD
  AM AK AA AN AO AP AO AQ AR AS AR AS AR AT AU AT AU AV AW AX AY AZ BA AQ BA AP BB BC BB BD BE BF BG BH BI BJ BK BJ AC
  AD AC AF AG BL AG AH ~ AI BM BN BM BN BM BN ~ BO BG BP BG BQ BR BS BT BU BV BW@2 BX
>`.pickRestart({
  A: "[~@11 c2@7 ~ g2@7 g2@11 ~@11]/3", B: "c3 ~ g2 ~", C: "[~@7 c3@7 g2@7 g2@11]/2", D: "~@3 c3", E: "~@3 g2@4 ~@9",
  F: "~@2 c3@7 g2@7", G: "~ g2@11 ~@4", H: "[~@7 c3@4 ~@3 g2@4 ~@11 c3@7 g2@7 ~ g2@11 ~@9]/4",
  I: "~@2 c3@4 ~@3 g2@4 ~@3", J: "~@8 c2@7 ~", K: "[g2@7 g2@11 ~@11 c2@3]/2", L: "~@5 g2@4 ~@7",
  M: "[~@4 c2@7 g2@7 g2@11 ~@3]/2", N: "~@9 c2@4 ~@3", O: "[g2@4 ~@11 c2@7 g2@7 ~ g2@11 ~@3 c2@4]/3", P: "~@4 e2 ~@3",
  Q: "~@3 c2@2 ~ d#2@4 g2@2 ~@2 a#2@2", R: "~@2 c2 ~", S: "~@3 e2@2 ~@9 c2@2", T: "~@2 d#2@3 g2@2 ~@2 a#2@2 ~@5",
  U: "~@3 c2@2 ~@9 e2@2", V: "~@13 g2@2 ~", W: "~@7 c2", X: "[~ e2@2 ~ g2@2 ~@6 f2@29 f2@30 d#2@7 ~@2]/5",
  Y: "~@2 d#2@2 ~@9 d#2@2 ~", Z: "[~ f2@2 ~@2 g#2@29 f2@30]/4", AA: "c3 ~@2 g3 ~ g3 ~@2 c3 ~@2 g3 ~ g3 ~@2",
  AB: "c3 ~@2 g3 ~ c3 ~@2 g3 ~@2 c3 ~ g3 ~@2", AC: "c3 ~@2 g3 ~ g3 ~@2 g2 ~@2 g3 ~ g3 ~@2",
  AD: "c3 ~@2 g3 ~ g2 ~@2 g3 ~@2 c3 ~ g3 ~@2", AE: "c3 ~@2 g3 ~@8 a2@2 b2@2, ~@11 g2@2 ~@3",
  AF: "d3 ~@2 g3 ~ g2 ~@2 g3 ~@2 d3 ~ g3 ~@2", AG: "g2 ~@2 g3 ~ d3 ~@2 g3 ~@2 g2 ~ g3 ~@2", AH: "g2@3 ~@13",
  AI: "g3 ~@2 d3 ~ b2 ~@2 g2 ~@2 f2 ~ d2 ~@2", AJ: "c2 ~@2 g2 ~ c3 ~@2 g3 ~@2 g2 ~ g3 ~@2",
  AK: "c2@5 g2@3 ~@4 a2@2 b2@2, ~@11 g2@2 ~@3", AL: "g3@3 d3@2 b2@3 g2@3 f2@2 d2@3",
  AM: "c2@3 g2@2 c3@3 g3@3 g2@2 g3@3", AN: "c3 ~@2 g3 ~ c3 ~@2 g3 ~@2 c3 ~ a#2 ~@2",
  AO: "g#2@3 d#3@2 d#3@3 c2@3 d#3@2 d#3@3", AP: "g#2@3 d#3@2 c2@3 d#3@3 g#2@2 d#3@3",
  AQ: "g#2@3 f3@2 f2@3 f3@3 g#2@2 f3@3", AR: "f2@3 f3@2 f3@3 g#2@3 f3@2 f3@3", AS: "f2@3 f3@2 g#2@3 f3@3 f2@2 f3@3",
  AT: "a#2@3 g3@2 g2@3 g3@3 a#2@2 g3@3", AU: "g2@3 g3@2 g3@3 a#2@3 g3@2 g3@3", AV: "a#2@3 g3@2 c3@3 g3@3 e3@2 g3@3",
  AW: "c3@3 g3@2 g3@3 e3@3 g3@2 g3@3", AX: "a#2@3 f3@2 d3@3 f3@3 a#2@2 f3@3", AY: "d3@3 f3@2 f3@3 d3@3 f3@2 f3@3",
  AZ: "d3@3 f3@2 a#2@3 f3@3 d3@2 f3@3", BA: "g#2@3 f3@2 f3@3 f2@3 f3@2 f3@3", BB: "d#3@3 d#3@2 d#3@3 g#3@3 g#3@2 g#3@3",
  BC: "f3@5 c#3@5 ~ g#2@5", BD: "a#3@5 g3@5 ~ d#3@5", BE: "f#3@3 f#3@2 f#3@3 b3@3 b3@2 b3@3", BF: "a#3@5 f#3@5 ~ c#3@5",
  BG: "b2@3 b2@2 b2@3 e3@3 e3@2 e3@3", BH: "d#3@5 c4@3 ~@3 g#2@5", BI: "c2@3 ~@5 e2@3 ~@5",
  BJ: "c2 ~@2 g3 ~ e2 ~@2 g3 ~@2 c2 ~ g3 ~@2", BK: "c2 ~@2 g3 ~ g3 ~@2 e2 ~@2 g3 ~ g3 ~@2",
  BL: "d3@3 g3@2 g3@3 g2@3 g3@2 g3@3", BM: "c3@3 ~@5 g2@3 ~@5", BN: "c3@5 g2@5 ~ c3@5", BO: "c2 ~@2 g2 ~ e3 ~@5 c2@5",
  BP: "c#3@5 a2@5 ~ e2@5", BQ: "f#3@5 d#3@5 ~ b2@5", BR: "d3@3 d3@2 d3@3 g3@3 g3@2 g3@3", BS: "f#3@5 d3@5 ~ a2@5",
  BT: "g2@3 g2@2 g2@3 c3@3 c3@2 c3@3", BU: "b2@5 e3@3 ~@3 g#2@2 a2@3", BV: "b2@3 b2@2 b2@3 b2@3 b2@2 b2@3",
  BW: "b2@3 c#3@2 d3@3 e3@3 d3@2 c#3@3", BX: "b2@4 e3@3 ~ e2@3 ~@5",
})).s("gm_tuba").gain(0.45)

stack(trumpet, trumpet_soft, french_horn, bass)

More by Bernstein Leonard