Strudelify

somebody that i used to know

Gotye

KeyF majorTempo120 bpm
0:00/0:00
// somebody that i used to know — Gotye
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1664676; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 154 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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
const piano = note("<~@2 A B C D A B C E ~@144>".pickRestart({
  A: "d4!2 g4!2", B: "a4 bb4 c5 a4 g4@2 ~@2", C: "f4!2 e4!2", D: "d4!2 c4 ~", E: "d4!2 ~@2",
})).s("gm_piano").gain(0.48)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@17 A ~@8 B@2 C D B@2 E@2 ~@16 F G H I H G H J K G H I H G H L B@2 H M B@2 N O ~@28 P@2 ~@2 P@2 ~@7 Q R@2 S T R@2 S T
  R@2 S T R@2 ~@2 U V U W X U V U W Y ~ Z ~@3 Z ~@6
>`.pickRestart({
  A: "a4", B: "[a4@12 c5@3 bb4]/2", C: "a4@3 d4@4 ~", D: "~@4 d4@3 c4", E: "[a4@3 d4@3 d4@3 ~@7]/2", F: "d5",
  G: "~@4 c5@3 bb4", H: "a4 ~", I: "f4@2 ~@2 e4@2 ~ d4", J: "g4@2 f4@2 e4@2 ~ d4", K: "a4@3 ~@5", L: "g4 c4 ~@5 d4",
  M: "g4@2 ~@2 f4@2 ~ d4", N: "e4 f4!3 d4 e4!2 f4", O: "e4 d4 d4@2", P: "~@2 f4!2 e4!4", Q: "f5 g5!2 f5 c6@2 bb5!2",
  R: "[a5@4 g5@3 f5@5 ~@4]/2", S: "c4 d4", T: "e4 ~", U: "bb4 a4 a4@4 ~@2", V: "d4 e4!2 ~", W: "g4 a4!3 f4 g4!2 a4",
  X: "a4 g4 f4@2", Y: "a4 f4 f4@2", Z: "f4 g4!2 ~",
})).s("gm_trumpet").gain(0.25)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  ~@17 A ~@33 B C D ~ B C E ~ F C G ~ B C ~@3 H I ~@2 H I ~@28 J@2 ~@2 J@2 K L M L N O P Q R@2 S T R@2 S T R@2 S T R@2 H
  I ~ U ~ H V ~ U ~ H W X@2 Y Z X@2 Y Z ~@4
>`.pickRestart({
  A: "d4", B: "~@4 a4@3 g4", C: "f4 ~", D: "~@2 a4@2 ~ c4@2 ~", E: "e4 d4 c4 ~", F: "d5@2 bb4@2 a4@3 g4",
  G: "d4 ~ c4 ~", H: "g4 a4!3 f4 g4!2 a4", I: "g4 f4 f4@2", J: "~@2 d4!2 c4!4", K: "~@4 f5!4", L: "f5 g5 g5@2",
  M: "~@2 f5!6", N: "~@3 f5!5", O: "g5 g5@3 g5@2 f5!2", P: "f5!8", Q: "f4 g4!2 f4 c5@2 bb4!2",
  R: "[f5@4 e5@3 d5@5 ~@4]/2", S: "a3 bb3", T: "c4 ~", U: "f4 g4!2 ~", V: "f4!2 f4@2", W: "a4 f4 f4@2",
  X: "[a4@12 c5@3 bb4]/2", Y: "a4@3 d4@4 ~", Z: "~@4 d4@3 c4",
})).s("gm_trumpet").gain(0.35)

// chords · piano
const piano_2 = note(`<
  ~@2 A B C D E F G H ~@7 I ~@8 J K J K J K J@2 K J@2 L@2 M J M J M J M J M ~@2 L N L O L O L O L O L O L O L O P Q R S
  E F T U ~@2 L O@2 L O@2 L O@2 L O@2 L O@2 L O@2 L O@2 L O@2 ~@16 L N L N L N L N L N L N L N ~@2 P Q R S ~ P Q R S ~ P
  Q R S P Q R S ~@4
>`.pickRestart({
  A: "d5!2 g5!2", B: "a5 bb5 c6 a5 g5@2 ~@2", C: "f5!2 e5!2", D: "d5!2 c5 ~", E: "d4!2 g4!2",
  F: "a4 bb4 c5 a4 g4@2 ~@2", G: "d4 d4@2 a4", H: "d4@4 d4@8 d5 a5 ~@2", I: "[d2,d3,f3,a3,d4,f4]@15 ~",
  J: "~ [d3,a3,d4,f4] ~@2 [c3,g3,c4,e4]!3 ~", K: "~ [d3,a3,d4,f4] ~@2 [c3,g3,c4,e4]!2 c3 ~",
  L: "~ [d3,a3,d4,f4] ~@2 [c3,g3,c4,e4]!2 [g3,c4,e4] ~", M: "~ [d3,a3,d4,f4] ~@2 [c3,g3,c4,e4]!2 ~@2",
  N: "~ [bb2,f3,bb3,d4] ~@2 [c3,g3,c4,e4]!3 ~", O: "~ [bb2,f3,bb3,d4] ~@2 [c3,g3,c4,e4]!2 [g3,c4,e4] ~",
  P: "[d4,d5]!2 [g4,g5]!2", Q: "[a4,a5] [bb4,bb5] [c5,c6] [a4,a5] [g4,g5]@2 ~@2", R: "[f4,f5]!2 [e4,e5]!2",
  S: "[d4,d5]!2 [c4,c5] ~", T: "f4 f4@2 g4", U: "f4 e4 d4 ~",
})).s("gm_piano").gain(0.48)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  A@51 B A B A B A B A B A B A B A B A B A B A B A B A@14 ~@6 A@14 C@7 ~ A B A B A B A B A B A B A B A B A B A B A@2 B A
  B@2 A@10 ~@2
>`.pickRestart({
  A: "d2@3 d2 c2@3 c2", B: "bb1@3 bb1 c2@3 c2", C: "bb1@3 bb1 bb1@3 bb1",
})).s("gm_electric_bass_finger").gain(0.48)

// drums · congas
const congas = s("conga:18").struct("<~@2 [x ~@4 x ~ x]!46 ~@2 [x ~@4 x ~ x]!62 ~@4 [x ~@4 x ~ x]!36 ~@2>").gain(1.54)

// drums · congas
const congas_2 = s("conga:33").struct("<~@2 [~@3 x]!46 ~@2 [~@3 x]!62 ~@4 [~@3 x]!36 ~@2>").gain(1.54)

stack(piano, trumpet, trumpet_2, piano_2, bass, congas, congas_2)