Strudelify

Can't Help Falling In Love

Louise K

KeyF majorTempo80 bpm
0:00/0:00
// Can't Help Falling In Love — Louise K
// 80 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5878331; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 47 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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 · flute · "플루트"
const flute = note("<~@8 A B C D E F G H ~@5 A B C D E F G H ~@5 A B C I E F G H ~@5>".pickRestart({
  A: "f5 c6", B: "f5@11 ~ g5@2 a5@2", C: "bb5 a5", D: "g5@11 ~ c5@4", E: "d5 e5", F: "f5@8 g5@3 a5@2 bb5@3", G: "a5 g5",
  H: "f5@11 ~@5", I: "g5@11 ~ f5@2 e5@2",
})).s("gm_flute").gain(0.3)

// other · flute · "플루트" · soft notes
const flute_soft = note("<~@41 [~@3 c5] [d5 e5] [f5@8 g5@3 a5@2 bb5@3] [a5 g5] [f5@15 ~] ~>").s("gm_flute").gain(0.2)

// other · tremolo strings · "Violin II"
const tremolo_strings = note(`<
  A B C D E F G H A I J D E K L H M@3 N O A B C D E P G H M@3 N O A B C Q R S T U E V W X ~
>`.pickRestart({
  A: "c4 e4", B: "d4@6 d4 f4", C: "f4!2", D: "e4@3 g3", E: "bb3 c4", F: "a3@8 d4@3 c4@2 e4@3", G: "f4 e4", H: "c4@3 ~",
  I: "d4@6 c4!2", J: "d4 f4", K: "a3@8 d4@3 c4@2 f4@3", L: "c4 f4 e4@2", M: "c4@4 e4 ab4 b4 d5", N: "gb4@3 ~",
  O: "bb4 g4", P: "d4@8 d4@3 c4@2 e4@3", Q: "e4@6 c5 g4", R: "bb4 c5", S: "a4@8 d5@3 d5@2 d5@3", T: "f5 db5",
  U: "d5@3 ~", V: "c4@8 g4@3 a4@2 bb4@3", W: "a4 e4", X: "c4",
})).s("gm_tremolo_strings").gain(0.25)

// other · violin · "바이올린"
const violin = note(`<
  A B C D E F@2 G H I J K L M N G O@3 P L H B C Q R S T G O@3 P L H B C K U V W G L S X I ~
>`.pickRestart({
  A: "a3!2", B: "bb3", C: "bb3 f4", D: "e4@3 c4", E: "bb3 e4", F: "a4 g4", G: "f4@3 ~", H: "f4 a3", I: "f4", J: "d4 f4",
  K: "e4@3 ~", L: "d4 e4", M: "f4 g3", N: "c4!2", O: "a3 b3", P: "d4@3 ~", Q: "e4", R: "bb3 c4",
  S: "a3@8 g3@3 a3@2 bb3@3", T: "a3 c4", U: "bb4 c5", V: "a4@8 g4@3 g4@2 g4@3", W: "a4 e4", X: "a3 bb3",
})).s("gm_violin").gain(0.25)

// chords · piano · "피아노"
const piano = note("<A B C D E F G H A I C J K F G L M N O P Q ~@8 M N O P Q ~@13>".pickRestart({
  A: "~@3 a4 ~@3 g4, [f3,a3,c4,f4,c5]!2 [e3,a3,c4,e4,c5]!2, ~ a4@2 ~@2 g4@2 ~", // F Am
  B: "~@3 bb3 ~@3 bb3, [bb2,f3,d4,f4]!4, ~ bb3@2 ~@2 bb3@2 ~", // Bb
  C: "~@3 f4 ~@3 f4, [bb2,d3,f3,d4,bb4]!2 [a2,c3,f3,c4,a4]!2, ~ f4@2 ~@2 f4@2 ~", // Bb F
  D: "~@7 e4, [c3,e3,g3,c4,g4]!4, ~ e4@2 e4@2 e4@2 ~", // C
  E: "~@3 f4 ~@3 g4, [bb2,d3,f3,d4,bb4]!2 [c3,e3,g3,e4,c5]!2, ~ f4@2 ~@2 g4@2 ~", // Bb C
  F: "~@3 a4 ~@3 a4, [d3,f3,a3,f4,d5]!2 [bb2,d3,g3,f4,d5]!2, ~ a4@2 ~@2 a4@2 ~", // Dm Gm7
  G: "~@3 a4 ~@3 g4, [a2,c3,f3,f4,c5]!2 [c3,e3,g3,e4,c5]!2, ~ a4@2 ~@2 g4@2 ~", // F C
  H: "~@3 a4 ~@3 a4, [f3,a3,c4,f4,c5]!4, ~ a4@2 ~@2 a4@2 ~", // F
  I: "~@3 d4 ~@3 a4, [d3,f3,a3,a4]!2 [c3,f3,a3] [c3,f3,a3,f4], ~ d4@2 ~ a4@3 ~, ~@5 d4@3", // Dm F
  J: "~@15 g4, [c3,e3,g3,c4,g4]!4, ~ e4@2 e4@2 e4@2 e4", // C
  K: "~@7 a4 ~@7 c5, [bb2,d3,f3,d4,bb4]!2 [c3,e3,g3,e4,c5]!2, ~ f4@2 f4 ~ g4@2 g4", // Bb C
  L: "~@6 a4@2 ~@7 f4, [f3,a3,c4,f4,c5]@2 [f3,a3,c4,f4,c5]@2 [f3,a3,c4,c5]@2 [f3,a3,c4,f5] a4, ~@2 a4@4 ~@2 f4@5 c5@3, ~@5 c6@3, ~@11 a5@5", // F
  M: "[a3,c4]@3 ~ c4 c4@2 e4 [ab3,b3]@4 [ab3,b3]@4, e4@7 ~ d4@8, ~@3 a4@5 ~@8, ~ a3 ~@2", // Am Abm
  N: "[c3,a3]@3 ~@2 c4@2 e4 [b2,ab3]@4 [b2,ab3]@4, e4@7 ~ d4@8, ~@3 a4@5 ~@8, ~ [c3,a3] ~@2", // F E F
  O: "[c3,a3]@3 ~@2 c4@2 e4 [ab3,b3]@4 [ab3,b3]@4, e4@7 ~ d4@8, ~@3 a4@5 ~@8, ~ [c3,a3] ~@2", // F Abm F
  P: "~ c5 ~ a4 ~ a4 ~ c5, gb5@4 c5@3 ~, a4@3 ~ gb4@4, [d3,a3] [d3,a3,c5,a5] [gb3,c4] [gb3,c4,a4,gb5]", // D5 D7 Gbdim
  Q: "~@7 [bb4,d5] ~@7 c3, [g3,bb3,g4,d5]@3 c5@5 ~@3 g3@2 g3@3, ~@2 bb4@4 a4@2 ~ e4@7, ~@2 [g3,bb3,g4,d5]@2 [c4,g4,c5,e5]!2 c4@2, ~@6 [g4,c5,e5] [e3,g4,c5,e5]", // Bb Gm C
})).s("gm_piano").gain(0.3)

// chords · piano · "피아노" · soft notes
const piano_soft = note("<~@21 A B C D E F G H ~@5 A B C D E F I J E K G L ~>".pickRestart({
  A: "~@7 bb4 ~@7 c5, [f3,a3,c4,f4,c5]!2 [e3,a3,c4,e4,c5]!2, ~ a4@2 a4 ~ a4@3, ~@7 g4", // F Am
  B: "~@3 bb3 ~@3 bb3, [bb2,f3,d4,f4]!4, ~ bb3@2 ~@2 bb3@2 ~", // Bb
  C: "~@7 d4 ~@7 d4, [bb2,d3,f3,d4,bb4]!2 [a2,c3,f3,c4,a4]!2, ~ f4@2 f4 ~ f4@2 f4", // Bb F
  D: "~@7 e4, [c3,e3,g3,c4,g4]@4 [c3,e3,g3,c4,g4]@4 c4@5 g4@3, ~ e4@2 e4@3 [c3,e3,g3,c5]@2, ~@8 [c3,e3,g3,g4]@3 e5@5, ~@5 g5@3", // C
  E: "~@3 f4 ~@3 g4, [bb2,d3,f3,d4,bb4]!2 [c3,e3,g3,e4,c5]!2, ~ f4@2 ~@2 g4@2 ~", // Bb C
  F: "~@3 a4 ~@3 a4, [d3,f3,a3,f4,d5]!2 [bb2,d3,g3,f4,d5]!2, ~ a4@2 ~@2 a4@2 ~", // Dm Gm7
  G: "~@3 a4 ~@3 g4, [a2,c3,f3,f4,c5]!2 [c3,e3,g3,e4,c5]!2, ~ a4@2 ~@2 g4@2 ~", // F C
  H: "~@3 a4 ~@3 a4, [f3,a3,c4,f4,c5]!4, ~ a4@2 ~@2 a4@2 ~", // F
  I: "~@3 a4 ~@3 g4, [a2,c3,f3,f4,c5]!2 [db3,e3,g3,e4,db5]!2, ~ a4@2 ~@2 g4@2 ~", // F Dbdim
  J: "[f4,c5] a4 [f4,c5] a4 ~@3 c4, [d3,f3,a3]@4 [d3,f3,a3]@4 c4@5 f4@3, ~@8 [c3,f3,a3,a4]@3 c5@5, ~@5 f5@3, ~@3 [c3,f3,a3,a4]", // F5 Dm F
  K: "~@3 a4 ~@3 a4, [a2,c3,f3,f4,c5]!2 [bb2,d3,g3,f4,d5]!2, ~ a4@2 ~@2 a4@2 ~", // F Gm7
  L: "~@6 a4@2 ~ c4@7, [f3,a3,c4,f4,c5]!2 [f3,a3,f4,c5]@2, ~ a4@2 ~@5", // F
})).s("gm_piano").gain(0.2)

stack(flute, flute_soft, tremolo_strings, violin, piano, piano_soft)