Strudelify

She's Just My Style

Gary Lewis

KeyA majorTempo145 bpm
0:00/0:00
// She's Just My Style — Gary Lewis
// 145 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: ch 9 "Bass Vocal" named as a bass, played on electric bass finger (its tuba patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 4 "Melody Vocal 2" flute (copy of ch 3 "Melody Vocal 1" vibraphone)
// note: Full arrangement: all 103 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(145/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.

// bass · electric bass finger · "Bass Vocal"
const bass = note(`<
  ~@24 A B C D C D C D C E@2 F@2 ~@15 A B C D C D C D C ~@19 A B C D C D C D C E@2 G@2 B C D ~@7
>`.pickRestart({
  A: "~@4 c#3@6 b2@2 g#2@4 e2 ~ f#2@4 e2 ~", B: "a2@5 a2@6 ~", C: "~@4 c#3@6 b2@2 a2@4 e2 ~ f#2@4 e2 ~", D: "a2!2",
  E: "[g2@6 ~ g2]/2", F: "[e2@5 ~@3]/2", G: "[~@28 c#3@6 b2@2 a2@4 e2 ~ f#2@4 e2 ~, e2@5 ~@3]/2",
})).s("gm_electric_bass_finger").gain(0.71).pan(0.8)

// bass · electric bass finger · "Bass Vocal" · soft notes
const bass_soft = note(`<
  ~@96
  [~@4 c#3@6 b2@2 a2@4 e2 ~ f#2@4 e2 ~]
  [a2!2]
  [~@4 c#3@6 b2@2 a2@4 e2 ~ f#2@4 e2 ~]
  [a2!2]
  [~@4 c#3@6 b2@2 a2@4 e2 ~ f#2@4 e2 ~]
  ~@2
>`).s("gm_electric_bass_finger").gain(0.21).pan(0.8)

// chords · electric guitar jazz · "Electric Guitar"
const electric_guitar_jazz = note("<~@33 A@2 B@2 ~@24 A@2 C@2 ~@24 A@2 C D E@4 ~@6>".pickRestart({
  A: "~ d5 g5 ~ d5 g5 ~ d5 g5 ~ d5 g5, b5 [b5,d6] c6!2", B: "~ b4 e5 ~ b4 e5 ~ b4 e5 ~ b4 e5, g#5!2 a5!2",
  C: "~ b4 e5 ~ b4 e5 ~ b4 e5 ~ b4 e5, g#5 [g#5,b5] a5!2", D: "~ b4 e5 ~ b4 e5 ~ b4 e5 ~@2 e5, g#5!2 a5!2, ~@5 b4",
  E: "[c#6@2 e5 ~ a5 ~@3 e5@2 a5@2 ~@2 e5@2 a5@2 ~@8 e5@2 a5@2 ~@2 e5@2 a5@2 ~@2 e5@2 a5@2 ~@8 e5@2 a5@2 ~@2 e5@2 a5@2 ~@2 e5@2 a5@2 ~@4 a5@6 ~@20, ~ c#6 d6 d6@2 ~ d6 d6@2 ~ d6 d6@2 ~@3, ~@10 e5@3 ~@9 e5@3 ~@9 e5@3 ~@11, ~@11 a5@3 ~@9 a5@3 ~@22, ~@4 c#6!2 ~@2 c#6!2 ~@6]/4",
})).s("gm_electric_guitar_jazz").gain(0.48).pan(0.2)

// chords · electric guitar jazz · "Electric Guitar" · soft notes
const electric_guitar_jazz_2 = note("<~@96 A@7>".pickRestart({
  A: "[~ e5 a5 ~ e5 a5 ~ e5 a5 ~@4 e5 a5 ~ e5 a5 ~ e5 a5 ~@4 e5 a5 ~ e5 a5 ~ e5 a5 ~@4 e5 a5 ~ e5 a5 ~ e5 a5 ~@4 e5 a5 ~ e5 a5 ~ e5 a5 ~@2 a5@24 ~, c#6!2 d6 d6@2 ~ d6 d6@2 ~ d6 d6@2 ~ d6 d6@2 ~ d6 d6@8 ~, ~@10 e5@3 ~@9 e5@3 ~@9 e5@3 ~@9 e5@3 ~@9 e5@24 ~@2, ~@11 a5@3 ~@9 a5@3 ~@9 a5@3 ~@9 a5@3 ~@34, ~@4 c#6!2 ~@2 c#6!2 ~@2 c#6!2 ~@2 c#6!2 ~@10]/7",
})).s("gm_electric_guitar_jazz").gain(0.14).pan(0.2)

// other · electric guitar clean · "Electric Guitar"
const electric_guitar_clean = note("<~@65 A B C D A E F G ~@30>".pickRestart({
  A: "b4@6 e5@3 ~ b4@6 e5@2 b4@6", B: "~@5 b4@5 e5@2 b4@6 a4@6, ~ e5@6 ~@17", C: "d5@6 d5@3 d5@6 d5@2 d5@6 ~",
  D: "d5@3 ~@5", E: "~@2 b4@3 e5 b4@3 a4@3, ~ e5@6 ~@17", F: "d5@6 d5@6 d5@3 ~ a4@4 ~@2 a4 ~",
  G: "b4@4 e5@2 b4@3 ~ a4 a4@6 ~@7",
})).s("gm_electric_guitar_clean").gain(0.69)

// chords · rock organ · "Organ"
const rock_organ = note(`<
  ~@8 A@7 B@2 C@7 ~ D E D E D E D E ~@4 F@2 G H@3 I J K L K M@4 ~ D E D E D E D E ~@4 N@2 O@4 P J Q R Q S T@3 ~ U V W X
  U V Y X ~@4 Z E Z E J E AA E ~@2
>`.pickRestart({
  A: "[~@23 [c#5,a5]@48 [a4,f5]@12 [b4,g5]@12 c#5@24 c#5@24 c#5@24 [a4,f5], ~@95 a5@72 ~]/7", // F#m Dm Em Dm
  B: "[~@11 [b4,g5]@12 [c#5,a5]@24 [c#5,e6]]/2", // Em F#m C#m
  C: "[~@23 [f#4,f#5,c#6]@24 [c#5,e5,g#5]@24 [f#4,c#5,a5]@24 [f#4,a4,c#5]@24 [f#4,a4,c#5]@24 [f#4,a4,c#5]@24 ~]/7", // F#5 C#m F#m
  D: "c#5 d5", E: "e5", F: "a5/2", G: "f5 g5", H: "a5/3", I: "[a4,c5,f5] [b4,d5,g5]", J: "[c#5,e5,a5]",
  K: "[c#5,e5,g#5]", L: "[f#4,a4,c#5]", M: "[f#4,c#5,a5]", N: "[c#5 c#5, [e5,a5]]/2",
  O: "[[a4,f#5]@2 c#5 c#5, a5, ~ e5]/4", P: "[a4,f#5,a5]", Q: "[c#5,g#5]", R: "[a4,f#5]", S: "[c#5,f#5,a5]",
  T: "[f#4,f#5,a5,c#6]", U: "[e4,a4,c#5] [f#4,a4,d5]", V: "[e4,a4,c#5]", W: "[f#4,a4,d5] [g#4,a4,d5]", X: "[f#4,a4,d5]",
  Y: "f#4 g#4, [a4,d5]", Z: "a5 ~", AA: "[d5,f#5,a5]",
})).s("gm_rock_organ").gain(0.31).pan(0.6)

// chords · piano
const piano = note(`<
  ~@2 A@2 B@2 C@3 D E@2 D@2 E@2 F G H G I J@2 K ~ L M@7 ~@4 M@2 N M@3 N M O P O P Q@3 ~ M@8 ~@4 M@2 R@2 M@2 R M O P O P
  Q@3 ~ M@8 ~@4 M@8 ~@2
>`.pickRestart({
  A: "[~@23 [c#4,e4,a4]@6 [d4,f#4,a4]@6 [c#4,e4,a4]@6 ~@3 [c#4,e4,a4]@3 ~]/2", // A D A
  B: "[~@2 [c#4,e4,a4]@3 ~@3 [d4,f#4,a4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@6 [c#4,e4,a4]@6 [d4,f#4,a4]@6 [c#4,e4,a4]@6 ~@3 [c#4,e4,a4]@3 ~]/2", // A D A D A
  C: "[~@2 [c#4,e4,a4]@3 ~@3 [d4,f#4,a4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@6 [f#4,a4,d5]@6 [f#4,a4,d5]@6 [f#4,a4,d5]@6 [f#4,a4,d5]@6 [g#3,b3,e4]@12 ~@12 [c#4,e4,a4]]/3", // A D A D E A
  D: "~@4 [c#4,e4,a4]!2 ~@4 [c#4,e4,a4]!2 ~@4 [c#4,e4,a4] [f#4,a4,d5]@5 ~ [c#4,e4,a4]", // A D A
  E: "[~@4 [c#4,e4,a4]!2 ~@4 [c#4,e4,a4]!2 ~@4 [c#4,e4,a4] [f#4,a4,d5]@5 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@5 ~ [g3,b3,d4]@4 ~@2 [g3,b3,d4]@5 ~ [c#4,e4,a4]]/2", // A D F G A
  F: "~@4 [c#4,e4,a4]!2 ~@4 [c#4,e4,a4]!2 ~@4 [c#4,e4,a4] [f#4,a4,d5]@5 ~ [e4,g#4,c#5]", // A D C#m
  G: "~@4 [e4,g#4,c#5]!2 ~@4 [e4,g#4,c#5]!2 ~@4 [e4,g#4,c#5]!2 ~@4 [e4,g#4,c#5] [a3,c#4,f#4]", // C#m F#m
  H: "~@4 [a3,c#4,f#4]!2 ~@4 [a3,c#4,f#4]!2 ~@4 [a3,c#4,f#4]!2 ~@4 [a3,c#4,f#4] [e4,g#4,c#5]", // F#m C#m
  I: "~@4 [a3,c#4,f#4]!2 ~@4 [a3,c#4,f#4]!2 ~@4 [a3,c#4,f#4]!2 ~@4 [a3,c#4,f#4] [d4,f#4,b4]", // F#m Bm
  J: "~@4 [d4,f#4,b4]!2 ~@4 [d4,f#4,b4]!2 ~@4 [d4,f#4,b4] [d4,f#4,b4]@5 ~ [d4,f#4,b4]", // Bm
  K: "~@4 [d4,f#4,b4]!2 ~@4 [d4,f#4,b4]!2 ~@4 [d4,f#4,b4] [d4,f#4,b4]@5 ~@2", // Bm
  L: "[c#4,e4,a4] ~@3 [c#4,e4,a4] ~ [c#4,e4,a4] ~@3 [c#4,e4,a4] ~ [c#4,e4,a4] ~@3 [c#4,e4,a4] ~ [f#4,a4,d5]@5 ~, ~ a2@10 ~@13", // A D
  M: "[c#4,e4,a4] ~@3 [c#4,e4,a4] ~ [c#4,e4,a4] ~@3 [c#4,e4,a4] ~ [c#4,e4,a4] ~@3 [c#4,e4,a4] ~ [f#4,a4,d5]@5 ~", // A D
  N: "[f3,a3,c4]@5 ~ [f3,a3,c4]@5 ~ [g3,b3,d4]@4 ~@2 [g3,b3,d4]@5 ~", // F G
  O: "[e4,g#4,c#5] ~@3 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~@3 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~@3 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~@3 [e4,g#4,c#5] ~", // C#m
  P: "[a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~", // F#m
  Q: "[d4,f#4,b4] ~@3 [d4,f#4,b4] ~ [d4,f#4,b4] ~@3 [d4,f#4,b4] ~ [d4,f#4,b4] ~@3 [d4,f#4,b4] ~ [d4,f#4,b4]@5 ~", // Bm
  R: "[f#3,a3,d4] ~@3 [f#3,a3,d4] ~ [f#3,a3,d4] ~@3 [f#3,a3,d4] ~ [f#3,a3,d4] ~@3 [f#3,a3,d4] ~ [b3,d4,g4]@5 ~", // D G
})).s("gm_piano").gain(0.38).pan(0.7)

// bass · piano · "Bass Piano"
const bass_2 = note(`<
  A@2 B@4 C@3 ~@15 D E F E F E F E F E ~@18 G E H E H E H E H E ~@18 D E H E H E H E H E ~@2 H E H E H E H E ~@3
>`.pickRestart({
  A: "[~@23 [a1,a2]@4 ~@2 [f#1,f#2]@3 ~@3 [e1,e2]@5 ~ [f#1,f#2]@3 [a1,a2]@3 ~]/2", // A F# E F# A
  B: "[~@2 [a1,a2]@4 ~@3 [f#1,f#2]@2 [e1,e2]@6 [f#1,f#2]@4 ~@2 [a1,a2]@4 ~@2 [f#1,f#2]@4 ~@2 [e1,e2]@6 [f#1,f#2]@2 ~ [a1,a2]@2 ~@2]/2", // A F# E F# A F# E F# …
  C: "[~@2 [a1,a2]@4 ~@3 [f#1,f#2]@2 [e1,e2]@6 [f#1,f#2]@4 ~@2 a2@6 a2@6 a2@6 f#2@6 e2@12 ~@13]/3", // A F# E F#
  D: "~@4 c#3@6 b2@2 g#2@4 e2 ~ f#2@4 e2 ~", E: "a2 ~", F: "~@4 c#3@6 b2@2 a2@4 e2 ~ f#2@4 e2 ~",
  G: "~@2 c#3@3 b2 g#2@2 ~ f#2@2 ~", H: "~@2 c#3@3 b2 a2@2 ~ f#2@2 ~",
})).s("gm_piano").gain(0.48).pan(0.3)

// bass · electric bass pick · "Bass"
const bass_3 = note("<A@2 B@4 C@3 ~@24 D@2 E@2 ~@24 D@2 E@2 ~@24 F D E@2 ~@10>".pickRestart({
  A: "[~@23 [a1,a2]@4 ~@2 [f#1,f#2]@3 ~@3 [e1,e2]@5 ~ [f#1,f#2]@3 [a1,a2]@3 ~]/2", // A F# E F# A
  B: "[~@2 [a1,a2]@4 ~@3 [f#1,f#2]@2 [e1,e2]@6 [f#1,f#2]@4 ~@2 [a1,a2]@4 ~@2 [f#1,f#2]@4 ~@2 [e1,e2]@6 [f#1,f#2]@2 ~ [a1,a2]@2 ~@2]/2", // A F# E F# A F# E F# …
  C: "[~@2 [a1,a2]@4 ~@3 [f#1,f#2]@2 [e1,e2]@6 [f#1,f#2]@4 ~@2 d3@6 c#3@6 a2@6 f#2@6 e2@12 ~@13]/3", D: "g2 f#2 e2 d2",
  E: "c#2 b1 g#1 e1", F: "g2 f#2 e2 d2, a2 ~",
})).s("gm_electric_bass_pick").gain(0.57).pan(0.6)

// bass · fretless bass · "Bass"
const bass_4 = note(`<
  ~@8 A@8 B@8 C D E F E F E F G ~@4 H@2 I J@2 H I J K L M L N O P Q F@8 ~@4 R F H E S T U V M L W L N O P Q X Y X Y X Y
  X Y ~@4 X Y X Z ~@6
>`.pickRestart({
  A: "[~@23 a2@6 a2@5 a2 a2@4 ~ a2 d3@5 a2 a2@6 a2@5 a2 a2@4 ~ a2 d3@5 a2 f2@6 f2@5 f2 g2@4 ~ g2 g2@5 a2 a2@6 a2@5 a2 a2@5 a2 d3@5 a2 a2@6 a2@5 a2 a2@4 ~ a2 d3@5 a2 a2@6 a2@5 a2 a2@4 ~ a2 d3@5 a2 f2@6 f2@5 f2 g2@4 ~ g2 g2@5 a2!2]/8",
  B: "[~@5 a2@5 a2 a2@4 ~ a2 a2@5 g#2 c#3@6 c#3@3 ~@2 c#3 g#2@4 ~ g#2 c#3@4 ~ g#2 f#2@6 f#2@5 f#2 c#3@6 f#2@5 f#2 c#3@6 c#3@3 ~@2 c#3 g#2@4 ~ g#2 c#3@4 ~ g#2 f#2@5 ~ f#2@5 f#2 f#2@4 ~ f#2 f#2@5 f#2 b2@6 b2@4 ~ b2 f#2@6 f#2@4 ~ f#2 b1@6 b1@4 ~ b1 f#1@6 f#1@4 ~ f#2 e2@6 e2@4 ~ e2 b1@6 d2@6 e2]/8",
  C: "~@4 c#3@6 b2@2 g#2@4 e2 ~ f#2@4 e2 ~", D: "a2@5 ~ a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~",
  E: "a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~ a2@4 e2 ~", F: "a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~",
  G: "a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~ a2@4 d2 ~", H: "a2@6 a2@4 a2 ~ a2@4 a2 ~ d3@4 a2 ~",
  I: "f2@6 f2@4 f2 ~ g2@6 g2@4 g2 ~", J: "a2@6 a2@4 a2 ~ a2@4 a2 ~ d3@4 g#2 ~",
  K: "c#3@5 ~ c#3@4 c#3 ~ c#2@4 c#2 ~ c#3@4 c#2 ~", L: "f#2@6 f#2@4 f#2 ~ c#3@6 f#2@4 f#2 ~",
  M: "c#3@5 ~ c#3@4 c#3 ~ g#2@4 g#2 ~ c#3@4 c#2 ~", N: "b2@6 b2@4 b2 ~ f#2@6 f#2@4 f#2 ~",
  O: "b1@6 b1@4 b1 ~ f#1@6 f#1@4 f#2 ~", P: "e2@6 e2@4 e2 ~ b1@6 d2@6", Q: "e2 ~@3 c#3@6 b2@2 g#2@4 e2 ~ f#2@4 e2 ~",
  R: "a2@6 a2@4 a2 ~ a2@4 a2 ~ d3@4 e2 ~", S: "a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~ d3@4 a2 ~",
  T: "a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~ a2@4 b1 ~", U: "d2@4 d2 ~ d2@4 d2 ~ d2@4 d2 ~ d2@4 d2 ~",
  V: "a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~ a2@4 g#2 ~", W: "c#3@6 c#3@3 ~ c#3 ~ g#2@4 g#2 ~ c#3@4 g#2 ~",
  X: "a2@4 a2@2 a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~",
  Y: "a2@4 a2 ~ a2@4 b2@2 a2@4 [e2,a2] ~ [f#2,a2]@4 [e2,a2] ~, ~@4 c#3@6 a2 ~@13", // A5 F#m A5
  Z: "a2@4 a2 ~ a2@4 b2@2 a2@4 ~@8, ~@4 c#3@6 a2 ~@13",
})).s("gm_fretless_bass").gain(0.57).pan(0.6)

// bass · fretless bass · "Bass" · soft notes · A5 F#m A5 F#m A5 F#m A5
const bass_soft_2 = note(`<
  ~@96
  [~@16 [e2,a2] ~ [f#2,a2]@4 [e2,a2] ~]
  [a2@4 a2@2 a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~]
  [a2@4 a2 ~ a2@4 b2@2 a2@4 [e2,a2] ~ [f#2,a2]@4 [e2,a2] ~, ~@4 c#3@6 a2 ~@13]
  [a2@4 a2@2 a2@4 a2 ~ a2@4 a2 ~ a2@4 a2 ~]
  [a2@4 a2 ~ a2@4 b2@2 a2@4 [e2,a2] ~ [f#2,a2]@4 [e2,a2] ~, ~@4 c#3@6 a2 ~@13]
  ~@2
>`).s("gm_fretless_bass").gain(0.19).pan(0.6)

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A B C D E F@15 ~ G@7 H I ~@2 J G@15 ~ G@7 H I ~@3 G@15 ~ G@7 H I ~@2 K G@8 ~@2
>`.pickRestart({
  A: "~@15 x!3 ~@4 x ~", B: "~@5 x ~@11 x ~@2 x ~@3", C: "~@2 x ~@14 x ~@6", D: "~@5 x ~@5 x ~@5 x ~@5 x",
  E: "~@17 x ~ x ~ x ~@2", F: "~@5 x ~@11 x ~@6", G: "~ x ~ x", H: "~@6 x ~@9 x!2 ~@2 x ~ x ~", I: "x",
  J: "~@16 x!3 ~@3 x ~", K: "~@9 x!3",
})).gain(0.42).pan(0.7)

// drums · low tom
const low_tom = s("lt").struct("<~@8 [~@11 x ~ x ~ x ~@8] ~@94>").gain(0.6).pan(0.7)

// drums · mid tom
const mid_tom = s("mt").struct("<~@8 [~@5 x ~ x ~ x ~@14] ~@94>").gain(0.6).pan(0.7)

// drums · open hat
const open_hat = s("oh").struct("<~@4 A B C D A E@15 ~ F@8 ~@4 F@15 G F@8 ~@4 F@15 G F@8 ~@4 F@8 ~@2>".pickRestart({
  A: "~@23 x", B: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@2 x ~@3", C: "~@2 x ~@5 x ~@2 x ~@4 x!2 ~@4 x!2",
  D: "~@5 x ~@5 x ~@5 x ~@5 x", E: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@4 x!2", F: "x ~ x!2 ~ x!2 ~ x!2 ~ x", G: "x",
})).gain(0.42).pan(0.7)

// drums · ride
const ride = s("rd").struct("<~@4 A B C ~ A D@15 ~ E@8 ~@4 E@15 F E@8 ~@4 E@15 F E@8 ~@4 E@8 ~@2>".pickRestart({
  A: "~@23 x", B: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@2 x ~@3", C: "~@2 x ~@5 x ~@2 x ~@4 x!2 ~@4 x ~",
  D: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@4 x!2", E: "x ~ x!2 ~ x!2 ~ x!2 ~ x", F: "x",
})).gain(0.42).pan(0.7)

stack(
  bass, bass_soft, electric_guitar_jazz, electric_guitar_jazz_2, electric_guitar_clean, rock_organ, piano, bass_2,
  bass_3, bass_4, bass_soft_2, snare, low_tom, mid_tom, open_hat, ride
)

More by Gary Lewis