News for hackers. Stuff that matters.

ashafq

Re:Ask HN: Could you share your personal website here? on Wednesday January 14, 2026 @05:58PM (#46625162)
https://shafq.at

I write about signal processing.

Re:Ask HN: What Are You Working On? (October 2025) on Monday October 13, 2025 @02:17PM (#45571629)
This is a fascinating space where logarithmic numbers can offer a lot of value with fewer bits.
Re:Ask HN: What Are You Working On? (October 2025) on Monday October 13, 2025 @12:34PM (#45570339)
Currently FPGAs are out of scope. But, would love to implement that use case as well in future.
Re:Ask HN: What Are You Working On? (October 2025) on Sunday October 12, 2025 @10:41PM (#45564205)
I’m building SPARK (Signal Processing Algorithms, Routines, and Kernels), an open-source library of modular, efficient DSP components for low-power embedded audio systems.

The goal is to make it straightforward to design and deploy small, composable audio graphs that fit on MCUs and similar hardware. The project is in its infancy, so there’s plenty of room for experimentation and contributions.

https://github.com/Colahall/SPARK

Re:Show HN: My GPU Fan Saga – A DIY ATX Fan Controller on Tuesday July 22, 2025 @02:16PM (#44651019)
Thank you! I will add them later on. You can access the schematic and PCBs here:

GitHub: https://github.com/Colahall/tiny85fancontrol/tree/main/schem... Codeberg: https://codeberg.org/Colahall/tiny85fancontrol/src/branch/ma...

Re:Show HN: My GPU Fan Saga – A DIY ATX Fan Controller on Tuesday July 22, 2025 @02:13PM (#44650984)
I did try the internal temperature sensor, but it didn't measure the ambient temperature. I have read that if you set the ATtiny85 to sleep mode for some time, it will converge to ambient temperature, but it would take too long to validate, and I didn't want to go down another rabbit hole.

USB Bootloader is interesting, but I already had a few ISP loaders. You can make an ISP loader with Arduino as well. [1]

[1] https://docs.arduino.cc/built-in-examples/arduino-isp/Arduin...

Re:Wttr: Console-oriented weather forecast service on Friday July 18, 2025 @09:31PM (#44611727)
This project is great! I have used this API for a personal WiFi enabled dashboard on an ESP32.
Re:Colahall: An Independent Audio Technology Company on Friday May 23, 2025 @11:13PM (#44078474)
It’s not a startup. It’s a studio. A workshop. A chain of curiosity. We build slowly, deliberately, until it’s awesome. No pitches. No pivots. Just noise…
Re:Echoplayer: Echo – Open Hardware Music Player on Wednesday April 23, 2025 @10:07PM (#43778645)
I love it! I used to be a huge fan of Rockbox.
Re:Fixed Point Tutorial #2 on Sunday March 30, 2025 @11:19AM (#43524857)
If you've ever wrestled with fixed-point math, scaling, and rounding, this blog post is for you!

I go deeper into binary arithmetic, division tricks, rounding, and what it really takes to build fixed-point systems that actually works.

As always, I appreciate all of your feedbacks and corrections.

Re:Show HN: An Open Source Vector Optimized Equilizer Plugin on Wednesday March 12, 2025 @05:45PM (#43347981)
I have also documented how to vectorize IIR filters (EQ) in this article as well https://shafq.at/vectorizing-iir-filters.html
Re:Ask HN: Favorite C Communities? on Wednesday February 12, 2025 @10:30PM (#43032386)
IRC #c on libera.chat
Re:Corners of C: Entering the Twilight Zone of the C Compiler on Monday February 10, 2025 @10:06PM (#43008481)
I thought I had mastered C: its 32 keywords, the many meanings of static, and even the arcane art of three-star programming. But C always has much more to explore. Let's dive into one of the strange corners of The C Programming Language.
Take a moment to imagine what we can achieve with effective technology and policy.
Re:Show HN: An Open Source Equilizer Plugin on Wednesday January 01, 2025 @08:40PM (#42570869)
If I recall correctly, SVFs typically compute lowpass, highpass, and bandpass outputs simultaneously, which are then combined to create peaking or shelving filters. In contrast, a traditional biquad filter requires only five multiply-accumulate instructions. Computationally, SVFs are generally 3 to 5 times more expensive than biquad filters.

When designing this plugin, my primary focus was optimizing steady-state operation. While there are many plugins tailored for handling modulation, this plugin is designed to reject high-frequency modulation, prioritizing efficiency for gradual state changes. This tradeoff allows it to excel in its intended use case without the added complexity or overhead of robust modulation handling.

Feel free to add a feature request in the Github project page. Thanks again for your feedback.

Re:Happy New Year 2025 HN on Tuesday December 31, 2024 @10:32PM (#42563764)
++year;
Re:Show HN: An Open Source Equilizer Plugin on Wednesday December 18, 2024 @08:07PM (#42457275)
Thank you for your feedback. You’re absolutely right that TDF-2 can exhibit artifacts in the presence of modulation or automation. In this implementation, I’ve addressed this by crossfading between the old and new coefficient sets. I’m aware of the SVF topology and its advantages, especially in low-precision applications. However, I wanted to experiment with biquads due to their computational efficiency when filters remain steady.

I hadn’t fully realized the extent to which EQ cramping is a concern in the audio community, so I’ll definitely dive deeper into mitigation techniques to address it effectively.

Regarding your point about limiting to five bands, I completely agree: there’s no technical reason to impose this restriction, especially given the abundant memory available on modern desktop systems. I’ll explore a more dynamic architecture to allow for arbitrary numbers of bands.

Thanks again for sharing your insights. They’ve given me a lot to think about as I work on improving this project!

Re:Show HN: An Open Source Equilizer Plugin on Wednesday December 18, 2024 @07:37PM (#42457107)
Thank you for taking the time to share such detailed feedback. It’s incredibly valuable! Let me address your points one by one:

1. Logarithmic plot and spectrum analyzer: This feature is definitely on my roadmap. I agree that having these visual cues is essential for live tuning and precise adjustments.

2. UI grouping: You’re absolutely right about grouping parameters by EQ band rather than by type of control. Your suggested layout makes a lot of sense, and I’ll admit I took a shortcut by organizing the UI the way it is now. I’ll reference this thread in the corresponding GitHub issue to ensure it’s tracked for improvement.

3. High-pass and low-pass filters: I completely agree these are essential additions. I might explore adding them as a separate mode for the EQ. As for slopes, implementation could be a bit trickier since biquads inherently support only 6 and 12 dB/Oct. I’ll add this as a feature request on GitHub so it can be properly tracked and discussed.

4. Mid/Side mode: This is an intriguing suggestion and could offer a lot of creative possibilities. While it’s a bit more complex to implement, I’ll look into how it could fit into the current architecture.

5. EQ cramping prevention: The current design inherently avoids EQ cramping due to the use of the TDF2 transposed structure for biquads. However, I’ll review other topologies to see if there’s room for further optimization.

Thanks again for such thoughtful feedback. It’s input like this that helps me refine and improve my plugins. Also, feel free to jot down any feature requests in Github.

Show HN: An Open Source Equilizer Plugin

https://github.com/ashafq/a5eq.lv2

a5eq.lv2 is a versatile LV2 plugin featuring a high-performance 5-band equalizer, equipped with a Low Shelf, three Peaking Filters, and a High Shelf.The goal of a5eq.lv2 is to deliver optimized performance on both AMD64 and ARM64 architectures. By leveraging SIMD instructions, the plugin ensures efficient and reliable operation.As the author of a5eq.lv2, I welcome feature requests and ideas for...

( Read More... | 6 comments | 12 points | on HN )