Most soundcards these days are capable of more than plain stereo output. To take advantage of this, HSTREAM and HMUSIC channels can be assigned to specific speakers. For example, channels can be played on the front or rear speakers to effectively have 2 separate stereo outputs from the one device. A 3rd stereo output is available on 5.1 cards, and a 4th on 7.1 cards. The speakers member of the BASS_INFO structure can be used to check how many speakers are available. A channel that is assigned to an unavailable speaker will not be heard during playback.
BASS_SPEAKER_FRONT | The front speakers. |
BASS_SPEAKER_REAR | The rear speakers. |
BASS_SPEAKER_CENLFE | The center and LFE (subwoofer) speakers in a 5.1 setup. |
BASS_SPEAKER_SIDE | The side speakers in a 7.1 setup. |
BASS_SPEAKER_FRONTLEFT | The front left speaker. |
BASS_SPEAKER_FRONTRIGHT | The front right speaker. |
BASS_SPEAKER_REARLEFT | The rear left speaker. |
BASS_SPEAKER_REARRIGHT | The rear right speaker. |
BASS_SPEAKER_CENTER | The center speaker in a 5.1 speaker setup. |
BASS_SPEAKER_LFE | The LFE (subwoofer) speaker in a 5.1 setup. |
BASS_SPEAKER_SIDELEFT | The side left speaker in a 7.1 setup. |
BASS_SPEAKER_SIDERIGHT | The side right speaker in a 7.1 setup. |
As well as these defined speaker location flags, there is the BASS_SPEAKER_N(n) macro that can be used to access the extra speakers of soundcards that have more than 8 speakers, where n is the n'th pair of speakers (up to a maximum of 15). For example, BASS_SPEAKER_N(1) is equivalent to BASS_SPEAKER_FRONT. To use a speaker in mono, add the BASS_SPEAKER_LEFT or BASS_SPEAKER_RIGHT flags.
The stereo speaker assignment flags can also be used with mono channels, so that, for example, a mono channel can be played on both the front speakers. But mono speaker assignment flags cannot be used with stereo channels, so, for example, it is not possible to play a stereo channel on just the center speaker.