Strudelify

Accidentally In Love

Jess Chen

KeyG majorTempo138 bpm
0:00/0:00
// Accidentally In Love — Jess Chen
// 138 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5620510; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(138/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · violin
const violin = note(`<
  A B A C A B A B D E F E G H I J K L K L M N O P Q@2 R@2 S T U V W ~ E F E G H I J X Y Z AA AB AC AD AE AF AG AH AI Q@2
  R@2 S T U V AJ@2 AK@2 S T U V AL@2 ~@16 AM@8 Q@2 AN@2 S T AO AP AQ
>`.pickRestart({
  A: "g4 ~@3 d4 ~ g4 ~ g4 ~@3 g4 ~@3", B: "e4 ~@3 e4 ~ e4 ~ e4 ~@3 e4 ~@3", C: "f#4 ~@3 d4 ~ f#4 ~ f#4 ~@3 f#4 ~@3",
  D: "g4", E: "~@2 b4 d5!2 b4 d5 b4", F: "d5@2 e5@2 g4@2 a4 b4", G: "e5@2 d5@2 g4 a4 b4 c5", H: "b4@2 b4@2 b4 a4!2 g4",
  I: "a4 b4 a4 b4 a4 g4!2 e4", J: "b4@2 b4@2 a4 g4!3", K: "~@4 g4 ~ g4 ~@5 g4 ~@3", L: "~@4 e4 ~ e4 ~@5 e4 ~@3",
  M: "~@4 c6 ~ b5 ~ c6 ~ b5 ~ b5 ~ a5 ~", N: "a5@2 ~@2 a5@2 ~@2 a5 ~ g5 ~ g5 ~ e5 ~",
  O: "b5@2 ~@2 b5@2 ~@2 a5 ~ g5 ~ g5@2 ~@2", P: "g5@2 ~@4 g5 ~ a5 ~ b5@2 ~@4",
  Q: "[b5@2 b5@2 ~@2 c6@2 c6@4 ~@2 b5@4 c6@2 b5@2 a5@2 g5@4 a5 b5@3]/2",
  R: "[b5!2 ~ c6 c6@2 g5 d6@2 c6 b5 c6 b5@2 a5@2]/2", S: "b5!2 ~ c6 c6@2 ~ c6", T: "b5 c6 b5 c6 a5@2 a5@2",
  U: "g5@5 a5 b5 a5", V: "a5@5 b5 a5 g5", W: "g5 ~", X: "g4@2 ~@3 b4 d5 b4", Y: "d5@2 c5@2 b4 a4 g4!2",
  Z: "d5@2 d5 b4 d5@2 d5@2", AA: "e5 d5!2 c5!2 b4!2 e5", AB: "e5@2 ~@4 e5!2", AC: "e5 d5!2 c5!2 b4!2 d5",
  AD: "d5@2 d5@2 d5 c5@2 b4", AE: "g4@2 ~ g4 a4 b4@2 ~", AF: "~ b4!2 g5", AG: "g5 f#5 e5 d5",
  AH: "d5 c5 b4 g4@2 ~ d5 c5", AI: "b4 g4@2 ~ g4@2 a4@2", AJ: "[b5!2 ~ c6 c6@2 ~ g6@2 e6 d6 e6 e6@2 d6@2]/2",
  AK: "[~ b5!2 c6 c6@2 g5 d6@2 e6 d6!2 e6@2 c6@2]/2", AL: "[g5@2 ~ g4@5]/2",
  AM: "[~ d5!2 c5@2 d5 c5 b4@2 d5!2 c5@2 d5 c5 b4@2 d5!2 c5@2 d5 c5 d5@3 d5!2 e5 d5 d5@2]/4",
  AN: "[b5!2 ~ c6 c6@2 ~ d6@2 c6 b5 c6 b5@2 a5@2]/2", AO: "g5 f#5", AP: "d5@8 b4@2 d5@2 b4 a4 g4@2", AQ: "g5",
})).s("gm_violin").gain(0.3)

// other · pizzicato strings
const pizzicato_strings = note(`<
  ~@79
  [~@2 b4 a4!2 g4!2 a4]!3
  [a4@2 b4@2 a4 g4!3]
  [~@2 b4 a4!2 g4!2 a4]!2
  [~@2 b4 a4!2 g4!3]
  [a4@2 b4@2 a4 g4!3]
  ~@17
>`).s("gm_pizzicato_strings").gain(0.3)

// other · viola
const viola = note(`<
  A@2 B C A@2 B D E F@7 G H G H I J K H L M L N L M O P Q@2 F@14 ~ O P R S L M L N L M O P L M T N L M O P ~ U@2 V@4 W@8
  X@2 Y Z@8 L M AA N L M AB AC AD
>`.pickRestart({
  A: "~@2 b4 a4!2 g4!2 a4", B: "~@2 b4 a4!2 g4!3", C: "a4@2 b4@2 a4 g4!2 ~", D: "a4 g4!2 e4!2 c#4 c#4@2", E: "c4",
  F: "b3 ~@3 b3 ~ b3 ~ b3 ~@3 b3 ~@3", G: "g3@2 ~@2 d4 ~ d4 ~ g3@2 ~@2 d4@2 ~@2",
  H: "c3@2 ~@2 g3 ~ g3 ~ c3@2 ~@2 c3 ~ e3 ~", I: "e3@2 ~@2 b3 ~ b3 ~ e3@2 ~@2 b3@2 ~@2",
  J: "a3@2 ~@2 e3 ~ e3 ~ a3@2 ~@2 e3@2 ~@2", K: "d3@2 ~@2 a3 ~ a3 ~ d3@2 ~@2 d3 ~ f#3 ~",
  L: "d4 ~ d4 ~@3 c4 ~ c4 ~ c4 ~ c4 ~ c4 ~", M: "c4 ~ c4 ~ c4 ~ c4 ~ f#4 ~ d4 ~ a3 ~ f#3 ~",
  N: "c4 ~ c4 ~ c4 ~ c4 ~ f#4 e4 d4 ~ a3 ~ f#3 ~", O: "g3 ~@3 g3 ~@3 e4 ~@3 e4 ~@3", P: "a3 ~@3 a3 ~@3 e4 ~@3 e4 ~@3",
  Q: "[c3!6 c3@6 ~@4]/2", R: "g4@2 ~ g4@2 ~ g4@2", S: "~ a4@2 ~ e4@2 e4@2", T: "~@2 d4 ~ d4@2 c4 ~ c4 ~ c4 ~ c4 ~ c4 ~",
  U: "[~ d4 b4 a4 b4 a4 g4 a4@2 g4@7]/2",
  V: "[~@2 b4 a4 b4 a4 g4 a4@2 b4@4 c5 b4 a4@2 ~ b4 a4 b4 a4 g4 a4@2 g4@4 ~@3]/4",
  W: "[~@2 b4 a4 b4 a4 g4 a4@2 b4@4 c5 b4 a4@2 ~ d5!2 e5 d5!2 b4@2 g4@4 ~@3]/4", X: "[~@2 b4 a4 b4 a4 g4 a4@2 ~@7]/2",
  Y: "a4 ~ d5!2 e5 d5 d5@2", Z: "[~@5 d4 e4 g4@6 d4 e4 g4@6 d4 e4 f#4@9]/4", AA: "d4 ~ d4 ~@3 c4 ~ c4 ~ c4 ~@3 c4 ~",
  AB: "e5 d5", AC: "b4 ~", AD: "g4",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  A B A C A B A D E A B A B F D B G H I J K L M N O P O P O P Q@2 R@2 A B A B F D B A B A B F D B S T@2 U V O P O P O P
  Q@2 O P W P O P Q@2 X@2 Y S Y Z AA AB AC AD Y S Y Z AA AB AC AD AE T AF AG AE T AF AG O P AH P O P AI AJ Y
>`.pickRestart({
  A: "g2@2 ~@2 g3 ~ g3 ~ g2@2 ~@2 g3@2 ~@2", B: "c3@2 ~@2 g3 ~ g3 ~ c3@2 ~@2 g3@2 ~@2",
  C: "d2@2 ~@2 d3 ~ d3 ~ d2@2 ~@2 d3@2 ~@2", D: "a2@2 ~@2 e3 ~ e3 ~ a2@2 ~@2 e3@2 ~@2", E: "c3@8 ~@2 e2 ~ f2 ~ f#2 ~",
  F: "e2@2 ~@2 e3 ~ e3 ~ e2@2 ~@2 e3@2 ~@2", G: "g3@2 b3 d4!2 b3 d4 b3", H: "d4@2 e4@2 g3@2 a3 b3",
  I: "~@2 b3 d4!2 b3 d4 b3", J: "e4@2 d4@2 g3 a3 b3 c4", K: "b3@2 b3@2 b3 a3!2 g3", L: "a3 b3 a3 b3 a3 g3!2 e3",
  M: "b3@2 b3@2 a3 g3 g3@2", N: "g3@2 ~ g3 a3 b3@2 ~", O: "g2 ~ g2 ~@3 a2 ~ a2 ~ a2 ~ a2 ~ c3 ~",
  P: "c3 ~ c3 ~ c3 ~ c3 ~ d3 ~ d3 ~ d3 ~ d3 ~", Q: "e3 ~@3 e3 ~@3 e3 ~@3 e3 ~@3",
  R: "[c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@12 ~@2 e2 ~ f2 ~ f#2 ~]/2", S: "c3", T: "c3 ~@3 c3 ~@3 c3 ~@3 c3 ~@3",
  U: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ a2 ~ a2 ~", V: "a2 ~ a2 ~ a2 ~ a2 ~@9", W: "~@2 g2 ~ g2@2 a2 ~ a2 ~ a2 ~ a2 ~ c3 ~",
  X: "[c3!6 c3@6 ~@4]/2", Y: "g2", Z: "d3", AA: "g3", AB: "c4", AC: "e3", AD: "a3", AE: "g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3",
  AF: "a3 ~@3 a3 ~@3 a3 ~@3 a3 ~@3", AG: "d3 ~@3 d3 ~@3 d3 ~@3 d3 ~@3", AH: "g2 ~ g2 ~@3 a2 ~ a2 ~ a2 ~@3 c3 ~",
  AI: "e3!2 d3!2", AJ: "d3!2 ~@2",
})).s("gm_cello").gain(0.3)

stack(violin, pizzicato_strings, viola, cello)