Strudelify

song from a secret garden

Secret Garden

KeyF majorTempo56 bpm
0:00/0:00
// song from a secret garden — Secret Garden
// 56 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5488301; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 51 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(56/4)

// 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 · alto sax · "Altsaksofon"
const alto_sax = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI
>`.pickRestart({
  A: "~@5 g4 c5 d5", B: "g4@3 d4 ab4@4", C: "ab4 f5 d5 c5 g4@4", D: "d5 eb5 c5 bb4 eb4@3 bb3", E: "d4@4 ~ g4 c5 d5",
  F: "g4@3 f4 g4@4", G: "g4 ab4 f4!2 f4@4", H: "f4!2 eb4 d4 d4@3 d4", I: "g4@4 ~ c4 f4 g4", J: "c5@3 ab4 c5@4",
  K: "ab4@2 bb4@2 g4@3 f4 g4@8", L: "g4@2 ab4@2 f4@3 eb4 f4@6 eb4 ~", M: "g4@4 ~ g4!2 d5", N: "ab4@3 g4 ab4@4",
  O: "bb4@2 bb4@2 f4@3 f4 g4@8", P: "g4@2 ab4@2 f4@3 eb4 f4@6 eb4@2", Q: "c4@4 ~ d4 eb4 bb4", R: "c5@3 c5!2 d5 bb4 ab4",
  S: "bb4@4 ~ d4 eb4 g4", T: "ab4@3 ab4 bb4!2 f4!2", U: "g4@4 ~ d4!2 bb4", V: "c5@3 c5!2 d5 bb4 a4",
  W: "f4@3 f4!2 g4 f4!2", X: "eb4@4 ab4 bb4 f4!2", Y: "g4@4 ~ g3 c4 d4", Z: "eb4@3 d4 eb4@4", AA: "eb4 f4 d4 c4 f4@4",
  AB: "d4 eb4 c4 bb3 eb4@3 bb3", AC: "bb3@4 ~ g3 c4 d4", AD: "eb4@3 d4 g4@4", AE: "eb4 f4 d4 c4 c4@4",
  AF: "d4!2 c4 bb3 bb3@3 bb3", AG: "c4", AH: "d5 ~ eb5 ~ c5 ~ bb4 ~ c5@3 ~@3 bb4@2", AI: "c5",
})).s("gm_alto_sax").gain(0.4)

// other · tenor sax · "Tenorsaksofon"
const tenor_sax = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG R S T U V W X Y Z AA AB AC AD AE AF AH AI AJ
>`.pickRestart({
  A: "~@5 g3!2 d3", B: "g3@3 g3 eb3@4", C: "eb4 d4 g3!2", D: "g3 ab3 c4 bb3 ab3@3 eb3", E: "g3 bb3 d4@2",
  F: "g4@3 f4 eb4@4", G: "eb4 f4 d4 c4 g3@4", H: "ab3 bb3 c5@2 f3!2 ab4@2", I: "g3@4 ~ c3 c4 g3", J: "c4@3 eb4 c4@4",
  K: "ab3@2 ab3@2 g3@3 g3 eb3@4 ~@4", L: "g3@2 eb3@2 f3@3 eb3 f3@6 g3 ~", M: "c4!2 g3@2", N: "c4@4 ab3 eb4 c4@2",
  O: "ab3@4 d4@4 g3@2 bb3@2 d4@3 bb4", P: "g4@2 f4@2 f4@3 f4 f4@6 d4@2", Q: "c4", R: "c4@3 c4!2 d4 bb3!2",
  S: "bb3@8 ~@2 g3 ~ g3 ~ g3 ~", T: "ab3@3 ab3 bb3!2 d4!2", U: "d4@4 ~ bb3!2 g4", V: "g4@3 g4!2 bb4 g4 e4",
  W: "f3@3 f3!2 g3 f3!2", X: "f3 c4!3 eb3!2 ab3@2", Y: "g3 ~ g3 ~@5 b3@4 g3@4", Z: "~@2 c4 eb4 ~@2 f3 ab3",
  AA: "~@2 g3 c4 ~@2 g3 c4", AB: "~ eb4 c4 bb3", AC: "bb3@4 ~ g3!3", AD: "g3@3 eb3", AE: "g3 d4 g4 c4 ~@4",
  AF: "d4@2 c4 bb3 bb3@2 ~@2", AG: "eb3@4 ~ g3!3", AH: "eb3@8 ~@2 g3 ~ g3 ~ g3 ~",
  AI: "d4 ~ eb4 ~ c4 ~ bb3 ~ c4 ~ bb3 ~ bb3 ~ bb3 ~", AJ: "~ eb3",
})).s("gm_tenor_sax").gain(0.4)

// other · baritone sax · "Barytonsaksofon"
const baritone_sax = note(`<
  ~ A B C D A E C F A B C G A H C I J K L M N O P Q R S T G A B C F J K L M N O P Q R S T G A B C U V W
>`.pickRestart({
  A: "c3 g3 eb4@2 f2 c3 ab3@2", B: "bb2 f3 d4@2 eb2 bb2 g3 d4", C: "ab2 eb3 c4@2 f2 c3 ab3@2", D: "f2 d3 g3 a3 b3@4",
  E: "bb2 f3 eb4@2 eb2 bb2 g3 d4", F: "c3 g3 c4 d4 eb4@4", G: "g2 d3 g3 a3 b3@4",
  H: "bb2@2 f3@2 d4@4 eb2@2 bb2@2 g3@3 d4", I: "c3@2 g3 c4 eb4 f4 g4@2", J: "ab2 eb3 c4@2 ab2 eb3 c4@2",
  K: "g2 d3 bb3 d3 c3 g3 eb4@2", L: "f2 c3 ab3@2 bb2 f3 d4@2", M: "eb2 bb2 g3 d4 c4@2 bb3@2",
  N: "a2 g3 eb4@2 gb2 d3 a3@2", O: "g2 d3 bb3 d3 e2 c3 g3@2", P: "f2 c3 ab3 c3 eb2 c3 ab3@2",
  Q: "d2 f3 ab3 c4 g3@2 g2@2", R: "c3 g3 c4 eb4 f2 c3 f3 ab3", S: "bb2 f3 bb3 d4 eb2 bb2 g3 d4",
  T: "ab2 eb3 ab3 c4 f2 c3 f3 ab3", U: "c3 g3 c4 d4 eb4@2 g3@2", V: "ab2 eb3 c4@2 g2 d3 g3@2", W: "c3 g2 c3 d3 eb3@4",
})).s("gm_baritone_sax").gain(0.4)

stack(alto_sax, tenor_sax, baritone_sax)

More by Secret Garden