Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    93comments
  2. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    56comments
  3. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    47comments
  4. San Francisco Onion Futures Company(onionfutures.com ↗)
    65comments
  5. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    411comments
  6. Apple M6 Pro Achieves the Highest Single-Core CPU Score in Geekbench 7(geekbench.com ↗)
    35comments
  7. Typesafe-computer-use drives a Mac toward a goal for 1/50th of a cent per step(github.com/awlevin ↗)
    48comments
  8. Cloudflare Quick Tunnels(cloudflare.com ↗)
    280comments
  9. SDCC – Small Device C Compiler(sourceforge.net ↗)
    17comments
  10. Science Is Open Software(jepedersen.dk ↗)
    38comments
  11. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    15comments
  12. How to Write with an LLM(sockpuppet.org ↗)
    327comments
  13. "The Secret Life of Circuits" is here(coredump.cx ↗)
    4comments
  14. Saving another 100TB of RAM(cloudflare.com ↗)
    78comments
  15. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    32comments
  16. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    87comments
  17. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    5comments
  18. NASA-IBM Lunar Foundation open-Source Geospatial AI Model(usra.edu ↗)
    2comments
  19. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    104comments
  20. Goroutine Leak Profiles(go.dev ↗)
    3comments
  21. OpenJev(openjev.com ↗)
    265comments
  22. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    88comments
  23. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    70comments
  24. Suppress vulnerabilities applying Kubernetes context to scans(github.com/alegrey91 ↗)
    1comments
  25. Minimal Phone 2(minimalcompany.com ↗)
    223comments
  26. Veronese's Dogs(publicdomainreview.org ↗)
    discuss
  27. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    13comments
  28. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    66comments
  29. Inside ZCode: Silently uploading your Git history to the cloud(ferstar.org ↗)
    100comments
  30. Cyclomatic Complexity in C#(ndepend.com ↗)
    19comments

Minimp3 – Minimalistic, single-header library for decoding MP3

44 pointsby 8y agogithub.com
10 comments
8y agoHN ↗

I wonder if this is small enough and performant enough to run on an Arduino. Or does it rely heavily on Intel instructions?

8y agoHN ↗

It looks like it's fast because it makes use of x86 and arm SIMD extensions, but you could probably get the scalar version to run on an arduino with some effort. It would likely be slow, though.

If you are looking at arduino audio applications, I would suggest either using a MP3 codec asic or pre-decoding to wav and compensating by using larger storage.

8y agoHN ↗

Yes, It's already been used on STM32F407 and ESP32.

8y agoHN ↗

Let me download mp3 files from the internet and run them through a completely new and untested parser and decoder. That sounds like a great plan.

8y agoHN ↗

Shouldnt really be a problem unless those mp3s have malicious code for that particular decoder

8y agoHN ↗

Looks like it was inspired by http://keyj.emphy.de/minimp3/ and https://keyj.emphy.de/kjmp2/ , always good to see more people trying to implement multimedia codecs. The theory behind it all is not easy to understand, but in practice it turns into a bunch of arithmetic and table lookups.

That said, this one being floating-point and requiring intrinsics makes it less portable.

8y agoHN ↗

You absolutely correct, it's indeed inspired by Keyj`s minimp3. Float-point used because it's hard do with 4-byte fixed-point type and achieve ISO conformance. We must to use different dynamic ranges for different parts of decoder (i.e. emulate own floating point) or more than 4-byte fixed-point type. Only float-point support is needed, SSE/NEON intrinsics is not required and can be fully disabled by MINIMP3_NO_SIMD.

8y agoHN ↗

This is really cool and educational! How difficult is encoding relative to decoding?

8y agoHN ↗

Encoders usually harder, because, for example, you can't verify it using reference vectors (there no exact reference to compare with). Also encoders like h264 contains big part of decoder as well, because it must reconstruct encoded frame internally for motion compensation.