Benjamin Saunders

Results 187 issues of Benjamin Saunders

@tesselode has described some interesting use cases where sounds are played according to complex rules with precise timing based on dynamic gameplay conditions. This is difficult to support: simply playing...

enhancement

Resampling in `stream::Receiver` and `SamplesSource` is currently hardcoded to use linear interpolation. Higher quality might be obtained by using higher-order polynomial interpolation, at a latency and CPU time cost. It's...

oddio presently only has good support for signals and filters arranged in trees. It's unclear if there's a compelling use case for more complex graph topology; if you have one,...

enhancement

A separate trait for discrete sources, convertible to continuous sources by combining with an interpolator (see also #12), could reduce code duplication by allowing interpolator reuse, and simplify certain source...

This is a cinema standard for object-based (i.e. mobile point source) 3D audio. It might be fun to provide tools for playing back such data streams, if they actually exist...

This could be as simple as a filter combinator that allows dynamically bypassing another filter, to easily toggle a low-pass filter on or off for a source, and/or a dynamically...

`Spatial` currently reduces amplitude per the inverse square law. This could be extended to account for greater absorption of higher-frequency sound in air, per e.g. https://computingandrecording.wordpress.com/2017/07/05/approximating-atmospheric-absorption-with-a-simple-filter/.

Directional audio is currently accomplished with per-ear propagation delays and direction-dependent amplitude. Convolution with head-related transfer functions (HRTFs) reportedly provides a stronger sense of direction, at the cost of per-source...

This is useful for skipping a potentially large copy when e.g. uploading texture data to a GPU, by decoding directly into a driver-allocated staging buffer or mapped memory. It would...