Strudelify

dosed

RHCP

KeyG majorTempo105 bpm
0:00/0:00
// dosed — RHCP
// 105 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5965629; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 65 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(105/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 · acoustic guitar nylon · "Classical Guitar"
const acoustic_guitar_nylon = note(`<
  A B A B A B C@2 D@4 E@2 F G F G A B C@2 D@6 H@4 I@2 J K L@2 M ~ I@2 J K L@2 M N O P O P O P O P O P O P Q R S@2 T
>`.pickRestart({
  A: "~@6 b3!2", B: "d4 b3@2 b3@4 ~", C: "[~@5 b3!2 d4@2 e4@2 b3@4 ~]/2", D: "[~@2 e4 d4@3 d4 d4@3 e4 b3@4 ~]/2",
  E: "[~@2 e4 d4@3 d4 d4@3 e4 b3@3 b3@2]/2", F: "c4!3 c4@3 c4 b3", G: "b3 f#3!4 g3 g3@2",
  H: "[b3 c4@2 b3@2 c4@2 b3@2 c4@2 b3@2 g3@3]/2", I: "[b3@2 b3 c4@3 d4 d4@3 d4 e4@3 f#4@2]/2", J: "g4@7 f#4",
  K: "g4 f#4 e4@8 ~@6", L: "[b3@2 b3@2 c4@2 b3 b3@3 a3@2 b3@2 b3@2]/2", M: "b3 a3 g3@4 ~@2",
  N: "c3 g3 [d4,e4]!2 g3 c3 e4 d4", O: "c3 g3 [c4,e4] g3 c3 g3 [c4,e4] g3", P: "d3 a3 [d4,f#4] a3 e2 g3 [e4,g4] g3",
  Q: "c3 c4 g3 c3 c4 g3 c3 c4", R: "b2 c4 g3 b2 c4 g3 b2 c4", S: "a2 c4 g3 a2 c4 g3 a2 c4", T: "[g2,d3,g3,d4]",
})).s("gm_acoustic_guitar_nylon").gain(0.37)

// other · acoustic guitar nylon · "Classical Guitar"
const acoustic_guitar_nylon_2 = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C D E F C D E G C H E F C H E I J K J K L@2 M@2 J K J
  K N O P Q R
>`.pickRestart({
  A: "c3 g3 e4@2 c3 g3 e4@2", B: "d3 a3 f#4@2 e3 b3 g4@2", C: "[g2,d3,g3,b3]@2 g2 d3 g3 d4 g3 d3",
  D: "[d3,a3,d4,e4]@2 d3 a3 d4 f#4 a3 d3", E: "[e2,e3,g3,b3]@2 e2 e3 g3 b3 g3 e3", F: "c3 g3 g4 f#4@2 e4 d4@2",
  G: "c3@2 [g3,b3]!2 [g3,d4] [g3,b3]@3", H: "[d3,a3,d4,e4]@2 d3 a3 d4 e4 a3 d3", I: "c3 g3 [d4,e4]!2 g3 c3 e4 d4",
  J: "e5 d5 e5 d5 e5 d5 e5 d5", K: "e5 d5 b4 b4@2 b4 b4@2", L: "[c5!3 c5@3 c5 b4@2 g4!3 f#4 g4 g4@2]/2",
  M: "[[b4,d5] [c5,e5]@2 [b4,d5]@2 [c5,e5]@2 [b4,d5]@2 [c5,e5]@2 [b4,d5]@2 g4 g4@2]/2", N: "d5@2 d5 d5@2 d5!3",
  O: "c5@2 c5 c5@2 c5!3", P: "b4@3 b4@4 ~", Q: "~@2 c5 b4", R: "d5",
})).s("gm_acoustic_guitar_nylon").gain(0.32)

stack(acoustic_guitar_nylon, acoustic_guitar_nylon_2)