Strudelify

house of the rising sun

G.Carretero

KeyD majorTempo120 bpm
0:00/0:00
// house of the rising sun — G.Carretero
// 120 bpm, 6/8, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5820937; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 53 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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 · soprano sax · "Saxophone Soprano"
const soprano_sax = note("<~@22 A@2 B C A D A E F G H E F I J E K L H M N O A@2 B C A D A D J>".pickRestart({
  A: "~ e5 ~@2 e5 ~@2 e5 e5@3 c5@2 a4@3", B: "~ g5 ~@2 g5 ~@2 g5 g5@3 f#5@2 d5@3",
  C: "~ f5 ~@2 f5 ~@2 f5 f5@3 e5@2 c5@3", D: "~ e5 ~@2 e5 ~@2 e5 e5@3 b4@2 g#4@3", E: "~@15 e5", F: "a5@13 a5@3",
  G: "g5@11 ~ c5@3 d5", H: "a4", I: "g5@11 ~ d5@4", J: "e5", K: "a5@3 a5@10 a5@3", L: "g5@8 ~ e5@4 d5@3", M: "c5",
  N: "a4@13 a4@3", O: "g#4 g#4@15",
})).s("gm_soprano_sax").gain(0.3)

// other · alto sax · "Saxophone Alto"
const alto_sax = note(`<
  ~@7 A B C D E F G H I J K L@2 F M ~@7 N O P Q R S T M N U L Q V O W L X Q V L M L Y L
>`.pickRestart({
  A: "~@13 g3@3", B: "a3@13 b3@3", C: "c4@13 e4@3", D: "d4", E: "~@13 a4@3", F: "a4@13 a4@3", G: "g4@13 d4@3", H: "e4",
  I: "~@15 e5", J: "a5@3 a5@10 b4@3", K: "c5@11 ~ c5@3 d5", L: "a4", M: "g#4", N: "~@15 a4", O: "c5@13 c5@3", P: "g4",
  Q: "f#4", R: "~@15 g#4", S: "e4@13 e4@3", T: "g4@11 ~ g4@4", U: "c5@3 c5@10 c5@3", V: "f4", W: "b4 b4@15",
  X: "g4@13 g4@3", Y: "g#4@13 g#4@2 ~",
})).s("gm_alto_sax").gain(0.4)

// other · baritone sax · "Saxophone Baryton"
const baritone_sax = note(`<
  A B C D A E A E A B C D A B E@2 A B C D A E A B C D A F A E A B C D A B E@2 A B C D A E A B C D A F A E A
>`.pickRestart({
  A: "a2", B: "c3", C: "d3", D: "f3", E: "e2", F: "e2@3 ~@13",
})).s("gm_baritone_sax").gain(0.3)

stack(soprano_sax, alto_sax, baritone_sax)