PCM Encoder 0.01

by dvik on 20-01-2006, 11:09
Topic: Development

Daniel Vik and Arturo Ragozini have just released a new version of PCM Encoder, a toolkit that allows you to encode WAV samples and playing them in crystal clear quality on MSX, using the standard PSG soundchip. Sample rates of 8kHz, 11.025kHz, 22.05kHz and even 44.1kHz are currently supported. The release package contains an encoder application (with source) and replayers so that you can use the resulting samples in your own productions.

You can listen to an example of a 44.1kHz sample played on a Philips VG-8020 MSX1 over here. For more information you can check out this forum thread or the extensive documentation included in the release package.

Relevant link: PCM Encoder

Comments (8)

By snout

Ascended (15187)

snout's picture

20-01-2006, 11:35

The results are simply amazing. Big, big, big thumbs up!!


Enlighted (6935)

ARTRAG's picture

20-01-2006, 11:43

"extensive documentation" ? This is a bit too much for 3 lines of description...

I would like to expand it in order to describe the interpolation, the oversampling
and many other parameters that can be usefull for getting the best results.
Probably also the rompack option should be improved, allowing different pagesize,
as, using ram pagemappers, you could need 16Kb chunks.


Enlighted (6935)

ARTRAG's picture

20-01-2006, 11:51

Actually ANY sample rate is supported by the encoder, provided that you are able to write your
own replayer.
Input your CPU frequency and the Tcycles of your system (MSX or spectrum or whatever you have that uses a PSG compatible with the chip AY-3-8910 or YM-2149) and you'll get the encoded results.


Paladin (1012)

POISONIC's picture

20-01-2006, 17:03

WOW amazing it beats the Simple player on the printerport in one row exelent quality Smile wel done !


Enlighted (6935)

ARTRAG's picture

20-01-2006, 18:11

It is the BEST quality you can achieve on the PSG, in the very literal sense, as Viterbi optimisation finds the BEST sequence of PSG levels to reproduce your wav file Tongue

By msd

Paragon (1515)

msd's picture

20-01-2006, 18:37

Are there more examples?


Enlighted (6935)

ARTRAG's picture

22-01-2006, 11:18

Actually I was wrong, the PSG replayer CAN IMPROVE even MORE !!

If the replayer can choice the channel to modify at any time, instead of using a fixed round-robin scheme (as now happens), the result should be free on any static noise.

The problem is that the Viterbi optimisation has to deal with a 16x16x16=4092 state machine where each state has 16*3=48 inputs !!

It is a cumbersome Viterbi optimisation and the required memory could be huge, moreover the data should store both the channel level (4bits) and the channel number (2 bits more per level!), so RLE packing on nibbles is no more possible.

Nevertheless, for the sake of science Tongue, it if worth trying this new way, stay tuned…


Enlighted (6935)

ARTRAG's picture

25-01-2006, 10:03

I can claim that the definitive PSG limit has been achieved.
The new encoder provides 43dB of SNR Big smile

at the cost of 3 bytes per sample Tongue

Stay tuned for the new C pcmenc.exe version!!