SB(4)

πŸ“¦ version 11.0, in nixpkgs unstable

🌸 NAME 🌸

sb(4) β€” bestie, this is the SoundBlaster family (and compatible) audio device driver, and it's serving from the Kernel Interfaces Manual with main character energy. πŸ’–

✨ SYNOPSIS ✨

okay so here's the kernel-config tea, and pls copy it exactly character-for-character:

sb0    at isa? port 0x220 irq 5 drq 1 drq2 5
sb1    at isa? port 0x240 irq 7 drq 1 flags 1
sb*    at isapnp?
sb*    at pnpbios? index ?
audio* at audiobus?
midi*  at sb?
mpu*   at sb?
opl*   at sb?

πŸ’– DESCRIPTION πŸ’–

The sb driver has your back for the SoundBlaster, SoundBlaster Pro, SoundBlaster 16, Jazz 16, SoundBlaster AWE 32, SoundBlaster AWE 64, and hardware register-level compatible audio cards. Iconic lineup, no cap. πŸ‘‘

The SoundBlaster series are half-duplex cards, and they can do 8- and 16-bit audio sample recording and playback at rates up to 44.1kHz β€” depending on the particular model, iykyk. πŸŽ€

The base I/O port address is usually jumper-selected to either 0x220 or 0x240. Newer cards may provide software configuration, but this driver does not directly support them β€” you must configure the card for its I/O addresses with other software. The SoundBlaster takes 16 I/O ports. πŸ¦‹

For the SoundBlaster and SoundBlaster Pro, the IRQ and DRQ channels are jumper-selected. For the SoundBlaster 16, the IRQ and DRQ channels are set by this driver to the values specified in the config file. The IRQ must be selected from the set {5,7,9,10}. Periodt. πŸ”₯

The configuration file must use 1 flags specification to enable the Jazz16 support. This is to avoid potential conflicts with other devices when probing the Jazz 16, because it requires use of extra I/O ports not in the base port range. Lowkey important. πŸ™ˆ

With a SoundBlaster 16 card the device is full duplex, but it can only sensibly handle a precision of 8 bits. It does so by extending the output 8 bit samples to 16 bits and using the 8 bit DMA channel for input and the 16 bit channel for output. The way that works is giving β€œbit math but make it fashion.” πŸ’…

The joystick interface (if enabled by a jumper) is handled by the joy(4) driver, and the optional SCSI CD-ROM interface is handled by the aic(4) driver. Slay, delegation. 🫢

SoundBlaster 16 cards have MPU401 emulation and can use the mpu attachment. Older cards have a different way to generate MIDI and have a midi device attached directly to the sb. Ngl, vintage behavior. πŸ•°οΈ

πŸ”Ž SEE ALSO πŸ”Ž

bestie go peek at the whole friend group:

πŸ•°οΈ HISTORY πŸ•°οΈ

The sb device driver appeared in NetBSD 1.0. A whole legend was born. ⭐

πŸ’€ BUGS πŸ’€

Non-SCSI CD-ROM interfaces are not supported. 😭
The MIDI interface on the SB hardware is braindead, and the driver needs to busy wait while writing MIDI data. This will consume a lot of system time. Not me warning you dramatically, but like… fr fr. πŸ’€

xoxo, this page is brought to you by Debian, dated June 22, 2005. Stay iconic, bestie. πŸŽ€πŸ’–

πŸ“¦ where this page comes from