Advertisement
UI & Interface Sounds

How to Mix Dialogue Blips with Voice Acting (When to Use Both, and How to Balance Them)

A practical guide to combining dialogue blips with voice acting, covering the three-option architecture that avoids the conflict, the specific dB levels that keep blips as texture rather than competition, and the ducking parameters that make the voice primary.

The instinct when a game has both dialogue blips and voice acting is to treat them as two layers that need to be balanced. That framing is wrong, and it leads to a mix where neither layer wins. The voice and the blips are not two instruments playing the same part; they are two different signals that are trying to do the same job.

A dialogue blip exists to give text a sense of voice when no voice is present. Voice acting exists to give the line an actual voice. When both are present at full strength, the player receives two competing signals that are both trying to be the voice, and the result is not richer; it is muddier. The two sounds are not complementary layers in the way that a whoosh and an impact are complementary. They are alternatives.

This is why the mixing problem is not a balance problem. It is a role problem. The developer has to decide what role the blips play on a voiced line, and the mix follows from that decision. The typewriter blip guide and the comparison of Animalese, Undertale and Balatro cover the design of the blips themselves; this article is about what happens when a voice track enters the same dialogue system.

Why does the three-option architecture work better than a single mix?

The most robust solution to the voice-blip conflict is not to find a volume that works for both. It is to give the player three explicit options: voice acting on, dialogue blips on (synthesized voice), and voice off. This is the compromise that players themselves describe as the best solution in community discussions, because it respects the fact that the two signals serve different audiences.

Option Who it serves What plays
Voice acting Players who prefer fully voiced dialogue Recorded voice track, no blips
Dialogue blips Players who prefer the retro/synthesized voice Blips only, voice muted
Off Players who want to read at their own pace in silence Neither voice nor blips

The three-option architecture is not a technical trick. It is a recognition that “voice” in a dialogue system is not a single thing. A player who grew up with pixel-art games may find synthesized blips more appropriate to the aesthetic than recorded voice acting, even when the voice acting is good. A player who reads quickly may want neither, because both impose a pacing that the player did not choose.

A game that implements three options does not need to solve the mixing problem at all, because the player is choosing which signal to hear. The developer's job is to make each option sound good on its own, not to make the two coexist. The mobile app blip guide covers the settings-menu side of this architecture; the dialogue system side is a single boolean that the typewriter callback checks before deciding whether to play a blip or leave the voice track alone.

What if the game needs both signals at the same time?

Some games do play both, and some of them do it well. The games that succeed are the ones where the blips have been demoted from “the voice” to “a texture under the voice.” The blips are no longer trying to communicate speech; they are communicating the rhythm of the text reveal, while the voice communicates the content.

The distinction is audible. A blip set that is playing the role of “voice” has a pitch, a rhythm, and a character that the player is supposed to read as the speaker. A blip set that is playing the role of “texture” is quieter, more uniform, and less varied. It sits underneath the voice and fills the gaps between syllables, rather than trying to be the syllables.

Blip role Relative level Pitch variation Character mapping
Voice substitute Foreground Wide (±5%) Distinct pitch per character
Texture under voice −12 to −18 dB below voice Narrow (±1.5%) Same pitch for all characters
Disabled Silent — —

The level difference is the first signal that the blips have been demoted. A texture blip sits 12 to 18 dB below the voice, which means it is audible as a presence but not as a competing signal. For comparison, a voice track in a game mix typically peaks around −6 to −3 dBFS, while ambient and UI layers sit 8 to 12 dB lower. The blip, as a texture, belongs in the lower range of that ambient layer, not in the dialogue range.

The pitch variation is the second signal. A voice-substitute blip set uses a wide pitch variation to give each character a distinct voice. A texture blip set uses a narrow variation, because the player is not supposed to read the blips as a character. The blips are a rhythmic texture, not a voice, and the narrow variation keeps them from drawing attention to themselves as characters.

The character mapping is the third signal. A texture blip set does not need per-character pitches, because the voice track already identifies the character. Using the same blip for every character in a voiced scene is a feature, not a limitation; it keeps the texture uniform and lets the voice carry the identity.

How does ducking make the voice primary without killing the blips?

When both signals are present, the blips need to duck under the voice, and the ducking needs to be gentle enough that the blips do not disappear entirely. The blips are texture, and texture that vanishes completely is worse than texture that is quiet.

The ducking parameters that work for a voice-over-blip relationship are different from the parameters for music-under-voice. Music can duck by 6 to 12 dB and the listener still perceives it as music. Blips are much quieter and much shorter, so a 6 to 12 dB duck would make them inaudible. The duck for blips needs to be shallower.

Parameter Music under voice (typical) Blips under voice
Gain reduction 6–12 dB 3–5 dB
Attack time 30–80 ms 10–15 ms
Release time 300–500 ms 70–80 ms
Ratio 3:1–4:1 2:1–3:1

The 3 to 5 dB range is the one that audio engineers describe as the effective range for ducking a bed under a voice: “more than 5 dB becomes too noticeable... Less than 3 dB is not really effective”. The same range applies to blips, because the perceptual problem is the same: the listener needs to hear the voice clearly, but the bed needs to remain present.

The attack time is shorter for blips than for music because the voice onset is faster. A blip that is still at full level when the voice begins will compete with the first syllable, which is exactly the syllable the player needs to hear. A 10 to 15 ms attack catches the voice onset before the blip can interfere.

The release time is shorter for the same reason in reverse. A music bed that takes 500 ms to return after the voice stops is fine, because the music is continuous. A blip that takes 500 ms to return after the voice stops is effectively gone, because the blip is only 40 to 60 ms long. The release needs to be fast enough that the next blip plays at full level, which means 70 to 80 ms.

The ratio is gentler for blips because the gain reduction is already shallow. A 3:1 ratio on a 4 dB reduction is enough to make the voice primary without making the blips pump. A higher ratio on a shallow reduction produces the same result but with less headroom for the blips to breathe.

The ducking and sidechain compression guide covers the general implementation; the blip-specific parameters above are the ones that work when the bed is a short, quiet texture rather than a continuous music track.

Why does frequency separation matter more than level for short sounds?

A blip is short enough that the ear does not have time to separate it from the voice based on level alone. The two sounds overlap in time, and the ear resolves them as a single event if they occupy the same frequency range. The separation that makes the blip readable as a separate layer is frequency, not volume.

The voice occupies the mid-range, typically 200 Hz to 4 kHz, with the fundamental around 100 to 300 Hz and the intelligibility-critical consonants around 2 to 5 kHz. A blip that sits in the same range will blur into the voice, regardless of how it is ducked. A blip that sits above or below the voice range will remain distinct even at a higher level.

Blip placement Frequency Result
Above voice 4–6 kHz Distinct, but can be piercing on small speakers
In voice range 1–3 kHz Blurs into the voice, requires deep ducking
Below voice 300–500 Hz Distinct, reads as texture rather than voice

The below-voice placement is the one that works best for texture blips. A blip at 300 to 500 Hz sits below the voice's fundamental, which means it does not compete with the intelligibility range. The blip is heard as a low rhythmic presence rather than as a competing voice. The frequency tuning guide covers the genre-specific ranges; the below-voice range is the one that works for texture blips in a voiced scene.

The above-voice placement is the alternative for projects that want the blips to remain crisp and distinct. A blip at 4 to 6 kHz is above the voice's consonant range and remains audible even when the voice is at full level. The tradeoff is that high-frequency blips become fatiguing faster than low-frequency ones, and they can be piercing on laptop speakers and phones. The mobile blip guide covers the speaker limitations that make above-voice placement risky on handheld devices.

How should the dialogue system decide which signal to play?

The decision logic is simpler than the mixing discussion suggests. The dialogue system knows, for each line, whether a voice file exists. That boolean is the primary input. If the line is voiced and the player has voice acting enabled, the voice plays and the blips are either disabled or ducked according to the developer's choice. If the line is not voiced, the blips play at full level, because they are the only voice the line has.

-- Pseudocode for the dialogue callback
function on_character_revealed(char)
    if not is_alphanumeric(char) then return end

    if line.has_voice and player.voice_enabled then
        -- Voice is primary; blips are texture or disabled
        if settings.blip_mode == "texture" then
            play_blip(ducked = true)
        end
    else
        -- No voice; blips are the voice
        play_blip(ducked = false)
    end
end

The three-option architecture fits naturally into this logic. The player's settings determine whether voice_enabled and blip_mode are true, and the dialogue system does not need to know anything about the mix. The mix follows from the settings, not from the other way around.

The edge case is partial voice acting, where some lines are voiced and others are not. The logic above handles this correctly: a voiced line plays the voice, an unvoiced line plays the blips. The player hears the voice on the important lines and the blips on the rest, which is the intended contrast. The visual novel blip guide covers the pacing implications of this contrast; the dialogue system side is the boolean.

What does a working voice-and-blip mix sound like?

The test for a combined voice-and-blip mix is not whether both sounds are audible. It is whether the player can forget that both are playing. A mix that works is one where the voice is clearly the primary signal, the blips are present as a texture but not as a competitor, and the transition between voiced and unvoiced lines feels like a change in the character of the voice rather than a change in the mix.

The first test is the intelligibility test. Play a voiced line with the blips at the intended level and ask whether every word is clear. If any word is masked by a blip, the blips are too loud or too close in frequency to the voice. The fix is either to lower the blips or to move them out of the voice's frequency range.

The second test is the presence test. Mute the blips and play the same line. Does the line feel like it is missing something? If the answer is yes, the blips are contributing a texture that the voice alone does not provide, which means the texture role is working. If the answer is no, the blips are not contributing anything and should be disabled rather than ducked.

The third test is the transition test. Play a scene that alternates between voiced and unvoiced lines. Does the transition feel natural, or does it feel like the mix is changing? A natural transition is one where the player does not notice the blips starting or stopping; the character's voice simply changes from recorded to synthesized. A noticeable transition means the blips and the voice are not in the same family, and the blip parameters need to be adjusted to match the voice's character.

The fourth test is the settings test. Toggle through the three options (voice, blips, off) and play the same line three times. Each option should sound complete on its own, without the other two. If the “blips only” option sounds thin or unfinished, the blip set was designed as a texture rather than as a voice substitute, and the two roles have not been separated clearly enough. The TyranoBuilder guide and the Ren'Py guide cover the per-engine implementation of the three-option architecture; the design principle is the same in every engine.

The voice-and-blip mix is not a balance between two equal signals. It is a hierarchy where the voice is primary and the blips are either a texture underneath it or a substitute for it when it is absent. The mix that works is the one that makes that hierarchy audible without making the hierarchy feel like a switch.

Create a Texture Blip Set for Voiced Scenes

Open the SfxMaker blip generator and create a blip set at 300–500 Hz, which is below the voice's intelligibility range. Keep the pitch variation narrow and use a soft waveform. These blips are designed to sit under a voice track, not to compete with it.

Open Blip Sound Generator →
Advertisement