Strudelify
dance monkey cover art

2019 · The Kids Are Coming - EP

dance monkey

Tones And I

KeyA majorTempo95 bpm
0:00/0:00
// dance monkey — Tones And I
// 95 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5933102; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(95/4)

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

// other · piano · "Soprano"
const piano = note(`<
  A B C A@2 B C A ~@2 D@2 E@3 F G@3 H ~@7 I J@4 K L M N E@3 F G@3 H ~@10 O@2 P Q@2 ~ R S T ~ U V W ~@2 X ~ Y Z@4 ~@3 AA
  AB AC AD C A
>`.pickRestart({
  A: "f#4", B: "a4", C: "g#4", D: "[f#4@5 ~ c#5 b4]/2",
  E: "[b4@2 a4@2 b4@2 a4@2 b4@2 a4@2 a4@2 a4 g#4@3 e4@2 f#4@4 ~@3 e4 a4 a4@2 g#4@5 a4 a4@2 g#4@2 ~ f#4 f#4@2 f#4@3]/3",
  F: "a4@2 ~@2 b4@3 g#4",
  G: "[g#4@2 f#4@2 g#4@2 f#4@2 g#4@2 f#4@2 f#4 f#4@2 a4@5 ~@8 f#4 a4@2 g#4@3 f#4@2 g#4@3 f#4 g#4@3 f#4!2 ~ a4@2]/3",
  H: "g#4@4 ~@3 f#4 f#4@4 f#4@4", I: "~@6 f#4 e4",
  J: "[f#4@2 e4@2 f#4@2 e4@2 f#4 e4@2 f#4@2 a4@2 g#4@5 ~@8 a4 a4@2 g#4@3 f#4 f#4@3 e4 f#4@2 e4@2 f#4@2 a4@2 g#4@9 ~@2 g#4@2 a4@2 g#4@2]/4",
  K: "c#5@2 c#5@2 c#5@2 c#5@2 c#5@2 c#5@2 c#5@2 c#5 a4", L: "~@2 a4@2 a4@2 a4@2 a4@2 a4@2 a4@2 a4 b4",
  M: "~@2 b4@2 b4@2 b4@2 b4@2 b4@2 b4@2 b4 g#4", N: "~ g#4!3 c#5@2 b4@2", O: "[~@14 a4 g#4@5 ~@2 a4 g#4@5 f#4@4]/2",
  P: "a4 c#5", Q: "[d5@4 c#5@3 b4@2 ~@7]/2", R: "c#5!8", S: "d5!4 c#5!4", T: "b4!7 ~", U: "[a4,c#5]!8",
  V: "[b4,d5]!4 [a4,c#5]!4", W: "[g#4,b4]!7 ~", X: "~@3 a4 f#4 c#5 a4 ~", Y: "~@2 c#5 b4",
  Z: "[c#5@2 c#5!2 b4@2 b4!2 b4@2 a4!2 c#5@2 c#5 a4@5 ~@7 a4 c#5 c#5@2 b4@3 a4@2 b4@2 a4@2 b4 a4@2 c#5@3 c#5 a4@3 c#5@2 ~@12]/4",
  AA: "~@6 a4 g#4@5 f#4@4", AB: "c#5", AC: "d5", AD: "b4",
})).s("gm_piano").gain(0.5)

// other · piano · "Alto"
const piano_2 = note(`<
  ~@3 A B@4 C@3 D ~@4 E F G H ~@4 I@4 ~@3 J C@3 D ~@4 K L@2 ~@5 I@4 M N@2 ~ O P Q@2 ~@4 I@4 ~ R ~ S T U V ~ W@4 X@4 Y
>`.pickRestart({
  A: "~@6 f#4 e4",
  B: "[f#4@2 e4@2 f#4@2 e4@2 f#4 e4@2 f#4@2 a4@2 g#4@5 ~@8 a4 a4@2 g#4@3 f#4 f#4@3 e4 f#4@2 e4@2 f#4@2 a4@2 g#4@9 ~@2 e4@2 f#4@2 e4@2]/4",
  C: "[f#4@2 e4@2 f#4@2 e4@2 f#4 e4@2 f#4@2 a4@2 g#4@5 ~@8 a4 a4@2 g#4@3 f#4 f#4@3 e4 f#4@3 e4 f#4@2 a4@2 ~]/3",
  D: "g#4@3 ~@5", E: "[f#4,a4]", F: "[d4,f#4]", G: "[e4,g#4]", H: "[c#4,e4]",
  I: "[c#5@2 c#5!2 b4@2 b4!2 b4@2 a4!2 c#5@2 c#5 a4@5 ~@7 a4 c#5 c#5@2 b4@3 a4@2 b4@2 a4@2 b4 a4@2 c#5@3 c#5 a4@3 c#5@2 ~@12]/4",
  J: "g#4@4 ~ e4 f#4 e4", K: "a4 c#5", L: "[d5@4 c#5@3 g#4@2 ~@7]/2", M: "f#4 a4", N: "[b4@4 a4@3 g#4@2 ~@7]/2",
  O: "f#4 ~@3 a4@4", P: "b4@4 a4@3 g#4", Q: "[g#4@8 ~@6 a4 g#4@5 ~@2 a4 g#4@5 f#4@4]/2", R: "~ a4 f#4 ~@2 a4 f#4 ~",
  S: "~@2 f#4 g#4", T: "[a4,c#5]!8", U: "[b4,d5]!4 [a4,c#5]!4", V: "[e4,g#4] ~@7",
  W: "[a4@13 c#5@2 f#4@14 f#4@2 g#4@14 g#4@2 e4@15 g#4@2]/4", X: "[a4@13 c#5@2 f#4@14 f#4@2 g#4@14 g#4@2 e4@15 ~@2]/4",
  Y: "c#4",
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C D A B C D A B C E@4 F@3 ~ G H I J G H I J F@3 ~ F@3 ~ G H I J G H I K G H I J G H I K D A B C D A B C G H I J
  G H I J G H I J G H I J L@4 M@4 N
>`.pickRestart({
  A: "[d3,f#3]", B: "[e3,g#3]", C: "[c#3,e3]", D: "[f#3,a3]", E: "[f#3@13 a3@2 d3@14 d3@2 e3@14 e3@2 c#3@17]/4",
  F: "[f#3@13 a3@2 d3@14 d3@2 e3@14 ~@3]/3", G: "f#2@2 f#3 f#2 ~ f#2 f#3 f#2 f#2@2 f#3 f#2 ~ f#2 f#3 f#2",
  H: "d2@2 d3 d2 ~ d2 d3 d2 d2@2 d3 d2 ~ d2 d3 d2", I: "e2@2 e3 e2 ~ e2 e3 e2 e2@2 e3 e2 ~ e2 e3 e2",
  J: "c#2@2 c#3 c#2 ~ c#2 c#3 c#2 c#2@2 c#3 c#2 ~ c#2 c#3 c#2",
  K: "c#2@2 c#3 c#2 ~ c#2 c#3 c#2 c#2@2 c#3@2 c#2@2 c#3@2", L: "[f#3@13 a3@2 d3@14 d3@2 e3@14 e3@2 c#3@15 e3@2]/4",
  M: "[f#3@13 a3@2 d3@14 d3@2 e3@14 e3@2 c#3@15 ~@2]/4", N: "a2",
})).s("gm_electric_bass_finger").gain(0.3)

stack(piano, piano_2, bass)