MSX HDMI mutlimedia card

Страница 28/56
21 | 22 | 23 | 24 | 25 | 26 | 27 | | 29 | 30 | 31 | 32 | 33

By Grauw

Ascended (9479)

Аватар пользователя Grauw

03-12-2014, 23:37

Have you listened / compared? The emulated SCC sounds shrill, I haven’t noticed such a difference with other emulations, something is off.

https://www.youtube.com/watch?v=ui5cXZCl4uQ&t=52s
https://www.youtube.com/watch?v=v8PTRBeTWQc&t=5s

(Open links in separate tab to start at the specified times.)

By maxis

Champion (512)

Аватар пользователя maxis

03-12-2014, 23:47

Grauw wrote:

Good to see it’s working! But it doesn’t sound quite right yet... the real SCC sounds much warmer.

Oh. Here we warm up the discussion about the difference:

1. In the standard SCC, the DAC R2R matrix is directly connected to the output 1 pole active low pass filter (inside MSX). Due to the mismatch of the output/input impedances, the transfer function of this DAC is not linear but rather logarithmic vs the higher frequencies. I.e. the higher frequencies are more attenuated (which makes the second pole). The first pole is placed around 18 KHz on the most of MSX machines. The second pole, however can vary.

2. In my implementation, the output is not equivalent to the single pole low pass filter. Since the sample rate is 48 KHz (Nyquist frequency 24KHz), the 20dB per decade rolloff is not possible due to the aliasing. So I have much steeper characteristics.

3. On the other hand, Procyon SCC/PSG sound is thicker than the original due to an implementation trick. In order to generate precisely the output tone frequency, I had to derive 3.579545 MHz from 100 MHz without any fractional errors. This is done by the means of the numerically controlled oscillator. Spectral side lobes, however, are suppressed by the antialiasing filter in the downsampler.

For the moment I have decided to adjust further the mixer volume levels between SCC and PSG.

Now, religious question - do we have to make exactly the same dirty sound or shall we try to improve it without destroying it's originality? SCC mixes up all the MSX PSU dirt right into the audio output. Also the SCC digital arithmetics (sample by volume multiplier) has quite a lot of non-linearity (fractional errors) at the low volume levels. Procyon has none of that.

By Grauw

Ascended (9479)

Аватар пользователя Grauw

04-12-2014, 00:30

I just compared with the MegaFlashROM SCC+ SD and the Zemmix Neo FPGA-based SCCs, and they both sound normal.

I tell you, something is off Smile. It’s not about dirty or not or warm or cold. There is a significant tonal difference. It sounds so different that I noticed immediately and went to Youtube first and then tried the real cartridge to confirm.

Maybe it’s one of the things you say, e.g. SCC has no fixed sampling rate and I’m pretty sure neither do the OCM and MFRSCC+SD, but... To me it sounds like there is a problem with the wave. Maybe not the entire wave is scanned, or some 5th channel business is not handled right (wrong wave / volume register), or some values get corrupted?

maxis wrote:

Now, religious question - do we have to make exactly the same dirty sound or shall we try to improve it without destroying it's originality? SCC mixes up all the MSX PSU dirt right into the audio output. Also the SCC digital arithmetics (sample by volume multiplier) has quite a lot of non-linearity (fractional errors) at the low volume levels. Procyon has none of that.

I think if you can get it up to the level of the OCM or MegaFlashROM, that’s good enough Smile. Note the OCM used to have an interpolating version of the SCC at some point, but it was taken out in the latest firmwares to save LEs iirc. I never really noticed the difference (but then again I never really compared thoroughly).

One difference between most emulations and the real thing that I know of is that the is that SCC resets the period counter when you set the frequency, which gives a bit of a nasty effect when doing vibratos... I can certainly live without that Smile, it’s not very musical. But I wouldn’t object against it either.

By maxis

Champion (512)

Аватар пользователя maxis

04-12-2014, 00:37

Grauw wrote:

I just compared with the MegaFlashROM SCC+ SD and the Zemmix Neo FPGA-based SCCs, and they both sound normal.

I tell you, something is off Smile. It’s not about dirty or not or warm or cold. There is a significant tonal difference. It sounds so different that I noticed immediately and went to Youtube and tried the real cartridge to confirm.

A-ha, thanks for tipping off. I'm going to investigate. The problem you describe, is it only likely with SCC or also with PSG from your opinion?

One more thing, I do have a fixed sample rate sigma-delta DAC (48 KHz). From what I've seen on the logic analyzer, the SCC DAC runs at 3.579545/10=357KHz. So, its nyquist frequency is somewhat 10 times higher. Could that be the problem too? I'll see in the details further on.

What do you think could be a good music sample for the PSG only test? SSG I've fairly simulated, debugged and refined. Every little detail of it is implemented, including the exact noise generator. Does it also sound different?

By Grauw

Ascended (9479)

Аватар пользователя Grauw

04-12-2014, 00:42

maxis wrote:

A-ha, thanks for tipping off. I'm going to investigate. The problem you describe, is it only likely with SCC or also with PSG from your opinion?

I didn’t notice a problem there, but then again it’s not as easy to make out in that example.

maxis wrote:

One more thing, I do have a fixed sample rate sigma-delta DAC (48 KHz). From what I've seen on the logic analyzer, the SCC DAC runs at 3.579545/10=357KHz.

As far as I know the SCC just runs at 3.579545 MHz, and the period set in the register determines the number of clock cycles until it outputs the next sample to the resistor array.

maxis wrote:

What do you think could be a good music sample for the PSG only test?

Usas Smile.

If you really want to put the PSG through its paces, try some AY Riders music which uses the PSG envelopes, like Six Miles High by gasman (pt3 file).

By maxis

Champion (512)

Аватар пользователя maxis

04-12-2014, 00:48

Grauw wrote:

As far as I know the SCC just runs at 3.579545 MHz, and the period determines the number of clock cycles (-1 iirc) until it outputs the next sample. The DAC’s just a resistor array.

See, the dividers less or equal to 8 produce no sound. SCC seems to have a single port internal memory, they need to fetch 5 samples one after another. Hence - 10 cycles per revolution @3.57 MHz.

Grauw wrote:

Usas Smile.

If you really want to put the PSG through its paces, try some AY Riders music which uses the PSG envelopes, like Six Miles High by gasman (pt3 file).

I'll try that out and record the output :)

By Grauw

Ascended (9479)

Аватар пользователя Grauw

04-12-2014, 00:59

maxis wrote:

See, the dividers less or equal to 8 produce no sound. SCC seems to have a single port internal memory, they need to fetch 5 samples one after another. Hence - 10 cycles per revolution @3.57 MHz.

Isn’t that upper limit because it exceeds the memory read speed? If the periods were all rounded to units of 10, you wouldn’t hear a pitch difference between period = 25 and period = 30… I’m relatively sure that you do (it’s a bit late to double-check atm). But I suppose the period counters could run independently of the memory reader/outputter. Hmm, interesting.

This reminds me of that 180 kHz SCC sample playback experiment I did a few months back Smile. I don’t remember if my results then matched your theory.

Either way those frequencies are so high, they aren’t used in practice.

By Grauw

Ascended (9479)

Аватар пользователя Grauw

04-12-2014, 00:55

By the way I edit my posts a lot haha, so be sure to read them again if you’re responding immediately Smile.

By maxis

Champion (512)

Аватар пользователя maxis

04-12-2014, 01:03

Grauw wrote:

Isn’t that upper limit because it exceeds the memory read speed? If the periods were all rounded to units of 10, you wouldn’t hear a pitch difference between period = 25 and period = 30? I’m relatively sure that you do (it’s a bit late to double-check atm). But I suppose the period counters could run independently of the memory reader/outputter. Hmm, interesting.

No, no. That's correct that by having /10 and /11 dividers will yield different frequencies. Actually I've mentioned the 10 slot wheel for the 5 channels. So, any de-phased channels will always have 10 slots allocated.
(IMHO, in my test I haven't put well aside the frequency dividers). I've checked again. The DAC outputs every 2-nd 3.57MHz cycle, so the resulting sampling rate is 3.57/2=1.79 MHz and the nyquist frequency is 0.89 MHz. Quite high for the audio DAC. You can directly broadcast on the AM radio band Smile .

BTW, what player do you use for PT3 files?

By Grauw

Ascended (9479)

Аватар пользователя Grauw

04-12-2014, 01:12

maxis wrote:

No, no. That's correct that by having /10 and /11 dividers will yield different frequencies. Actually I've mentioned the 10 slot wheel for the 5 channels. So, any de-phased channels will always have 10 slots allocated.
(IMHO, in my test I haven't put well aside the frequency dividers). I've checked again. The DAC outputs every 2-nd 3.57MHz cycle, so the resulting sampling rate is 3.57/2=1.79 MHz and the nyquist frequency is 0.89 MHz.

I see! Maybe that PCM playback experiment I did will work better if I make sure the period used is a multiple of 10.

maxis wrote:

Quite high for the audio DAC. You can directly broadcast on the AM radio band :) .

Haha, really? Funny :).

maxis wrote:

BTW, what player do you use for PT3 files?

http://www.msx.org/wiki/Music_replayer_routines#Vortex_track...

Maybe you need to write a little assembly to run the player…

But, I believe that particular song is used in the Night City msxdev game: http://msxdev.msxblue.com/wp-content/plugins/download-monito...

Страница 28/56
21 | 22 | 23 | 24 | 25 | 26 | 27 | | 29 | 30 | 31 | 32 | 33