Séance Bot: Giving a 1999 Karaoke Machine a Second Life
· Christine Ali
I have a tendency to look at obsolete technology and see something other than obsolete technology. Sometimes that is useful. Sometimes it results in Séance Bot. Séance Bot started life as an Emerson GQ755 karaoke machine from roughly 1999. It has everything you would expect from a late-90s karaoke machine: a CD+G player, a small black-and-white CRT, a speaker, seven-segment displays, composite video, and the kind of plastic industrial design that immediately tells you somebody was very excited about the approaching millennium.

Most reasonable people would look at it and say, “That’s an old karaoke machine.” I looked at it and thought: I can put a person in there. Not literally. Probably.
The basic idea is to turn the karaoke machine into an interactive séance box. A face appears inside the display. A hidden camera watches the person standing in front of it. The face notices where that person is, follows them, reacts to movement, speaks, and generally creates the impression that something inside this ridiculous machine is paying attention to you. The interesting part is that I don’t want it to just be a video playing on a screen.
That’s boring. The illusion depends on responsiveness. The original CRT has been removed professionally because I have a healthy respect for flyback transformers and absolutely no desire to become part of the circuit. In its place I’m fitting a seven-inch LCD capable of composite and HDMI input.

The compute side is Raspberry Pi based. A Logitech C920 gives me a small, easily hidden camera. OpenCV handles motion and face positioning. SDL and FFmpeg handle the visual side. The original seven-segment displays may eventually become diagnostics, because if I’m going to build an absurd haunted karaoke machine, obviously it needs a diagnostic subsystem. The animation system is deliberately simpler than trying to synthesize a photorealistic face in real time.
I shot a real actor against a controlled background and build a library of short clips: neutral, looking left, looking right, up, down, reactions, speaking, and idle behavior. The software chooses clips based on what the camera sees. If you move left, she looks left. Move right, she follows. Stand there doing nothing and she eventually gets bored with you. At least, that’s the plan.
The neutral transitions can be reversed so the system doesn’t need a separate animation for every possible return path. Short crossfades hide transitions. Longer idle loops keep the character from looking frozen while nothing is happening. There will also be local voice generation, lighting effects, and an LED ring underneath the wonderfully tacky crystal ball built into the top of the machine. Yes, it has a crystal ball.
Of course it does.
One of the things I like about this project is that it crosses disciplines that are usually treated as separate things. There’s mechanical fabrication. Embedded hardware. Computer vision. Video production. Audio. Linux. Networking. User-interface design. And, surprisingly, acting. The engineering problem isn’t any one of those pieces. It’s making all of them disappear. If the person interacting with Séance Bot is thinking about OpenCV frame rates, HDMI adapters, state machines, or Raspberry Pi boot times, I’ve failed.
They should be thinking: Wait. Did she just look at me? That’s the whole trick. And that, more than anything, is why I’m building it. I spend a lot of my professional life building systems where the technology is supposed to disappear behind the workflow. This is exactly the same engineering problem, except this time the workflow is convincing someone that a woman is trapped inside a 27-year-old karaoke machine.
Which is considerably more fun. I’ll document the build as it progresses, including the mechanical work, software architecture, video production, and the inevitable collection of decisions that begin with, “Well, this seemed like a good idea at the time.” Séance Bot lives. Or at least it will.
Discover more from Christine Alifrangis
Subscribe to get the latest posts sent to your email.
Leave a Reply