-
Notifications
You must be signed in to change notification settings - Fork 535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add reference to Binaural Audio database #835
base: master
Are you sure you want to change the base?
Conversation
Maybe this would be better suited for the wiki pages? |
Ohh that's right. |
To be honest, that page looks a little dense with information, and it's hard to read. A number of columns seem unnecessary, and I'd prefer to keep it to games/apps that use OpenAL natively (without a third-party wrapper like DSOAL). The instructions for setting HRTF should largely be the same regardless of the app; if the app has an HRTF option, use it, otherwise, set a config entry either with the app (an alsoft.ini/conf next to the executable), or with a user config file. |
Agreed; the spreadsheet view really is a bit overwhelming 😅 And yeah, to us, setting up OpenAL Soft in OpenAL games is a piece of cake, though the goal of the database is to be thorough yet easy enough that someone not familiar with it can do it, especially for specific cases where there are extra steps required like editing a game config, installing a fix/mod, changing some setting in Windows, etc., and also to have a complete-ish list of games that are at least potentially compatible, especially if they've been tested. I'm open to suggestions to improve database viewing/navigation. That's why I've been playing with a few alternatives:
They all have pros and cons, so I'm hoping to find a better all-around, no-compromise method soon. 🤞 |
Actually, couldn't there some sort of actual built-in defaults file? Somewhat like proton, mesa or dxvk have. I'm not really sure if this could apply to openal-soft (in fact, now that I think to it, I don't even know what the list is useful for if just about every fix is simply "install the dll, and maybe HRIR") but with dsoal you certainly would like to know and handle at least when games have inverted axes. |
The database doubles as a downloadable profile configuration sheet. Also, some native OpenAL games also require some tweaks, including flipping axes which doesn't only happen DSOAL 😅 |
Yeah, I don't use OpenALSoft but even I agree that it's just too much data. It's hard to tell what each column is for or what columns are important, so I'm struggling to figure out what I need to keep and what to get rid of just for HRTF/configurations in general. Of course, it doesn't help that the HRIRs are all in the "guide" column from what I can tell (I created a JSON dump of the CSV via Pandas), which makes doing something like downloading all the projects, or providing a list or something, rather tricky. |
I find it particularly odd that every openal game with problems, is FOSS or basically a super indie one... Anyway I guess that still does answer my question. I think only |
@ethindp This is still the tip of the iceberg. The database contains 10 tables, and the table shown above is the Profiles (configuration report instances) table, which has over 200 fields, I kid you not 😅. But links are shared views, which are meant to show only information that's important/relevant for a specific case and in a certain way, as a subset of the table (individual sorts, filters, groups, etc.), so it really depends on what each person wants to get out of the database at a given moment. Like the Settings field above is only intended to be read by my tool to perform file edits so the user doesn't have to, while the Specific steps is stuff for the user to do. However, I don't know if non-contributors can create/save their own views, though the Interface does update the (shareable) link when you use filters like this.
There's a database entry submission form that's been generalized enough to encompass other HRTF software/platforms, so anyone can add settings into the Manual Steps or just pick a Manual fix (stuff like run as admin/XP, flip axes, adjust reverb, etc. that many games use). My tool pre-fills a link to submit configurations easily so the user just has to specify whether it works and add any more relevant details like this. And to answer to some questions, the fields are usually self-explanatory, otherwise you can hover the cursor over the little ℹ️ next to them for a description. also I prefer to record as many technical details as we reasonably/conveniently can now so that we can use/hide certain info down the road. So @kcat let me know how (or if) you'd like the database information shown. Like which fields, sorting, filtering would you recommend? anything other than the profile title and guide fields (which includes extra steps/settings, if any)? With all that in mind, I should point out that the database is still a work in progress so there's some stuff that needs updating. So any feedback/help is always appreciated. 👍 |
I meant, database to ship within the dll. |
Ah, I see now. If kcat's or any other devs are interested, I'd be willing to accommodate a view with relevant/important database attributes to facilitate an implementation into the DLL itself, since OpenAL Soft knows the executable's filename and path which could be used to link them to a profile, kinda like how SuperDepth3D (a ReShade addon) does. |
I don't see much that a database built into the DLL would be useful for. At best I could see some workarounds for various quirks some apps have, or perhaps default NFC or distance scales for apps that don't/can't set them itself, but that would need to be coded in by hand rather than extracting some values from a database (and I'm not sure the executable name is always the best to base detection on, since sometimes quirks or behaviors can be specific to certain app versions, some apps can have multiple executable names (especially crossplatform apps), and some apps may not have their own executable, e.g. Java apps point to the Java executable rather than the |
The database view I use for my tool already includes multiple executable filenames as well as other methods to match games/apps to profiles, like parent folders, Steam/Ubisoft/GOG/Epic/etc IDs, versions, launch parameters and I could always add more if needed. But I take it there's not enough interest in using those directly in OpenAL Soft at the moment. In any case, to go back to the main subject, do we still want a link to a list of games/apps compatible with OpenAL Soft in case the database contains crucial information that's not as obvious as the DLL swap? |
It could be useful. The columns I'd expect to be desirable would be, obviously the name, platforms the game supports natively, whether it uses EAX/EFX and the version of such, and whatever errata there is if the game or OpenAL Soft needs some tweaks (which should be reflective of the latest OpenAL Soft release). Perhaps also a column indicating if the game was designed to use OpenAL Soft natively or just uses OpenAL generally, though the games may not provide that information for it to be reliable. And also whether it does full 3D audio or virtualized speaker output (though I don't suspect many things do the latter, aside from things like mpv or other media players). |
Addresses PR kcat#835
That's simple enough: https://airtable.com/shrFuXB7rQYET9H1J
Also, added this mostly pre-filled form for people to add new ones easily. |
What I said/meant. |
It would be nice if the page could separate them into separate lists (names starting with Some of the notes are also a bit vague and confusing. "OpenAL is DS3D wrapper"? "Citation needed"? "OpenAL maps sound to SDL"? It's also odd to see The Platform column seems to be somewhat weird, as sometimes a game will be listed once, e.g. with Windows+Linux, and other times a game is listed multiple times with Windows on one and Linux on another, with no apparent difference. It also seems to list platforms that an app emulates instead of just what it runs on, e.g. Dolphin lists Nintendo Wii + Nintendo GameCube + Nintendo64 + Windows when it runs on Windows + Linux (+ OSX?) (it also lists Dolby Surround and Dolby Pro Logic II under Features, which don't have anything to do with OpenAL/OpenAL Soft). A number of games also seem to be listed multiple times, particularly the ones using GZDoom (e.g. there's |
Done. Now they're grouped by the title's initial character. You can right click > Collapse all to fold all groups if needed.: https://airtable.com/shrFuXB7rQYET9H1J
While it has all entries in 1 page, it only loads as many as it can display at one time, so unlike the apps I mentioned earlier, the spreadsheet views don't load the entire database all at once, so it's fairly efficient.
Yeah, the full view is a compromise between data priority/preview and screen space.
Yeah, in those cases, I just copied the notes from the original sources for completeness. In this case, this OpenAL list.
Ahh, yes. In that case, that profile's status was set to
Yeah, I dumped sources like PCGamingWiki, which lists multiple OSs for its entry so it's hard to determine if the HRTF/spatial/surround stuff applies to all or some platforms. That's why those are usually marked as Untested, so that people can review or duplicate the profile and and specify a particular OS. In other cases, only a single platform was specified, which is what I prefer, so I'll probably end up splitting the former by platform eventually.
I think I did it this way to be able to differentiate e.g. native Windows games from say, console games emulated on Windows (since the database also includes console games natively like for PS5 3D audio) and which specific console, but I've been rethinking this since I usually specify the emulator alongside the base game in those profiles.
IIRC Dolphin uses a custom implementation of FreeSurround, which can decode Dolby Surround and Dolby Pro Logic II, but for some reason that's only available for some audio backends like cubeb and OpenAL (/Soft) even though they don't do the surround decoding themselves.
Good catch. there are still some kinks to iron out and the game variations (base, expansion pack, mod, remakes, open source reimplementations) can make things harder to categorize but those are easy to fix once I find them. Airtable makes it easy to edit even thousands of profiles at once, so my rule of thumb is to keep as much data from the source so I can mass-edit based on a common denominator if needed, and of course only show what's needed for a particular purpose/case👍 |
There's an ongoing effort to document the best known configurations to get 3D/spatial audio and virtual surround in games/apps so I figured it'd be helpful to have the filtered view that only shows relevant (OpenAL Soft) configurations in the ReadMe so people can find it more easily.