Rebuilding the TX16W library

All Other Yamaha Keyboards/Modules and Instruments Not Covered By Their Own Section

Moderators: Derek, parametric, Saul, Fozzer

JK1974
Member
Member
Posts: 85
Joined: Tue Oct 02, 2012 1:01 am

Rebuilding the TX16W library

Unread post by JK1974 » Mon Aug 31, 2015 4:16 pm

Hi,

getting inspired by a forum thread about old sampler sound ressources, I decided to work on collecting the TX16W libraries (like I did before with the SY99 disks, and the TX16W samples can be loaded into the SY99). I already have downloaded disks 15-20 years ago (but still have to find the CD-ROM where I burned it on), but I also found ressources at soniccharge.com (developers of the TX16W VSTi Cyclone), madtheory.com (The Muki Pakesch Backup), vspace.it (X-Club disks) and bjoern.com (DX7 samples). archive.org is also useful if it is about getting informations and old lists.

However, especially believing that the the library posted at soniccharge.com is near complete, I found a few inconsistencies. Looking further in other download ressources, you will find a lot of duplicates - simply renamed commercial sets that makes distinguishing between "official" and "user" disks quite difficult.

I decided to take the file-based approach - even if the files are the same, they might have positioned differently in floppy image files. So I extracted all available image files from soniccharge.com etc. to be finally able to compare the individual files. I use binary comparison tools, because file names can be arbitrary. And within the sets, there are of course also renamed waveform files to comply with MS-DOS filename character restrictions. There is still a lot of manual work involved also because e.g. the f01 files are nearly all the same in the sets.

Nevertheless, something that really drove me mad was the fact, that if you compare the audio files from different archives, the header of a TX16W wave file might contain 6 different bytes at the beginning, althought the rest of the both files is completely the same. So, a binary comparison would not be possible for identifying these duplicates.
The "Audio File Format Ressourceguide 1.1", found as "affr.pdf" in the Muki Pakesch Archive Backup, calls this 6 bytes "dummy_aeg" with the description: "space for the AEG (never mind this)". A few files have here "00 00 7E 7E 7E 7E", A-Wave Studio writes "00 00 7F 7F 7F 7F", but most of the time, you find different values (e.g. set "Yamaha SDL-1 - Piano 1", "EPF3.W20", soniccharge.com: "3F 3F 6B 19 00 33", Muki Pakesch Archive: "3F 3F 74 22 00 3C").

Does anybody know what is meant by (Dummy)-"AEG"? Is it worth keeping the original value of these 6 bytes? And where should I know from which wave file is the "original"?
In the meantime, I have written a tool that "cleans" the header to "00 00 7E 7E 7E 7E", but I am not sure if this is really the way to go for archiving. But as I said, the files do not differ in any other place (e.g. sample data), so I don´t see a sense to keep duplicates here.

Thank you in advance for your support!



User avatar
Sonus
Member
Member
Posts: 237
Joined: Tue Aug 05, 2008 12:00 am

Re: Rebuilding the TX16W library

Unread post by Sonus » Wed Sep 02, 2015 3:48 pm

Space for the AEG 'Amplitude Envelope Generator' :idea: ...

Image



JK1974
Member
Member
Posts: 85
Joined: Tue Oct 02, 2012 1:01 am

Re: Rebuilding the TX16W library

Unread post by JK1974 » Wed Sep 02, 2015 4:56 pm

So these 6 Bytes are in fact no dummy data? But why does it differ in otherwise sample-identical sets? And why does your example have >6 bytes?
Still looks to me like erraneous data, or it is in fact no AEG data but maybe e.g. a device or product serial number.

Removing these helped me a lot finding duplicates, even in Yamaha´s own sets (however, I was not tempted to remove identical samples and destroy sets ;)). And there are really completely identical sets - apart from these 6 bytes in every w?? file.

EDIT:
I just read that the open source tool "SOX" also supports converting the TX16W wave format. But the code shows nearly the same, at least the comments in the header are the same like in the PDF (file "tx16w.c"):

Code: Select all

struct WaveHeader_ {
  char filetype[6]; /* = "LM8953", */
  unsigned char
    nulls[10],
    dummy_aeg[6],    /* space for the AEG (never mind this) */
    format,          /* 0x49 = looped, 0xC9 = non-looped */
    sample_rate,     /* 1 = 33 kHz, 2 = 50 kHz, 3 = 16 kHz */
    atc_length[3],   /* I'll get to this... */
    rpt_length[3],
    unused[2];       /* set these to null, to be on the safe side */
};
dummy_aeg only appears later once again:

Code: Select all

    memset(&WH, 0, sizeof(struct WaveHeader_));
    strncpy(WH.filetype,"LM8953",(size_t)6);
    for (i=0;i<10;i++) WH.nulls[i]=0;
    for (i=0;i<6;i++)  WH.dummy_aeg[i]=0;
    for (i=0;i<2;i++)  WH.unused[i]=0;
    for (i=0;i<2;i++)  WH.dummy_aeg[i] = 0;
    for (i=2;i<6;i++)  WH.dummy_aeg[i] = 0x7F;

    WH.format = 0xC9;   /* loop off */
As people with basic programming knowledge can see, dummy_aeg finally gets the values "00 00 7F 7F 7F 7F".
The w?? files on the original Yamaha OS disks show both the values "00 00 7E 7E 7E 7E".



User avatar
Sonus
Member
Member
Posts: 237
Joined: Tue Aug 05, 2008 12:00 am

Re: Rebuilding the TX16W library

Unread post by Sonus » Thu Sep 03, 2015 7:25 am

JK1974 wrote:So these 6 Bytes are in fact no dummy data?
They don't affect the actual sample data, that's why they are dummy.
JK1974 wrote:But why does it differ in otherwise sample-identical sets?
When the AEG is edited in voice mode, the values are copied into the sample header.
JK1974 wrote:And why does your example have >6 bytes?
It shows four settings, EG rates 0~99 are coded 00~7F, EG levels 0~99 are coded 3F~00.

P.S. The essential Timbre Envelope Generator parameters 0~99 are stored in .V01.

The initial AEG values in .Wxx are overwritten when a sample is triggered:

Image
Last edited by Sonus on Sat Sep 05, 2015 4:04 pm, edited 1 time in total.



JK1974
Member
Member
Posts: 85
Joined: Tue Oct 02, 2012 1:01 am

Re: Rebuilding the TX16W library

Unread post by JK1974 » Thu Sep 03, 2015 9:30 pm

With your P.S., do you mean, that the AEG is being overwritten by the Timbre Envelope Generator and thus the values in AEG indeed unnecessary?



Post Reply

Return to “Other Yamaha Keyboards/Modules & Equipment”

Who is online

Users browsing this forum: No registered users and 1 guest