Strudelify
0:00/0:00
// claras theme — Murray GoldPiano Duet:Jimmi ThøgersenString Quintet:QtheQuartermasterMan
// 70 bpm, 6/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2, 6/8 at bar 14) are rendered on a constant 6/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/121646; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 64 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/3)

// 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
const violin = note("<~@36 A@2 B@2 C@2 D@2 E@2 F@2 G H I J K@2 L@2 G H I M N O P@2>".pickRestart({
  A: "[b5@4 b5!2 b5@10 b5 c6 d6@2 c6@3 b5]/2", B: "[c6@4 c6!2 c6@10 c6 d6 e6@2 d6@3 c6]/2",
  C: "[d6 b5 g5@14 a5 b5 c6@2 b5@3 a5]/2", D: "b5/2", E: "[g4@4 g4!2 g4@10 a4 b4 c5@2 b4@2 a4@2]/2",
  F: "[f#4@16 g4!2 b4@2 a4@2 g4@2]/2", G: "e4@2 c5 b4@2 a4", H: "g4@4 g4 a4 b4@2 a4@2 g4@2", I: "d4 e4", J: "f4!2",
  K: "[g4@4 g4@2 g4@10 a4 b4 c5@2 b4@2 a4@2]/2", L: "[f#4@16 g4 a4 b4@2 a4@2 g4@2]/2", M: "f4 ~", N: "b4", O: "a4 b4",
  P: "g4/2",
})).s("gm_violin").gain(0.25)

// other · violin · soft notes
const violin_soft = note("<~ A@8 ~@4 B C D@3 E F@2 G H@4 ~@2 I@2 J@2 K L I@2 ~@23 M ~@4>".pickRestart({
  A: "[~@7 c5@185]/8", B: "~@3 f5", C: "~ f5@3 ~ f5@17 g5@2",
  D: "[a5@2 b5@3 a5@3 ~ g5@3 e5@28 f5@2 g5@2 a5@3 g5@3 ~ f5@3 d5@7 b5@3 ~ a5@7]/3",
  E: "g5@3 f5@7 f5@2 g5@2 a5@3 g5@3 ~ f5@3", F: "[c5@42 g5@3 ~ g5@2]/2", G: "~ g5@3 ~ g5@17 g5@2",
  H: "[a5@2 b5@3 a5@3 ~ g5@3 a5@3 ~ a5@3 a5@3 ~ a5@17 a5@2 b5@2 c6@3 b5@3 ~ a5@3 b5@3 ~ d5@38]/4", I: "d4/2",
  J: "[e4@3 e4]/2", K: "f4", L: "e4", M: "~ f4",
})).s("gm_violin").gain(0.15)

// other · viola
const viola = note("<~@36 A@2 B@2 C@2 D@2 E@2 F G H I J K L M N O P Q R ~@5>".pickRestart({
  A: "[b3@4 b3!2 b3@10 b3 c4 d4@2 c4@3 b3]/2", B: "[c4@4 c4!2 c4@10 c4 d4 e4@2 d4@3 c4]/2",
  C: "[d4 b3 g3@14 a3 b3 c4@2 b3@3 a3]/2", D: "b3/2", E: "[e4@4 e4@2 e4@10 f#4 g4 a4@2 g4@2 f#4@2]/2", F: "d4",
  G: "[c4,e4,c5]@4 e4 f#4 g4@2 f#4@2 e4@2", H: "c4@2 a4 g4@2 f#4", I: "e4@4 e4 f#4 g4@2 f#4@2 e4@2", J: "b3 c4",
  K: "c#4 d4", L: "e4@2 e4 e4@3", M: "~@4 f#4 g4 a4@2 g4@2 f#4@2, e4!2", N: "d4!2",
  O: "[e4,c5]@4 e4 f#4 g4@2 f#4@2 e4@2, c4!2", P: "~@2 a4 g4@2 f#4, c4!2", Q: "e4@4 e4 f#4 g4@2 f#4@2 e4@2, c4!2",
  R: "a3 b3@2 c4@3",
})).s("gm_viola").gain(0.4)

// other · viola · soft notes
const viola_soft = note("<~@13 A@6 B@8 ~ C@2 D@2 E@2 C@2 ~@23 F G@2 H@2>".pickRestart({
  A: "[~@6 a4@7 f4@7 g4@14 f4@14]/6", B: "[e4@14 g3@14 e3@14 g3@7 a3@15]/8", C: "g3/2", D: "[g3@3 g3]/2", E: "g3",
  F: "c#4 d4", G: "[b4@4 b4@2 b4@10 b4 c5 d5@2 c5@2 b4@2]/2", H: "g4/2",
})).s("gm_viola").gain(0.15)

// other · cello · "Violoncello"
const cello = note("<~@20 A@7 ~ B@2 C@2 D@2 E@2 F@2 G@2 H I J@2 K@2 L M@3 N@2 K@2 L M@3 O@2 P@2 Q@2>".pickRestart({
  A: "[~@6 d5@7 d5@7 c5@7 c5@7 [b4,d5]@7 [d4,f#4]@15, ~@3 b4@7 a4@7 ~@11]/7", // Bm D
  B: "[b3@4 b3@2 b3@10 b3 c4 d4@2 c4@2 b3@2]/2", C: "[c4@4 c4@2 c4@10 c4 d4 e4@2 d4@2 c4@2]/2",
  D: "[d4 b3 g3@14 a3 b3 c4@2 b3@3 a3]/2", E: "[b3 d4@3]/2", F: "[d4@2 b3 d4, g3]/2", G: "[e4@3 e4]/2", H: "f4",
  I: "e4", J: "d4/2", K: "c3 g3 c4 g3 c4 g3 c3 g3 c4 g3 c4 g3", L: "b2 f#3 b3 f#3 b3 f#3 b2 f#3 b3 f#3 b3 f#3",
  M: "a2 e3 a3 e3 a3 e3 a2 e3 a3 e3 a3 e3", N: "g2 d3 g3 d3 g3 d3 g2 d3 g3 d3 g3 d3", O: "g2!2",
  P: "[d4@4 d4@2 d4@10 d4 e4 f4@2 e4@2 d4@2]/2", Q: "b3/2",
})).s("gm_cello").gain(0.2)

// bass · contrabass
const bass = note("<~@44 A@2 B@2 C D E F G@2 B@2 C D E ~@5>".pickRestart({
  A: "[g2@4 g2!2 g2@10 a2 b2 c3@2 b2@2 a2@2]/2", B: "[f#2@16 g2 a2 b2@2 a2@2 g2@2]/2", C: "e2@2 c3 b2@2 a2",
  D: "g2@4 g2 a2 b2@2 a2@2 g2@2", E: "d2 e2", F: "f2!2", G: "[g2@4 g2@2 g2@10 a2 b2 c3@2 b2@2 a2@2]/2",
})).s("gm_contrabass").gain(0.4)

// bass · contrabass · soft notes
const bass_soft = note("<~@20 A@6 ~@12 B@6 ~@15 C D@2 B@2>".pickRestart({
  A: "[~@3 g2@7 g2@7 g2@7]/6", B: "g2/2", C: "f2!2", D: "g2",
})).s("gm_contrabass").gain(0.15)

// bass · acoustic bass
const bass_2 = note("<~@28 [g1 ~@5] ~@7 [g1 ~@5] ~@27>").s("gm_acoustic_bass").gain(0.15)

stack(violin, violin_soft, viola, viola_soft, cello, bass, bass_soft, bass_2)