Show HN: Unclack – a macOS app that mutes your microphone while you type
unclack.app
unclack.app
“This project emulates the sound of my old faithful IBM Model-M space saver bucklespring keyboard while typing on my notebook, mainly for the purpose of annoying the [heck] out of my coworkers.
Bucklespring runs as a background process and plays back the sound of each key pressed and released on your keyboard, just as if you were using an IBM Model-M. The sound of each key has carefully been sampled, and is played back while simulating the proper distance and direction for a realistic 3D sound palette of pure nostalgic bliss” — https://github.com/zevv/bucklespring
though I do use a mechanical keyboard at home
[0] https://github.com/zevv/bucklespring/blob/master/main.c#L81
the human HDD activity light
> Unclack is the small but mighty Mac utility that mutes your keyboard while you type.
This should say "mutes your _microphone_ while you type". You can't mute a keyboard
So no, the text is correct. But obviously it's wrong. It doesn't ONLY mute the keyboard, it mutes everything for the person typing. The keyboard, the person, the squeaking chair.
edit: in fact I would go so far as to say that the majority of English speakers, at least here in America, would prefer saying "mute the mic" instead "put the mic on mute" (I've never heard anyone say the latter in actual conversation, to be honest).
Most UIs show a microphone, that you can click on to disable. A circle with a slash through it will appear on top of the picture of the microphone. This is referred to as "muting."
This should be enough to see why it is called "muting your microphone." While you could say "disable your microphone," this can lead to confusion, such as thinking that you are talking about more permanently disabling it, such as you do in your computer settings.
The most important thing about language is that it is understood. "Mute your microphone" is going to be understood.
If it said ‘mutes your microphone when you type’ the use case isn’t immediately clear unless you add ‘so people can’t hear your keyboard’. Adding the rest makes it clear but less concise.
Each to their own, but I think this is fine for marketing copy. It’s clear what it means, and redbull doesn’t actually give you wings.
keep in mind mute does not only mean "to silence" (verb form). It's also "deaden, muffle, or soften the sound of."
So, practically speaking, there are very few physical objects that produce sound that can't be muted.
I'd start by identifying the presence of speech—when the user isn't currently speaking, trivial muting is all that's needed. Then the only challenge would be to squelch keyboard noise that overlaps speech. If keyboard input monitoring has enough temporal precision, even the most trivial volume dip (and perhaps a band pass filter) would be a win.
Keyboard input monitoring could also be used to continuously tune the algorithm to the loudness of the keyboard noise. Any key press occurring in sonic isolation could be used. Then when there's keyboard noise which overlaps speech, the algorithm will know how much to squelch.
So the issue in this case is just that the sound keys produce varies.
Mac book keyboards can be so loud. I remember in college, a guy in front row took notes on his laptop, and his typing was overpowering the professor. And the professor had a microphone.
Bonus point: this would allow you to speak and type at the same time with minimal reduction of speech comprehension, especially if using a multi-band noise gate (that acts on various frequency bands independently). It's a technique we used for dynamic de-essing (removing plosive "S" sounds in post-prod recordings) in a previous company.
I'm afraid of a direction in tech where ML becomes the easy option, and we relinquish control of the technical expertise of the work being done. All for a handful of VC dollars.
If the visualization of the audio is such that you can discern speech from other audio, similar to how you can discern the person's silhouette and figure out where the background is, then in theory it should be possible using the same technique.
I suppose there are probably some pure audio processing techniques that don't rely on the visualization as well.
The app that goes with this should then be able to do things like make the keyboard sound like an Apple keyboard, or a classic IBM one or even a typewriter. It should be one of those features like how digital cameras have a speaker in them to make a fake shutter sound.
Since keyboards can already cost $200+ (Looking at you, Logitech) I don't think this is too much to ask, particularly if spill proof.
That's not haptic feedback - Haptic feedback is the kinaesthetic / touch feeling of the keyboard.
People are trying to engineer keys that are quieter, however they don't have the same haptic feel. The difference between cherry browns and cherry clears is huge!
If someone gets a switch that feels like the brown but is totally silent, they will take the market, but it's hard to see how that is possible. The keys have to be stopped by something to get the correct feel, current attempts to use o-rings create a different feel. It's hard to see how you can do that and be totally silent.
https://stackoverflow.com/questions/4401232/avfoundation-how...
I wish it wasn't proprietary though (and worse, hardware specific). And windows only of course.
Comes with a subscription model for unlimited use though.
I found out that if the phone is too far away, the voice would flagged as ‚background chatting‘ and therefore muted.
Once I connected a headset those issues went away.
I've had a subscription from mid-2019, though I no longer use it. I find Zoom's basic noise suppression good enough for calls.
It's basically magic. You can have someone vacuuming the room right next to you or cook dinner and your coworkers won't notice. Typing noise is just gone. It has improved our meetings so much.
https://krisp.ai works locally and is cheaper, but it noticeably degrades quality (tested with the Chrome extension only).
It's like a CPU/GPU, but specifically for doing the kind of math you come across with Machine Learning / Neural Network applications (mostly: lots and lots of dot products).
RTX Voice seems to work a bit better, but noisetorch compares really well to it. I have a microphone which has static noise and is not really mechanical decoupled from my table. Both applications are good at cancelling that kind of noise.
Noisetorch is a bit more focused on suppressing noise while you're not talking, which is the use case of the posted article. RTX Voice is better at suppressing noise while talking, which you can hear in Nvidias demos as well.
[0] https://github.com/lawl/NoiseTorch
If I compare it to how RTX voice works, it's _slightly_ more complicated to setup (currently no distribution through standard package managers/simply downloading a file and clicking it to start everything) and it doesn't autostart like RTX voice does on windows startup. But jugding from your issues [0] I understand the decision and I'll set it up manually.
It might be an idea to allow for autostart for users who don't care about the CPU impact because their CPUs are big enough or whatever.
Nevertheless, your solution is actually very close to what OP is describing: "install an app and click a button to turn on". So thanks for maintaining, I use it daily!
Assuming the rest of the UX journey is similar (i.e. technically-oriented) compared to Krisp's menubar click-to-activate-mic UX it then becomes less approachable
On a tangent - nice work! That people are even comparing it to RTX Voice is impressive!
This is the sort of stuff I'm sure they're already working on to find new customers.
I don't mind a little Foley on a call; I'm either muted anyway, or it doesn't matter. There must be people out there who can type and talk at the same time, but I never got the hang of it.
That said, I wouldn't have been surprised at all. I was never more shocked that when I discovered that the trackpad on my MacBook Pro didn't actually buckle a millimeter, and was instead entirely simulated by the haptic feedback. Mind. Blown.
>Until the late 4th-generation variants, most Model Ms have a 1.25" slotted, circular speaker grille in their bottom surfaces. Relatively few contain an actual speaker, however, which was useful only for sounding beep codes on older terminal systems. The most common P/Ns with speakers are 1394540 and 51G872, made for RS/6000 UNIX workstations.
I think the trackpad on my previous mac was similar? Or, it had haptic feedback, but it was artificial and could be tweaked in SW.
I think this app is really clever. I would definitely use it if my version of macOS wasn’t nearly a decade too old.
Time to see if there's something equivalent for mac.
Yes, this advice is Zoom-centric but the app calls out Zoom in the first sentence on the page, so I think it's fair.
Probably has lots of bugs and missed edge cases (although it should handle not unmuting you if you mute yourself), but was fun to write none the less and might be useful.
If you want to play it, please have a read before using it (it has to capture key presses using xinput but does nothing with actual key values) and I won't accept any responsibility if it mutes / unmutes you at an inopportune time, etc.
Does this always happen with DMG files, or is there something weird going on here? This file is 10× bigger than it could be.
DMG compression is also optional, so not everyone compresses them. The DMG in this case is clearly not compressed. Compressing the DMG itself results in a file less than a megabyte.
If you are talking about the application-specific software mute, I had such a terrible time finding it amongst all my open tabs and latency every time I wanted to type or speak that I wrote the above hardware-ish button.
I used to play eve online, having a few hundred people in a voice channel would be impossible if push-to-talk wasn't made mandatory.
It is very frustrating.
On GNOME I have set up a hotkey to mute my microphone (this is available but unbound by default). It is amazing as it works for all applications and doesn't matter what window is focused. The only downside is that you don't get the mute indicator.
Filtering out key-presses from the audio stream without completely muting it would be much better.
I really like the app concept!
I've been using Krisp since the start of 2020 and have been really happy with both its audio performance and that it doesn't seem to use excessive CPU/GPU, not to mention that it doesn't require nvidia hardware. Krisp is a paid, closed source product however.
[0] https://raw.githubusercontent.com/robotsquidward/gifs/master...
Most of the other Mac markdown editors either have it split into two panes, show the markdown syntax when you type or don't look like that (centered).
Of course my work laptop is also locked on Catalina, so I kind of played myself there as well! I'll definitely consider adding that backwards compatibility in the future if possible.
https://github.com/orospakr/suppressor
I don't imagine it still builds. Perhaps I should have followed through with it!
Congrats to the author.
Still, a slick utility. Good luck !!
I am constantly being berated by colleagues when I start loudly typing on my mechanical keyboard without thinking...
Easy to forget you're not muted on a call and start typing a reply to something else - not trying to suggest anyone is in the wrong other than myself!
At least in some apps participants can see for each participant whether they are muted or not.