cspctl (1) - Linux Manuals

cspctl: Sound Blaster 16 ASP/CSP control program


cspctl - Sound Blaster 16 ASP/CSP control program


cspctl command [-options] <filename>


cspctl is a simple CSP microcode loader for Crative Sound Blaster 16ASP and some Sound Blaster AWE32 sound cards with Creative Signal Processor (CSP) chip (CT1748A) installed. cspctl can also be used as a post-install function to snd-sb16-csp module to load default codec at module installation. If CSP chip is succesfully detected and initialized, it will be installed as a hardware dependant device hwC0D2 into /dev/snd directory. Currently, following codecs can be loaded to CSP device:
wfm0001a.csp    QSound decoder
wfm0006a.csp    A-law codec
wfm0007a.csp    u-law codec
wfm0011a.csp    IMA ADPCM codec (distorted output for IMA test files)
wfm0200a.csp    Creative ADPCM codec (sounds like Intel/DVI IMA ADPCM compatible)
wfm0202a.csp    Fast Speech 8 codec
wfm0203a.csp    Fast Speech 10 codec

These codecs are not yet supported by ALSA:

wfm0201a.csp    Text2Speech decoder

Qsound microcode file has four functions, each function is a decoder for different sample rate. Rates for QSound functions #1, #2, #3 and #4 are 44100, 22050, 11025 and 8000Hz respectively. IMA ADPCM and FastSpeech codecs are formed of two functions, the first one is for capture and the second one is for playback. A-law and u-law codecs have only one function. To load for example function #2 from QSound microcode file (decoder for 22050Hz), run as follows:

% cspctl load -f 2 -d QSound wfm0001a.csp

After successful loading, /proc/asound/SB16/cspD2 will show:

Creative Signal Processor [v1.0]
State: -x--L
Codec: QSound [func #2]
Sample rates: 22050Hz
QSound decoder disabled

With QSound decoder microcode loaded, all simple PCM file formats can be played with QSound 180 degree positioning applied. QSound element is dynamically added into mixer structure as 3DEffect1-space element. It will only show if support for CSP has been compiled into ALSA drivers, CSP chip has been found, and QSound codec is loaded into CSP. When enabled, QSound position can be dynamically changed by mixer slider, and proc interface should follow the state of CSP chip and its current QSound position:

Creative Signal Processor [v1.0]
State: Qx-RL
Codec: QSound [func #2]
Sample rates: 22050Hz
QSound decoder enabled
Processing 16bit mono PCM samples
Qsound position: left = 0x9, right = 0x9

Driver supports autoloading of u-Law, A-Law and Ima-ADPCM hardware codecs. Autoloading is active only when there is no microcode loaded to CSP, and there is no need to preload appropriate *.csp files. To unload manually loaded microcode, you should run

% cspctl unload

If hardware codec microcode has been manually loaded, then CSP will support only loaded PCM format and autoloading will be disabled. In such case, proc interface will show loaded codec properties:

Creative Signal Processor [v1.0]
State: -x--L
Codec: IMA-ADPCM [func #2]
Sample rates: All
PCM format ID: 0x400000 (16bit/-) [mono/stereo] [playback/-]


Load microcode from filename to CSP.
Unload microcode from CSP.


-h, --help
Display a short help.
-c card
Select a card number. Option defaults to 0.
-f function
Select a function from microcode file. Option defaults to 1.
-d description
Optional microcode description string.


Uros Bizjak <uros [at] kss-loka.si>.