Frequently asked questions
Quick answers about converting MIDI files into Bluejay-compatible motor melodies, picking the right firmware, fitting the song into the 128-byte budget, and getting good audible results out of brushless ESCs. Looking for a longer technical explanation? Read how it works. Looking for ready-made tunes? Browse the song library.
What is beepmyquad?
beepmyquad is a free, browser-based MIDI to RTTTL converter built for FPV drone pilots. Drop in any MIDI file — a movie theme, a video-game jingle, a riff you wrote yourself — and the converter splits the song across up to eight motors so your quadcopter, hexacopter, or octocopter plays the melody on power-up. No accounts, no upload: the MIDI is parsed locally in your browser, and only the resulting RTTTL strings ever leave your machine — and only because you copy them out yourself.
What is RTTTL?
RTTTL — Ring Tone Text Transfer Language — is a tiny text format originally invented by Nokia in the late 1990s to encode mobile-phone ringtones. A complete tune fits on one line and looks like this:
tune:d=4,o=5,b=120:c,e,g,c6,p,8e6,8d6,8c6
The first segment is the tune's name, the second sets defaults (d = default
duration, o = default octave, b = beats per minute) and the
third is a comma-separated list of notes. Bluejay, BLHeli_S, BLHeli_32, AM32 and every
modern ESC configurator's melody editor accept this format.
Which ESC firmwares are supported?
- Bluejay — the open-source successor to BLHeli_S. Gives you the full 128-byte custom melody slot per ESC and the cleanest playback.
- BLHeli_S — original stock firmware on the majority of 5" freestyle and racing quads. Supports RTTTL via BLHeliSuite or the open-source esc-configurator.
- BLHeli_32 — 32-bit closed-source firmware on higher-end ESCs. Has its own startup-melody field that accepts RTTTL.
- AM32 — open-source 32-bit firmware. Same RTTTL-style melody field.
- Anything else that accepts a Nokia-style RTTTL string works too.
Do my ESCs need to be flashed with Bluejay specifically?
No, but Bluejay gives the best result. The 128-byte per-ESC slot is bigger than what BLHeli_S exposes, the playback is steadier, and the build supports dynamic timing tweaks that some songs rely on. If you're already on stock BLHeli_S or AM32 you can still use beepmyquad — just keep an eye on the per-motor byte budget in the configurator.
Will it work on a 3" / 5" / 7" / cinelifter / X-class?
Yes. Any frame whose ESCs play startup tones — i.e. essentially every BLHeli-family ESC built in the last decade — works. Frame size doesn't change the note range or playback quality. Bigger motors with thicker laminations tend to produce a slightly lower, warmer tone; tinywhoop motors sound thin and bright. Pick songs that match the timbre if you care.
Does the melody affect motor performance?
No. ESC startup melodies only play before arming, while the motor is at rest. The instant you arm and apply throttle, normal commutation resumes and the audible song stops. There is no measurable impact on motor wear, thrust, or efficiency in flight.
Why does the converter say "62 notes max"?
Bluejay stores each startup melody in a fixed 128-byte slot in the ESC's flash. Each note takes two bytes (one for frequency, one for duration); the first four bytes are metadata; leaving room for roughly 62 notes. Longer songs are truncated by the configurator when written, so beepmyquad caps each output at 62 notes by default to avoid that. You can raise the cap if you're flashing AM32 or BLHeli_32 with bigger slots, but you'll need to verify the limit in your configurator first.
How do I fit a 3-minute song into 62 notes?
You don't — and you shouldn't try. Pick the most recognisable section (chorus, hook, iconic opening bars) and use the Time window setting to crop the MIDI before conversion. A 5-second melodic hook beats a full song that gets randomly cut in half.
Why does my song sound off-key?
Bluejay's playable note range corresponds roughly to RTTTL octaves 4 through 7 — about C4 (middle C) to B7. MIDI files written for piano or orchestra often sit below or above that range. Use the Octave shift option to transpose the whole piece up or down in octave steps so it lands inside the playable window. Notes outside the range get clamped to the nearest playable octave, which is what causes the "off-key" jumps you might hear.
Why are some notes faded in the editor?
Faded notes are not playing in the current conversion. There are two reasons:
- Dropped — too many simultaneous voices at that moment, no free motor slot, and the dropped note had a lower pitch than the surviving notes (the allocator prefers higher pitches when forced to choose).
- Deactivated — you (or a pin-to-motor displacement) explicitly turned the note off via the editor toolbar. Re-enable from the toolbar or by double-clicking the note.
What is "pin to motor" for?
The automatic allocator distributes voices across motors based on timing and pitch. Sometimes that's wrong — for example you want the bass line on motors 3 and 4 (the rear ones, which on most frames give a deeper sound) and the melody on motors 1 and 2. Selecting a note and choosing "Pin to: Motor X" forces that assignment. If another pinned note conflicts at the same time, the newer pin wins and the older one gets deactivated.
How loud is it?
Loud enough to hear across a 30 m field on a calm day. Bigger motors (1800–2400 KV on 2207-class stators) project further; tinywhoop motors barely whisper. There is no volume control because the ESC drives the motor at a fixed PWM amplitude and the acoustic output is dictated by the motor's mechanical response.
Can I make my motors play different notes simultaneously?
Yes, that's the whole point of beepmyquad. Each ESC produces a single tone at a time (monophonic), but a four-motor quadcopter has four independent ESCs, so you can play four-part harmony. A hexacopter does six-part harmony, an octocopter eight. The converter automatically routes simultaneous MIDI notes onto separate motors.
My motors are spinning when the melody plays — is that bad?
They shouldn't spin. If they do, your ESCs are either misinterpreting the melody as a throttle signal or the PWM amplitude during tone playback is high enough to overcome static friction. On Bluejay this never happens by design. On older BLHeli_S builds and generic clones it occasionally does — update to a known-good firmware release.
Can I share my generated RTTTL with friends?
Yes — the RTTTL string is plain text. Copy it from the output box, paste into Discord, a forum thread, or save as a .rtttl file (use "Download .rtttl" or "Download all"). The receiving pilot pastes it into their own ESC configurator. We also collect community submissions for the song library — drop us a line via Contact.
Does this use my GPU or any background CPU after I leave the page?
No. The converter is pure JavaScript running on the main thread only while you're actively converting. Closing the tab stops everything. No service worker, no background sync.
Is there an API?
Not yet. The conversion logic lives entirely in browser JavaScript so anyone with a developer console can call the functions directly. If there's demand for a command-line port (Node.js or Python) get in touch via Contact.
Where do I get MIDI files?
Three good sources for free, legally-shareable MIDI:
- BitMidi — community archive of pop, classical, and TV-theme MIDI.
- MIDIWorld — large back-catalogue across genres.
- VGMusic — video-game soundtracks. Often arranged for 4-channel chiptune which maps perfectly onto a quad's four motors.
Always check the copyright situation before publishing a tune you generated from copyrighted material.
I lost my decision in the cookie banner. How do I change it?
Click Cookie settings in the footer. The same banner appears and your previous choices are pre-filled in the customise screen.
I found a bug. What should I do?
Drop us a line. Include the MIDI file (or a link to it), the browser + OS you're using, and what you expected vs. what happened. The smaller the reproduction file, the faster we can fix it.
Still stuck?
If your question isn't answered here, send us a message via the contact form. We try to reply within a couple of working days.