I'm using Vixen 3 here, but xLights is also a viable option. I'm not giving a full tutorial on Vixen, because there are already great tutorials around the web.

If you've ever used Premiere, Final Cut Pro, iMovie, Audacity, FLStudio, or Flash, you probably already know 90% of what to do here. Vixen gives you a timeline that you must add channels to, and in that channel you define frames by assigning a value between 0-255, which will become the distance the jack o'lantern's mouth opens, or the brightness of a PWM light. Synchronize this with the audio, and you've got an animation sequence.

I'm going to warn you ahead of time: this part is tedious. There are a number of sites where people have posted their own sequences, but most of them are for driving large, multichannel light shows, and not animated servos. There is good news, though. Songs are repetitive. Cut and paste is your friend. Even parts of the songs with different words can be cut and pasted if the rhythm is the same, because we're only opening and closing a mouth. We don't have to worry about lip-syncing.

I've created a video tutorial embedded above.

Build a test proxy for your show on a breadboard

Just use an LED to represent each channel. Connect your breadboard ground to the Arduino ground, and plug the cathode of each LED into the ground rail on the breadboard. Plug the anode into a row, add a resistor across the gutter (220 or 330 ohm will work), and the connect a jumper wire from the each resistor to the channels you defined in your sketch. Set testing mode on your Arduino sketch, and you're good to go. You'll have to set up Vixen to send a serial stream to the Arduino, just like we did with FPP.

This is far easier than dealing with the actual servos.

Streaming from Vixen to the Arduino

You can stream directly from Vixen to the Arduino. You do not need the Raspberry Pi or FPP. In fact, you will need to do this for animation, unless you trust the built-in animation display in Vixen.