Important files and directories:
Sample Disk | the physical Yamaha A3000/A4000/A5000 Sample CD, Zip, etc. Not Floppies! |
/ | the root directory of the Sample Disk. |
/disk/ | a Disk. Data under this directory will show up as data under a specific "Disk" on the sampler. |
/disk/volume/ | a Volume. Data under this directory will show up as data under a specific "Volume" on the sampler. |
/disk/volume/SBNK/ | a directory holding information about every sample in a volume. |
/disk/volume/SMPL/ | a directory holding data for every sample in a volume. |
0000 | an "Information File". 0000 files are found in disks, SBNK, and SMPL directories. |
Fxxx | a file that stores information for a specific disk/sample. xxx represents a three digit number. |
Fyyy | an Fxxx file with a different value for xxx |
The root directory of the Sample Disk contains a sub-directory for every Disk on the Sample Disk. Each sub-directory represents a Disk.
example:
> cd Yamaha_Sample_Disk_Root > ls -l total 16 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 1DDAAB50 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 23F05C50 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 30DCA350 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 40728C50 >
This Sample Disk has 4 disks.
Each Disk directory contains a 0000 file, a sub-directory for every Volume in the Disk, and an Fyyy file.
example:
> ls -l 1DDAAB50/ total 32 -r-xr-xr-x 1 root wheel 288 6 Sep 1999 0000 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 F001 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 F002 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 F003 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 F004 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 F005 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 F006 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 F007 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 F008 -r-xr-xr-x 1 root wheel 16 6 Sep 1999 F009 >
The 0000 file contains the name of each Volume and the sub-directory associated with it as well as the name of the file that holds the Disk's name. The 0000 file has the following format:
?nnnnnnn nnnnnnnn n?Fxxx.. ........ * ?_DSKNAM E....... .?Fyyy.. ........
where,
n | 16 byte name of the Volume. Names are padded with blank spaces until they are 16 bytes long. |
Fxxx | the name of the sub-directory of the volume |
* | repeated for the number of volumes in the disk |
Fyyy | the name of the file that contains the name of the disk. This file is always (?) the last file in the disk directory. |
example:
> hexdump -C 1DDAAB50/0000 00000000 66 42 72 31 31 20 45 6e 73 31 41 6c 6c 20 35 31 |fBr11 Ens1All 51| 00000010 6d 5d 46 30 30 31 00 00 00 00 00 00 00 00 00 00 |m]F001..........| 00000020 55 42 72 31 32 20 45 6e 73 31 52 6d 20 20 32 31 |UBr12 Ens1Rm 21| 00000030 6d 5e 46 30 30 32 00 00 00 00 00 00 00 00 00 00 |m^F002..........| 00000040 c1 42 72 31 33 20 45 6e 73 31 52 6d 20 20 20 35 |.Br13 Ens1Rm 5| 00000050 6d 5f 46 30 30 33 00 00 00 00 00 00 00 00 00 00 |m_F003..........| 00000060 d5 42 72 31 34 20 45 6e 73 31 52 6d 45 71 20 35 |.Br14 Ens1RmEq 5| 00000070 6d 60 46 30 30 34 00 00 00 00 00 00 00 00 00 00 |m`F004..........| 00000080 49 42 72 31 35 20 45 6e 73 53 74 61 63 20 20 35 |IBr15 EnsStac 5| 00000090 6d 61 46 30 30 35 00 00 00 00 00 00 00 00 00 00 |maF005..........| 000000a0 5a 42 72 31 36 20 53 66 7a 53 77 65 6c 20 32 36 |ZBr16 SfzSwel 26| 000000b0 6d 62 46 30 30 36 00 00 00 00 00 00 00 00 00 00 |mbF006..........| 000000c0 b2 42 72 31 37 20 46 61 6c 6c 73 20 20 20 20 38 |.Br17 Falls 8| 000000d0 6d 63 46 30 30 37 00 00 00 00 00 00 00 00 00 00 |mcF007..........| 000000e0 96 42 72 31 38 20 53 63 6f 6f 70 73 20 31 33 6d |.Br18 Scoops 13m| 000000f0 20 64 46 30 30 38 00 00 00 00 00 00 00 00 00 00 | dF008..........| 00000100 e1 5f 44 53 4b 4e 41 4d 45 00 00 00 00 00 00 00 |._DSKNAME.......| 00000110 00 65 46 30 30 39 00 00 00 00 00 00 00 00 00 00 |.eF009..........| 00000120 >
Note: the name of the last volume is "Br18 Scoops 13m ". There is a ' ' padded on the end of the name.
The Fyyy file holds the Disk's name. The file has the following format:
nnnnnnnn nnnnnnnn
where,
n | 16 byte name of the Disk. Names are padded with blank spaces until they are 16 bytes long. |
example:
> hexdump -C 1DDAAB50/F009 00000000 42 52 41 53 53 20 31 20 20 20 20 20 20 20 20 20 |BRASS 1 | 00000010 >
The name of this disk is "BRASS 1 ".
Volume directories contain up to five sub-directories and no files. The sub-directories are named PROG, SBAC, SBNK, SEQU, and SMPL. The SEQU directory exists when the Volume contains Sequence Data.
example:
> ls -l 1DDAAB50/F001/ total 64 dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 PROG dr-xr-xr-x 1 root wheel 2048 6 Sep 1999 SBAC dr-xr-xr-x 1 root wheel 12288 6 Sep 1999 SBNK dr-xr-xr-x 1 root wheel 16384 6 Sep 1999 SMPL >
PROG | Holds Volume's Program information |
SBAC | Holds Volume's Sample name information? I do not currently know the use for these files... |
SBNK | Holds Volume's Sample Bank information and Sample parameters |
SEQU | Holds Volume's Sequence Data |
SMPL | Holds Volume's Sample waveform data |
The SBNK folder contains a 0000 file and an Fxxx file for every Sample in the Volume.
example:
> ls -l 23F05C50/F002/SBNK/ total 0 -r-xr-xr-x 1 root wheel 256 6 Sep 1999 0000 -r-xr-xr-x 1 root wheel 356 6 Sep 1999 F001 -r-xr-xr-x 1 root wheel 356 6 Sep 1999 F002 -r-xr-xr-x 1 root wheel 356 6 Sep 1999 F003 -r-xr-xr-x 1 root wheel 356 6 Sep 1999 F004 -r-xr-xr-x 1 root wheel 356 6 Sep 1999 F005 -r-xr-xr-x 1 root wheel 356 6 Sep 1999 F006 -r-xr-xr-x 1 root wheel 356 6 Sep 1999 F007 -r-xr-xr-x 1 root wheel 356 6 Sep 1999 F008 >
This volume contains 8 samples (F001-F008).
The 0000 file contains the names of every Sample in the volume as well as the Fxxx file (Sample parameter file) associated with it. The 0000 file has the following format:
?nnnnnnn nnnnnnnn n?Fxxx.. ........ *
where,
n | 16 byte name of the Sample. Names are padded with blank spaces until they are 16 bytes long. |
Fxxx | the name of the Fxxx file containing the Sample's parameters. This file also includes the name data found in the 0000 file. This fact may make the 0000 file redundant. |
* | repeated for the number of Samples in the Volume. |
example:
> hexdump -C 23F05C50/F002/SBNK/0000 00000000 b8 42 72 61 73 73 45 6e 73 20 20 20 30 35 38 20 |.BrassEns 058 | 00000010 20 5d 46 30 30 31 00 00 00 00 00 00 00 00 00 00 | ]F001..........| 00000020 ca 42 72 61 73 73 45 6e 73 20 20 20 30 35 38 20 |.BrassEns 058 | 00000030 32 5e 46 30 30 32 00 00 00 00 00 00 00 00 00 00 |2^F002..........| 00000040 ff 42 72 61 73 73 45 6e 73 20 20 20 30 36 37 20 |.BrassEns 067 | 00000050 20 5f 46 30 30 33 00 00 00 00 00 00 00 00 00 00 | _F003..........| 00000060 11 42 72 61 73 73 45 6e 73 20 20 20 30 36 37 20 |.BrassEns 067 | 00000070 32 60 46 30 30 34 00 00 00 00 00 00 00 00 00 00 |2`F004..........| 00000080 44 42 72 61 73 73 45 6e 73 20 20 20 30 37 35 20 |DBrassEns 075 | 00000090 20 61 46 30 30 35 00 00 00 00 00 00 00 00 00 00 | aF005..........| 000000a0 56 42 72 61 73 73 45 6e 73 20 20 20 30 37 35 20 |VBrassEns 075 | 000000b0 32 62 46 30 30 36 00 00 00 00 00 00 00 00 00 00 |2bF006..........| 000000c0 2a 42 72 61 73 73 45 6e 73 20 20 20 30 38 32 20 |*BrassEns 082 | 000000d0 20 63 46 30 30 37 00 00 00 00 00 00 00 00 00 00 | cF007..........| 000000e0 3c 42 72 61 73 73 45 6e 73 20 20 20 30 38 32 20 |<BrassEns 082 | 000000f0 32 64 46 30 30 38 00 00 00 00 00 00 00 00 00 00 |2dF008..........| 00000100 >
The Fxxx file contains sample parameters including the Sample name and the names of the waveforms associated with the Sample. The important bytes are as follows:
Bytes (inclusive) | Information |
---|---|
0x32 to 0x41 | 16 byte name of the Sample. Names are padded with blank spaces until they are 16 bytes long. |
0x78 to 0x87 | 16 byte name of the left channel (or Mono) waveform. This name will match up to a Fxxx file in the SMPL/ directory. Names are padded with blank spaces until they are 16 bytes long. |
0x88 to 0x97 | 16 byte name of the right channel waveform if the sample is stereo. This name will match up to a Fxxx file in the SMPL/ directory. If the sample is not stereo, all bytes will be 0. Names are padded with blank spaces until they are 16 bytes long. |
example (first 256 bytes of Fxxx file):
> hexdump -C -n256 23F05C50/F002/SBNK/F001 00000000 46 53 46 53 44 45 56 33 53 50 4c 58 53 42 4e 4b |FSFSDEV3SPLXSBNK| 00000010 00 00 00 00 00 00 00 02 00 00 01 34 00 00 00 00 |...........4....| 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000030 10 0c 42 72 61 73 73 45 6e 73 20 20 20 30 35 38 |..BrassEns 058| 00000040 20 20 00 14 00 08 b9 86 09 02 35 30 00 00 00 00 | ........50....| 00000050 00 00 00 00 42 72 32 31 20 45 6e 73 32 20 20 20 |....Br21 Ens2 | 00000060 20 20 32 6d 30 00 00 00 00 00 00 00 42 72 61 00 | 2m0.......Bra.| 00000070 00 00 00 00 00 00 00 00 42 72 61 73 73 45 6e 73 |........BrassEns| 00000080 20 20 20 30 35 38 20 20 00 00 00 00 00 00 00 00 | 058 ........| 00000090 00 00 00 00 00 00 00 00 09 13 51 80 00 00 00 00 |..........Q.....| 000000a0 09 13 85 40 00 00 00 00 4a 04 01 20 47 05 01 20 |[email protected].. G.. | 000000b0 49 0b 01 e0 48 0c 01 e0 00 00 00 00 00 00 00 00 |I...H...........| 000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000000d0 03 00 00 00 02 00 3a 3a ab 94 ab 94 00 00 13 05 |......::........| 000000e0 15 bf 42 24 30 01 23 28 00 00 00 00 00 00 00 00 |..B$0.#(........| 000000f0 00 02 50 56 00 00 00 00 00 00 ec a3 00 00 00 00 |..PV............| 00000100 >
The Sample's name is "BrassEns 058 ". The name of its left waveform is "BrassEns 058 ". The bytes that would contain its right waveform name are all 0. This is a mono sample. Note that the waveform names can be any 16 character long string. They do not need to relate to the Sample's name in any way. Separating the sample parameters from the sample waveform allows a single waveform to be used by multiple Samples without requiring extra memory to store the waveform data.
The SMPL directory contains a 0000 file and an Fxxx file for every waveform in the Volume.
example:
> ls -l 23F05C50/F002/SMPL/ total 2363 -r-xr-xr-x 1 root wheel 128 6 Sep 1999 0000 -r-xr-xr-x 1 root wheel 303796 6 Sep 1999 F001 -r-xr-xr-x 1 root wheel 301158 6 Sep 1999 F002 -r-xr-xr-x 1 root wheel 299908 6 Sep 1999 F003 -r-xr-xr-x 1 root wheel 305800 6 Sep 1999 F004 >
This volume contains 4 waveforms (F001-F004).
The 0000 file contains the waveform names and the Fxxx files those names are associated with. The 0000 file has the following format:
?nnnnnnn nnnnnnnn n?Fxxx.. ........ *
where,
n | 16 byte name of the waveform. Names are padded with blank spaces until they are 16 bytes long. |
Fxxx | the name of the Fxxx file containing the waveform data. |
* | repeated for the number of waveforms in the Volume. |
example:
> hexdump -C 23F05C50/F002/SMPL/0000 00000000 b8 42 72 61 73 73 45 6e 73 20 20 20 30 35 38 20 |.BrassEns 058 | 00000010 20 5d 46 30 30 31 00 00 00 00 00 00 00 00 00 00 | ]F001..........| 00000020 ff 42 72 61 73 73 45 6e 73 20 20 20 30 36 37 20 |.BrassEns 067 | 00000030 20 5e 46 30 30 32 00 00 00 00 00 00 00 00 00 00 | ^F002..........| 00000040 44 42 72 61 73 73 45 6e 73 20 20 20 30 37 35 20 |DBrassEns 075 | 00000050 20 5f 46 30 30 33 00 00 00 00 00 00 00 00 00 00 | _F003..........| 00000060 2a 42 72 61 73 73 45 6e 73 20 20 20 30 38 32 20 |*BrassEns 082 | 00000070 20 60 46 30 30 34 00 00 00 00 00 00 00 00 00 00 | `F004..........| 00000080 >
Each Fxxx file represnts one channel of a Sample's total waveform. Therefore, Stereo Samples are associated with two Fxxx files while Mono Samples are associated with only one Fxxx file. Any number of Samples can be associated with a single Fxxx file. All data is Big Endian!! The important bytes of the Fxxx file are as follows:
Bytes (inclusive) | Information |
---|---|
0x00 to 0x1FF | waveform parameters |
0x28 to 0x29 | sample rate in samples/sec. The value is an unsigned 16-bit integer. |
0x200 to End of File | Raw waveform data. Always 16-bits per sample? |
example (first 576 bytes of Fxxx file):
> hexdump -C -n576 23F05C50/F002/SMPL/F001 00000000 46 53 46 53 44 45 56 33 53 50 4c 58 53 4d 50 4c |FSFSDEV3SPLXSMPL| 00000010 00 00 02 00 00 00 00 03 00 00 00 7c 00 04 a0 b4 |...........|....| 00000020 00 04 a0 b4 00 00 00 00 ab 94 00 02 00 00 00 00 |................| 00000030 02 e0 42 72 61 73 73 45 6e 73 20 20 20 30 35 38 |..BrassEns 058| 00000040 20 20 36 b8 00 00 00 14 09 02 35 30 00 00 00 00 | 6.......50....| 00000050 00 00 00 00 42 72 32 31 20 45 6e 73 32 20 20 20 |....Br21 Ens2 | 00000060 20 20 32 6d 30 73 73 20 09 13 51 68 09 13 85 7e | 2m0ss ..Qh...~| 00000070 09 02 37 00 09 13 51 68 09 13 85 40 ab 94 3a 00 |..7...Qh...@..:.| 00000080 13 05 00 00 30 01 00 00 00 00 00 00 00 00 00 00 |....0...........| 00000090 00 00 00 02 50 56 00 00 ec a3 00 01 63 b3 00 00 |....PV......c...| 000000a0 00 00 00 00 00 00 00 00 00 00 02 51 00 00 00 00 |...........Q....| 000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 ff be ff 8b ff 34 fe fb fe c3 fe 64 fe 1c fe 01 |.....4.....d....| 00000210 fd f3 fd cf fd a6 fd 61 fc f4 fc 6f fc 01 fb 9c |.......a...o....| 00000220 fb 3b fb 02 fb 18 fb 3e fb 2c fb 25 fb 5a fb ca |.;.....>.,.%.Z..| 00000230 fc 77 fd 69 fe 85 ff 84 00 93 02 24 04 25 06 27 |.w.i.......$.%.'| 00000240 >
The sample rate is "0xAB94", 43924 samples per second. The first sample of the waveform begins at 0x200.