Strudelify

Do You

Jewel

KeyG majorTempo180 bpm
0:00/0:00
// Do You — Jewel
// 180 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 174 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Instrument 4, Instrument 5.
setcpm(180/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 · acoustic guitar steel · "Instrument 1"
const acoustic_guitar_steel = note(`<
  A B@2 A B@2 A B@2 A B@2 A C@2 A C@2 A B@2 D B@2 D B@2 D B@2 D B@2 D E@2 F@3 G@3 H I@2 H I@2 A C@2 A C@2 A B@2 D B@2 D
  B@2 D B@2 D J@2 F@3 G@3 H I@2 H I@2 K@6 L@4 M@3 N@3 O@2 P O@2 P M@3 N@3 Q@2 R@3 S@6 T@3 U@3 V@3 W@3 X@3 Y@4 Z@3 AA@3
  Z@3 AB@2 AC AD@2 AC AE@2 AC AF@2 AG AH@2 AC AD@2 AC AE@2 AC AF@2 AI@3
>`.pickRestart({
  A: "g3@2 a3@3 ~ f#4@4 d4@2 g3@4", B: "[~@2 d4@4 g3@7 ~ d4@4 g3@5 ~ d4@2 g4@4 d4@2]/2",
  C: "[~@2 d4@4 g3@7 ~ d4@4 g3@2 g3@3 ~ d4@2 g4@4 d4@2]/2", D: "g3@2 a3@3 ~ f#4@4 d4@2 a3@4",
  E: "[~@2 d4@4 g3@7 ~ d4@4 g3@5 ~ d4@2 g4@5 ~]/2",
  F: "[[c4,e4]@11 ~ [c4,e4,g4]@11 ~ [b3,d4]@11 ~ [g3,b3]@7 ~ g3@3 ~]/3", // C Bm G
  G: "[[c4,e4]@11 ~ [c4,e4,g4]@11 ~ [b3,d4]@11 ~ [g3,b3]@11 ~]/3", H: "[f#3,a3,d4]@11 ~ [a3,d4,e4]@4",
  I: "[~@2 [a3,d4,e4]@5 ~ [g3,d4]@5 ~ [g3,c4,e4]@5 ~ [g3,b3,d4]@11 ~]/2", // Asus4 G5 C G
  J: "[~@2 d4@4 g3@2 g3@5 ~ d4@4 g3@5 ~ d4@2 g4@5 ~]/2",
  K: "[[g3,b3,e4]@11 ~ [g3,b3,e4]@11 ~ [a3,c#4,e4]@11 ~ [c#4,e4,a4]@11 ~]/3", // Em A
  L: "[[a3,d4,f#4]@11 ~ [a3,e4]@11 ~ [g3,d4]@11 ~ [g3,b3]@23 ~ g3@2 a3@2]/4", // D A5 G5 G
  M: "[~@2 f#4@4 d4@2 g3@5 ~ d4@4 g3@7 ~ d4@4 g3@5 ~ d4@2 g4@4 d4@2 g3@2 a3@2]/3",
  N: "[~@2 f#4@4 d4@2 a3@5 ~ d4@4 g3@7 ~ d4@4 g3@5 ~ d4@2 g4@4 d4@2 g3@2 a3@2]/3",
  O: "[~@2 f#4@4 d4@2 g3@5 ~ d4@4 g3@7 ~ d4@4 g3@2]/2", P: "g3@3 ~ d4@2 g4@4 d4@2 g3@2 a3@2",
  Q: "[~@2 f#4@4 d4@2 a3@5 ~ d4@4 g3@7 ~ d4@4 g3@2]/2",
  R: "[g3@3 ~ d4@2 g4@2 g4@3 ~ [c4,e4]@11 ~ [c4,e4,g4]@11 ~ [b3,d4]@11 ~]/3", // C Bm
  S: "[[g3,b3]@7 ~ g3@3 ~ [c4,e4]@11 ~ [c4,e4,g4]@11 ~ [b3,d4]@11 ~]/3", // G C Bm
  T: "[[g3,b3]@11 ~ [f#3,a3,d4]@11 ~ [a3,d4,e4]@5 ~ [a3,d4,e4]@5 ~ [g3,d4]@5 ~ [g3,c4,e4]@5 ~]/3", // G D Asus4 G5 C
  U: "[[g3,b3,d4]@11 ~ [f#3,a3,d4]@11 ~ [a3,d4,e4]@5 ~ [a3,d4,e4]@5 ~ [g3,d4]@5 ~ [g3,c4,e4]@5 ~]/3", // G D Asus4 G5 C
  V: "[[g3,b3,d4]@11 ~ [g3,b3,e4]@11 ~ [g3,b3,e4]@11 ~ [a3,c#4,e4]@11 ~]/3", // G Em A
  W: "[[c#4,e4,a4]@11 ~ [g3,b3,e4]@11 ~ [g3,b3,e4]@11 ~ [a3,c#4,e4]@11 ~]/3", // A Em A
  X: "[[c#4,e4,a4]@11 ~ [a3,d4,f#4]@11 ~ [a3,e4]@11 ~ [g3,d4]@11 ~]/3", // A D A5 G5
  Y: "[[g3,b3]@23 ~ g3@2 a3@3 ~ f#4@4 d4@2 g3@5 ~ d4@4 g3@7 ~ d4@4 g3@5 ~]/4", // G
  Z: "[d4@2 g4@4 d4@2 g3@2 a3@3 ~ f#4@4 d4@2 a3@5 ~ d4@4 g3@7 ~ d4@4 g3@5 ~]/3",
  AA: "[d4@2 g4@4 d4@2 g3@2 a3@3 ~ f#4@4 d4@2 g3@5 ~ d4@4 g3@7 ~ d4@4 g3@5 ~]/3",
  AB: "[d4@2 g4@4 a4@2 [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~]/2", // F#
  AC: "[f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@3 ~", // F#
  AD: "[[e4,e5]@2 [d4,d5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~]/2", // E D F#
  AE: "[[e4,e5]@2 [d4,d5]@4 a4@2 [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~]/2", // E D F#
  AF: "[[e4,e5]@2 [d4,d5]@4 [d4,d5]@13 ~ [e4,a4]@5 ~ [d4,a4]@5 ~]/2", AG: "[g3,d4]@10 d4@2 [b4,d5]@3 ~",
  AH: "[[a4,d5]@2 [g4,d5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~]/2", // D5 G5 F#
  AI: "[[g3,d4]@10 d4@2 [g3,b3]@35 ~]/3", // G5 G
})).s("gm_acoustic_guitar_steel").gain(0.72)

// bass · acoustic bass · "Instrument 2"
const bass = note(`<
  A@12 B@21 C@3 D@3 E F@6 G@8 B@12 H@2 I D@3 E F@6 J@8 K@8 L M@3 N@12 O@5 P@2 Q@5 R@3 S@2 T@3 U V@2 W X@3 Y@3 Z@3 AA@4
  AB@2 AC@3 AD@3 AC@3 AD@3 AC@3 AD@3 AC@3 AE@3
>`.pickRestart({
  A: "[d3@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~ g2@11 ~]/3", B: "[d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~ g2@11 ~]/3",
  C: "[d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~ g2@7 ~ a2@2 b2@2]/3", D: "[c3@20 ~@4 g2@19 ~ b2@3 ~, ~@5 c3@7]/3", E: "c3",
  F: "[~@2 d3@5 ~ g2@15 ~ f3@3 ~ e3@3 ~ d3@11 ~ d3@5 ~ d3@2 d3@2 a2@2 b2@5 ~@7 g2@7 ~ g2@2 a2@2 d3@11 ~ d3@4, c3@31 c3@17]/6",
  G: "[~@2 d3@4 a2@2 b2@5 ~@7 g2@7 ~ g2@2 a2@2 d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~ g2@11 ~ d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~ g2@11 ~, ~@7 c3@57]/8",
  H: "[d2@11 ~ d3@2 e3@9 ~ a2@2 b2@2 b2@4]/2", I: "~@2 a2@2 g2@3 ~ e3@3 ~ d3@3 ~",
  J: "[~@2 d3@4 a2@2 b2@5 ~@7 g2@7 ~ d2@3 ~ e2@15 ~ f#2@3 ~ g2@3 ~ a2@15 ~ b2@5 ~ a2@2 e2@15 ~ f#2@3 ~ g2@3 ~ a2@10 e2@2 a2@11 ~, ~@7 c3@57]/8",
  K: "[d3@11 ~@13 b2@11 ~ [g2,d3]@23 ~ d3@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~ g2@11 ~ d3@11 ~ d3@2 e3@6, ~@3 c3@29]/8", // G5
  L: "~@4 a2@2 b2@7 ~ a2@2", M: "[g2@3 ~ f#2@3 ~ e2@3 ~ d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~]/3",
  N: "[g2@11 ~ d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~]/3",
  O: "[g2@3 ~ g2@2 f#2@2 e2@2 d2@2 c2@16 ~@4 d2@3 ~ g2@19 ~ b1@3 ~@21, ~@28 c2@51 ~]/5",
  P: "[d2@3 ~ g2@19 ~ b2@3 ~@5]/2", Q: "[~@14 d3@5 ~ g2@15 ~ f2@3 ~ e2@3 ~ d2@11 ~ d3@5 ~ d3@4 a2@2 b2@5 ~@7]/5",
  R: "[g2@10 a2@2 d2@11 ~ d3@5 ~ d3@4 a2@2 b2@5 ~@7]/3", S: "[g2@7 ~ d2@3 ~ e2@15 ~ f#2@3 ~]/2",
  T: "[g2@3 ~ a2@15 ~ b2@5 ~ a2@2 e2@15 ~ f#2@3 ~]/3", U: "g2@3 ~ a2@10 e2@2", V: "[a2@11 ~ d3@11 ~@9]/2",
  W: "~@4 b2@11 ~", X: "[[g2,d3]@23 ~ d3@11 ~ d3@2 e3@9 ~]/3", Y: "[a2@2 b2@9 ~ g2@11 ~ d3@11 ~ d3@2 e3@9 ~]/3",
  Z: "[a2@2 b2@9 ~ g2@7 ~ a2@2 b2@2 d3@11 ~ d3@2 e3@9 ~]/3",
  AA: "[a2@2 b2@9 ~ g2@11 ~ d2@11 ~ c#2@5 ~ f#2@4 b1@7 ~ f#2@4 b1@5 ~]/4",
  AB: "[f#2@2 b2@4 c#3@2 d2@10 a2@2 d3@2 e3@9 ~]/2", AC: "[a2@2 b2@2 b2@5 ~ a2@2 g2@11 ~ d2@10 a2@2 d3@2 e3@9 ~]/3",
  AD: "[a2@2 b2@2 b2@5 ~ a2@2 g2@7 ~ g2@2 a2@2 d2@10 a2@2 d3@2 e3@9 ~]/3", AE: "[a2@2 b2@2 b2@5 ~ a2@2 [g2,d3]@35 ~]/3",
})).s("gm_acoustic_bass").gain(0.72)

// bass · acoustic bass · "Instrument 6"
const bass_2 = note(`<
  ~@36 A@3 B C@2 D E@2 D F@2 ~@21 A@3 B C@2 D E@2 D G@2 H I@2 H J@2 K@4 ~@35 L@2 M@3 N O@3 P@2 ~@11 Q@2 R@3 S@3 R@3 S@3
  R@3 S@3 R@3 T@3
>`.pickRestart({
  A: "[c3@20 c3@3 ~ g2@19 ~ b2@3 ~]/3", B: "c3", C: "[c3@2 d3@5 ~ g2@15 ~ f3@3 ~ e3@3 ~]/2", D: "d3@11 ~ d3@4",
  E: "[~@2 d3@2 d3@2 a2@2 b2@5 ~ c3@5 ~ g2@7 ~ g2@2 a2@2]/2", F: "[~@2 d3@4 a2@2 b2@5 ~ c3@5 ~ g2@7 ~ g2@2 a2@2]/2",
  G: "[~@2 d3@4 a2@2 b2@5 ~ c3@5 ~ g2@7 ~ d2@3 ~]/2", H: "e2@15 ~", I: "[f#2@3 ~ g2@3 ~ a2@15 ~ b2@5 ~ a2@2]/2",
  J: "[f#2@3 ~ g2@3 ~ a2@10 e2@2 a2@11 ~]/2", K: "[d3@11 ~ c3@11 ~ b2@11 ~ [g2,d3]@23 ~@5]/4",
  L: "[g2@7 ~ d2@3 ~ e2@15 ~ f#2@3 ~]/2", M: "[g2@3 ~ a2@15 ~ b2@5 ~ a2@2 e2@15 ~ f#2@3 ~]/3", N: "g2@3 ~ a2@10 e2@2",
  O: "[a2@11 ~ d3@11 ~ c3@11 ~ b2@11 ~]/3", P: "[[g2,d3]@23 ~@9]/2", Q: "[f#2@2 b2@4 c#3@2 d2@10 a2@2 d3@2 e3@9 ~]/2",
  R: "[a2@2 b2@2 b2@5 ~ a2@2 g2@11 ~ d2@10 a2@2 d3@2 e3@9 ~]/3",
  S: "[a2@2 b2@2 b2@5 ~ a2@2 g2@7 ~ g2@2 a2@2 d2@10 a2@2 d3@2 e3@9 ~]/3", T: "[a2@2 b2@2 b2@5 ~ a2@2 [g2,d3]@35 ~]/3",
})).s("gm_acoustic_bass").gain(0.46)

// other · melodic tom · "Instrument 7"
const melodic_tom = note(`<
  ~@47 A B@18 C@2 D E@3 F G@2 H I@2 H J@2 K L@2 K M@2 N@4 ~@5 O@3 P@12 Q@2 R@3 S@7 T@3 U@2 V@3 W X@3 Y@2 ~@11 Z@2 AA@3
  AB@3 AA@3 AB@3 AA@3 AB@3 AA@3 AC@3
>`.pickRestart({
  A: "~@4 g2@7 ~ g2@2 a2@2", B: "[d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~ g2@11 ~]/3",
  C: "[d2@11 ~ d3@2 e3@9 ~ a2@2 b2@2 b2@4]/2", D: "~@2 a2@2 g2@3 ~ e3@3 ~ d3@3 ~", E: "[c3@20 c3@3 ~ g2@19 ~ b2@3 ~]/3",
  F: "c3", G: "[c3@2 d3@5 ~ g2@15 ~ f3@3 ~ e3@3 ~]/2", H: "d3@11 ~ d3@4",
  I: "[~@2 d3@2 d3@2 a2@2 b2@5 ~ c3@5 ~ g2@7 ~ g2@2 a2@2]/2", J: "[~@2 d3@4 a2@2 b2@5 ~ c3@5 ~ g2@7 ~ d2@3 ~]/2",
  K: "e2@15 ~", L: "[f#2@3 ~ g2@3 ~ a2@15 ~ b2@5 ~ a2@2]/2", M: "[f#2@3 ~ g2@3 ~ a2@10 e2@2 a2@11 ~]/2",
  N: "[d3@11 ~ c3@11 ~ b2@11 ~ [g2,d3]@23 ~@5]/4", O: "[g2@3 ~ f#2@3 ~ e2@3 ~ d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~]/3",
  P: "[g2@11 ~ d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~]/3", Q: "[g2@3 ~ g2@2 f#2@2 e2@2 d2@2 c2@16 c2@3 ~]/2",
  R: "[d2@3 ~ g2@19 ~ b1@3 ~ c2@16 c2@3 ~]/3",
  S: "[d2@3 ~ g2@19 ~ b2@3 ~ c3@16 c3@2 d3@5 ~ g2@15 ~ f2@3 ~ e2@3 ~ d2@11 ~ d3@5 ~ d3@4 a2@2 b2@5 ~ c3@5 ~]/7",
  T: "[g2@10 a2@2 d2@11 ~ d3@5 ~ d3@4 a2@2 b2@5 ~ c3@5 ~]/3", U: "[g2@7 ~ d2@3 ~ e2@15 ~ f#2@3 ~]/2",
  V: "[g2@3 ~ a2@15 ~ b2@5 ~ a2@2 e2@15 ~ f#2@3 ~]/3", W: "g2@3 ~ a2@10 e2@2", X: "[a2@11 ~ d3@11 ~ c3@11 ~ b2@11 ~]/3",
  Y: "[[g2,d3]@23 ~@9]/2", Z: "[f#2@2 b2@4 c#3@2 d2@10 a2@2 d3@2 e3@9 ~]/2",
  AA: "[a2@2 b2@2 b2@5 ~ a2@2 g2@11 ~ d2@10 a2@2 d3@2 e3@9 ~]/3",
  AB: "[a2@2 b2@2 b2@5 ~ a2@2 g2@7 ~ g2@2 a2@2 d2@10 a2@2 d3@2 e3@9 ~]/3", AC: "[a2@2 b2@2 b2@5 ~ a2@2 [g2,d3]@35 ~]/3",
})).s("gm_melodic_tom").gain(0.36)

// other · taiko drum · "Instrument 8"
const taiko_drum = note(`<
  ~@80 A B C@2 B D@2 E@4 ~@5 F@3 G@12 H@2 I@3 J@7 K@3 L@2 M@3 N O@3 P@2 ~@10 Q R@2 S T@2 S U@2 S V@2 W X@2 S T@2 S U@2 S
  V@2 Y@3
>`.pickRestart({
  A: "~@4 g2@7 ~ d2@3 ~", B: "e2@15 ~", C: "[f#2@3 ~ g2@3 ~ a2@15 ~ b2@5 ~ a2@2]/2",
  D: "[f#2@3 ~ g2@3 ~ a2@10 e2@2 a2@11 ~]/2", E: "[d3@11 ~ c3@11 ~ b2@11 ~ [g2,d3]@23 ~@5]/4",
  F: "[g2@3 ~ f#2@3 ~ e2@3 ~ d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~]/3", G: "[g2@11 ~ d2@11 ~ d3@2 e3@9 ~ a2@2 b2@9 ~]/3",
  H: "[g2@3 ~ g2@2 f#2@2 e2@2 d2@2 c2@16 c2@3 ~]/2", I: "[d2@3 ~ g2@19 ~ b1@3 ~ c2@16 c2@3 ~]/3",
  J: "[d2@3 ~ g2@19 ~ b2@3 ~ c3@16 c3@2 d3@5 ~ g2@15 ~ f2@3 ~ e2@3 ~ d2@11 ~ d3@5 ~ d3@4 a2@2 b2@5 ~ c3@5 ~]/7",
  K: "[g2@10 a2@2 d2@11 ~ d3@5 ~ d3@4 a2@2 b2@5 ~ c3@5 ~]/3", L: "[g2@7 ~ d2@3 ~ e2@15 ~ f#2@3 ~]/2",
  M: "[g2@3 ~ a2@15 ~ b2@5 ~ a2@2 e2@15 ~ f#2@3 ~]/3", N: "g2@3 ~ a2@10 e2@2", O: "[a2@11 ~ d3@11 ~ c3@11 ~ b2@11 ~]/3",
  P: "[[g2,d3]@23 ~@9]/2", Q: "~@6 f#2@4 b1@5 ~",
  R: "[d4@2 g4@4 a4@2 [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~]/2", // F#
  S: "[f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@3 ~", // F#
  T: "[[e4,e5]@2 [d4,d5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~]/2", // E D F#
  U: "[[e4,e5]@2 [d4,d5]@4 a4@2 [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~]/2", // E D F#
  V: "[[e4,e5]@2 [d4,d5]@4 [d4,d5]@13 ~ [e4,a4]@5 ~ [d4,a4]@5 ~]/2", W: "[g3,d4]@10 d4@2 [b4,d5]@3 ~",
  X: "[[a4,d5]@2 [g4,d5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~ [f#4,f#5]@5 ~]/2", // D5 G5 F#
  Y: "[[g3,d4]@10 d4@2 [g3,b3]@35 ~]/3", // G5 G
})).s("gm_taiko_drum").gain(0.46)

// other · taiko drum · "Instrument 8" · soft notes
const taiko_drum_soft = note("<~@140 A B@3 C@4 ~@26>".pickRestart({
  A: "~@4 d3@2 e3@9 ~", B: "[a2@2 b2@9 ~ g2@7 ~ a2@2 b2@2 d3@11 ~ d3@2 e3@9 ~]/3",
  C: "[a2@2 b2@9 ~ g2@11 ~ d2@11 ~ c#2@5 ~ f#2@4 b1@7 ~@11]/4",
})).s("gm_taiko_drum").gain(0.2)

// other · piccolo · "Instrument 9"
const piccolo = note("<~@146 A@2 ~@18 B@2 ~@6>".pickRestart({
  A: "f#4@3 ~@13", B: "[[e4,e5]@2 [d4,d5]@4 a4@2 [f#4,f#5]@5 ~ [f#4,f#5]@5 ~@13]/2",
})).s("gm_piccolo").gain(0.46)

stack(acoustic_guitar_steel, bass, bass_2, melodic_tom, taiko_drum, taiko_drum_soft, piccolo)

More by Jewel