PSG samples

Pagina 3/15
1 | 2 | | 4 | 5 | 6 | 7 | 8

Van snout

Ascended (15184)

afbeelding van snout

14-03-2004, 16:53

Welcome to the MRC, Michel! Smile

A scan would be very nice indeed. And.. be honest.. how many times have you cursed yourself for making that deal? Smile

Van ms

Rookie (20)

afbeelding van ms

14-03-2004, 17:23

A scan would be very nice indeed. And.. be honest.. how many times have you cursed yourself for making that deal? Smile

Well, I am still sorry for it today...

Anyway, I've put 2 scans on my website, note that the original pictures have been made 12 years ago ! So, don't complain about the quality.

www.denwa.nl/images/MSXCD1.jpg
www.denwa.nl/images/MSXCD2.jpg

These links are fullscreen and 512 kB each.

Van NYYRIKKI

Enlighted (5917)

afbeelding van NYYRIKKI

01-06-2005, 23:19

This time, I'll capture this topic back!

It seems, that I messed up SCC and PSG volumes back in the previous post (22.7.2003). So it was PSG that was logarithmic... So... The idea above works for SCC (I think!)

If this volume = 2^-((15-n)/2) is correct for PSG there are plenty of possibilitys to make sample playback tables. Here are two examples of lo-volume 3bit sample playback tables. They are both easy update quite a much larger to gain more volume and accuracy:

PSG Channel
ALT 1   ALT 2
A B C   A B C
-----------------
1 1 1   0 0 0  =0
3 0 0   1 1 0  =1
3 1 1   2 1 0  =2
4 1 0   3 1 0  =3
3 3 1   3 2 0  =4
4 2 0   3 3 0  =5
3 3 3   3 3 2  =6
5 1 0   5 2 1  =7

I think, that these tables are actually "too accurate". To get best possible result I think that table up to 10bits should be calculated and then estimate good amount of playback bits and cut part of upper and lower bits away of the table.

Van ARTRAG

Enlighted (6828)

afbeelding van ARTRAG

01-06-2005, 23:35

@NYYRIKKI
do not run too fast :-)
There are better strategies.

One of them is to use successive refinements in quantization.

The basic idea is
quantize a sample x using single channel, play it on ch A
compute the quantization error y = x - Q(x) and quantize it, play the error on ch B
compute the new quantization error y = x - Q(x) - Q (x - Q(x) ) and play it on C

You'll see soon more details on Grau's website
AR

Van NYYRIKKI

Enlighted (5917)

afbeelding van NYYRIKKI

02-06-2005, 00:39

Hmm... Is it always the closest possible solution when biggest possible number is selected first?

Van Grauw

Ascended (10560)

afbeelding van Grauw

02-06-2005, 03:10

Right Smile. Check out the MSX Assembly Page now. It explains about 8-bit samples, with the help of ARTRAG.

~Grauw

Van NYYRIKKI

Enlighted (5917)

afbeelding van NYYRIKKI

02-06-2005, 08:20

Very interesting table... too bad, I don't read C in any form...there are only 19 deviations past a certain threshold Did you calculate what is the error %?
Did you test, do you get any better results, if you try to add for example sqrt(2) or 0.5 to every sample value?

Van NYYRIKKI

Enlighted (5917)

afbeelding van NYYRIKKI

02-06-2005, 15:50

I just noticed, that there is "DB" in front of table rows... that should be "DW"

Here is (untested) example routine, that plays sample using that table:


; 	HL	= SAMPLE TO PLAY (8bit unsigned)
;	DE	= LENGHT TO PLAY
;	TABLE	= ADDRESS OF SAMPLE TABLE
;	RATE	= DELAY BETWEEN SAMPLES
;
	LD C,#A1

LOOP:
	PUSH DE
	PUSH HL
	LD DE,TABLE
	LD A,8
	LD L,(HL)
	LD H,0
	ADD HL,HL
	ADD HL,DE
	RLD
	LD D,A
	RLD
	LD E,A
	RLD
	INC HL
	LD B,(HL)
	OUT (#A0),A
	INC A
	OUT (C),B
	OUT (#A0),A
	OUT (C),D
	INC A
	OUT (#A0),A
	OUT (C),E
	POP HL
	INC HL

	LD B,RATE
DELAY:
	DJNZ DELAY

	POP DE
	DEC DE
	LD A,D
	OR E
	JP NZ,LOOP
	RET

Ps. This works only, if table is in RAM

Van Grauw

Ascended (10560)

afbeelding van Grauw

03-06-2005, 14:42

Ah, DW, hehe Smile. Corrected it.

Did you calculate what is the error %?
No, not really... I think I still need to improve it a little, because the means to determine the best set is still sub-optimal.

Did you test, do you get any better results, if you try to add for example sqrt(2) or 0.5 to every sample value?
No... How would that improve results? The PSG has the most accuracy in the lower areas (due to its logarithmic scale).

~Grauw

Van Grauw

Ascended (10560)

afbeelding van Grauw

03-06-2005, 15:25

With regard to the error percentage... It is a bit hard to calculate.

The number 19 I mentioned in the article is the number of points where the deviation is bigger than 0.2% (actually: 1/256*.5) from the value it is supposed to be.

Pagina 3/15
1 | 2 | | 4 | 5 | 6 | 7 | 8