Strudelify

Im Not The Only One-singing voice

Sam smith

KeyF majorTempo80 bpm
0:00/0:00
// Im Not The Only One-singing voice — Sam smith
// 80 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5303116; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. 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 · [...]/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 · cello · "비올론첼로"
const cello = note(`<
  A@6 B@2 A@2 C D E@2 B@2 A@2 E@2 A@2 F@2 G@6 H@2 I@8 G@6 H@2 J K L M N K O P Q R S@2 T@2 U@2 Q R S@2 T@2 V@2 W X W X W
  X Y@2
>`.pickRestart({
  A: "[a3 c4!2 a3 db4 db4@2 d4@4 d4@5, ab3 ~@31]/2", B: "[a3 c4 a3 f3 c4 c4@2 a3@9, ab3 ~@31]/2",
  C: "a3 c4!2 a3 db4 db4@2 d4, ab3 ~@15", D: "d4@3 d4 d4@4", E: "[a3 c4!2 a3 db4 db4@2 d4@4 d4 d4@4, ab3 ~@31]/2",
  F: "[a3 c4 a3 f3 c4 c4@2 a3@7 ~@2, ab3 ~@31]/2", G: "[[f2,c3]@4 [a2,e3]@3 f3@4 [bb2,d3]@5]/2",
  H: "[[f2,c3]@4 [c2,c3]@3 [f2,c3]@7 ~@2]/2", I: "[c3@4 e3@3 f3@4 d3@5]/2", J: "~ f3@3", K: "c3!8", L: "db3",
  M: "f3!4 e3!4", N: "f3!8", O: "[bb2,d3]", P: "[bb2,d3] ~", Q: "c3@3 a2", R: "d3@2 ~@2 d3@2 d3!2", S: "a3/2",
  T: "[c4@6 ~ d4@2 c4@2 bb3@2 a3@2 a3]/2", U: "[f3@4 d4 d4@2 a3@4 bb3 bb3@2 f3@2]/2",
  V: "[f3@4 d4 d4@2 ~ c3!6 f3 c3, ~@7 a3@4 ~@5]/2", W: "c3!4 e3!3 f3", X: "f3!2 d3!6", Y: "[c3!5 c3@2 f2@9]/2",
})).s("gm_cello").gain(0.03)

// other · cello · "비올론첼로"
const cello_2 = note(`<
  A@2 B@4 C@2 D@6 E@2 D@6 F@2 G@6 H@2 I@8 G@6 H@2 J K L M N K O@2 P Q R S R T U V P Q R S R T U W X Y X Y X Y Z@2
>`.pickRestart({
  A: "[f2@4 a2@3 f3@4 bb2@5]/2", B: "[[f2,c3]@4 [a2,e3] [a2,e3]@2 f3@4 [bb2,f3]@5]/2",
  C: "[[f2,c3]@4 [c3,e3] [c3,e3]@2 [f2,c3]@9]/2", D: "[[f2,c3]@4 [a2,e3]@3 f3@4 [bb2,d3]@5]/2",
  E: "[[f2,c3]@4 [c2,c3]@3 [f2,c3]@9]/2", F: "[[f2,c3]@4 [c2,c3]@3 [f2,c3]@7 ~@2]/2",
  G: "[a3 c4!2 a3 db4 db4@2 d4@4 d4@5, ab3 ~@31]/2", H: "[a3 c4 a3 f3 c4 c4@2 a3@9, ab3 ~@31]/2",
  I: "[f2@4 a2@3 d3@4 bb2@5]/2", J: "[bb2,f3]!8", K: "f2!8", L: "[a2,e3]!8", M: "d3!4 c3!4", N: "bb2!8", O: "c3!8",
  P: "[f2,c3]@2 c3!2 [a2,e3]@2 e3!2", Q: "f3@2 f3!2 f3@2 f3!2", R: "[f2,c3]@2 c3!2 [a2,e3]@2 [a2,e3]!2",
  S: "d3@2 f3!2 d3@2 f3!2", T: "d3@2 f3!2 d3@2 d3!2", U: "c3@2 c3!2 c3@2 [f2,c3]@2", V: "[f2,c3]@2 c3!2 c3@2 [f2,c3]@2",
  W: "f2!6 d3 f2", X: "f2!4 a2!3 d3", Y: "d3!3 bb2!5", Z: "[f2!4 g3 g3@2 c3@9]/2",
})).s("gm_cello").gain(0.03)

stack(cello, cello_2)