Free · runs 100% in your browser · nothing uploaded

Make a notification sound you actually want to hear

Drag the dial through 30 sounds, shape it, download the file. Then let Chirpy play it for one app, channel, or person on your Mac.

I want something…
Soft chime
Soft two-note bell·Good for Your default for direct messagesdrag the dial · ← → to step
0.00s · 44.1 kHz · wav
Lower sits further from alarm territory
Short for frequent, long for rare
Warm reads calm, bright cuts through
A little tail says “that's over now”
space plays · R shuffles
Use it on your Mac

You made the sound. Chirpy makes your Mac play it.

Chirpy assigns any sound to any notification rule on macOS: an app, a channel, a person, or a keyword. Slack, Teams, Discord, Mail, Messages, Calendar, your build tool — anything that can post a notification. Upload this file once and #deploys can sound like this while everything else stays quiet.

Download ChirpySee how it works$19.99 once · macOS 13 or later

Which sound for what

All 30 presets, what each one sounds like, and where it earns its place. Click any row to hear it.

NameCharacterGood for
Soft chimeSoft two-note bellYour default for direct messages
HushBreathy low swellBusy channels you still want to track
SighFalling breathDismissals and “nothing to do here”
BreathFiltered air, no pitchBackground chatter you can ignore
PebbleTiny glass tapLow-priority pings, all day long
MarimbaRound wooden noteEveryday work notifications
WoodblockDry hollow knockTask done, item checked off
KalimbaPlucked metal tinePersonal apps: notes, journals, habits
ClavesSharp wooden clickQuick confirmations
Log drumDeep hollow thudNeeds a look, but not right now
Temple bellLong bronze decayCalendar events and reminders
Hand bellBright ringing bellThe one person you never miss
Music boxDelicate high bellFamily and personal messages
Glass tapFingernail on a glassSmall wins: payments, signups
TriangleThin lingering pingEnd of a timer or focus block
Water dropRising bloopSomething new arrived
Rain tickSingle crisp speckHigh-volume feeds
BubbleTwo rising blipsCasual social apps
LeafSoft dry rustleAmbient status changes
PurrLow warm rumbleQuiet hours: felt more than heard
CoinTwo-step arcade blipSales, signups, tips
LaserFast downward zapFun channels and game nights
Boot upSweep upwardA build or job starting
Power downSweep downwardFailures and disconnects
TypewriterClack with a dingWriting and drafting apps
Two-note upQuestion, risingSomething is waiting on you
Two-note downAnswer, fallingFinished, nothing to do
Harp glideFour-note run upwardMoments worth looking up for
DoorbellClassic ding-dongMentions and @here
Knock knockTwo dull knocksUrgent: on-call, incidents

What makes a ping stressful, and how to fix it

Four properties separate a calm notification sound from an anxious one. Each maps to a slider above.

It hits like a door slam

Default alerts go from silence to full volume in about a millisecond. Your startle reflex can't tell the difference between that and a dropped plate. Every preset here opens with a soft attack instead.

Fix: start in the Calm range

It sits where your ears are rawest

Human hearing is most sensitive between 2 and 4 kHz, so alarm designers put alerts exactly there. A message from a friend is not a smoke alarm.

Fix: drag Pitch down a few semitones

It's all edge

Hard, buzzy harmonics read as urgency even at low volume. Warmer tones carry the same information without the flinch.

Fix: keep Tone at warm or below

It stops dead

A short natural tail tells your brain the moment has passed. A hard cutoff feels mechanical and unresolved, like a sentence with no period.

Fix: a touch of Space is enough

We wrote a longer piece on this conditioned flinch: The anxious ping.

How this page works

  • Synthesis: raw Web Audio API, zero dependencies. Every sound is a JSON recipe of tone and noise layers, and the graph builder is a pure function of (BaseAudioContext, recipe, startTime).
  • Render: the recipe runs through an OfflineAudioContext into an AudioBuffer, faster than realtime. The player, the waveform and the download all read from that same buffer, so what you hear is byte for byte what you get.
  • File: WAV written straight from the buffer, no encoder shipped. When MP3 lands it will be wasm-media-encoders (MIT, about 66 KB gzipped).
  • Sharing: the preset plus the four slider values live in the URL hash. Nothing is stored on a server because there is no server.

Questions

Is this notification sound maker free?

Yes. No account, no watermark, no strings on the file. The sound you design is yours to use anywhere.

Why does it export WAV and not MP3?

WAV comes straight out of the render buffer with zero quality loss, and macOS plays it natively everywhere. MP3 would mean shipping an encoder to your browser. It may come later.

Can my Mac play this for one app, channel, or person?

Not on its own. macOS gives each app a single notification sound, and apps like Slack, Teams, Mail, and Messages don't split it per channel, sender, or keyword. That is the exact gap Chirpy fills, with rules like #deploys plays this, mail from Stripe plays that.

Which sound should I pick for what?

Calm and Nature sounds suit anything that arrives often, because a soft attack doesn't trigger your startle reflex. Bells carry further, so they fit calendar events and the one person you never want to miss. Signal sounds have two or more notes, which reads as a message and works for mentions or incidents. Retro sounds are unmistakable but loud, so keep them for channels you actually enjoy.

Do you upload or store my sounds?

No. Synthesis, rendering, and the WAV file all happen inside your browser. The share link encodes the recipe in the URL itself, so sharing a sound is sharing a few numbers.