Strudelify

lullaby of birdland

George Shearing

KeyA♭ majorTempo130 bpm
0:00/0:00
// lullaby of birdland — George Shearing
// 130 bpm, 4/4, key Ab 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/5925088; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 109 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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.

// other · alto sax
const alto_sax = note(`<
  ~@18 A B C D E F@2 G H I@3 ~@2 J@2 A B C D E K@2 ~@41 A B C D E F@2 G H I@3 ~@2 J@2 A B C D E L M ~ N ~ O
>`.pickRestart({
  A: "c5@2 c5 bb4@2 ab4 g4@2 f4@4", B: "d4@3 f4@2 e4@7", C: "c4@3 g4@2 f4@7", D: "db4@3 c5@2 bb4@7",
  E: "eb5@2 eb5 db5@2 c5 bb4@2 ab4@4", F: "[f4@2 c5 bb4@2 e4@3 c5 bb4@2 eb4@4 ~@5 f4 g4@2 ab4]/2", G: "~ f4@5",
  H: "~@3 db5@2 d5 eb5@2 c5 eb5@2 db5", I: "[~@2 bb4@9 bb4@4 b4@2 c5 db5@2 bb4 db5@2 c5@13]/3",
  J: "[~@11 g4@3 db5 c5@2 bb4@7]/2", K: "[f4@2 c5 bb4@2 g4@3 c5 bb4@2 eb4@7 ~@2 f4 g4@2 ab4]/2",
  L: "f4@2 c5 bb4@2 g4@3 c5 bb4@2 eb4", M: "eb4 ~", N: "e4 ~", O: "eb4",
})).s("gm_alto_sax").gain(0.3)

// chords · piano
const piano = note(`<
  A@8 ~@2 B C D E F G@3 B C D E F H@2 I J K@2 L J M@2 N B O D E F P@2 ~@33 B C D E F G@3 B C D E F H@2 I J K@2 L J M@2 N
  B O D E F Q R ~ S ~ T
>`.pickRestart({
  A: "[~@6 c5@9 ~ db5@5 d5@5 eb5@4 c5@5 ~@5 eb5@5 db5@5 ~@5 c5@5 bb4@5 ~@4 ab5@5 f5@5 db5@5 [bb4,c5]@5 ~@5 c5@5 db5@5 eb5@4 ~@5 f4@5 g4@5 ab4@5 bb4@5 ab4@5 ~@5 [c4,e4]@37 ~@12, ~@6 [ab3,g4]@19 ~@5 [a3,gb4]@14 ~@6 [bb3,db4,f4,ab4]@14 ~@5 eb4@14 ~ c4@19 ~@5 [f3,eb4]@14 ~@6 [g3,f4]@14 ~@50, ~@89 bb4@14 ~@35 g4@42 ~@12]/8", // Bbsus2 C Abmaj7 D Bbm7 F7 G7
  B: "[f3,c4]@11 ~ [d3,c4]@11 ~, [f4,ab4]@23 ~", C: "[g3,d4,f4,b4]@11 ~@5 [c3,bb3,e4,g4]@8",
  D: "[f3,c4,eb4,ab4]@9 ~ [db3,c4,f4,ab4]@14", E: "[bb2,f3]@6 ab4@3 ~ g4@6 db4@2 eb4@3 ~ db4@2",
  F: "[c4,eb4,bb4]@11 ~ [f3,eb4,ab4,c5]@11 ~", // Cm7 Fm7
  G: "[[bb3,f4,ab4,db5]@9 ~ [eb3,db4,g4,bb4]@11 ~ [ab3,g4,ab4,c5]@6 eb4@2 g4@3 ~ [db4,f4]@11 ~ [g3,f4,bb4,db5]@11 ~ [bb3,e4,db5]@2 ~@4 c4@2 c3@6]/3", // Bbm7 Eb7 Abmaj7 Db Gm7b5 Bbdim
  H: "[db5@9 ~@9 [bb3,ab4]@3 ~ [ab3,g4,ab4,c5]@14 ~@4 e3@2 [eb3,db4]@3 ~ [ab3,eb4]@2, [bb3,ab4]@17 ~@31, ~@10 [g4,bb4]@11 ~@27]/2", // Bb7 Abmaj7 Eb7 Ab5 Bb7 Gm
  I: "~@4 [f4,ab4,c5]@19 ~, ~@2 [f3,eb4] ~@9", J: "[c3,eb3,gb3,bb3,eb4]@11 ~ [f3,a3,c4,gb4]@11 ~",
  K: "[[bb3,db4,f4,ab4]@11 ~ ab3@3 ~ g3@2 f3@3 ~ [db3,bb3]@14 [eb3,bb3,db4,e4,g4]@11 ~]/2", // Bbm7 Gb Eb7
  L: "ab3 g3 f3 eb3, [c4,eb4,g4]@23 ~", // Cm
  M: "[[bb3,db4,f4,ab4]@11 ~ ab3@3 ~ g3@2 f3@3 ~ [eb3,db4]@14 [eb3,bb3,db4,e4,g4]@11 ~]/2", // Bbm7 Eb7
  N: "[ab3,c4]@9 ~ [g3,f4]@2 ~@4 [c4,e4]@8", O: "[g3,d4,b4]@11 ~@5 [c3,bb3,e4,g4]@8",
  P: "[[bb2,ab3,ab4,db5]@9 ~ [db3,eb4,g4,bb4]@11 ~ [bb3,g4,ab4,c5]@6 eb4@2 g4@3 ~ [ab3,db4,f4]@2 ~@10 [g3,ab3,eb4,f4]@2]/2", // Bbm7 Eb7 C7 Db Fm7
  Q: "[bb2,ab3,ab4,db5]@9 ~ [db3,eb4,g4,bb4]@11 ~ [bb3,g4,ab4,c5]@2", R: "[bb3,db4,eb4,g4,ab4,c5]@11 ~@13",
  S: "[bb3,d4,e4,a4,c5,f5]@11 ~@13", T: "[c4,e4,g4,b4,d5,g5]@23 ~",
})).s("gm_piano").gain(0.3)

// bass · acoustic bass · "Bass"
const bass = note("<~@6 A@3 B ~@3 C D ~@10 E ~@14 F ~@36 C D ~@10 E ~@14 G ~ H ~ I>".pickRestart({
  A: "[~@3 c3@5 d3@5 eb3@10 bb2@5 c3@5 db3@9 g2@5 ab2@5 bb2@15 e2@5]/3", B: "f2@5 g2@9 c2@10", C: "~@8 db2 eb2@2 db2",
  D: "c2 ~@3", E: "~@2 c3 c2@3 d2@3 eb2@3", F: "~@11 ab1", G: "ab2 ~", H: "bb2 ~", I: "c3",
})).s("gm_acoustic_bass").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@10 [~ x ~ x] ~@63 [~ x ~ x] ~@34>").gain(0.3)

// drums · snare
const snare = s("sd").struct("<~@9 [~@14 x!2 ~ x!4 ~ x!2] [~@3 x] ~@63 [~@3 x] ~@34>").gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<~@15 A B C ~@5 A D E ~@13 A F ~@38 A B C ~@5 A D E ~@13 A ~@5>".pickRestart({
  A: "x ~@4 x ~@5 x", B: "~@11 x", C: "~@5 x ~@6", D: "~@3 x ~ x ~@6", E: "~ x ~@4", F: "~@3 x ~ x ~@2 x!2 ~ x",
})).gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@17 [~@8 x!2 ~@2] ~@63 [~@8 x!2 ~@2] ~@27>").gain(0.3)

// drums · ride
const ride = s("rd").struct("<~@10 [x ~@2 x ~ x!2 ~@2 x ~ x] ~@63 [x ~@2 x ~ x!2 ~@2 x ~ x] ~@34>").gain(0.3)

stack(alto_sax, piano, bass, kick, snare, hihat, high_tom, ride)

More by George Shearing