Strudelify

Attraction (short version)

Emmanuel Sejourne

KeyC minorTempo152 bpm
0:00/0:00
// Attraction (short version) — Emmanuel Sejourne
// 152 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5911766; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(152/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 · vibraphone
const vibraphone = note("<~@7 A@2 ~@31 B C@6 D E F@3 G H@3 I J@4 ~@27 K@2 ~>".pickRestart({
  A: "[d4,a4,d5,a5]/2", B: "~ g4",
  C: "[g5@19 f5@2 e5@3 f5@3 e5@2 f5@5 e5 f5 g5@16 f5@2 e5 f5@4 db5@2 eb5@7 c5@24 bb5@4]/6",
  D: "db6 c6 ~ bb5 ab5 g5 ~ f5 e5 bb5 ab5 g5 f5 e5 db5 c5", E: "ab5 g5 ~ f5 e5 db5 ~ bb4 c5 g5 f5 e5 db5 bb4 f4 db4",
  F: "[c4@10 db4@2 c4@2 db4 c4@9]/3", G: "c4@3 e4@2 bb4@3 db5@3 f5@2 bb5@3", H: "[c6@18 db6 c6 bb5 ab5 ~ g5@25]/3",
  I: "bb5@2 c6 bb5 ab5 g5 ~ f5@9", J: "[e5@3 bb4@2 f4@3 e4@20 eb4@12 db4@12 c4@12]/4", K: "[[bb3,g4,bb4,eb5]@3 ~]/2",
})).s("gm_vibraphone").gain(0.4)

// drums · claves
const claves = s("clave:2").struct("<[x ~@2 x ~@4 x ~ x ~ x!2 ~@2] ~@88 [x ~ x ~ x!2 ~@10] ~>").gain(2.43)

stack(vibraphone, claves)