Strudelify

Rigoletto

Verdi

KeyG majorTempo90 bpm
0:00/0:00
// Rigoletto — Verdi
// 90 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Clarinetto in Si♭" named as a reed, played on clarinet (its tremolo strings patch is not one); ch 5 "Basso" named as a bass, played on electric bass finger (its choir aahs patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5967525; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 69 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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 · clarinet · "Clarinetto in Si♭"
const clarinet = note("<A@4 B@4 C@2 ~@29 D E ~ F G H I F G I J K@2 L M N ~@4 O P ~@2 O Q R S T U>".pickRestart({
  A: "[a#3@3 ~]/2", B: "[b3@3 ~]/2", C: "[c4@3 ~]/2", D: "~@2 e4 f4", E: "e4@2 f4 ~@5",
  F: "~ f3 g3 g#3 a3 ~ f3 ~@2 d3 e3!2 f3 ~ d3 ~", G: "~ f3 g3 g#3 a3 ~ f3 ~@2 f3 g3 g#3 a3 ~ f3 ~",
  H: "~ e3 f3 f#3 g3 ~ e3 ~@2 f3 f#3 g3 g#3 ~ f3 ~", I: "~ e3 f3 f#3 g3 ~ e3 ~@2 e3 f3 f#3 g3 ~ e3 ~",
  J: "~ f3 g3 g#3 a3 ~ f3 ~@2 f3 g3 g#3!2 ~ f3 ~", K: "~ f3 g3 g#3!2 ~ f3 ~@2 f3 g3 g#3!2 ~ f3 ~",
  L: "~ a#3!3 ~ a#3!3 ~ c4!3 ~ c4!3", M: "~ d4!3 ~ f4!3 f4@4 c4@4", N: "a3 f3 ~@2", O: "a3@2 g#3@2 g3@2 f3 e3",
  P: "f3 ~@7", Q: "f3 ~@3 f3@4", R: "a3 ~@3 f3@4", S: "~@2 a3 ~ a3 ~ a3 ~", T: "a3 ~@3 f3 ~@3", U: "f3 ~",
})).s("gm_clarinet").gain(0.2)

// other · clarinet · "Clarinetto in Si♭" · soft notes
const clarinet_soft = note("<~@11 A B C@2 D E C@2 F C E F G F C H I J ~@40>".pickRestart({
  A: "d#3", B: "e3 ~", C: "~ f3!2 ~@2 f3!2 ~", D: "~ g3!2 ~@2 f3!2 ~", E: "~ e3!2 ~@2 e3!2 ~", F: "~ g3!2 ~@2 g3!2 ~",
  G: "~ g3!2 ~@2 g#3!2 ~", H: "~ g#3!2 ~@2 g#3!2 ~", I: "~ a3!2 ~@2 g3!2 ~", J: "f3 a#3 a3 g3 f3@2 ~@2",
})).s("gm_clarinet").gain(0.05)

// bass · electric bass finger · "Basso"
const bass = note(`<
  ~@16 A B C D E F G H I J K L M ~@2 N O P Q E ~ R S T U V ~ W X Y Z AA AB AC AD AE AF AG AH AI ~ AJ AK AL AM ~@2 AN AO
  AP AQ@2 ~
>`.pickRestart({
  A: "~@7 d3", B: "f3@2 ~@5 a3", C: "g3@2 f3@2 ~@7 f3 f3@3 a3", D: "c3@4 c3@3 c3 c3@3 a#3 a3@3 g3", E: "f3 ~@3",
  F: "~@7 c4 c4@6 c4@2", G: "c4@3 c3 c3@3 c#3", H: "d#3@3 d#3 d#3@3 f3", I: "g3 d#3 ~@6", J: "f3@4 g3@3 a3 a#3@4 a#3@4",
  K: "~@11 b3 b3@3 b3", L: "c4@4 c3@3 c3", M: "f3 ~", N: "~@8 a3@2 a3!2 e3@3 e3", O: "e3!2 ~@6",
  P: "~@8 f3@2 f3!2 a#3@3 a#3", Q: "a3@3 c4 c4@2 ~ c3 d3@3 d3 e3@3 e3", R: "~@8 c#4@2 c#4!2 c#4@2 c#4@2",
  S: "g3@3 g3 g3@2 ~ g3 c4@3 c4 c4@3 c4", T: "f3@4 f3@2 ~@2 a#3@2 a#3!2 g#3@3 g#3", U: "g3!2 ~@3 f3!3 d#3!2 ~@5 c#3",
  V: "c3 ~@3", W: "~@7 f3 a3 f3 f3@2 ~@3 a3", X: "a#3@3 g3 g#3@3 f3", Y: "g3@2 c3@2 ~@8 c3@3 c3",
  Z: "c3@2 f3 ~ f3 a#3 ~ d4", AA: "c4@2 f3@2 ~@7 a3 a3@3 a3", AB: "a#3@2 g3@2 ~@3 f3 e3@4 ~@4", AC: "~@12 f3@3 f3",
  AD: "f3@3 f3 f3@4", AE: "~@15 f3", AF: "f#3@3 f#3 g3@3 g3 g#3@2 g#3@2 ~@3 a3", AG: "a#3!2 ~@6", AH: "~@4 c#3@2 c#3!2",
  AI: "d3 ~", AJ: "d#4@4 d#4@3 d#4 c4@7 c4", AK: "a3@7 a3 a#3@8", AL: "~@12 c3@3 c3", AM: "f3!2 ~@2",
  AN: "c3@4 c3@3 c3 c3@4 c3@4", AO: "~@8 f3@4 f3@3 f3", AP: "f3@4 ~@4 f3@4 f3@3 f3", AQ: "[f2@5 ~@3]/2",
})).s("gm_electric_bass_finger").gain(0.3)

// other · bassoon · "Fagotto"
const bassoon = note("<A@4 B@6 ~ C ~@25 D E F G H ~@4 I J@2 K L M N O P ~ Q R ~ S T R ~ S U@2 V W X>".pickRestart({
  A: "[g3@3 ~]/2", B: "[g#3@3 ~]/2", C: "b2", D: "c2 ~ c3 ~ c2 ~@3 c2 ~ c3 ~ c2@2 ~@2",
  E: "c2 ~ c3 ~ c2 ~@3 c2 ~ c3 ~ c2 ~@3", F: "c2 ~ c3 ~ c2 ~@3 c4@4 c4@4", G: "c#4 c4 a#3 g#3", H: "g3 ~@7",
  I: "~@4 c3 ~ c3 ~@5 f3 ~ f3 ~", J: "~@4 c3 ~ c3 ~@5 c3 ~ c3 ~", K: "~@4 c3 ~ c3 ~ c4@8", L: "b3 a#3", M: "g#3",
  N: "~ f#3!3 ~ g3!3 ~ g#3!3 ~ a3!3", O: "~ a#3!3 ~ b3!3 ~@2 c3@2 ~@2 c3@2", P: "~ c3 ~ c3 ~@4",
  Q: "~@2 f3 e3 d3 ~ c3 ~ a#2 ~ a2 ~ g2 ~ f2 ~", R: "d#2 ~@15", S: "f3 d3 c3@2",
  T: "f2@2 f3 e3 d3 ~ c3 ~ a#2 ~ a2 ~ g2 ~ f2 ~", U: "f2@2 f3 e3 d#3 ~ d3 ~ c#3@8", V: "~@2 f3 ~ f3 ~ f3 ~",
  W: "f3 ~@3 c3 ~@3", X: "c3 ~",
})).s("gm_bassoon").gain(0.15)

// other · bassoon · "Fagotto" · soft notes
const bassoon_soft = note("<~@12 A B C D C B C E C@2 E F G B H I J ~@13 K L@3 ~@23>".pickRestart({
  A: "g2 ~", B: "~ c3!2 ~@2 d3!2 ~", C: "~ c3!2 ~@2 c3!2 ~", D: "~ e3!2 ~@2 f3!2 ~", E: "~ e3!2 ~@2 e3!2 ~",
  F: "~ d#3!2 ~@2 d#3!2 ~", G: "~ d#3!2 ~@2 e3!2 ~", H: "~ f3!2 ~@2 f3!2 ~", I: "~ f3!2 ~@2 e3!2 ~",
  J: "f3 d3 c3 a#2 a2@2 ~@2", K: "~@4 c3 ~ c3 ~@5 d3 ~ d3 ~", L: "~@4 c3 ~ c3 ~@5 c3 ~ c3 ~",
})).s("gm_bassoon").gain(0.05)

// other · bassoon · "Fagotto"
const bassoon_2 = note("<A@10 ~@29 B C D ~@4 E F G H I J K L M ~ N O ~ P Q O ~ P R@2 S T U>".pickRestart({
  A: "[f3@3 ~]/2", B: "~@2 g3 f3", C: "a#3 g#3 g3 f3", D: "e3 ~@7", E: "~@4 f2 ~ f2 ~@5 a#2 ~ a#2 ~",
  F: "~@4 f2 ~ f2 ~@5 f2 ~ f2 ~", G: "~@4 c2 ~ c2 ~@5 c2 ~ c2 ~", H: "~@4 f2 ~ f2 ~ d#3@8", I: "d3 c#3", J: "c3 b2",
  K: "~ a#2!3 ~ c#3!3 ~ c3!3 ~ d#3!3", L: "~ d3!3 ~ c#3!3 ~@2 c2@2 ~@2 c2@2", M: "~ c2 ~ c2 ~@4",
  N: "~@2 f3 e3 d3 ~ c3 ~ a#2 ~ a2 ~ g2 ~ f2 ~", O: "d#2 ~@15", P: "c2", Q: "f2@2 f3 e3 d3 ~ c3 ~ a#2 ~ a2 ~ g2 ~ f2 ~",
  R: "f2@2 f2 e2 d#2 ~ d2 ~ c#2@8", S: "~@2 f3 ~ c3 ~ a2 ~", T: "f2 ~@3 f2 ~@3", U: "f2 ~",
})).s("gm_bassoon").gain(0.15)

// other · bassoon · "Fagotto" · soft notes
const bassoon_soft_2 = note("<~@13 A@2 B@2 C@2 B C B@2 D E F G A H ~@13 I J K@2 ~@23>".pickRestart({
  A: "~ c3!2 ~@2 c3!2 ~", B: "~ c2!2 ~@2 c2!2 ~", C: "~ f2!2 ~@2 f2!2 ~", D: "~ d#2!2 ~@2 d#2!2 ~",
  E: "~ d#2!2 ~@2 c2!2 ~", F: "~ f2!2 ~@2 a#2!2 ~", G: "~ b2!2 ~@2 d3!2 ~", H: "f2 a#2 a2 g2 f2@2 ~@2",
  I: "~@4 f2 ~ f2 ~@5 a#2 ~ a#2 ~", J: "~@4 f2 ~ f2 ~@5 f2 ~ f2 ~", K: "~@4 c2 ~ c2 ~@5 c2 ~ c2 ~",
})).s("gm_bassoon").gain(0.05)

// other · viola
const viola = note(`<
  A B A B C D C D E F ~ G ~@17 H I J K L M N ~@2 O P Q R S T U V S T V W X@2 Y Z AA AB AC AD AE AF AC AD AE AF AG AH AI
  AJ AK
>`.pickRestart({
  A: "~@6 g3 g#3 a#3@4 ~@2 a#3 c4", B: "c#4 ~", C: "~@6 f3 g3 g#3@4 ~@2 g#3 a#3", D: "b3 ~",
  E: "c3@7 f3 g#3@7 g#3, ~@8 g3 ~@7", F: "c4 ~, a#3 ~@15", G: "c3", H: "c4 ~@3 c4 ~ c4 ~ c4 ~ c4 ~ c4 b3 a3 g3",
  I: "g3@2 ~@4 c4!2 c4@2 ~@4 b3!2", J: "[a3,b3] ~@3 a3 ~ a3 ~ a3 ~ a3 ~ a3 g#3 f#3 e3",
  K: "e3@2 ~@4 a3!2 a3@2 ~@4 g#3!2", L: "a3@2 ~@2 f3 ~ f3 ~ f3 ~ f3 ~ f3 e3 d3 c3, g#3 ~@15",
  M: "c3@2 ~@4 c4!2 a#3@2 ~@4 a#3!2, ~@8 c4 ~@7", N: "g#3@2 g#3!2 c#4@2 g#3!2 c#4@4 ~@4, a#3 ~@3 g#3 ~@3 g#3 ~@7",
  O: "g4", P: "f4 c4", Q: "g4 f4 d#4 c#4", R: "c4 ~@7", S: "~ a3 a#3 b3 c4 ~ a3 ~@2 a#3 c4 c#4 d4 ~ a#3 ~",
  T: "~ a3 a#3 b3 c4 ~ a3 ~@2 a3 a#3 b3 c4 ~ a3 ~", U: "~ g3 g#3 a3 a#3 ~ g3 ~@2 g#3 a#3 b3 c4 ~ g#3 ~",
  V: "~ g3 g#3 a3 a#3 ~ g3 ~@2 g3 g#3 a3 a#3 ~ g3 ~", W: "~ a3 a#3 b3 c4 ~ a3 ~@2 f3 f#3 g3 c4 ~ a3 ~",
  X: "~ f3 f#3 g3 g#3 ~ f3 ~@2 f3 f#3 g3 g#3 ~ f3 ~", Y: "~ c#4!3 ~ d#4!3 ~ d#4!3 ~ f4!3",
  Z: "~ f4!3 ~ g#4!3 f4@4 c4@4", AA: "a3 f3 g#3@2", AB: "b3 a#3", AC: "a3 ~@7", AD: "c4 a#3", AE: "a3 a#3",
  AF: "c4 b3 a#3@2", AG: "a3@2 ~@7 f3 f#3 g3 g#3 ~ a#3 ~", AH: "c4@2 ~@7 f3 f#3 g3 g#3 ~ a#3 ~",
  AI: "~@2 c4 ~ c4 ~ c4 ~", AJ: "c4 ~@3 a3 ~@3", AK: "a3 ~",
})).s("gm_viola").gain(0.2)

// other · viola · soft notes
const viola_soft = note("<~@12 A B C D E B C F C G H I F B J K L ~@40>".pickRestart({
  A: "c3 ~", B: "~ a3!2 ~@2 a#3!2 ~", C: "~ a3!2 ~@2 a3!2 ~", D: "~ a#3!2 ~@2 g#3!2 ~", E: "~ g3!2 ~@2 g3!2 ~",
  F: "~ a#3!2 ~@2 a#3!2 ~", G: "~ g3!2 ~@2 g#3!2 ~", H: "~ c4!2 ~@2 c4!2 ~", I: "~ a#3!2 ~@2 c4!2 ~",
  J: "~ d4!2 ~@2 b3!2 ~", K: "~ c4!2 ~@2 a#3!2 ~", L: "a3 d4 c4 a#3 a3@2 ~@2",
})).s("gm_viola").gain(0.05)

// other · cello · "Violoncello"
const cello = note(`<
  A B A B C D C D E F ~@2 G H I J K H I L M N O P Q H R S T ~ U V W X ~@4 Y Z ~ AA H I AB K H I L AC AD AE AF AG AH AI
  AJ ~@2 AK AL ~@2 AK AM AN ~ AO AP
>`.pickRestart({
  A: "~@6 g2 g#2 a#2@4 ~@2 a#2 c3", B: "c#3 ~", C: "~@6 f2 g2 g#2@4 ~@2 g#2 a#2", D: "b2 ~",
  E: "c2@7 f2 g#2@7 g#2, ~@8 g2 ~@7", F: "c3 ~, a#2 ~@15", G: "~@7 c4", H: "f4@3 e4 g4@3 f4", I: "c4@3 b3 d4@3 c4",
  J: "a#3@3 g3 g#3@3 f3", K: "g3@3 a3 a#3@3 c4", L: "a#3@3 a3 a#3@3 g3", M: "f3@3 a3 f3@2 ~ a3", N: "c4@3 g3 g#3@3 a#3",
  O: "c4@3 g3 c4@3 c#4", P: "d#4@3 a#3 c4@3 c#4", Q: "d#4@3 a#3 e4@3 c4", R: "g#4@3 d4 f4@3 b3", S: "c4@3 a3 a#3@3 g3",
  T: "f3@3 ~", U: "~@2 g3@2 g4@6 g3@2 g4@3 ~", V: "e4 ~@3, f4 ~@15", W: "~@2 e3 ~ e4@6 e3 ~ e4@3 ~",
  X: "c4 ~@3, d4 ~@15", Y: "d4@2 c4 ~@5", Z: "c4@2 a#3 ~@5", AA: "c4 b3 c4 b3 c4 c#4 d4 e4",
  AB: "a#3@6 g3 ~ g#3@6 f3 ~", AC: "f3@3 e4 f4@3 e4", AD: "f4@3 e4 f4@3 e4", AE: "f4@3 e4 f4@3 f4", AF: "f#4 g4 g#4 a4",
  AG: "a#4!2 c5 a4", AH: "f4 c4 c#4@2", AI: "d4 e4", AJ: "f4 ~@7", AK: "c4@2 f4@3 e4 d4 c4", AL: "c4 ~@7",
  AM: "c4 ~@3 f4@4", AN: "f3 ~@3 f4@4", AO: "g2 e2 f2 e2 f2 e2 f2 e2", AP: "f2 ~",
})).s("gm_cello").gain(0.15)

// bass · contrabass · "Contrabbasso"
const bass_2 = note(`<
  A B A B C D C D E@2 ~@2 F G H I J G H K L M N O P G Q R S ~ T U V W ~@4 X Y ~ Z G H AA J G H K AB AC AD AE AF AG AH AI
  ~@2 AJ AK ~@2 AJ AL AM ~ AN AO
>`.pickRestart({
  A: "~@6 g1 g#1 a#1@4 ~@2 a#1 c2", B: "c#2 ~", C: "~@6 f1 g1 g#1@4 ~@2 g#1 a#1", D: "b1 ~", E: "[c1@3 ~]/2",
  F: "~@7 c3", G: "f3@3 e3 g3@3 f3", H: "c3@3 b2 d3@3 c3", I: "a#2@3 g2 g#2@3 f2", J: "g2@3 a2 a#2@3 c3",
  K: "a#2@3 a2 a#2@3 g2", L: "f2@3 a2 f2@2 ~ a2", M: "c3@3 g2 g#2@3 a#2", N: "c3@3 g2 c3@3 c#3",
  O: "d#3@3 a#2 c3@3 c#3", P: "d#3@3 a#2 e3@3 c3", Q: "g#3@3 d3 f3@3 b2", R: "c3@3 a2 a#2@3 g2", S: "f2@3 ~",
  T: "~@2 g2@2 g3@6 g2@2 g3@3 ~", U: "e3 ~@3, f3 ~@15", V: "~@2 e2 ~ e3@6 e2 ~ e3@3 ~", W: "c3 ~@3, d3 ~@15",
  X: "d3@2 c3 ~@5", Y: "c3@2 a#2 ~@5", Z: "c3 b2 c3 b2 c3 c#3 d3 e3", AA: "a#2@6 g2 ~ g#2@6 f2 ~",
  AB: "f2@3 e3 f3@3 e3", AC: "f3@3 e3 f3@3 e3", AD: "f3@3 e3 f3@3 f3", AE: "f#3 g3 g#3 a3", AF: "a#3!2 c4 a3",
  AG: "f3 c3 c#3@2", AH: "d3 e3", AI: "f3 ~@7", AJ: "c3@2 f3@3 e3 d3 c3", AK: "c3 ~@7", AL: "c3 ~@3 f3@4",
  AM: "f2 ~@3 f3@4", AN: "g1 e1 f1 e1 f1 e1 f1 e1", AO: "f1 ~",
})).s("gm_contrabass").gain(0.15)

stack(clarinet, clarinet_soft, bass, bassoon, bassoon_soft, bassoon_2, bassoon_soft_2, viola, viola_soft, cello, bass_2)