From: Manuel Jander <manuel.jander@usm.cl>
To: alsa-devel <alsa-devel@lists.sourceforge.net>
Subject: Re: hardware channel mixing [EMU10K1 DMA]
Date: Mon, 06 Sep 2004 21:09:20 -0400 [thread overview]
Message-ID: <1094519360.3727.13.camel@localhost> (raw)
In-Reply-To: <1094503299.29921.78.camel@krustophenia.net>
Hi,
On Mon, 2004-09-06 at 16:41, Lee Revell wrote:
> > > It seems like if this were the case, then it would require a workaround
> > > similar to the extra voice hack. Does this seem plausible?
> >
> > Maybe. But it forces us to use only two periods per ring buffer.
>
> But this is how the hardware was designed to work. It is ALSA that is
> unusual in supporting more than 2 periods per buffer after all. Is this
> really the only reason for the extra voice? It is good that ALSA
> supports this, but forcing it on hardware that was not designed for it
> doesn't make sense here.
If the most effective way is to use 2 DMA subbuffers, there are software
means to emulate more periods. AFAIK, there is a Crystal CS42xx driver
using that scheme, and the Aureal driver does this too (despite the
latter supports upto 4 subbuffers).
> Supporting more than 2 periods per buffer is useless on the emu10k1
> anyway because it only works in the playback direction, which means JACK
> can only use 2 periods per buffer. Also I was under the impression that
> more than 2 periods should only be used if 2 periods is problematic due
> to buggy hardware or system latency issues. With the latest emu10k1
> ALSA driver and Ingo's patches these are not an issue.
IMHO, 2 periods are necessary. With only one, things get though, if not
impossible. Most hardware does not allow to manipulate the DMA registers
of a subbuffer which running.
> > It can be
> > easy to add an extra check for this case and don't allocate extra voice
> > for it. It still might be that it won't work correctly (I think that emu
> > chips interrupt a bit earlier and not all samples are transferred via PCI
> > bus at the time).
>
> I have only heard of this causing problems in combination with certain
> buggy VIA chipsets (KT266 and KT333). There is a workaround available
> for Windows (google for "george breese pci latency"). It should be
> simple enough to do the same if it becomes an issue.
>
> > Also note that the current code uses a ccis correction
> > for the extra voice (I don't know what this is - probably some cache or
> > interpolation correction). Without complete specs describing the exact
> > hardware behaviour, it's difficult to do a proper driver design.
>
> The OSS driver apparently does not need the extra voice. Neither does
> the kX driver. Presumably because both only support 2 periods per
> buffer.
>
> Anyway, I will take a shot at fixing this and see how it works. Worst
> case scenario I can reverse engineer kX ASIO, which I would rather not
> do because I think I have almost figured out how to get the same
> functionality from the ALSA driver without any reverse engineering.
>
> Eliminating the extra voice is the last major hurdle.
Well, have luck. Its never hurts to have some.
Best Regards
Manuel Jander
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
next prev parent reply other threads:[~2004-09-07 1:09 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-29 15:03 hardware channel mixing Patrick Dumais
2004-09-03 12:59 ` Clemens Ladisch
2004-09-03 13:15 ` Patrick Dumais
2004-09-03 13:24 ` Clemens Ladisch
2004-09-03 13:58 ` Florian Schmidt
2004-09-03 14:04 ` Patrick Dumais
2004-09-03 14:31 ` Florian Schmidt
2004-09-03 14:34 ` Patrick Dumais
2004-09-03 15:23 ` Florian Schmidt
2004-09-07 5:04 ` Glenn Maynard
2004-09-03 23:30 ` Lee Revell
2004-09-04 1:19 ` Manuel Jander
2004-09-04 23:28 ` Lee Revell
2004-09-05 3:02 ` Manuel Jander
2004-09-05 5:06 ` Lee Revell
2004-09-05 18:12 ` Manuel Jander
2004-09-05 18:39 ` Lee Revell
2004-09-05 18:28 ` Lee Revell
2004-09-06 11:54 ` Jaroslav Kysela
2004-09-06 20:41 ` Lee Revell
2004-09-07 1:09 ` Manuel Jander [this message]
2004-09-07 4:47 ` hardware channel mixing [EMU10K1 DMA] Lee Revell
2004-09-07 6:53 ` Lee Revell
2004-09-07 8:23 ` Jaroslav Kysela
2004-09-07 18:26 ` Lee Revell
2004-09-07 19:16 ` Jaroslav Kysela
2004-09-07 19:34 ` Lee Revell
2004-09-07 19:41 ` Jaroslav Kysela
2004-09-07 19:46 ` Lee Revell
2004-09-07 19:48 ` Lee Revell
2004-09-07 19:52 ` Jaroslav Kysela
2004-09-07 20:06 ` Lee Revell
2004-09-08 22:49 ` Lee Revell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1094519360.3727.13.camel@localhost \
--to=manuel.jander@usm.cl \
--cc=alsa-devel@lists.sourceforge.net \
--cc=mjander@users.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.