Strudelify

phineas and ferb - simp squirrels in my pants

Misc Cartoons

KeyA minorTempo130 bpm
0:00/0:00
// phineas and ferb - simp squirrels in my pants — Misc Cartoons
// 130 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/8 at bar 49) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5978953; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 50 bars on a 16-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 part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · lead 2 sawtooth · "Saw Synthesizer"
const lead_2_sawtooth = note(`<
  A ~ A ~ A ~ A B A C D E F G F H D I D I D I D A F G F H D C D C D C D A F G F J K L M N O P M N O Q
>`.pickRestart({
  A: "[a3,e4,a4] ~@7", B: "[a3,e4,a4] ~@6 [a3,d4,a4,d5]", C: "[a3,e4,a4] ~@2 [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,d4,a4,d5]",
  D: "[a3,e4,a4] ~@2 [a3,e4,a4] ~@4", E: "[a3,e4,a4] ~@2 [a3,e4,a4] ~ [a3,e4,a4] ~@2",
  F: "[d4,a4,c5,d5,f5] ~@2 [d4,a4,c5,d5,f5] ~ [d4,a4,c5,d5,f5] ~@2", // Dm7
  G: "[a3,c4,e4,g4] ~@2 [a3,c4,e4,g4] ~ [a3,c4,e4,g4] ~@2", H: "[a3,c4,e4,g4] ~@7",
  I: "[a3,e4,a4] ~@2 [a3,e4,a4] ~ [a3,e4,a4] ~ [d4,a4,d5]", // A5 D5
  J: "[e4,g4,b4,d5]@2 ~@4 [e4,g4,b4,d5]@2 ~@2 [e4,g4,b4,d5]@2 ~ [d#4,f#4,a#4,c#5]@3", K: "[d4,a4,c5,d5,f5] ~@7",
  L: "~@4 [a3,c4,g4,a4,c5] ~@2 [a3,c4,g4,a4,c5]", // Am7
  M: "~@2 [a3,c4,g4,a4,c5]@2 ~ [a3,c4,g4,a4,c5]@3 [c4,e4,g4,b4]@2 ~@4 [c4,e4,g4,b4]@2", // Am7 Cmaj7
  N: "~@2 [c4,e4,g4,b4]@2 ~ [c4,e4,g4,b4]@3 [f#3,e4,f#4,c5]@2 ~@4 [f#3,e4,f#4,c5]@2", // Cmaj7 F#m7b5
  O: "~@2 [f#3,e4,f#4,c5]@2 ~ [f#3,e4,f#4,c5]@3 [f3,c4,f4,a4]@2 ~@4 [f3,c4,f4,a4]@2", // F#m7b5 F
  P: "~@2 [f3,c4,f4,a4]@2 ~ [g3,e4,b4,d5]@3 [a3,c4,g4,a4,c5]@2 ~@4 [a3,c4,g4,a4,c5]@2", // F Em7 Am7
  Q: "~@2 [f3,c4,f4,a4]@2 ~ [g3,e4,b4,d5]@3 [a3,c4,g4,a4,c5,a5]@2 ~@6", // F Em7 Am7
})).s("gm_lead_2_sawtooth").gain(0.3)

// other · pad sweep · "Sweep Synthesizer" · A
const pad_sweep = note("<~@5 [[a1,a2]] ~@44>").s("gm_pad_sweep").gain(0.3)

// bass · synth bass 1 · "Bass Synthesizer"
const bass = note(`<
  A ~ A ~ A ~ A B A C D E F E F A D G D G D G D A F E F A D G D G D G D A F E F H I J K L M N O P Q R
>`.pickRestart({
  A: "a1 ~@7", B: "a1 ~@6 d2", C: "a1 ~@2 a1 ~ a1 ~ a1", D: "a1 ~@2 a1 ~@4", E: "a1 ~@2 a1 ~ a1 ~@2",
  F: "d2 ~@2 d2 ~ d2 ~@2", G: "a1 ~@2 a1 ~ a1 ~ d2", H: "e1@2 ~@4 e1@2 ~@2 e1@2 ~ d#1@3", I: "d1@2 ~@12 d3 c3",
  J: "d3 c3 d3 e3 d3 c3 a2@2 a1@2 ~@4 a1@2", K: "~@2 a1@2 ~ a1@3 g1@2 ~@4 g1@2", L: "~@2 g1@2 ~ g1@3 f#1@2 ~@4 f#1@2",
  M: "~@2 f#1@2 ~ f#1@3 f1@2 ~@4 f1@2", N: "~@2 f1@2 ~ g1@3 [a1,a2]@2 ~@4 [a1,a2]@2",
  O: "~@2 [a1,a2]@2 ~ [a1,a2]@3 [g1,g2]@2 ~@4 [g1,g2]@2", P: "~@2 [g1,g2]@2 ~ [g1,g2]@3 [f#1,f#2]@2 ~@4 [f#1,f#2]@2",
  Q: "~@2 [f#1,f#2]@2 ~ [f#1,f#2]@3 [f1,f2]@2 ~@4 [f1,f2]@2", R: "~@2 [f1,f2]@2 ~ g1@3 [a0,a1,a2,a3]@2 ~@6",
})).s("gm_synth_bass_1").gain(0.3)

// drums · kick
const kick = s("bd").struct("<A@15 B A@6 C B A@3 B A@6 C B A@4 B D E@7 B>".pickRestart({
  A: "x ~@5 x ~@3 x ~@2 x ~@2", B: "x", C: "x ~@5 x ~@3 x ~@2 x!3", D: "~ x", E: "x ~@4 x ~@2 x ~@7",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct("<A@15 ~ A@7 ~ A@3 ~ A@7 ~ A@4 ~ B C@7 A>".pickRestart({
  A: "~ x ~@2", B: "~@3 x", C: "~ x ~ x",
})).gain(0.3)

stack(lead_2_sawtooth, pad_sweep, bass, kick, snare)

More by Misc Cartoons