Strudelify

Gang Plank Galleon

Kraken8888

KeyF majorTempo120 bpm
0:00/0:00
// Gang Plank Galleon — Kraken8888
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 at bar 1, 4/4 at bar 1, 5/4 at bar 2, 4/4 at bar 3, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5292224; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · cello · "Violoncello"
const cello = note(`<
  A B@2 C D E F G H I J K@2 L M N O P Q R S T U R S T U R S T R L V W L R S T R@2 S T X R S T Y Z AA AB AC Z AA AD AE AF
  AG AH AI AJ AK AL AM AN AO AP AQ AR@2 AS AT AU AV AW AX AY AZ BA@2 BB T R BC BB T R BC BB T R BD
>`.pickRestart({
  A: "~@2 bb2@2 c3@2 f2!2", B: "[f2 g3@4 g2 f3!2]/2", C: "f3@2 f3!2 bb3@2 bb3@2", D: "bb3@2 c4 bb3 f3@2 f3@2",
  E: "f3@2 f3!2 bb3@2 c4@2", F: "f3!2 f3@2 f2@4", G: "g3@2 ~@12 g3 ~", H: "a3@2 ~@12 a3 ~", I: "bb3@2 ~@12 bb3 ~",
  J: "b3@2 ~@4 b3 ~ c4@4 db4@4", K: "d2 d3 d2 d3 d2 d3 d2 d3", L: "d3!4", M: "d3@2 d3@2 d3!4",
  N: "d3 ~ d3!2 d3@2 d3!2 d3@2 d3!5 ~", O: "bb2 ~ bb2!2 bb2@2 bb2!2 bb2@2 bb2!5 ~",
  P: "c3 ~ c3!2 c3@2 c3!2 c3@2 c3!5 ~", Q: "d3 ~ d3!2 d3@2 d3!2 f3@2 e3@2 d3@2 c3@2",
  R: "d3 ~ d3 ~@3 d3 ~@3 d3 ~@3 d3 ~", S: "bb2 ~ bb2 ~@3 bb2 ~@3 bb2 ~@3 bb2 ~", T: "c3 ~ c3 ~@3 c3 ~@3 c3 ~@3 c3 ~",
  U: "d3!2 a2 d3!2 a2 d3 a2", V: "bb2!4", W: "c3!4", X: "d3 ~ d3 ~@3 d3 ~ f3 ~ e3 ~ d3@3 ~",
  Y: "d3 ~ d3 ~@3 a2 ~ d3 ~ a2 ~ d3@3 ~", Z: "bb2@2 bb2!6", AA: "a2@2 a2!6", AB: "d3@2 d3!6", AC: "b2@2 b2!6",
  AD: "c3@2 c3!6", AE: "g2@2 g2!6", AF: "d3@8 d3 e3 d3 e3 d3 e3 d3 e3", AG: "d3@8 d3 e3@2 f3@2 e3@2 d3",
  AH: "c3@2 d3 c3@2 d3@2 c3 bb2@2 c3 bb2 c3@2 bb2 a2", AI: "g2@2 a2 g2 a2!2 f2 d2 e2@3 d2 d2@4",
  AJ: "~@4 c3 d3@2 e3@2 f3@2 e3 d3 c3 a2 c3", AK: "d3 e3 f3 g3 f3 e3 f3 e3 d3 e3 f3 g3 f3 g3 a3 f3",
  AL: "c4@6 bb3 c4 a3@6 g3@2", AM: "f3@2 g3 a3@9 ~@2 f3 e3", AN: "d3 c3 d3 e3 f3 e3 d3 e3 f3@2 a3@2 f3@2 f3 e3",
  AO: "d3 c3 d3 e3 f3 e3 d3 e3 f3@2 a3@2 f3@2 a3 g3", AP: "f3 e3 f3 g3 a3 g3 f3 g3 a3@2 c4@2 a3@2 a3 g3",
  AQ: "f3 e3 f3 g3 a3 g3 f3 g3 a3@2 db4@2 d4 e4 d4 e4", AR: "[d4@8 d4 e4@2 f4@2 e4@2 d4@5 a3@4 g3@4 f3@4]/2",
  AS: "g3@6 f3 g3 a3@7 c4", AT: "d4", AU: "a3@2 a3 g3 a3@2 a3 g3", AV: "a3 g3 a3 g3 a3 c4@3",
  AW: "f3@2 f3 e3 f3@2 f3 e3", AX: "f3 e3 f3 e3 f3 c4@3", AY: "g3@2 g3 f3 g3@2 g3 f3", AZ: "g3 f3 g3 f3 a3@2 a3@2",
  BA: "a3/2", BB: "e3 ~ e3 ~@3 e3 ~@3 e3 ~@3 e3 ~", BC: "e3!2 b3 e4!2 b3 e3@2", BD: "e3@4 e3@4 e2@3 ~@5",
})).s("gm_cello").gain(0.4)

stack(cello)