I was very confused as well, since that's exactly what it sounded like.
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.
I had a similar experience with my iPhone 7+. I had forgotten I'd turned it off. I picked it up, and wondered if the home button was broken, because it wasn't moving when I pressed it. Then I realized it was off, and had that OH YEAH, it's just a sensor with haptic feedback... pretty amazing!
Although Force Touch is simulated clicking, the trackpad does flex slightly when pressed hard. It doesn't depress as a button, but it doesn't maintain rigid position. I don't know if it's intentional or just weak metal, but it's good because it relieves pressure on fingers.
Please don't post sarcasm. You can make an equivalent statement ("it almost seems...", "I can imagine...") without the needless twist into a false/sarcastic formulation that just makes your post needlessly harder to understand.
Haven't used a Model M in 25 years but this comment brought me back to that time, wondering what the apparent speaker grill underneath was. For those who are also curious, here's what Wikipedia says:
>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 have thought it silences keyboard in a room completely with some active noise canceling magic. Such would be helpful to not wake up my spouse at night.
My mouse only has artificial clicking. It's a rollermouse without any real click in the roller-bar. It's quite trippy to disable the clicking-sound, suddenly it doesn't feel like I'm actually pressing the bar. But with sound it feels like I have haptic feedback.
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.
Yeah, a little confusing. I updated the text on the Unclack landing page to specify that it mutes your microphone, not your keyboard. Appreciate the feedback!
Huge bummer. It would be nice though if the FAQ included a short technical explanation for this limitation, similar to how it explains "Why does Unclack need Accessibility access?".
That's definitely a bummer. On my work laptop I'm stuck on Catalina for the foreseeable future, and that's where this app would be useful. Presumably most people using macs for work aren't on Big Sur yet.
I'm speculating here, but maybe there are better controls in Big Sur to easily mute input devices compared to prior versions of OSX. I've attempted building a global microphone mute app (for external microphones) on Catalina but never found an easy way to fully mute all mics such as external USB mics or a those connected through a USB ADC. The best I could get on Catalina was to lower the inputVolume to 0 which does not truly mute the microphone. I never found an app that "solved" this problem for all microphones on OSX versions prior to Big Sur.
Unfortunately yes... I'm using some of the latest SwiftUI API's to build the UI that I haven't back-ported for Catalina just yet.
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.
I use Mute Me[1] for this with the shortcut in the Touch Bar to mute and unmute quickly. I'm not sure if Unclack offers a Touch Bar shortcut (or keyboard shortcute) because reaching out to the Menu bar all the time is annoying
Space bar as push to talk in Zoom is terrible. After countless time it sends the spaces to the chat box while I'm talking, I'm now back to reliable mouse click.
A solution like rtx voice seems a better way to go tbh. For those who don't know, it's an nvidia thing that uses a GPU accelerated (ofc, it's nvidia) neural network to denoise voice calls, from all kinds of noise, not just typing. It's really pretty impressive, here's a demo: https://m.youtube.com/watch?v=uWUHkCgslNE
I wish it wasn't proprietary though (and worse, hardware specific). And windows only of course.
I had similar issues with their macOS app using a pretty basic headphone+microphone setup (EarPods). I ended up leaving it off and not re-installing in on my latest setup.
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.
If you use GSuite Enterprise, you can use Meet's built-in noise cancellation which runs on TPUs in a DC.
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).
For me noisetorch [0] (based on RNNoise [1][2]) works pretty good. I'm using RTX Voice while I'm working on Windows and noisetorch while working on manjaro.
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.
It's worth noting that RNNoise uses way less resources than RTX Voice and doesn't require a GPU. There's a new paper by Jean-Marc Valin (RNNoise author) about a new and improved version PercepNet[0] that's also very light on resource usage, but it's currently lacking an open source implementation. I found someone working on that here[1]. So if anyone here has the time and ML chops to open source a PercepNet implementation, that would bring open source noise suppression quite a bit forward.
If anyone knows how to configure pulseaudio to use both RNNoise and module-echo-cancel together, I'd very much appreciate some pointers. My results have been a very distorted robotic voice.
I love these solutions but none are as easy as "install an app and click a button to turn on." RTX Voice has that locked down. I'd use RNNoise instead if there was a standalone app that just "worked" on my mic input. But here I have to jump through hoops for it to work.
Not the OP, but I'd say noisetorch already works pretty good for that use case. Especially with the recent additions of pre-selecting the last device and stuff like that, I really appreciate those minor QOL improvements.
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!
Compared to something like Krisp (since there's no RTXV on macOS) it was difficult because step one was to compile it.
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!
Off-topic but I wonder if there's some creative department at Nvidia, whose job is to invent a compelling mass-market uses for their beefy GPUs, as crypto rush is fading out and the gaming market hasn't much potential to grow further.
I remember talking to a dude 10 years ago at an unconference whose grad project was to reimplement Database indexes to use GPUs. He was saying in some prototypes he was yielding orders of magnitude better performance, but it was still a very obscure idea.
This is the sort of stuff I'm sure they're already working on to find new customers.
Crypto rush is doing anything but fading. Eth mainnet has more hashing power on it now than it ever has. Nvidia is selling 30 series cards directly to mining firms, much to the chagrin of anyone who wants to buy one for themselves. https://etherscan.io/chart/hashrate
A global keyboard shortcut to mute your mic would probably be best, but otherwise system mute is not easily accessible in MacOS. The Command+Shift+M shortcut for mute in WebEx/Team/Zoom requires focus, which you most likely won't have if you're typing something.
You do not have a hardware mute button. There is an output mute, but not an input mute. I wrote one in about 10 lines of AppleScript and associated it with a hot key. It ~mostly~ works.
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.
GP did set it up to a keyboard shortcut. The problem they're calling out is needing to do it to the global input rather than app-specific. Many people use multiple VTC apps throughout the day.
I wrote a Hammerspoon script to do the same, but Microsoft Teams unmutes the default input every time you join a call. Did you run into this/have any idea how to get around it?
IMO mute should be the default in most meetings; plenty of apps (I know Zoom and Skype) have the spacebar as a "push to talk" button. PTT should be a standard in most meetings.
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.
I kinda get it if I move my mouse away as it shows more of the participant video. But if I am hovering over the mute button don't hide it!
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.
For the opposite effect, install `bucklespring` to enjoy an authentic classic clacking on any keyboard (most convenient on GNU/Linux, packaged for the biggest distros).
“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
Oh I loved my Model-M Space Saver, collected quite a few of them. Co-workers did sometimes comment/complain but not that often. I also had this habit of moving my cursor keys up/down/left/right in rapid/slow movements while I was thinking deeply on a problem. Combined with how loud and that it clicks on each downpress and clacks on release was quite the cacophony.
Mechanical keyboards are like fidget spinners in a way, they satisfy a craving for tactile/auditory feedback that some of us need. I was never bit by fidget spinners but I do have some keyboard habits like the one you described above.
Am I remembering right that there was even a SpaceSaver Model-M with integrated TrackPoint? Might be confusing it with a full-sized or ThinkPad-style separate keyboard.
I tried to find that childhood happiness with a PCKeyboard model M, but they just aren’t as good as the originals. Had to go back to my other mechanical keyboards.
It would be awesome if this app provided a toggle you could click that would scramble/unscramble the sounds while you're entering passwords, that way evedroppers can't get anything meaningful (other than your password length)
“To temporarily silence bucklespring, for example to enter secrets, press ScrollLock twice (but be aware that those ScrollLock events are delivered to the application); same to unmute. The keycode for muting can be changed with the -m option. Use keycode 0 to disable the mute function.” — the paragraph after the section quoted in my OP.
For anyone that's tried them both - how does it compare to krisp.ai?
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.
I'm almost certain that Unclack isn't doing any audio-processing magic. It simply knows when you're typing because, you know, keyboard are part of your computer, and mutes when enough keys are pressed in a short enough window of time. It shouldn't use any significant resources at all.
Here's a tip from people I know that do streaming from their computer: get the microphone off your desk. Find something else to put it on or buy an arm it can attach to. The fact that your device or mic are sitting on your desk where the keyboard clack vibrations are traveling right through amplifies them.
Topre is indeed great. The HHKB Pro 2/3 makes an excellent office/WFH board because it's tactile while being relatively silent. Feels nice to use without making a ton of noise.
Hey some of us like the clicky-clack! I optimize around the most common use case, which is me, at home, in my home office. This predates the pandemic and I fully intend it to postdate it as well.
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.
Also really improves the microphone placing problem. On the desk my microphone would always be in my hands way or in front of the monitor and the cable was annoying too. I built a cheap microphone arm out of an Ikea swinging desk lamp (Tertial). It required some time but was a fun project and now I have a matching arm to my desk lamp.
I have a fancy well-tuned microphone off my desk and on a baffle mount and it still picks up keyboard sounds just fine. It's quieter, but it isn't a perfect cure.
most of the vibrations from your keyboard to your desk are from bottoming out key strokes (but I guess that in keyboards with low action like a laptop's you need to bottom out).
I thought this was going to be an app that emits some kind of inverse sound through the laptop speakers to neutralize the keypress sound in real life. I wonder if that's possible.
You'd be amazed what can be done with the latest machine learning algorithms. But setting those aside, you could still get 90% of the way with some relatively basic stuff.
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.
That's my reaction, too. What kind of black magic can mute a physical keyboard? And I was a bit disappointed when I actually clicked.
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.
No need to go through the speakers, you could detect keystrokes, map them to transients in the recorded audio stream and use a noise gate to reduce their volume (at the cost of a little added latency).
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 not a fan of throwing AI at any problem, especially when it concerns signal processing. There is a vast range of great algorithms that can be composed to manipulate audio in all kinds of way, and (human) learning about them is fascinating.
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.
nvidia has some software that you can install if you have a compatible GPU which will take your webcam stream and blur your background or do other background effects. I suppose the challenge here would be to figure out which parts of the audio are the speaker's voice and which parts aren't, and remove the parts that aren't.
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.
Really keyboards should be engineered to be completely silent. Then, under each key there should be a small piezo electric speaker to make a key click noise for reasons of haptic feedback.
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.
Please elaborate on why keyboards should be engineered to be completely silent. I don't think it a bad trait, and it may be beneficial in certain applications but I don't understand why this should be a universal property of keyboards (like suspension is a universal property of cars).
> Under each key there should be a small piezo electric speaker to make a key click noise for reasons of haptic feedback.
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.
I wish! I spent a long time considering if I could detect keyboard sounds through the active microphone and mute on a certain decibel level or typing velocity, etc. or even get as fancy as that sort of noise-cancelling approach. In the end I went with a much more simplistic MVP - though I hope to explore more interesting ways to optimize in the future.
When I downloaded it the DMG file was 12.2Mb. I was suspicious of why an app this small in function would require such a large download, and looked inside, but the actual contents was only 1.4Mb, half of which was icons etc., which seems much more reasonable. If I right click on Unclack.app and choose "compress", I get a file under 1Mb in size.
Does this always happen with DMG files, or is there something weird going on here? This file is 10× bigger than it could be.
The minimum size for an empty DMG I could create on my mac was 8Mb. If I make the DMG directly from the folder with the app in it, it becomes 1.2Mb. Maybe the developer uses a script that makes it this size.
DMGs are essentially disk images. So there's a lot of metadata there, inherent to the file system (HFS+ here but any file system would have metadata). Not to mention, there could be plenty of empty space if the virtual disk is bigger than the contained files.
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.
I can't believe this just appeared on the front page. A co-worker and I were just talking about this happening on calls. I'm going to send this to a few people unsolicited.
I wish push-to-talk was more common. On linux I've been using this little python script that implements global push-to-talk by (un)muting the microphone in pulseaudio when you push a button. https://gitlab.com/somini/inpulse-to-talk
Time to see if there's something equivalent for mac.
After seeing this and being a bit disappointed it was for Mac only, I wrote a very quick and dirty script for Linux that does something similar [1].
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.
Not colloquially. That's correct. Muting a mic is the colloquial expression. Think about what the word means: silence a thing. The mic does not make a sound.
You can't mute a microphone. Mute is when something can't make a sound. You put a mic on mute.
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.
You can absolutely mute a microphone, since you can say "I muted my microphone" and any English speaker will understand exactly what you mean.
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).
As a native english speaker, I was confused about how it was possible to mute a keyboard. I did not immediately make the leap to "it mutes your mic when it detects typing on the keyboard"
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.
Same. I know Apple does software/tactile interactions (firm press, click sound on trackpads for instance) so I assumed this had to do with that, and that new Apple keyboards created an artificial click. "Mutes your call while typing" or something similar would have been more clear. I assumed this app wouldn't apply to me, but it does.
I actually quite like the phrase ‘mute your keyboard’ for this purpose.
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.
I disagree - it's not clear. I thought it was going to be some fancy machine learning to silence keyboard sounds while keeping the mic active for voice.
in addition to what everyone else said about muting a microphone being a totally legit thing in English, you _can_ mute a keyboard. For example, adding soft foam to soften the hit when it bottoms out would mute your keyboard somewhat. Obviously this app doesn't "mute the keyboard" but since we're being pedantic, it's not accurate to say it can't be done.
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.
You definitely can't mute any random keyboard with software, though (before someone comes out with some kind of switch with a electrically controlled clickbar or something)
Thank you, this makes more sense. Initially I thought that macOS was making some sort of unturnoffable keyboard clack sounds through the speakers.
This is far more reasonable than my first impression of the article title.
I thought this mutes(disables) the inbuilt keyboard on my macbook. Would be super helpful for me since my son randomly presses key on my macbook keyboard while I'm trying to type from my external keyboard.
Haha Unclack actually does let you configure the Menu Bar icon and mute indicator appearance, including being able to disable the mute indicator altogether! :)
I wonder why the developer didn't notarize this app? Seems especially relevant since there could be keylogging concerns. You can bypass the warning message, but not a good first impression for users: "Unclack can’t be opened because Apple cannot check it for malicious software. This software needs to be updated."
For anyone stumbling upon this thread now, Unclack now supports macOS Catalina! I pushed an update today that is available from the landing page. Check it out! Thanks again for your support of Unclack!
reply