Advertisement
Retro & 8-Bit Sounds

How to Make Retro Menu Blip Sounds for Arcade-Style Games

A practical guide to arcade-style menu blips that goes beyond "use a square wave," covering the real arcade sound chips, the duty cycle that produces the nasal character, the specific menu-navigation frequencies that arcade cabinets used, and why modern retro blips sound too clean.

An arcade cabinet in 1985 was in a room with fifty other cabinets, each one playing its own attract mode at full volume. The player standing at the control panel was looking at a screen two feet away, with the noise of the room pressing in from every side. A menu blip in that environment had to do something that no modern game needs: it had to cut through a wall of continuous sound, reach the player's ear in under 50 milliseconds, and be gone before the next input. The constraints produced a specific sound that modern games copy but rarely understand.

A retro menu blip in a modern game is often a clean square wave with a short envelope. It is technically correct and it sounds wrong, because it is missing the characteristics that the arcade environment produced. The arcade blip was not designed in isolation; it was designed to survive a noisy room, and the survival requirements shaped the sound in ways that are audible even when the sound is played in a quiet environment.

This article is about those survival requirements and the sounds they produced. The 8-bit sound design guide covers the general waveforms and envelopes of the era; this article is specifically about the arcade menu blip, which has a narrower set of constraints than the console sounds that most retro guides describe.

Why does a real arcade menu blip sound different from a modern retro game's menu blip?

The difference is not the waveform. Both use a square or pulse wave. The difference is the combination of three characteristics that arcade hardware and arcade environments produced together.

The duty cycle. A modern retro game's blip is often a 50 percent duty cycle square wave, which is the default in most synthesizers and generators. Real arcade hardware rarely used 50 percent. The pulse channels on the era's sound chips offered a small set of duty cycles, and the arcade menu blip almost always used a narrow one. The 12.5 percent duty cycle was the most common, because it produced a thin, nasal tone that carried through the arcade's ambient noise better than the fuller 50 percent tone.

The absence of a filter. Modern games often apply a low-pass filter to retro sounds to soften the harshness. The arcade hardware did not have a filter on the output. The raw square wave went straight to the amplifier and the speaker. The harshness that a modern filter removes was part of what made the sound cut through the room.

The duration. A modern retro blip is often 60 to 100 milliseconds. The arcade menu blip was typically 15 to 30 milliseconds, and sometimes shorter. The extreme brevity was partly a hardware constraint (short envelopes were simpler to produce) and partly a design choice (the player needed to hear the feedback and move on before the next input).

The three together produce the characteristic arcade sound: a thin, harsh, extremely short pulse that reads as a machine acknowledging input. A modern blip with a 50 percent duty cycle, a gentle filter, and a 80 millisecond duration reads as a warm retro homage. The difference is audible even when both are played through the same speakers.

What did the actual arcade sound chips produce, and why does that matter?

The sound characteristics of arcade hardware were determined by the specific chips that the cabinets used. The three chips that dominated the 1980s arcade era produced slightly different menu blips, and knowing which one the target aesthetic is imitating helps narrow the parameter choices.

Chip Era Blip character
AY-3-8910 1978-1985 Harsh, narrow pulse, very thin
SN76489 1979-1987 Softer, wider duty options, less harsh
YM2151 (OPM) 1984-1993 FM-based, metallic, more complex blip
YM3812 (OPL2) 1985-1995 FM-based, warmer than OPM, more body

The AY-3-8910 was the chip that defined the early arcade menu sound. It had three tone channels, each producing a square wave, and the duty cycle was not adjustable — it was fixed at 50 percent internally, but the chip's output circuit produced a waveform that read as thinner than a perfect square wave because of the way the internal counter worked. The result is the characteristic harsh arcade blip that most players associate with the era.

The SN76489 was the chip used in the Sega Master System and in many arcade cabinets. It offered three duty cycles (12.5, 25, and 50 percent) and produced a sound that was softer than the AY-3-8910. A menu blip on the SN76489 is the "nicer" arcade sound, and it is what most modern retro games are actually imitating when they think they are imitating arcade hardware.

The FM chips (YM2151 and YM3812) came later and produced sounds that were not square waves at all. A menu blip on an FM chip was a short frequency-modulated tone with a metallic character that no square wave can reproduce. If the target aesthetic is 1988 or later, the blip should be FM-based rather than square-based. The FM synthesis guide covers the FM techniques that apply here.

The practical choice for most projects is the SN76489 character, because it is the most flexible and the most familiar. A 25 percent duty cycle square wave with a very short envelope produces a blip that reads as arcade to players who grew up with the SN76489 and as retro to players who did not.

Which frequencies did arcade menus actually use?

The pitch range for arcade menu blips was narrower than the range used for gameplay effects, and the specific values depended on what the blip was communicating. The menu system needed to distinguish between four types of feedback, and the frequency separation between them was what allowed the player to identify the feedback by sound alone.

Menu action Frequency Waveform Duration
Cursor move 1600 to 2000 Hz 25% pulse 15 to 20 ms
Confirm / select 1200 to 1600 Hz 25% pulse 30 to 40 ms
Cancel / back 900 to 1100 Hz, descending 25% pulse 50 to 70 ms
Error / invalid 600 Hz with rapid pulse 25% pulse 80 to 120 ms

The cursor move blip is the shortest and the highest, because it plays most frequently and needs to stay out of the way. A player scrolling through a menu of ten items hears ten of these in quick succession, and if the blip is longer than 20 milliseconds or lower than 1600 Hz, the ten blips blur into a continuous tone.

The confirm blip is lower than the cursor move and longer, which is the opposite of what a modern UI designer might expect. The arcade logic was that the confirm was a more significant event, and the lower pitch and longer duration gave it more weight. The move was frequent and light; the confirm was occasional and deliberate.

The cancel blip is the first one with a pitch change. The descending pitch reads as "going back" in a way that a static tone does not. The descent was usually a single glide of around 200 Hz over the duration of the blip, which is small enough to be subtle but large enough to register as a downward motion.

The error blip is the one that most modern retro games get wrong. It was not a single low tone; it was a rapid alternating pulse between two frequencies, typically 600 and 900 Hz, repeating three to five times. The alternating pattern is what made the error sound different from every other menu blip, and it is what the player learned to recognize as "this action is not allowed." A single 600 Hz tone reads as a low confirm rather than an error.

How does the square wave duty cycle change the character of a menu blip?

The duty cycle is the parameter that most modern retro blip generators ignore, and it is the parameter that produces the arcade character most directly. A square wave with a 50 percent duty cycle spends equal time at its high and low values. A pulse wave with a 25 percent duty cycle spends 25 percent of the time at the high value and 75 percent at the low value.

The change in duty cycle changes the harmonic content of the wave. A 50 percent square wave contains only odd harmonics (3rd, 5th, 7th, and so on), which gives it a hollow but relatively full character. A 25 percent pulse wave contains both odd and even harmonics, with the even harmonics stronger than in the 50 percent case. The result is a waveform that has more high-frequency content and less low-frequency body, which the ear reads as thinner and more nasal.

Duty cycle Character Arcade authenticity
50% Full, hollow, neutral Low — too soft for most arcade eras
25% Thin, nasal, bright High — the standard arcade menu sound
12.5% Very thin, buzzy High — used on the harsher early chips
6.25% Extremely thin, almost noise Low — rarely used for menus, more for effects

The 25 percent duty cycle is the safest choice for a menu blip, because it produces the arcade character without being so thin that it becomes fatiguing over repeated playbacks. The 12.5 percent is appropriate for a specific imitative aesthetic but is harder to listen to, which is why most arcade cabinets used it for effects rather than for the most frequently heard menu feedback. The 6.25 percent is almost never appropriate for a menu blip, because at that duty cycle the fundamental frequency starts to weaken and the sound becomes closer to noise than to tone.

The duty cycle also interacts with the frequency. A 25 percent pulse at 1800 Hz has more high-frequency content than a 50 percent square at the same frequency, which means the 25 percent version will be brighter and more piercing. A designer who switches from 50 to 25 percent duty without adjusting the frequency will find that the blip is now too bright, and the fix is to lower the frequency by 100 to 200 Hz to compensate.

How do you generate a convincing arcade blip with modern tools?

A browser-based generator can produce the arcade character if the generator exposes the duty cycle parameter. Most do, though the parameter is sometimes labeled "pulse width" or "symmetry." The settings that produce the arcade menu blip are consistent across generators that expose them.

The four parameters that produce the arcade character:

  • Waveform: pulse or square, with the duty cycle set to 25 percent.
  • Frequency: 1600 to 2000 Hz for cursor move, 1200 to 1600 Hz for confirm.
  • Duration: 15 to 20 milliseconds for cursor move, 30 to 40 milliseconds for confirm.
  • Envelope: instant attack, instant release. No fade-in, no fade-out, no sustain. The arcade blip starts and stops at full amplitude.

The envelope is the parameter that most modern tools get wrong, because the tools are designed to avoid the click that an instant attack produces. The arcade blip had the click. The click is part of the sound. A designer who uses an envelope with a 3 millisecond attack will produce a blip that is technically better but sounds slightly wrong, because the click that the arcade player heard is missing.

The absence of a fade-out is also important. A modern blip often ends with a 2 to 5 millisecond fade to prevent the click at the end. The arcade blip ended at full amplitude, and the resulting click at the end is what makes the blip feel abrupt and mechanical. A blip with a fade-out feels softer and more polished, which is exactly the wrong character.

The tradeoff is that the instant attack and release produce a sharper, more fatiguing sound. This is deliberate. The arcade blip was designed for a player who would hear it dozens of times in a session and needed to distinguish each one as a distinct event. The sharp edges are what made the distinction possible. A smoother blip blurs into the previous one, and the player loses the sense of a distinct menu item being selected.

The JSFXR tutorial covers the specific parameter values for JSFXR, which exposes the duty cycle and the instant envelope that produce the arcade character. A designer using a different generator should look for the equivalent parameters, which are usually present even if they are labeled differently.

Why do arcade games play menu blips louder than other genres?

The volume difference is real and it is not a mistake. Arcade menu blips were played at levels that would be unacceptable in a modern game, because the environment they were played in was completely different.

The arcade environment had three properties that required higher volume. The first was ambient noise: fifty cabinets playing attract modes plus the voices of the players in the room created a background noise level that could reach 80 to 90 dB. A blip at a modern game's typical -20 dB level would be inaudible against that floor. The second was speaker quality: arcade cabinet speakers were small, mounted behind a grille, and often operating at their limit. A quieter signal would have been lost in the speaker's distortion. The third was distance: the player stood at the control panel, but the speakers were often mounted lower in the cabinet, which meant the sound had to travel a few feet and compete with the sounds bouncing off the cabinet's interior.

The result was that arcade menu blips were played at levels roughly 6 to 10 dB higher than a modern game would use for equivalent feedback. A modern menu blip at -18 dB peak has an arcade equivalent at around -10 to -12 dB peak, and the higher level is part of what makes the arcade sound feel aggressive.

A modern game imitating the arcade aesthetic has to make a choice. Playing the blip at arcade volume produces the correct feel but risks fatiguing the player, because modern players use headphones or quiet rooms where the arcade level is too loud. Playing the blip at modern volume preserves the arcade character but loses the aggressiveness. The compromise that works for most games is to play the blip at around -14 to -16 dB peak, which is louder than a typical modern UI sound but quieter than a real arcade cabinet.

The audio mix hierarchy guide covers the routing structure that makes this adjustable without rebuilding the mix. The arcade menu bus should be a separate channel from the rest of the UI, so that the player can adjust its volume independently if the arcade character becomes fatiguing.

What happens when you use arcade blips in a game with modern audio?

The arcade blip was designed for a specific context, and moving it into a modern game context creates three conflicts that the designer has to resolve.

The frequency conflict. The arcade blip sits in the 1200 to 2000 Hz range, which is the same range that modern music often occupies. In an arcade cabinet, the music was produced by the same chip and occupied different frequency ranges. In a modern game, the music might be an orchestral score with strong mid-range content, which will mask the blip. The blip frequency tuning guide covers the broader genre-specific considerations; for arcade-style games with modern music, the blip may need to move up to 2000 to 2400 Hz to stay audible.

The volume conflict. The arcade volume that produces the correct feel is louder than most modern players expect from a menu sound. A game that plays the blip at arcade volume will be flagged in reviews for being too loud, even if the volume is historically accurate. The compromise is to play the blip at a level that preserves the arcade character without exceeding what modern players consider comfortable, which is usually around -14 dB peak.

The aesthetic conflict. An arcade blip in a modern game's menu is an intentional aesthetic choice, not a default. A game that uses pixel art and chiptune music can use the arcade blip without any incongruity. A game with high-resolution art and an orchestral score that uses the same blip will feel like it has a sound effect from a different game. The retro game sound guide covers the broader question of how retro sounds fit into modern games.

The arcade blip is not a general-purpose menu sound. It is a specific sound with a specific history and a specific set of characteristics. A designer who wants to use it has to commit to the aesthetic that it belongs to, and to the compromises that the aesthetic requires. A designer who uses it as a default because it is the easiest retro blip to generate will produce a game that feels incoherent, because the blip is doing work that the rest of the audio does not support.

The correct use of the arcade blip is in games that are deliberately imitating the arcade era. The menu system, the font, the resolution, the music, and the blip should all point in the same direction. A player who is looking at a pixel art menu with a chiptune soundtrack expects an arcade blip and will hear the absence if it is missing. A player who is looking at a high-resolution menu with an orchestral soundtrack will hear the arcade blip as an error. The blip is not the element that defines the aesthetic; it is the element that confirms an aesthetic that the rest of the game has already established.

Generate Arcade-Style Menu Blips

Open the SfxMaker blip generator and create four blips for an arcade menu: a cursor move at 1800 Hz with a 15 ms duration, a confirm at 1400 Hz with a 35 ms duration, a cancel at 1000 Hz with a descending pitch, and an error at 600 Hz with a rapid pulse. Set the duty cycle to 25 percent and the envelope to instant attack and release for all four.

Open Blip Sound Generator →
Advertisement