Re: [hatari-devel] Re: Interesting sound problems with Hatari? |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Re: Interesting sound problems with Hatari?
- From: David Savinkoff <dsavnkff@xxxxxxxxx>
- Date: Mon, 21 Apr 2014 12:26:41 -0600 (MDT)
- Thread-index: ZOWwxQEnj0uLiQc0BCo/bAbIP72ANg==
- Thread-topic: Interesting sound problems with Hatari?
----- Laurent Sallafranque wrote:
> Hi,
>
> First, sorry for not replying sooner, I was not at home this week end.
> I've just discovered you patches.
>
> I did write the whole crossbar sound code 3 years ago, and if I remember
> correctly, David added some more precise values and filters (while he
> was increasing the STE DMA sound part).
>
> I added the 0 after reading a sound because of the DSP part in the
> crossbar (on the real Falcon) (I was really concerned by the DSP part at
> this time).
>
> When the DSP sends a data to the SSI, this value is played by the
> crossbar directly into the DAC part.
> If then you tristate the DSP (or stop it, reboot it or whatever stops
> the sounds), there's no more sound coming out of the DAC.
> But if I didn't put zeros after reading the value (into hatari), the
> sound (coming from the DSP) was looping forever into the circular DAC
> buffer.
>
> maybe this should be done differently, but I still think that a played
> sound into the DAC buffer should be erazed.
Another way is to repeat the last good sample (instead of inserting zeros).
This is what a DAC will do when the data stops.
Note that inserting samples (filtered or otherwise) will not be used to hide
correctable problems.
> That's the same if the crossbar does a DMA --> DAC connection (the sound
> read from the DMA (Falcon MEMORY) should be set to 0 after being read
> (to remove the circular buffer sound playing forever).
>
> Only the source of the sound should remain unchanged (mainly the DMA
> memory), whereas the DSP sounds are volatile (computed once, sent once
> to the SSI, played once by the DAC, and forgotten after this).
>
> I like the idea of the patch by David (a FIFO, which allows to read a
> sound only once).
>
>
> Doug, the *if (n) *patch is a great idea.
> I was just thinking that is n is > 1 (let's say n = 5), maybe we should
> reset to 0 the whole values between n=1 and n=5 ?
>
> I'll have a closer look too at this problem.
>
> Regards
>
> Laurent
>