Strudelify

Caught Up In You

.38 Special

KeyE majorTempo120 bpm
0:00/0:00
// Caught Up In You — .38 Special
// 120 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 3 "ElecGtr" named as a guitar, played on electric guitar clean (its lead 8 bass lead patch is not one)
// note: Full arrangement: all 93 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 · "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.

// chords · electric guitar clean · "ElecGtr"
const electric_guitar_clean = note(`<
  A@4 B@4 C@6 D@4 E F@6 G@5 H@4 I@4 J@8 K@2 E F@6 L@5 M@6 N@2 O P Q@2 R@2 S@2 ~ T ~@5 U ~@9
>`.pickRestart({
  A: "[b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~", // E5 B
  B: "[[e4,g#4]@6 [d#4,f#4]@6 ~@2 [c#4,e4,g#4]@7 ~ [d#4,f#4,b4]@7 ~ [c#4,e4,a4]@9 ~ [c#4,e4,g#4]@3 ~ [d#4,f#4,b4]@15 ~@3 e4 g#4, b4@3 ~@13]/4", // E D#m C#m B A C#m B
  C: "[[e4,g#4]@6 [d#4,f#4]@6 ~@2 [c#4,e4,g#4]@8 [d#4,f#4,b4]@8 [c#4,e4]@6 [c#4,e4]@3 ~ [c#4,e4,g#4]@3 ~@19 [c#4,e4,a4]@7 ~@3 [c#4,e4,g#4]@5 ~ [d#4,f#4,b4]@13 ~@5, b4@12 ~@18 a4@9 ~@5 [d#4,f#4,b4]@20 ~@32]/6", // E D#m C#m B C#m A C#m B
  D: "[[c#4,e4,a4]@5 ~@3 [c#4,e4,g#4]@5 ~ [d#4,f#4,b4]@13 ~@3 [f#4,a4,c#5]@6 ~@2 [e4,g#4,b4]@7 ~ [c#4,e4,a4]@6 ~@2 [f#4,a4,c#5]@9 ~]/4", // A C#m B F#m E A F#m
  E: "[d#4,f#4,b4]@11 ~@5", // B
  F: "[[d#4,f#4,b4]@13 ~ [c#4,e4,a4]@15 ~ [b3,e4,g#4]@11 ~ [b3,e4,f#4]@3 ~ [f#4,a4,c#5]@15 ~ [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@3 ~ [b3,e4,b4]@4 ~@2 [c#4,e4,a4]@15 ~ [b3,e4,f#4]@2]/6", // B A E Bsus4 F#m C#m E5 A …
  G: "[~@2 [b3,e4,g#4]@10 ~@2 [a3,e4,a4]@15 ~ [g#3,c#4,e4]@5 ~ [c#4,e4,g#4]@3 ~ [b3,e4,b4]@5 ~ [a3,c#4,e4]@15 ~ [b3,e4,g#4]@15 ~ [a3,c#4,e4]@2]/5", // E A5 C#m E5 A E A
  H: "[~@2 [e3,a3,c#4]@3 ~ [e3,b3,e4]@7 ~ a3@8 ~@2 g#4@5 ~ [d#4,f#4]@8 ~@2 [d#3,f#3]@9 ~@15, ~@14 c#4@15 ~ b3@19 ~@15, ~@7 e4@5 ~@20, ~@22 f#3@7 ~@35]/4", // A E5 D#m
  I: "[[e4,g#4]@6 [d#4,f#4]@6 ~@2 [c#4,e4,g#4]@7 ~ [d#4,f#4,b4]@7 ~ [c#4,e4,a4]@9 ~ [c#4,e4,g#4]@3 ~ [d#4,f#4,b4]@15 ~@5, b4@3 ~@13]/4", // E D#m C#m B A C#m B
  J: "[[e4,g#4]@6 [d#4,f#4]@6 ~@2 [c#4,e4,g#4]@8 [d#4,f#4,b4]@8 [c#4,e4]@6 [c#4,e4]@3 ~ [c#4,e4,g#4]@3 ~@19 [c#4,e4,a4]@7 ~@3 [c#4,e4,g#4]@5 ~ [d#4,f#4,b4]@13 ~@3 [c#4,e4,a4]@7 ~@3 [c#4,e4,g#4]@5 ~ [d#4,f#4,b4]@13 ~@3 [f#4,a4,c#5]@2, b4@12 ~@18 a4@9 ~@5 [d#4,f#4,b4]@20 ~@64]/8", // E D#m C#m B C#m A C#m B …
  K: "[~@6 [e4,g#4,b4]@7 ~ [c#4,e4,a4]@6 ~@2 [f#4,a4,c#5]@9 ~]/2", // E A F#m
  L: "[~@2 [b3,e4,g#4]@12 [a3,e4,a4]@15 ~ [g#3,c#4,e4]@5 ~ [c#4,e4,g#4]@3 ~ [b3,e4,b4]@5 ~ [a3,c#4,e4]@15 ~ [b3,e4,g#4]@15 ~ [a3,c#4,e4]@2]/5", // E A5 C#m E5 A E A
  M: "[~@2 [e3,a3,c#4]@3 ~ [e3,b3,e4]@7 ~ a3@8 ~@2 g#4@5 ~ [d#4,f#4]@8 ~@2 [d#3,f#3]@9 ~@13 [b3,c#4,e4]@15 ~ [a3,c#4,e4]@11 ~ c#4@2 d#4@2 c#4@2, ~@14 c#4@15 ~ b3@19 ~@41 [a3,e4]@6, ~@7 e4@5 ~@36, ~@22 f#3@7 ~@67]/6", // A E5 D#m C#m7 A A5
  N: "[[f#3,b3,d#4]@5 ~ [f#3,b3,d#4]@7 ~ [e3,g#3,b3]@7 ~@3 [f#3,b3,d#4]@8]/2", O: "[g#3,b3,c#4]@11 ~@2 a3 c#4 e4",
  P: "[c#4,e4,g#4]@7 ~ [g#3,a3,c#4]@4 ~@2 [f#3,b3,d#4]@2", Q: "[~@2 [f#3,b3,d#4]@23 ~ [f#3,b3,c#4]@5 ~]/2",
  R: "[[b3,c#4,e4]@9 ~ [g#3,b3,c#4]@3 ~ [a3,c#4,e4]@11 ~ [c#4,e4]@3 ~ [f#3,b3,c#4] ~]/2", // C#m7 C#7 A C#m F#sus4
  S: "[[b3,d#4]@4 ~@2 [f#3,b3,c#4]@3 ~ [f#3,b3,d#4]@3 ~ b3@7 ~@3 [f#3,b3,d#4]@5 ~@3]/2", T: "~@3 f#3 ~@4",
  U: "~@2 b4 ~",
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.3)

// chords · lead 8 bass lead · "Bass"
const lead_8_bass_lead = note(`<
  ~@4 A B C D A B C E C D C D F G D H I J K L I J M N I J O P Q R A B C D A B C E C D C D F G D H I J K L I J M N I J O
  P Q R S T U V W X Y Z AA@3 AB AC@2 Q AD I J K L I J M N I J O P Q
>`.pickRestart({
  A: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [d#3,b3] ~ [d#3,b3] ~ [d#3,b3] ~ [d#3,b3] ~ [c#3,g#3] ~", // E5 G#m C#5
  B: "[c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [a2,e3] ~", // C#5 B5 A5
  C: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [b2,f#3] ~", // A5 C#5 B5
  D: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~", // B5
  E: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [a2,e3] ~", // B5 A5
  F: "[f#2,a3] ~ [f#2,a3] ~ [f#2,a3] ~ [g#2,b3] ~ [g#2,b3] ~ [g#2,b3] ~ [g#2,b3] ~ [a2,e3] ~", // F#m G#m A5
  G: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a#2,f#3] ~ [a#2,f#3] ~ [a#2,f#3] ~ [a#2,f#3] ~ [a#2,f#3] ~", // A5 D#m
  H: "[b2,f#3] ~ [b2,f#3] ~@11 [a2,e3] ~", // B5 A5
  I: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [g#2,e3] ~", // A5 C#m
  J: "[g#2,e3] ~ [g#2,e3] ~ [g#2,e3] ~ [g#2,e3] ~ [g#2,e3] ~ [g#2,e3] ~ [g#2,e3] ~ [f#2,c#3] ~", // C#m F#5
  K: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [c#3,g#3] ~", // F#5 C#5
  L: "[c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [e2,e3] ~ [e2,e3] ~ [e2,e3] ~ [a2,e3] ~", // C#5 E A5
  M: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ c#3 ~", // F#5
  N: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ [e2,e3] ~ [e2,e3] ~ [e2,e3] ~ [a2,e3] ~", // E A5
  O: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ a2 ~ g#2 ~ g#2 ~ g#2 ~ [a2,e3] ~", // F#5 A5
  P: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~ [b1,b2] ~", // A5 B
  Q: "[b1,b2] ~ [b1,b2] ~ [b1,b2] ~ [b1,b2] ~ [b1,b2] ~ [b1,b2] ~ [b1,b2] ~ [b1,b2] ~", R: "[b1,b2] ~@15",
  S: "[c#2,c#3]@4 ~@2 [c#2,c#3] ~ [c#2,c#3]@4 ~@4", T: "[f#1,f#2]@4 ~@2 [f#1,f#2] ~ [f#1,f#2]@5 ~@3",
  U: "[b1,b2]@4 ~@2 [b1,b2] ~ [b1,b2]@4 ~@4", V: "e2@4 ~@2 e2 ~ [d#2,d#3]@5 ~@3", W: "[c#2,g#2]@4 ~@2 c#2 ~ c#2@5 ~@3",
  X: "[f#1,f#2]@4 ~@2 [f#1,f#2] ~ [f#1,f#2]@4 ~@4", Y: "[b1,b2]@4 ~@2 [b1,b2] ~ [b1,b2]@5 ~@3",
  Z: "[b1,b2]@4 ~@2 f#2 ~ b2 ~ f#2 ~ b1@3 ~", // B
  AA: "[[c#2,g#2] ~@3 [c#2,g#2] ~@3 [c#2,g#2] ~@3 [c#2,g#2] ~ [f#2,c#3]@5 ~ [f#2,c#3] ~@3 [f#2,c#3] ~@3 [f#2,c#3] ~ [b1,b2]@5 ~ [b1,b2] ~@3 [b1,b2] ~@3 [b1,b2] ~@3]/3", // C#5 F#5 B
  AB: "[e2,b2]@5 ~@3 [d#2,b2]@5 ~@3", // E5 G#m
  AC: "[[c#2,g#2] ~@3 [c#2,g#2] ~@3 [c#2,g#2] ~@3 [c#2,g#2] ~ [f#2,c#3]@5 ~ [f#2,c#3] ~@3 [f#2,c#3] ~@3 [f#2,c#3] ~@3]/2", // C#5 F#5
  AD: "[b1,b2] ~@13 [a2,e3] ~", // B A5
})).s("gm_lead_8_bass_lead").gain(0.27)

// chords · acoustic guitar steel · "SteelGtr"
const acoustic_guitar_steel = note(`<
  ~@4 A B C D A B C E C D C D F G D H I J K L I J M N I J O P Q R A B C D A B C E C D C D F G D H I J K L I J M N I J O
  P Q R S T U V W X Y Z AA@3 AB AC@2 Q AD I J K L I J M N I J O P Q
>`.pickRestart({
  A: "[e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [d#4,b4] ~ [d#4,b4] ~ [d#4,b4] ~ [d#4,b4] ~ [c#4,g#4] ~", // E5 G#m C#5
  B: "[c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [a3,e4] ~", // C#5 B5 A5
  C: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [b3,f#4] ~", // A5 C#5 B5
  D: "[b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~", // B5
  E: "[b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [a3,e4] ~", // B5 A5
  F: "[f#3,a4] ~ [f#3,a4] ~ [f#3,a4] ~ [g#3,b4] ~ [g#3,b4] ~ [g#3,b4] ~ [g#3,b4] ~ [a3,e4] ~", // F#m G#m A5
  G: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a#3,f#4] ~ [a#3,f#4] ~ [a#3,f#4] ~ [a#3,f#4] ~ [a#3,f#4] ~", // A5 D#m
  H: "[b3,f#4] ~ [b3,f#4] ~@11 [a3,e4] ~", // B5 A5
  I: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [g#3,e4] ~", // A5 C#m
  J: "[g#3,e4] ~ [g#3,e4] ~ [g#3,e4] ~ [g#3,e4] ~ [g#3,e4] ~ [g#3,e4] ~ [g#3,e4] ~ [f#3,c#4] ~", // C#m F#5
  K: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [c#4,g#4] ~", // F#5 C#5
  L: "[c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [e3,e4] ~ [e3,e4] ~ [e3,e4] ~ [a3,e4] ~", // C#5 E A5
  M: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ c#4 ~", // F#5
  N: "c#4 ~ c#4 ~ c#4 ~ c#4 ~ [e3,e4] ~ [e3,e4] ~ [e3,e4] ~ [a3,e4] ~", // E A5
  O: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ a3 ~ g#3 ~ g#3 ~ g#3 ~ [a3,e4] ~", // F#5 A5
  P: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ a#3 ~ a#3 ~ a#3 ~ a#3 ~ [b2,b3] ~", // A5 B
  Q: "[b2,b3] ~ [b2,b3] ~ [b2,b3] ~ [b2,b3] ~ [b2,b3] ~ [b2,b3] ~ [b2,b3] ~ [b2,b3] ~", R: "[b2,b3] ~@15",
  S: "[c#3,c#4]@4 ~@2 [c#3,c#4] ~ [c#3,c#4]@4 ~@4", T: "[f#2,f#3]@4 ~@2 [f#2,f#3] ~ [f#2,f#3]@5 ~@3",
  U: "[b2,b3]@4 ~@2 [b2,b3] ~ [b2,b3]@4 ~@4", V: "e3@4 ~@2 e3 ~ [d#3,d#4]@5 ~@3", W: "[c#3,g#3]@4 ~@2 c#3 ~ c#3@5 ~@3",
  X: "[f#2,f#3]@4 ~@2 [f#2,f#3] ~ [f#2,f#3]@4 ~@4", Y: "[b2,b3]@4 ~@2 [b2,b3] ~ [b2,b3]@5 ~@3",
  Z: "[b2,b3]@4 ~@2 f#3 ~ b3 ~ f#3 ~ b2@3 ~", // B
  AA: "[[c#3,g#3] ~@3 [c#3,g#3] ~@3 [c#3,g#3] ~@3 [c#3,g#3] ~ [f#3,c#4]@5 ~ [f#3,c#4] ~@3 [f#3,c#4] ~@3 [f#3,c#4] ~ [b2,b3]@5 ~ [b2,b3] ~@3 [b2,b3] ~@3 [b2,b3] ~@3]/3", // C#5 F#5 B
  AB: "[e3,b3]@5 ~@3 [d#3,b3]@5 ~@3", // E5 G#m
  AC: "[[c#3,g#3] ~@3 [c#3,g#3] ~@3 [c#3,g#3] ~@3 [c#3,g#3] ~ [f#3,c#4]@5 ~ [f#3,c#4] ~@3 [f#3,c#4] ~@3 [f#3,c#4] ~@3]/2", // C#5 F#5
  AD: "[b2,b3] ~@13 [a3,e4] ~", // B A5
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.9)

// drums · kick
const kick = s("bd").struct("<A B A C D@15 C D@13 C D@15 C D@13 C E@15 D@13 C>".pickRestart({
  A: "x ~@6 x", B: "x ~@2 x", C: "x", D: "x!2", E: "x ~@2 x!2 ~@3",
})).gain(0.32)

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B@3 C B@3 C B C B C B@2 C D B@3 C B@3 C B E@3 B F B@3 C B@3 C B C B C B@2 C D B@3 C B@3 C B E@3 B A B@7 E B@7 C
  B@3 C B@3 C B E@3 G
>`.pickRestart({
  A: "~@5 x!2 ~", B: "~ x ~ x", C: "~@4 x ~@7 x ~ x!2", D: "~@12 x ~ x!2", E: "~@4 x ~@7 x ~@2 x", F: "~@6 x!2",
  G: "~ x ~@2",
})).gain(0.32)

// drums · hihat
const hihat = s("hh").struct("<A@4 B@9 C B@5 D B@13 D B@14 C D B@13 D B@28 E>".pickRestart({
  A: "x!4", B: "x!8", C: "x!7 ~", D: "x", E: "x!3 ~@5",
})).gain(0.32)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~@3 A ~@3 A ~ A ~ A ~@2 A@2 ~@3 A ~@3 A ~ A@5 ~@3 A ~@3 A ~ A ~ A ~@2 A@2 ~@3 A ~@3 A ~ A@5 ~@7 A ~@7 A ~@3 A
  ~@3 A ~ A@3
>`.pickRestart({
  A: "x",
})).gain(0.32)

stack(electric_guitar_clean, lead_8_bass_lead, acoustic_guitar_steel, kick, snare, hihat, crash)

More by .38 Special