Author Topic: BASS Threaded Mixer Library  (Read 1830 times)

3delite

  • Posts: 895
BASS Threaded Mixer Library
« on: 15 Feb '17 - 00:24 »
Hi!

Beta of BASS Threaded Mixer Library is released.

BASS Threaded Mixer Library is a BASS add-on that implements a BASS mixer channel which mixes the plugged-in source channels in separate parallel threads to be used with professional low-latency ASIO output.
The more sources are added and the more DSP/processing is needed for the sources the more effective the library is compared to single threaded processing.
The library is especially useful for CPUs that have limited single-core performance but have a lot of cores, like the octa-core AMD CPUs.

Features:
  • Add any number of source channels to the mixer
  • When only 1 source is plugged-in no threading is performed
  • Achieve nearly real-time, low-latency ASIO output with heavy DSP/processing of the sources
  • Multiply off-line processing speed (BASS_ChannelGetData call) by the number of CPU cores in the system
  • Matrix mixing supported

Official home page: BASS Threaded Mixer Library

Demo app. to test and compare the difference with multi-threaded processing and Delphi and C++ API included in the package.
« Last Edit: 27 Feb '17 - 03:39 by 3delite »

rv

  • Posts: 191
Re: New: BASS Threaded Mixer Library
« Reply #1 on: 15 Feb '17 - 10:49 »
Did you made some comparatives measurement with and without your library.
What is the gain values in your testings?

3delite

  • Posts: 895
Re: New: BASS Threaded Mixer Library
« Reply #2 on: 15 Feb '17 - 16:53 »
As I wrote there is a demo app. in the package you can check with your setup.

I have an i7 4790K which is the 2. fastest single core cpu today. With it the lowest speed gain is 2x. With heavy processing I got increase around 3x.

But I would be interested in the results of other setups too.

3delite

  • Posts: 895
Re: New: BASS Threaded Mixer Library
« Reply #3 on: 20 Feb '17 - 20:07 »
The package has been updated, updates since first post:

  • Added BASS_ThreadedMixer_SetMatrix()
  • Fixed output when only 1 source is plugged-in
  • Fixed BASS_ThreadedMixer_RemoveSource()
  • Added automatic removal of source when the source channel is freed