A 3D-Printed, Animatronic, Karaoke-Singing Robot

Similar projects worth following
Blessed with the voice of an angel, KARAOKEBOT is here with songs of salvation to salve the soul.

So You Want To Build a Karaoke-Singing Robot...

Here's what it needs to do:

1) Believably open and close its mouth in sync with pre-programmed speech/music

2) Listen for MIDI Note On (1001nnnn) and Note Off (1000nnnn) messages as event triggers

3) Terrify all who come in contact with it

In what can only be described as "a classic case of taking things way too far", I arranged vocals and puppetry for a 5 song cover album, featuring the likes of Green Day, Rick Astley, and Carly Rae Jepsen, then took this little monstrosity out to a real life Karaoke Bar to test it out.

Audience reactions were mixed - but I had a lot of fun.

Download the source code here and make one of your own!


listens for midi note on/note off messages and opens/closes the mouth in time with them by actuating a 9g servo motor

ino - 484.00 bytes - 09/30/2018 at 07:24


  • 1 × Articulated Toy Face the creepier the better
  • 1 × Arduino the model shouldn't matter
  • 1 × 9g Servo Motor amazon has 'em CHEAP!
  • 1 × PC Running Your DAW of Choice KARAOKEBOT listens for MIDI messages from a Digital Audio Workstation. I used FL Studio - maybe you'll use Ableton
  • 1 × 3D-Printed Body (optional) maybe your toy already has a cool body! unfortunately, i had long since discarded mine, so I had to print a new one

  • Regarding "Artistic Liberties" in Karaoke Cover Versions

    Hunter Irving10/05/2018 at 20:51 0 comments

    Something I realized fairly early on while building KaraokeBot was that the "Karaoke Version" of a given song can deviate a lot from the original.

    The most common alteration made is to the "key" of the song.

    The companies putting out karaoke versions seem to think that lowering a song's pitch will render it more "singable" (by a human).

    They might be right, but this meant that my synthesized vocals had to be shifted around to match what was available at my local Karaoke Bar.

    Another common change is that of BPM (beats per minute; the song's tempo).

    For example, Daft Punk's "Digital Love" comes in at around 124.662 BPM, but most Google search results (and Karaoke Bars) are happy to round up to 125.

    Since my bot's vocals needed to match the corresponding karaoke versions' BPM precisely (lest the two disgracefully desync), I actually ended up making two trips to VENUS Karaoke in the International District - once to rip direct feed audio of a few of their songs (to later analyze in FL Studio and determine their absolute BPMs), and then again to record video/audio of KaraokeBot doing it's thing.

    In the end, I think it was worth it :-)

    (PS: here's a little snippet of KaraokeBot's Digital Love cover)

    - Hunter

  • On The Art of Puppeteering

    Hunter Irving10/05/2018 at 19:57 0 comments

    There are a few things one must take into consideration when building an animatronic karaoke-singing robot.

    Perhaps the most important consideration is that of timing.

    if your 'bot has sloppy animations, it'll look less lifelike and the illusion will be lost.

    Since I was using a Digital Audio Workstation (DAW) to program speech, I thought I might as well use it to program animations as well. A separate, soundless MIDI channel was created for animation, and I was able to slide "hits" (captured as MIDI NOTE_ON messages) and "releases" (captured as MIDI NOTE_OFF messages) around in real time to create believable facial animations.

    A few tips for anyone looking to create a MIDI controlled robot:

    • Have separate servos to control? Consider writing code that listens to separate MIDI channels (you have 16 of them to work with)
    • MIDI messages aren't just on and off - they can also carry pitch and velocity (the "pressure" or "strength" of a note). You might consider using these to vary, for example, how wide your robot's eyes and mouth open
    • With the servo I used, it took about half of a second to rotate from the "mouth fully closed" to "mouth fully open" position. If note offs/ons were placed too rapidly in succession, the mouth wouldn't have time to fully open and close, and would just sort of shudder in place. This meant that slower paced vocals worked better, but more fast paced syllables would just have to be cut a little short

    Happy Hacking!
    - Hunter

  • If At First You Don't Succeed...

    Hunter Irving10/05/2018 at 19:31 0 comments

    In my video, I tried to make it look like I printed KaraokeBot's body perfectly on my first try.

    ...Good joke, huh?

    In reality, the shell featured in the video was my third attempt.

    The first shell had a face hole that was just slightly too small, and while the second shell seemed like a good fit, it split horizontally when I knocked it off my desk and onto the floor (lesson learned - a little infill can go a long way).

    Although it's a wildly specific part that I don't see many others finding useful, here's a download link for the final KaraokeBot shell in .STL format.

    I've also included the now infamous "yellow piece" that broke at the 1 minute 32 second mark in the video.

    You might consider printing one as a reminder of the importance of perseverance.

    Or maybe it's about the fragility of the human spirit....

    - Hunter

  • KARAOKEBOT - Album Release

    Hunter Irving09/30/2018 at 08:09 0 comments

    I couldn't tell you why, but I actually made full versions of each of the songs featured in the KARAOKEBOT video.

    You can listen to them here!

View all 4 project logs

  • 1
    Find Your Muse, Rip Its Face Off

    Thrift stores are a great place to pick up weird, unloved toys on the cheap! The face for KARAOKEBOT came from a knock-off Thomas the Tank Engine toy.

  • 2
    Serve Your Will

    Use an Arduino to listen for MIDI messages and a 9g servo motor to move the mouth as messages are received (source code for this is provided).

  • 3
    Lay Down A Track

    Using your DAW of choice, lay down some instruments and use a speech synthesizer to create that uncannily human-like sound (FL Studio has a lot of great options built in).

View all 6 instructions

Enjoy this project?



Ember Leona wrote 10/08/2018 at 05:59 point

PS I also had a talkbox I want to use for talkbox karaoke. Users would have to purchase their own tubes for sanitation.

  Are you sure? yes | no

Ember Leona wrote 10/08/2018 at 05:59 point

This is great... I have a similar idea I call I want to make remote controllable kinetic statues from like paperclips and a motor powered off usb and triggered by chat or IRC like *poke.

I just discovered screenkey app and used it with yoshimi to make music from words. some of my favorite sounds were epicfail and puzzlepiece or dudewheresmycar. I want to use vokoscreen with it to show you guys. if you know zelda try song of storms "t7ot7opp[p[piyyrrtyyrrte" want to program autokey to play midi using qwerty-keyboard presses

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates