Strudelify

Bjorn's Holiday Adventure

me

KeyD majorTempo120 bpm
0:00/0:00
// Bjorn's Holiday Adventure — me
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5889762; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 43 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// bass · tuba · "Euphonium"
const bass = note("<~@23 A B C D E B C D F ~@11>".pickRestart({
  A: "~@3 a2", B: "d3!2 ~ d3 ~@2 e3@2", C: "f#3 ~ f#3!2 ~@3 f#3", D: "e3@2 f#3@2 g3@2 ~ c#3", E: "e3@3 d3 ~@2 a2@2",
  F: "e3@3 d3 ~@4",
})).s("gm_tuba").gain(0.3)

// chords · piano
const piano = note("<~@8 A B C D E F G H I J K L C M A N O P Q R O P Q S T U V W X Y Z AA AB AC AD>".pickRestart({
  A: "[d4,f#4,a4,c#5,e5] ~@3 [d4,f#4,a4,c#5,e5]@6 [d4,f#4,a4,c#5,e5]@6", // Dmaj7
  B: "[d4,f#4,a4,c#5,e5]@6 [d4,f#4,a4,c#5,e5]@9 ~", C: "[d4,f4,a4,c5,e5] ~@3 [d4,f4,a4,c5,e5]@6 [d4,f4,a4,c5,e5]@6",
  D: "[g2,f4,b4,e5]@6 [g2,f4,b4,e5]@9 ~", E: "[g4,b4,e5] ~@3 [c3,g4,b4,e5]@6 [c3,g4,b4,e5]@6, c3 ~@7",
  F: "[c3,g4,b4,e5]@6 [c3,g4,b4,e5]@9 ~", G: "[f#4,a4,c#5,e5] ~@3 [f#3,f#4,a4,c#5,e5]@6 [f#3,f#4,a4,c#5,e5]@6, f#3 ~@7",
  H: "[b2,f#4,b4,e5]@6 [b2,f#4,b4,e5]@9 ~", I: "[g4,b4,d5,f#5] ~@3 [e3,g4,b4,d5,f#5]@6 [e3,g4,b4,d5,f#5]@6, e3 ~@7",
  J: "[a2,g4,c#5,f#5]@6 [a2,g4,c#5,f#5]@9 ~", // F#m
  K: "[f#4,a#4,c#5,f5] ~@3 [d#3,f#4,a#4,c#5,f5]@6 [d#3,f#4,a#4,c#5,f5]@6, d#3 ~@7", // F#maj7 D#m7
  L: "[g#2,f#4,c5,f5]@6 [g#2,f#4,c5,f5]@9 ~", M: "[d4,f4,a4,c5,e5]@6 [d4,f4,a4,c5,e5]@9 ~",
  N: "[g4,a#4,c#5,e5]@6 [g4,a#4,c#5,e5]@9 ~", O: "[a3,c#4,d4,f#4] ~@2 [a3,c#4,d4,f#4] ~@4",
  P: "~ [b3,c#4,d4,f#4] ~@2 [b3,c#4,d4,f#4] ~@3", Q: "~@2 [g3,b3,c#4,d4,f#4]@2 ~@2 [a#3,c#4,e4,a4]@9 ~",
  R: "f#7 g7 f#7@2 e7@2 d7@2 b6@2 a6@2 e6@2 d6@2", S: "c#6@2 d6 c#6 a5@2 d5@2 g5@2 f#5@2 b4@2 d5@2",
  T: "[a4,c#5,d5,f#5,a5]@2 ~@2 [f#4,a4,c#5,f#5]@2 [b4,c5,d#5,f#5,b5]@9 ~", // Dmaj7 F#m B
  U: "[a4,c#5,f#5,a5] [g4,b4,d5,e5,g5] ~ [g4,b4,d5,e5,g5] ~ [g4,b4,d5,e5,g5] ~ [g4,b4,d5,e5,g5]", // F#m Em7
  V: "[g4,b4,d5,e5,g5]@3 [e4,g4,b4,d5,e5]@2 [a4,a#4,c#5,f#5,a5]@8 ~ [g4,a#4,d5,e5,g5]@2", // Em7 F# Em7b5
  W: "[g4,a#4,d5,e5,g5] ~ [f#4,a4,c#5,d5,e5,f#5] ~ [f#4,a4,c#5,d5,e5,f#5] ~ a5 ~", // Em7b5 F#m7
  X: "d6@2 ~ d6@2 ~ f#6@2 g6@2 f#6@2 ~@2 f#6@2, ~@2 c#6@2 ~ e6@2 ~@9", Y: "f#6 [g6,g#6] a6@2 g6@2 f#6@6 f#6@4",
  Z: "e6 f#6 g6@4 c#6@2", AA: "[g5,b5,e6]@6 [g5,b5,d6]@9 ~", AB: "[g5,a#5,e6]@6 [g5,a#5,d6]@9 ~",
  AC: "[f4,a4,c5,e5]@6 [f4,a4,c5,d5]@9 ~", AD: "[c4,d#4,g4,a#4,d5]@6 [d#4,a4,c5]@9 ~",
})).s("gm_piano").gain(0.3)

// bass · acoustic bass
const bass_2 = note("<~@8 A B A C D E F G H I J K A L A I A M N L A M N L A M N L ~@5 O P>".pickRestart({
  A: "d2@3 a2 a2@3 d2", B: "d2@3 a2@2 a2 d3 a2", C: "g2@3 g2@2 d2 g2 d2", D: "c2@3 g2 g2@3 c2", E: "c2@3 g2@2 d2 f2 d2",
  F: "f#2@3 c#3 c#3@3 f#2", G: "b1@3 b2@2 a2 f#2 d2", H: "e2@3 b2 b2@3 e2", I: "a1@3 a2@2 e2 a2 e2",
  J: "d#2@3 a#2 a#2@3 d#2", K: "g#1@3 g#2@2 d#2 g#2 d#2", L: "d2@3 a2@2 d2 a2 d2", M: "b1@3 b2@2 f#2 b2 f#2",
  N: "e2@3 b2 a2@3 e2", O: "d2@3 d2@5", P: "c2@3 f1@5",
})).s("gm_acoustic_bass").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@4 [x ~@2 x!2 ~@2 x]!38 ~>").gain(0.3)

// drums · rim
const rim = s("rim").struct(`<
  ~@4 A B A B A B A B A B A B A B A B A B A B A B A B@2 A B A B A B@2 A@2 B@2 A B ~
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~@2 x ~@2 x ~@2",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<~@4 [x!8]!38 ~>").gain(0.3)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[x!8]!42 ~>").gain(1.51)

// drums · claves
const claves = s("clave:2").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B@2 A B A B A B@2 A@2 B@2 A B ~
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~@2 x ~@2 x ~@2",
})).gain(1.46)

stack(bass, piano, bass_2, kick, rim, hihat, cabasa, claves)

More by me