Strudelify

I Don't Want to Know [Early Take]

Fleetwood Mac

KeyB majorTempo145 bpm
0:00/0:00
// I Don't Want to Know [Early Take] — Fleetwood Mac
// 145 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 94 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(145/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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.

// other · electric guitar clean · "GUIT-SUS STEELGT6 GUIT-SUS STEELGT6 GUIT-SUS STEELGT6"
const electric_guitar_clean = note(`<
  A B C D C E C F G H@2 I J K@2 L G H@2 M J K@2 L N@2 O@2 P Q R@2 S@2 T U V Q W@2 X@2 G H@2 I G Y@2 L G H@2 M J K@2 L
  N@2 O@2 P Q R@2 S@2 T Q V Q Z@4 X@2 G H@2 I G K@2 AA ~@3 AB AC@2 AD@2
>`.pickRestart({
  A: "b5@4 ~@4 f#5@3 ~ e5@3 ~", B: "~@4 f#5@3 ~ e5@3 ~ f#5@4", C: "b5@4 ~@4 f#5@3 ~ e5@4", D: "~@4 f#5@4 f#5@7 ~",
  E: "~@4 f#5@4 e5@3 ~ f#5@4", F: "~@4 f#5@4 f#5@3 ~@5", G: "b4@2 b4@2 b4@2 f#4@2 g#4@3 ~ f#4@2 f#4@2",
  H: "[e4@2 e4@4 e4@2 f#4@3 ~ e4@2 d#4@4 b4@2 b4@2 f#4@2 g#4 ~ a#4@2 g#4@2 f#4@2]/2", I: "d#4 e4@3 ~ f#4@3",
  J: "b4!3 f#4 g#4@2 f#4!2", K: "[e4@2 e4@6 f#4 ~ e4@2 e4@2 d#4@4 b4@2 g#4@2 f#4@2 g#4@3 ~ a#4@2 g#4@2]/2", L: "f#4 ~",
  M: "d#4 e4@3 ~@2 a#4@2", N: "[~@12 f#4@6 e4@2 f#4@4 f#4@3 ~ e4@2 d#4@2]/2",
  O: "[~@12 f#4@6 f#4@2 e4@4 f#4@3 ~ e4@2 d#4@2]/2", P: "~@6 e4 f#4", Q: "e4@2 f#4@2 e4@2 d#4@2 f#4@3 ~ e4@2 d#4@2",
  R: "[~@10 e4@2 f#4@6 e4@2 f#4@4 f#4@3 ~ e4@2 d#4@2]/2", S: "[~@12 b4@6 a#4@2 a#4@2 a#4@2 b4 ~ a#4@6]/2",
  T: "b4@2 e4@2 d#4@2 g#4@3 ~ g#4@2 f#4@2 f#4@2", U: "e4 f#4 e4 d#4 f#4@2 e4 d#4", V: "~@5 f#4 e4 f#4",
  W: "[b4@2 e4@2 b4@2 b4@3 ~@3 e4@8 f#4@12]/2", X: "[d#4 g#3 f#3@2 ~@2 b4@3 ~@3 e4@8 f#4@11 ~]/2",
  Y: "[e4@2 e4@6 f#4 ~ e4@2 e4@2 d#4@4 b4@2 g#4@2 f#4@2 g#4@4 a#4@2 g#4@2]/2",
  Z: "[b4@2 e4@2 b4@2 b4@3 ~@3 a#4@8 g#4@2 f#4@5 ~ g#4@2 f#4@6 b4@2 b4@3 ~@3 e4@8 f#4@11 ~]/4", AA: "f#4@2 ~ a#4",
  AB: "~@8 c#5 ~ b4@2 b4@2 g#4@2", AC: "[c#5@6 b4@13 ~ f#4@4 e4@3 ~ f#4@4]/2", AD: "[b4 ~ b4 b4@5]/2",
})).s("gm_electric_guitar_clean").gain(0.36)

// chords · acoustic guitar steel · "GUIT-SUS STEELGT6 GUIT-SUS STEELGT6 GUIT-SUS STEELGT6"
const acoustic_guitar_steel = note("<~@23 A B@2 C@6 D@4 E@8 ~@5 F G ~@6 A C@8 H@5 ~@23>".pickRestart({
  A: "~@8 c#5 ~ d#5@2 c#5@2 b4@2", B: "[b4 e4 b4 b4@13]/2", C: "[~ e4 b4 b4@13, b4 ~@7]/2",
  D: "[~ e4 b4 b4@29, b4 ~@15]/4", E: "[~ e4 b4 b4@61, b4 ~@31]/8", F: "~@7 c#5@2 ~ d#5@2 c#5@2 b4@2", G: "b4 ~",
  H: "[~ e4 ~@31 e4 ~@6, b4@2 b4@35 ~@3]/5",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · oboe · "GUIT-SUS STEELGT6 GUIT-SUS STEELGT6 GUIT-SUS STEELGT6"
const oboe = note("<~@86 A@4 ~@4>".pickRestart({
  A: "[f#4@55 ~@9]/4",
})).s("gm_oboe").gain(0.36)

// chords · acoustic guitar steel · "GUIT-SUS STEELGT6 GUIT-SUS STEELGT6 GUIT-SUS STEELGT6"
const acoustic_guitar_steel_2 = note("<~@23 A B@2 C@8 ~@2 D@8 ~@5 E F ~@6 G@7 H@7 ~@23>".pickRestart({
  A: "~@8 e4 ~ f#4@2 e4@2 d#4@2", B: "[d#4 e4 d#4 g#4@13]/2",
  C: "[d#4 e4 d#4 ~@13 d#4 e4 d#4 ~@13 d#4 ~ d#4 ~@13 d#4 ~ d#4 e4@13, ~@3 g#4@61, ~@19 e4@14 e4@2 e4@14 e4@2 ~@13]/8",
  D: "[d#4 ~ d#4 e4@61, ~ e4@2 ~@61]/8", E: "~@7 e4@2 ~ f#4@2 e4@2 d#4@2", F: "d#4 ~",
  G: "[~@5 f#4 ~ d#4 d#4 ~ d#4 ~@13 d#4 ~ d#4 ~@13 d#4 ~ d#4 e4@13, ~@4 e4@2 e4@3 e4@16 e4@16 e4@2 ~@13]/7",
  H: "[d#4 ~ d#4 ~@13 d#4 ~ d#4 ~@29 d#4 ~ d#4 ~@5, ~ e4@2 e4@50 ~@3]/7",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · electric guitar clean · "GUIT-SUS STEELGT6"
const electric_guitar_clean_2 = note(`<
  A B C D C E C F ~@3 G ~@3 H I ~@2 J ~@5 K L ~@5 M N@7 L ~@4 G ~@7 J ~@5 K L ~@20 G ~@3 J O P O Q R@2 S@2
>`.pickRestart({
  A: "d#5@4 ~@4 a#4@3 ~ g#4@3 ~", B: "~@4 a#4@3 ~ g#4@3 ~ a#4@4", C: "d#5@4 ~@4 a#4@3 ~ g#4@4", D: "~@4 a#4@4 a#4@7 ~",
  E: "~@4 a#4@4 g#4@3 ~ a#4@4", F: "~@4 a#4@4 a#4@3 ~@5", G: "~@5 a#4@3", H: "~@7 c#5@2 ~ d#5@2 c#5@2 b4@2", I: "b4 ~",
  J: "~@3 c#4", K: "~@7 c#4 ~@8", L: "~@6 e4@3 ~@7", M: "~@13 f#5@3", N: "f#5!4", O: "b3@4 ~@4 a#3@3 ~ g#3@4",
  P: "~@4 a#3@4 g#3@3 ~ a#3@4", Q: "~@4 a#3@4 c#4 ~ b3@2 b3@2 g#3@2", R: "[c#4@6 b3@13 ~ a#3@4 g#3@3 ~ a#3@4]/2",
  S: "[d#4 ~ e4 d#4@5]/2",
})).s("gm_electric_guitar_clean").gain(0.36)

// other · acoustic guitar steel · "GUIT-SUS STEELGT6"
const acoustic_guitar_steel_3 = note("<~@24 A@8 ~@34 B C@5 D ~ E ~@19>".pickRestart({
  A: "[~@3 e4@61]/8", B: "~@13 f#5@3, ~@6 c#5 ~", C: "f#5!4", D: "f#5!3 ~", E: "~@6 g#4@3 ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.2)

// other · oboe · "STEELGT6 OBOE1"
const oboe_2 = note("<~@86 A@4 ~@4>".pickRestart({
  A: "[f#4@55 ~@9]/4",
})).s("gm_oboe").gain(0.36)

// bass · piano · "PIANO1"
const bass = note(`<
  ~@4 A B A C D E D E F E D E D E D E D E D E G@2 H@8 I@2 H@2 J@2 K@2 D E D E D E F E D E D E D E D E G@2 H@14 L@2 M@2 D
  E D E D E D E N B N B N B O@2
>`.pickRestart({
  A: "b1@4 ~@4 f#2@3 ~ e2@4", B: "~@4 f#2@4 e2@3 ~ f#2@4", C: "~@4 f#2@4 f#2@3 ~@5", D: "b1@8 f#2@7 ~",
  E: "e2@8 f#2@7 ~", F: "b1 f#2", G: "[b1@8 e2 ~@3 f#2@12 f#1@3 ~ f#2@4]/2",
  H: "[b1@4 ~@4 e2 ~@3 f#2@12 f#1@3 ~ f#2@4]/2", I: "[b1@4 ~@4 e2 ~@3 f#2@12 f#1@4 f#2@4]/2",
  J: "[b1@4 ~@4 e2 ~@3 f#2@12 f#1@3 ~ f#1@4]/2", K: "[b1@4 ~@4 e2@3 ~ f#2@12 f#2 ~ f#2@2 f#2@2 f#2@2]/2",
  L: "[b1@4 ~@4 e2@3 ~ f#2@12 f#1@3 ~ f#1@4]/2", M: "[b1@4 ~@4 e2@4 f#2@12 f#2 ~ f#2@2 f#2@2 f#2@2]/2",
  N: "b1@8 f#2@3 ~ e2@4", O: "[b1@2 f#2 b1@5]/2",
})).s("gm_piano").gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@7 [~@3 x] [~ x ~ x]!85 ~>").gain(0.41)

// drums · clap
const clap = s("cp").struct("<~@31 A B ~@2 C B ~@2 D E ~@24 A B ~@2 C B ~@23>".pickRestart({
  A: "~@13 x!3", B: "x!5 ~@3", C: "~@6 x!2", D: "~@3 x!5", E: "x!2 ~@6",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<~@8 [x!4]!85 ~>").gain(0.36)

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 [~@3 x] [~ x ~ x]!85 ~>").gain(0.26)

// drums · bongos
const bongos = s("bongo:18").struct("<~@35 A B ~@2 C D ~@28 A B ~@23>".pickRestart({
  A: "~@6 x!2", B: "x!5 ~@3", C: "~@3 x!5", D: "x",
})).gain(1.35)

stack(
  electric_guitar_clean, acoustic_guitar_steel, oboe, acoustic_guitar_steel_2, electric_guitar_clean_2,
  acoustic_guitar_steel_3, oboe_2, bass, snare, clap, hihat, mid_tom, bongos
)

More by Fleetwood Mac