Strudelify

Rigoletto

James MacConnachie

KeyC majorTempo65 bpm
0:00/0:00
// Rigoletto — James MacConnachie
// 65 bpm, 3/8, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 12 "Double Bass" named as a bass, played on acoustic bass (its contrabass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/194358; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(65/1.5)

// 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 · violin
const violin = note(`<
  ~ A B C D E F G ~@2 A B C D E F G H A B C D E F G H C I A J K L@2 M@2 N O P@2 N Q M@2 R S T U ~ A B C D E F G ~@2 A B
  C D E F G H A B C D E F G H C I A J K L@2 M@2 N O P@2 N Q M@2 R V@3 U
>`.pickRestart({
  A: "e5@5 e5@5 ~ e5@5", B: "g5@4 f5 d5@11", C: "d5@5 d5@5 ~ d5@5", D: "f5@4 e5 c5@11", E: "e5@5 d5@5 ~ c5@5",
  F: "b4 c5@3 b4 b4@11", G: "d5@5 c5@5 ~ a4@5", H: "g#4 a4@3 g4 g4@11", I: "g5@5 d5@11", J: "a5@5 e5@11",
  K: "g5@5 g5@5 ~ g5@5", L: "a5/2", M: "g5/2", N: "f5@3 ~@2 e5@3 ~@3 d5@3 ~@2", O: "c5@11 g4@5", P: "g5@11 g4@5",
  Q: "c5", R: "a5", S: "b5@4 a5 g5@4 f5 ~ e5@4 d5", T: "c5@11 b4@5", U: "c5@3 ~@13", V: "[g5@5 c6@43]/3",
})).s("gm_violin").gain(0.25)

// other · violin
const violin_2 = note(`<
  A@2 B@2 A@2 C B ~ A@2 B@2 A@2 C B D A B@2 A@3 B D E@2 F@2 G H@2 I@2 J K L@2 J K L@2 M N O P A@2 B@2 A@2 C B ~ A@2 B@2
  A@2 C B D A B@2 A@3 B D E@2 F@2 G H@2 I@2 J K L@2 J K L@2 M Q@3 P
>`.pickRestart({
  A: "c4@5 g4@5 ~ g4@5", B: "b3@5 f4@5 ~ f4@5", C: "c4@5 f4@5 ~ f4@5", D: "a3@5 d4@5 ~ d4@5", E: "c4@5 a4@5 ~ a4@5",
  F: "d4@5 b4@5 ~ b4@5", G: "f4@5 d5@5 ~ d5@5", H: "e5/2", I: "d5/2", J: "a4@3 ~@2 g4@3 ~@3 f4@3 ~@2", K: "e4",
  L: "g4@5 d5@5 ~ d5@5", M: "e5", N: "d5@4 c5 b4@4 a4 ~ g4@4 f4", O: "e4@11 b4@5", P: "c5@3 ~@13", Q: "[g5@5 c6@43]/3",
})).s("gm_violin").gain(0.15)

// other · viola
const viola = note(`<
  A@2 B@2 A@2 C B ~ A@2 B@2 A@2 C B D A B@2 A@2 C B D E@2 F@2 G H@2 I@2 J K G@2 J K G@2 L M N O A@2 B@2 A@2 C B ~ A@2
  B@2 A@2 C B D A B@2 A@2 C B D E@2 F@2 G H@2 I@2 J K G@2 J K G@2 L P@3 Q
>`.pickRestart({
  A: "c3@5 e3@5 ~ e3@5", B: "~@5 d3@5 ~ d3@5", C: "c3@5 d3@5 ~ d3@5", D: "~@5 b3@5 ~ b3@5", E: "d3@5 f3@5 ~ f3@5",
  F: "e3@5 g3@5 ~ g3@5", G: "g3@5 b3@5 ~ b3@5", H: "c4/2", I: "b3/2", J: "f3@3 ~@2 e3@3 ~@3 d3@3 ~@2", K: "c3", L: "c4",
  M: "b3@4 a3 g3@4 f3 ~ e3@4 d3", N: "c3@11 b4@5", O: "c5@3 ~@13", P: "[g4@5 c5@43]/3", Q: "c4@3 ~@13",
})).s("gm_viola").gain(0.15)

// bass · acoustic bass · "Double Bass"
const bass = note(`<
  A@2 B@2 A@2 C B ~ A@2 B@2 A@2 C B D A B@2 A@2 C B D E@2 F@2 G H@2 I@2 J A G@2 J A I@2 K L M N A@2 B@2 A@2 C B ~ A@2
  B@2 A@2 C B D A B@2 A@2 C B D E@2 F@2 G H@2 I@2 J A G@2 J A I@2 K O@3 N
>`.pickRestart({
  A: "c3", B: "b2", C: "c3@5 b2@11", D: "a2", E: "d3", F: "e3", G: "g3", H: "a3/2", I: "g3/2",
  J: "f3@3 ~@2 e3@3 ~@3 d3@3 ~@2", K: "a3", L: "b3@4 a3 g3@4 f3 ~ e3@4 d3", M: "c3@11 b2@5", N: "c3@3 ~@13",
  O: "[g2@5 c3@43]/3",
})).s("gm_acoustic_bass").gain(0.15)

stack(violin, violin_2, viola, bass)