Clarify that the hrtf file format doc is probably likely to be stable
Move the processing protocol into objects in preparation for add/mul
All objects have a mul property
If obj.mul != 1.0, apply additional multiplier stage
The attenuator is dead, may it rest in peace
We used to normalize crossfaded coefficients, but this caused extreme artifacts
Rewrite and fix the long-standing bugs in delay lines, which now work to an accuracy of +-1 sample and support feedback.
Fixed a small bug in delay lines and reintroduced multichannel support
Support for readonly properties
If a property is readonly, disable range checks because it's only set by Libaudioverse itself
Give delay lines read-only property: delay_max
What we used to call callbacks is now known as events
Pull object. Done on the callbacks branch because we need something that uses a callback
Add pull object to metadata.y with callback
Callbacks are now binding in Python
Pull node callback now has userdata
Introduced an object for listening to the graph
Python example that uses graph listeners to record a wave file
Undo lavAnalyzerObject because this is dangerous if the user tries to use multipliers
Custom object plus python example making custom ringmod