Strudelify

Boig per tu

Sau

KeyD majorTempo120 bpm
0:00/0:00
// Boig per tu — Sau
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 "Clarinet en Si♭" clarinet (copy of ch 1 "Veu" choir aahs)
// note: Transcription provider: pdmx. https://musescore.com/score/2362941; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 101 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 · electric guitar clean · "Guitarra elèctrica"
const electric_guitar_clean = note(`<
  ~@4 A B C B D E F G ~ C B C B D E H ~ I@2 J@2 I@2 K@3 D E H ~ A B C B D E F G ~ C B C B D E H ~ I@2 J@2 I@2 K@3 D E H
  ~ D E H ~@8 I@2 J@2 I@2 K@3 D E H ~ D E H ~@9 L
>`.pickRestart({
  A: "~@6 a2@2 f#3@3 g3@2 a3@3", B: "a3@3 b3 d3@4", C: "~@8 f#3@3 g3@2 a3@3", D: "~@6 f#3@2 g3@3 g3@2 f#3@3",
  E: "e3 d3@5 b2 d3", F: "e3 d3", G: "c#3", H: "d3", I: "[~@2 a3 f#3 a3 f#3 a3 a3@2 b3@2 b3@3 b3 c#4]/2",
  J: "[d4 c#4 b3 a3@2 b3@2 a3@5 ~@4]/2", K: "[d4 c#4 b3 a3@2 b3@2 a3@4 d3 e3@2 a3 d3@7 ~@2]/3", L: "[d3,f#3,a3,d4]",
})).s("gm_electric_guitar_clean").gain(0.3)

// chords · piano
const piano = note(`<
  ~@4 A B A B C B D E@2 A B A B C B A@2 F G H I F G H J G K H I@2 A B A B C B D E@2 A B A B C B A@2 F G H I F G H J G K
  H I@2 K H I H I H K H D F@3 G H I F G H J G K H I@2 K H I H I H K H D F@2 ~ L
>`.pickRestart({
  A: "[d3,a3,f#4]@3 [d3,a3,f#4] [d3,a3,f#4]@4", B: "[d3,b3,g4]@3 [d3,b3,g4] [d3,b3,g4]@4",
  C: "[e3,b3,g4]@3 [e3,b3,g4] [e3,b3,g4]@4", D: "[e3,c4,g4] [b2,d4,g4]", E: "[a2,c#4,g4]@3 [a2,c#4,g4] [a2,c#4,g4]@4",
  F: "[a2,c#4,g4]!2", G: "[d3,b3,f#4]!2", H: "[d3,b3,g4]!2", I: "[d3,a3,f#4]!2", J: "[d3,a3,f#4] [c#3,a3,e4]",
  K: "[e3,b3,g4]!2", L: "[d3,a3,f#4]@15 ~",
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "Baix elèctric"
const bass = note(`<
  A@5 B A C D B E F@2 A B A C D B A@2 G H I J G H I K H L I J@2 A B A C D B E F@2 A B A C D B A@2 G H I J G H I K H L I
  J@2 L I J I J I L I M G@3 H I J G H I K H L I J@2 L I J I J I L I M G@2 ~ N
>`.pickRestart({
  A: "d2@3 d2 d2@2 a1@2", B: "g2@3 g2 g2@2 d2@2", C: "g2@3 g2 g2@2 f#2@2", D: "e2@3 e2 e2@2 b1@2", E: "c2 b1",
  F: "a1@3 a1 a1@2 e1@2", G: "a1!8", H: "b1!8", I: "g1!8", J: "d2!8", K: "d2!4 c#2!4", L: "e1!8", M: "c2!4 b1!4",
  N: "d2",
})).s("gm_electric_bass_finger").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  [x ~@2 x!2 ~@3]!4
  [x ~@2 x!2 ~@2 x]!17
  [x!2 ~ x!3 ~@2]!13
  [x ~@2 x!2 ~@2 x]!17
  [x!2 ~ x!3 ~@2]!48
  ~@2
>`).gain(0.3)

// drums · snare
const snare = s("sd").struct("<[~@3 x]!4 [~ x ~ x]!95 ~@2>").gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<~@4 [x!8]!95 ~@2>").gain(0.3)

stack(electric_guitar_clean, piano, bass, kick, snare, hihat)