Strudelify

sans

Toby Fox

KeyD majorTempo101 bpm
0:00/0:00
// sans — Toby Fox
// 101 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6342215; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(101/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 · piano · "Toy Piano, reFX Nexus"
const piano = note("<A@2 B C A@2 B C A@2 B C A@2 B D ~@51 E F E G E F E G ~@8 A@3 B A@2 B C>".pickRestart({
  A: "b2 ~ b2 ~ b2 ~ b2 ~", B: "g2 ~ g2 ~ g2 ~ g2 ~", C: "c#3 ~ c#3 ~ c#3 ~ c#3 ~", D: "c#3 ~ c#3 ~ c#3 ~@3",
  E: "b2@4 b2@4 b2!2 ~ b2 c#3@2 d3@2", F: "b2@4 b2@4 b2 a#2 ~ a2 b2@2 a#2@2", G: "g2@4 g2@4 g2 a2 ~ b2 a#2@2 b2@2",
})).s("gm_piano").gain(0.4)

// other · piano · "Toy Piano, reFX Nexus #2"
const piano_2 = note("<A B C D A B C D A B C D A B C E ~@67 A B F G A B C D>".pickRestart({
  A: "b2@2 ~@2 b2@2 ~@2 d3 b2!2 ~ b2 ~ a2!2", B: "b2@2 ~@2 b2@2 ~@2 d3 ~@2 a2 b2 ~ a2 ~",
  C: "g2 ~@2 b2 g2 ~ b2 ~ c#3 ~@2 d3 c#3 ~ b2 ~", D: "d3 ~@2 b2 d3 ~ b2 ~ d3@2 ~@2 d3@2 ~@2",
  E: "d3 ~@2 b2 d3 ~ b2 ~ d3@2 ~@6", F: "b2@2 ~@2 b2@2 ~@2 d3 b2!2 ~ b2 ~ a2 g2",
  G: "g2 ~@2 b2 g2 ~ b2 ~ d3@2 ~@2 d3@2 ~@2",
})).s("gm_piano").gain(0.4)

// other · piano · "Piano, Kontakt [64bit]"
const piano_3 = note(`<
  ~@16 A B C D A B C D ~@4 A B C D A B C D E@2 F E@3 F E@3 F E G@3 H I J K L I J K L ~@31
>`.pickRestart({
  A: "b2 ~ b2 ~ b2@2 b2 a3", B: "b2 ~ b2 ~ a#2@2 b2@2", C: "g2 ~ g2 ~ d3@2 c#3 ~", D: "b2 ~ b2 ~ d3@2 d3 ~",
  E: "b2 ~ b2 ~@5", F: "g2 ~ g2 ~@5", G: "b2 ~@2 b2!2 ~ b2@2 ~@8", H: "b2 ~@2 b2 [b1,b2]@2 b2@2 ~@8",
  I: "b2!2 ~ b2 d3 ~ b2 ~ d3 c#3 ~ b2 c#3 ~ b2 ~", J: "b2!2 ~ b2 d3 ~ c#3 ~ d3 c#3 ~ b2 f#3 ~ c#3 ~",
  K: "a2!2 ~ a2 d3 ~ c#3 ~ g2!2 ~ g2 b2 ~ c#3 ~", L: "e2!2 ~ e2 c#3 ~ d3 ~ f#3@4 b2@4",
})).s("gm_piano").gain(0.4)

// bass · piano · "Piano, Kontakt [64bit] #2"
const bass = note(`<
  ~@16 A B C D A B C D ~@4 A B C D A B C D E@2 F E@3 F E@3 F E G@4 H I J K H I J K ~@31
>`.pickRestart({
  A: "b1 ~ b1 ~ b1@2 b1 ~", B: "b1 ~ b1 ~ a#1@2 b1@2", C: "g1 ~ g1 ~ d2@2 c#2 ~", D: "b1 ~ b1 ~ d2@2 d2 ~",
  E: "b1 ~ b1 ~@5", F: "g1 ~ g1 ~@5", G: "b1 ~@2 b1!2 ~ b1@2 ~@8", H: "b1!2 ~ b1 d2@2 b1@2 d2 c#2 ~ b1 c#2@2 b1@2",
  I: "b1!2 ~ b1 d2@2 c#2@2 d2 c#2 ~ b1 f#2@2 c#2@2", J: "a1!2 ~ a1 d2@2 c#2@2 g1!2 ~ g1 b1@2 c#2@2",
  K: "e1!2 ~ e1 c#2@2 d2@2 f#2@4 b1@4",
})).s("gm_piano").gain(0.4)

// bass · piano · "Piano, Kontakt [64bit] #3"
const bass_2 = note(`<
  ~@16 A B C B C B C B D ~@3 A B C B C B C B E F G F G F G F G F G H I J K L M N O P Q N O P D ~ R ~@3 S T U V W U@2 V W
  U@2 V W U@2 V ~@9
>`.pickRestart({
  A: "b1@2 d2 b1!2 ~ d2@2 b1!2 d2 b1 d2 b1 d2 b1",
  B: "b1@2 d2 b1!2 ~ d2@2 b1!2 d2 b1 [d2,b2] [b1,g2,a2] [d2,f2,b2] [b1,g2,a2], ~@4 d2 ~@3", // G Em Bdim Em
  C: "b1@2 d2 b1!2 ~ d2@2 b1!2 d2 b1 d2 b1 d2 b1, f2 ~@15", D: "f2 ~@15", E: "b1@2 ~@6 b1@2 ~@2 b2 ~ b2 ~, f2 ~@15",
  F: "b1@2 ~@6 b1@2 ~@2 b1@2 b2 ~, ~@12 b2 ~@3", G: "b1@2 ~@6 b1@2 ~@2 b2 ~ b2 ~",
  H: "b1@2 ~@6 c2!2 d2!2 b2 [g2,a2] [f2,b2] [g2,a2]", I: "[b1,f2] ~ b1!3 ~ b1 ~ d#2 ~ b2 ~ a2 ~ g2 ~",
  J: "b1 ~ b1!4 d#2 ~ d#2 ~ b2 ~ b2 a2 g2 f2", K: "b1 ~ b1!3 ~ b1 ~ d#2 ~ b2 ~ a2 ~ g2 ~",
  L: "b1 ~ b1!4 d#2 ~ d#2@2 ~@6", M: "b1 ~ b1!2 d2 ~ d2 ~ b1@2 ~ b1 d2!4, ~@8 d#2 ~@7",
  N: "b1 ~ b1!2 [b1,d2] ~ d2!6 b2 [g2,a2] [f2,b2] [g2,a2]", O: "[b1,f2] b1!3 d2!2 ~ d2 b1!4 d2 ~ d2 ~",
  P: "b1 ~ b1!2 d2!4 d#2!4 d2!2 b2 [g2,a2]", Q: "[b1,f2] ~ b1!2 d2 ~ d2 ~ b1@2 ~ b1 d2!4, ~@8 d#2 ~@7",
  R: "~@12 b1 ~ e2 ~", S: "b1@2 ~@2 b1@2 ~@2 d#2 ~ d#2 ~ b2 [g2,a2] [f2,b2] [f2,g2]", T: "b1 ~ d2 ~ b1 ~ d2 ~, g2 ~@15",
  U: "b1 ~ d2 ~ b1 ~ d2 ~", V: "b1@2 ~@2 d2@2 ~@4 b1 ~ d2@2 ~@2", W: "~@2 b1 ~ d2 ~ b1 ~ d2@2 ~@2 [d2,b2] ~ [b1,b2] ~",
})).s("gm_piano").gain(0.4)

// bass · piano · "Piano, Kontakt [64bit] #3" · soft notes
const bass_soft = note("<~@36 A@11 ~@16 B@3 ~@4 A ~@3 A ~@3 A ~@12>".pickRestart({
  A: "~@8 b2 ~ b2 ~@5", B: "b1 ~@7",
})).s("gm_piano").gain(0.1)

// other · piano · "Piano, Serum"
const piano_4 = note("<~@24 [b2!16]!2 [g2!16] [d3!8 c#3!4 ~@4] ~@63>").s("gm_piano").gain(0.4)

// other · piano · "Piano, Talker"
const piano_5 = note("<~@20 A B C D ~@32 E F G H ~@31>".pickRestart({
  A: "b3 ~ b3!2 d4 c#4 ~ b3 c#4@4 b3@4", B: "b3 ~ b3!2 f#4 e4 ~ d4 g4@4 f#4@4", C: "g3 ~ g3!2 g4 f#4 ~ e4 d4@4 c#4@4",
  D: "b3 ~ b3!2 d4 c#4 ~ b3 d4@8", E: "b3!4 g4 f#4 d4 b3!4 ~ b3@2 b3@2", F: "b3!4 g4 f#4 d4 ~@5 d4@2 b3@2",
  G: "a3!4 g4 f#4 d4 b3 ~@4 b3@4", H: "b3!4 d4@2 d4@2 d4@4 ~@4",
})).s("gm_piano").gain(0.4)

// other · piano · "Piano, MiniSynth"
const piano_6 = note("<~@24 A B C D E F G H E F I J ~@8 K L M N ~@43>".pickRestart({
  A: "b3 ~@2 b3@3 b3@2 b3@4 d4@4, ~@6 e2 ~@9", B: "c#4@2 b3@2 b3@2 a3@2 [a#3,c4] c#4 b3@2 f#3@2 a3@2",
  C: "g3 f#3 e3 d3 d4@2 d4@2", D: "f#4 d4 d4@2 c#4 b3 b3@2 c#4 b3 b3@2 ~@4",
  E: "b3 d4 c#4 b3 d4@2 b3@2 e4 d4 c#4 b3 f#4@2 d4@2", F: "g4 f#4 ~ e4 d4 c#4 ~ b3!3 ~ b3 d4@2 b3@2",
  G: "g3!2 ~ g3 b3@4 a3!2 ~ a3 d4@4", H: "d4 b3 d4 b3 d4@4", I: "g3!2 ~ g3 b3@2 d4@2 c#4@4 b3@4",
  J: "f#4 d4 ~ c#4 f#4 d4 ~ c#4 c#4@8", K: "b4@15 ~", L: "b4@2 b4!2 c#5 d5 c#5 b4 d5@8", M: "g4@15 ~",
  N: "b4!2 ~ b4 d5!2 ~ d5 d5@8",
})).s("gm_piano").gain(0.35)

// other · piano · "Piano, reFX Nexus #3"
const piano_7 = note("<~@48 A B C D ~@27 E F E ~@9>".pickRestart({
  A: "~@10 b4!2 f#5@2 g5@2", B: "~@8 g5 f#5 ~ e5 d5@2 c#5@2", C: "~@8 b4@3 a4 b4@2 b4@2", D: "~@2 b4 c#5",
  E: "b4!2 b5 ~ f#5 ~@2 f5@2 e5@2 d5@2 b4 d5 e5", F: "b4!2 a5 [a#5,b5] f#5@3 f5@2 e5@2 d5@2 b4 d5 e5",
})).s("gm_piano").gain(0.4)

stack(piano, piano_2, piano_3, bass, bass_2, bass_soft, piano_4, piano_5, piano_6, piano_7)

More by Toby Fox