From: Lee Revell <rlrevell@joe-job.com>
To: Jaroslav Kysela <perex@suse.cz>
Cc: mjander@users.sourceforge.net,
alsa-devel <alsa-devel@lists.sourceforge.net>
Subject: Re: hardware channel mixing
Date: Mon, 06 Sep 2004 16:41:39 -0400 [thread overview]
Message-ID: <1094503299.29921.78.camel@krustophenia.net> (raw)
In-Reply-To: <Pine.LNX.4.58.0409061347340.8854@linux.local>
On Mon, 2004-09-06 at 07:54, Jaroslav Kysela wrote:
> On Sun, 5 Sep 2004, Lee Revell wrote:
>
> > If you look at the kX project header files, 8010.h is clearly derived
> > from emu10k1.h. But, there are several unknown values in the comments
> > that seem to be the result of reverse engineering, probably a PCI bus
> > capture with the Windows driver. One of these comments refers to a half
> > loop interrupt.
> >
> > 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.
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.
> 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.
Lee
-------------------------------------------------------
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-06 20:41 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 [this message]
2004-09-07 1:09 ` hardware channel mixing [EMU10K1 DMA] Manuel Jander
2004-09-07 4:47 ` 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=1094503299.29921.78.camel@krustophenia.net \
--to=rlrevell@joe-job.com \
--cc=alsa-devel@lists.sourceforge.net \
--cc=mjander@users.sourceforge.net \
--cc=perex@suse.cz \
/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.