hytheaway

(.github.io)

garrett's great hrtf (& sofa) functions (may 2025)

unoptimized, unfiltered, unabashed.
github

with god as my witness, if anyone tells me to use classes in my code, i will burn the whole thing down.

classes are a psyop by Big OOP to get "polymorphism" to catch on.

STOP USING CLASSES
- objects were not meant to be given private functions
- YEARS OF PROGRAMMING yet NO REAL-WORLD USE FOUND for POLYMORPHISM
- wanted your object to do something anyway for a laugh? we had a tool for that: It was called "GLOBAL FUNCTIONS"
- "yes, my data has children. yes, my textbox inherits from its parent" --statements dreamed up by the utterly Deranged
They have played us for absolute fools


more seriously, i'm not a remarkable programmer.
and this offering is quite bloated.
i mean, i'm half certain the entirety of matplotlib was included in the executable, just for a single function (lol).

however, what i am is interested in streamlining my process, and that's exactly what i did.
so, now you can, too.

introducing:
garrett's great hrtf (& sofa) functions
it's nothing fancy, but it has (or will soon have) all the functionality i really need something like this to have.

but, what do i need this for? what problem does this solve?
in short, whether it's analyzing HRTF files, or getting a closer look at the metadata of .SOFA files, or i'm just looking for a quick way to convolve a source with some filter, it's a bit of a pain to keep pulling out the terminal, wracking my brain to remember each of the commands to do what i want to do, and then just put it away without an easy way to go back to my work.
as far as i can tell, i haven't found someone else who has decided to present these commonly used functions in one portable and relatively straightforward GUI. and, being realistic, both myself and the people this is aimed at don't care about optimization of something like this all that much. i mean, i wrote it in python. if i wanted optimization, i would've made different life choices.

either way, i hope you enjoy it, if it seems useful. the github contains an executable for both macOS and windows.

oh, and, it takes about 10-15 seconds to launch on macOS. i promise it's not broken, it's just how pyinstaller handles matplotlib caching fonts. the windows version should have a splash screen, so no ambiguity there.