Strudelify
You Get What You Give cover art

1998 · Maybe You've Been Brainwashed Too

You Get What You Give

New Radicals

KeyA majorTempo115 bpm
0:00/0:00
// You Get What You Give — New Radicals
// 115 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 142 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): tk4.
// note: The whole transcription plays 34 ms behind the beat; the grid follows it, so its parts stay together.
setcpm(115/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, A@4 for four bars: edit a riff to change every repeat.

// chords · synth strings 1 · "tk1"
const synth_strings_1 = note("<~@40 A@8 ~ B C D C D ~@16 E@8 F B ~@12 E@40 F ~@2 G F ~@5>".pickRestart({
  A: "[f#6@16 e6@32 f#6@8 e6@8 f#6@16 e6@32 f#6@8 e6@7 f#6, a6]/8", B: "e6@3 d6 g6@4, ~@8 d6@5 ~@3", C: "e6", D: "d6",
  E: "[f#6@2 e6@4 f#6 e6 f#6@2 e6@4 f#6 e6, a6]/8", F: "f#6", G: "~@10 a1 ~@5, ~ e6",
})).s("gm_synth_strings_1").gain(0.13)

// chords · electric guitar jazz · "tk4"
const electric_guitar_jazz = note("<~@5 A ~ A ~ A ~ A ~@130>".pickRestart({
  A: "~ a5!2 ~ a5!2 ~ a5",
})).s("gm_electric_guitar_jazz").gain(0.28)

// chords · sitar · "tk5"
const sitar = note("<A B A B A B A B A B A B ~@130>".pickRestart({
  A: "[a3,c#4,e4]!8", B: "[g3,b3,d4]!8",
})).s("gm_sitar").gain(0.12)

// chords · piano · "tk6"
const piano = note(`<
  ~@12 A B A B A B A B A B@2 C A B A B A B@2 C D E F G D E H I J K A L J K A L M N A B A B A B A B A B@2 C D E F G D E H
  I J K A L J K A L M N A O A O A O A O A O A B A B P J K A L J K A L J K A L J K A L J K A L J K A L J K A L J K A L J
  K A L J K A L J K A L Q@2 ~
>`.pickRestart({
  A: "[a3,c#4,e4,a4]!8", B: "[g3,b3,d4,g4]!8", C: "[a3,d4,g4]!4 [a3,c#4,g4]!4", D: "[a2,c#3,e3,a3,c#4,e4]!8",
  E: "[b2,d3,f#3,b3,d4,f#4]!8", F: "[b2,d3,g3,b3,d4,f#4]!8", G: "[d3,e3,a3,d4,f#4]!4 [c#3,e3,a3,c#4,e4]!4",
  H: "[b2,d3,g3,b3,d4,g4]!8", I: "[d3,e3,a3,c#4,e4,a4]!4 [c#3,e3,a3,c#4,e4,a4]!4", J: "[a3,d4,f#4,a4]!8",
  K: "[a3,d4,e4,a4]!4 [a3,c#4,e4,a4]!4", L: "[b3,d4,f#4,a4]!4 [a3,c#4,e4,a4]!4", M: "[b3,d4,f#4,a4]!8",
  N: "[a3,c4,e4,a4]@3 [g3,b3,d4,g4] [g3,b3,d4,g4]@4", O: "[a3,c4,e4,g4]!4 [g3,b3,d4,g4]!4",
  P: "[a3,c#4,e4,a4]!7 [a3,e4,a4]", Q: "[a3,d4,f#4,a4]/2",
})).s("gm_piano").gain(0.32)

// chords · acoustic guitar steel · "tk7"
const acoustic_guitar_steel = note(`<
  A B A B A B A B A B A B A B A B A B A B A B@2 C A B A B A B@2 C D E F G D E H I B C D J B C D J B K A B A B A B A B A
  B@2 C D E F G D E H I B C D J B C D J B K A L A L A L A L A L A M N M N B C D J B C D J B C D J B C D J B C D J B C D
  J B C D J B C D J B C D J B C D J B C D J O@2 ~
>`.pickRestart({
  A: "[a3,c#4,e4]!8", B: "[g3,b3,d4]!8", C: "[a3,d4]!4 [a3,c#4]!4", D: "[f#3,a3,c#4]!8",
  E: "[f#3,b3,d4]!4 [f#3,a3,c#4]!4", F: "[g3,b3]!8", G: "[e3,a3,d4]!4 [e3,a3,c#4]!4", H: "[e3,a3,d4]!8",
  I: "[e3,a3,c#4]!8", J: "[f#3,b3,d4]!4 [a3,c#4]!4", K: "[e3,a3,c4]@3 [d3,g3,b3] [d3,g3,b3]@4",
  L: "[a3,c4,e4]!4 [g3,b3,d4]!4", M: "[a3,d4]!8", N: "[a3,c#4]!8", O: "[g3,b3,d4]/2",
})).s("gm_acoustic_guitar_steel").gain(0.17)

// bass · electric bass finger · "tk11"
const bass = note(`<
  ~@11 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE V AF AG AH AI AJ AK AL H C J AM AN AO AP AQ AR
  AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE
  CF CG CH CI CJ CK CL CM W CN CO CP CQ CR BE CS@2 CT BE CU CV CW CX CY CZ DA CX CY DB DC@2 DD@2 DE AH AI DF DG DH DI W
  DJ ~@2
>`.pickRestart({
  A: "~@3 a1", B: "d2@3 d2!2 d2@3", C: "c2@4 c2!2 a1 c2", D: "d2@3 f#2@2 g2 g#2 a2", E: "c2@3 c2!3 a1 c2",
  F: "d2@4 d2!2 a1 d2", G: "c2@4 e2 f2 f#2 g2", H: "d2@4 d2!3 a1", I: "c2@4 c2 g1 a1 c2", J: "d2@6 f#2@3 ~ g2@3 ~ a2@2",
  K: "c2@4 c2!2 a1 g1", L: "e1@4 e1!3 g1", M: "a1@4 a1!2 c2 a1", N: "d2@8 d2@2 d2@3 ~ d2@2", O: "c2@2 c2@2 c2 g2@3",
  P: "d2@6 f#2@3 ~ g2@2 a2@4", Q: "c2@3 c2!2 a1 c2 c#2", R: "d2@6 f#2@3 ~ g2@3 ~ a1@2", S: "c2@3 c2!2 a1 g1 f#1",
  T: "e1@4 e1@2 e1@3 ~ f#1@2 g1@2 g#1@2", U: "a1@4 a1!3 g1", V: "f#1@4 f#1!2 a1 a#1", W: "b1@2 b1!2 a1 a1@2 a1",
  X: "g1@4 g1!2 ~ g1", Y: "a1@3 a1!2 e2 a2 e2", Z: "f#2@4 f#2 a2 f#2 a1", AA: "b1@2 b1@2 b1!2 d2@2",
  AB: "a2@2 a2@2 a2 a2@2 a2", AC: "e3@2 ~ g2 a2@3 g2 a2@3 g2 a2@3 ~, ~ a2 ~@6", AD: "g1@4 g1 f#1 g1 g#1",
  AE: "a1@4 ~ a1 c#2 e2", AF: "b1@2 d2 e2 a1!4", AG: "g1@4 g1 b1 e2@2", AH: "a1@3 a1 c#2 e2 c#2 e2",
  AI: "f#2@2 f#2@2 f#2 e2 c#2 a1", AJ: "b1@3 b1 a1 a1@3", AK: "g1@4 g1!4", AL: "a1@5 ~ g1@2 g1@8",
  AM: "c2@2 c2@2 c2 a1 c2 c#2", AN: "d2@4 d2 d2@2 a1", AO: "c2@2 c2@2 c2!2 a1 c2", AP: "d2@3 f#2 a1 g2 a1 a2",
  AQ: "c2@2 c2@2 c2 g1 a1 c2", AR: "d2@6 f#1@3 ~ g1@2 g#1@2 a1@2", AS: "c2@4 c2 a1 d2 d#2", AT: "e2@3 d2 e2 d2 b1 a#1",
  AU: "a1@3 a1!3 g1!2", AV: "f#1@2 f#1@2 f#1!2 a1 a#1", AW: "b1@3 b1 a1!2 a1@2", AX: "g1@2 g1@2 g1!2 d2@2",
  AY: "a2@3 g2 a2@3 a2 b2@2 b2@2 e3@4", AZ: "f#1@4 f#1 g#1 a1 a#1", BA: "b1@3 b1!3 a1 b1",
  BB: "a2@7 ~@2 g2 a2@3 g2 a2@2", BC: "~ g2 a2@3 g2 a2@3 g2 a2@2 g2@2 e2@2", BD: "g1@4 g1!2 f#1 g1",
  BE: "a1@3 a1!2 c#2 e2 f2", BF: "f#2@3 e2 f#2 e2 c#2 a1", BG: "b1@2 b1 d2 a1!4", BH: "g1@4 g1 b1 d2 e2, ~@10 a1 ~@5",
  BI: "a1@4 a1 c#2 e2 f2", BJ: "f#2@6 e2!2 c#2@2 b1@2 a1@2 f#1@2", BK: "b1@3 b1 a1 a1@2 a1", BL: "g1@3 g1!2 e1 g1 g#1",
  BM: "a1@3 g1 g1@2 g1 a1", BN: "d2@4 d2 f#1@2 g1", BO: "a1@4 g1!2 a1 b1", BP: "d2@4 d2@3 a1 d2@2 a1@2 f#1@2 g1@2",
  BQ: "a1@3 a1 g1 g1@3", BR: "d2@4 d2 a1 f#1 g1", BS: "a1@3 a1 g1!2 d2@2", BT: "d2@4 f#2!2 g2 g#2",
  BU: "a2@3 a2 g2 g2@3", BV: "d2@4 ~ f#1 g1 g#1", BW: "a1@3 a1 g1 g1@2 a1", BX: "d2@4 d2 f#1 g1 g#1",
  BY: "a1@4 a1!2 ~ a1", BZ: "a1@2 a1@3 ~ a1@2 a1@2 a1@2 a2@2 a1@2", CA: "a2!2 ~ a2 ~ a2 c#3 a2",
  CB: "c#3 a2 c#3 e3 c#3 [a2,c#3] e3@2", CC: "g2@4 g1 g1@2 g1", CD: "a1@4 a1!2 e2 f2", CE: "f#2@5 e2 c#2 a1",
  CF: "b1@3 b1 a1 f#1 a1@2", CG: "g1@4 g1 f#1 g1@2", CH: "a1@3 a1!2 e2 c#2 e2",
  CI: "f#2@6 a2 f#2 c#2@2 e2@2 c#2@2 a1@2", CJ: "b1@3 b1 a1!2 f#1 a1", CK: "g1@6 ~ g2 d2@2 g1@2 d2@2 g1@2",
  CL: "a1@3 f#1 a1!2 g1 e1", CM: "f#1@2 a1!2 b1!2 c#2 a1", CN: "g1@4 g2 d2 g1 g#1", CO: "a1@3 f#1 a1 f#1 a1 g1",
  CP: "f#1@5 f#1 a1 a#1", CQ: "b1@2 b1 f#1 a1!2 f#1 a1", CR: "g1@2 g2 f#2 g2 f#2 d2 e2",
  CS: "[f#2@3 e3@2 a3@5 g3 f#3 g3 f#3 e3 a1]/2", CT: "g1@3 g1!3 b1 d2", CU: "f#2@2 f#2@2 f#1!2 a1 a#1",
  CV: "b1@2 d2 e2 a1!3 e2", CW: "g2@2 g2@2 g2 e2 d2 b1", CX: "a1@6 a2 e2 a1@2 a2 e2 a1@2 g1@2",
  CY: "f#1@4 f#1@4 f#1 ~ f#1@2 a1@2 a#1@2", CZ: "b1!2 d2 e2 a1 d2 e2 f#2", DA: "g2@2 g2@2 g2 f#2 e2 d2",
  DB: "b1@3 b1 a1 d2 e2 f#2", DC: "[g2@2 b2@3 a2 b2 a2@2 a2 ~ a2@2 c#3 e3 c#3, ~@12 a2 ~@13 b2 ~@5]/2",
  DD: "[f#3@2 f#3@2 f#3@2 f#3 a3@2 f#3 a3@2 f#3 a3@3, e3 ~@3 e3 ~@3 e3 ~@5 g3 ~@5 g3 ~@5 g3 ~@5]/2",
  DE: "g1@2 g1@2 g1 b1 d2 e2, ~@10 a1 ~@5", DF: "b1@6 b2 f#2 b1@2 b2 f#2 a1@4", DG: "g1@4 g1 b1 d2 e2",
  DH: "a1@3 a1!2 c#2 e2 f#2", DI: "f#2@2 f#2@3 e2 c#2 a1", DJ: "g1",
})).s("gm_electric_bass_finger").gain(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@9 B A@3 C A@7 C@2 A@3 D@2 A C A@2 C@10 A C@2 A C D C@19 E C@9 E C@14 F C@4 A C@8 E C D C@2 A C E@2 A C@4 G C@3 E
  C@5 E C E C@3 F H ~@2
>`.pickRestart({
  A: "x ~@3 x!2 ~@2", B: "~ x ~ x ~ x!3", C: "x ~@3 x!2 ~ x", D: "x ~@2 x!3 ~@2", E: "x ~@2 x!3 ~ x",
  F: "~ x ~ x ~ x ~ x", G: "x!2 ~ x!2 ~@2 x", H: "x",
})).gain(0.43)

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

// drums · low tom
const low_tom = s("lt").struct("<~@39 A B ~@8 A ~@11 A ~@7 A ~@9 A ~@42 C ~@7 D ~@11>".pickRestart({
  A: "~@5 x!3", B: "x", C: "~@3 x", D: "~@14 x!2",
})).gain(0.5)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@2 A@9 ~ B A@2 C B A@5 B D A@6 B E B A@5 B A B A@8 F B D A D B A@5 B E B A@3 B A B G B A@6 D B F B A@2 C B A@9 ~ B
  A@3 B A@7 B A@2 E B A@3 H A@5 B ~@20
>`.pickRestart({
  A: "x!8", B: "~@2 x!6", C: "x!6 ~@2", D: "x!7 ~", E: "x!5 ~@3", F: "~ x ~@2", G: "x!4 ~@4", H: "~@4 x!4",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@23 [~@7 x] ~@7 [~@5 x!3] ~@19 [~@7 x] ~@90>").gain(0.5)

// drums · crash
const crash = s("cr").struct(`<
  ~@12 A ~@2 B A ~@5 A ~@7 A ~ A ~@5 A ~ A ~@8 C A ~@3 A ~@5 A ~ A ~@3 A ~ A D A ~@7 A C A ~@2 E A ~@6 F@3 ~ A ~@3 A ~@7
  A ~@3 A ~@3 G ~ F H@3 A I J K@3 J K@2 L J K J K@3 J K A ~@2
>`.pickRestart({
  A: "x", B: "x!2 ~@6", C: "x ~@2 x!2 ~@3", D: "~ x", E: "~@3 x", F: "x!4", G: "x!2 ~@2", H: "x ~ x ~ x ~ x!2",
  I: "x!3 ~@5", J: "x ~ x!6", K: "x!8", L: "x!7 ~",
})).gain(0.14)

// drums · tambourine
const tambourine = s("tb").struct("<~@3 A B C B A B C B A D@17 E D@10 ~ D@53 ~ D@44 ~@3>".pickRestart({
  A: "~@9 x!4 ~ x ~", B: "x", C: "~@5 x ~ x", D: "x!8", E: "x ~ x ~ x ~ x ~ x ~ x ~ x!4",
})).gain(0.64)

stack(
  synth_strings_1, electric_guitar_jazz, sitar, piano, acoustic_guitar_steel, bass, kick, snare, low_tom, pedal_hat,
  open_hat, crash, tambourine
)