New WAV format

ZX80, ZX 81, ZX Spectrum, TS2068 and other clones
Post Reply
stefano
Well known member
Posts: 2151
Joined: Mon Jul 16, 2007 7:39 pm

New WAV format

Post by stefano »

All, I've succeded in making appmake generate the audio version of the data files.
At compile command line there will be two new options available for ZX81 and Spectrum -Cz--audio and -Cz--fast, the latter tweaks the file to squeeze the maximun possible speed with the standard ROM loaders. The sound encoding logic is totally different between zx81 and Spectrums and so are the speed limits reached.

Feedback is welcome
User avatar
dom
Well known member
Posts: 2091
Joined: Sun Jul 15, 2007 10:01 pm

Post by dom »

That's really neat! I'm guessing these can be turned into a tzx using a 3rd party tool?

How much faster is turbo mode?
stefano
Well known member
Posts: 2151
Joined: Mon Jul 16, 2007 7:39 pm

Post by stefano »

With the Spectrum it is not much faster, to be honest, I think it saves a bit more than 10 seconds every minute, but I haven't measured it very well yet.
Best results are with the ZX81 wich saves about 1/3 of the loading time but it is still very slow and I'm afraid I'm generating very high frequiencies in this case.
I think there is still space for a real turbo loader option ;)
stefano
Well known member
Posts: 2151
Joined: Mon Jul 16, 2007 7:39 pm

Post by stefano »

ZX Spectrum speed measurements on 'Planet of Death', which is big enough for a good comparison.
Note that the WAV file, being generated digitally, can be compressed very well:


Resulting '.tap' size: 13.846

Normal speed wave size: 3.784.679 (85,81 sec, gzipped size 53.125)
Fast mode wave size 2.899.047: (65,73 sec, gzipped size 47.047)


Maketzx output log in fast mode:

■ Checking input file... ok!
■ RIFF Wave PCM (WAV), 2898940 samples.
■ Sampling rate: 44100 Hz (playing time: 01:05.735)

Block 1 => Program: Loader - Header: Length= 17, Pause=5ms.
Block 2 => F:255 - Speed: 117% - Line= 10, Length= 32, Pause=5ms.
Block 3 => Bytes: a.bin - Header: Length= 17, Pause=5ms.
Block 4 => F:255 - Speed: 117% - Start=32768, Length=13768, Pause=93ms.
stefano
Well known member
Posts: 2151
Joined: Mon Jul 16, 2007 7:39 pm

Post by stefano »

Measurements for the ZX 81, always 'Planet of Death':

'.P' file size: 13.695

Normal speed wave size: 15.460.091 (350,56 sec, gzipped size 121.069)
Fast mode wave size: 12.283.691 (278,53 sec, gzipped size 113.970)
stefano
Well known member
Posts: 2151
Joined: Mon Jul 16, 2007 7:39 pm

Post by stefano »

Short update.. the test on a real ZX 81 in speed mode was unsuccesful !
I'm trying to fix it, at the moment I'm tuning the gap between the single bits.
I updated appmake for the Jupiter ACE to support the "new" tap format used in EightyOne (different from the old one) and added the same WAV features of the Spectrum.
I also built a non-ansi lib, it was missing and the ACE has a small memory !
Post Reply