2017-04-12 00:10:09

Some of you already know about this, but I've been working on getting us the software needed for 3D audio for a long, long time now.  And I'm trying to fund it.  I need to be able to put a few months of full-time work into it to get a stable release out the door.  People are already using it in various projects.  The most notable was Ctoth's FPS prototype from about a year ago.

The full pitch as well as a place to donate is here.  the goal is $17000, of which I lose about $2000 to GoFundMe fees.  We're already at $1000.  If I can get everyone who sees this thread to give me $5, we can get a whole lot further.  This is doable.  I am promoting Libaudioverse in a whole lot of places beyond this community--it has applications in a whole lot more than games--and some of those people don't flinch at giving projects they like $5000 or more.  What I need to do now is get this as far as is possible through smaller donations, because the bigger fish like to see that there's a lot of people interested when considering large contributions.

At the moment and as an example of an alternate application (but one which will be useful to some of you, possibly more so than a game), we have a graphing calculator prototype.  I've got at least one friend for whom this is the only graphing calculator he's had access to.  To any developers who see this, that's around 500 lines of Python only.

I'm also looking into the possibility of producing a tool to visualize the weather around you and upgrading the Libaudioverse inside Ctoth's FPS prototype as additional demos.  The above-linked blog post talks about some improvements that need to happen to the 3D audio.  Since we've reached $1000 and it's probably only a few days of work, I'm going to try to make that happen over the next couple weeks, then repost the calculator.  There are not many demos at the moment. But that is changing, and I will be posting them all here and on my blog, plus a variety of status updates.

To clarify two points worth clarifying, Libaudioverse is a library for programmers.  You can't just pick it up and have a game, you do have to know coding.  And it will be cross platform if I can meet the funding goal.  Software using it will be able to run on Windows, Mac, and Linux, if it chooses to.  I can't force game developers to do that, but I certainly won't be the obstacle.  At the moment it's Windows and (with a very latent audio output system) Linux.

I've been working on this for over 3 years.  At this point I have seen only what the GoFundMe has provided, in terms of monetary return.  I'm really hoping we can do this.  If we wanted to hire a programmer to do this from scratch, we'd be paying them at least $100000.

And, in closing, this is the official thread.  There are previous threadshere and here.  I'd appreciate it if we can keep questions to this one, so that I can monitor one place and not miss anyone.

And for programmers, the manual is worth a skim, particularly the node reference.  Also, the GitHub repository.

Thanks.

My Blog
Twitter: @ajhicks1992

2017-04-12 07:58:35

Hi.
2 questions:
1: Do you have a link to the fps you mention so we can hear the engine in works?
2: The graphic calculator, does this only show the sounds in some inaccessible graphics, or can this be used to hear what the engine can do?

Best regards SLJ.
Feel free to contact me privately if you have something in mind. If you do so, then please send me a mail instead of using the private message on the forum, since I don't check those very often.
Facebook: https://facebook.com/sorenjensen1988
Twitter: https://twitter.com/soerenjensen

2017-04-12 19:20:54

Hi Camlorn,

It is good to see you posting on audiogames.net again.
I'm really excited to see where you go with developing tools to help blind people understand complex data sets and math.
You seem uniquely qualified to take that area to a whole new level.

I am curious about how libaudioverse compares with Steam Audio.
Would you explain the pros and cons of each?

Here is a link that discusses some of the features of Steam Audio:
https://steamcommunity.com/games/596420 … 6582988261

Here is some of the info from the page:
Steam Audio[valvesoftware.github.io] is now available, delivering an advanced spatial audio solution for games and VR apps. Steam Audio includes several exciting features that significantly improve immersion and open up new possibilities for spatial audio design.

The Steam Audio SDK is available free of charge, for use by teams of any size, without any royalty requirements. Steam Audio currently supports Windows, Linux, macOS, and Android. Just like Steam itself, Steam Audio is available for use with a growing list of VR devices and platforms.

Steam Audio SDK is not restricted to any particular VR device or to Steam.

What is Steam Audio?
Steam Audio adds physics-based sound propagation on top of HRTF-based binaural audio, for increased immersion. Sounds interact with and bounce off of the actual scene geometry, so they feel like they are actually in the scene, and give players more information about the scene they are in.

What can Steam Audio do?

Binaural Rendering
The simplest thing that any spatial audio technology must do is HRTF-based binaural rendering. This refers to a way of recreating how a sound is affected by a listener's head, ears, and torso, resulting in subtle cues that allow you to pinpoint where a sound is coming from.

Steam Audio's implementation of HRTF-based binaural rendering has a very low CPU overhead; you can handle hundreds, even thousands of sources using a single CPU core. It also minimizes the frequency coloration of audio clips, while maintaining good localization.

Occlusion
Steam Audio simulates how objects occlude sound sources. In addition to the typical raycast occlusion that many game engines already support, Steam Audio supports partial occlusion: if you can see part of a sound source, Steam Audio will only partly occlude the sound. Steam Audio uses your existing scene geometry to occlude sounds, so you don't need to create special occlusion geometry just for sounds.

Physics-Based Reverb
Reflections and reverb can add a lot to spatial audio. Steam Audio uses the actual scene geometry to simulate reverb. This lets users sense the scene around them through subtle sound cues, an important addition to VR audio. This physics-based reverb can handle many important scenarios that don't easily fit within a simple box-model.

Steam Audio applies physics-based reverb by simulating how sound bounces off of the different objects in the scene, based on their acoustic material properties (a carpet doesn't reflect as much sound as a large pane of glass, for example). Simulations can run in real-time, so the reverb can respond easily to design changes. Add furniture to a room, or change a wall from brick to drywall, and you can hear the difference.

Real-Time Sound Propagation
In reality, sound is emitted from a source, after which it bounces around through the environment, interacting with and reflecting off of various objects before it reaches the listener. Developers have wanted to model this effect, and tend to manually (and painstakingly!) approximate sound propagation using hand-tuned filters and scripts. Steam Audio automatically models these sound propagation effects.

Steam Audio simulates sound propagation in real time, so the effects can change automatically as sources move around the scene. Sounds interact with the actual geometry of the scene, so they feel integrated with the scene.

Baked Reverb & Propagation
Just like light probes can accelerate high-quality lighting calculations by precomputing lighting in static scenes, Steam Audio can bake sound propagation and reverb effects in a static scene. For largely static scenes, baking can significantly reduce CPU load while allowing you to improve the quality of sound propagation and reverb effects.

If your geometry is mostly static, you can bake reverb during design. If a sound source is fixed in place, you can bake sound propagation effects during design. For VR experiences where you have only a few listener positions, but multiple moving sources, you can bake sound propagation effects during design too.

Putting It All Together
Steam Audio can apply binaural rendering to occlusion, reverb, and sound propagation effects, so you can get a strong sense of space and direction, even from reflected sounds, reverb entering a room through a doorway, and more.

~ Ian Reed
Visit BlindGamers.com to rate blind accessible games and see how others have rated them.
Try my free JGT addon, the easy way to play Japanese games in English.
Or try the free games I've created.

2017-04-13 05:12:36

SLJ, in answer to your question 2, as someone who's briefly messed about with the calculator, it uses sounds to represent the graph, not inaccessible graphics. smile

If you have issues with Scramble, please contact support at the link below. I check here at least once a day, so this is the best avenue for submitting your issues and bug reports.
https://stevend.net/scramble/support

2017-04-13 08:52:17

Hi.
Thanks for the information about the graphical calculator.
I have briefly read the examples on the website and listened to the audio demos, but it don't make sense to me. I expected to hear the sounds in front of me, from behind, from above and below. But the tone is only going up and down in pitch and panning from left to right.
I really hate to say this and I'm doing what I can to be excited about the project, but without some real sound examples on what this thing can do, I only see the developers who really understand what it does wanting to donate... I mean, how do you expect people who aren't developers to donate to a project, where the only thing they have as sound examples is a tone panning from left to right?

Best regards SLJ.
Feel free to contact me privately if you have something in mind. If you do so, then please send me a mail instead of using the private message on the forum, since I don't check those very often.
Facebook: https://facebook.com/sorenjensen1988
Twitter: https://twitter.com/soerenjensen

2017-04-13 12:53:26

I am using Python 3.6 on Windows 10. What is the best way for me to go about trying out this library as a developer?

2017-04-13 16:20:48

@Slj
This graphing calculator is a demo primarily aimed at the math inclined. The panning sound is a sound representation of a graphing line of an equation. I am with you, I hope audio demos get released soon. Even though this library is not by any means just for gaming purposes, a gaming demo is what a lot of us are looking for because we are a gaming community. smile
However, Camlorn is working to get this to us as soon as possible. He knows that such demos would get us (well those of us who don't code for sure) more interested in the project. I myself know how cool this thing is simply because I have worked with it, and read through a lot of the manual. But I won't be the one to produce the demo simply because I am not advanced enough in that area to do the library the justice it deserves.
@Hector at the bottom of Camlorn's post, the very bottom I mean, there's a link for the Git repository containing Libaudioverse. This contains information about how to get started, install it, and a link to the manual.

If you have issues with Scramble, please contact support at the link below. I check here at least once a day, so this is the best avenue for submitting your issues and bug reports.
https://stevend.net/scramble/support

2017-04-16 20:28:36

Followup post with info for interested devs after this one:

I am still alive.  I am not monitoring the forum beyond these threads.

the reason I have been moving slowly on this is because the PR got ahead of me and I am playing catch up, and a 6-month project just landed and I had to document it and am now following something like 4 threads for it, each much larger and more technical than this one.  In terms of priorities, this is the one that's literally letting me claim I've got code in use by Dropbox and Google.  In terms of practicalities, getting a remote job is currently my best option.  For any devs who are curious, optimizing Rust struct layout.  This post is already over 6000 views, and it looks like it could top out around 10000.  Some of these people hire.

Libaudioverse was misadvertised, primarily because I did not stay on top of it from the non-developer perspective over the last 3 or so years. 3D audio is something it does, not what it is.  You can also use it for a lot of other stuff like instrument synthesis; when midi is added, you'll be able to even play directly from the keyboard.  Or making voice changers, once it's got microphone support.  Or researching new reverb designs.  The graphing calculator is a more important demo than the FPS because the accessibility people like to fund projects like that and there is almost no money in the audiogaming community for anything, let alone something that isn't directly a game.  If there is a community I am going to make the priority, it's the one where there's people who routinely fund projects with much loftier funding goals than mine.  Either I can get someone to fund Libaudioverse directly, or I can get someone to fund the graphing calculator and then fix Libaudioverse bugs and such directly related to the graphing calculator.  But either way I end up with money, the thing I produce with the money is valuable, and the money moves me towards specific goals I want to move towards.

The first primary difference from Steam audio is that it is open source.  Again, I imagine that few people here care about the philosophical debates in the programming community around this, but suffice it to say there are people for whom "This project is free and open source software competing with these things from these corporations over here" is a compelling story, and again some of them do have large sums of money.  There is a potential plan to get it in front of a large number of these people; I can't discuss specifics because some of it involves information that's not public knowledge as of yet.

The second difference from steam audio--perhaps the more important one--is that I skimmed their manual and could not immediately work out how to use steam audio.  This says something.  I probably can figure it out, but I can't figure it out instantly despite being extremely qualified.  I do not believe it loads files.  As far as I can figure, it's specifically designed to integrate into something that already provides the other services an audio engine needs like file input and sound card output, and also you have to use it with 3D geometries in the format sighted games work with (which we can't work with as blind developers).  I may at some point integrate it into Libaudioverse in the same way that you'd integrate it into Unity.  Libaudioverse does provide the needed services.  But I do have philosophical objections and can probably duplicate a lot of it really easily anyway, and audiogames can't use it even if it is there since our engines are using geometry data that's something like 100 times less complex than what it wants you to use with it.

No one in this community has the skill to go from no code to a working shades of doom clone in less than a week of beyond full-time development (as in, wake up, code every waking moment, go to bed, repeat).  You also effectively need a sound designer putting in as much effort.  I have asked ctoth for his prototype and art resources because it already uses Libaudioverse and I should be able to upgrade the version inside it in very short order.  I am still waiting to hear back.

There will be HRTF demos hopefully this week, plus a big blog post that goes into the mathematics of how it works.  I need to make massive improvements to the libaudioverse HRTF, but I need other things to die down and give me the time to work on it.  I'm hoping by next weekend; if not, I don't know when because someone invited me to a 4-day conference and I don't have to pay anything except food so you'd better believe I'm going.  If this isn't done and written by the 25th it won't be up until after the 30th.

So, a point: I'm trying to fund this so I can put all this other stuff aside for a few months.  On the one hand we need demos, and I know this and am doing it.  On the other hand, trying to get me to move faster kind of misses the point.  I want to.  But I am the blind gay liberal atheist in the conservative Christian household in the middle of Florida with no public transportation closer than half an hour, and my additional health issues that have kept me here and unemployed are finally in the final stages of solving themselves (there are things worse than blindness).  Leaving is consequently a major immediate improvement in my life, but it requires money and so things which make me money are priority.  If Libaudioverse can't make me money then, in the long run, Libaudioverse will be the casualty.  I will be disappointed if this happens, but not for long because I'll be busy having an actual life and actual real-world friends and all that nice stuff that I don't have now.

My Blog
Twitter: @ajhicks1992

2017-04-16 20:32:23

Info for developers:

To install Libaudioverse into Python 2.7 or 3.3+, do pip install --pre libaudioverse.  The --pre is important; it's an alpha release and you'll get 0.8 instead of 0.9 if you don't.

This will work on 32-bit or 64-bit windows, you should modify the pip invocation to run against the right version of Python if you have multiple ones, and installation on Linux works but you need to build it from source and will have horrible audio latency until I have the time to write literally 1000+ lines of code.

The manual is here.  It should be mostly up to date and has tutorials, but do let me know if something doesn't work.

My Blog
Twitter: @ajhicks1992