Strudelify
KeyB♭ majorTempo95 bpm
0:00/0:00
// high — Lighthouse Family
// 95 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3397916; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(95/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.

// other · violin · "Oberstimme"
const violin = note(`<
  ~@6 A B C D E@2 F G H I J K L M@2 N O P Q R@2 S T U V W ~@6 A B C D E@2 F G H I J K L M@2 N O P Q R@2 S T U V X Y Z AA
  N AB AC AD AE T
>`.pickRestart({
  A: "~@14 c5 d5", B: "eb5@2 d5 c5", C: "bb4 d5", D: "g5@8 a4@6 g4 a4", E: "[bb4 d5@2 d5@2 bb4@2 g4]/2",
  F: "f4@8 bb4@6 a4 bb4", G: "f4 f5 eb5 d5", H: "g4!2", I: "g4 eb4@3", J: "f4 ab4", K: "bb4@3 eb5", L: "ab4@3 c5",
  M: "[eb5@4 bb4@2 gb4 ab4@9]/2", N: "eb5", O: "f5 c5", P: "eb5@4 eb5@4 f5@6 eb5 f5", Q: "bb4@3 c5",
  R: "[f4 f5 eb5 d5@2 g5@2 d5]/2", S: "eb5 f5 eb5 d5", T: "bb4", U: "bb4 a4 c5 f5", V: "g5", W: "g5@2 f5 eb5",
  X: "g4@2 a4 bb4", Y: "d5", Z: "c5", AA: "g4 bb4 g5@2", AB: "d5 bb4@3", AC: "f5!2", AD: "g5@3 f5", AE: "eb5@3 d5",
})).s("gm_violin").gain(0.18)

// chords · piano · "Klavier"
const piano = note(`<
  A B C D A B C D A B C E A B C D F G F G F G F H I J C K A L C D A B C D A B C D A B C E A B C D F G F G F G F H I J C
  K A L C D I J C K A L C D I
>`.pickRestart({
  A: "[bb2,bb3,f4,bb4,d5]@15 ~", B: "[f2,f3,f4,a4,c5]@15 ~", C: "[g2,g3,d4,g4,bb4]@15 ~",
  D: "[eb2,eb3,eb4,g4,bb4]@15 ~", E: "[g2,g3,eb4,g4,bb4]@15 ~", F: "[f2,f3,c4,eb4,f4,ab4]@15 ~",
  G: "[eb2,eb3,bb3,eb4,f4,gb4]@15 ~", H: "[g2,g3,eb4,g4,bb4] [a2,a3,c4,f4,a4]", I: "[bb2,bb3,d4,f4,bb4]@15 ~",
  J: "[f2,f3,c4,f4,a4]@15 ~", K: "[eb4,g4,bb4] [eb4,f4,g4,bb4], [eb2,eb3]@15 ~", L: "[a2,a3,c4,f4,a4]@15 ~",
})).s("gm_piano").gain(0.26)

// other · cello · "Violoncello"
const cello = note("<~@23 A B C D E F G H@2 ~@23 A B C D E F G H I B C D E F G H J H>".pickRestart({
  A: "~@7 bb2", B: "f3@3 f3", C: "f3@3 a3", D: "g3", E: "g3 f3", F: "d3@2 f3 g3", G: "a3 f3@2 a3", H: "bb3",
  I: "bb3@6 ~ g3", J: "bb3@3 a3",
})).s("gm_cello").gain(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D A B C D A B C D A B C D B D B D B D B E A B C D A F C D A B C D A B C D A B C D A B C D B D B D B D B E A B C
  D A F C D A B C D A F C D G
>`.pickRestart({
  A: "bb1!8", B: "f1!8", C: "g1!8", D: "eb2!8", E: "g1!4 a1!4", F: "a1!8", G: "bb1",
})).s("gm_electric_bass_finger").gain(0.13)

stack(violin, piano, cello, bass)