Strudelify

He's a Pirate

Hans Zimmermann

KeyF majorTempo180 bpm
0:00/0:00
// He's a Pirate — Hans Zimmermann
// 180 bpm, 6/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4406831; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/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.

// melody · violin · "Violon"
const violin = note(`<
  A B A B A B A C D E F G H I F J K L M N O P Q R S T U V W X U Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AS AT AU AV AO AP AW AR AS AT AU AX AY AZ BA BB BC BD BE BF BG BH BI BJ BA BK BL BM AO AP AQ AR AS AT AU AV AO AP
  AW AR AS AT AU BN BO
>`.pickRestart({
  A: "d4@5 d4@3 d4@5 d4@3", B: "d4@5 d4@3 d4@3 d4@2 d4@3", C: "d4@5 d4@5 ~ a3@2 c4@3", D: "d4@5 d4@5 ~ [c4,e4]@5",
  E: "[bb3,f4]@5 [bb3,f4]@5 ~ [bb3,f4]@2 [bb3,g4]@3", F: "[a3,e4]@5 [a3,e4]@5 ~ d4@2 c4@3", G: "c4 ~@2 d4@8 a3@2 c4@3",
  H: "[bb3,d4]@5 [bb3,d4]@5 ~ e4@5", I: "f4@5 f4@5 ~ f4@2 g4@3", J: "d4@11 a3@2 c4@3", K: "d4@5 d4@5 ~ f4@5",
  L: "[g3,g4]@5 [g3,g4]@5 ~ [g3,g4]@2 [g3,a4]@3", M: "[g3,bb4]@5 [g3,bb4]@5 ~ a4@2 g4@3", N: "a4@3 d5@5 ~@3 d4@2 e4@3",
  O: "[bb3,f4]@5 [bb3,f4]@5 ~ g4@5", P: "[d4,f4,a4]@3 d4@5 ~@3 d4@2 f4@3", Q: "[db4,e4]@5 [db4,e4]@5 ~ f4@2 d4@3",
  R: "e4@11 a4@2 c5@3", S: "d5@5 d5@5 ~ [c5,e5]@5", T: "[bb4,f5]@5 [bb4,f5]@5 ~ [bb4,f5]@2 g5@3",
  U: "[a4,e5]@5 [a4,e5]@5 ~ d5@2 c5@3", V: "c5@3 d5@8 a4@2 c5@3", W: "[bb4,d5]@5 [bb4,d5]@5 ~ e5@5",
  X: "[f4,f5]@5 f5@5 ~ f5@2 g5@3", Y: "d5@11 a4@2 c5@3, d4 ~", Z: "[d4,d5]@5 [d4,d5]@5 ~ f5@5",
  AA: "[g4,g5]@5 [g4,g5]@5 ~ g5@2 a5@3", AB: "[g5,bb5]@5 [g5,bb5]@3 ~@3 a5@2 g5@3", AC: "[f5,a5]@3 d5@5 ~@3 d5@2 e5@3",
  AD: "[bb4,f5]@5 [bb4,f5]@5 ~ g5@5", AE: "[f5,a5]@3 d5@5 ~@3 d5@2 f5@3", AF: "[a4,e5]@5 d5@5 ~ c5@5",
  AG: "d5@5 d5@5 ~ e5@5", AH: "f5@5 f5@5 ~ g5@5", AI: "a5@3 f5@3 ~@5 f5@2 d5@3", AJ: "a4",
  AK: "bb5@3 g5@3 ~@5 g5@2 d5@3", AL: "bb4", AM: "a4 b4", AN: "db5 e5", AO: "[f5,a5]@3 d5@2 d5@3 d5@3 d5@2 d5@3",
  AP: "[g5,bb5]@3 d5@2 d5@3 d5@3 d5@2 d5@3", AQ: "[f5,a5]@5 [f5,a5]@5 ~ [f5,a5]@5", AR: "[e5,a5]@3 [e5,g5]@5 ~@8",
  AS: "[bb4,d5,g5] ~", AT: "[a4,f5] ~", AU: "[db5,e5]@5 [d5,f5]@5 ~ [db5,e5]@5", AV: "[d4,d5]@5 ~@3 d5@3 e5@2 f5@3",
  AW: "[f5,a5]@5 [f5,a5]@5 ~ [f5,c6]@3 ~@2", AX: "[d4,d5]@5 ~@6 d5@2 e5@3", AY: "f5@8 f5@4 g5 a5@3",
  AZ: "g5@5 f5@5 ~ e5@5", BA: "f5@5 g5@5 ~ a5@5", BB: "g5@3 c5@5 ~@3 f5@2 g5@3", BC: "a5@12 g5 f5@3",
  BD: "e5@5 f5@5 ~ e5@5", BE: "d5@11 e5@2 c5@3", BF: "d5@11 d5@2 e5@3", BG: "f5@5 e5@5 ~ f5@5", BH: "g5@5 f5@5 ~ g5@5",
  BI: "a5@5 g5@5 ~ f5@5", BJ: "d5@3 d6@3 ~@5 d5@2 e5@3", BK: "bb5@5 d5@5 ~ g5@5", BL: "f5@11 g5@2 e5@3",
  BM: "d5@5 e5@5 ~ db5@5", BN: "[d4,d5]@8 [d4,d5]@3 [d4,d5]@2 [d4,d5]@3", BO: "d4",
})).s("gm_violin").gain(0.4)

stack(violin)