Subject: W30 disk structure...

From: [email-masked] (Marc Resibois)
Date: Fri, 20 Jan 1995 04:17:25 -0500

Hi all !

Here is the beginning of the information on the W30 disk structure. As I had to go back into really old doc I wrote, some indications are missing. Basically, I did put everything that was needed to recover the samples from the disk. I think the tone/patch parameters structure must be quite similar to the one of the S-550 but I did not have the time to check...

I did post only a small description text on the group. I will send to John Sellens a zipped file conatining the following :

	1) Description  Text ( the same )
	2) wdir.exe : print the tone directory of a Song and Sound disk
	3) wget.exe : allows you to recover samples from the W30 disk.
	4) winit.exe: transforms a formatted 720K disk into something writable by the W30

	ALL SOURCE CODE IS INCLUDED !

	Note that those program where not intended for wide use. There are pretty much hard-coded
	( The samples are always translated in 8bit .wav files, the drive has always to be A: ,.. )
	I might make them nicer in the future.

I suppose John will post a note to indicate the zipped file availability/location.

Enjoy,

-+-> Marc.            <[email-masked]>             <100126,1007>

---------------------------------- CUT HERE ------------------------------------------

Structure of the W30 disk	- Rev 1 - 	Jan 95

1) Tone Directory : Location :  Side 1 Track 7 Sector 9
-------------------

16 bytes per tone :

Offset	Size		Field		Remarks		

 0    	 8		Name	
 8       1		Output #	Often 0
 9	 1		sub-tone #	indicates the parent subtone number
10	 1		sub-tone flag	1 if tone is subtone, otherwize 0
11	 1		rate flag	1 if rate=15K zero if rate=30K
12	 1		org key		Key where sample is recorded (midi number?)
13	 1		ram number	0 if RAM A, 1 if RAM B, 2 if unused
14	 1		Data position	Used to determine where the sample data is
15	 1		Data size	Number of 0.4 sec blocs the data is made of

2) Sample Data location :
-------------------------

The location of the first tracks containing the sample data can be computed
using the following formula :

 Track=8+2*(Data Position)+36*(RAM number)
 Side=0
 Sector=0 

And is in the following order :

	Track i+1
	    Side 0
	       Sector 1,2,...9
	    Side 1
	       Sector 1,2,...9

	Traack i+1
	    Side 0

		.. and so on

It is stored in chunks of 0.4 sec. meaning that each size units is made of 2 tracks.

2 tracks= 2*2*9*512 bytes=18342 bytes. 

Since the samples are 12bits, you store only 2 samples into 3 bytes.

The storing is made like this

Take 3 consecutive bytes and split them into 4 bit parts

Byte 1	Byte 2	Byte 3
 H1/L1	 H2/L2	 H3/L3

The two samples values are  H1/L1/H2 and H3/L3/L2

from each unit you should extract 18342/1.5 = 12288 samples.

3) Tone Parameters : Location :  Side 1 Track 7 Sector 1->8
-------------------

128 bytes per tone... should be pretty much like the S-550

I cannot find back my notes on this but I will probably update this text later

Good luck,

-+-> Marc.

---------------------------------- CUT HERE ------------------------------------------