Skip to content

Optimize audio pathway #10079

Open
Open
@relic-se

Description

@relic-se

Currently, each object which utilizes the audiosample API is required to support multiple formats and manage common audio tasks independently. In order to reduce flash size, complexity, and the barrier to entry to create new audiosample objects (namely audio effects), the audio pathway should be streamlined by using a single format and adding shared resources for general audio processing tasks. These optimizations include but are not limited to the following lists. Feel free to suggest other areas of improvement.

For all audio objects:

For audio effects objects:

  • Unify double-buffering and sample processing implementation, including lfo ticking at regular intervals
  • Provide shared mixing implementation (linear and cross-fade)

If these updates are carried out, some audio object constructor arguments and properties may need to be deprecated such as bits_per_sample and samples_signed as they will be dictated by the output. sample_rate and channel_count are likely to still be necessary per object.

This issue was inspired by the discussion within #10052 with @jepler and @gamblor21.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions