47 comments

[ 2.7 ms ] story [ 98.7 ms ] thread
Related, VLC Media Player destroyed Dell speakers thread https://www.dell.com/community/Laptops-General-Read-Only/VLC...
I wouldn't blame VLC. Here's the response from main VLC developer:

https://news.ycombinator.com/item?id=7205875

I agree with them that when using the official API for whatever-X, you can't be blamed when X fails. Whatever X is, it should be built to cover all uses of its official interface.

In the case of VLC, that X is the Dell sound hardware, which can't handle certain uses because of a power incompatibility between the Dell sound card and the Dell speakers.

Reminds me of a case long ago where a GUI program took blame because it sometimes caused the X11 server to crash. That was clearly a bug on the X11 server side, too. A server should be built such that it's impossible for a client to crash it.

I always get a little nervous when really messed up audio gets sent through my semi-expensive speakers... "are they designed for this? did I just ruin them by playing a game with a buggy audio mixer?"
The audio mixer is dependent on the speakers, not the other way around. The speakers should be able to handle anything the mixer is able to throw at it. If they aren't, that's fault on the speakers' part.
I think this is a grey area depending on your setup and listening preferences.

I have ~2kW of RMS amplification available to my floorstanding loudspeakers and subwoofer. There is a lot of DSP/EQ protection in between my HTPC and the mechanical drivers in the speakers.

Despite all of this, I have had incidents where the software glitches out and plays the un-decoded DTS/DD stream. If you have your volume set at or near reference when something like this happens, it can cause physical damage (to both your speakers and your ears).

(Audio) Engineering is all about balancing many complex factors. Mistakes happen and you can't address all of the edge cases without ruining the overall user experience. To say its the fault of the speaker is a little bit accusatory in my opinion. Can you ruin your car by taking certain actions? Certainly. Is this the car's fault? No.

(comment deleted)
To add to this, depending on the amplifier design you might get better linearity (less harmonic distortion) by significantly overprovisioning power.
(comment deleted)
> That was clearly a bug on the X11 server side, too. A server should be built such that it's impossible for a client to crash it.

Not sure X11 itself was to blame for most crashes. GPU drivers tended to be hit or miss in the past and if I remember correctly even Microsoft had enough of that mess at some point and started to isolate them from its otherwise monolithic kernel, just so it could at least recover the session instead of blue screening.

Now I wonder if a piezo beeper would be more plausible or less plausible to blow?
piezo beepers typically have a resonance frequency where they are much louder.

Run it at that frequency for too long and the pizeoelectric coating delaminates from the metal disc of the speaker, leading to failure.

So, yes, you can probably blow them from software if you're willing to have it turned on for a few days continuously.

I wonder if moving iron beepers would have the same issue. Either way, seems like a lot of effort.
All I can say in my early Linux years is I tried to redirect /dev/cpu to my speakers (maybe something in /dev/snd), and it made one of the loudest sound my quite huge speakers could make. and volume wasn't so high..

I tried that because I was curious, since everything is a file, then surely cpu processing things to become a sound right ? :)

(if you try this please make sure to get that into a pcm/wav file, and reduce the amplitude of that file _first_)

lol I did this too eons ago. I don't think those speakers ever worked the same again after that.
Why don't all speakers have some circuitry that blocks any signal that could blow out the speakers? This has always seemed like an absurd state of affairs. It should not be possible to damage speakers by turning the volume too loud.
Because knowing exactly how much signal is too much is really hard.

When using the speaker, for some purposes you want absolutely max volume - that involves getting the physical parts of the speaker moving fast and far. Yet move them slightly too fast or too far or do that too often and it'll physically break. Odd effects like resonance mean two very similar looking signals can have widely different physical effects.

The ideal threshold might depend on numerous factors, like temperature and pressure, the age of the speaker, etc. Easy to do in software, impossible in hardware.

So why not just have more margin and make the line between 'loud enough' and 'breaking apart' wider? Well to do that your speaker would need to be physically larger, and space is very much in a premium in many devices.

In no other high-end consumer product would that unreliability be tolerated. Why would you ever run your speakers at a volume that might blow them out depending on what the next bar of the song sounds like? Are you pre-screening every single bit of audio that will get played over your speakers? Otherwise, you should never run speakers at a borderline volume. This protection should be built in to the speaker. No matter how much volume you feed into a speaker, it should not break.

(Of course, you could feed always feed such an absurd amount of power that it would break even the protective circuits, but that ultimate vulnerability is just inherent in the nature of electronics).

It happens with DJ sound systems and Band PA's
So this poor reliability is just rampant in the sound industry? Unless there is some reason why such a circuit is not feasible without, e.g., decreasing sound quality. Which is the kind of thing my original question is asking about.
It's just the way things are when it comes to speakers. What you are suggesting would be really expensive, unreliable and have all sorts of downsides. It's like asking how comes cars get stuck in traffic, why don't they just make cars fly when the roads are busy...
Do you know where I could learn about the unreliability and downsides of what I'm suggesting? Somehow all of the other electronic gear I own is tolerant of anything short of a lightning strike (and for that, there's surge protectors, which are not that expensive). I'd love to learn more about why speakers aren't the same.
A speaker is a simple component that needs to be driven properly. What you are suggesting is combining the driver with the speaker bit. It's better to keep them separate. If you tried to integrate some protection to the actual speaker, then there is no way to do that without significant costs or sacrificing sound quality. Anything you do add in would probably fail at a greater chance than the chance of someone blowing the speaker
When I worked at my old shop I blew out 3 different CD changer stereos and two sets of speakers. One of them even ended up slightly catching on fire...well it was smoking anyway...The machines were really loud, you needed to crank that shit if you wanted to hear it...also I learned that you can't plug 3 sets of speakers into a single one of those things.
I may be wrong, but most studio monitor speakers have limiter circuits that prevent damage from high volumes, iirc. E.g. Adam Audio or KRK speakers. These are in $100-200 per speaker
They have limiter circuits to prevent a very high average power going through them which would overload the speaker-cone's travel limits, or would overheat the voice-coil.

On the other hand, very high-power, short-lived 'transients' are necessary to give proper clarity and realism to the music. Most amplifiers, even very-high power ones usully idle along at about one or two watts or less, but the extra couple of hundred watts available allow lots of 'head-room' for those high-power transients so that they don't get clipped and distorted.

A high-power amp doesn't necessarily sound very much 'louder', but it sounds very much 'cleaner'.

You can absolutely do that but it will make the speaker sound like crap.
Dedicated speakers are overbuilt so this won't happen easily.

It's speakers inside a phone or something that are very size-performance limited and are vulnerable to this. Those same devices tend to have advanced processing of audio headed to the speakers to make it sound better and not blow up the speaker.

An old Motorola I had had over 15,000 knobs to tweak in the audio section of the service app...

So if I turn the knob on my a/v receiver all the way up, my speakers won't blow out? I'm obviously not going to try it, but my understanding is that they would get damaged. To prevent this, I set a maximum volume on the receiver's settings to the loudest I'm practically interested in, given the size of the room and such. But that probably means I'm capping my volume a good bit below the guaranteed safe level, which only the speaker manufacturer is really in a position to know.
It's mostly a matter of matching the output characteristics of the amplifier to the capability of the speakers... which is what most consumer products with speakers do. Note that the OP concluded that it likely wasn't possible to blow the PC speaker.
If you have your own receiver and your own speakers--a home stereo system, not a PC speaker system--it is just a matter of turning the nob too high to blow them out. With all these wifi-connected receivers these days, I bet if your laptop is compromised, a hacker could turn up the volume and physically damage your speakers. Anyone inside your wifi can cause many thousands of dollars (or whatever your speakers cost) of physical damage. Wow!
Related: In the past Apple released a bad bootcamp sound driver for macbooks that caused windows to blow the laptop speakers. So technically you can blow some speakers with bad drivers

https://www.extremetech.com/computing/240309-apples-bootcamp... https://forums.macrumors.com/threads/15-2016-mbp-speaker-cra... https://www.reddit.com/r/apple/comments/5e1g37/warning_bootc...

The article seems to be about those tiny PC speakers which beep out BIOS codes, not those types of speakers used to output actual OS sounds and music
This reminds me of Godel Escher Bach. “I Cannot Be Played on PC Speaker X.”
One possible way to approach this would be to write a simple function generator (square wave) and sweep it across the audio spectrum, while also recording the speaker output level by way of a connected microphone. The resonant frequency of the speaker (or the microphone) should be observable as the peak amplitude seen by the mic. Once known, just set the generator to that frequency and blast away for a while.
What would happen if you sent a random stream of ones and zeros to the PC speaker? Wouldn't that be equivalent to the PC speaker producing square waves at all the frequencies which it can produce?

At least if wearing it out in the fastest manner possible counts as "blowing" it, that could work...

In the late 90s and early 2000s, I remember two distinct occasions where a computer tried to play a data cdrom as if it where an audio CD through my headphones.

Easily one of the more unpleasant experiences of my life (and I’ve broken bones). Something about the sound triggered a very specific Synesthesia. I smelled a burning smell for half a day.

So… in addition to blowing speakers, you can also blow minds.

So the takeaway here is that you should not attempt to fuzz a human brain while using it:)
I've definitely blown PC speakers with softsynths before so it should be possible in principle.
The PC speaker was driven by square waves, therefore there was no way to alter the audio volume, or change its sound. Only frequency could be altered, literally by inverting the pin status N times a second. Then it came the PWM idea, and hackers found the way to implement analog sounding audio through it (the same principle used to fade a led through a GPIO). The port became a DAC, audio levels were encoded through PWM, and the speaker inertia made for a crude but effective Nyquist-like filter. Having full hardware access to the port, the nastiest thing one could do is to keep the speaker on fixed DC by setting the port to a digital value (that is, 1 or 0) and never changing it. PWM ensures that sometimes the speaker isn't driven, which reduces the average current, and therefore the load from the driver perspective, but now we're making current flow through it continuously. Will that destroy it? I don't know, but to my knowledge it seems the only way one can abuse it, or the port that drives it. It all boils down to current limiting circuitry; if it's present, then I guess there's no way to damage either the speaker or the driving port.
Whether or not you can blow a speaker has nothing to do with what kind of signal you are sending it but the power you send to the speaker.

In other words, whether the current going through the speaker is sufficient to either overheat the voice-coil, or to drive the speaker-cone beyond its physical limits.

These are qualities pertaining to the speaker itself, not the PC's output. The easy answer to the question is "It depends".

Excursion is related to frequency. A sure way to blow most up is turn bass to the max. Some speakers have bandpass filters. Cheap ones usually don't
A long time ago there were a _consensus_ that no driver could break hardware in a physical way.

Then I wrote a small asm that moved the FDD heads way past the last track and it stoped working (couldn't move the head back to regular position anymore). And, despite all arguments, I kept my opinion.

Then Stuxnet came and now this discussion is over.