Strudelify

popeye the sailor man theme song - im popeye the sailor man

Misc Cartoons

KeyE♭ majorTempo240 bpm
0:00/0:00
// popeye the sailor man theme song - im popeye the sailor man — Misc Cartoons
// 240 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Accordion, Melody" named as an organ, played on accordion (its alto sax patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5226300; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(240/3)

// 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 · synth bass 1 · "Bass Guitar, Bass"
const bass = note(`<
  A B C D E F G H I D J D@2 K L M D N O M P Q R S I N Q D E F T D M N Q D E F G D U V W X U D Y Q Z AA C D E F T H I D J
  D@2 K L M D N O M P Q R S I
>`.pickRestart({
  A: "~@11 c3@5", B: "f2", C: "bb2", D: "[eb2,eb3]@11 ~@5", E: "c3", F: "[f2,f3]@11 [f2,f3]@5",
  G: "[bb2,ab3]@5 ~@6 [bb1,bb2]@5", H: "[eb2,eb3]@5 bb2@5 ~ g2@5", I: "eb2@5 ~@11", J: "[bb1,bb2]@11 ~@5",
  K: "[ab2,ab3]", L: "[c3,c4]@11 [ab2,ab3]@5", M: "[g2,g3]@11 ~@5", N: "[ab2,ab3]@11 ~@5",
  O: "[c3,c4]@5 ~@6 [gb2,gb3]@5", P: "c2@11 a2@5", Q: "bb2@11 ~@5", R: "bb2@11 bb2@5", S: "eb2@5 bb2@5 ~ g2@5",
  T: "[bb2,bb3]@5 ~@6 [bb1,bb2]@5", U: "[eb2,eb3]@5 ~@11", V: "[bb2,ab3]@5 ~@11", W: "[f2,f3]@5 ~@6 [gb2,gb3]@5",
  X: "[g2,g3]@5 ~@6 [eb2,eb3]@5", Y: "[eb2,eb3]", Z: "[bb2,bb3]@5 ~@6 c3@5", AA: "ab2",
})).s("gm_synth_bass_1").gain(0.44)

// chords · accordion · "Accordion, Chords"
const accordion = note(`<
  A B C D E F G H@2 I J K@2 L M K@2 L N O P Q R S@2 T C D U F V W@2 T C X U F V Y@2 Z AA AB AC AD AE AF@2 T C D AG F AH
  AI@2 AJ AK AL@2 AM AN AO@2 AM AP AQ AR AS AT AU@2
>`.pickRestart({
  A: "~@11 [c4,e4,bb4]@5", B: "[a4,c5]@5 [a4,c5]@5 ~ [eb4,a4,c5]@5, f4@11 ~@5",
  C: "[bb3,d4,f4]@5 g4@5 ~ ab4@5, ~@5 [bb3,d4]@11", D: "[g4,bb4]@5 [g4,bb4]@5 ~ [d4,g4,bb4]@5, eb4@11 ~@5",
  E: "[c4,eb4]@5 [d4,f4]@5 ~ [eb4,g4]@5, bb3", F: "[c4,f4,ab4]@5 [c4,f4,ab4]@5 ~ [c4,eb4,ab4]@5",
  G: "[bb3,d4]@5 ~@6 [a3,bb3,d4]@5", H: "[~@5 [g3,bb3]@16 ~@6 g4@5, eb4@21 ~@11]/2",
  I: "[eb4,g4,bb4]@5 [eb4,g4,bb4]@5 ~ [eb4,g4,bb4]@5", J: "~@5 [d4,f4]@5 ~ [d4,f4,g4]@5, ab4@11 ~@5",
  K: "[~@5 [eb4,g4]@5 ~ [eb4,g4]@5 ~@5 [db4,g4]@5 ~ [db4,g4,bb4]@5, bb4@27 ~@5]/2", // Eb Dbdim Gdim
  L: "[eb4,ab4,c5]@5 [c4,eb4,ab4]@5 ~ [eb4,ab4,c5]@5", M: "~@5 [eb4,ab4]@5 ~ [eb4,ab4,c5]@5, eb5@11 ~@5",
  N: "eb5@3 d5@4 ~@4 [eb4,a4,c5]@5, [eb4,ab4]@5 ~@11", O: "bb4@5 c5@5 ~ [eb4,g4,bb4]@5, eb4@11 ~@5",
  P: "g4@3 eb4@4 ~@4 [eb3,gb3,c4]@5, [g3,c4]@5 ~@11", Q: "[d3,ab3,bb3]@5 [d4,ab4,c5]@5 ~ [d4,ab4,bb4]@5",
  R: "~@5 [bb3,d4]@5 ~ [ab3,bb3,d4]@5, ab4@11 ~@5", // Bb Bb7
  S: "[~@5 [g3,bb3]@5 ~ [g3,bb3]@5 [g3,bb3]@5 ~@6 [eb4,g4,bb4]@5, eb4@21 ~@11]/2", // Gm Eb
  T: "[ab4,c5]@5 [ab4,c5]@5 ~ [eb4,ab4,c5]@5, f4@11 ~@5", U: "[c4,eb4]@5 [d4,f4]@5 ~ [eb4,g4]@5, g3",
  V: "[bb3,d4]@5 ~@6 [bb3,d4]@5", W: "[~@5 [eb4,g4]@5 ~ [eb4,g4]@5 ~@5 [bb3,eb4]@5 ~ [eb4,g4,bb4]@5, bb4@27 ~@5]/2",
  X: "[eb4,g4,bb4]@5 [g4,bb4]@5 ~ [d4,g4,bb4]@5", // Eb Gm
  Y: "[~@5 [g3,bb3]@5 ~ [g3,bb3]@5 ~@5 [g3,bb3]@5 ~ [eb4,g4,bb4]@5, eb4@27 ~@5]/2", // Gm Eb
  Z: "[eb4,ab4,c5]@5 [c4,eb4,ab4]@5 ~ [c4,eb4,ab4]@5", AA: "[c4,eb4,ab4]@5 [eb4,ab4,bb4]@5 ~ [eb4,a4,c5]@5",
  AB: "[eb4,bb4,eb5]@5 ~@6 [bb3,eb4,g4]@5", AC: "[bb3,eb4,g4]@5 ~@6 [bb3,eb4,g4]@5",
  AD: "[eb4,g4,bb4]@5 [bb3,eb4,g4]@5 ~ [bb3,eb4,g4]@5", AE: "[bb3,db4,g4]@5 [d4,f4,ab4]@5 ~ [d4,g4,bb4]@5",
  AF: "[~@5 [eb4,ab4]@5 ~ [eb4,ab4]@5 ~@5 [eb4,ab4]@5 ~ [c4,e4,bb4]@5, c5@27 ~@5]/2", // Ab5 C7
  AG: "eb4@5 [d4,f4]@5 ~ [eb4,g4]@5, g3", AH: "[bb3,d4]@5 ~@6 [ab3,bb3,d4]@5",
  AI: "[~@5 [g3,bb3]@16 ~@6 g3@5, eb4@21 ~@11]/2", AJ: "[eb3,g3,bb3]@5 [eb3,g3,bb3]@5 ~ [eb3,g3,bb3]@5",
  AK: "~@5 [d3,f3]@5 ~ [d3,f3,g3]@5, ab3@11 ~@5", // Dm G7
  AL: "[~@5 [eb3,g3]@5 ~ [eb3,g3]@5 ~@5 [db3,g3]@5 ~ [db3,g3,bb3]@5, bb3@27 ~@5]/2", // Eb Dbdim Gdim
  AM: "[eb3,ab3,c4]@5 [c3,eb3,ab3]@5 ~ [eb3,ab3,c4]@5", AN: "~@5 [eb3,ab3]@5 ~ [eb3,ab3,c4]@5, eb4@11 ~@5",
  AO: "[~@5 [eb3,g3]@5 ~ [eb3,g3]@5 ~@5 [eb3,g3]@5 ~ [eb3,g3,bb3]@5, bb3@27 ~@5]/2", // Eb
  AP: "eb4@3 d4@4 ~@4 [eb3,a3,c4]@5, [eb3,ab3]@5 ~@11", AQ: "bb3@5 c4@5 ~ [eb3,g3,bb3]@5, eb3@11 ~@5",
  AR: "g3@3 eb3@4 ~@4 [eb2,gb2,c3]@5, [g2,c3]@5 ~@11", AS: "[d2,ab2,bb2]@5 [d3,ab3,c4]@5 ~ [d3,ab3,bb3]@5",
  AT: "~@5 [bb2,d3]@5 ~ [ab2,bb2,d3]@5, ab3@11 ~@5", AU: "[~@5 [g2,bb2]@5 ~ [g2,bb2]@5 [g2,bb2]@5 ~@11, eb3@21 ~@11]/2",
})).s("gm_accordion").gain(0.45)

// other · whistle · "Tin Whistle, Whistle"
const whistle = note("<~@11 A B ~@2 A B ~@6 A B ~@34 A B ~@2 A B ~@6 A C>".pickRestart({
  A: "~@11 bb6@3 ~@2", B: "bb6@3 ~@13", C: "eb5@5 ~@11",
})).s("gm_whistle").gain(0.8)

// drums · kick
const kick = s("bd").struct("<~ x!71 ~>").gain(0.72)

// drums · rim
const rim = s("rim").struct("<~ [~@11 x ~@4]!71 ~>").gain(0.72)

stack(bass, accordion, whistle, kick, rim)

More by Misc Cartoons