Strudelify

Marcie

Joni Mitchell

KeyD majorTempo120 bpm
0:00/0:00
// Marcie — Joni Mitchell
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 2 "Adlib Marimba" named as a mallet, played on marimba (its sitar patch is not one); ch 4 "Adlib Guitar" named as a guitar, played on electric guitar clean (its french horn patch is not one)
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · electric guitar muted · "Adlib SynthBass"
const electric_guitar_muted = note("<A B C D@2 ~@48 A B C D@2 ~@20>".pickRestart({
  A: "[a#2,f3]@3 [a#2,f3]", B: "[a2,g3] [a2,g3]@2 [a2,g3]", C: "[c3,a3]@3 [c3,a3]", D: "[g2,d3]@3 [g2,d3]",
})).s("gm_electric_guitar_muted").gain(0.2)

// chords · marimba · "Adlib Marimba"
const marimba = note("<A B C D@2 ~@48 A B C D@2 ~@20>".pickRestart({
  A: "~@4 d4@2 d4@2 d4@5 ~ d4@2, ~ a#3 a#3@2", B: "c#4@3 d4 e4 c#4@3, a3", C: "~@2 [a3,c4]!2 [a3,c4]@3 [b3,d4]",
  D: "[g3,b3] [a3,c4]@2 [b3,d4]@5", // G Am Bm
})).s("gm_marimba").gain(0.31)

// chords · piano · "Adlib E Piano"
const piano = note(`<
  ~@5 A B C D A B E D@2 F G H I A B C D@2 A B C D A J C D@2 F K L I A J C D M N O P Q R S T U V W X D Y J C D@2 Z AA C D
  A B C D@2 F G H I A J AB@2 AC@3
>`.pickRestart({
  A: "~@2 d4!2 ~@3 d4, [a#2,f3]@3 [a#2,f3], ~ a#3 a#3@2, ~@4 d4@3 ~", // A#5
  B: "[a2,g3]@2 ~ d4 e4@2 [a2,g3,c#4]@2, a3, c#4@3 ~@5, ~ [a2,g3]@2 ~", // A7
  C: "a3@2 [a3,c4]!2 a3@2 ~ [b3,d4], c3@3 [c3,a3], ~@4 c4@3 ~", // Am Bm F
  D: "[g3,b3] [a3,c4]@2 ~@3 [g2,d3]@2, [g2,d3]@3 ~, ~@3 [b3,d4]@5", // G Am G5 Bm
  E: "a3@2 [a3,c4]!2 c4 ~@2 [b3,d4], c3@3 [c3,a3], ~@2 a3 ~, ~@5 d4@2 ~", // Am Bm F
  F: "~@2 g4!2 ~@3 g4, [d#2,d#3]@3 [d#2,d#3], ~ [a#3,d#4] [a#3,d#4]@2, ~@4 g4@3 ~", // D# D#5
  G: "[d4,f#4]@2 [d4,f#4]@2 [e4,g4] ~ [d2,d3]@2, a3, [d2,d3]@3 ~, ~@5 [f#4,a4]@3", // D Em D F#m
  H: "~@2 e4!2 ~@3 e4, [c2,c3]@3 [c2,c3], ~ [g3,c4] [g3,c4]@2, ~@4 e4@3 ~", // C C5
  I: "[b3,d#4] [c#4,e4]@2 ~@3 b2@2, f#3, [b1,b2]@3 ~, ~@3 [d#4,f#4]@5", // B C#m B D#m
  J: "[a2,g3]@2 ~ d4 e4 ~ [a2,g3]@2, a3, c#4@3 ~@2 c#4@3, ~ [a2,g3]@2 ~", // A7
  K: "[d4,f#4]!2 [e4,g4] [d2,d3,f#4,a4], a3, [d2,d3]@3 ~", // D Em D
  L: "~@2 e4!3 ~@2 e4, [c2,c3]@3 [c2,c3], ~ [g3,c4] [g3,c4]@2, ~@5 e4@2 ~", // C C5
  M: "[g3,b3] [a3,c4]@2 [b3,d4]@3 ~ [b3,g4], [g2,d3]@3 [g2,d3]", // G Am Bm Em G5
  N: "[d4,f#4] ~ [c#4,e4] ~ [b2,f#3]@4 [b2,f#3]@4 [b2,f#3]@4, [b2,f#3]@3 [d4,f#4]@13", // D C#m B5 D
  O: "[b2,f#3,d4]@4 ~@2 [c#4,e4] [d4,f#4] g4@2 ~@4 d4@2, ~ [b2,f#3] [b2,f#3,d4] [b2,f#3], ~@11 f#4@2 ~@3", // Bm C#m D B5 Bm B5
  P: "[c3,g3]!2 [c3,g3,f#4] [c3,g3,g4], e4", Q: "[c3,g3,d5] [c3,g3]!3, e4, ~ c5@2 ~",
  R: "d4 ~ d4 ~ [b2,f#3]@4 [b2,f#3]@4 [b2,f#3]@4, [b2,f#3]@3 d4@13", // B5
  S: "[b2,f#3,b3]@4 c#4@2 d4@2 [b2,f#3]@3 ~@3 d4@2, ~@4 [b2,f#3]@4 e4@2 ~ c#4@2 ~@3, ~@3 [b2,f#3]", // B5
  T: "[e3,g4]@4 f#4@3 d4, [c3,c4], ~ g3", U: "[c3,g3,c4,e4] [c3,g3,c4,e4]@3",
  V: "~@3 d4 ~@2 g3@2, [g2,b3], c#4@3 ~ d4@4, ~ g3@2 ~", W: "~ e3@2 e3, [a2,a3,c#4]", X: "~ g3@2 g3, [a2,a3,c4]",
  Y: "~@2 d4!2 d4@2 ~ d4, [a#2,f3]@3 [a#2,f3], ~ a#3 a#3@2", // A#5
  Z: "~@2 d4!2 ~@2 [a#2,f3]@2, [a#2,f3]@3 ~, ~ a#3 [a#3,d4]@2", // A#5 A#
  AA: "[a2,g3,c#4]@4 c#4@2 d4@2 e4@4 [a2,g3,c#4]@3 ~, a3@15 ~, ~@4 [a2,g3]@7 ~@5", // A7
  AB: "[a3@4 [a3,c4]@2 ~ [a3,c4]@6 d4@2 c4@2 [g3,b3]@4 [a3,c4]@4 ~@4 [g2,d3]@3, c3@12 ~ [c3,a3]@4 [g2,d3]@12 ~@3, ~@25 [b3,d4]@7]/2", // Am G Am G5 F G5 Bm
  AC: "[~@2 [g3,b3]@2 [a3,c4]@4 ~@6 [g2,d3]@4 [g2,d3]@23 ~@7, ~ [g2,d3]@6 ~@17, ~@8 b3@35 ~@5, ~@8 d4@33 ~@7]/3", // G Am G5
})).s("gm_piano").gain(0.31)

stack(electric_guitar_muted, marimba, piano)

More by Joni Mitchell