Strudelify

Canon Rock

Johann Rockbel

KeyD majorTempo74 bpm
0:00/0:00
// Canon Rock — Johann Rockbel
// 74 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/2476361; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 37 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(74/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// 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("<~@12 A B C D E F G H I J@2 K L B C M N O C P L Q C R S>".pickRestart({
  A: "d4 e4 f#4@2 e4@4", B: "d4!2 f#4@2", C: "b4!4 a4!4", D: "b4!2 [g4,b4]!2 [g4,c#5] [a4,c#5]!3", E: "d5 f#5 e5@2",
  F: "d5!2 f#5@2", G: "b5!4 a5!4", H: "b5!4 c#6!4", I: "a4 f#4 g4 f#4 e4!2 f#4 e4", J: "d4!2 e4 g4 f#4 d4 a3 f#4",
  K: "d4 g4 f#4 g4 e4!4", L: "d4 f#4 e4@2", M: "b4!2 [g4,b4]!2 [e4,c#5]!4", N: "f#4 [d4,f#4,a4] e4@2",
  O: "d4 [d4,f#4] [d4,f#4,a4]@2", P: "[g4,b4]!4 [e4,g4,c#5]!4", Q: "d4 [d4,f#4] f#4@2", R: "b4!4 c#5!4",
  S: "[d4,f#4,a4,d5] ~@7", // D
})).s("gm_violin").gain(0.45)

// other · cello · "Violoncello"
const cello = note("<~@12 A B C D A B C D A B C D A B C D A B C D A B C D E>".pickRestart({
  A: "d3 a2", B: "b2 f#2", C: "g2 d2", D: "g2 a2", E: "[d2,d3] ~@7",
})).s("gm_cello").gain(0.5)

// other · cello · "Violoncello" · soft notes
const cello_soft = note("<A B C D A B C D A B C D ~@25>".pickRestart({
  A: "d3 a2", B: "b2 f#2", C: "g2 d2", D: "g2 a2",
})).s("gm_cello").gain(0.2)

stack(violin, cello, cello_soft)