Strudelify
Big Yellow Taxi cover art

1975 · Big Yellow Taxi

Big Yellow Taxi

Joni Mitchell

KeyD majorTempo160 bpm
0:00/0:00
// Big Yellow Taxi — Joni Mitchell
// 160 bpm, 4/4, key D major. Source: mcgill + 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" named as a bass, played on electric bass finger (its contrabass patch is not one); ch 2 "Guitar Synth 1" named as a guitar, played on electric guitar clean (its cello patch is not one)
// note: duplicate parts dropped: ch 5 "Voice" violin (copy of ch 6 "Voice" flute)
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/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.

// chords · drawbar organ · "Organ" · A E A E A E A E
const drawbar_organ = note(`<
  ~@69
  [~@2 [e4,a4,c#5] ~ [e4,g#4,b4] ~@3]
  [[e4,a4,c#5]@2 ~ [e4,g#4,b4]@4 ~]
  [~@2 [e4,a4,c#5] ~ [e4,g#4,b4] ~@3]
  [[e4,a4,c#5]@2 ~ [e4,g#4,b4]@4 ~]
  ~@71
>`).s("gm_drawbar_organ").gain(0.41)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  A B C D A E F D G H I J G H I J K L M N K O P Q R S T U V W M G H I J K L M N K W P Q R S T U V W M G H I J K L M N K
  W P Q R S T U V W M G H I J X B C D A E F D A B C D A E F D A B C D A E F D K L P Y K O Z AA R S T U V W M P K L M N K
  W P Q AB@4 AC@4 AD@4 AE@7 ~@4
>`.pickRestart({
  A: "[b3,e4,g#4,b4] [b3,b4] b3 [e2,e3,g#3,e4] e3 g#4 b3 ~, e2@3 ~@5, g#2 ~@3", // E B E
  B: "[b3,d#4,f#4,b4] b3 b2 [f#2,b3,f#4,b4] b3 f#4 ~@2, f#2@3 ~@5, b2 ~@3", // B B5
  C: "[a3,c#4,e4,a4] a3 a2 [a2,e3,e4,a4] e3 e4 a3 ~, a2 ~@3", // A A5
  D: "[b3,d#4,f#4,b4] b3 b2 [f#2,b3,d#4,f#4] b3 f#4 ~@2, f#2@3 ~@5, b2 ~@3", // B
  E: "[b3,d#4,f#4,b4] b3 b2 [e2,b3,f#4,b4] b3 f#4 ~@2, f#2@3 ~@5, b2 ~@3", // B Esus2
  F: "[a3,c#4,e4,a4] a3 a2 [a2,e3,e4,a4] e3 e4 a3 ~, e2@3 ~@5, a2 ~@3", // A A5
  G: "[b2,e3,g#3] b2 [e2,a2,a3,c#4] g#2 [e2,g#2,e3,b3] e3 ~@2, [e2,e4] e4!2 ~", // E A E
  H: "[e3,a3,c#4] g#2 [e2,e3,a3] [b2,g#3] [e2,e3,c#4,e4] [g#2,e3,g#3] [e2,g#3] ~, [a2,e4]@2 e4@2 ~ e4@2 ~", // A A5 E C#m E A5
  I: "[b2,g#3,e4] b2 [e2,a2,e3,a3,c#4,e4] g#2 [e2,e3,b3,e4] e3!2 ~, e2 ~@3", // E A E5
  J: "[e3,a3,c#4,e4] g#2 [e2,e4] [e2,g#2,b2,e3,g#3]@2 [a2,g#3] g#3 ~, [e2,a2]@2 ~ e4@3 ~@2", // A E Amaj7 A5
  K: "[b2,f#3,b3,d#4] b2 ~ [b2,f#3,b3,d#4] f#3 d#4 ~@2", L: "[e3,a3,c#4] a2 ~ [b2,f#3,b3,d#4] f#3 g#4 ~@2, c#3 ~@3",
  M: "[b2,e3,g#3,e4] b2 g#2 [e2,e3,g#3,e4] e3 e4 g#4 ~, e2@3 ~@5, g#2 ~@3", // E
  N: "[b2,e3,g#3,e4] b2 g#2 [e2,e3,g#3,e4] e3 e4 ~@2, e2@3 ~@5, g#2 ~@3", // E
  O: "[e3,a3,c#4] a2 ~ [b2,f#3,b3,d#4] f#3 g#4 ~@2", // A B
  P: "[b2,e3,g#3,e4] b2 [e2,a2,e3,a3,c#4,e4] g#2 [e2,g#2,e3,g#3,b3,e4] e3!2 ~, [e2,g#2] ~@3", // E A E
  Q: "[e3,a3,c#4,e4] g#2 [e2,e3,a3,e4] [b2,e3,g#3] [e2,e3,a3,c#4,e4] [g#2,b2,e3,g#3,e4] [e2,e3,g#3] ~, [e2,a2] ~@3", // A A5 E A E A5
  R: "[b3,e4,g#4,b4]@3 [b3,e4,g#4,b4] [e2,g#2,b3,e4,g#4,b4]@4, [e2,g#2] ~", // E
  S: "[b3,d#4,f#4,b4]@3 [b3,d#4,f#4,b4] [f#2,b2,b3,d#4,f#4,b4]@4, [f#2,b2] ~", // B B5
  T: "[a3,c#4,e4,a4]@3 [a3,c#4,e4,a4] [a2,a3,c#4,e4,a4]@4, a2 ~", // A
  U: "~ [a3,c#4,e4,a4] [a2,e3,a3,c#4,e4]@2 [e2,b2,e3,g#3,b3,e4]@4", // A E
  V: "[b2,f#3,b3,d#4] b2@2 [b2,f#3,b3,d#4] f#3 d#4 ~@2", W: "[e3,a3,c#4] a2 ~ [b2,f#3,b3,d#4] f#3 g#4 ~@2, c#3@3 ~@5",
  X: "[b3,e4,g#4,b4] b3!2 [e2,e3,g#3,e4] e3 g#4 b3 ~, e2@3 ~@5, g#2 ~@3", // E
  Y: "[e3,a3,c#4,e4] g#2 [e2,e3,a3,e4] [b2,e3,g#3] [e2,e3,a3,c#4,e4] [g#2,b2,g#3,e4] [e2,e3,g#3] ~, [e2,a2] ~@3", // A A5 E A E A5
  Z: "[b2,e3,g#3,e4] b2 [e2,a2,a3,c#4,e4] g#2 [e2,g#2,e3,b3,e4] e3!2 ~, [e2,g#2] ~@3", // E A E
  AA: "[e3,a3,e4] g#2 [e2,e3,a3,e4] [b2,g#3] [e2,e3,a3,c#4,e4] [g#2,b2,e3,g#3,e4] [e2,g#3] ~, [e2,a2] ~@3", // A5 E A E A5
  AB: "[[b3,e4,g#4,b4]@7 [b3,e4,g#4,b4]@2 [e2,g#2,b3,e4,g#4,b4]@9 [b3,d#4,f#4,b4]@7 [b3,d#4,f#4,b4]@2 [f#2,b2,b3,d#4,f#4,b4]@9 ~ [a3,c#4,e4,a4]@6 [a3,c#4,e4,a4]@2 ~ [a2,a3,c#4,e4,a4]@9 ~@2 [a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4]@5, [e2,g#2]@9 ~@9 [f#2,b2]@9 ~@10 a2@9 ~@18]/4", // E B A E B5
  AC: "[[e2,b2,e3,g#3,b3,e4]@9 [b2,f#3,b3,d#4]@2 b2@4 [b2,f#3,b3,d#4]@2 f#3@2 d#4@2 ~@4 [e3,a3,c#4]@2 a2@2 ~@2 [b2,f#3,b3,d#4]@2 f#3@2 g#4@2 ~@4 [b2,e3,g#3,e4]@2 b2@2 g#2@2 [e2,e3,g#3,e4]@2 e3@2 e4@2 g#4@2 ~@2 [b2,e3,g#3,e4]@2 b2@2 [e2,a2,e3,a3,c#4,e4]@2 g#2, ~@25 c#3@6 ~@10 e2@6 ~@10 [e2,g#2]@4 ~@3, ~@41 g#2@4 ~@19]/4", // E B A B E A E
  AD: "[~ [e2,g#2,e3,g#3,b3,e4]@2 e3@2 e3@2 ~@2 [b3,e4,g#4,b4]@6 [b3,e4,g#4,b4]@2 [e2,g#2,b3,e4,g#4,b4]@8 [b3,d#4,f#4,b4]@6 [b3,d#4,f#4,b4]@2 [f#2,b2,b3,d#4,f#4,b4]@8 [a3,c#4,e4,a4]@6 [a3,c#4,e4,a4]@2 [a2,a3,c#4,e4,a4]@8 ~@2 [a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4]@3, ~@9 [e2,g#2]@8 ~@8 [f#2,b2]@8 ~@8 a2@8 ~@15]/4", // E B A E B5
  AE: "[~ [e2,b2,e3,g#3,b3,e4]@8 [b2,f#3,b3,d#4]@2 b2@4 [b2,f#3,b3,d#4]@2 f#3@2 d#4@2 ~@4 [e3,a3,c#4]@2 a2@2 ~@2 [b2,f#3,b3,d#4]@2 f#3@2 g#4@2 ~@4 [b2,e3,g#3,e4]@2 b2@2 g#2@2 [e2,e3,g#3,e4]@2 e3@2 e4@2 g#4@2 ~@2 [b2,e3,g#3,e4]@2 b2@2 [e2,a2,e3,a3,c#4,e4]@2 g#2@2 [e2,g#2,e3,g#3,b3,e4]@2 e3@2 e3@2 ~@2 [b3,e4,g#4,b4]@6 ~ [b3,e4,g#4,b4]@2 [e2,g#2,b3,e4,g#4,b4]@9 [b3,d#4,f#4,b4]@7 [b3,d#4,f#4,b4]@2 ~ [f#2,b2,b3,d#4,f#4,b4]@11, ~@25 c#3@6 ~@10 e2@6 ~@10 [e2,g#2]@4 ~@12 [e2,g#2]@9 ~@9 [f#2,b2]@10 ~@11, ~@41 g#2@4 ~@67]/7", // E B A B E A E B …
})).s("gm_acoustic_guitar_steel").gain(0.29).pan(0.4)

// chords · acoustic guitar steel · "Guitar" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B C D A B C E F G H I F G H I J K L M J K N O ~@4 J K L F G H I J K L M J K N O ~@4 J K L F G H I J K L M J K N O
  ~@4 J K L F G H I P B C E P B C E P B C E A B C E A B C E A B C E Q K N R J K N S ~@4 J K L N J K L M J K N O ~@4 T U
  V W@2 ~@3 T U V W@2 ~@6
>`.pickRestart({
  A: "~ [e4,g#4] b4@2 b2 [e2,g#3,b3] g#3 [g#2,b3,d#4,f#4], ~@2 g#4 ~@5", // E G#m7
  B: "~ [d#4,f#4] [b3,d#4] ~@2 [b2,b3,d#4] [f#2,b3,d#4] [b2,b3,d#4,f#4]", // D#m B
  C: "~ [c#4,e4] [a3,c#4] ~ a2 [a2,a3,c#4] b2 [a2,a3,c#4,e4]", // C#m A
  D: "~ f#4 [b3,d#4] ~@2 [b2,b3,d#4] [f#2,b2,d#4] [b2,b3,d#4,f#4]", // B
  E: "~ [d#4,f#4] [b3,d#4] ~@2 [b2,b3,d#4] [f#2,b2,d#4] [b2,b3,d#4,f#4]", F: "~ g#3 ~ [e3,g#3] ~ g#2 b2 [e2,b2,e3,g#3]",
  G: "~ g#3 ~@3 e2 ~ [e2,g#2,b2,g#3]", H: "~ g#3 ~ g#3 b2 g#2 b2 [e2,b2,e3,g#3]",
  I: "~ g#3 [a2,c#4] ~@3 b2 [e2,e3,g#3]", J: "f#2 [f#3,b3] [f#3,a3] ~@2 [b2,f#3,b3] [b2,f#3] [f#2,b2,f#3,d#4]",
  K: "a2 [e3,a3] [f#3,a3] ~@2 [b2,f#3,b3] [b2,d#5] [f#2,b2,b3,d#4,f#4]", // A5 F#m B5 B
  L: "~ [e3,g#3]!2 ~ b2 [e2,e3,g#3] b2 [g#2,e3,e4,b4]", M: "~ [e3,g#3]!2 ~@2 [e2,e3,g#3] [e2,g#2,b2] [g#2,b2,e3,g#3]",
  N: "~ [e3,g#3] ~ [e3,g#3] ~ g#2 b2 [e2,g#2,b2,e3,g#3]", O: "~ [e3,g#3] [a2,c#4] ~@2 e2 b2 [e2,g#2,b2,e3,g#3]",
  P: "~ [e4,g#4] [g#4,b4] ~ b2 [e2,g#3,b3] g#3 [g#2,b3,d#4,f#4]", // E G#m E G#m7
  Q: "f#2 [f#3,b3] a3 ~@2 [b2,f#3,b3] b2 [f#2,b2,f#3,d#4]", R: "~ g#3 [a2,c#4] ~@2 e2 b2 [e2,g#2,e3,g#3]",
  S: "~ [e3,g#3] [a2,c#4] ~@3 b2 [e2,g#2,b2,e3,g#3]", T: "~@9 f#2@2 [f#3,b3]@2 [f#3,a3]@2 ~",
  U: "~@3 [b2,f#3,b3]@2 [b2,f#3]@2 [f#2,b2,f#3,d#4]@2 a2@2 [e3,a3]@2 [f#3,a3]@2 ~", // B5 B A5 F#m
  V: "~@3 [b2,f#3,b3]@2 [b2,d#5]@2 [f#2,b2,b3,d#4,f#4]@2 ~@2 [e3,g#3]@2 [e3,g#3]@2 ~", // B5 B E
  W: "[~ b2@2 [e2,e3,g#3]@2 b2@2 [g#2,e3,e4,b4]@2 ~@2 [e3,g#3]@2 ~@2 [e3,g#3]@2 ~@2 g#2@2 b2@2 [e2,g#2,b2,e3,g#3]@2 ~@7]/2", // E
})).s("gm_acoustic_guitar_steel").gain(0.14).pan(0.4)

// chords · pad choir · "Shu Bop Bops"
const pad_choir = note(`<
  ~@31 A B C ~@16 A B D ~@6 E F ~ G H I ~@40 J K L M ~@3 N ~@8 O P Q@2 R ~ S@2 ~@15
>`.pickRestart({
  A: "[g#4,b4]@2 ~ [g#4,b4] ~ [g#4,b4] ~ [g#4,b4]", B: "~ [g#4,b4] ~@6",
  C: "b4@2 ~ [g#4,b4] ~ [g#4,b4] ~ [g#4,b4], g#4 ~@7", D: "b4@2 ~ [g#4,b4] ~ [g#4,b4] ~ [g#4,b4]", E: "~@7 b4",
  F: "~ b4@2 ~@5", G: "[g#4,b4]@3 ~", H: "[f#4,a4]@3 ~", I: "[c#4,g#4]@3 ~", J: "e5@3 ~", K: "b4@3 ~", L: "g#4@3 ~",
  M: "~@2 g#4@2 a4@3 ~ g#4@3 ~@5", N: "b4@2 ~ [g#4,b4] ~ [g#4,b4] ~@2", O: "e5@7 ~", P: "~ b4@7",
  Q: "[~@5 g#4@14 ~@6 g#4@2 a4@3 ~@2]/2", R: "g#4@3 ~@13",
  S: "[~@9 [g#4,b4]@4 ~@2 [g#4,b4]@2 ~@2 [g#4,b4]@2 ~@2 [g#4,b4]@2 ~@2 [g#4,b4]@2 ~@3]/2", // G#m
})).s("gm_pad_choir").gain(0.64).pan(0.8)

// chords · synth strings 2 · "Strings"
const synth_strings_2 = note("<A B C B A B C B D@4 E ~ F G ~@61 A B C B A B H I J K L M N O P Q ~@51>".pickRestart({
  A: "e5", B: "d#5", C: "c#5", D: "[~ b4 ~@2, e5]/4", E: "b4", F: "~ e4 f#4 g#4 f#4 e4@2 ~", G: "b3@5 ~@3",
  H: "[c#5,e5]", I: "[b4,f#5]", J: "[e5,b5]", K: "[d#5,g#5]", L: "[c#5,a5]", M: "[d#5,b5]", N: "[e5,g#6]",
  O: "[d#5,f#6]", P: "[c#5,e5,e6]", Q: "[b4,b5]",
})).s("gm_synth_strings_2").gain(0.19).pan(0.7)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@4 A B C B ~@4 D E F ~ G ~@18 H I J A H K J@2 A B C H@2 I J A ~ A ~@9 A B C H@2 I J A ~ A ~@4 L M@2 N O ~@12 H I J I
  ~@7 P ~ B C H@2 I J A H I J A H K J P A Q@8 ~@14
>`.pickRestart({
  A: "e3", B: "d#3", C: "c#3", D: "b2 d#3 e3@6", E: "~ e3 f#3 g#3 f#3 e3@2 ~", F: "b2@5 ~@3", G: "b2 ~", H: "b2",
  I: "f#3", J: "g#3", K: "b3", L: "c#4", M: "[d4@7 d#5]/2", N: "c#5 ~", O: "b4",
  P: "b2 ~ c#3 ~ d#3 ~ e3 ~ f#3 ~ g#3 ~ a3 ~ b3 ~", Q: "[~@2 d#3@18 ~ c#3@18 b2@18 b2@16 f#3@16 g#3@16 e3@16 ~@7]/8",
})).s("gm_electric_bass_finger").gain(0.48).pan(0.8)

// other · electric guitar clean · "Guitar Synth 1"
const electric_guitar_clean = note("<~@77 A B C D@3 E@4 F@2 G C H I ~@51>".pickRestart({
  A: "~@14 e5!2", B: "~@3 c#5, e5@7 ~", C: "b4", D: "[b4@11 ~]/3",
  E: "[c#5 d#5 e5 d#5 c#5 b4 ~@24 e6!2 e6@24 ~ b5 d#6@2 e6@2 b4@2, ~ b4@4 ~@3]/4", F: "[f#5 e5 f#5@2 f#5@6 ~@6]/2",
  G: "f#4 b3 g#4 b3 a4@2 b4@2 c#5@2 ~ e5@2 ~ c#5@2", H: "f#5 b4 g#5 b4 a5@2 b5@2 c#6@2 ~ e6@2 ~ c#6@2", I: "b5",
})).s("gm_electric_guitar_clean").gain(0.64)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@39 A B A B ~@2 C A ~@2 D ~@8 A B A B ~@2 C A ~@2 D ~@38 C A ~@2 D@2 ~@4 A B A B ~@2 E F ~@3 G ~@7 G ~@7
>`.pickRestart({
  A: "x", B: "x!2", C: "x ~@6 x", D: "~@8 x!3 ~ x!3 ~", E: "~@5 x ~@10", F: "~@5 x ~ x ~@8", G: "~ x!3 ~ x!3 ~@8",
})).gain(0.2)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@39 A B A B ~@15 A B A B ~@55 A B A B ~@23>".pickRestart({
  A: "~ x!7", B: "~ x!3 ~ x!3",
})).gain(0.07)

// drums · bongos
const bongos = s("bongo:4").struct("<~@42 [~ x ~ x ~@3 x] ~@18 [~ x ~ x ~@3 x] ~@58 [~ x ~ x ~@3 x] ~@23>").gain(1.38)

// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
  ~@42
  [x!2 ~@2 x!2 ~@8 x!2]
  ~@18
  [x!2 ~@2 x!2 ~@8 x!2]
  ~@58
  [x!2 ~@2 x!2 ~@8 x!2]
  ~@23
>`).gain(1.38)

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

stack(
  drawbar_organ, acoustic_guitar_steel, acoustic_guitar_steel_2, pad_choir, synth_strings_2, bass,
  electric_guitar_clean, tambourine, tambourine_soft, bongos, bongos_2, shaker
)

More by Joni Mitchell