Re: [hatari-devel] Improved YM2149 sound

[ Thread Index | Date Index | More Archives ]

On 06/05/2012 21:41, David Savinkoff wrote:
To correct misleading typo in my previous explanation.
See (Correction).

Quartet mode represents the output voltage stripped of high frequency
AC component, but DC component remains.
The Quartet math model is:

(MaxVol*WARP) / (2.0 + 1.0/( 1/Ra + 1/Rb  + 1/Rc))
(MaxVol*WARP) / (1.0 + 0.5/( 1/Ra + 1/Rb  + 1/Rc))    (Wrong)

(MaxVol*WARP*0.5) / (1.0 + 0.5/( 1/Ra + 1/Rb  + 1/Rc))  (Correction)

Note that the 1.0 represents the normalized 1k resistor. 0.5 represents
50% duty cycle for the parallel resistors being summed (this effectively
doubles the pull-up resistance).



sorry for late replay, had very few time lately.

Regarding the description of the math model in this mail and the previous one, could you add it to sound.c as a comment ? I think it would be great to keep those details in the sources too, not just in the mailing list.

Then, regarding the "-1" correction you do for Quartet mode, I think it should be inside a block with :

  if ( reg7 & 0x3f == 0x38 )    /* all tones are ON, noises are OFF */
      for each voice : do vol=vol-1 if per==0

or maybe better :
  if ( ( reg7 & 0x3f == 0x38 ) && ( per==0 for all 3 voices ) )
      for each voice : do vol=vol-1

If not, you could have a case when a "normal" (non sample) music is played on voiceA and voiceB and voiceC goes to per==0 at one point. In that case, I don't think we should emulate Quartet mode and do the DC correction ; Paulo's table are only valid when all 3 voices are ON with per=0 at the same time.

What do you think ?

In the meantime, I commit your patch, we can modify it later.


Mail converted by MHonArc 2.6.19+