Strudelify
If This Is It cover art

Sports

If This Is It

Huey Lewis & The News

KeyG majorTempo102 bpm
0:00/0:00
// If This Is It — Huey Lewis & The News
// 102 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 113 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(102/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V S W X Y C Z E AA C AB AC AD AE AF AG AH K AI U AJ AK AL AM AN AO AP X AQ
  AR AS AT Y G AU AV AW AX AY AV AZ BA BB BC BD G BE BC F BF BG BH Y BI BJ A AQ AR BK A BL BM BJ A AQ BN BO BP BQ AR BR
  BS BT AR D AV BU AX BV BW BX BY BZ CA ~@7
>`.pickRestart({
  A: "g1@3 ~ g1@2 ~@4 d1@2 g1@3 ~ g1@2 ~@2 a1 ~ a#1@2", B: "b1@3 ~ b1@3 ~@3 f#1@2 b1@3 ~ b1@2 ~@4 b1@2",
  C: "d2@5 ~ d2@5 ~ e2@6 e2@6", D: "a1@5 ~ b1@5 ~ c2@5 ~ d2@5 ~", E: "g1@4 g1@2 ~@4 d1@2 g1@3 ~ g1@3 ~ a1 ~ a#1@2",
  F: "b1@3 ~ b1@2 ~@4 f#1@2 b1@3 ~ b1@2 ~@4 b1@2", G: "d2@5 ~ d2@6 e2@5 ~ e2@5 ~", H: "a1@6 b1@5 ~ c2@5 ~ d2@5 ~",
  I: "g1@7 ~@3 g1@2 e1@6 ~@2 f1 ~ f#1@2", J: "g1@3 ~ g1@2 ~@4 g1@2 e1@5 ~ e1@6", K: "g1@3 ~@2 g1 e1@3 g1@3",
  L: "f2@6 e2@6 d2@5 ~ d2@6", M: "g1@6 ~@4 g1 ~ e1@6 ~@4 e1@2", N: "g1@3 ~@2 g1 e1@3 ~@2 e1",
  O: "g1@7 ~@3 g1@2 e1@5 ~ g1@6", P: "f2@6 e2@5 ~ d2@6 d2@6", Q: "a1@7 ~@3 a1@2 b1@7 ~@3 b1@2",
  R: "c2@5 ~ d2@5 ~ e2@6 e2@6", S: "a1@3 ~ a1@2 ~@4 a1@2 b1@3 ~ b1@2 ~@4 b1@2", T: "c2@6 d2@6 e2@5 ~ e2@6",
  U: "a1@3 ~@2 a1 b1@3 ~@2 b1", V: "c2@5 ~ d2@6 e2@5 ~ e2@6", W: "c2@2 ~@4 d2@17 ~",
  X: "g1@4 g1@2 ~@4 d1 ~ g1@3 ~ g1@2 ~@2 a1 ~ a#1@2", Y: "b1@3 ~ b1@2 ~@4 f#1@2 b1@3 ~ b1@3 ~@3 b1@2",
  Z: "a1@6 b1@6 c2@5 ~ d2@5 ~", AA: "b1@4 b1@2 ~@4 f#1@2 b1@3 ~ b1@2 ~@4 b1@2", AB: "a1@5 ~ b1@6 c2@6 d2@5 ~",
  AC: "g1@6 ~@4 g1 ~ e1@7 ~ f1 ~ f#1 ~", AD: "g1@6 ~@4 g1@2 e1@3 ~ e1@3 ~ f1 ~ f#1@2", AE: "g1@6 ~@4 g1@2 e1@5 ~ g1@6",
  AF: "f2@6 e2@5 ~ d2@5 ~ d2@6", AG: "g1@6 ~@4 g1@2 e1@6 ~@2 f1 ~ f#1@2",
  AH: "g1@4 g1@2 ~@4 g1@2 e1@5 ~ e1@2 f1 ~ f#1@2", AI: "f2@6 e2@5 ~ d2@5 ~ d2@5 ~", AJ: "c2@5 ~ d2@6 e2@5 ~ e2@5 ~",
  AK: "a1@3 ~ a1@2 ~@4 a1@2 b1@4 b1@2 ~@4 b1@2", AL: "c2@6 d2@6 e2@5 ~ e2@5 ~", AM: "a1@7 ~@3 a1@2 b1@6 ~@4 b1@2",
  AN: "c2@5 ~ d2@6 e2@6 e2@5 ~", AO: "a1@4 a1@2 ~@4 a1@2 b1@3 ~ b1@3 ~@3 b1@2", AP: "c2 ~@2 d2@9",
  AQ: "b1@3 ~ b1@2 ~@4 f#1@2 b1@3 ~ b1@3 ~ c2 ~ c#2@2", AR: "d2@5 ~ d2@6 e2@5 ~ e2@6",
  AS: "a1@2 a2@2 a1@2 b1@5 ~ c2@2 c3@2 c2@2 d2@5 ~", AT: "g1@4 g1@2 ~@4 g1 ~ g1@3 ~ g1@2 ~@2 a1 ~ a#1@2",
  AU: "a1@5 ~ b1@5 ~ c2@6 d2@5 ~", AV: "d#2@5 ~ d#2@5 ~ d#2@5 ~ d#2@2 a#1@2 d#1@2",
  AW: "d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~", AX: "d2@5 ~ d2@5 ~ d2@5 ~ d2@2 a1@2 d1@2",
  AY: "d2@5 ~ d2@2 a1@2 d1@2 d2@5 ~ d2@2 d1@2 d2@2", AZ: "d#2@5 ~ d#2@4 ~@2 d#2@5 ~ d#2@5 ~",
  BA: "d2@5 ~ d2@4 d#2@2 e2@5 ~ e2@6",
  BB: "a1@2 ~@2 a1 ~ b1@2 ~@2 b1 ~ c2@2 ~@2 c2 ~ d2@2 d3@2 d2 ~, ~ a2@2 ~ b2@2 ~ c3@2 ~@3",
  BC: "g1@3 ~ g1@2 ~@4 d1@2 g1@3 ~ g1@3 ~ a1 ~ a#1@2", BD: "b1@3 ~ b1@3 ~@3 f#1@2 b1@3 ~ b1@3 ~@3 b1@2",
  BE: "a1@2 ~@2 a1 ~ b1@2 b2@2 b1@2 c2@2 c3@2 c2 ~ d2@2 d3@2 d2 ~, ~ a2@2 ~@9", BF: "d2@5 ~ d2@5 ~ e2@4 ~@2 e2@6",
  BG: "a1@5 ~ b1@6 c2@6 d2@6", BH: "g1@3 ~ g1@2 ~@4 d1@2 g1@3 ~ g1@3 ~ a1@2 a#1@2", BI: "d2@5 ~ d2@5 ~ e2@5 ~ e2@5 ~",
  BJ: "a1@2 a2@2 a1 ~ b1@2 b2@2 b1 ~ c2@2 c3@2 c2 ~ d2@2 d3@2 d2 ~", BK: "a1@2 a2@2 a1 ~ b1@5 ~ c2@2 c3@2 c2 ~ d2@5 ~",
  BL: "b1@3 ~ b1@3 ~ a1 ~ a#1@2 b1@3 ~ b1@3 ~ c2@2 c#2@2", BM: "d2@5 ~ d2@6 e2@6 e2@6",
  BN: "d2@5 ~ d#2@5 ~ e2@6 e2@5 ~", BO: "a1@3 ~ a1@2 b1@5 ~ c2@4 c2@2 d2@6",
  BP: "g1@7 ~@3 d1@2 g1@3 ~ g1@3 ~ a1 ~ a#1@2", BQ: "b1@4 b1@2 ~@4 f#1@2 b1@3 ~ b1@3 ~ c2@2 c#2@2",
  BR: "a1@2 a2@2 a1 ~ b1@4 ~@2 c2@2 c3@2 c2 ~ d2@2 d3@2 d2 ~", BS: "g1@3 ~ g1@2 ~@4 g1 ~ g1@3 ~ g1@2 ~@2 a1 ~ a#1 ~",
  BT: "b1@3 ~ b1@2 ~@4 b1 ~ b1@3 ~ b1@8", BU: "d#2@4 ~@2 d#2@4 ~@2 d#2@4 ~@2 d#2@5 ~",
  BV: "d2@5 ~ d2@5 ~ d2@2 a1@2 d1@2 d2@2 a1@2 d1@2", BW: "d#2@5 ~ d#2@4 ~@2 d#2@5 ~ d#2@2 a#1@2 d#1@2",
  BX: "d#2@4 ~@2 d#2@5 ~ d#2@5 ~ d#2@5 ~", BY: "d2@5 ~ d2@4 d#2@2 e2@5 ~ e2@5 ~",
  BZ: "a1@5 ~ b1@5 ~ c2@5 ~ d2@2 c2@2 d2@2", CA: "g2 ~@11",
})).s("gm_acoustic_bass").gain(0.43)

// chords · piano · "A.PIANO 2"
const piano = note(`<
  ~ A B C D A B C D E@3 F G@3 H I J I J I J I K A B C D A B C D L@3 M N@3 O I J I J I J I P A B C D A B C Q R S T U V W
  X Y A B C D A B C D A B C D A B C D A B Z D A B C D A B C D A B AA D AB AC AD AE AF AG AH Y AI@8
>`.pickRestart({
  A: "[b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G
  B: "[b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5] ~", // Bm
  C: "[a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // Dm E
  D: "[a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~", // Am7 G C Am7
  E: "[~@18 [e5,a5,c6]@3 ~ [d5,g5,b5]@17 ~@3 [c5,g5]@2 e5@2 [b4,d5,g5]@24 ~@2, ~@18 g#5 ~@23 d#5 ~@29]/3", // Am G C5 G
  F: "[c5,f5,a5]@5 ~ [c5,e5,g5]@4 ~@2 [a4,c5,e5,g5]@6 [a4,c5,e5,g5]@5 ~", // F C Am7
  G: "[~@9 [e5,c6] a5 [d5,g5,b5]@8 ~@2 [c5,g5] e5 [b4,d5,g5]@10 ~@3, ~@18 g#5 ~@23 d#5 ~@29]/3", // C G C5 G
  H: "[c5,f5,a5]@5 ~ [c5,e5,g5]@4 ~@2 [a4,c5,e5,g5]@5 ~ [a4,c5,e5,g5]@4 ~@2", // F C Am7
  I: "[a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // Am7 G
  J: "[c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~ [e5,g#5,b5] ~", // C D E
  K: "[c5,e5,g5] ~@5 [a4,c5,e5,g5]@15 ~@3", // C Am7
  L: "[~@18 [e5,c6]@2 a5 ~ [d5,g5,b5]@15 ~@5 [c5,g5]@2 e5@2 [b4,d5,g5]@20 ~@6, ~@18 g#5 ~@23 d#5 ~@29]/3", // C G C5 G
  M: "[c5,f5,a5]@5 ~ [c5,e5,g5]@4 ~@2 [a4,c5,e5,g5]@5 ~ [a4,c5,e5,g5]@5 ~", // F C Am7
  N: "[~@18 [e5,a5,c6]@2 ~@2 [d5,g5,b5]@15 ~@5 [c5,g5]@2 e5 ~ [b4,d5,g5]@20 ~@6, ~@18 g#5 ~@23 [d#5,f5] ~@29]/3", // Am G C5 G D#sus2
  O: "[c5,f5,a5]@6 [c5,e5,g5]@4 ~@2 [a4,c5,e5,g5]@5 ~ [a4,c5,e5,g5]@4 ~@2", P: "[c5,e5,g5] ~@5 [a4,c5,e5,g5]@14 ~@4",
  Q: "[a4,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~", // A7 Am7 G C Am7
  R: "[f5,a#5,d6]@5 ~ [f5,a#5,d6]@3 ~ [f5,a5,c6]@13 ~", S: "[f5,a#5,d6]@5 ~ [f5,a#5,d6]@3 ~ [f5,a5,c6]@11 ~@3",
  T: "[d5,g5,b5]@4 ~@2 [d5,g5,b5]@3 ~ [d5,f#5,a5]@11 ~@3", U: "[d5,g5,b5]@4 ~@2 [d5,g5,b5]@2 ~@2 [d5,f#5,a5]@13 ~",
  V: "[f4,a#4,d5,f5,a#5,d6]@5 ~ [f4,a#4,d5,f5,a#5,d6]@4 ~@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@5 ~, ~@10 [f5,a5,c6]@13 ~", // A# F
  W: "[f4,a#4,d5,f5,a#5,d6]@5 ~ [f4,a#4,d5,f5]@4 ~@2 [f4,a4,c5]@5 ~ [f4,a4,c5]@3 ~@3, ~@6 [a#5,d6]@3 ~ f5@12 ~@2, ~@5 [a5,c6]@5 ~@2", // A# F A# Am
  X: "[g4,d5,g5,b5]@4 [d5,g5,b5] ~ g4@2 [d5,g5,b5]@3 ~ [d5,g#5,b5]@3 ~ [d5,g#5,b5]@5 ~@3", // G G#dim
  Y: "[a4,c5,e5,g5]@5 ~ [b4,d5,g5]@5 ~ [c5,e5,g5]@5 ~ [a4,c5,e5,g5]@5 ~", // Am7 G C Am7
  Z: "[a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [b4,e5,f#5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // Dm E
  AA: "[a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~ [b4,e5,f5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // Dm E
  AB: "[a#4,d5,f5,a#5,d6]@5 ~ [a#4,d5,f5,a#5,d6]@3 ~ [f4,a4,c5,f5,a5,c6]@13 ~", // A# F
  AC: "[f4,a#4,d5,f5,a#5,d6]@5 ~ [f4,a#4,d5,f5,a#5,d6]@3 ~ [f4,c5,f5]@12 ~@2, ~@5 [a4,a5,c6]@5 ~@2", // A# F5 Am
  AD: "[g4,d5,g5,b5]@5 ~ [g4,d5,g5,b5]@4 [f#4,d5,f#5,a5]@13 ~", // G D
  AE: "[g4,d5,g5,b5]@5 ~ [g4,d5,g5,b5]@4 [f#4,d5,f#5,a5]@11 ~@3", // G D
  AF: "[f4,a#4,d5,f5,a#5,d6]@5 ~ [f4,a#4,d5,f5,a#5,d6]@3 ~ [f4,a4,c5,f5,a5,c6]@13 ~", // A# F
  AG: "[f4,a#4,d5,f5,a#5,d6]@5 ~ [f4,a#4,d5,f5,a#5,d6]@3 ~ [f4,a4,c5,f5]@13 ~, ~@10 [a5,c6]@9 ~@5", // A# F Am
  AH: "[d5,g5,b5]@4 [d5,g5,b5] ~@3 [d5,g5,b5]@3 ~ [d5,g#5,b5]@4 [d5,g#5,b5]@4 ~@4", AI: "[d5,g5]/8",
})).s("gm_piano").gain(0.32)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A B C D A B C D E F A G E F A G H I H I H I J K A B C D A B C D E F A G E F A G H I H I H I J K A B C D A B C D ~@8
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D ~@16
>`.pickRestart({
  A: "~@6 [d5,g5,b5] ~@11 [d5,g5,b5] ~@5", B: "~@6 [d5,f#5,a5] ~@11 [d5,f#5,a5] ~@5",
  C: "~@6 [d5,f5,a5] ~@11 [e5,g#5,b5] ~@5", D: "~@6 [b4,d5,g5]@2 ~@10 [c5,e5,g5] ~@5",
  E: "~@6 [d5,g5,b5] ~@11 [e5,g5,c6] ~@5", F: "~@3 [d5,g5,b5] ~@5 [e5,g5,c6] ~@2",
  G: "~@6 [c5,e5,g5]@2 ~@10 [c5,e5,g5] ~@5", H: "~@6 [c5,e5,g5]@2 ~@10 [b4,d5,g5] ~@5",
  I: "~@6 [c5,e5,g5] ~@11 [e5,g#5,b5] ~@5", J: "~@6 [c5,e5,g5] ~@11 [b4,d5,g5] ~@5", K: "~@3 [c5,e5,g5] ~@8",
})).s("gm_acoustic_guitar_steel").gain(0.41)

// drums · kick
const kick = s("bd").struct(`<
  A B@3 C B@3 C B@3 C B@3 C B C B C B C B D B@3 C B@3 C B@3 C B@3 C B C B C B C B D B@3 C B@3 E C@7 F B@3 C B@3 C B@3 C
  B@3 C B@3 C B@3 C B@3 C B@3 E C@7 F E ~@7
>`.pickRestart({
  A: "~@7 x!2 ~@3", B: "x!2 ~ x!2 ~", C: "x!2", D: "x!2 ~@4", E: "x", F: "x!4",
})).gain(0.59)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B@2 C A B@2 C B@3 C B@3 C B C B C B C B D A B@2 C B@3 C A B@2 C B@3 C A C B C B C B D A B@2 C B@3 C A C B@2 A C B
  ~ A B@2 C B@3 C A B@2 C B@3 C A B@2 C B@3 C A B@2 C B@3 C A C B@2 A C B ~@9
>`.pickRestart({
  A: "~ x!11", B: "x!12", C: "x!11 ~", D: "~@2 x!2",
})).gain(0.44)

// drums · low tom
const low_tom = s("lt").struct("<~@56 A ~@3 A ~@3 A ~@31 A ~@3 A ~@3 A ~@8>".pickRestart({
  A: "~@5 x",
})).gain(0.59)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@56 A ~@3 A ~@3 A ~@31 A ~@3 A ~@3 A ~@8>".pickRestart({
  A: "~@11 x",
})).gain(0.59)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@18 B A ~@7 A ~@7 A ~@6 B A ~@7 A ~@3 A ~@2 C A ~@7 A ~@7 A ~@7 A ~@7 A ~@3 A ~@2 C ~@8
>`.pickRestart({
  A: "x", B: "~ x ~@2", C: "x!4",
})).gain(0.59)

stack(bass, piano, acoustic_guitar_steel, kick, snare, hihat, low_tom, open_hat, mid_tom, crash)

More by Huey Lewis & The News