Strudelify

green grass

Tom Waits

KeyE♭ majorTempo50 bpm
0:00/0:00
// green grass — Tom Waits
// 50 bpm, 2/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5952764; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 70 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(50/2)

// 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 · cello
const bass = note(`<
  ~@12 A B C@2 D E F G H I J K L M@2 N O P Q R S@2 T U ~ V W X W Y@4 Z AA AB AC D AD AE AF AG I AH K AI AJ AK AL A B C@2
  D E AM AN AO
>`.pickRestart({
  A: "~@6 c2@3 d2@3 eb2@5 eb2@2 f2@2 ~ g2@2", B: "f2 g2@5 f2@3 f2@15",
  C: "[~@6 d2@2 eb2@2 f2@2 f2@6 d2 eb2 e2 f2@9 eb2@18]/2", D: "~@12 c2@3 d2@3 eb2@3 c2 db2 d2", E: "eb2@3 d2@5",
  F: "~@9 d2@3 eb2@2 d2@2 eb2@6 c2@2", G: "d2 c2@7", H: "~@6 c2@4 eb2 g2", I: "f2 g2@8 ab2@3 f2@12",
  J: "~@12 d2@2 eb2@2 f2@2 f2 e2 eb2 d2@3", K: "f2@2 eb2 eb2@5", L: "~@5 c2 d2 eb2",
  M: "[d2 eb2@8 d2@3 c2@3 d2@15 ~@6 d2@2 c2@2 d2@4 d2@2 [c2,db2] [d2,eb2,e2,f2]]/2", // Dbmaj7
  N: "[gb2,g2] ~@5 g2@3 g2@15, ab2 ~@3", O: "~@6 c2@3 eb2@3 g2@4 f2@4 eb2 e2 f2 gb2", P: "g2 f2@2 ~",
  Q: "~@6 d2@3 eb2@3 f2@4 eb2 f2@3 eb2 f2@3", R: "eb2 f2@8 eb2@15",
  S: "[~@12 c2@3 d2@3 eb2@3 d2 eb2@6 d2@4 d2@4 d2@12]/2", T: "~@4 d2 c2", U: "d2@3 c2!2 c2@7",
  V: "~@9 f2@9 e2@3 f2 gb2 g2", W: "ab2@2 g2 g2@5", X: "~@6 g2 ab2@9 g2@4 f2@4",
  Y: "[~@15 d2@3 eb2@2 d2@2 f2@8 eb2@3 eb2@6 ~@3 c3@3 g2@7 g2@4 ab2@4 g2@18 ~@18]/4",
  Z: "~@6 c2@2 d2@2 eb2 [e2,f2] g2@8 f2@2 g2@2, ~@12 gb2 ~@11", AA: "f2 g2@8 f2@15", AB: "~@3 d2 eb2 f2 f2@4 eb2 d2",
  AC: "f2 eb2@3", AD: "eb2@3 d2 d2@4", AE: "~@12 eb2@4 f2@4 eb2 e2 [f2,gb2] g2", AF: "ab2@3 g2 g2@4",
  AG: "~@3 eb2 f2 g2", AH: "~@3 d2 eb2 f2", AI: "~@3 c2 d2 eb2", AJ: "d2 eb2@8 d2@15", AK: "~@4 f2 eb2",
  AL: "d2@3 c2 c2@4", AM: "~@9 c2@3 d2@2 c2@2 d2@5 c2@3", AN: "d2 c2@3", AO: "c3",
})).s("gm_cello").gain(0.3)

// other · pizzicato strings
const pizzicato_strings = note("<~@58 [~@11 g2] [~ g2@2 g2@3 ~@6] ~@10>").s("gm_pizzicato_strings").gain(0.3)

// chords · acoustic guitar nylon · "Ukulele (Tablature)"
const acoustic_guitar_nylon = note(`<
  A@4 B@3 C D@2 E@2 F G H F I J@2 F E G H F G H J F E G H F I J@2 F@2 G K L M J N O P F I J F G J@2 F@2 I J F G J Q F@2
  I J F G J@2 F R
>`.pickRestart({
  A: "[~@13 eb4@15 ~ [g4,c5,eb5]@3 d5@4 c5@4 g4@3 g4@4 g4@4 [d4,f4]@4 c4@3 c4@4 db4@4 db4@4 ~@11 f4@4 ab4@3 g4@4 gb4@4, ~@28 g3@4 ~@19 ab4@15 ~@4 d4@19 ~@7]/4", // Cm Dm
  B: "[d4@4 ~@14 b3@4 bb3@4 ab3@4 ~@9 f4@4 g4@3 ~ f4@3 eb4@4 d4@4 eb4@14, ~@4 f4@32 ~@7 f4 ~@28, ~@30 a3@17 ~@25]/3",
  C: "~@5 eb4@3 d4@4 c4@4 b3@8, ~ f4@19 ~@4", D: "[~ ab4@15]/2", E: "~@2 [eb4,g4,c5] ~@3 [eb4,g4,c5] ~, c4 g3",
  F: "~ [eb4,g4,c5] ~ [eb4,g4,c5], c4 g3", G: "~ [c4,f4,c5] ~ [c4,f4,c5], ab3!2", H: "~ [d4,g4,b4] ~ [d4,g4,b4], g3!2",
  I: "~ [ab4,c5] ~ [ab4,c5], ab3 c4", J: "~ [d4,g4,b4] ~ [d4,g4,b4], g3 b3", K: "~ [d4,f4,bb4] ~ [d4,f4,bb4], bb3!2",
  L: "~ [g4,bb4] ~ [g4,bb4], eb4 bb3", M: "~ [eb4,ab4,c5] ~ [eb4,ab4,c5], c4 ab3",
  N: "~ [eb4,g4,c5] ~ [eb4,ab4,c5], c4 ab3", O: "~ [b4,d5] ~ [b4,d5], g4 d4", P: "~ [b4,eb5] ~ [b4,d5], g4 d4",
  Q: "g3 [d4,g4,b4] ~ [d4,g4,b4], ~ b3", R: "~ [c5,eb5]@23, [c4,eb4]",
})).s("gm_acoustic_guitar_nylon").gain(0.25)

stack(bass, pizzicato_strings, acoustic_guitar_nylon)

More by Tom Waits