SBK2 stands for the Developer Kit for Sound Blaster Series, 2nd Edition. It is designed for any third party DOS developer or user who wants to write programs that exploit the features of Creative's line of Sound Blaster audio cards.
The SBK2 contains the following documentation:
The Hardware Programming Reference covers the following sections:
You should be familiar with any of the common programming languages like C, Pascal, Basic or Assembly; have some knowledge in writing DOS program. Some understanding in music, digital audio will be an added advantage.
The SBK2 supports Sound Blaster, Sound Blaster Pro, Sound Blaster 16, and Sound Blaster 32 as well as Sound Blaster AWE32.
Only DOS is supported by the SBK2 libraries and drivers. However the hardware programming information is useful for development of drivers on other PC-based platforms.
It supports:
The SBK2 is available to public for free.
You can download it now (1,143k).
The SBK2 library and drivers support VOC, WAV and MID file formats.
You can refer to Microsoft Windows API under the Multimedia category which is available in Windows compiler like MS Visual C/C++. You can either use the low-level audio functions or Media Control Interface (MCI) commands.
The SBK2 library and drivers do not support protected mode programming. However, you may use the Hardware Programming Reference to program the Sound Blaster audio cards directly in protected mode.
The SBK2 provides a programming library to do playback and recording of MIDI event codes. The library also supports the playback of Standard MIDI files (.MID). You may use hardware-level programming to control external MIDI devices attached to the SB-MIDI port or the MPU-401 port.
You could either program the SB Mixer through the AUXDRV.DRV driver or do direct hardware-level programming of the SB Mixer registers.
No, the SBK2 does not cover the SoundFont programming. You will need to refer to the AWE32 Developer Information Pack.
You will need to refer to the AWE32 Developer Information Pack, which is available as a separate programming reference.
When your DOS program is producing a sound on the SB, it will need to do a DMA transfer. This DMA transfer is also managed through Windows 3.1x's system's virtual DMA driver. Note that Windows 3.1x is a "protected-mode" operating system. Therefore, when your DOS program, a real-mode program, accesses the DMA controller directly from within a DOS-box (under V86 mode), it may crash with Windows' system's, thus causing a hang. Therefore, when you have a DOS program that runs in the Windows 3.1x DOS-box, your program will need to detect for the presence of the virtual DMA and then access the virtual DMA driver. You will need to refer to the Microsoft virtual DMA programming specification.
Yes, you can program the CD-ROM drive via the Creative Multimedia System Driver. Another alternative is to use IOCTL calls to control the MSCDEX.EXE (Microsoft Compact Disc Extension) driver directly to access the CD-ROM drive. You can access the drive status, manipulate audio playback and control the CD-ROM drive tray.
Yes, you may program 2 SB cards concurrently on the same PC by using hardware-level programming, provided that you have enough different base addresses, interrupts and DMA channels for both cards to use. Note that the SBK2 library and drivers do not support multiple cards.
Yes, with the Creative Multimedia System Driver, since it provides a device-independent Application Programming Interface. Therefore, your SBPro program if based on this SBK2 library will still run on the SB16, provided that you have the respective drivers and your program performs actions within the capability of the card.
For .VOC file format, you can refer to the SBK2 Library Reference. For .WAV file format, you can either contact Microsoft or refer to commercially available reference books on PC digital audio programming. As for .MID file format, you can obtain the MIDI 1.0 Detailed Specification or Standard MIDI Files 1.0 from MIDI Manufacturers Association.
Hardware programming information of the OPL-2 and OPL-3 are not included
in the SBK2. However, if you are interested, you may
download a sample file for
programming the OPL-3 directly.
Since all PnP devices are configured by the PnP configuration manager, like Creative Configuration Manager, during boot-up in DOS, the Mixer registers 80h and 81h have been restricted to only the READ operation. Therefore, you cannot change the DMA and Interrupt settings through software. This also applies to the SB AWE32 PnP and PhoneBlaster 28.8 PnP cards.