Copyright 2004 Dong Lin
SDI is based on the following products ��A3D, ViaVoice TTS, DirectX, MIDI
A3D is owned by Creative Technology Ltd. (previously by Aureal), but is royalty-free
ViaVoice TTS is registered trademark of IBM
DirectX is registered trademark of Microsoft Corporation
MIDI is owned by MMA(MIDI Manufacturers Association)
Special thanks to Professor Fang Zhigang for his invaluable spiritual support and innovative suggestions, as well
as his life philosophy which will probably have fundamental impact on my life (including some principles that I don't
agree, at least at the moment).
SDI(Sound Device Interface) is designed for Auditory Display, or AUI(Audio User Interface), which has
proved to be good complement to GUI(Graphic User Interface) academically. At present, the SDI implements two
Sound Object: Speech and Earcon.
Speech is for positioning synthesized speech in 3D world, combining ViaVoice TTS and A3D together.
Academically, this kind of positioning can help user to pick out desired information out of two concurrently
"displaying" sound. This is so-called "cocktail party effect". Also, it can improve the memory, adding a location
factor to each sound.
Earcon, literally, can display earcon easily. Earcon is kind of musical modif, something like icon.(in fact, earcon
is short for "Ear Icon". Note that there is another term "Auditory Icon", which is the actual sound about real thing.
Earcon is more abstract than Auditory Icon.)
1.Make sure you have installed Directx8 for higher. If not, download it from Microsoft Website:
2.Download evaluation version of ViaVoice TTS runtime engine(TTS! NOT just "ViaVoice") from IBM's partner:
You can choose from Chinese, U.S.English and UK.English
3.[Optional]You can download ViaVoice TTS SDK Evaluation Edition if you want to learn more about ViaVoice TTS
3.[Optional]Download free A3D 3.0 SDK. (I'm not sure whether I can include it in my distribution of SDI leagally, so I
leave it to you)
4.Double-click on setup.bat to register A3D component.(If you have installed A3D 3.0 SDK, this registration process is not
5.Done. You can check if everything is OK by running TestSDI in Release directory.
0.Please use high-quality earphone or speaker. Earphone is better.
1.SDI was developed under VC6, so you'd better compile it using VC6, too.
2.Make sure eci.h, ia3dapi.h, sdi.h are in the same directory, and a3dapi.dll, ibmeci.dll, sdi32.dll in the same
directory with your application.
3.Be sure to link with sdi32.lib
4.[Important] Because a evaluation version of ViaVoice TTS SDK is used, it may has a 90-day trial period.
Although A3D is Royalty-Free, it doesn't mean you(and I) can use it at your(and my) will.
So Please read the License of ViaVoice TTS SDK and A3D3.0 SDK.
sdi32 The source code of SDI. You can redistribute it and/or modify it under the terms of the GPL.
Sample Contain two sample program source code.
* TestSDI is a simple demo program. It demonstrates the basic function of SDI, and you can quickly learn what
is SDI and how to use it.
* NewsEverywhere is a complete application, and it's also GPL'ed. However, it's builded for Chinese, and all
its documents is written in Chinese. The source code locates in "\NewsEverywhere_sourcecode\".
Document Artical, document and some references(Some has both pure text version and WinWord version)
SDI1.0_Document SDI v1.0 Document. Complete SDI reference.
technote Some interesting details about SDI, especially the Earcon.
MIDI Specification Highly recommanded, if you are interested in the source code.
MIDI File Format Highly recommanded, if you are interested in the source code.
General MIDI Instrument definition in GM, it should be part of document.
Downloadable Sounds (Level 1) Specification
DLS Level 1 Document
gpl.txt GNU General Public License.
Release All the files needed for SDI application development and running, and the sample program TestSDI executables.
P.S In fact, this library is fairly small. I just want to design a project, write a program, and learn to write document.
So I'll be very grateful if you can tell me the mistake or bad design or redundant code or anything you regarded as rubbish
about this SDI.
I'm not good at English, so you can also point out any language mistake you've found ^_^