Bone Maestro
2026 · App · WIP
Bone Maestro is an iPad app for preparing and running custom performances with Ultra Skelly — Home Depot’s 6.5-foot animatronic. I built it because the stock app couldn’t do what I needed: longer audio, a character voice, and shows I could prep ahead and run from the doorstep.


02 / What problem was I solving?
The stock experiencelimited the performance.
When I first used the stock app, three limits shaped what I wanted to build:
Limit 01
30 seconds
The limit for a personal sound file.
Limit 02
A fixed voice
I couldn’t change the voice to fit a character.
Limit 03

5 custom files
The skeleton’s onboard custom-audio capacity.
My goal was to make custom performances I could prepare ahead of time and control from the doorstep.
03 / How does it work?
From a greetingto a show.
Here’s how I set up a Haunted House greeting, from preparing the line to running the show.
01
Create a clip
Record, import, or generate “Welcome to the haunted house.” Preview the audio on the iPad and save it to Library.
02
Add the greeting to a Show
Open Haunted House in Shows and use + Clips to add the greeting. Set its eye changes, movement, and lights, then place it first in the lineup.
03
Run a show
Use Connect to check that Skelly and its speaker are both ready. Open Haunted House and start the show from the iPad.
Watch Skelly perform
04 / What did I design, and why?
Designing for the personrunning the show.
I moved preparation and playback onto the iPad, removing a computer and separate Raspberry Pi from the setup. Saved audio lives on the iPad, so a night’s content doesn’t have to fit in Skelly’s five onboard slots.
Shows turns clips into a performance.
At the doorstep, I want one place to see what Skelly will do next. Shows turns individual clips into a saved lineup I can prepare ahead of time and run from the iPad.
Build the lineup
Add clips from Library and put them in order. In Haunted House, The Entrance opens the show and A Warning in the Dark follows.
Set the timing and cues
Give each clip its own eye changes, movement, and lights. Set a pause after a clip when the next line needs room to land.
Run it from one place
Once Skelly and its speaker are connected, start the whole Show or trigger a single clip from the lineup.
How Night queue runs several Shows
For a longer evening, add several saved Shows to Night queue and put them in the order you want. Bone Maestro checks that the queue is ready before it plays through. You can repeat the queue or shuffle the clips within each Show.

Give Skelly a voice.
“Welcome to the haunted house” can sound friendly or threatening. In Library, I open Generate Voice to write the line, cast a voice, and direct how it’s delivered.
Choose who’s speaking
Pick a voice in Voice & delivery. Voice settings hold controls like speaking speed and loudness, so the script stays in view while you write.
Direct a moment in the line
Try “[whispering] Welcome… [break] to the haunted house.” Insert cues by hand, or use Add cues to suggest them for unmarked lines. Undo lets you try another direction.
Listen before it joins the show
Generate a take with Fish Audio, preview it on the iPad, and tweak the script if the delivery misses. Save the take you want to Library so it’s ready to add to a Show.
How the Fish Audio integration works
When you tap Generate, Bone Maestro sends the script, bracket cues, selected voice, and voice settings to Fish Audio. The app keeps the API key in the iPad’s Keychain. Cue suggestions happen on the iPad. Fish Audio interprets the cues during synthesis, so delivery can vary between takes.
Bone Maestro converts the returned audio to a WAV. Preview plays the original take. Saving prepares the audio for Skelly’s jaw and stores the clip on the iPad, so a saved show can play without another Fish Audio request.

Show what still needs connecting.
The control link and speaker output are separate requirements. I show both states and put the next setup action beside the missing connection.
Reconnecting does not replay stopped content. The operator chooses what happens next.
Audio setup needed

Ready to perform

05 / How did it evolve?
A simpler setup.A more deliberate show.
2025
Explore live conversation
I started with an iPhone app, ChatGPT, and voice APIs. The approach needed a coordinating server, and I didn’t have the time to take it further.
July 5, 2026
Try a local playback hub
I explored a phone remote backed by a Raspberry Pi for saved audio, timing data, and scene playback.
The iPad direction
Bring the workflow onto iPad
A busy, noisy trick-or-treating area made me question live conversation and repeated API costs. I chose prepared shows I could review in advance and control during the evening.