If you look in the schemas directory of your Sound Insanity installation, you will see a folder for each scheme. Inside each folder you will find one or more .wav files and a schema.xml file. One of the purposes of the schema.xml file is to map the .wav files to specific Windows sounds. For instance, Windows plays a sound called MailBeep whenever the current user gets email. This sound can be mapped to a set of .wav files. Sound Insanity will pick one of the sound files specified each time the user gets an email. Here is an example schema.xml file's contents:
<sounds timestamp="20030202" url="http://www.irondust.com/soundinsanity" > <sound name="SystemAsterisk"> <file>*.wav</file> </sound> <sound name="MailBeep"> <file>beep1.wav</file> <file>beep2.wav</file> </sound> <file name="beep1.wav"> <title>Beep One</title> <description> <![CDATA[ This is the first beep ]]> </description> </file> </sounds>
As you can see, this file is quite simple. The main features to notice are the sound elements. These elements have a name attribute set to the name of the Windows sound they represent. Inside the sound element is one or more file elements. These elements specify the set of files to map the current Windows sound to. For instance, in the above example, the Windows sound SystemAsterisk is mapped to all .wav files in the current directory. The MailBeep sound is limited to sounds beep1.wav and beep2.wav. Each time a MailBeep is played, Sound Insanity will choose one of those two to play. Each time a SystemAsterisk is played. Sound Insanity will randomly choose from any of the .wav files in the current directory.
The file elements under the sounds (not sound) element allow adding additional information about a single file. You can specify a title for the sound. The title is the text that will appear in the tree view. The description is the text that will appear when you mouse over the text and pause.
This schema.xml file would be placed in a directory with the name of the scheme along with the .wav files beep1.wav and beep2.wav. If you just do this part, Sound Insanity will not pick up the new scheme, however. You also need to tell Sound Insanity to use the new scheme.
To test out your schema, you can create a new file called localschemalist.xml in your Sound Insanity installation's schemas directory. The localschemalist.xml is just like the schemalist.xml file, except that wheras the schemalist.xml file is constantly overwritten as you run Sound Insanity, the localschemalist.xml file will not be touched. The localschemalist.xml file uses the same syntax as the schemalist.xml file:
<schemas> <schema timestamp="null" >My First Scheme</schema> <schema timestamp="20030323" >My Second Scheme</schema> </schemas>
Note that the scheme's name (e.g. "My First Scheme" in the example above) should be the name of the folder underneath the schemas directory that has your new scheme. That folder should contain the schema.xml file for the scheme as described above and a collection of .wav files. An examination of the contents of the schemalist.xml file in the schemas directory and the contents of its sub-directories should give you the basic idea.
If you would like to make a new scheme or propose a change to an existing scheme, you may want to create your own scheme.xml files for uploading. You can upload your files here.
If you have any questions, feel free to email admin@irondust.com.
Thank You.