You can't actually see the center frequency of the Helmholtz resonator in most MEMS microphone datasheets, but if you look at the datasheet for an ultrasonic one, you can see it. The approximate parameters look to be:

f = 25kHz
g = 15dB
Q = f / 8 kHz = 3.125

It seems to vary a lot, but it wouldn't surprise me If 25 kHz is what they generally aim at as a compromise. Bigger diaphragm and displacement means better sensitivity and max SPL but also larger cavity and thus lower Helmholtz resonance.

Example frequency response of a MEMS microphonen β€” from the ST Microelectronics Tutorial for MEMS Microphones.

The Helmholtz resonance of a MEMS microphone looks inconvenient at first glance, but in the microphone array design I'm working on, I'm using two MEMS capsules to create a cardioid pattern, and if you space them apart just right, and induce a phase delay equal to the wave propagation time between them, the first notch in the resulting comb filter will flatten the peak.

As for replies: They don't work very well.

Firstly, the original post isn't propagated across the network to everyone the reply is propagated to, leaving the reply dangling without context for many people.

Secondly, it's not always evident in the timeline feed whether a post is a reply or just a mention, and if you want to check that, you will have to expand it, and due to the issue above, proceed to view the thread on the originating instance.

That's just not what people do.

But removing the ability to write your own text on a post that you reshare doesn't give control back to the original poster. In fact, it rdeuces control, because it increases the likeliness of other people sharing screenshots of it instead, at which point you are unable to see it, and are also unable to delete it. Granted, having the feature doesn't prevent that from happening, but it definitely makes it less likely, since it's much easier to just hit the boost icon, type a text and post it.

I really want the ability to write my own comment when I boost a post here on Mastodon. Sometimes, I want to disagree with something and provide context, and making a screenshot of a post is a hassle. I suspect this feature was left out on purpose. That purpose was probably to let users maintain control over the framing of their content, which I expect is something people didn't like about retweets on Twitter.

Be yourself!

...unless you have an abrasive personality, have annoying habits, suffer from mental illness, have severe acne, are a necrophiliac, lack social skills, etc.

Yes, you could be yourself despite all of that, but is it good advice? No. Humans are obligate pack animals. If you are unpleasant to be around, look at or interact with, you will wind up alone. You can't always pick your crowd. Sometimes, you simply must change or cover up the nastiest bits of yourself in order to fit in.

I'm getting the hang of using transfer functions. I should probably learn how write transfer functions and how to transform them into digital filters. The only thing I could pull off with my current knowledge is to use an inverse discrete Fourier transform to turn them into filter kernels. Since these are IIR filters, they'd have to be windowed and the kernels would only approximate them.

I should probably give this simulator a better GUI. 99% of the editing is happening by changing the code at the moment.

From what I'm told, the warmness of a large diaphragm microphone is due to the gradual transition to an omnidirectional pattern at lower frequencies. Using two omni microphones in a figure-eight pattern, with a phase inversion + delay on one mic to turn that into a cardioid microphone, and some high-pass and peak filtering, I managed to produce a microphone with a characteristic like that. The bend down at 20 kHz is the tail of the comb filter created by the phase delay.

"On the other hand, to be directional the capsule must have rear sound ports with acoustical phase shift networks, which for any practical design has inherent non-idealities."

Mwahahah! But not the microphone array design I'm working on, because it uses a digital delay line!

I think what I'm going to do is give it an SPDIF output. My Focusrite interface has an SPDIF input, and many consumer sound cards have one too. Should make for a cheap way of equipping your home computer with a good mic.

5) Mathematicians also like to use confusing words. Take "conjugate", which means to negate the imaginary part of a complex number β€” a programmer would probably call that an iFlip().

Also, I kind of agree with Randall Munroe about complex numbers: If you're too cool for vectors, you use complex numbers.

Yes, yes, Euler and Fourier/Laplace transforms, but come ooon, you can write that stuff out as cos/sin and vectors...

4) I mean, I basically had to spend half a day to figure out the math I needed to learn how to calculate a transfer function and make a Bode plot from it, and I'm a stubborn motherfucker.

I'm trying to use mathy variable names in my code but I'm very tempted to just use verbose names instead because my source code is damn near unreadable with all these one-letter variable names, much like the math it came from...

3) Kind of annoys the hell out of me that math people can't boil stuff down to the essentials. Most documentation for developers is far better than the crap math students have to contend with. If math was a programming language, who the hell would use it? If you think your language has unreadable syntax and bad documentation, try math.

2) More specifically, any constant or coefficient x in a transfer function H(s) that isn't imaginary is taken as a complex number x+0i. In other words, you turn everything into complex numbers. Any arithmetic is taken to be complex arithmetic.

Ο‰ is in radians per second, so Ο‰ = 2Ο€f, where f is the frequency in hertz.

Output x + yi can be taken as a phasor/vector where sqrt(xΒ² + yΒ²) encodes amplitude and atan2(y, x) encodes the phase in radians.

1) Okay, so I now *think* I know how to use transfer functions, i.e. those previously so mysterious "H(s) = foo / bar" things you always find on Wikipedia instead of actual explanations when you're looking for information about audio equalisation filters.

I knew that s was the frequency, but not much else.

Solution:

s can be substituted with jω where j is the imaginary unit and ω is angular frequency.

The output format is a phasor, from which you can derive an amplitude and a phase.

Bode plots and polar patterns for simulation of 2-element array of omnidirectional microphones, with their outputs subtracted and delayed to create a single cardioid microphone, with a low-shelf filter added to linearise the frequency response.

It looks like you want to keep them really close together to move the comb filter out of the audible range. The drawback of doing this is the need for even more amplification on the low end.

Polar patterns at various frequencies for an array of 2 omnidirectional microphones, 2 cm apart, subtracted and time-delayed to behave like a cardioid pattern microphone.

Cardioids are typically bass-boosted to give them a flat frequency response. This explains why they rumble so much when handled! I haven't done that in this case, so it doesn't start flattening out until about 4500 kHz.

Screenshots are from my JavaScript microphone array simulator.

Show more
No Agenda Social

Home to Producers and Fans of the
No Agenda Show Podcast If you have an issue please DM @adam@noagendasocial.com