Strudelify
Bewitched cover art

Nothing But The Best

Bewitched

Sinatra

KeyF majorTempo80 bpm
0:00/0:00
// Bewitched — Sinatra
// 80 bpm, 4/4, key F major. Source: 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 55 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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 · piano · "A.PIANO 1"
const piano = note("<A@5 B@7 C@3 D@5 E@2 F G ~@2 H I ~@6 J@3 K@6 ~@12>".pickRestart({
  A: "[~@24 d5@12 bb4@11 ~@69 bb4@12 ~ g4@13 ~@23 f4@12 ~@20 f5@35 ~@8, ~@8 [eb2,eb3]@51 c5@12 f5@14 c5@17 [c3,g3]@46 ~@2 eb3@90, ~@10 bb3@91 c2@48 f2@36 a4@55, ~@11 [d4,f4]@92 ~ bb3@45 ~@2 a3@89, ~@13 g4@35 g4@55 ~ eb4@2 g4@20 ~@16 eb4@11 ~ d4@20 ~@3 d4@63]/5", // Eb C5 Dm
  B: "[~ [d5,g5]@13 ~ [c5,f5]@12 ~@3 d5@29 ~@4 g5@12 ~@2 f5@13 ~@2 d5@13 ~@13 [eb4,eb5]@11 ~ [c3,bb3,eb4,g4,bb4,eb5,g5]@19 ~ [d5,gb5]@26 ~ [f4,a4,d5,f5]@13 ~@10 c6@17 ~@4 bb5@49 ~@25 f6@14 [f5,a5,c6,d6]@16 [c2,c3,bb3,eb4,g4]@11, [c3,bb3,eb4,g4,bb4]@13 ~ [f2,eb3,a3,d4,a4]@13 [bb2,a3]@34 [c3,bb3,eb4,bb4]@13 ~ [f2,eb3]@15 [bb2,a3]@16 [f3,b3]@23 ~@47 [d3,a3,c4]@20 a5@22 ~ eb4 g5@51 ~@11 [c6,f6,a6]@8 bb3@4 [a5,c6,d6]@15 ~@27, ~@28 [c4,d4,f4]@33 ~@15 [a3,d4,a4,d5]@14 ~ [c4,d4,f4,a4]@16 [b4,ab5]@23 ~@64 [f4,c5]@23 ~ bb3@31 ~@23 d4@52 ~@12, ~@29 a4@32 ~ [g4,eb5]@12 ~@31 g2@22 ~@22 [f2,eb3,a3,d4,gb4,b4]@27 ~@19 [d5,f5]@23 ~ [g4,d5]@52 ~ [f4,a4,c5,d5,f5]@22 [f4,a4]@23 ~@19, ~@107 [e4,e5]@17 ~@53 d4@41 c3@35 ~@18 [bb2,a3,c4]@52 ~@13]/7", // G5 F5 Eb Cm7 D Dm Dm7 Cm7 …
  C: "[~@6 [f2,eb3,a3,d4]@17 a4@14 ~@5 [d5,f5,a5]@11 [d5,f5,a5,c6]@11 [c2,c3,bb3,eb4,g4,bb4,d5,g5]@19 ~ [f2,eb3,a3,d4]@17 [d2,d3,a3,c4,d4,f4]@20 ~@11 eb5@6 d5@6, ~@23 [bb1,bb2,a3,c4,d4,f4]@41 ~@57 f3@19 ~@4, ~@42 c5@22 ~@57 [b3,ab5]@23, ~@121 [e4,e5]@11 eb4@12, ~@122 g2@21 ~]/3", // Dm Dm7 Cm7 Dm Dm7 Bbmaj7 E
  D: "[~ [c2,c3,bb3,d4,eb4,g4,d5,g5]@19 [f2,eb3,a3,d4,f4]@21 ~ [a4,c5]@16 ~@18 c6@14 bb5@24 g5@22 ~@10 [d4,eb4,g4,b4,d5]@9 ~ [c4,g4,a4,c5]@9 [bb3,eb4,g4,bb4,c5,eb5,g5]@14 b4@13 ~ c5@11 ~@2 [gb4,d5]@34, ~@41 [d2,d3,a3,c4,d4]@49 [c3,bb3,d4,eb4,g4,bb4,eb5]@47 ~@42 [eb3,a3,d4,f5]@60 ~, ~@41 [d5,f5]@16 ~@5 c5@27 ~@66 [eb4,eb5]@10 ~@14 g4@25 ~ b4@35, ~@42 f4@48 c2@42 ~@4 f1@103 ~, ~@63 [f5,a5]@27 g5@20 ~@130]/5", // Cm7 Dm Am G Am7 Cm7 D D7 …
  E: "[~@32 d5@8 ~ c5@3 ~ c5@2 bb4@5 ~@3 c5@4 ~ d5@4 ~ eb5@15 f4@5 ~@5 d5@3 ~ eb5@2, ~@22 d5 ~@25]/2",
  F: "~@3 d5@8 ~@8 d5@5 ~ c5@6 ~@17", G: "~@7 d5@7 ~@3 c5@3 ~@2 bb4@3 ~@2 g4@6 ~@15", H: "[bb3,eb4,g4]@11 ~",
  I: "[a3,b3,eb4,gb4]@15 ~", // B7
  J: "[~@24 eb5@4 f5@4 g5@3 ~@19 c5@5 ~@11 [b3,d5]@39 ~@27 [b4,d5,f5]@8, eb2@24 eb4@12 ~@12 [f4,a4]@11 db5@11 ~@39 g4@9 [g4,bb4,eb5]@4 bb3@12 g2@10, ~@6 bb2@30 [d3,g5]@23 [g2,f4,ab4,b4]@50 [c3,c5]@17 [bb4,eb5,g5]@9 [f3,b3,f4,ab4]@9, ~@12 g3@24 ~@28 f3@45 ~@5 g3@24 ~@6, ~@18 bb3@18 ~@6 c4@17 ~@51 eb4@28 ~@6]/3", // Bm Bdim F Eb G5 Fdim C Eb …
  K: "[~@9 b3@4 bb3@4 ~ gb3@7 g3@20 ~@16 d3@5 ~@20 eb3@8 ~@15 [d3,a4,c5]@4 ~@11 [bb3,g4,bb4]@12 ~ [bb4,eb5]@10 [g3,bb3,eb4,g4,bb4]@11 [g3,bb3,eb4,g4,bb4,d5]@12 [g3,bb3,eb4,g4,bb4,c5]@12 ~@36 c5@12 ~@19 [a5,c6]@8 ~@16 [e4,db5,e5]@14 ~, ~@3 [c3,c4,eb4,g4,c5]@42 g2@21 ~ [g2,eb4]@27 [g2,d5]@19 ~@24 [c2,c3]@45 ~ [c2,c3,g5]@47 ~@13 [f4,d5,f5]@14 ~@31, ~@45 g4@6 d3@10 ~@11 eb3@14 ~@14 [d3,a4]@9 ~@10 [d3,gb4,a4]@18 ~@10 [d4,c5,eb5]@23 ~@25 [g3,bb3,eb4]@35 d3@27 [db3,g5,bb5]@30 ~, ~@46 d5@21 [g4,c5]@11 ~@16 bb4@10 ~ [bb3,g4,bb4]@9 bb4@10 ~@13 d5@21 ~@25 [bb4,d5]@24 [g4,bb4,d5]@23 ~@7 c4@21 ~@7 bb3@22 ~, ~@46 bb4@10 [bb3,d4,g4,bb4]@11 ~@11 [c4,g4,a4,c5,eb5]@16 ~@6 gb4@14 d5@23 g5@34 ~@12 eb5@18 eb5@29 [a5,c6]@19 ~@39]/6", // D7 Eb Eb5 Eb Ebmaj7 Cm7 Am Dbm …
})).s("gm_piano").gain(0.28)

// bass · acoustic bass · "ACOU BASS"
const bass = note("<~@20 A B C D E F G H I J K L M N O ~@10 P@5 Q@5>".pickRestart({
  A: "bb1@19 ~@5 bb1@22 ~@2", B: "c2@20 ~@4 f1@21 ~@3", C: "bb1@21 ~@3 d2@23 ~", D: "eb2@11 ~ eb2@10 ~@2",
  E: "d2@21 ~@3 c2@22 ~@2", F: "f2@21 ~@3 f2@10 ~@2 g2@11 ~", G: "c2@21 ~@3 c2@19 ~ c3@3 ~",
  H: "f2@22 ~@2 f1@11 ~ f1@10 ~@2", I: "bb1@7 ~ bb1@7 ~", J: "c2@10 ~@2 c2@11 ~", K: "d2@20 ~@4 d2@21 ~@3",
  L: "eb2@20 ~@4 eb2@21 ~@3", M: "~ d2@22 ~ c2@23 ~", N: "f2@7 ~ f2@4 bb1@4", O: "eb2@35 ~@13",
  P: "[~@19 c2@25 ~@3 c2@25 ~@2 d2@26 ~@2 d2@17 ~ a1@4 d2@4 ~ e2@26 ~@2 e2@17 ~ c2@5 e2@4 f2@27 f1@25 ~@4]/5",
  Q: "[g2@12 ~ g1@26 ~ g1@14 g2@12 ~ g1@27 ~ g2@18 ~@28 c3@30 ~@5 c1@46 ~@18, ~@113 c2@62 ~@65]/5",
})).s("gm_acoustic_bass").gain(0.26)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<A@2 ~@3 B@3 C@7 D@5 ~@10 E F G H I ~@20>".pickRestart({
  A: "[~@11 [d4,f4]@54 ~@31, ~@8 eb2@59 ~@29, ~@8 eb3@55 ~@33, ~@10 bb3@55 ~@31]/2", // Dm
  B: "[[c3,bb3,d4,eb4,g4]@14 [f2,eb3,a3,d4]@14 [bb2,f3,a3,d4]@33 ~ c3@14 [f2,eb3,a3,d4]@14 [bb2,f3,a3,d4]@16 e4@11 ~ eb4@12 [c3,bb3,eb4,g4]@14, ~@61 [g3,bb3,eb4]@14 ~@31 [g2,f3,b3]@23 ~@15]/3", // Cm7 Dm Bbmaj7 Dm Bbmaj7 Cm7 Eb G7
  C: "[~@6 [f2,eb3,a3,d4]@27 [d3,a3,c4,f4]@41 ~ [c3,g3,bb3,eb4]@52 [bb2,f3,a3,d4]@54 [c3,bb3,d4,eb4,g4]@17 [f2,eb3,a3,d4]@17 [bb2,f3,a3,d4]@40 ~ [c3,g3,bb3,eb4]@19 ~ [f2,eb3,a3,d4]@17 [d3,a3,c4,f4]@20 e4@10 ~ eb4@6 d4@6, ~@313 [g2,f3,b3]@23]/7", // Dm Dm7 Cm7 Bbmaj7 Cm7 Dm Bbmaj7 Cm7 …
  D: "[~ [c3,bb3,eb4,g4]@19 [f2,eb3,a3,d4]@22 [d3,a3,c4,f4]@48 [c3,g3,bb3,eb4]@46 ~@10 d5@9 c5@10 ~ [g3,bb3]@13 a4@11 ~ bb4@14 b4@31 ~@4, ~@136 f2@43 [f2,eb3,a3,d4]@60 ~, ~@146 eb3@33 ~@61, ~@146 [a3,d4]@19 bb4@14 ~@61]/5", // Cm7 Dm Dm7 Cm7 Gm Dm D5
  E: "[f3,a3,c4] [gb3,c4,d4]", F: "[g3,bb3,c4,eb4]@3 [a3,c4,eb4,gb4]", G: "[bb3,d4,f4] [bb3,d4,e4]",
  H: "[bb3,c4,eb4]@2 [a3,c4,eb4] [ab3,c4,d4,f4]", I: "[g3,bb3,d4,g4] ~",
})).s("gm_electric_guitar_jazz").gain(0.05)

// other · flute
const flute = note("<~@24 A ~@3 B C@2 D E ~@9 F@4 G@4 H@2 I@3>".pickRestart({
  A: "~@8 bb5@2 d6 f6@2 bb6@2 ~@33", B: "~@24 a5@6 ~ bb5@17", C: "[~@24 a5@6 bb5@14 a5@2 g5 gb5@2 f5@22 ~ gb5@24]/2",
  D: "~ g5@12 ~@3 f5@3 ~ a5@4 ~ bb5@12 ~@11", E: "~ bb4@2 ~ f5@2 f5@2 ~ d6@2 f6@2 ~@35, f4@2 ~ d5@2 ~@3 bb5@2 ~@38",
  F: "[~@47 a5@11 ~ g5@10 f5@10 eb5@11 ~ db5@12 b4@12 a4@18 g4@29 ~@2 g5@5 ~@2 g5@5 ~@2 g5@6 ~ g5@6 ~]/4",
  G: "[g5@7 g5@6 ~ g5@5 ~@2 g5@5 ~ a5@6 a5@6 ~ a5@6 ~ a5@6 ~ a5@6 ~ a5@6 ~@2 a5@6 ~ a5@7 ~@5 c5@7 e5@7 g5@7 ab5@14 e5@13 a5@27 ab5@27 ~@2]/4",
  H: "[c6@19 g5@7 ~ b5@20 a5@6 ~@2 g6@3 a6@2 g6 ~ a6 g6 ~ a6 g6 ~ a6 g6 a6 ~ g6 a6 ~ g6 a6 g6 a6 g6 ~ a6 g6@2 g6 a6@2 g6 ~@4 g6@2 ~@2]/2",
  I: "[~@24 b5@7 c6@7 e5@7 f5@8 a5@8 c6@9 b5@10 [g5,e6]@47 ~@17]/3", // C
})).s("gm_flute").gain(0.2).pan(0.7)

// chords · clarinet
const clarinet = note("<~@24 A ~@7 B ~@9 C@5 D@2 E ~@5>".pickRestart({
  A: "~@8 f4 ~ bb4 d5 f5@2 ~@34", B: "bb3@2 d4@2 ~ f4 bb4 ~ bb4@2 ~ f5 ~ bb5@2 ~@33, ~@5 d5 ~@18",
  C: "[~@47 [db5,f5]@11 ~ [b4,eb5]@10 [a4,db5]@10 ~ b4@11 ~ a4@11 [eb4,g4]@12 ~ f4@17 ~ b3@30 [d5,e5]@4 ~@2 [d5,e5]@6 ~ [d5,e5]@6 ~@2 d5@6 c5@5 ~@2 [c5,e5]@6 ~@2 [c5,e5]@5 ~@2 [c5,e5]@6 [e5,f5]@6 ~ [e5,f5]@6 ~ [e5,f5]@6 ~, ~@79 g4@12 f4@12 ~@12 db4@18 eb4@30 ~@22 e5@12 ~@43]/5", // Db B A Eb Dsus2 C Fmaj7
  D: "[[e5,f5]@6 ~ [d5,f5]@6 ~ [d5,f5]@6 [d5,f5]@6 [d5,f5]@5 ~@10 [c5,e5]@5 ~ [c5,e5]@6 ~ [c5,e5]@10 ~@4 [c5,e5]@6 ~ [c5,e5]@6 ~ [c5,e5]@6 ~@2 [c5,e5]@4 ~@2]/2", // Fmaj7 Dm C
  E: "~ e5@5 ~@2 [c5,e5]@6 ~ [c5,e5]@5 ~ eb5 ~@6 [c5,eb5]@5 ~@2 [c5,eb5]@5 ~@2 [c5,d5]@5 ~, c5@5 ~@15 c5@2 ~@26", // C Cm Csus2
})).s("gm_clarinet").gain(0.18)

// other · french horn · "FR.HORN"
const french_horn = note("<~@43 A@3 ~ B@6 ~@2>".pickRestart({
  A: "[a3@10 b3@11 db4@11 eb4@10 ~ f4@12 g4@13 ~ a4@16 [eb4,b4]@26 ~@33]/3", // Abm
  B: "[~@41 c4@6 e4@7 g4@6 ~ ab4@27 a4@27 ~ ab4@26 ~ [e4,g4]@27 ~ [eb4,gb4]@26 [d4,f4]@41 ~ g4@15 ~@34]/6", // Em Ebm Dm
})).s("gm_french_horn").gain(0.24).pan(0.4)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@20 A@8 B@2 C@2 D@2 E@3 ~@5 F@2 G@7 H@4>".pickRestart({
  A: "[[a3,c4,d4,f4]@47 [bb3,c4,eb4,g4]@48 [a3,c4,d4,f4]@24 [a3,c4,d4,gb4]@24 d4@24 ~@12 [a3,gb4]@12 [bb3,c4,d4,f4]@24 [bb3,e4,a4,c5]@24 bb3@24 a3@12 [g3,b3,d4]@12 [g4,c5,eb5]@12 [d5,g5,bb5]@6 [c5,f5,a5]@6 [bb4,eb5,g5]@6 [d4,g4,bb4]@5 [c4,f4,a4]@6 ~ [eb4,g4]@6 [b3,eb4,gb4]@6 ~ [eb4,gb4,b4]@5 [f4,b4,eb5]@6 [gb4,db5,f5]@6 [b4,eb5,gb5]@6 [eb5,gb5,b5]@6 ~ [f5,ab5,db6]@6 [eb5,gb5,eb6]@6, ~@143 [bb3,g4]@36 ~@60 [c4,eb4]@36 ~@53 bb3@6 ~@50, ~@167 [c4,eb4]@24 ~@48 f4@48 ~@97]/8", // Dm7 Cm7 Dm7 D7 D Bb Am G …
  B: "[~ [g4,eb5,g5], [a3,d4,f4,d5,f5]@47 [bb3,eb4]@49, ~ f6@94 ~]/2", // Cm Dm Eb5
  C: "[[f4,c5,f5]@24 ~ c5@22 ~ [bb3,c4,eb4,g4,bb4,eb5]@36 [a3,c4,eb4,gb4,c5,a5]@12, [c4,d4]@47 ~@49, ~@24 [gb4,gb5]@23 g5@35 ~@14]/2", // F5 Cm7 Adim Csus2 Gb
  D: "[[bb3,d4,f4,d5,bb5]@13 ~@11 [g3,bb3,c4,e4]@23 ~ bb3@24 a3@11 ~ [ab3,d4,f4,bb4]@12, ~@23 [e5,g5,c6]@24 c4@36 ~@13, ~ f5, ~@4 [eb4,f4,c5]@3 ~]/2", // Bb C7 Bb7 C F7
  E: "[[bb3,d4,g4,bb4,eb5]@36 [c4,f4,a4]@23 [f3,b3,d4,f4,ab4]@50 ~@35]/3", // Ebmaj7 F Fdim
  F: "[~@48 a5@10 ~ g5@9 ~ [a2,a5]@9 ~ [b2,g5,b5]@11 ~ [db3,f5,a5]@5, ~@47 [f2,db6,f6]@11 [g2,b5,eb6]@10 [f5,db6]@10 eb5@12 db5@6]/2", // A Em Dbaug Db Gaug Db
  G: "[~@7 [eb3,b4,eb5,g5]@12 [f3,a4,db5,f5]@18 ~ f4@29 d4@28 c4@27 e4@27 d4@27 ~ g4@27 ~ ab4@27 [f4,a4,c5,e5]@27 ~@21 d4@7 [g5,c6]@14 g5@13 b5@14 a5@8, ~@37 [g3,b4,eb5]@30 [g3,e4,g4]@55 [a3,f4,a4]@55 [e4,c5,e5]@55 ~@27 [ab4,c5]@27 ~ [g4,c5,e5]@27 [c5,eb5,gb5]@22, ~@259 eb4@20 ~@57, ~@260 c6@27 ~@49]/7", // Ebaug Faug Fmaj7 C5 Gaug C Dm C …
  H: "[~@6 [a4,c5,d5,g5]@27 ~@14 e5@18 [g4,c5,d5,e5,g5]@28 [a4,c5,d5,f5]@34 ~ [c2,c3,g4,c5,d5,e5,g5]@49 ~@15, ~@33 [f4,ab4,b4,d5]@32 ~@127]/4", // Am7 C Dm7 C Fdim
})).s("gm_string_ensemble_2").gain(0.33)

// drums · rim
const rim = s("rim").struct("<~@21 [~@2 x] [~@11 x] ~@2 [~@2 x ~@2 x ~@6] ~ [~@8 x ~@2 x] ~@27>").gain(0.32)

// drums · snare
const snare = s("sd").struct("<~@20 A B@3 A@2 B C D B E B D B F ~@20>".pickRestart({
  A: "~@13 x ~@22 x ~@11", B: "~ x ~ x", C: "~@11 x ~@36", D: "~@12 x ~@22 x ~@12", E: "~@12 x ~@24 x ~@10",
  F: "~@13 x ~@34",
})).gain(0.32)

// drums · open hat
const open_hat = s("oh").struct("<~@28 x ~@26>").gain(0.27)

// drums · ride
const ride = s("rd").struct("<~@20 A B C@4 D E@2 C@4 F G ~@10 H I J K L M N O P Q>".pickRestart({
  A: "x ~@11 x ~@12 x ~@10 x ~@11", B: "x ~@10 x ~@12 x ~@11 x ~@11", C: "x!4", D: "x ~@11 x ~@11 x ~@10 x ~@11 x",
  E: "~ x!3", F: "x ~@11 x ~@10 x ~@12 x ~@11", G: "x ~ x ~ x!3 ~", H: "~@19 x ~@13 x ~@13 x",
  I: "~@6 x ~@6 x ~@6 x ~@3", J: "~@6 x ~@12 x ~@13 x ~@13 x", K: "~@13 x ~@12 x ~@13 x ~@7",
  L: "~@6 x ~@13 x ~@12 x ~@13 x", M: "~@12 x ~@6 x ~@6 x ~@6 x ~@13 x", N: "~@6 x ~@6 x ~@12 x ~@6 x ~@6 x ~@7",
  O: "~@17 x ~@13 x ~@13 x ~@2", P: "~@13 x ~@19 x ~ x ~@2 x!2 ~ x!3 ~ x!2 ~",
  Q: "x!4 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!5 ~ x!4 ~@17",
})).gain(0.27)

stack(piano, bass, electric_guitar_jazz, flute, clarinet, french_horn, string_ensemble_2, rim, snare, open_hat, ride)

More by Sinatra