---
title: Updates to the Olaf audio fingerprinting system
canonical: https://0110.be/posts/Updates_to_the_Olaf_audio_fingerprinting_system
markdown_url: https://0110.be/posts/Updates_to_the_Olaf_audio_fingerprinting_system.md
id: 586
published_at: '2026-09-30T00:00:00Z'
updated_at: '2026-10-07T07:21:13Z'
author: Joren
tags:
- name: Code
  markdown_url: https://0110.be/tags/Code.md
- name: UGent
  markdown_url: https://0110.be/tags/UGent.md
---

# Updates to the Olaf audio fingerprinting system

Over the last few weeks I have been improving Olaf. [Olaf is an audio fingerprinting system](https://github.com/JorenSix/Olaf) with its core algorithm written in C. I have been focusing on ergonomics that make the C core easy to use: bindings, sensible CLI interfaces, and a REST interface. The updates:



* A [clean WASM build and demo](https://0110.be/attachment/2026.09.olaf/spectrogram.html) via Zig and a simple JavaScript wrapper, removing the Emscripten dependency.
* A REST API to allow remote query and store functionality.
* A REST load balancer to shard API requests over multiple REST back-ends.
* A web UI to show and listen to matches in a database.
* Minimal changes to the C core, with thread and memory safety as the goal.
* Improvements to the CLI, with quality-of-life improvements like JSON output and streamlined argument handling across the various subcommands.
* Python bindings are in decent shape again.
* A more exhaustive test suite.
* Some CI/CD improvements.

The updates  were an ideal fit for the recent Astra and Opus 5.5 AI models: fingerprinting is a very testable workload, and the already established context makes tasks clear to LLMs. The tech stack also helps: Zig interfacing with a C core have often clear errors during compilation. The risk of things going wrong is also small, since the main functionality in the core is essentially untouched.

<center>
<a href="https://0110.be/attachment/2026.09.olaf/spectrogram.html" alt="OLAF audio fingerprinting in WASM">
<img style="width:80%" src="https://0110.be/files/attachments/586/zig-wasm.png">
</a>
<br>
<small>Fig: Web-based spectrogram demo via the WASM version of OLAF. Click the image above to try it out.</small>
</center>
<br>

Check out the [OLAF repository on GitHub](https://github.com/JorenSix/Olaf) to explore the code, try the new CLI, REST API, and Python bindings, or run the WASM demo here. Feedback, bug reports, and pull requests are very welcome.
