i wrote a very simple user script to add volume control sliders to the new audio posts, but adding the slider elements makes react re-render everything so they immediately get removed. i could probably figure out a workaround, but every time i have to deal with react i lose a days off my lifespan so i'm not going to bother.
this has been nagging me so much that i gave it another try. react doesn't like nodes being added or replaced so i appended a text-based volume indicator to the file name and added a click handler to it that cycles the volume in 20% steps.
this works for audio posts that are loaded initially, but not ones loaded later. i tried a mutation observer to catch new nodes being added, and tried to look for various audio events like canplay and loadstart, but none of them worked. i could always try the nuclear option of an interval that checks all audio nodes on the page every second, but i'm not that desperate... yet.
this is less of a practical tool and more of a personal challenge at this point. i'm sure staff will add an official volume control soon anyway.
