2017-04-03 19:44:27 (edited by Phil 2017-04-04 22:23:27)

Libaudioverse advanced 3D audio Development by Austin Hicks -
GoFundMe
https://www.gofundme.com/fund-libaudiov … velopment.

My name is Austin Hicks, and I'm a disabled computer scientist. I've

made significant contributions to the Rust compiler, am known in the

blindness communities
for work on accessibility, and graduated from Florida Atlantic

University with official recognition from the president.
It is a little-known fact that blind people have a form of video game,

usually made by a fellow blind developer and usually without

expectation of significant
monetary return.  These games rely fully on audio, and the state of

the art is advanced enough to give us such things as a playable doom

clone, a few realtime
strategy games, and even an online zombie-themed FPS.  Microsoft

provided advanced 3D audio and high quality effects through DirectX

until Windows Vista,
when they decided that it wasn't worth maintaining and replaced it

with a much more basic version.  There are commercial solutions that

make up for it,
but they all cost more than most single developers can afford.  So I

turned to the free and open source software ecosystem and, much to my

surprise, found
very little that was production ready.  I was therefore motivated to

spend my free time over the last 3 years on a cross-platform, free and

open source
library called
Libaudioverse. 
It is now very near the point of an initial release.
Libaudioverse
 is a dual-licensed GPL3/MPL2 package for all sorts of audio

synthesis tasks, roughly 15000 lines of C++ and all by me personally.

As a user, it looks
very similar to WebAudio.  It's fast, high-level, and incredibly

flexible.  Using head-related transfer function technology, it can

provide 3D audio through
headphones so good you can tell if something is above or below you. 

Porting it to new systems only requires writing audio backends and

implementing other
I/O interfaces.  It currently works on Windows and GNU/Linux. 

Applications include functioning as the audio system for a game,

implementing virtual instruments,
analyzing audio from a microphone, implementing media players with

realtime effects, and so on.
One interesting application of Libaudioverse is it's ability to be

integrated into NVDA, a free and open source screen reader for the

blind.  In this role,
it is currently used to provide information on controls as a

replacement for spoken information and to allow some basic exploration

of otherwise inaccessible
images.  In the longest run, I want to investigate using it to develop

tools that allow blind people to do accessible data science.
Libaudioverse was built from the ground up to be used from any

language. It's designed so that even languages like Python can be used

to design efficient
audio applications, and it even integrates with garbage collectors. 

In terms of features and capabilities, it attempts to sit between the

research-oriented
packages (things such as SuperCollider, Csound, Nyquist, etc) and the

low-level and/or domain-specific packages (OpenAL, PortAudio, etc). 

Unlike many
of the research tools, Libaudioverse is designed to be packaged, so

algorithms written using its components are immediately ready for

production use. 
And unlike the lower-level, domain specific options, Libaudioverse is

flexible.  It can also use multiple cores, something extremely

important on modern
systems.
In the long run, I want to do a lot more.  I have the knowledge to

implement more advanced functionality such as waveguide meshes and

other physical modelling
components, including accelerating some of it on the GPU.  As a

package with applications in gaming, porting it to phones and embedded

devices is important. 
If I get it running on the Raspberry Pi, it can be used in education. 

Though quite efficient already, I can still make it significantly

faster.  It could
be extended to stream from the internet, or even to build multi-

machine audio applications.
Unfortunately, I am a blind programmer who also suffers from a painful

condition known as Ulcerative Colitis, and I am now at the point where

I must begin
seeking employment or other money-making opportunities.  I have to

pick between a traditional job or having enough free time to work on

large projects
like this.  Libaudioverse is very important to me personally.  I would

prefer not to work on closed source software for some large, faceless

corporation. 
Instead, I'd love to continue producing free and open source software

that solves problems for everyone.  In addition to being incredibly

useful in itself,
finishing it would give me a resume suitable for someone who wishes to

continue working in the open source space.
I realize I have an insignificant reputation outside very specific

circles of the open source community, so I've set the current goal at

$17000.  While
I could certainly use more, this is enough money for me to complete

what already exists. It'd let me get it running on Mac, add Midi and

microphone support,
finish documentation, produce a web site, and hire another programmer

who can do graphics programming to help produce demo software showing

it off.  It
will also allow me to fix critical bugs after the initial release. 

With the initial release as a foundation, I intend to seek further

funding in order
to provide features I haven't started, such as the aforementioned

internet streaming support or the SIMD optimizations needed to run

efficiently on the
Raspberry Pi.
Libaudioverse already has concrete advantages over all other open

source solutions I am aware of.  In the long run, Libaudioverse will

effectively compete
with commercial, closed-source solutions.
They say time is money, but this isn't quite true for the open source

developer.  Money is in fact time, since we have to pay our bills

somehow.  It's
my hope that you'll help me have the time to finish this project. I've

already put a lot into it with no monetary return, and now I need your

assistance. 
In the event that we do not meet the goal, I'll do what I can. All

progress will of course be documented.
Help spread the word!
Report Campaign

$300 of $17k goal
2 percent
Raised by 3 people in 9 days

Check out Libaudioverse. It's in the pip repositories, and you can

find the readme here:
https://www.github.com/camlorn/libaudioverse

2017-04-03 20:13:33

Glad you shared this. He posted it on twitter and has had it running for some time now, but I don't think it's getting much in the way of funding. I am in full support of this since Libaudioverse is imo a great library.

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-04 01:04:31

Just donated. Everyone else do that, or if you can't donate, tell your friends. Spreading it round helps just as much. This is revolutionary in the world of audio gaming, and a lot more universal than Directx even when it was around.

2017-04-04 05:12:17

I bet a library like this could make something even like Minecraft accessible maybe, because of it's 3d sound capabilities

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-04 14:07:07

Well if the mindcraft devs used it, then yes, it could potentially become accessible with this library. I wonder how well the two would work together if you combined Libaudioverse and something like the Elias engine. I don't see why it wouldn't work, after all sound and music processing would be separate, but the possibility is there. You could potentially pack both libraries with a bgt distribution if you so chose.

2017-04-11 23:43:51

I'm about to consolidate these threads into one because there's also one on the developer's room, so this is kind of me finishing this one off.  I'm not monitoring the forum generally.

The GoFundMe is now over $1000.

We have a graphing calculator prototype now.  I have friends sending this to accessibility people, and accessibility people have money with which things might be funded.  I'm moving towards trying to make something for visualizing nearby weather.  No promises on that.  I haven't checked out a few last pieces of that puzzle and one of them is, like, how to actually find out about nearby weather.

Most games for the sighted couldn't successfully be navigated by a blind person if we teleported you into it and gave you a cane or a guide dog or whatever.  I've gone into this on these forums before: games for the sighted are literally the real world, including simulating individual rocks.  Think of the most unfriendly place you've ever been as a blind person in terms of navigation.  That's the newbie tutorial.  The rest of the game is worse.  3D audio might approximate what you get with your ears, but it can't go beyond that, and even getting to the point of being perfect is going to require high-end headphones and personalized datasets that can only be made by putting you in a special chair in a special room for 6 hours (or scanning you with a Kinect, but Microsoft isn't publishing how they pulled that off, or even how good it actually sounds, so probably not).

My Blog
Twitter: @ajhicks1992

2017-04-12 00:12:55

The consolidated thread is here.  If we can do questions there so I don't have to answer duplicates, that'd be appreciated.

My Blog
Twitter: @ajhicks1992