Strudelify

Autumn Leaves

Sinatra

KeyD minorTempo62 bpm
0:00/0:00
// Autumn Leaves — Sinatra
// 62 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 4, 3/4 at bar 5, 4/4 at bar 6, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 46 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(62/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 jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<~@21 A B C D A E F ~@18>".pickRestart({
  A: "~@4 [g3,bb3,d4] ~@7 [g3,bb3,d4] ~@3", B: "~@12 [g3,bb3,c4]@3 ~@21 [bb3,c4,e4]@4 ~@8",
  C: "~@4 [a3,c4] ~@7 [f3,a3,c4] ~@3", D: "~@4 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@3",
  E: "~@3 [g3,bb3,db4] ~@5 [g3,bb3,db4] ~@2", F: "~@4 [a3,d4,f4] ~@7 [a3,d4,f4] ~@3",
})).s("gm_electric_guitar_jazz").gain(0.16)

// bass · acoustic bass · "ACOU BASS"
const bass = note("<~@21 A B C D E F G ~@18>".pickRestart({
  A: "g2@9 ~@15 g2@10 ~@14", B: "c2@5 ~@7 c2@5 ~@7", C: "f2@10 ~@14 f2@13 ~@11", D: "bb1@11 ~@13 bb1@10 ~@14",
  E: "e2@5 ~@7 e2@5 ~@7", F: "a2@11 ~@13 a2@12 ~@12", G: "d2@5 ~@7 a2@6 ~@6",
})).s("gm_acoustic_bass").gain(0.33)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@4 A@3 B@2 C@7 D@2 E F@2 G H I J K L M N@3 O@3 P@6 ~@2 Q@4>".pickRestart({
  A: "[~@91 c2@22 ~@3 [b4,f5]@28, ~@43 f2@47 ~@25 [f3,ab4,d5]@29, ~@11 [f4,a4,c5]@18 ~@7]/3", // Bdim Ddim F
  B: "[~@7 [c5,e5]@12 [b4,d5]@24 ~@12 e5@23 ~ [bb2,f4,bb4,d5]@17, ~@7 [e2,e4]@36 a2@36 ~@17, ~@44 [bb4,db5]@35 ~@17, ~@44 f5@11 ~@41, ~@45 g4@35 ~@16]/2", // C Bm Bb E Bbm
  C: "[~@20 [bb4,f5]@24 e5@23 eb5@24 e5@24 [d2,d4,f4,d5]@100 ~@2 [d6,bb6,d7]@42 g6@47 [f5,a5,a6]@30, ~@19 a2@96 ~@221, ~@20 [g4,db5]@96 ~@143 [c6,c7]@77, ~@44 a4@170 ~@3 [g5,bb5]@88 ~@31]/7", // Bb5 Dm Gm F Gdim C Gm
  D: "[~@11 [f5,bb6,d7]@45 ~@3 [g5,bb6,d7]@37, ~@11 [bb5,d6]@85]/2", E: "~ [g5,a5,db6,a6,db7]@15",
  F: "[~@2 [f5,a5,d6,d7]@93 ~]/2", G: "[bb4,d5]@9 ~@3 [bb4,d5]@11 ~ [bb4,d5]@11 ~ [bb4,d5]@11 ~",
  H: "[bb4,d5]@11 ~ [bb4,d5]@11 ~ [bb4,d5]@11 ~ [bb4,c5]@11 ~", // Bb Bbsus2
  I: "[a4,c5]@10 ~@2 [a4,c5]@11 ~ [a4,c5]@17 ~@3 a4@4, ~@43 c5@5", J: "[f4,bb4]@47 ~",
  K: "~@12 [g4,bb4,g5,bb5]@11 ~ [bb4,d5,bb5,d6]@18 ~@2 [bb4,d5,bb5,d6]@4", // Gm Bb
  L: "[a4,db5,g5,db6]@11 ~ [bb4,db5,bb5,db6]@10 ~@2 [bb4,db5,bb5,db6]@11 ~ [f4,a4,f5,a5]@12", // A7 Bbm F
  M: "[e4,g4,e5,g5]@19 [f4,a4,f5,a5]@5 [e4,g4,e5,g5]@12 [d4,f4,d5,f5]@12", // Em F Em Dm
  N: "[~@2 [d2,d4,f4,d5,f5]@50 ~ a2@53 d2@20 a2@18]/3", O: "[~ d2@13 c2@95 f2@21 ~ c2@13]/3",
  P: "[~@8 f2@50 ~@5 bb3@102 d3@23 c3@28 b3@72]/6", Q: "[~@20 d2@145 ~@27]/4",
})).s("gm_string_ensemble_2").gain(0.22).pan(0.4)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_2 = note("<~@3 A@5 B@6 ~@7 C D@2 E F G H I J@2 K@7 L ~@7>".pickRestart({
  A: "[~@7 d6@17 ~ db6@6 c6@12 b5@12 [a5,e6]@11 a5@23 ~@2 [a6,a7]@24 [a5,a6,a7]@12 [g5,g6,g7]@5 ~ [f6,f7]@6 [e5,e6,e7]@12 [d5,d6,d7]@11 ~ [f5,f6,f7]@23 ~ [ab4,ab5,ab6]@12 [e5,e6,e7]@30 [d5,d6,d7]@5 ~ [f6,f7]@5, ~@24 db5@7 d5@24 c5@35 a5@24 ~@18 f5@6 ~@96 f5@6]/5", // A5 A G F E D F Ab …
  B: "[~ [db5,db6,db7]@6 [e5,e6,e7]@36 [d5,d6,d7]@16 [c5,c6,c7]@3 ~ [bb4,bb5]@4 [a4,a5,a6]@41 ~ [g5,g6]@6 [bb4,bb5,bb6]@36 ~ a4@111 ~@25, ~@62 bb6@5 ~@41 g4@7 ~@36 [a5,a6]@113 ~@24]/6", // Db E D C Bb A G Bb …
  C: "[a4,a5,a6]@11 ~ [g4,g5,g6]@11 ~ [g4,g5,g6]@12 [gb4,gb5,gb6]@9 ~@3", // A G Gb
  D: "[[gb4,gb5,gb6]@12 [f4,f5,f6]@10 ~@2 [f4,f5,f6]@12 [e4,e5,e6]@21 ~@3 [e4,e5,e6]@10 ~@2 [e4,e5,e6]@19 [c4,c5,c6]@5]/2", // Gb F E C
  E: "[d4,d5,d6]", F: "~@12 [d4,d5,d6]@12 [bb4,bb5,bb6]@19 [d4,d5,d6]@5",
  G: "[db4,db5,db6]@12 [bb4,bb5,bb6]@11 ~ [bb4,bb5,bb6]@12 [a4,a5,a6]@12", // Db Bb A
  H: "[g4,g5,g6]@19 ~ [a5,a6]@4 [g4,g5,g6]@12 [f4,f5,f6]@12, ~@19 a4@6 ~@23", I: "~ f5@15, ~ [f4,f6]@23",
  J: "[~@5 db4@9 ~ db4@9 [a3,db4]@9 ~ [a3,db4]@10 [g3,b3]@7 [a3,db4]@7 ~ [f3,a3,d4]@9 [f3,a3,d4]@8 ~@2 [f3,a3,d4]@9 [f3,a3,d4]@9, ~@4 a3@9 ~ a3@9 ~@73]/2", // A G A Dm
  K: "[~ [e3,a3,db4]@6 [f3,a3,d4]@7 e4@19 [d4,f4]@24 ~ gb4@12 a4@12 g4@27 e4@16 ~ f4@5 e4@16 ~ f4@4 [f3,a3,c4,e4]@6 ~@5 [f3,a3,c4,e4]@36 ~@7 f5@11 ~ e5@10 d4@11 [db4,db5]@12 [c5,c6]@15 [bb4,bb5]@16 ~ a5@14 [g4,g5]@11 ~ [a4,d5]@22 ~@5, ~@14 [g3,bb3]@95 [f3,a3,c4]@42 ~@185, ~@58 d4@52 ~@118 g4@22 ~@33 [bb4,db5,e5]@26 [g4,g5]@11 ~@16, ~@70 e4@37 ~@99 db5@22 ~@23 [db5,e5]@31 ~@54]/7", // A Dm Fmaj7 Db C Bb G D5 …
  L: "~@9 f5@14 ~@25",
})).s("gm_string_ensemble_2").gain(0.27).pan(0.4)

// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~@3 A@2 ~@30 B@5 ~@2 C@4>".pickRestart({
  A: "[~@7 [f5,a5]@48 e5@34 ~@7, ~@7 b4@17 ~@72]/2", // F
  B: "[~@14 f4@10 ~@2 e4@10 [bb3,bb4]@22 ~ g5@32 a4@14 ~@23 [gb4,gb5]@11 ~ [gb4,gb5]@13 f4@15 [f4,b4,d5,f5]@72, ~@14 [db4,bb4]@22 d5@11 ~@93 [a4,d5]@28 ~@72]/5", // Bb Gb Bdim Gb D5
  C: "[~@20 [f4,a4,d5,f5,a5,d6]@145 ~@27]/4", // Dm
})).s("gm_string_ensemble_2").gain(0.16).pan(0.4)

// other · flute
const flute = note("<~@11 A@5 B@2 C D@2 ~@12 E@3 ~@6 F@4>".pickRestart({
  A: "[~@19 g5@48 f5@51 ~@16 eb4@2 e4@2 ~ f4@2 gb4@2 g4@2 gb4@2 f4@2 e4@2 eb4@2 d4@2 ~ e4@2 f4@2 gb4@3 g4@46 ~@14 db4@2 d4@3 eb4@2 e4@2 f4@2 e4@2 eb4@2 d4@2, ~@155 eb4@2 ~@83]/5",
  B: "[~ c4@2 db4@2 ~ eb4@2 e4@2 f4@48 ~@12 c4@2 db4@2 ~ d4@2 eb4@2 e4@2 eb4@2 d4@2 db4@2 ~ b3@3 ~ db4@2 d4@2, db4@2 ~@3 d4@2 ~@80 c4@2 ~@2 c4@2 ~@3]/2",
  C: "eb4 e4@4 a3@11", D: "[~@13 a3@3 bb3@3 b3@2 c4@2 db4@2 d4@2 db4@2 c4@2 b3@2 bb3@2 a3@2 ab3@3 a3@53 ~@3]/2",
  E: "[~@14 e5@17 f5@4 e5@17 ~ f5@4 e5@8 ~@2 e5@40 ~@37]/3",
  F: "[~@23 a3@2 bb3@2 b3@2 c4@2 db4@2 c4@2 b3@2 ~ bb3@2 a3@21 bb3@3 b3@2 c4@2 db4@2 ~ c4@2 b3@2 bb3@3 a3@12 [a5,c6]@19 [f5,a5]@4 [e5,g5]@4 [f5,a5]@47 ~@28]/4", // Am F Em F
})).s("gm_flute").gain(0.27).pan(0.6)

// chords · clarinet
const clarinet = note("<A@4 B@5 C@2 D@7 E@3 ~@8 F G H@5 ~@10>".pickRestart({
  A: "[~@43 e3@36 gb3@12 [g3,db4]@24 [f3,a3,d4]@35 ~@42, ~@43 bb3@72 ~@77, ~@43 d4@48 ~@101]/4", // Gdim Dm
  B: "[~@43 c5@72 d5@72 db5@35 ~ d5@17]/5", C: "[~@19 db5@77]/2",
  D: "[~@19 d5@100 ~@3 d5@41 ~@47 a4@41 ~@48 g4@37, ~@122 [g4,bb4]@88 f4@91 ~@35, ~@163 c5@87 ~ [bb4,d5]@85]/7", // Gm Bb
  E: "[~@3 [e4,db5]@47 ~ f4@90 ~@3, ~ a4@46 ~, ~@25 d5@45 ~@2]/3", // Dbm
  F: "~@5 [e3,g3]@7 ~@2 [e3,g3]@8 ~@2 [e3,g3]@9 ~ [e3,g3]@8 ~@2 [e3,g3]@4", // Em
  G: "~@4 [e3,g3]@7 [f3,a3]@8 ~ [f3,a3]@9 ~ [f3,a3]@9 ~ [f3,a3]@8", // Em F
  H: "[~@2 [e3,g3]@5 ~ [f3,a3]@7 g3@18 f3@26 bb3@51 ~ c4@15 ~ d4@5 c4@16 d4@4 ~ c4@7 ~@3 [a3,c4]@40 ~@37, ~@15 bb3@40 ~@56 a3@50 ~@79]/5", // Em F Am
})).s("gm_clarinet").gain(0.27).pan(0.3)

// chords · alto sax
const alto_sax = note("<~@29 A B C@5 ~@10>".pickRestart({
  A: "~@5 [e3,g3]@8 ~@2 [e3,g3]@8 ~@2 [e3,g3]@9 ~ [e3,g3]@9 [e3,g3]@4", // Em
  B: "~@4 [e3,g3]@6 ~ [d3,f3]@7 ~@2 [d3,f3]@9 ~ [d3,f3]@8 ~@2 [d3,f3]@8", // Em Dm
  C: "[~@2 [db3,e3]@5 ~ [d3,f3]@6 ~ [e3,g3]@17 ~@2 [d3,f3]@24 [e3,bb3]@49 ~@4 [f3,a3]@90 ~@39]/5", // Dbm Dm Em Dm Edim F
})).s("gm_alto_sax").gain(0.22).pan(0.7)

// other · french horn · "FR.HORN"
const french_horn = note("<A@4 ~@3 B@7 ~@15 C@2 D@5 ~@10>".pickRestart({
  A: "[~@43 g4@36 gb4@12 f4@12 e4@12 a4@12 d4@22 ~@43]/4",
  B: "[~ e4@6 c5@12 b4@24 bb4@24 a4@11 ~ g4@21 f4@39 e4@24 eb4@24 e4@24 g4@48 f4@53 ~@24]/7",
  C: "[~@5 db4@8 ~ db4@9 ~ db4@9 ~ db4@10 b3@7 db4@8 d4@8 ~ d4@9 ~ d4@9 ~ d4@8]/2",
  D: "[~@2 db4@5 d4@7 ~ e4@18 f4@24 ~@13 a4@12 g4@28 e4@17 f4@4 e4@17 ~ f4@3 e4@9 ~@2 [c4,e4]@40 ~@37, ~@57 gb4@13 ~@170, ~@58 e4@51 ~@131]/5", // C
})).s("gm_french_horn").gain(0.33).pan(0.8)

// other · french horn · "FR.HORN" · soft notes
const french_horn_soft = note("<~@40 A@3 ~@3>".pickRestart({
  A: "[~@2 [bb3,d4]@45 [a3,db4]@70 ~@27]/3", // Bb A
})).s("gm_french_horn").gain(0.22).pan(0.8)

// chords · trombone
const trombone = note("<~@4 A@3 B@7 ~@15 C@2 D@3 E@6 F@6>".pickRestart({
  A: "[~@43 [f3,c4,f4,a4]@72 [ab3,b3,d4,f4]@29]/3", // F Abdim
  B: "[~@7 [c4,e4]@12 [b3,d4]@23 ~ f4@12 e4@23 ~ [f3,d4,f4]@36 [bb3,f4]@24 [a3,e4]@24 eb4@23 ~ e4@24 [d3,f4]@99 ~@26, ~@7 [e3,ab3]@35 ~ bb3@70 ~@50 a3@148 ~@25, ~@43 [g3,db4]@36 ~@36 [g3,db4]@47 ~ [g3,db4]@51 ~@122]/7", // C Bm Dm Bb5 A5 Dm E Gdim
  C: "[~@5 [db3,e3,a3]@9 [db3,e3,a3]@9 ~ [db3,e3,a3]@9 ~ [db3,e3,a3]@9 ~ [db3,e3,g3]@7 [db3,e3,a3]@7 ~ [f3,a3]@8 ~ [d3,f3,a3]@10 [d3,f3,a3]@9 ~ [d3,f3,a3]@8, ~@29 d3@4 ~@15]/2", // A Dbdim A F Dm
  D: "[~@2 [db3,e3,a3]@6 [d3,f3,a3]@7 [e3,c4]@18 f3@24 ~ gb3@12 [g3,e4]@40 [f3,a3,c4]@34, ~@15 bb3@95 ~@34, ~@33 d4@37 ~@74]/3", // A Dm C F
  E: "[~@8 [f3,a3,c4]@9 ~@2 [f3,a3,c4]@39 ~@5 f4@11 e4@10 ~ d4@10 db4@12 e4@58 g4@11 gb4@10 ~@2 gb4@13 f4@12 ~@3 [f3,b3,d4,f4]@71 ~, ~@63 bb3@102 [a3,d4]@49 ~@74]/6", // F Bdim D5
  F: "[~@2 [bb3,d4]@45 [a3,db4]@69 [d3,f3,a3]@145 ~@27]/6", // Bb A Dm
})).s("gm_trombone").gain(0.27).pan(0.3)

// bass · tuba
const bass_2 = note("<~@4 A@3 B@7 ~@15 C@2 D@5 ~@6 E@4>".pickRestart({
  A: "[~@43 f2@71 ~ f3@29]/3", B: "[~@7 e2@36 a2@35 ~ bb2@36 a2@96 d2@101 ~@24]/7", C: "[~@5 a2@53 d2@19 ~ a2@18]/2",
  D: "[~ d2@13 c2@96 f2@21 c2@21 ~ f2@50 ~@37]/5", E: "[~@20 d2@145 ~@27]/4",
})).s("gm_tuba").gain(0.33).pan(0.6)

// other · orchestral harp · "HARP"
const orchestral_harp = note("<~@5 A ~@2 B C D E F ~@8 G H I J ~@4 K L ~@2 M ~@4 N@2 ~@6>".pickRestart({
  A: "~@2 a4@2 c5 ~@6 c4 ~ f4 a4 c5 ~@12 c5 f5 a5 c6 ~@16, c4 ~@23, ~ f4@2 ~@45",
  B: "~ g3 bb3 db4 [f4,g4] ~ bb4 db5 f5 db6 ~@38", // Fsus2
  C: "~@27 [bb3,db4] ~ f4 g4 bb4 ~ db5 f5 bb5 ~ db6 ~ f6 db7 ~@7, ~@13 g3 ~@10", // Bbm
  D: "~@26 a3 db4 ~ g4 a4 db5@2 eb5 g5 ~ a5 db6 eb6 ~@9, ~@25 g3@2 ~@21",
  E: "~@28 d4 ~ f4 ~@2 a4 ~@2 d5 ~ f5 ~@2 a5 ~ d4 ~@2 d5 ~",
  F: "f5 ~@2 d5 ~@3 a5 ~@2 d5 ~@2 d4 ~@3 f5 ~ d5 ~@18 d5 ~@2 a5 ~ f4 ~@2 f5 ~",
  G: "~@9 d5@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ d5@2 ~@2 g4@2 ~@21", H: "~@14 c5@2 g4@2 ~ bb4 ~@2 c5@2 g4@2 ~@22",
  I: "~@22 f4 a4@2 c5 ~@20 f4 bb4", J: "~ f5 ~@46", K: "~@21 g3@2 g4@2 ~ db5 ~@21, ~@21 a3 ~ db4 ~ a4@2 ~@21",
  L: "~@25 a3 d4 f4 ~ a4 d5 ~@7 a4 [d5,f5] a5 d6 ~@6, ~@12 f3 ~@11", // Dm
  M: "~@22 a3 [c4,e4] f4 a4 c5 e5 f4 c5 e5 f5 ~ [a5,c6] ~ e6 ~@12, ~@21 f3@2 ~@25", // C Am
  N: "[~@35 b3@3 d4@2 f4 ~ a4@2 b4@2 ~@2 f5 ~@3 b5@2 ~ d6@2 f6 ~@38, ~@34 a3@2 ~@11 d5@2 ~@2 a5@2 ~@43]/2",
})).s("gm_orchestral_harp").gain(0.22).pan(0.2)

stack(
  electric_guitar_jazz, bass, string_ensemble_2, string_ensemble_2_2, string_ensemble_2_soft, flute, clarinet, alto_sax,
  french_horn, french_horn_soft, trombone, bass_2, orchestral_harp
)

More by Sinatra