Strudelify

Oda do radosci - V1

L. van Beethoveen

KeyD majorTempo100 bpm
0:00/0:00
// Oda do radosci - V1 — L. van Beethoveen
// 100 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1907641; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 16 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · acoustic guitar steel · "Chitarre acustiche"
const acoustic_guitar_steel = note("<A B C D A B C E F G H I A B C E>".pickRestart({
  A: "[a3,d4,f#4] f#4 g4 a4", B: "[a3,c#4,a4] g4 f#4 e4", C: "d4!2 e4 f#4", D: "[a3,c#4,f#4] e4 e4@2", E: "e4 d4 d4@2",
  F: "e4!2 f#4 d4", G: "e4@2 f#4 g4 f#4@2 d4@2", H: "e4@2 f#4 g4 f#4@2 e4@2", I: "d4 e4 a3@2",
})).s("gm_acoustic_guitar_steel").gain(0.3)

// other · violin
const violin = note("<A B C D A B C E F G H I A B C E>".pickRestart({
  A: "f#5!2 g5 a5", B: "a5 g5 f#5 e5", C: "d5!2 e5 f#5", D: "f#5@3 e5 e5@4", E: "e5@3 d5 d5@4", F: "e5!2 f#5 d5",
  G: "e5@2 f#5 g5 f#5@2 d5@2", H: "e5@2 f#5 g5 f#5@2 e5@2", I: "d5 e5 e5@2",
})).s("gm_violin").gain(0.25)

// other · violin · "Violino"
const violin_2 = note("<A B C D A B C E F G H I A B C E>".pickRestart({
  A: "f#4!2 g4 a4", B: "a4 g4 f#4 e4", C: "d4!2 e4 f#4", D: "f#4@3 e4 e4@4", E: "e4@3 d4 d4@4", F: "e4!2 f#4 d4",
  G: "e4@2 f#4 g4 f#4@2 d4@2", H: "e4@2 f#4 g4 f#4@2 e4@2", I: "d4 e4 a3 f#4",
})).s("gm_violin").gain(0.4)

// other · trumpet · "Tromba in B♭"
const trumpet = note("<A B C D C E A F G H I J C E A F>".pickRestart({
  A: "f#4!2 g4 a4", B: "a4 g4 f#4 e4", C: "d4!2 e4 f#4", D: "f#4@3 e4 e4@4", E: "f#4 e4 d4 c#4", F: "e4@3 d4 d4@4",
  G: "c#4!2 d4 b3", H: "c#4@2 d4 e4 d4@2 b3@2", I: "c#4@2 d4 e4 d4@2 c#4@2", J: "b3!2 c#4@2",
})).s("gm_trumpet").gain(0.2)

// chords · piano
const piano = note("<A B C D A B C E F G H I A B C E>".pickRestart({
  A: "f#4!2 g4 a4, [d3,a3]@15 ~", B: "a4 g4 f#4 e4, [g3,a3]@15 ~", C: "d4!2 e4 f#4, [f#3,a3]@15 ~",
  D: "f#4@3 e4 e4@4, a3@15 ~", E: "e4@3 d4 [d3,a3,d4]@4, [g3,a3] ~", F: "e4!2 f#4 d4, a3@15 ~",
  G: "e4@2 f#4 g4 f#4@2 d4@2, a3@15 ~", H: "e4@2 f#4 g4 f#4@2 e4@2, a3 a#3", I: "d4 e4 a3@2, b3 ~",
})).s("gm_piano").gain(0.3)

stack(acoustic_guitar_steel, violin, violin_2, trumpet, piano)