Strudelify

Orphée aux enfers

J. Offenbach

KeyD majorTempo120 bpm
0:00/0:00
// Orphée aux enfers — J. Offenbach
// 120 bpm, 2/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/159692; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · string ensemble 1 · "Violin I"
const string_ensemble_1 = note(`<
  A B C D E F G@2 A B C D H F G I J K L M J K N O J K L M J K N O P Q R S T Q U V P Q R S T Q W X A B C D E F G@2 A B C
  D Y@3 Z@3 AA AB AC AD AE AB AF AG AA AB AC AD AE AB AH@4 AI@2 AJ AK AL@2 AJ
>`.pickRestart({
  A: "a4 e4!2 f#4", B: "e4 d4!2 f#4", C: "g4 b4 d5 b4", D: "b4 a4 a4@2", E: "b4 c#4!2 b4", F: "a4 d4!2 f#4",
  G: "f#4 e4 f#4 e4", H: "b4 a4!2 b4", I: "e4 d4 d4@2", J: "f#5 d5", K: "b4 a4", L: "a4 e4 f#4 g4", M: "f#4 e4 d4@2",
  N: "a4!2 b4 c#5", O: "e5 d5 d5@2", P: "g4", Q: "a4 c5 b4 a4", R: "d5!2", S: "d5 e5 b4 c5", T: "a4!2",
  U: "g4 g5 f#5 e5", V: "d5 c5 b4 a4", W: "g4 d5 a4 b4", X: "g4 g5", Y: "b4 a4!3", Z: "b4 a4 b4 a4", AA: "d5",
  AB: "e5 g5 f#5 e5", AC: "a5!2", AD: "a5 b5 f#5 g5", AE: "e5!2", AF: "d4 d5 c#5 b4", AG: "a4 g4 f#4 e4", AH: "d5!8",
  AI: "f#5!2", AJ: "d5 ~", AK: "f#5 ~", AL: "d5!16",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · "Viola"
const string_ensemble_1_2 = note(`<
  A B@3 A B@2 A@2 B@3 A B A C D E A F D E A F D E A F D E A G H I J K L I M N O P@6 Q A B@3 A B A B A B@3 A@6 R S L T U
  S V W R S L T U S X@2 Y@2 L@2 Z@2 AA@2 AB
>`.pickRestart({
  A: "a4!4", B: "d4!4", C: "d4!2", D: "f#4 d4", E: "b4 a4", F: "d4!2 d4@2", G: "d4 ~ d4@2", H: "g4", I: "a4 c5 b4 a4",
  J: "d5!2", K: "d5 e5 b4 c5", L: "a4!2", M: "g4!2 f#4 e4", N: "d4 c4 b3 a3", O: "g3", P: "~ d4 ~ d4", Q: "g3!2",
  R: "d4", S: "e4 g4 f#4 e4", T: "a4 b4 f#4 g4", U: "e4!2", V: "d4 d5 c#5 b4", W: "a4 g4 f#4 e4", X: "d4!8", Y: "a4!8",
  Z: "a4 ~", AA: "d4!16", AB: "d4 ~",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · "Cello"
const string_ensemble_1_3 = note(`<
  A B@3 A B C A@2 B@3 A B A D E@2 A F E@2 A F E@2 A F E@2 A G H D H@2 D@2 H D H D H@2 D@2 I H A B@3 A B C A@2 B@3 A@6 B
  A B@2 A@2 B A B A B@2 A@2 J K L M D@2 N@2 O@2 N
>`.pickRestart({
  A: "a3!4", B: "d3!4", C: "e3!4", D: "d3!2", E: "a2!8", F: "d3!2 d3@2", G: "d3 ~ d3@2", H: "g2!2", I: "g2 d3",
  J: "d3 d4", K: "c#4 b3", L: "a3 g3", M: "f#3 e3", N: "d3 ~", O: "d3!16",
})).s("gm_string_ensemble_1").gain(0.3)

// other · piano · "Contrabass"
const piano = note(`<
  A B A B A B C@2 A B A B A B A B D@2 A E D@2 F E D@2 A E D@2 F G H I H@2 I@2 H J H I H@2 I J H K A B A B A B C B F B@3
  D@6 L@14 I@2 D@2 I@2 M@2 N@2 M
>`.pickRestart({
  A: "~ g3!3", B: "~ d3!3", C: "~ e3!3", D: "a2!2", E: "d3!2 d3@2", F: "~ a2!3", G: "d3 ~ d3@2", H: "g3 d3", I: "d3!2",
  J: "a3 d3", K: "g3!2", L: "~ a2 ~ a2", M: "d3 ~", N: "d3!16",
})).s("gm_piano").gain(0.3)

stack(string_ensemble_1, string_ensemble_1_2, string_ensemble_1_3, piano)