Live data from Hacker News

Reverse-engineering my speakers' API to get reasonable volume control

jamesbvaughan.com

91–100 of 144 posts

Re: Reverse-engineering my speakers' API to get reasonable volume control

#92
post #63

Earlier quoted context omitted.

"So they don't damage users' speakers, their hearing, or generally cause annoyance." Damage speakers? Simply, not an issue unless they're one step removed from rubbish. Also, have you ever heard of output compression and clipping that would protect them? That approach is 101 electronics. Hearing is not an issue as they're driven by flea power (they're not headphones). Even hearing these pissy little speakers when run…

This is one area where I feel Apple did pretty well. My M1 Air has great sound and a solid max output level. Recently, I was given an old Sound Pop gen 2. That thing also delivers a lot of sound while also handling low input levels decently.

You're right. I'm not an Apple user but their equipment and performance is pretty much tops. From the outset Jobs was aware that ergonomics and usability were the key to success.

Apple is now about the richest company in history, so why don't others manufacturers realize this and copy their example?

It doesn't make sense why other manufacturers alienate users over unintelligible sound. The extra cost of getting it correct is negligible. Why can't they see that?

Re: Reverse-engineering my speakers' API to get reasonable volume control

#93

For those considering buying speakers: (1) do it, (2) get passive ones and a separate amp. Honestly it’s such a mature market that buying these active speakers just creates e-waste. Keep the e-waste to the amp. You can get really solid speakers for $300 and a cheap amp with BT for $50-100, replacing them basically independently depending on your needs.

Quality of active speakers are really good these days, they have matched amps and speakers from neumann, genelec etc also has active crossover which is superior than any passive setup. Mature market sure, but even companies like KEF who didn't offered or focussed much on active systems, have growing range of options now.

Re: Reverse-engineering my speakers' API to get reasonable volume control

#94
Pro-tip for embedding JS in an HTML string in a Typescript file: you can get full typecheck etc for your embedded JS snippet if you write it as a top-level function in your file, and then interpolate the function into your template.

This works because function.toString() in modern runtimes gives you back fully parse-able input source.

You need to make sure you don’t reference anything outside the function, but it’s generally nicer overall than JS-in-string.

Then you treat it as an IIFE. Example:

    function globalJS() { document.write('hi') }
    const html = `(${globalJS})()`
I use this technique for calling AppleScript-flavored-JS from NodeJS too.

Re: Reverse-engineering my speakers' API to get reasonable volume control

#95
I have this issue with my Echo next to my bed. Even on vol 1 it’s too loud for me.

So, instead of using the Spotify alexa skill, I have to use my phone and connect it via bluetooth, so I can turn down the volume on my phone in addition to using the quietest volume on the Echo.

Re: Reverse-engineering my speakers' API to get reasonable volume control

#96

For those considering buying speakers: (1) do it, (2) get passive ones and a separate amp. Honestly it’s such a mature market that buying these active speakers just creates e-waste. Keep the e-waste to the amp. You can get really solid speakers for $300 and a cheap amp with BT for $50-100, replacing them basically independently depending on your needs.

Quality of active speakers are really good these days, they have matched amps and speakers from neumann, genelec etc also has active crossover which is superior than any passive setup. Mature market sure, but even companies like KEF who didn't offered or focussed much on active systems, have growing range of options now.

Nobody is arguing their quality is bad, but that amps die long before speakers die. Do passive speakers even die?

Also, online services built into these will die before the speakers do.

Re: Reverse-engineering my speakers' API to get reasonable volume control

#97

Earlier quoted context omitted.

Quality of active speakers are really good these days, they have matched amps and speakers from neumann, genelec etc also has active crossover which is superior than any passive setup. Mature market sure, but even companies like KEF who didn't offered or focussed much on active systems, have growing range of options now.

Nobody is arguing their quality is bad, but that amps die long before speakers die. Do passive speakers even die? Also, online services built into these will die before the speakers do.

Sure from a longevity perspective, you are 100% correct and for HIfi/Home use I'd recommend the same.

I am not sure however if your estimation is correct for all cases. The amount of killed tweeters I have seen would not have happened with an active speaker..

Re: Reverse-engineering my speakers' API to get reasonable volume control

#98
post #20

> Those methods either give me a tiny slider that I can only use 10% of or about 15 steps where the jump from step 3 to step 4 takes the speakers from “a bit too quiet” to “definitely bothering the neighbors” levels. Volume controls need to be logarithmic, not linear. To a first degree approximation, everybody gets this wrong.

Volume controls also shouldn't just be a flat wideband gain - they should respect how we actually perceive sound so the timbre doesn't change as the level changes (when you turn the volume down, you are typically left with just the stuff in the vocal frequency range, and lose all the bass etc). Doing this stuff well is pretty hard (e.g. designing filters that can do that kind of volume adjustment is hard because you…

My cheap Behringer NU1000DSP that I use as a subwoofer amp can do that to some extent with its dynamic EQ, and you can set it up via USB with a PC app which is a huge step up from some crummy little LCD and buttons.

Re: Reverse-engineering my speakers' API to get reasonable volume control

#99

Earlier quoted context omitted.

> Seems like the author moved from a “speakers + networked amp” setup, to a one where with active speakers where everything is built-in. Close! I moved from a "speakers + non-networked amp + streamer" setup. I'm still running separate components for nearer-field listening at my desk, where I've got KEF Q150s powered by a small Schiit pre-amp and amp.

Nice! I don't have any Schiit gear, but few months ago I started reading the founders book 'Schiit Happened'. I got halfway through (and then got distracted by other books, need to pick it back up), but can definitely recommend it for anyone interested in audio, and especially if you already have some Schiit!

Oh cool, I wasn't aware of the book but I'll check it out.

Re: Reverse-engineering my speakers' API to get reasonable volume control

#100
post #94

Pro-tip for embedding JS in an HTML string in a Typescript file: you can get full typecheck etc for your embedded JS snippet if you write it as a top-level function in your file, and then interpolate the function into your template. This works because function.toString() in modern runtimes gives you back fully parse-able input source. You need to make sure you don’t reference anything outside the function, but it’s g…

> This works because function.toString() in modern runtimes gives you back fully parse-able input source.

TIL - that is good to know. I'll probably leave the post as-is but I will use that in the future.

Post reply on HN