Software Mixer

Erik Massop edited this page Nov 4, 2017 · 1 revision

Sofware Mixer

What should the software mixer do and how should it be implemented?

implementation

  • xform
    • can be inserted as an effect
    • API is already there
  • special xform
    • like the ringbuffer, inserted by the server
    • probably good to support software volume fallback, but maybe not using current volume API
  • internal
    • can do more funky stuff than xforms
    • can silently replace hardware volume using current volume API

format support

  • signed/unsigned 8-, 16-, and 32-bit
  • float/double

input range

  • 0-100%
    • fits in well with hardware volume range
    • imits us to maximum and minimum range of the hardware
  • 0->100%
    • overlaps with hardware volume range
    • allows increasing volume of faint songs or normalization
  • -<100%->100%
    • overlaps with hardware volume range
    • allows phase inversion
    • allows increasing volume of faint songs or normalization

channel support

  • multiple channels should be supported separately

usage

  • always-on - user can just drop this in the chain and have software volume support all the time
    • controlled using xforms API, or
    • controlled using (new) softvol API
  • fallback - used only when there is no hardware volume support
    • controlled using xforms API, or
    • controlled using volume API
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.