Sound packs
15 keyboard sound packs for Mac, from real recordings
Clicky, tactile, linear, Topre, buckling springs, a Rainy 75, a MacBook and two typewriters. Every pack is cut from a real CC0 recording on Freesound (the typewriters add a second one for the bell on Return), credited below, and you can add packs of your own.
Updated

Short answer: Keyslam, the keyboard sound app for Mac, comes with 15 sound packs, each cut from a real CC0 recording on Freesound: MX Blue, MX Brown, MX Red, MX Black, Gateron Red, Topre, Leopold, WhiteFox, Rainy 75, Unicomp, Model F, Vintage Technics, Laptop, Selectric and Olivetti. Every pack's regular keys have four strength bands of real strikes; 13 of the 15 have separate takes for Space, Return and Delete, and 13 have key-up sounds. You can add your own with a folder of audio files and a pack.json.
Every pack and where it came from
| Pack | Type | Recorded on | Recorded by | Takes | Hear it |
|---|---|---|---|---|---|
| Clicky | Cherry keyboard, model not named | EricsSoundschmiede | 46 | ||
| Tactile | Board not named | majod | 42 | ||
| Linear | Corsair K95 | handygaber | 46 | ||
| Linear | Leopold FC980M PD | ujonathan | 43 | ||
| Linear | GMMK TKL | IRF1010N | 42 | ||
| Electro-capacitive | HHKB Professional Hybrid | grcekh | 30 | ||
| Tactile | Leopold FC660M | stu556 | 43 | ||
| Tactile | WhiteFox (Hako Violet) | grcekh | 45 | ||
| Mechanical | Rainy 75 (switches not stated) | Techrul | 42 | ||
| Buckling spring | Unicomp buckling-spring board (model not named) | SamsterBirdies | 46 | ||
| Buckling spring | IBM Model F XT, early 1980s | Fractal_ | 39 | ||
| Linear, modded | Technics-branded board, Gateron Yellows | zrrion | 42 | ||
| Butterfly | 2018 MacBook Pro | khenshom | 39 | ||
| Typewriter | IBM Correcting Selectric II | secretmojo | 20 | ||
| Typewriter | Olivetti Lettera 22 | keithpeter | 25 |
Takes are the single keystrokes in each pack, counted from the app's own pack files. Each pack has its own page with the recording details, measurements and a sound test.
Pick by sound
- Clicky: MX Blue, a crisp click on every press.
- Buckling springs: Unicomp, a big, springy click-clack from a Model M-style board; Model F, a loud, deep clack from capacitive buckling springs.
- Tactile: MX Brown, a soft bump and a muted clack; Leopold, close-miked, crisp and detailed; WhiteFox, punchy and even from soft to hard.
- Linear: MX Red, smooth, light and quick; MX Black, heavy, smooth and full-bodied; Gateron Red, dark and smooth, with a hollow note under each key; Vintage Technics, lubed Gateron Yellows, short and muted.
- Topre (electro-capacitive): Topre, a deep, rounded thock.
- Mechanical, switches not named: Rainy 75, a dark, even, creamy thock from an aluminum 75% board.
- Laptop: Laptop, a short, flat tap.
- Typewriters: Selectric, a steady electric strike, with a bell and carriage return on Return; Olivetti, snappy manual typebars, with a ding on Return.
Not sure? Play them all with the same phrase in the side-by-side keyboard sound test.
How the packs are made
Nobody typed softly, then hard, then as hard as they could for these packs. Each one starts as a normal typing session, and the four strengths are sorted out of it afterwards. Keyslam's pack builder does this for every pack:
- Find every keystroke. It looks for sharp rises in a high-passed energy envelope, then pairs each press with the quieter key-up that follows 30–250 ms later.
- Set aside the wide keys. The darkest, longest-ringing presses of decent strength, up to about 14% of them, become Space, Return and Delete. Typewriters skip this step.
- Throw out the messy ones. Clipped hits, hits that start inside the previous key's ring and takes with a second keystroke in the tail are dropped.
- Sort by natural loudness. Soft is the 8th–30th percentile of strikes, medium the 38th–62nd, hard the 70th–88th and slam the hardest ~8%. The strikes between bands aren't used, which keeps the bands distinct.
- Pick the takes. Up to six per band for regular keys, four for wide keys and six key-ups, spread across each band. By default takes are capped at 230 ms (380 ms for wide keys, 120 ms for key-ups) and faded out.
- Level them. Each take moves 70% of the way, in dB, toward its band's target: soft 0.55×, medium 1×, hard 1.45× and slam 2× the medium level. Then the whole pack is set so a standard medium-strength typing passage measures −28 LUFS.
So the bands are real strikes from one recording, kept in order of their natural loudness, then pulled toward four set levels. The typewriters add a second recording for the bell on Return. In the app, each key keeps its own take and a fixed pitch offset of up to about 1.2%, so fast typing doesn't sound like one sample on repeat.
Credits: the people who recorded these keyboards
Every source recording is CC0 1.0 (public domain) on Freesound. CC0 doesn't require credit, but these recordings are why Keyslam exists, so here they are.
- MX Blue: “Mechanical Keyboard 'Cherry Blue Switches'” by EricsSoundschmiede · CC0 1.0
- MX Brown: “Mechanical Keyboard Cherry MX Brown” by majod · CC0 1.0
- MX Red: “Keyboard clicking typing Cherry Red Mechanical” by handygaber · CC0 1.0
- MX Black: “leopold fc980m pd cherry mx black.flac” by ujonathan · CC0 1.0
- Gateron Red: “Typing on a mechanical keyboard” by IRF1010N · CC0 1.0
- Topre: “Keyboard Typing 2 (HHKB, Topre)” by grcekh · CC0 1.0
- Leopold: “Mechanical Keyboard Typing (Treble Version)” by stu556 · CC0 1.0
- WhiteFox: “Keyboard Typing 10 (WhiteFox, Mechanical)” by grcekh · CC0 1.0
- Rainy 75: “Typing on a rainy 75” by Techrul · CC0 1.0
- Unicomp: “Typing on a keyboard” by SamsterBirdies · CC0 1.0
- Model F: “IBM Model F keyboard typing” by Fractal_ · CC0 1.0
- Vintage Technics: “Keyboard typing sounds: Unidentified Technics keyboard” by zrrion · CC0 1.0
- Laptop: “Computer keyboard typing and keystrokes - Apple MacBook Pro 2018” by khenshom · CC0 1.0
- Selectric: “Typewriter, IBM Selectric II” by secretmojo · CC0 1.0
- Selectric: “Typewriter bell & carriage reset” by knufds · CC0 1.0
- Olivetti: “typewriter-olivetti-lettra-22.wav” by keithpeter · CC0 1.0
- Olivetti: “Typewriter ding_near_mono.wav” by _stubb · CC0 1.0
Want the originals? Free keyboard and typewriter sound effects lists each recording with its length and format.
Make your own pack
A Keyslam pack is a folder of audio files plus a pack.json that says which file plays for which key and strength. Put the folder in ~/Library/Application Support/Keyslam/Packs (choose Packs Folder… at the bottom of the Keyslam menu to open it), then open the menu again. Keyslam rescans the folder every time the menu opens.
- Start with recordings you're allowed to use. Your own keyboard, or CC0 recordings from Freesound.
- Cut one keystroke per file. Start each file just before the strike: the sound starts when the key goes down, so leading silence sounds like lag.
- Sort the strikes into soft, medium, hard and slam. The built-in packs use up to six takes per band for regular keys and up to four for Space, Return and Delete. One band is enough to start.
- Write pack.json next to the files, drop the folder into Packs and pick your pack from the menu.
{
"formatVersion": 1,
"id": "my-board",
"name": "My Board",
"kind": "Tactile",
"summary": "Hand-cut takes from my own keyboard.",
"author": "Your name",
"license": "CC0 1.0",
"groups": {
"alpha": {
"down": {
"soft": ["key-soft-1.wav", "key-soft-2.wav"],
"medium": ["key-medium-1.wav", "key-medium-2.wav"],
"hard": ["key-hard-1.wav", "key-hard-2.wav"],
"slam": ["key-slam-1.wav"]
},
"up": ["up-1.wav", "up-2.wav"]
},
"space": {
"down": { "medium": ["space-1.wav"], "hard": ["space-2.wav"] }
}
}
}
Fields
| Field | Required | What it does |
|---|---|---|
formatVersion | Yes | Use 1. |
id | Yes | A unique id. A pack you add with the same id as a built-in pack replaces it. |
name | Yes | The name in the menu. |
kind | Yes | The short label under the name, such as “Tactile”. |
summary | No | The tooltip when you hover the pack in the menu. |
author, license | No | Credit lines kept with the pack. The built-in packs name the Freesound recordist and link the CC0 source here. |
groups | Yes | Key groups, each with “down” (bands to files) and an optional “up” list of key-up files. |
Key groups
| Group | Keys |
|---|---|
alpha | Letters, numbers, punctuation, arrows, function keys and every key not listed below |
space | Space bar |
enter | Return and keypad Enter |
backspace | Delete and Forward Delete |
modifier | Shift, Control, Option, Command, Caps Lock, Tab and Fn |
Rules worth knowing
- Fallbacks. A group you leave out uses alpha. A band you leave out uses the nearest band you did provide, scaled 1.6× per step (about 4 dB), so soft still sounds softer. A group without “up” uses alpha's key-up sounds; if alpha has none either, those keys are silent on release.
- Files. WAV, AIFF or FLAC work best, and anything Core Audio can read loads, including CAF, M4A and MP3. Mono or stereo, any sample rate: Keyslam converts to 48 kHz stereo when it loads the pack.
- Paths. File names are relative to the pack folder. Subfolders are fine; names containing “..” or starting with “/” are rejected.
- Size. A pack can decode to at most 96 MB, about four minutes of 48 kHz stereo audio. Single keystrokes are tiny, so this only matters if you include long files.
- Consistent keys. Each key always picks the same position in a band's list, so bands with the same number of takes keep every key's character steady as strength changes.
- Loudness. Keyslam plays your files at the level you give them. To switch between your pack and the built-in ones without a jump, aim for about the same level as the built-in medium takes.
- Mechvibes packs (a config.json plus audio) don't load directly. Convert them by exporting each key's sound to its own file and listing the files in a pack.json.
Sound pack questions
Can I import Mechvibes sound packs?
Not directly. Keyslam doesn't read Mechvibes' config.json. To bring a pack over, export each key's sound to its own file, list the files in a pack.json and check the pack's license first. For a wider look at the two apps, see how Keyslam compares with Mechvibes.
Where is the Keyslam Packs folder?
In ~/Library/Application Support/Keyslam/Packs. Choose Packs Folder… at the bottom of the menu to open it; Keyslam creates it if needed and rescans it each time you open the menu.
Why do all the built-in packs play at the same volume?
Each one is leveled so the same medium-strength typing passage, played through the real engine, measures −28 LUFS. Switching packs changes the tone, not the loudness. Packs you add play at the level of your files.
Can I share a pack I made?
Only if you have the rights to the recordings. CC0 recordings from Freesound are a safe start; put the recordist and source in the pack's author and license fields, the way the built-in packs do.
Keep exploring
Hear any of them on every keystroke.
$3.99 once after a 7-day free trial, every current and future pack included.