Proposed new features: filtering, distortion and convolution (reverb) #238
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Wanted to share an idea I had for the soundJs library to be able to support additional features such as: *filtering, convolution (reverb) and distortion. *
I've been working on an experimental sound project which needed these extra features, so I forked off the great soundjs library.
Looking for feedback and/or if there is a better way to implement this. I took the approach of adding to the audio node chain, which is by default in the original soundJs library as follows: pan => gain => destination, and is now: distortion => filter => convolver => pan => gain => destination
I tried to follow the conventions for private / public methods, object setting/getting for these new features.
The convolverBuffer property can be set directly (as an AudioBuffer), or can be passed a string which is the filepath to an impulse response (essentially a .wav file recording of a loud impulse which tails off in the space). If passed a filepath, the code will recognize that and attempt to read the file into an AudioBuffer automatically.