Strudelify
Don't Talk Just Kiss cover art

1992 · Up

Don't Talk Just Kiss

Right Said Fred

KeyE majorTempo125 bpm
0:00/0:00
// Don't Talk Just Kiss — Right Said Fred
// 125 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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 · "FINGERDBAS"
const bass = note(`<
  ~@4 A@4 B@3 C@8 D E F G H@4 I@8 J K L M D E F G N E F G O ~@4 M J M J K L M D E F G N E F G O P Q P R P Q S ~ E F G N
  E F G T E F G N E F G T E ~ G ~ E ~ G O U ~@7
>`.pickRestart({
  A: "[e1@31 ~]/4", B: "[e1@33 ~@5 e1@7 ~@3]/3",
  C: "[~@16 e1@2 ~@2 e1@2 ~ e1 ~ e1 ~ e1!2 ~ e1@2 a1 ~ a1 ~ a1@3 b1 ~ b1 ~ b1!2 ~ b1@2 e1@2 ~@2 e1@2 ~ e1 ~ e1 ~ e1!2 ~ e1@2 a1 ~ a1 ~ a1@3 b1 ~ b1 ~ b1!2 ~ b1@2 a1@2 ~@2 a1@2 ~ a1 ~ a1 ~ a1!2 ~ a1@2 b1 ~ b1 ~ b1@3 c#2 ~ c#2 ~ c#2!2 ~ c#2@2 e1@2 ~@2 e1@2 ~ e1 ~ e1 ~ e1!2 ~ e1@2, e2]/8",
  D: "~@4 b1@3 ~", E: "f#1@2 f#2@2 g#1@2 g#2@2 a1@2 a2@2 b1 c#2@2 f#2",
  F: "b1@2 b2@2 a1@2 a2@2 g#1@2 g#2@2 f#1 c#2@2 c#3", G: "f#1@2 f#2@2 g#1@2 g#2@2 a1 ~ a2@2 b1 b2@2 c#2",
  H: "[b1@2 b2@2 c#2@2 c#3@2 d#2@2 ~@4 e3@2 f#1@2 f#2@2 g#1@2 g#2@2 a1@2 a2@2 b1 c#2@2 f#2 b1@2 b2@2 a1@2 a2@2 g#1@2 g#2@2 f#1 c#2@2 c#3 f#1@2 f#2@2 g#1@2 g#2@2 a1 ~ a2@2 b1 b2@2 c#2, ~@5 d#3@2 ~@25, ~@3 e2@13]/4",
  I: "[b1 ~ b1 ~ b1@2 ~@4 b1@2 ~@4 e1@5 ~@11 e1@5 ~@11 e1@7 ~@9 e1@6 ~@2 b1@6 ~@2 e1@2 ~@2 e1@2 ~ e1 ~ e1 ~ e1!2 ~ e1@2 a1 ~ a1 ~ a1@3 b1 ~ b1 ~ b1!2 ~ b1@2 e1@2 ~@2 e1@2 ~ e1 ~ e1 ~ e1!2 ~ e1@2, ~@3 e2@29]/8",
  J: "a1 ~ a1 ~ a1@3 b1 ~ b1 ~ b1!2 ~ b1@2", K: "a1@2 ~@2 a1@2 ~ a1 ~ a1 ~ a1!2 ~ a1@2",
  L: "b1 ~ b1 ~ b1@3 c#2 ~ c#2 ~ c#2!2 ~ c#2@2", M: "e1@2 ~@2 e1@2 ~ e1 ~ e1 ~ e1!2 ~ e1@2",
  N: "b1 b2 c#2 c#3 d#2 ~ e2 e3, ~@5 d#3@2 ~", O: "b1 ~ b1 ~ b1@2 ~@4 b1@2 e2@3 ~",
  P: "f#1 ~ f#1 ~ g#1 ~ g#1 ~ a1 ~ a1 ~ b1 c#2@3", Q: "b1 ~ b1 ~ a1 ~ a1 ~ g#1 ~ g#1 ~ a1 c#2@3",
  R: "b1 ~ b1 ~ a1 ~ a1 ~ g#1 ~ g#1 ~ a1 c#2@2 ~", S: "f#1@7 ~", T: "b1 ~ b1 ~ b1@2 ~ b1 ~ b1 f#2 g#2 b2@2 ~@2",
  U: "e2 ~@15",
})).s("gm_electric_bass_finger").gain(0.78)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@4 A B C D E@2 F@2 ~@8 G@8 ~@12 G@8 ~@12 G@8 ~@6 H I J@4 K@4 L M N O K@4 L M N O P@3 Q@8 ~
>`.pickRestart({
  A: "[b3,b4,b5]@5 ~ [a4,a5]@5 ~ [g#4,g#5]@4, ~@5 a3@6 g#3@4 ~", B: "[f#3,f#4,f#5]@3 [e3,e4,e5]@3 [f#3,f#4,f#5]@2",
  C: "[g#3,g#4,g#5]@6 [e3,e4,e5]@5 ~ c#3@4, ~@11 [c#4,c#5]@4 ~", D: "[b2,b3,b4]",
  E: "[[b3,b4,b5]@5 ~ a3@5 [g#3,g#4,g#5]@4 ~ [f#4,f#5]@5 [e3,e4,e5]@6 [f#3,f#4,f#5]@5, ~@5 [a4,a5]@6 ~@4 f#3@6 ~@11]/2", // B G# F# E F# A
  F: "[g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3 g#3 a3, [g#4,g#5]@15 ~]/2", // G#
  G: "[[b3,b4,b5]@3 [a3,a4,a5]@3 [g#3,g#4,g#5]@2 [f#3,f#4,f#5]@3 [e3,e4,e5]@3 [f#3,f#4,f#5]@2 [g#3,g#4,g#5]@3 [e3,e4,e5]@3 [c#3,c#4,c#5]@2 [b2,b3,b4]@8 [b3,b4,b5]@3 [a3,a4,a5]@3 [g#3,g#4,g#5]@2 [f#3,f#4,f#5]@3 [e3,e4,e5]@3 [f#3,f#4,f#5]@2 [g#3,g#4,g#5]@3 [e3,e4,e5]@3 [g#3,g#4,g#5]@2 [f#3,f#4,f#5]@6 ~@2, e6@31 ~]/8", // B A G# F# E F# G# E …
  H: "~@8 [d5,e5] [b4,c5] [c5,d5] e5 [e5,f5] d5 [c5,d5] [e5,f5]", // Dsus2 Cmaj7 Csus2 Fmaj7 Csus2 Fmaj7
  I: "[f5,g5] e5 [d5,e5] [f5,g5] [g5,a5] f5 [e5,f5] g5 [a5,b5] g5 [f5,g5] [a5,b5] [b5,c6] a5 [g5,a5,b5] c6", // Fsus2 Dsus2 Fsus2 Gsus2 Fmaj7 Asus2 Fsus2 Asus2 …
  J: "[b3@6 a3@6 g#3@4 f#3@5 e3@7 f#3@4 g#3@6 e3@6 c#3@4 b2@14 [e3,b3] [e4,e5], e6@31 ~]/4", // E5 E
  K: "[b3@6 a3@6 g#3@4 f#3@6 e3@5 f#3@4 ~ g#3@5 e3@6 g#3@4 ~@14 e3 b3 [e4,e6], e6@61 ~@3, b5 ~@46 f#3@16 ~]/4", // E
  L: "b3@3 a3@3 g#3@2, e6 ~@15", M: "f#3@5 e3@7 f#3@4", N: "g#3@3 e3@3 c#3@2", O: "b2@14 [e3,b3] [e4,e5]",
  P: "[b3@6 a3@6 g#3@4 f#3@6 e3@5 f#3@4 ~ g#3@5 e3@6 g#3@4 f#3, e6, b5 ~@47]/3",
  Q: "[~@13 e3 b3 e4 [e3,b3] ~@111, ~@15 e6@113]/8", // E5
})).s("gm_string_ensemble_1").gain(0.31)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~@4 A B A C A B A ~@5 D E F@8 A ~@9 D E G@8 A ~@9 D E F@8 A ~ A B A C A B ~@2 A B A C A B A ~ A B A C A B A ~ A B A C
  A B A ~@9
>`.pickRestart({
  A: "[c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@4", B: "[d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@4",
  C: "g#3@2 ~@2 b3@2 [e4,f#4] ~, [d#4,e4,f#4]@6 [c#4,e4,f#4]@5 ~ c#4 ~@3, ~ a3 ~@2", // Esus2 D#m F#7
  D: "[a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 a2 [a3,c#4,e4]!2 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2 a2, ~@13 a2 ~@2", // A
  E: "[f#3,b3,d#4] ~ [b3,d#4] ~ f#3!2 ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4]@3, ~@2 f#3@2 [b3,d#4]@2 ~@7 a3 ~@2", // B C#m B
  F: "[[e3,g#3,b3]@2 ~@2 [e3,g#3,b3]@2 ~ e3 ~ [e3,g#3,b3] ~ [e3,g#3,b3] ~ b3@2 ~@17 [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@4 [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@4 [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@4 g#3@4 ~@4 b3@4 [e4,f#4]@2 ~@2 [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@4 [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@4, ~@13 e3@115, ~@13 g#3 ~@66 [d#4,e4,f#4]@6 [c#4,e4,f#4]@5 ~ c#4 ~@35, ~@21 a3 ~@10]/8", // E C#m D#dim C#m Esus2 C#m D#dim D#m …
  G: "[[g#3,b3]@2 ~@2 [e3,g#3,b3]@3 e3@2 [g#3,b3] ~ [g#3,b3] ~ b3@2 ~@17 [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@4 [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@4 [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@4 g#3@4 ~@4 b3@4 [e4,f#4]@2 ~@2 [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@5 ~ [c#4,e4,g#4]@4 [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@5 ~ [d#4,f#4,a4]@4, e3@4 ~@5 e3@2 e3@2 e3@115, ~@13 g#3 ~@66 [d#4,e4,f#4]@6 [c#4,e4,f#4]@5 ~ c#4 ~@35, ~@21 a3 ~@10]/8", // G#m E G#m C#m D#dim C#m Esus2 C#m …
})).s("gm_piano").gain(0.48)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<A B C D ~@8 A B C D ~@12 A B C D A B C D ~@12 A B C D A B C D ~@52>".pickRestart({
  A: "[b3,e4,b4]@2 ~ [b3,e4,b4] [b3,e4,a4]!2 ~ [b3,e4,g#4] ~ [b3,e4] ~ [b3,e4] [b3,e4,g#4] ~ [b3,e4,g#4] ~", // E5 Esus4 E E5 E
  B: "[b3,e4,b4]@2 ~ [b3,e4,b4] [b3,e4,a4] [b3,e4] ~ [b3,e4,g#4] ~ [b3,e4] ~ [b3,e4] [b3,e4,g#4] [b3,e4] [b3,e4]@2", // E5 Esus4 E5 E E5 E E5
  C: "[b3,e4,b4]@2 b3 [b3,e4,b4] [b3,e4,a4]!2 b3 [b3,e4,g#4] ~ [b3,e4] ~ [b3,e4] [b3,e4,g#4] ~ [b3,e4] ~", // E5 Esus4 E E5 E E5
  D: "[b3,e4,b4]@2 ~ [b3,e4] [b3,e4,a4]!2 ~ [b3,e4,g#4] ~ [b3,e4] ~ [b3,e4] [b3,e4,g#4]!2 [b3,e4] ~", // E5 Esus4 E E5 E E5
})).s("gm_acoustic_guitar_steel").gain(0.43)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note("<~@28 A B@3 A B@3 A B@2 ~@9 A B@3 A B@3 A B@2 ~@49>".pickRestart({
  A: "e2@2 ~@2 e2 ~ e2 ~ e2 ~ e2!2 ~ e2!2 ~", B: "e2@2 ~ e2 ~@2 e2 ~ e2 ~ e2!2 ~ e2!2 ~",
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.1)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted_2 = note("<~@28 A B C B A B C B A B C ~@9 A B C B A B C B A B C ~@49>".pickRestart({
  A: "~@4 e3!2 ~ e3 ~ e3 ~@2 e3 ~@2 e3", B: "~@2 e3 ~ e3!2 ~ e3 ~ e3 ~@2 e3 ~@2 e3",
  C: "~@2 e3 ~ e3!2 ~ e3 ~ e3 ~@2 [e3,f3] ~@2 e3", // Fmaj7
})).s("gm_electric_guitar_muted").gain(0.43).pan(0.9)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_3 = note("<~@28 A ~@3 A ~@3 A ~@11 A ~@3 A ~@3 A ~@51>".pickRestart({
  A: "~@2 e3 ~@4 f3 ~@8",
})).s("gm_electric_guitar_muted").gain(0.24).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~@4 A@8 B@7 C B@19 C B@8 D@4 B@7 C B@14 E ~ B@24 ~@8>".pickRestart({
  A: "x ~@4 x ~@2", B: "x!2", C: "x!4", D: "x ~ x ~ x!4", E: "x",
})).gain(0.74)

// drums · clap
const clap = s("cp").struct(`<
  ~@20 A@3 B A@3 B ~@12 A@3 B A@3 B ~@12 A@3 B A@3 B ~@8 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@8
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~",
})).gain(0.74)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@11 A ~@7 B ~@7 C D@4 ~@7 B ~@7 C D@4 ~@7 B ~@7 C ~@6 D E ~@7 C ~@7 C ~@7 C ~@8
>`.pickRestart({
  A: "~ x ~@14", B: "~ x ~@3 x!2 ~@2 x!3 ~@4", C: "~@7 x!3 ~@6", D: "~@15 x", E: "x!2 ~@6 x!4 ~@4",
})).gain(0.44)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B@3 A B@10 C D@7 E B@11 C D@7 E B@11 C D@7 E D@6 F ~ D@7 E D@7 E D@7 E ~@8
>`.pickRestart({
  A: "~@4 x ~@3 x!6 ~@2", B: "x!6 ~@2 x!6 ~@2", C: "x!16", D: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2",
  E: "x!2 ~@2 x!2 ~@2 x ~@3 x ~@3", F: "x",
})).gain(0.66)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@4 A B@3 A B@10 ~ C@7 D B@11 ~ C@7 D B@11 ~ C@7 D C@6 ~@2 C@7 D C@7 D C@7 D ~@8
>`.pickRestart({
  A: "~ x ~ x ~@3 x", B: "~@3 x ~@3 x", C: "~ x ~ x ~ x ~ x", D: "~ x ~ x ~@4",
})).gain(0.66)

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

// drums · ride
const ride = s("rd").struct("<[x ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x!2]!4 ~@104>").gain(0.52)

// drums · tambourine
const tambourine = s("tb").struct("<~@4 A@8 B@7 ~ B@19 ~ B@19 ~ B@14 ~@2 B@24 ~@8>".pickRestart({
  A: "x ~ x!4 ~ x!7 ~@2", B: "x ~ x!3 ~ x!10",
})).gain(0.44)

stack(
  bass, string_ensemble_1, piano, acoustic_guitar_steel, electric_guitar_muted, electric_guitar_muted_2,
  electric_guitar_muted_3, kick, clap, snare, snare_soft, hihat, open_hat, crash, ride, tambourine
)

More by Right Said Fred