Show HN: A small, simple music theory library in C99

github.com

57 points by lowsun 4 days ago


OptionOfT - 4 days ago

As someone who only has used C in conjunction with Rust...

Given that it is 2026, what are some of the thoughts that go into choosing C99 vs C23, which I presume has more quality-of-life features?

firmretention - 3 days ago

Yes, you sit at that piano every Sunday morning and play Mahler for Maris. But you hate Mahler. Besides Maris, who doesn't?

randomNumber7 - 4 days ago

What is the purpose of this and how would I use it (as someone who actually knows a lot about music theory and C programming)?

saivishwak - 3 days ago

Love the point of 100% test coverage.

ceteia - 4 days ago

Nitpicking:

https://github.com/thelowsunoverthemoon/mahler.c/blob/4ebfe8...

Should that type have been mah_acci instead of int? mah_acci doesn't seem to be used anywhere.

Also, have you considered using (edit) designated initializer syntax for some of the function calls that take in structs as arguments?

https://cppreference.com/w/c/language/struct_initialization....

    struct mah_scale scale = mah_get_scale(
        (struct mah_note) {
            .tone=MAH_C,
            .acci=MAH_NATURAL,
            .pitch=4
        },
        &MAH_BLUES_SCALE, notes,
        MAH_ASCEND,
        NULL
    );