Strudelify
KeyB♭ majorTempo160 bpm
0:00/0:00
// Joy To The World — Vorspiel: Aaron RogersMelodie/Begleitung: Georg Fr. Händel
// 160 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6401832; 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(160/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 · trumpet · "Trompete in B"
const trumpet = note(`<
  A B@2 C D E@2 F G H I J K@2 A L M N O P Q@2 R S R T U V W X Y Z AA A B@2 C D E@2 F G H I AB AC@2 ~ AD AE AA AF O AG
  AH@2 AI AJ AI AK AL AM AN AO AP AQ AA AR ~ AS AT AU AV AW AX AY AZ BA AZ BB BC BD BE BF BG BH BI BJ
>`.pickRestart({
  A: "bb4@4 a4@3 g4", B: "f4/2", C: "~ f4 bb4 d5", D: "c5@4 c5@3 bb4, e4", E: "g4/2", F: "~ [e4,c5]",
  G: "db5@4 c5@3 bb4, ab4", H: "ab4 [ab4,db5]", I: "eb5@4 db5@3 c5, bb4", J: "bb4 [bb4,eb5]", K: "[bb4 a4, f5]/2",
  L: "f4@3 eb4", M: "d4 c4", N: "bb3@3 f4", O: "[eb4,g4]@3 [eb4,g4]", P: "[f4,a4]@3 [f4,a4]", Q: "[[d4,bb4]@7 bb4]/2",
  R: "bb4 a4 g4 f4", S: "f4@3 eb4 d4@2 bb4@2", T: "f4@3 eb4 d4@2 d4@2", U: "d4@2 d4@2 d4@2 d4 eb4", V: "f4@6 eb4 d4",
  W: "c4@2 c4@2 c4@2 c4 d4", X: "eb4@6 d4 c4", Y: "bb3 bb4@2 g4", Z: "f4@3 eb4 d4@2 [bb3,eb4]@2",
  AA: "[bb3,d4] [a3,c4]", AB: "bb4@4 eb5!2 eb5@2, ~ bb4", AC: "[bb4,f5]/2", AD: "[d4,bb4]@4 [f4,a4]@3 [eb4,g4]",
  AE: "[d4,f4]@3 [c4,eb4]", AF: "bb3@2 ~ [d4,f4]", AG: "[c4,a4]@3 [c4,a4]", AH: "[[d4,bb4]@6 ~ [d4,bb4]]/2",
  AI: "[d4,bb4] [f4,a4] [eb4,g4] [d4,f4]", AJ: "[d4,f4]@3 [c4,eb4] [bb3,d4]@2 [d4,bb4]@2",
  AK: "[d4,f4]@3 [c4,eb4] [bb3,d4]@2 [bb3,d4]@2", AL: "[bb3,d4]@2 [bb3,d4]@2 [bb3,d4]@2 [bb3,d4] [c4,eb4]",
  AM: "[d4,f4]@6 [c4,eb4] [bb3,d4]", AN: "[a3,c4]@2 [a3,c4]@2 [a3,c4]@2 [a3,c4] [bb3,d4]",
  AO: "[c4,eb4]@6 [bb3,d4] [a3,c4]", AP: "bb3 [d4,bb4]@2 [eb4,g4]", AQ: "[d4,f4]@3 [c4,eb4] [bb3,d4]@2 [c4,eb4]@2",
  AR: "bb3 ~", AS: "bb4@4 [a4,bb4]@3 [g4,bb4]", AT: "[f4,d5]@3 [eb4,c5]", AU: "bb4 f4 g4 a4, d4 c4",
  AV: "[bb3,bb4]@3 f4", AW: "~ eb5 ~ g4, g4@3 ~, ~ eb5", AX: "~ c5 ~ a4, a4@3 ~, ~ c5", AY: "[bb4,d5]@3 [bb4,d5]",
  AZ: "[bb4,d5] [a4,f5] [g4,eb5] [f4,d5]", BA: "[f4,d5]@3 [eb4,c5] [d4,bb4]@2 [bb4,d5]@2",
  BB: "[f4,d5]@3 [eb4,c5] [d4,bb4]@2 [d4,bb4]@2", BC: "[d4,bb4]@2 [d4,bb4]@2 [d4,bb4]@2 [d4,bb4] [eb4,c5]",
  BD: "[f4,d5]@6 [eb4,c5] [d4,bb4]", BE: "[c4,a4]@2 [c4,a4]@2 [c4,a4]@2 [c4,a4] [d4,bb4]",
  BF: "[eb4,c5]@6 [d4,bb4] [c4,a4]", BG: "[bb3,bb4] [bb4,d5]@2 [g4,eb5]",
  BH: "[f4,d5]@3 [eb4,c5] [d4,bb4]@2 [eb4,c5]@2", BI: "[d4,bb4] [c4,a4]", BJ: "[bb3,f4] ~",
})).s("gm_trumpet").gain(0.3)

stack(trumpet)