* [PATCH] Audigy + FX8010 capture (hw:x,2)
@ 2004-06-21 7:45 Peter Zubaj
2004-06-21 18:31 ` Takashi Iwai
2004-07-05 23:18 ` Lee Revell
0 siblings, 2 replies; 7+ messages in thread
From: Peter Zubaj @ 2004-06-21 7:45 UTC (permalink / raw)
To: alsa-devel
[-- Attachment #1: Type: TEXT/plain, Size: 631 bytes --]
Hi,
This patch fixes capture problems from hw:x,2 on Audigy
I tested 4 channel recrding and it was OK.
hw:x,2 records outputs from FX8010 (not FX buses)
Using "EFX voices mask" you can set channels what you want record.
use alsactl store to store config
edit this config (set true for needed channel for "EFX voices mask"
control) - I recorded channels 8,9,14,15 (front and rear output).
use alsactl restore to restore config
Looks like channel count must be power of 2 (1, 2, 4, 8, ...).
Peter Zubaj
____________________________________
http://www.logofun.pobox.sk - urobte radost svojmu telefonu
[-- Attachment #2: efx_capture_audigy.diff --]
[-- Type: APPLICATION/octet-stream, Size: 5274 bytes --]
diff -r -u o/alsa-kernel/pci/emu10k1/emupcm.c n/alsa-kernel/pci/emu10k1/emupcm.c
--- o/alsa-kernel/pci/emu10k1/emupcm.c 2004-03-06 17:51:30.000000000 +0100
+++ n/alsa-kernel/pci/emu10k1/emupcm.c 2004-06-20 14:05:17.000000000 +0200
@@ -452,7 +452,11 @@
snd_emu10k1_ptr_write(emu, ADCCR, 0, 0);
break;
case CAPTURE_EFX:
- snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
+ if (emu->audigy) {
+ snd_emu10k1_ptr_write(emu, A_FXWC1, 0, 0);
+ snd_emu10k1_ptr_write(emu, A_FXWC2, 0, 0);
+ } else
+ snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
break;
default:
break;
@@ -618,7 +622,11 @@
snd_emu10k1_ptr_write(emu, ADCCR, 0, epcm->capture_cr_val);
break;
case CAPTURE_EFX:
- snd_emu10k1_ptr_write(emu, FXWC, 0, epcm->capture_cr_val);
+ if (emu->audigy) {
+ snd_emu10k1_ptr_write(emu, A_FXWC1, 0, epcm->capture_cr_val);
+ snd_emu10k1_ptr_write(emu, A_FXWC2, 0, epcm->capture_cr_val2);
+ } else
+ snd_emu10k1_ptr_write(emu, FXWC, 0, epcm->capture_cr_val);
break;
default:
break;
@@ -637,7 +645,11 @@
snd_emu10k1_ptr_write(emu, ADCCR, 0, 0);
break;
case CAPTURE_EFX:
- snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
+ if (emu->audigy) {
+ snd_emu10k1_ptr_write(emu, A_FXWC1, 0, 0);
+ snd_emu10k1_ptr_write(emu, A_FXWC2, 0, 0);
+ } else
+ snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
break;
default:
break;
diff -r -u o/alsa-kernel/pci/emu10k1/emuproc.c n/alsa-kernel/pci/emu10k1/emuproc.c
--- o/alsa-kernel/pci/emu10k1/emuproc.c 2004-03-02 16:32:37.000000000 +0100
+++ n/alsa-kernel/pci/emu10k1/emuproc.c 2004-06-20 14:48:47.000000000 +0200
@@ -71,31 +71,32 @@
static void snd_emu10k1_proc_read(snd_info_entry_t *entry,
snd_info_buffer_t * buffer)
{
- static char *outputs[32] = {
- /* 00 */ "PCM Left",
- /* 01 */ "PCM Right",
- /* 02 */ "PCM Surround Left",
- /* 03 */ "PCM Surround Right",
- /* 04 */ "MIDI Left",
- /* 05 */ "MIDI Right",
- /* 06 */ "PCM Center",
- /* 07 */ "PCM LFE",
- /* 08 */ "???",
- /* 09 */ "???",
- /* 10 */ "???",
- /* 11 */ "???",
- /* 12 */ "MIDI Reverb",
- /* 13 */ "MIDI Chorus",
- /* 14 */ "???",
+ /* FIXME - output names are in emufx.c too */
+ static char *creative_outs[32] = {
+ /* 00 */ "AC97 Left",
+ /* 01 */ "AC97 Right",
+ /* 02 */ "Optical IEC958 Left",
+ /* 03 */ "Optical IEC958 Right",
+ /* 04 */ "Center",
+ /* 05 */ "LFE",
+ /* 06 */ "Headphone Left",
+ /* 07 */ "Headphone Right",
+ /* 08 */ "Surround Left",
+ /* 09 */ "Surround Right",
+ /* 10 */ "PCM Capture Left",
+ /* 11 */ "PCM Capture Right",
+ /* 12 */ "MIC Capture",
+ /* 13 */ "AC97 Surround Left",
+ /* 14 */ "AC97 Surround Right",
/* 15 */ "???",
/* 16 */ "???",
- /* 17 */ "???",
- /* 18 */ "ADC Left / CDROM S/PDIF Left",
- /* 19 */ "ADC Right / CDROM S/PDIF Right",
- /* 20 */ "MIC / Zoom Video Left",
- /* 21 */ "Zoom Video Right",
- /* 22 */ "S/PDIF Left",
- /* 23 */ "S/PDIF Right",
+ /* 17 */ "Analog Center",
+ /* 18 */ "Analog LFE",
+ /* 19 */ "???",
+ /* 20 */ "???",
+ /* 21 */ "???",
+ /* 22 */ "???",
+ /* 23 */ "???",
/* 24 */ "???",
/* 25 */ "???",
/* 26 */ "???",
@@ -105,9 +106,78 @@
/* 30 */ "???",
/* 31 */ "???"
};
+
+ static char *audigy_outs[64] = {
+ /* 00 */ "Digital Front Left",
+ /* 01 */ "Digital Front Right",
+ /* 02 */ "Digital Center",
+ /* 03 */ "Digital LEF",
+ /* 04 */ "Headphone Left",
+ /* 05 */ "Headphone Right",
+ /* 06 */ "Digital Rear Left",
+ /* 07 */ "Digital Rear Right",
+ /* 08 */ "Front Left",
+ /* 09 */ "Front Right",
+ /* 10 */ "Center",
+ /* 11 */ "LFE",
+ /* 12 */ "???",
+ /* 13 */ "???",
+ /* 14 */ "Rear Left",
+ /* 15 */ "Rear Right",
+ /* 16 */ "AC97 Front Left",
+ /* 17 */ "AC97 Front Right",
+ /* 18 */ "ADC Caputre Left",
+ /* 19 */ "ADC Capture Right",
+ /* 20 */ "???",
+ /* 21 */ "???",
+ /* 22 */ "???",
+ /* 23 */ "???",
+ /* 24 */ "???",
+ /* 25 */ "???",
+ /* 26 */ "???",
+ /* 27 */ "???",
+ /* 28 */ "???",
+ /* 29 */ "???",
+ /* 30 */ "???",
+ /* 31 */ "???",
+ /* 32 */ "???",
+ /* 33 */ "???",
+ /* 34 */ "???",
+ /* 35 */ "???",
+ /* 36 */ "???",
+ /* 37 */ "???",
+ /* 38 */ "???",
+ /* 39 */ "???",
+ /* 40 */ "???",
+ /* 41 */ "???",
+ /* 42 */ "???",
+ /* 43 */ "???",
+ /* 44 */ "???",
+ /* 45 */ "???",
+ /* 46 */ "???",
+ /* 47 */ "???",
+ /* 48 */ "???",
+ /* 49 */ "???",
+ /* 50 */ "???",
+ /* 51 */ "???",
+ /* 52 */ "???",
+ /* 53 */ "???",
+ /* 54 */ "???",
+ /* 55 */ "???",
+ /* 56 */ "???",
+ /* 57 */ "???",
+ /* 58 */ "???",
+ /* 59 */ "???",
+ /* 60 */ "???",
+ /* 61 */ "???",
+ /* 62 */ "???",
+ /* 33 */ "???"
+ };
+
emu10k1_t *emu = snd_magic_cast(emu10k1_t, entry->private_data, return);
unsigned int val;
int nefx = emu->audigy ? 64 : 32;
+ char **outputs = emu->audigy ? audigy_outs : creative_outs;
int idx;
snd_iprintf(buffer, "EMU10K1\n\n");
@@ -135,7 +205,7 @@
snd_iprintf(buffer, "\nCaptured FX Outputs :\n");
for (idx = 0; idx < nefx; idx++) {
if (emu->efx_voices_mask[idx/32] & (1 << (idx%32)))
- snd_iprintf(buffer, " Output %02i [%s]\n", idx, outputs[idx%32]);
+ snd_iprintf(buffer, " Output %02i [%s]\n", idx, outputs[idx]);
}
snd_iprintf(buffer, "\nAll FX Outputs :\n");
for (idx = 0; idx < 32; idx++)
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Audigy + FX8010 capture (hw:x,2)
2004-06-21 7:45 [PATCH] Audigy + FX8010 capture (hw:x,2) Peter Zubaj
@ 2004-06-21 18:31 ` Takashi Iwai
2004-06-21 23:26 ` Lee Revell
2004-06-21 23:26 ` Lee Revell
2004-07-05 23:18 ` Lee Revell
1 sibling, 2 replies; 7+ messages in thread
From: Takashi Iwai @ 2004-06-21 18:31 UTC (permalink / raw)
To: Peter Zubaj; +Cc: alsa-devel
At Mon, 21 Jun 2004 09:45:05 +0200,
Peter Zubaj wrote:
>
> Hi,
>
> This patch fixes capture problems from hw:x,2 on Audigy
>
> I tested 4 channel recrding and it was OK.
>
> hw:x,2 records outputs from FX8010 (not FX buses)
>
> Using "EFX voices mask" you can set channels what you want record.
>
> use alsactl store to store config
> edit this config (set true for needed channel for "EFX voices mask"
> control) - I recorded channels 8,9,14,15 (front and rear output).
> use alsactl restore to restore config
>
> Looks like channel count must be power of 2 (1, 2, 4, 8, ...).
Oh, shortly before, I changed the EFX-related code a bit to merge
playback and capture streams.
Could you regenerate the patch based on CVS? (But wait for a while
until anon cvs is sync'ed.)
thanks,
Takashi
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Audigy + FX8010 capture (hw:x,2)
2004-06-21 18:31 ` Takashi Iwai
2004-06-21 23:26 ` Lee Revell
@ 2004-06-21 23:26 ` Lee Revell
1 sibling, 0 replies; 7+ messages in thread
From: Lee Revell @ 2004-06-21 23:26 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Peter Zubaj, alsa-devel
FWIW, here is what happens when trying to capture hw:x,2 using the
current CVS, without applying Peter's patch:
debian:/home/rlrevell# jackd --realtime -d alsa -d hw:0,2
jackd 0.98.1
Copyright 2001-2003 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
loading driver ..
creating alsa driver ...
hw:0,2|hw:0,2|1024|2|48000|0|0|nomon|swmeter|-|32bit
ALSA lib pcm_hw.c:1056:(snd_pcm_hw_open) open /dev/snd/pcmC0D2p failed:
No such device
jackd: pcm.c:690: snd_pcm_nonblock: Assertion `pcm' failed.
Aborted
Here is my /proc/asound/pcm:
debian:/home/rlrevell# cat /proc/asound/pcm
00-00: emu10k1 : EMU10K1 : playback 32 : capture 1
00-01: emu10k1 mic : EMU10K1 MIC : capture 1
00-02: emu10k1 efx : EMU10K1 EFX : playback 8 : capture 1
Lee
On Mon, 2004-06-21 at 14:31, Takashi Iwai wrote:
> At Mon, 21 Jun 2004 09:45:05 +0200,
> Peter Zubaj wrote:
> >
> > Hi,
> >
> > This patch fixes capture problems from hw:x,2 on Audigy
> >
> > I tested 4 channel recrding and it was OK.
> >
> > hw:x,2 records outputs from FX8010 (not FX buses)
> >
> > Using "EFX voices mask" you can set channels what you want record.
> >
> > use alsactl store to store config
> > edit this config (set true for needed channel for "EFX voices mask"
> > control) - I recorded channels 8,9,14,15 (front and rear output).
> > use alsactl restore to restore config
> >
> > Looks like channel count must be power of 2 (1, 2, 4, 8, ...).
>
> Oh, shortly before, I changed the EFX-related code a bit to merge
> playback and capture streams.
>
> Could you regenerate the patch based on CVS? (But wait for a while
> until anon cvs is sync'ed.)
>
>
> thanks,
>
> Takashi
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by Black Hat Briefings & Training.
> Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
> digital self defense, top technical experts, no vendor pitches,
> unmatched networking opportunities. Visit www.blackhat.com
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/alsa-devel
>
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Audigy + FX8010 capture (hw:x,2)
2004-06-21 18:31 ` Takashi Iwai
@ 2004-06-21 23:26 ` Lee Revell
2004-06-22 13:16 ` Takashi Iwai
2004-06-21 23:26 ` Lee Revell
1 sibling, 1 reply; 7+ messages in thread
From: Lee Revell @ 2004-06-21 23:26 UTC (permalink / raw)
To: tiwai; +Cc: Peter Zubaj, alsa-devel
FWIW, here is what happens when trying to capture hw:x,2 using the
current CVS, without applying Peter's patch:
debian:/home/rlrevell# jackd --realtime -d alsa -d hw:0,2
jackd 0.98.1
Copyright 2001-2003 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
loading driver ..
creating alsa driver ...
hw:0,2|hw:0,2|1024|2|48000|0|0|nomon|swmeter|-|32bit
ALSA lib pcm_hw.c:1056:(snd_pcm_hw_open) open /dev/snd/pcmC0D2p failed:
No such device
jackd: pcm.c:690: snd_pcm_nonblock: Assertion `pcm' failed.
Aborted
Here is my /proc/asound/pcm:
debian:/home/rlrevell# cat /proc/asound/pcm
00-00: emu10k1 : EMU10K1 : playback 32 : capture 1
00-01: emu10k1 mic : EMU10K1 MIC : capture 1
00-02: emu10k1 efx : EMU10K1 EFX : playback 8 : capture 1
Lee
On Mon, 2004-06-21 at 14:31, Takashi Iwai wrote:
> At Mon, 21 Jun 2004 09:45:05 +0200,
> Peter Zubaj wrote:
> >
> > Hi,
> >
> > This patch fixes capture problems from hw:x,2 on Audigy
> >
> > I tested 4 channel recrding and it was OK.
> >
> > hw:x,2 records outputs from FX8010 (not FX buses)
> >
> > Using "EFX voices mask" you can set channels what you want record.
> >
> > use alsactl store to store config
> > edit this config (set true for needed channel for "EFX voices mask"
> > control) - I recorded channels 8,9,14,15 (front and rear output).
> > use alsactl restore to restore config
> >
> > Looks like channel count must be power of 2 (1, 2, 4, 8, ...).
>
> Oh, shortly before, I changed the EFX-related code a bit to merge
> playback and capture streams.
>
> Could you regenerate the patch based on CVS? (But wait for a while
> until anon cvs is sync'ed.)
>
>
> thanks,
>
> Takashi
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by Black Hat Briefings & Training.
> Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
> digital self defense, top technical experts, no vendor pitches,
> unmatched networking opportunities. Visit www.blackhat.com
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/alsa-devel
>
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Audigy + FX8010 capture (hw:x,2)
2004-06-21 23:26 ` Lee Revell
@ 2004-06-22 13:16 ` Takashi Iwai
0 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2004-06-22 13:16 UTC (permalink / raw)
To: Lee Revell; +Cc: Peter Zubaj, alsa-devel
At Mon, 21 Jun 2004 19:26:52 -0400,
Lee Revell wrote:
>
> FWIW, here is what happens when trying to capture hw:x,2 using the
> current CVS, without applying Peter's patch:
>
> debian:/home/rlrevell# jackd --realtime -d alsa -d hw:0,2
> jackd 0.98.1
> Copyright 2001-2003 Paul Davis and others.
> jackd comes with ABSOLUTELY NO WARRANTY
> This is free software, and you are welcome to redistribute it
> under certain conditions; see the file COPYING for details
>
> loading driver ..
> creating alsa driver ...
> hw:0,2|hw:0,2|1024|2|48000|0|0|nomon|swmeter|-|32bit
> ALSA lib pcm_hw.c:1056:(snd_pcm_hw_open) open /dev/snd/pcmC0D2p failed:
> No such device
So far, emu10k1 driver doesn't set up TRAM for Audigy as default.
i.e. EFX playback doesn't work on Audigy unless you set up via
ioctl...
Takashi
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Audigy + FX8010 capture (hw:x,2)
@ 2004-06-23 8:16 Peter Zubaj
0 siblings, 0 replies; 7+ messages in thread
From: Peter Zubaj @ 2004-06-23 8:16 UTC (permalink / raw)
To: tiwai; +Cc: alsa-devel
OK, I will send it at monday (I will be not online for four next days)
Peter Zubaj
____________________________________
http://www.pobox.sk/ - spolahliva a bezpecna prevadzka
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Audigy + FX8010 capture (hw:x,2)
2004-06-21 7:45 [PATCH] Audigy + FX8010 capture (hw:x,2) Peter Zubaj
2004-06-21 18:31 ` Takashi Iwai
@ 2004-07-05 23:18 ` Lee Revell
1 sibling, 0 replies; 7+ messages in thread
From: Lee Revell @ 2004-07-05 23:18 UTC (permalink / raw)
To: Peter Zubaj; +Cc: alsa-devel
On Mon, 2004-06-21 at 03:45, Peter Zubaj wrote:
> Hi,
>
> This patch fixes capture problems from hw:x,2 on Audigy
>
> I tested 4 channel recrding and it was OK.
>
> hw:x,2 records outputs from FX8010 (not FX buses)
>
> Using "EFX voices mask" you can set channels what you want record.
>
> use alsactl store to store config
> edit this config (set true for needed channel for "EFX voices mask"
> control) - I recorded channels 8,9,14,15 (front and rear output).
> use alsactl restore to restore config
>
> Looks like channel count must be power of 2 (1, 2, 4, 8, ...).
>
> Peter Zubaj
Would it be possible to record an FX bus channel by connecting it to one
of the 'unused' outputs in the DSP? That is, one of the 64 that does
not correspond to a physical soundcard output?
I believe that this might be how kX ASIO works. The ASIO DSP plugin
only consists of 16 instructions, one for each channel, and 'connects'
them to 16 KX_FX2 GPRs, defined in the headers as 'copies of FXbus
channels for ASIO recording'.
Lee
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-07-05 23:18 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-21 7:45 [PATCH] Audigy + FX8010 capture (hw:x,2) Peter Zubaj
2004-06-21 18:31 ` Takashi Iwai
2004-06-21 23:26 ` Lee Revell
2004-06-22 13:16 ` Takashi Iwai
2004-06-21 23:26 ` Lee Revell
2004-07-05 23:18 ` Lee Revell
-- strict thread matches above, loose matches on Subject: below --
2004-06-23 8:16 Peter Zubaj
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.