Re: [linux-audio-dev] emu10k1 multichannel support

From: Aaron <aamehl@email-addr-hidden>
Date: Sat Jan 22 2005 - 19:30:20 EET

HI,

Slightly related.
I have a sound blaster and want something simple.

I want a way to use all outputs I want two speakers and a headset to
work.

Now I can only have one or the other.

the regular speaker out and the rear speaker out seem to be mutually
exclusive.

I want actually a way to toggle:
speakers only
headset only
both working.

I also wonder if there is a way to route different outputs to
different places:

I am using the headset and seperately my children are listening to
mp3s over the speakers. Is this possible?

It may be that the mixer is what is confusing me (and I am most
confused over it)

Any help would be most appreciated.

Also when will this patch appear in a released alsa package for
debian?

Thanks
Aaron
On Tue, Jan 18, 2005 at 06:40:37PM -0500 or thereabouts, Lee Revell wrote:
> I posted this to alsa-devel but since my previous post on this list
> generated a lot of interest, I am just reposting it here.
>
> As promised, here's an updated patch to add real multichannel playback
> support (and improved multichannel capture) to the emu10k1 driver.
>
> http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v001.patch
>
> Please test it and report any problems. I am especially interested in
> any regressions that impact regular PCM playback (the hw:0,0 device).
>
> QuickStart:
>
> $ jackd -R -v -d alsa -P hw:0,3 -C hw:0,2 -S
>
> I tested this and it works well with 16in/16out at 128, 256, 512 frames.
> 32 and 64 should work too but I can't test as I'm running a stock 2.6.10
> kernel for now ;-). You can check that the routing is correct by
> connecting a JACK client to the playback ports corresponding to the FX
> buses described in Documentation/Audigy-mixer.txt and
> Documentation/SB-Live-mixer.txt, and verifying that the output appears
> on that channel (the FX buses are numbered from 0 but JACK numbers
> clients from 1). For example (from SB-Live-mixer.txt):
>
> name='Music Playback Volume',index=0
>
> This control is used to attenuate samples for left and right MIDI FX-bus
> accumulators. ALSA uses accumulators 4 and 5 for left and right MIDI samples.
> The result samples are forwarded to the front DAC PCM slots of the AC97 codec.
>
> So "alsaplayer -o jack -d alsa_pcm:playback_5,alsa_pcm:playback_6"
> should output to FX buses 4 and 5, which you can test by lowering the
> 'Music' control in alsamixer. With an SBLive, use ports 1 and 2 for the
> front channels, 3 and 4 for the rear channels. The Audigy uses
> different channels, see the above docs for more info.
>
> In addition to multichannel recording applications, this should also be
> useful for OpenAL implementations, which are currently restricted to
> using 21 sources due to the use of an extra voice per stereo PCM. This
> should allow up to 63 sources.
>
> This also adds some new register info including a per channel half loop
> interrupt that I have discovered by reverse engineering the Windows
> drivers.
>
> Improvements over previous versions:
>
> - Routes the 16 channels to the 16 FX buses by default.
>
> - Enables the first 16 FX capture outputs by default, required for
> full duplex operation at latencies lower than 512 frames.
>
> - Rewrote the voice allocator to use a more efficient round
> robin algorithm, eliminating the need to reserve the
> first 16 voices for the multichannel device. The next free voice
> is maintained in the card record and the search starts from there.
>
> - Use an extra voice for playback timing rather than the EFX capture
> interrupt. I was only ever able to get that to work at 64 frames. Also
> there are definite advantages to being able to use the capture and
> playback devices independently.
>
> - Use the newly discovered per-channel half loop interrupt source for
> the extra voice rather than the channel loop interrupts. For unknown
> reasons, this works better for multichannel playback, and does not seem
> to affect regular PCM playback at all.
>
> TODO:
>
> - Fix the send routing and volume controls for the multichannel device.
> The current (copy and paste) solution assumes either one or two voices
> per PCM. So the default settings work fine but changing them with the
> mixer is likely to have unpredictable effects.
>
> - EFX capture should capture output channels 16-32 (mostly unused now)
> by default, so that we only capture the sources the user has connected
> to the multichannel recording inputs in the DSP manager. Typically FX
> buses 0-15 would be connected directly to FX outputs 16-32 so the
> capture channels would correspond directly to the playback channels. In
> order for this to work the default DSP configuration has to be changed
> slightly.
>
> Lee
Received on Sat Jan 22 20:15:45 2005

This archive was generated by hypermail 2.1.8 : Sat Jan 22 2005 - 20:15:45 EET