Strudelify
KeyG majorTempo78 bpm
0:00/0:00
// Try — Asher Book
// 78 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5945800; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(78/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 · "Viool"
const violin = note(`<
  ~@21 A B A C A B A D E F G H I ~@3 J@2 K@2 L@2 ~ M N O A C P Q A R S T U V ~@4 B W B W B
>`.pickRestart({
  A: "d4", B: "g3", C: "g3 a3 b3 a3", D: "g3 a3 b3@2", E: "b4 a4", F: "g4 f#4", G: "e4@5 a4 b4@2",
  H: "c5@2 a4@2 f#4 g4 a4 f#4", I: "g4 ~", J: "[c5 b4!2 a4!2 g4 f#4 g4@3 f#4@2 e4@4]/2",
  K: "[~@2 f#4 g4@2 f#4 g4 a4]/2", L: "[c5 b4!2 a4!2 g4 f#4 g4@5 ~@4]/2", M: "a4 ~ a4 ~ a4 ~ a4 ~ a4@3 ~@5",
  N: "d4 ~ e4 ~ d4 ~ e4@3 ~@7", O: "g3 ~ a3 ~ g3 ~ a3@3 ~@7", P: "d5 ~ e5 ~ d5 ~ e5@3 ~@7",
  Q: "g4 ~ a4 ~ g4 ~ a4@3 ~@7", R: "g4 a4 b4 a4", S: "g5 ~ g5 ~ g5 ~ g5@3 ~@7", T: "c5 ~ c5 ~ c5 ~ c5@3 ~@7",
  U: "g5 a5!2 b5!2 c6!2 d6", V: "d6", W: "a3",
})).s("gm_violin").gain(0.25)

// chords · piano
const piano = note(`<
  A B C D A E C D A E@2 C D F G F H I J K L K M K H K M K H N O P Q N O P Q F G F H F J K L K M K H K M K H K M K H K M
  K H R S T U V
>`.pickRestart({
  A: "[g2,g4,b4,d5]!2 [d2,f#4,a4,d5]!2", B: "[e2,e4,g4,b4]!2 [b2,b3,d#4,g4,a4]!2",
  C: "[c2,c4,e4,g4]!2 [c2,c4,e4,g4,a4]!2", D: "[c2,c4,e4,g4,b4]!2 [d2,d4,g4,b4] [d2,d4,f#4,a4]",
  E: "[e2,e4,g4,b4]!2 [b1,b3,d#4,g4,a4]!2", F: "[a2,e4,a4,c5]!2 [d2,f#4,a4,d5]!2",
  G: "[g2,g4,b4,d5]!2 [f#2,f#4,a4,d5] [e2,e4,g4,b4]", H: "[g2,g4,b4,d5] [g2,g4,b4,d5,f#5] [g2,g4,b4,d5] [g2,g4,a4,d5]",
  I: "[e4,a4,c5] [a2,e4,a4,c5] [d2,f#4,a4,d5]!2", J: "[g2,g4,b4,d5]!2 [b1,b3,d#4,g4,a4]!2",
  K: "[e2,e4,g4,b4]!2 [c2,e4,g4,c5]!2", L: "[d2,d3]!4 [d2,d3]@2 ~@2, [f#4,a4,d5]!2 ~@2",
  M: "[g2,g4,b4,d5]!2 [c2,c4,e4,g4,a4]!2", N: "g2 d3 g3 d3 d2 a2 d3 a2, [g4,b4,d5]!2 [f#4,a4,d5]!2",
  O: "e2 b2 e3 b2 b1 f#2 b2 f#2, [e4,g4,b4]!2 [b3,d#4,g4,a4]!2", // Em Baug
  P: "c2 g2 c3 g2 c2 g2 c3 g2, [c4,e4,g4]!2 [c4,e4,g4,a4]!2", // C Am7
  Q: "c2!4 d2!2 [d2,d4,f#4,a4]@2, [c4,e4,g4,b4]!2 [d4,g4,b4] ~", // D Cmaj7 G
  R: "e2!2 [e2,e4,g4,b4] [e4,g4,b4]@2 [e4,g4,a4] [e4,g4] [e4,g4,a4], [e4,g4,b4]@4 ~@2 e2@9 ~", // Em A7 Em A7 Em
  S: "c2!2 [c2,e4,g4,c5] [e4,g4,c5]@2 [e4,g4,a4] [e4,g4] [e4,g4,a4], ~@6 c2@9 ~", // C A7 Em A7
  T: "g2!2 [g2,d4,g4,b4] [d4,g4,b4]@2 [d4,g4,a4] [d4,g4] [d4,g4,a4], ~@6 g2@9 ~", // G Dsus4 G5 Dsus4
  U: "g2 [g2,d4,f#4,a4] [g2,d4,f#4,b4] [g2,d4,f#4,a4] g2!2 [g2,d4,f#4,g4]@2, ~@2 [d4,f#4,a4] ~", // D Gmaj7 D Gmaj7 D
  V: "~ g4@15, [g2,b3,d4]", // G
})).s("gm_piano").gain(0.25)

stack(violin, piano)