Strudelify

Candy Pop

TWICE

KeyG majorTempo87 bpm
0:00/0:00
// Candy Pop — TWICE
// 87 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 7 "Piano" named as a piano, played on piano (its lead 8 bass lead patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/4380266; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 72 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(87/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
const piano = note("<~@3 A B ~@10 C D@2 E F ~@16 C D@2 E F ~@15 G H ~@14>".pickRestart({
  A: "~@14 f4 g4", B: "g4@4 g4@2 g4 f4 f4@2 f4 g4 g4@2 ~@2", C: "~@2 d4 g4", D: "d5 c5 b4 c5 b4@2 b4@2 b4@2 g4 d5@5",
  E: "g4 a4 b4 c5 b4@2 b4@2 ~ g4 a4 b4 b4@2 b4@2", F: "[d#4,g4,c5]@2 [d4,b4] [c4,g4] [c4,d#4,g4]@2 [d4,a4]@2",
  G: "a4@2 a4 g4 a4 b4@3 a4 a4@2 g4 a4 b4@3",
  H: "[d#4,g4,c5]@2 [d#4,g4,c5]@2 [d#4,g4,c5]@2 [d#4,g4,b4]@2 [d#4,g4,c5]@3 [d#4,g4,d5]@4 ~", // Cm D#aug Cm D#maj7
})).s("gm_piano").gain(0.3)

// other · piano
const piano_2 = note("<~@4 A B ~@22 A C ~@24 D E ~@16>".pickRestart({
  A: "~@14 f4 g4", B: "g4@4 g4!2 g4@2 f4!3 g4 g4@4", C: "g4@4 g4!3 f4!4 g4 g4@2 ~@2",
  D: "b4@2 b4@2 b4@2 a4 a4@2 g4 g4@4 g4 a4", E: "b4@2 b4@2 b4@2 d5 b4@3 a4@2 g4@2 a4@2",
})).s("gm_piano").gain(0.3)

// other · piano
const piano_3 = note("<~@6 A B ~@16 C ~@8 D E ~@15 F G H I ~@18>".pickRestart({
  A: "~@2 b4@2 g4@2 b4@2 g4@2 g4@2 f4 g4!2 d4", B: "[e3,g3,d4]@2 d4 b4@2 b4 [c4,d#4,a4]@6 ~@4",
  C: "~@8 [b3,g4,b4]@3 [d4,a4,c5] [g4,b4,d5]@4", D: "~ d5", E: "a4@3 b4 a4@3 b4 a4@3 g4 g4@4", F: "~ b4 a4 g4",
  G: "f#4@6 f#4@2 b4@4 a4@3 g4", H: "g4@8 ~@2 g4 a4@3 g4@2", I: "d#4@4 g4@4 a4@3 g4!2 a4@3",
})).s("gm_piano").gain(0.3)

// other · piano
const piano_4 = note("<~@7 A B ~@18 C D ~@29 E F@2 G H ~@9>".pickRestart({
  A: "~@14 [a3,f4] [b3,g4]", B: "[b3,d4,g4]@4 g4 g4@2 f4 f4@2 f4 g4 g4@2 ~@2", C: "~@2 d4!2 b4@2 b4 c5 b4@4 ~@2 d4!2",
  D: "~@2 d4!2 b4@2 b4 c5 d5@6 ~@2", E: "~@2 d4 g4", F: "d5 c5 b4 c5 b4@2 b4@2 b4@2 g4 d5@5",
  G: "g4 a4 b4 c5 b4@2 b4@2 ~ g4 a4 b4 b4@2 b4@2", H: "[d#4,g4,c5]@2 [d4,b4] [c4,g4] [c4,d#4,g4]@2 [d4,a4]@2",
})).s("gm_piano").gain(0.3)

// other · epiano2 · "Piano"
const epiano2 = note("<~@8 A B ~@19 C D ~@36 E F G ~@2>".pickRestart({
  A: "~@14 [a3,f4] [b3,g4]", B: "[b3,d4,g4]@4 g4!3 f4!4 g4 g4@4", C: "~@14 f4 g4", D: "g4@4 g4!3 f4 f4@2 g4@2 g4@4",
  E: "~ d4 d5 [d4,f#4,a4]", F: "[d4,f#4,a4]@4 [d4,f#4,a4]@4 ~@2 a4 b4 a4@2 g4@2", G: "[d4,b4] ~@3",
})).s("gm_epiano2").gain(0.3)

// other · epiano1 · "Piano"
const epiano1 = note("<~@10 A B C ~@7 D E F G H ~@16 D E F G I ~@17 D E F G J K L ~@2>".pickRestart({
  A: "~@2 d5@2 g4@2 g4@2 g4@2 g4!3 f4 f4@2", B: "f4 f4@2 f4 f4@2 f4 f4@2 f4 g4@2 g4@2 d4@2", C: "b4 ~",
  D: "d5 c5 b4 c5 b4@2 b4@2 b4@2 g4 d5@5", E: "d5 c5 b4 c5 b4@2 b4@2 e5@2 d5@2 b4@2 a4 g4",
  F: "e4@2 g4 b4@3 b4@2 a4@2 b4 a4@3 b4@2", G: "c5@6 c5 d5@3 b4@2 a4@2 g4@2", H: "[b3,d4,g4] ~@7", I: "[d4,g4,b4] ~@7",
  J: "[b3,d4,g4] ~@3", K: "~ e5 d5 a4", L: "g4@2 ~@4 f#4 g4",
})).s("gm_epiano1").gain(0.3)

// chords · piano
const piano_5 = note("<~@12 A B ~@21 C D ~@12 E ~@19 F G H>".pickRestart({
  A: "~ d5", B: "a4@3 b4 a4@3 b4 a4@3 g4 g4@4", C: "a4@3 b4 a4@3 b4 a4@4 g4@4", D: "[f#3,a3,d4] ~",
  E: "~@8 [b3,g4,b4]@3 [d4,a4,c5] [g4,b4,d5]@4", F: "~ d4 d5 [d4,a4]",
  G: "[c4,d#4,g4,a4]@4 [c4,d#4,g4,a4]@4 ~@2 a4 b4 [f#4,a4]@2 g4@2", H: "[b3,d4,g4] ~@7",
})).s("gm_piano").gain(0.19)

// other · piano
const piano_6 = note("<~@14 A B ~@15 C D E ~@11 F G H ~@24>".pickRestart({
  A: "a4@3 b4 a4@3 b4 a4@4 g4@4", B: "[f#3,a3,d4] ~", C: "~@2 d5@2 g4@2 g4@2 g4@2 g4@2 g4 f4 f4@2",
  D: "f4 f4@2 f4 f4@2 f4 f4@2 f4 g4@2 g4@2 d4@2", E: "b4 ~", F: "~ d4 d5 [d4,f#4,a4]",
  G: "[d4,f#4,a4]@4 [d4,f#4,a4]@4 ~@2 a4 b4 a4@2 g4@2", H: "[d4,g4,b4] ~@7",
})).s("gm_piano").gain(0.3)

// chords · clavinet · "Piano" · D Am7b5 G
const clavinet = note(`<
  ~@47
  [~ d4 d5 [d4,f#4,a4]]
  [[c4,d#4,g4,a4]@4 [c4,d#4,g4,a4]@4 ~@2 a4 b4 a4@2 g4@2]
  [[b3,d4,g4] ~@7]
  ~@22
>`).s("gm_clavinet").gain(0.3)

// chords · piano
const piano_7 = note(`<
  A B C D ~@7 E F G H ~ I J K ~ L J M N ~ O P Q R S T U V F G H ~ I J K ~ L J M N ~@5 W X Y Z AA AB AC ~ AD I J ~@2 L J
  M N ~@5
>`.pickRestart({
  A: "~@2 g3 [d4,g4] b5@2 g5@2 f5@2 d5@2 f5@2 a5@2, ~@4 g5 ~@11", // G5
  B: "~@2 [g3,d4] [g4,g5] b5@2 g5@2 f5@2 g4 d#5 d#6 c6 g5 d#5", C: "~@2 [g3,d4] [g4,g5] b5@2 g5@2 f5@2 d5@2 f5@2 a5@2",
  D: "~@2 [c4,g4] [c5,c6] c6@2 [c6,c7]@2 ~@8", E: "c4 [c4,d#4]", F: "[d4,g4] [g4,b4]", G: "[c4,f4]@15 ~",
  H: "[c4,e4]@15 ~", I: "[g4,b4]@15 ~", J: "[d4,f#4]@15 ~", K: "~ [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [e4,g4]",
  L: "[g4,b4]@11 ~ a4@4", M: "~ e4@2 [e4,g4]@2 [e4,g4]@2 [e4,g4]", N: "[d#4,g4]@15 ~",
  O: "[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,f4,b4] ~ [d4,f4,b4] ~ [d4,f4,b4] ~ [d4,f4,b4] ~", // G Bdim
  P: "[e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [d#4,g4,c5] ~ [d#4,g4,c5] ~ [d#4,g4,c5] ~", // Em Cm
  Q: "~@4 [d4,g4] ~ [d4,g4] ~ [d4,f4] ~ [d4,f4] ~ [d4,f4] ~@3", // G5 Dm
  R: "~@4 [e4,g4] ~ [e4,g4] ~ [d#4,g4] ~ [d#4,g4] ~ [d#4,g4] ~@3", // Em D#
  S: "[b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~", // Bm
  T: "[b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [c4,d#4] ~ [c4,d#4] ~ [c4,d#4] ~ [c4,d#4] ~", // E5 Cm
  U: "~@4 [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~", // Bm
  V: "[c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,d#4] ~ [c4,d#4] ~ [c4,d#4] ~@3", W: "[b3,d4]@11 ~ [b3,d4]@4",
  X: "[b3,d4]@4 e4@4 d4@4 c4@3 b3", Y: "[b3,d4]@15 ~", Z: "c4@8 [c4,e4]@3 [c4,e4]@3 [c4,e4]@2",
  AA: "[b3,d4]@3 [b3,d4]@3 [b3,d4]@2", AB: "[d4,f#4]@3 [d4,f#4]@3 [d4,f#4]@2", AC: "[b3,e4]@3 [b3,e4]@3 [b3,e4]@2",
  AD: "~@2 [c5,d#5] [d#5,g5] d6 [d#6,g6] c6 [d#5,g5] ~@8", // Cm D#
})).s("gm_piano").gain(0.3)

stack(piano, piano_2, piano_3, piano_4, epiano2, epiano1, piano_5, piano_6, clavinet, piano_7)