ajxs
ajxs.me · Personal blog · on HN since 2021
ajxs writes detailed technical posts on vintage synthesizer firmware, Yamaha DX7 internals, Ada, and unusual architectures.
What HN saysCommenters cite the DX7 reverse-engineering and technical analysis posts as sources, including for DAC and FM synthesis discussion.
15HN people shared it
5linked it in comments
10stories submitted
991story points
2 months agolast shared
2021people per year2026
Most-shared posts
- 1Yamaha DX7 Technical Analysis3 people · 287 points · first shared 2021 · 125 comments on HN
- 2Introduction to reverse-engineering vintage synth firmware3 people · 196 points · first shared 2024 · 27 comments on HN
- 3Giving Ada a Chance2 people · 180 points · first shared 2021 · 254 comments on HN
- 4How does Ada's memory safety compare against Rust?2 people · 166 points · first shared 2025 · 158 comments on HN
- 5Hacking the Yamaha DX9 to Turn It into a DX7 (2023)2 people · 100 points · first shared 2023 · 27 comments on HN
- 6How the Yamaha FM synth cassette interface works2 people · 54 points · first shared 2022 · 20 comments on HN
- 7μCOM-87: The Strangest Architecture You've Never Worked With2 people · 1 points · first shared 2026 · discussion on HN
- 8Giving Ada a Chance (2021)1 people · 5 points · first shared 2024 · 1 comments on HN
- 9How Far Back in Time Can I Take My Website's Design?1 people · 2 points · first shared 2023 · discussion on HN
- 10Homepage1 people · first shared 2021
- 11DX71 people · first shared 2024
- 12How Does Adas Memory Safety Compare Against Rust1 people · first shared 2025
- 13Frequency modulation.jpg1 people · first shared 2021
- 14The Identity of The Sanctimonious Kid1 people · first shared 2024
What HN people wrote when they linked it
ajxs · 2022-01-13
It would be really great for me if any of these CSS preprocessors offered a standalone command line version that didn't need npm to install. My developer blog (https://ajxs.me) is built by a homegrown static-site-generator built in Python, which reads data from a simple SQLite database. I've been looking for a suitable CSS preprocessor for a while, however the ones I can find are all totally overcooked for my needs, and nearly exclusively designed to be integrated with Node.js.
Ygg2 · 2025-08-24
> The goal of ANY software engineer worth their salt should be minimizing errors and defects in their end product. > > ...to the extent possible within their project budget.
Sure, but when other engineers discover that shit caused us many defects (e.g., asbestos as a fire insulator), they don't turn around and say, "Well, asbestos sure did cause a lot of cancer, but Cellulose Fibre doesn't shield us from neutron radiation. So it won't be preventing all cancers. Ergo, we are going back to asbestos."
And then you have team Asbestos and team Lead paint quarrelling who has more uses.
That's my biggest problem. The cyclic, Fad Driven Development that permeates software engineering.
> Pretty sure it could (at least) equally well be reached by learning to write Ada.
Not really. Ada isn't that memory safe. It mostly relies on runtime checking [1]. You need to use formal proofs with Ada SPARK to actually get memory safety on par with Rust.
> Pretty sure it could (at least) equally well be reached by learning to write Ada.
See above. You need Ada with Spark. At that point you get two files for each method like .c/.h, one with method definition and one with proof. For example:
// increment.ads - the proof procedure Increment (X : in out Integer) with Global => null, Depends => (X => X), Pre => X < Integer'Last, Post => X = X'Old + 1; // increment.adb - the program procedure Increment (X : in out Integer) is …
tweetle_beetle · 2025-10-20
Did you read the section about what made the DX7 hardware a good target for this project?
https://ajxs.me/blog/Introduction_to_Reverse-Engineering_Vintage_Synth…
The ARQ96 is an incredibly niche product all things considered, but especially compared to the DX7. It's also ~10 years old rather than ~40 years old. It's a completely different beast.
Zoom released few firmware updates, but v1.x to v2.x was a very significant change. Are you using the latest version?
fuhsnn · 2024-10-21
For "any size" I was kind of expecting arbitrary sized mantissa/exponent, can be useful for emulating weird DACs, for example, 12-bit mantissa and 3-bit exponent[1].
[1] https://ajxs.me/blog/Yamaha_DX7_Technical_Analysis.html
metaphor · 2021-10-21
> In mathematical terms, FM synthesis is achieved by using the instantaneous amplitude of a sound wave (the modulator) to adjust the rate of change in the phase angle of another wave (the carrier).
> As convoluted as this sounds, it makes more sense when visualised: [1]
...but does it??
[1] https://ajxs.me/static/img/articles/dx7_technical_analysis/frequency_m…