# Muzikus - a music theory training program

**URL:** <https://ziggit.dev/t/muzikus-a-music-theory-training-program/17087>\
**Category:** Showcase\
**Created:** [August 5, 2026, 8:22am UTC](https://ziggit.dev/t/muzikus-a-music-theory-training-program/17087 "2026-08-05T08:22:03Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![SpinTensor](https://ziggit.dev/user_avatar/ziggit.dev/spintensor/32/2942_2.png) [@SpinTensor](https://ziggit.dev/u/SpinTensor)\
**Post date:** [August 5, 2026, 8:22am UTC](https://ziggit.dev/t/muzikus-a-music-theory-training-program/17087/1 "2026-08-05T08:22:03Z")

</div>

# Muzikus:

* * *

[Muzikus](https://codeberg.org/SpinTensor/muzikus) is a music theory training program. It was inspired by the musikus MS-DOS Programs I got in school.

This project heavily relies on dvui, which is an excellent gui lib.  
I am not a gui programmer. I usually work on high performance scientific applications. So please forgive my lack of knowledge in UI Design.

This project is not finished, but only a first version with its first feature: a note name trainer for various clefs. There is (hopefully) more to come. Unfortunately I don’t have much time to work on it.

The music theory codes have an extensive testsuite to make sure that every corner case is covered. Also I like when tests turn green and they all pass. More tests, more passing, more happiness for me 🙂 .

I am open to critique regarding my code. I know that it is not perfect, and I’m still experimenting, on how to structure stuff to make it more easily extendable.

I hope you like the program and check it out on Codeberg: [https://codeberg.org/SpinTensor/muzikus](https://codeberg.org/SpinTensor/muzikus)

### Supported Zig versions

Muzikus is written in zig 0.16.

### “AI” / LLM usage disclosure

Every line in muzikus was written by me.  
Human contributors are welcome, although I have very limited time to review PRs. Sorry.  
There will be no “AI” or LLM contributions in the foreseeable future.

---

<div class="post-metadata">

**Author:** ![xash](https://ziggit.dev/user_avatar/ziggit.dev/xash/32/5384_2.png) [@xash](https://ziggit.dev/u/xash)\
**Post date:** [August 5, 2026, 1:19pm UTC](https://ziggit.dev/t/muzikus-a-music-theory-training-program/17087/2 "2026-08-05T13:19:17Z")

</div>

Oh, I was actually looking for something like this! I want to play with music again, but this time more focused on creating instead of following notes. Can’t wait for some of the planned features, but no pressure. My piano is collecting dust for a few years now, it can wait a bit longer. (:

---

<div class="post-metadata">

**Author:** ![xgallom](https://ziggit.dev/user_avatar/ziggit.dev/xgallom/32/7367_2.png) [@xgallom](https://ziggit.dev/u/xgallom)\
**Post date:** [August 7, 2026, 12:01pm UTC](https://ziggit.dev/t/muzikus-a-music-theory-training-program/17087/3 "2026-08-07T12:01:00Z")

</div>

Are you using musescore font?

---

<div class="post-metadata">

**Author:** ![SpinTensor](https://ziggit.dev/user_avatar/ziggit.dev/spintensor/32/2942_2.png) [@SpinTensor](https://ziggit.dev/u/SpinTensor)\
**Post date:** [August 7, 2026, 12:28pm UTC](https://ziggit.dev/t/muzikus-a-music-theory-training-program/17087/4 "2026-08-07T12:28:10Z")

</div>

I was thinking about it, and I tried, but musical glyphs are very weird when you want to typeset them. If I remember correctly the glyphs origin is not consistently defined, so you would need to have special offsets for every glyph you want to draw.  
In the end I decided to go with PNGs of glyphs that I need (not from leland font (musescore), but sort of self drawn). This way I can incorporate the Glyphs directly into the binary and do not rely on external assets, that would need to be shipped with the application.

---

<div class="post-metadata">

**Author:** ![dee0xeed](https://ziggit.dev/letter_avatar_proxy/v4/letter/d/3ab097/32.png) [@dee0xeed](https://ziggit.dev/u/dee0xeed)\
**Post date:** [August 7, 2026, 7:36pm UTC](https://ziggit.dev/t/muzikus-a-music-theory-training-program/17087/5 "2026-08-07T19:36:51Z")

</div>

> [@SpinTensor](#):
>
> music theory

maybe, you’ll find this doodad somehow useful

> **[GitHub - dee0xeed/xjiss: Just Intonation Synthesizer (X11+ALSA)](https://github.com/dee0xeed/xjiss)**
>
> Just Intonation Synthesizer (X11+ALSA)

> [@SpinTensor](#):
>
> Muzikus is written in zig 0.16

i’ve started to adjust `xjiss` for 0.16, but… not much time for doing that, alas ☹
