[Windows Mobile Apps and Games] zevele:
Some documentation

Some useful information about the *.skn files and the Sound.lst file.

The *.skn files

These files define the location of the different items on the screen. For each screen resolution the skin supports there should be one skn file. When a skin is chosen, SimplePiano search the skin directory for a compatible skn file and loads the skin according to its content.

here's an example for a skn file

Display=0,0,480,800

This line declare the target resolution of the skin. It is given in the following format: 0,0,Width,Height

Name=mewskin

The name of the skin, currently not used for anything.

Octave1=360,10,120,120
Octave1Image=OneNormal.png,OnePressed.png

Each key should include those two lines. The first line describe the location and size of the image, using the following format:

KeyName=Left,Top,Width,Height​

The second line points to the images to be used with this key. The following format is used:

KeyNameImage=NormalStateImage, PressedStateImage​

Where KeyName is one of the following:

Octave1, Octave2, Octave3

Quit, Settings,

Record, Replay,

NormalKey1, ..., NormalKey8

SharpKey1, ..., SharpKey6​

All these keys must be specified.

NormalKey# stands for the normal note keys (C,D,E,F,G,A,B & C)

SharpKey# stands for the semitone keys (C#, Eb, F#, Ab, Bb & C#)

In addition the toolbar background has to be specified as well:

Toolbar=360,0,120,800
ToolbarImage=Background.png

unlike a regular key here only one image is supplied.

In addition the optional chord modifier keys can be specified (using the same logic):

ChordMajor=-30,0,60,60
ChordMajorImage=MajorNormal.bmp,MajorPressed.bmp
ChordMinor=-30,60,60,60
ChordMinorImage=MinorNormal.bmp,MinorPressed.bmp

The Sounds.lst file

This file defines the sounds to be used with the selected instrument. First of all it binds a note to a wav file. In addition different properties can be set for each note, as I'll explain below:

[1]

The file is divided into octave, currently there are 4 octaves (since SimplePiano also includes C4 &C#4). Each octave is titled with its number.

C=Data\C1.wav, Loop=0

Then, the sound files for this octave are given. The following format is used:

Note=FileName, Option1=value1, Option2=value2,...​

Note is one of the 12 notes in an octave. The following notation is used: C,Cs,D,Eb,E,F,Fs,G,Ab,A,Bb,B.

Then a relative path to the sound file is specified. Followed by a list of parameters and values pairs separated by comas. These parameters are optional. The following parameters can be declared:

Loop=#​

This specify how many times to loop over the sample (0 - plays the note once, -1 loop infinitely). If a non-zero value is given for a note, the note will be played as long as the key is pressed, once the key is released the playing will cease immediately. By default (if not specified) Loop=0.

MinimumLength=#​

This specify the minimum length (in milliseconds) a note is to be played. If this value is -1 the sample will be fully played. any other (non-negative number), the note will be played at leas this amount of time. For example, if a value of 500 is specified, every touch on the keyboard will generate a 500ms sound. If the key is held longer than 500ms the sound will stop when the key is released (or the sample reaches its end). The default behavior depends on the "Loop" setting: If Loop=0 MinimumLength=-1. Otherwise MinimumLength=0.