emu10k1 multichannel support
PATCH 1/1 emu10k1 multichannel support
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
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.
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.
Lee
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
Quoted 7 lines · Lee Revell
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 tested it on 2.6.10 with alsa 1.0.8 and have found what looks like a possible problem with the emu10k1 synth support. Soundfonts still load ok but despite mixer levels being ok ("Music=Master=...etc...=100%") there is no sound at all when using the emu10k1 wavetable synth, e.g. with aplaymidi.
Quoted 2 lines
I am especially interested in any regressions that impact regular PCM playback (the hw:0,0 device).
PCM playback and recording both seem to work ok.
Quoted 7 lines
QuickStart:
$ jackd -R -v -d alsa -P hw:0,3 -C hw:0,2 -SThis 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:
Excellent work! Very well done.
William
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
Quoted 7 lines · William
Quoted 6 lines · Lee Revell
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
Quoted 8 lines
Quoted 1 line
Please test it and report any problems.
I tested it on 2.6.10 with alsa 1.0.8 and have found what looks like a possible problem with the emu10k1 synth support. Soundfonts still load ok but despite mixer levels being ok ("Music=Master=...etc...=100%") there is no sound at all when using the emu10k1 wavetable synth, e.g. with aplaymidi.
OK, thanks, I knew I forgot to test something. Now I remember, the synth uses its own voice allocator, which I did not update. I will take a look at it.
Quoted 5 lines
Quoted 2 lines
I am especially interested in any regressions that impact regular PCM playback (the hw:0,0 device).
PCM playback and recording both seem to work ok.
Great!
Quoted 10 lines
Quoted 7 lines
QuickStart:
$ jackd -R -v -d alsa -P hw:0,3 -C hw:0,2 -SThis 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:
Excellent work! Very well done.
Thanks.
Lee
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
Quoted 7 lines · William
Quoted 6 lines · Lee Revell
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
Quoted 7 lines
Quoted 1 line
Please test it and report any problems.
I tested it on 2.6.10 with alsa 1.0.8 and have found what looks like a possible problem with the emu10k1 synth support. Soundfonts still load ok but despite mixer levels being ok ("Music=Master=...etc...=100%") there is no sound at all when using the emu10k1 wavetable synth, e.g. with aplaymidi.
Ok, found the bug. snd_emu10k1_voice_alloc now takes the number of voices as the third parameter, previously it took 1 or 0 depending on whether 1 or 2 voices were needed.
Does this fix the problem?
Lee
Index: alsa-cvs/alsa-kernel/pci/emu10k1/emu10k1_callback.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emu10k1_callback.c,v retrieving revision 1.12
alsa-kernel/pci/emu10k1/emu10k1_callback.c +1 -1
@@ -291,7 +291,7 @@if (vp->ch <0 ) {/* allocate a voice */ emu10k1_voice_t *hwvoice; -if (snd_emu10k1_voice_alloc (hw,EMU10K1_SYNTH ,0 , &hwvoice) <0 || hwvoice ==NULL ) +if (snd_emu10k1_voice_alloc (hw,EMU10K1_SYNTH ,1 , &hwvoice) <0 || hwvoice ==NULL )continue ; vp->ch = hwvoice->number; emu->num_voices++;
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
Quoted 6 lines · Lee Revell
Ok, found the bug.
snd_emu10k1_voice_allocnow takes the number of voices as the third parameter, previously it took 1 or 0 depending on whether 1 or 2 voices were needed.Does this fix the problem?
Yes, thanks. It's working very well now!
William
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
Quoted 6 lines · Lee Revell
Ok, found the bug.
snd_emu10k1_voice_allocnow takes the number of voices as the third parameter, previously it took 1 or 0 depending on whether 1 or 2 voices were needed.Does this fix the problem?
Actually I'm getting lots of these messages every time I play any MIDI files on the emu10k1 wavetable synth:
Jan 19 18:11:00 linux kernel: first==last, number 1, next free 36! Jan 19 18:11:03 linux last message repeated 37 times Jan 19 18:11:41 linux kernel: first==last, number 1, next free 8! Jan 19 18:12:12 linux last message repeated 450 times Jan 19 18:13:08 linux last message repeated 847 times
The comments in your patch say this could be a "BUG (or not enough voices)!"
William
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 11 lines · William
Quoted 6 lines · Lee Revell
Ok, found the bug.
snd_emu10k1_voice_allocnow takes the number of voices as the third parameter, previously it took 1 or 0 depending on whether 1 or 2 voices were needed.Does this fix the problem?
Actually I'm getting lots of these messages every time I play any MIDI files on the emu10k1 wavetable synth:
Quoted 7 lines
Jan 19 18:11:00 linux kernel: first==last, number 1, next free 36! Jan 19 18:11:03 linux last message repeated 37 times Jan 19 18:11:41 linux kernel: first==last, number 1, next free 8! Jan 19 18:12:12 linux last message repeated 450 times Jan 19 18:13:08 linux last message repeated 847 timesThe comments in your patch say this could be a "BUG (or not enough voices)!"
Yes, that's certainly a bug. I have hit this occasionally using aplay while JACK is running but I can't reliably reproduce it. The wavetable synth allocates and frees voices much faster.
I will take a look.
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
At Tue, 18 Jan 2005 18:31:12 -0500,
Quoted 8 lines · Lee Revell
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).
The new function looks great.
Let me know if you think the patch is mature enough to be merged.
Quoted 6 lines
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.
These controls should be IFACE_PCM indeed...
We can change this for 1.0.9 with the risk of incompatibility.
Takashi
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
Quoted 6 lines · Takashi Iwai
At Tue, 18 Jan 2005 18:31:12 -0500,
Quoted 4 lines · Lee Revell
As promised, here's an updated patch to add real multichannel playback support (and improved multichannel capture) to the emu10k1 driver.
Quoted 9 lines
Quoted 4 lines
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).
The new function looks great.
Let me know if you think the patch is mature enough to be merged.
OK, in addition to the known issues in my original post, there seems to be a bug when using a smaller period than 128 frames, that causes an xrun storm then a complete lockup. And the wavetable synth still has problems with voice allocation.
Hopefully this will be ready to merge by the time 1.0.9 comes out.
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 6 lines · Takashi Iwai
At Tue, 18 Jan 2005 18:31:12 -0500,
Quoted 4 lines · Lee Revell
As promised, here's an updated patch to add real multichannel playback support (and improved multichannel capture) to the emu10k1 driver.
Quoted 8 lines
Quoted 4 lines
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).
The new function looks great.
Let me know if you think the patch is mature enough to be merged.
OK, I have really fixed the voice allocator. Synth, regular PCM, and multichannel PCM all tested and working.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v003.patch
Some users report they get massive xruns using the regular hw:0,0 device. I cannot reproduce the problem, but I will update the patch to make regular PCM playback work the old way.
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 21 lines · Lee Revell
Quoted 6 lines · Takashi Iwai
At Tue, 18 Jan 2005 18:31:12 -0500,
Quoted 3 lines · Lee Revell
As promised, here's an updated patch to add real multichannel playback support (and improved multichannel capture) to the emu10k1 driver.
Quoted 8 lines
Quoted 4 lines
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).
The new function looks great.
Let me know if you think the patch is mature enough to be merged.OK, I have really fixed the voice allocator. Synth, regular PCM, and multichannel PCM all tested and working.
Quoted 8 lines
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v003.patch
Some users report they get massive xruns using the regular hw:0,0 device. I cannot reproduce the problem, but I will update the patch to make regular PCM playback work the old way.
Lee
I am currently doing work on the P16V chip that is on the Audigy 2 sound cards. It will be able to capture and playback 4 stereo channels at the same time, at anything from 44.1 khz up to 192khz. It can also pass samples to and from the EMU10K2 DSP, but it transfers them in blocks of 8 mono channels. e.g. DSP fxchannel 0-7 or 8-15 or 16-23 etc. So, I think it would be better if the multichannel patch you are doing uses those groupings of channels for multichannel play/capture.
James
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 7 lines · James Courtier-Dutton
I am currently doing work on the P16V chip that is on the Audigy 2 sound cards. It will be able to capture and playback 4 stereo channels at the same time, at anything from 44.1 khz up to 192khz. It can also pass samples to and from the EMU10K2 DSP, but it transfers them in blocks of 8 mono channels. e.g. DSP fxchannel 0-7 or 8-15 or 16-23 etc. So, I think it would be better if the multichannel patch you are doing uses those groupings of channels for multichannel play/capture.
OK. I have read your patch, it's really a marvel of reverse engineering. So far I have not tackled the problem of how to present the multichannel capture controls to the user in a reasonable way. For now my patch hardcodes the EFX voices mask control to capture 16 of the upper outputs (FXBUS2 and A_FXBUS2). These correspond to the high 16 bits of FXWC on SBLive and the low 16 bits of A_FXWC2 on Audigy. I also plan to support channel counts other than 16 for playback.
Meanwhile I have updated the definitions of the I/O GPRs to reflect the current knowledge of the hardware. This makes implementing FXBUS and P16V capture easier. Actually you could test the P16V -> DSP signal path now, just change A_FXBUS to A_P16VIN in this line from my patch:
/* EFX capture - capture the first 16 FX buses */
for (z = 0; z < 16; z++) {
A_OP(icode, &ptr, iACC3, A_FXBUS2(z), A_C_00000000, A_C_00000000, A_FXBUS(z));
}and you should be able to capture the 48Khz-resampled P16V streams with hw:0,2.
Hmm, that gives me an idea, there are 16 more A_FXBUS2 recording inputs, we could just connect the P16V outputs like so:
/* P16V capture - capture the 16 P16V inputs */
for (z = 16; z < 32; z++) {
A_OP(icode, &ptr, iACC3, A_FXBUS2(z), A_C_00000000, A_C_00000000, A_P16VIN(z - 16));
}Then you could have a mixer control that sets the low 16 bits of A_FXWC2 to capture the first 16 FX buses***, or the high 16 bits to capture the P16V inputs, or both. While we are at it we should let them set the low 16 bits of A_FXWC1 to capture the physical outs or the high 16 to capture ???. On SBLive they can set the low 16 FXWC bits to capture their physical outs or the high 16 to capture the FX buses***.
It gets slightly more complicated if you want to let them capture groups of 8 because you have to decide which 8. Also the groups of 16 channels seem to form logical units. Anyway capturing P16V via the DSP is handy for testing but it's really not going to be a common use of the device. People who want to use the DSP will run at 48Khz and people who want 44.1, 96 or 192khz will just use the P16V. The only application I can remotely think of is a video game with 24/96 content that wants to use the DSP for 3D audio/EAX type stuff, which isn't even implemented on Linux.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v006.patch
Audigy:
#define A_FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x3f FX buses */ #define A_EXTIN(x) (0x40 + (x)) /* x = 0x00 - 0x0f physical ins */ #define A_P16VIN(x) (0x50 + (x)) /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */ #define A_EXTOUT(x) (0x60 + (x)) /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown */ #define A_FXBUS2(x) (0x80 + (x)) /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */ #define A_EMU32OUTH(x) (0xa0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" - ??? */ #define A_EMU32OUTL(x) (0xb0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_1 - _F" - ??? */ #define A_GPR(x) (A_FXGPREGBASE + (x))
SBLive:
/* GPRs */
#define FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x0f */
#define EXTIN(x) (0x10 + (x)) /* x = 0x00 - 0x0f */
#define EXTOUT(x) (0x20 + (x)) /* x = 0x00 - 0x0f physical outs -> FXWC low 16 bits */
#define FXBUS2(x) (0x30 + (x)) /* x = 0x00 - 0x0f copies of fx buses for capture -> FXWC high 16 bits */
/* NB: 0x31 and 0x32 are shared with Center/LFE on SB live 5.1 */Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 5 lines · Lee Revell
OK, I have really fixed the voice allocator. Synth, regular PCM, and multichannel PCM all tested and working.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v003.patch
OK, I have fixed the xrun storm bug as well as the system lockup when going below 128 frames in version 004. Version 005 improves the accuracy of the interrupt timing.
Currently there are no known regressions. I still need to clean up the mixer controls before this is mergeable.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v005.patch
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 6 lines · Takashi Iwai
At Tue, 18 Jan 2005 18:31:12 -0500,
Quoted 4 lines · Lee Revell
As promised, here's an updated patch to add real multichannel playback support (and improved multichannel capture) to the emu10k1 driver.
Quoted 9 lines
Quoted 4 lines
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).
The new function looks great.
Let me know if you think the patch is mature enough to be merged.
OK, I have posted the latest version:
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v007.patch
All the known bugs I mentioned have been fixed. I would like to test this version a while before signing off on it, then it should be ready to merge. Since this patch touches almost every file in the driver, I can split it up and post it as a series of patches if necessary.
The mixer controls for multichannel PCM have been fixed and moved to IFACE_PCM. My solution was to use the same emu10k1_pcm_mixer_t structure internally as for regular PCM substreams, but only the "mono" component is exposed to userspace.
Regular PCM controls (32 substreams, one per substream):
numid=64,iface=MIXER,name='EMU10K1 PCM Send Routing'
; type=INTEGER,access=rw---,values=24,min=0,max=63,step=0 : values=0,1,2,3,0,0,0,0,0,1,2,3,0,0,0,0,0,1,2,3,0,0,0,0
numid=96,iface=MIXER,name='EMU10K1 PCM Send Volume'
; type=INTEGER,access=rw---,values=24,min=0,max=255,step=0 : values=255,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0
numid=128,iface=MIXER,name='EMU10K1 PCM Volume'
; type=INTEGER,access=rw---,values=3,min=0,max=65535,step=0 : values=65535,65535,65535
Multichannel PCM controls (one 16 channel substream, one per channel)
numid=161,iface=PCM,name='Multichannel PCM Send Routing',index=1
; type=INTEGER,access=rw---,values=8,min=0,max=63,step=0 : values=1,0,13,14,60,61,62,63
numid=177,iface=PCM,name='Multichannel PCM Send Volume',index=1
; type=INTEGER,access=rw---,values=8,min=0,max=255,step=0 : values=255,0,0,0,0,0,0,0
numid=193,iface=PCM,name='Multichannel PCM Volume',index=1
; type=INTEGER,access=rw---,values=1,min=0,max=65535,step=0 : values=65535
Although this wastes a little space, because we allocate for 24 + 24 + 3 elements per channel and use 8 + 8 + 1, I think it's the cleanest solution. Using a different structure for the multichannel mixer would have made the patch a lot bigger.
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Bug in emu10k1 multichannel support
Lee Revell wrote:
...
Quoted 9 lines
OK, I have posted the latest version:
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v007.patch
All the known bugs I mentioned have been fixed. I would like to test this version a while before signing off on it, then it should be ready to merge. Since this patch touches almost every file in the driver, I can split it up and post it as a series of patches if necessary.
Quoted 5 lines
The mixer controls for multichannel PCM have been fixed and moved to
IFACE_PCM. My solution was to use the sameemu10k1_pcm_mixer_tstructure internally as for regular PCM substreams, but only the "mono" component is exposed to userspace.
...
I'm having problems with emu10k1-multichannel-v008.patch. I have made a test program that demonstrates the bug. The program works alone, but the bug is triggered when I play a song in xmms, and at the same time run the test program.
The test program is based on patest_sine.c in PortAudio V18.1. It repeatedly plays a sine signal for one second. When playing a stereo stream it fails to open the oss device the sixth time. And when playing a mono stream it fails to open the device the eighth time.
Running the test program again doesn't work at all. I have to stop xmms to reset the bug.
Output from test program and PostAudio library:
Stereo stream
-------------
PortAudio Test: output sine wave. SR = 44100, BufSize = 64, devID = 0Pa_SetupDeviceFormat: could not SNDCTL_DSP_CHANNELS
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.
PortAudio Test: output sine wave. SR = 44100, BufSize = 64, devID = 0Pa_QueryDevice: could not get format infoPa_SetupDeviceFormat: could not SNDCTL_DSP_SETFMT
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.
PortAudio Test: output sine wave. SR = 44100, BufSize = 64, devID = 0Pa_QueryDevice: could not get format infoPa_SetupDeviceFormat: could not SNDCTL_DSP_SETFMT
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.
Mono stream
-----------Pa_QueryDevice: no supported sample rate (or SNDCTL_DSP_SPEED ioctl call failed). Force 44100 HzPa_SetupDeviceFormat: could not SNDCTL_DSP_SETFMT
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.
PortAudio Test: output sine wave. SR = 44100, BufSize = 64, devID = 0Pa_QueryDevice: could not get format infoPa_SetupDeviceFormat: could not SNDCTL_DSP_SETFMT
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.
The log also contains several "kernel: first==last, number X, next free Y!", where X is 1 or 2, and Y 12,16,26,32,36 or 44.
I hope this helps.
Regards,
Mikael Magnusson
/*
* $Id: patest_sine.c,v 1.2.4.1 2003/02/11 21:41:32 philburk Exp $
* patest_sine.c
* Play a sine wave using the Portable Audio api for several seconds. *
* Authors:
* Ross Bencina <[email protected]>
* Phil Burk <[email protected]>
*
* This program uses the PortAudio Portable Audio Library.
* For more information see: http://www.audiomulch.com/portaudio/
* Copyright (c) 1999-2000 Ross Bencina and Phil Burk
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software. *
* Any person wishing to distribute modifications to the Software is
* requested to send the modifications to the original developer so that
* they can be incorporated into the canonical version.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
*/
#include <stdio.h>
#include <math.h>
#include "portaudio.h"
#define NUM_SECONDS (1) #define SAMPLE_RATE (44100) #define AMPLITUDE (0.9)
#define FRAMES_PER_BUFFER (64)
#define OUTPUT_DEVICE Pa_GetDefaultOutputDeviceID() //#define OUTPUT_DEVICE (2)
#ifndef M_PI
#define M_PI (3.14159265)
#endif
#define TABLE_SIZE (200)
typedef struct
{
float sine[TABLE_SIZE];
int left_phase;
int right_phase;
}paTestData;
/* This routine will be called by the PortAudio engine when audio is needed. ** It may called at interrupt level on some machines so don't do anything ** that could mess up the system like calling malloc() or free(). */
static int patestCallback( void *inputBuffer, void *outputBuffer,
unsigned long framesPerBuffer, PaTimestamp outTime, void *userData )
{
paTestData *data = (paTestData*)userData;
float *out = (float*)outputBuffer;
unsigned long i;
int finished = 0;
(void) outTime; /* Prevent unused variable warnings. */
(void) inputBuffer;
for( i=0; i<framesPerBuffer; i++ )
{
*out++ = data->sine[data->left_phase]; /* left */
// *out++ = data->sine[data->right_phase]; /* right */
data->left_phase += 1;
if( data->left_phase >= TABLE_SIZE ) data->left_phase -= TABLE_SIZE;
data->right_phase += 3; /* higher pitch so we can distinguish left and right. */
if( data->right_phase >= TABLE_SIZE ) data->right_phase -= TABLE_SIZE;
}
return finished;
}/*******************************************************************/ int play(void)
{
PortAudioStream *stream;
PaError err;
paTestData data;
int i;
printf("PortAudio Test: output sine wave. SR = %d, BufSize = %d, devID = %d\n",
SAMPLE_RATE, FRAMES_PER_BUFFER, OUTPUT_DEVICE);
/* initialise sinusoidal wavetable */
for( i=0; i<TABLE_SIZE; i++ )
{
data.sine[i] = (float) (AMPLITUDE * sin( ((double)i/(double)TABLE_SIZE) * M_PI * 2. ));
}
data.left_phase = data.right_phase = 0;
err = Pa_Initialize();
if( err != paNoError ) goto error;
err = Pa_OpenStream(
&stream,
paNoDevice,/* default input device */
0, /* no input */
paFloat32, /* 32 bit floating point input */
NULL,
OUTPUT_DEVICE,
1, /* stereo output */
paFloat32, /* 32 bit floating point output */
NULL,
SAMPLE_RATE,
FRAMES_PER_BUFFER,
0, /* number of buffers, if zero then use default minimum */
paClipOff, /* we won't output out of range samples so don't bother clipping them */
patestCallback,
&data );
if( err != paNoError ) goto error;
err = Pa_StartStream( stream );
if( err != paNoError ) goto error;
printf("Play for %d seconds.\n", NUM_SECONDS ); fflush(stdout);
Pa_Sleep( NUM_SECONDS * 1000 );
err = Pa_StopStream( stream );
if( err != paNoError ) goto error;
err = Pa_CloseStream( stream );
if( err != paNoError ) goto error;
Pa_Terminate();
printf("Test finished.\n");
return err;
error:
Pa_Terminate();
fprintf( stderr, "An error occured while using the portaudio stream\n" );
fprintf( stderr, "Error number: %d\n", err );
fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) );
return err;
}int main()
{
int i;
for (i = 0; i < 10; i++) {
play();
}
getchar();
}Re: Bug in emu10k1 multichannel support
Quoted 16 lines · Mikael Magnusson
Lee Revell wrote:
...Quoted 9 lines
OK, I have posted the latest version:
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v007.patch
All the known bugs I mentioned have been fixed. I would like to test this version a while before signing off on it, then it should be ready to merge. Since this patch touches almost every file in the driver, I can split it up and post it as a series of patches if necessary.
Quoted 5 lines
The mixer controls for multichannel PCM have been fixed and moved to
IFACE_PCM. My solution was to use the sameemu10k1_pcm_mixer_tstructure internally as for regular PCM substreams, but only the "mono" component is exposed to userspace.
Quoted 7 lines
...
I'm having problems with emu10k1-multichannel-v008.patch. I have made a test program that demonstrates the bug. The program works alone, but the bug is triggered when I play a song in xmms, and at the same time run the test program.
Thanks, I have found and fixed the bug.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v009.patch
I believe the patch should now be mergeable. All known bugs have been fixed, and since I announced it on LAU and LAD the patch has had fairly widespread testing.
I will break the patch up and post one patch per file in the next few days.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 30 lines · Lee Revell
Quoted 18 lines · Mikael Magnusson
Lee Revell wrote:
...Quoted 9 lines
OK, I have posted the latest version:
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v007.patch
All the known bugs I mentioned have been fixed. I would like to test this version a while before signing off on it, then it should be ready to merge. Since this patch touches almost every file in the driver, I can split it up and post it as a series of patches if necessary.
Quoted 5 lines
The mixer controls for multichannel PCM have been fixed and moved to
IFACE_PCM. My solution was to use the sameemu10k1_pcm_mixer_tstructure internally as for regular PCM substreams, but only the "mono" component is exposed to userspace.Quoted 4 lines
...
I'm having problems with emu10k1-multichannel-v008.patch. I have made a test program that demonstrates the bug. The program works alone, but the bug is triggered when I play a song in xmms, and at the same time run the test program.
Thanks, I have found and fixed the bug.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v009.patch
Quoted 9 lines
I believe the patch should now be mergeable. All known bugs have been fixed, and since I announced it on LAU and LAD the patch has had fairly widespread testing.
I will break the patch up and post one patch per file in the next few days.
Lee
I'm still having the same problem with emu10k1-multichannel-v009.patch and current CVS.
/Mikael Magnusson
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 3 lines · Mikael Magnusson
I'm still having the same problem with emu10k1-multichannel-v009.patch and current CVS.
Thanks, I verified the bug is still there in 009. I must have screwed up the patch, because I'm sure I fixed it. I will post version 010 soon.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 9 lines · Lee Revell
Quoted 3 lines · Mikael Magnusson
I'm still having the same problem with emu10k1-multichannel-v009.patch and current CVS.
Thanks, I verified the bug is still there in 009. I must have screwed up the patch, because I'm sure I fixed it. I will post version 010 soon.
Please try this patch, on top of 009.
Lee
pci/emu10k1/voice.c renamed from ../alsa-v009-test/alsa-kernel/pci/emu10k1/voice.c +18 -15
@@ -48,47 +48,50 @@static int voice_alloc (emu10k1_t *emu,emu10k1_voice_type_t type,int number,emu10k1_voice_t **rvoice) {emu10k1_voice_t *voice; -int idx, pair, i, j, k, first_voice, last_voice, skip; +int i, j, k, first_voice, last_voice, skip; - first_voice = last_voice = skip =0 ; *rvoice =NULL ; -for (i = emu->next_free_voice, j=0 ; j <NUM_G ; i += number, j+= number) { + first_voice = last_voice =0 ; +for (i = emu->next_free_voice, j =0 ; j <NUM_G ; i += number, j += number) {// printk("i %d j %d next free %d!\n", i, j, emu->next_free_voice); i %=NUM_G ; -if ((i %2 ) && (number ==2 )) { + +/* stereo voices must be even/odd */ +if ((number ==2 ) && (i %2 )) { i++;continue ; }/* make sure the block of voices does not cross the 32 voice boundary */ -if (((i %32 ) + number) >32 ) -continue ; +//if (((i % 32) + number) > 32) +// continue; + + skip =0 ;for (k =0 ; k < number; k++) { - voice = &emu->voices[i+k]; + voice = &emu->voices[(i+k) %NUM_G ];if (voice->use) { -// printk("voice %d: use=1!\n", i+k); +printk ("voice %d: use=1!\n" , i+k); skip =1 ; } }if (!skip) {// printk("allocated voice %d\n", i); first_voice = i; - last_voice = i + number; + last_voice = (i + number) %NUM_G ; emu->next_free_voice = last_voice; - emu->next_free_voice %=NUM_G ;break ; } }if (first_voice == last_voice) { -printk ("first==last, number %d, next free %d!\n" , number, emu->next_free_voice); -/* BUG (or not enough voices)! */ +printk ("BUG (or not enough voices), number %d, next free %d!\n" , + number, + emu->next_free_voice);return -ENOMEM ; } - pair = ( number ==2 ) ?1 :0 ; -for (idx=first_voice; idx < last_voice; idx++) { - voice = &emu->voices[idx]; +for (i=0 ; i < number; i++) { + voice = &emu->voices[(first_voice + i) %NUM_G ];// printk("voice alloc - %i, %i of %i\n", voice->number, idx-first_voice+1, number); voice->use =1 ;switch (type) {
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 13 lines · Lee Revell
Quoted 9 lines · Lee Revell
Quoted 2 lines · Mikael Magnusson
I'm still having the same problem with emu10k1-multichannel-v009.patch and current CVS.
Thanks, I verified the bug is still there in 009. I must have screwed up the patch, because I'm sure I fixed it. I will post version 010 soon.
Quoted 4 lines
Please try this patch, on top of 009.
Lee
Yes, it's working for me.
/Mikael Magnusson
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
In reply to Lee RevellQuoted 35 lines · Lee Revell
Quoted 20 lines · Mikael Magnusson
Lee Revell wrote:
...Quoted 9 lines
OK, I have posted the latest version:
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v007.patch
All the known bugs I mentioned have been fixed. I would like to test this version a while before signing off on it, then it should be ready to merge. Since this patch touches almost every file in the driver, I can split it up and post it as a series of patches if necessary.
Quoted 7 lines
The mixer controls for multichannel PCM have been fixed and moved to
IFACE_PCM. My solution was to use the sameemu10k1_pcm_mixer_tstructure internally as for regular PCM substreams, but only the "mono" component is exposed to userspace.Quoted 9 lines
...
I'm having problems with emu10k1-multichannel-v008.patch. I have made a test program that demonstrates the bug. The program works alone, but the bug is triggered when I play a song in xmms, and at the same time run the test program.
Thanks, I have found and fixed the bug.
Quoted 10 lines
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v009.patch
I believe the patch should now be mergeable. All known bugs have been fixed, and since I announced it on LAU and LAD the patch has had fairly widespread testing.
I will break the patch up and post one patch per file in the next few days.
does this one have both the capture and playback patches? if not, would it be possible to combine the two, because i haven't had any success patching the cvs alsa driver that already contains the capture (or is that playback?) patch ...
i'm currently using the 008 patch, without too much drama ... except the slightly frustrating capturing of playback channels along with ac97 ... though this could be due to incorrect mixer settings ...
shayne
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 12 lines · Shayne O'Connor
Quoted 12 lines
Thanks, I have found and fixed the bug.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v009.patch
I believe the patch should now be mergeable. All known bugs have been fixed, and since I announced it on LAU and LAD the patch has had fairly widespread testing.
I will break the patch up and post one patch per file in the next few days.
Quoted 8 lines
does this one have both the capture and playback patches? if not, would it be possible to combine the two, because i haven't had any success patching the cvs alsa driver that already contains the capture (or is that playback?) patch ...
i'm currently using the 008 patch, without too much drama ... except the slightly frustrating capturing of playback channels along with ac97 ... though this could be due to incorrect mixer settings ...
No version 009 does not have the capture patch because I am trying to get the size of the patch down to merge it.
I just tested version 009 with ALSA CVS and it works fine. Can you try deleting the ALSA CVS directory, checking it out again and applying the patch?
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 28 lines · Lee Revell
Quoted 14 lines · Shayne O'Connor
Quoted 14 lines
Thanks, I have found and fixed the bug.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v009.patch
I believe the patch should now be mergeable. All known bugs have been fixed, and since I announced it on LAU and LAD the patch has had fairly widespread testing.
I will break the patch up and post one patch per file in the next few days.
Quoted 10 lines
does this one have both the capture and playback patches? if not, would it be possible to combine the two, because i haven't had any success patching the cvs alsa driver that already contains the capture (or is that playback?) patch ...
i'm currently using the 008 patch, without too much drama ... except the slightly frustrating capturing of playback channels along with ac97 ... though this could be due to incorrect mixer settings ...
Quoted 8 lines
No version 009 does not have the capture patch because I am trying to get the size of the patch down to merge it.
I just tested version 009 with ALSA CVS and it works fine. Can you try deleting the ALSA CVS directory, checking it out again and applying the patch?
this is what i get when i try to apply the patch (btw - i've only got the alsa-driver module from cvs - do i need the rest of them? that would be a bit of a drama for me in regards to dependencies with aptitude etc):
[mrmachine@localhost alsa-driver]$ patch -p1 <../emu10k1-multichannel-v009.patch
can't find file to patch at input line 8
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: alsa-old/alsa-kernel/include/emu10k1.h |=================================================================== |RCS file: /cvsroot/alsa/alsa-kernel/include/emu10k1.h,v |retrieving revision 1.54 |diff -u -r1.54 emu10k1.h |--- alsa-old/alsa-kernel/include/emu10k1.h 2 Feb 2005 11:52:45
-0000 1.54
|+++ alsa-old/alsa-kernel/include/emu10k1.h 3 Feb 2005 17:58:53 -0000
--------------------------
File to patch:
at which point, i don't know what to do ... perhaps i'm not doing this correctly?
shayne
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 4 lines · Shayne O'Connor
[mrmachine@localhost alsa-driver]$ patch -p1 <
../emu10k1-multichannel-v009.patch
can't find file to patch at input line 8
Perhaps you used the wrong -p or --strip option?
Apply the patch from the main alsa directory, not the alsa-driver directory.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 10 lines · Lee Revell
Quoted 6 lines · Shayne O'Connor
[mrmachine@localhost alsa-driver]$ patch -p1 <
../emu10k1-multichannel-v009.patch
can't find file to patch at input line 8
Perhaps you used the wrong -p or --strip option?
Quoted 4 lines
Apply the patch from the main alsa directory, not the alsa-driver directory.
ok, i did that, but when i try to compile alsa-driver i get the output below ... but just to clear up - with patches before 009, i only had to compile and install the alsa-driver module (i'm using PlanetCCRMA which loads alsa as a kernel module), is that the case here as well?
if not, could you give me a run-through of how i would install the whole pattched alsa package on top of what i've already got there? i realise you're busy, but it would help a great deal in making sure i'm testing these patches correctly :)
here is the ouput from trying to compile alsa-driver:
[mrmachine@localhost alsa-driver]$ make
make dep
make[1]: Entering directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver'
make[2]: Entering directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore' copying file alsa-kernel/core/info.c
patching file info.c
Hunk #9 succeeded at 934 (offset -1 lines).
copying file alsa-kernel/core/pcm_native.c
patching file pcm_native.c
Hunk #2 succeeded at 2737 (offset 6 lines).
Hunk #4 succeeded at 2810 (offset 6 lines).
Hunk #6 succeeded at 2928 (offset 6 lines).
Hunk #8 succeeded at 2965 (offset 6 lines).
Hunk #10 succeeded at 3026 (offset 6 lines).
Hunk #12 succeeded at 3084 (offset 6 lines).
Hunk #14 succeeded at 3122 (offset 6 lines).
Hunk #16 succeeded at 3149 (offset 6 lines).
Hunk #18 succeeded at 3238 (offset 6 lines).
Hunk #20 succeeded at 3306 (offset 6 lines).
copying file alsa-kernel/core/control.c
patching file control.c
Hunk #2 succeeded at 1254 (offset -2 lines).
copying file alsa-kernel/core/hwdep.c
patching file hwdep.c
copying file alsa-kernel/core/init.c
patching file init.c
copying file alsa-kernel/core/rawmidi.c
patching file rawmidi.c
Hunk #1 succeeded at 1264 (offset -3 lines).
copying file alsa-kernel/core/sound.c
patching file sound.c
Hunk #2 succeeded at 165 with fuzz 2.
Hunk #3 succeeded at 366 (offset -4 lines).
Hunk #4 succeeded at 385 (offset -2 lines).
Hunk #5 succeeded at 504 (offset 1 line).
copying file alsa-kernel/core/timer.c
patching file timer.c
copying file alsa-kernel/core/memalloc.c
patching file memalloc.c
make[3]: Entering directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/oss' copying file alsa-kernel/core/oss/mixer_oss.c
patching file mixer_oss.c
copying file alsa-kernel/core/oss/pcm_oss.c
patching file pcm_oss.c
make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/oss' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/seq' copying file alsa-kernel/core/seq/seq.c
patching file seq.c
copying file alsa-kernel/core/seq/seq_clientmgr.c
patching file seq_clientmgr.c
copying file alsa-kernel/core/seq/seq_memory.c
patching file seq_memory.c
make[4]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/seq/instr' make[4]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/seq/instr' make[4]: Entering directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/seq/oss' copying file alsa-kernel/core/seq/oss/seq_oss.c
patching file seq_oss.c
make[4]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/seq/oss' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/seq' make[2]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore' make[2]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/i2c'
make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/i2c/other' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/i2c/other' make[2]: Leaving directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/i2c'
make[2]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/pcsp' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/pcsp' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/opl3' copying file alsa-kernel/drivers/opl3/opl3_lib.c
patching file opl3_lib.c
make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/opl3' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/opl4' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/opl4' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/mpu401' copying file alsa-kernel/drivers/mpu401/mpu401.c
patching file mpu401.c
make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/mpu401' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/vx' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers/vx' make[2]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/drivers' make[2]: Entering directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa'
make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/msnd' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/msnd' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/ad1816a' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/ad1816a' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/ad1848' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/ad1848' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/cs423x' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/cs423x' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/es1688' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/es1688' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/gus' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/gus' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/opti9xx' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/opti9xx' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/sb' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/sb' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/wavefront' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa/wavefront' make[2]: Leaving directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/isa'
make[2]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/synth' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/synth/emux' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/synth/emux' make[2]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/synth' make[2]: Entering directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci'
copying file alsa-kernel/pci/bt87x.c
patching file bt87x.c
Hunk #1 succeeded at 803 (offset 28 lines).
copying file alsa-kernel/pci/intel8x0.c
patching file intel8x0.c
Hunk #1 succeeded at 41 (offset -2 lines).
Hunk #2 succeeded at 745 (offset -4 lines).
Hunk #3 succeeded at 758 (offset -2 lines).
Hunk #4 succeeded at 2846 (offset 33 lines).
make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/pdplus' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/pdplus' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/pcxhr' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/pcxhr' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/echoaudio' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/echoaudio' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ac97' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ac97' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ali5451' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ali5451' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/au88x0' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/au88x0' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ca0106' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ca0106' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/cs46xx' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/cs46xx' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/emu10k1' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/emu10k1' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/hda' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/hda' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ice1712' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ice1712' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/korg1212' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/korg1212' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/mixart' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/mixart' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/nm256' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/nm256' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/rme9652' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/rme9652' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/trident' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/trident' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ymfpci' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/ymfpci' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/vx222' make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci/vx222' make[2]: Leaving directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pci'
make[2]: Entering directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/usb'
copying file alsa-kernel/usb/usbaudio.c
patching file usbaudio.c
Hunk #17 succeeded at 3088 (offset 2 lines).
Hunk #19 succeeded at 3193 (offset 2 lines).
Hunk #21 succeeded at 3306 (offset 2 lines).
Hunk #23 succeeded at 3414 (offset 2 lines).
copying file alsa-kernel/usb/usbmidi.c
patching file usbmidi.c
Hunk #2 succeeded at 865 (offset 12 lines).
Hunk #4 succeeded at 1379 (offset 12 lines).
copying file alsa-kernel/usb/usbmixer.c
patching file usbmixer.c
make[3]: Entering directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/usb/usx2y' copying file alsa-kernel/usb/usx2y/usX2Yhwdep.c
patching file usX2Yhwdep.c
copying file alsa-kernel/usb/usx2y/usbusx2y.c
patching file usbusx2y.c
copying file alsa-kernel/usb/usx2y/usbusx2yaudio.c
patching file usbusx2yaudio.c
copying file alsa-kernel/usb/usx2y/usx2yhwdeppcm.c
patching file usx2yhwdeppcm.c
make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/usb/usx2y' make[2]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/usb'
make[2]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pcmcia' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pcmcia/vx' copying file alsa-kernel/pcmcia/vx/vxpocket.c
patching file vxpocket.c
Hunk #2 succeeded at 167 (offset -8 lines).
copying file alsa-kernel/pcmcia/vx/vx_entry.c
patching file vx_entry.c
make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pcmcia/vx' make[3]: Entering directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pcmcia/pdaudiocf' copying file alsa-kernel/pcmcia/pdaudiocf/pdaudiocf.c
patching file pdaudiocf.c
Hunk #3 succeeded at 73 (offset -7 lines).
Hunk #4 succeeded at 187 with fuzz 1 (offset -5 lines).
Hunk #5 succeeded at 271 (offset -8 lines).
Hunk #6 succeeded at 363 (offset -14 lines).
Hunk #7 succeeded at 440 (offset -8 lines).
make[3]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pcmcia/pdaudiocf' make[2]: Leaving directory /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/pcmcia' make[1]: Leaving directory `/home/mrmachine/linux-progz/cvs/alsa/alsa-driver'
make -C /lib/modules/2.6.10-0.5.rdt.rhfc2.ccrma/source SUBDIRS=/home/mrmachine/linux-progz/cvs/alsa/alsa-driver O=/lib/modules/2.6.10-0.5.rdt.rhfc2.ccrma/build modules make[1]: Entering directory `/lib/modules/2.6.10-0.5.rdt.rhfc2.ccrma/build'
CC [M] /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.o
In file included from /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/sound/core.h:29,
from/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.c:28:include/linux/pm.h:198: error: redefinition of `pm_message_t' /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/adriver.h:716:
error: `pm_message_t' previously declared here
In file included from /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/sound/core.h:29,
from/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.c:28:include/linux/pm.h:218:1: warning: "PMSG_FREEZE" redefined
In file included from /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/sound/driver.h:42,
from/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.c:22:/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/adriver.h:717:1:
warning: this is the location of the previous definition
In file included from /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/sound/core.h:29,
from/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.c:28:include/linux/pm.h:219:1: warning: "PMSG_SUSPEND" redefined
In file included from /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/sound/driver.h:42,
from/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.c:22:/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/adriver.h:718:1:
warning: this is the location of the previous definition
In file included from /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/sound/core.h:29,
from/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.c:28:include/linux/pm.h:220:1: warning: "PMSG_ON" redefined
In file included from /home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/sound/driver.h:42,
from/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.c:22:/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/include/adriver.h:719:1:
warning: this is the location of the previous definition make[4]: *** [/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore/hwdep.o] Error 1 make[3]: *** [/home/mrmachine/linux-progz/cvs/alsa/alsa-driver/acore] Error 2
make[2]: *** [_module_/home/mrmachine/linux-progz/cvs/alsa/alsa-driver] Error 2
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/lib/modules/2.6.10-0.5.rdt.rhfc2.ccrma/build'
make: *** [compile] Error 2
shayne
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
Quoted 11 lines · Shayne O'Connor
ok, i did that, but when i try to compile alsa-driver i get the output below ... but just to clear up - with patches before 009, i only had to compile and install the alsa-driver module (i'm using PlanetCCRMA which loads alsa as a kernel module), is that the case here as well?
if not, could you give me a run-through of how i would install the whole pattched alsa package on top of what i've already got there? i realise you're busy, but it would help a great deal in making sure i'm testing these patches correctly :)
here is the ouput from trying to compile alsa-driver:
The procedure is exactly the same. With all versions of the patch you should apply using patch -p1 from the main ALSA directory (the one containing the alsa-driver, alsa-kernel, alsa-lib, alsa-tools, etc. directories).
I don't know what those errors are. They have nothing to do with my patch. Either you are doing something wrong, or current ALSA CVS just does not compile.
Please wait for ALSA 1.0.9 which should have the multichannel support included if you can't get it to work.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: Bug in emu10k1 multichannel support
At Thu, 10 Feb 2005 22:55:18 -0500,
Quoted 14 lines · Lee Revell
Quoted 11 lines · Shayne O'Connor
ok, i did that, but when i try to compile alsa-driver i get the output below ... but just to clear up - with patches before 009, i only had to compile and install the alsa-driver module (i'm using PlanetCCRMA which loads alsa as a kernel module), is that the case here as well?
if not, could you give me a run-through of how i would install the whole pattched alsa package on top of what i've already got there? i realise you're busy, but it would help a great deal in making sure i'm testing these patches correctly :)
here is the ouput from trying to compile alsa-driver:
Quoted 8 lines
The procedure is exactly the same. With all versions of the patch you should apply using patch -p1 from the main ALSA directory (the one containing the alsa-driver, alsa-kernel, alsa-lib, alsa-tools, etc. directories).
I don't know what those errors are. They have nothing to do with my patch. Either you are doing something wrong, or current ALSA CVS just does not compile.
This is because redhat patch conflicts with the wrapper in alsa-driver. Try the patch below.
Takashi
Index: alsa-driver/include/adriver.h
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-driver/include/adriver.h,v retrieving revision 1.97
include/adriver.h +2 -1
@@ -712,7 +712,8 @@#endif /* pm_message_t type */ -#if LINUX_VERSION_CODE <KERNEL_VERSION (2 ,6 ,11 ) +/* #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11) */ +#ifndef PMSG_FREEZE typedef u32 /*__bitwise*/ pm_message_t ;#define PMSG_FREEZE 3#define PMSG_SUSPEND 3
Hi
Interested in this, been trying to get multi channel output from audigy2 card
I tried the quick start but it seemed to fail
multimedia:~# jackd -R -v -d alsa -P hw:0,3 -C hw:0,2 -S getting driver descriptor from /usr/lib/libjack0.80.0-0/jack_alsa.so getting driver descriptor from /usr/lib/libjack0.80.0-0/jack_dummy.so getting driver descriptor from /usr/lib/libjack0.80.0-0/jack_oss.so jackd 0.99.0 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
registered builtin port type 32 bit float mono audio
running with uid=0 and euid=0, will not try to use capabilites loading driver ..
new client: alsa_pcm, id = 1 type 1 @ 0x80578b0 fd = -1 creating alsa driver ... hw:0,3|hw:0,2|1024|2|48000|0|0|nomon|swmeter|-|16bit
ALSA lib pcm_hw.c:1172:(snd_pcm_hw_open) open /dev/snd/pcmC0D3p failed:
No such device
ALSA: Cannot open PCM device alsa_pcm for playback. Falling back to capture-only mode
control device hw:0
configuring for 48000Hz, period = 1024 frames, buffer = 2 periods new buffer size 1024
registered port alsa_pcm:capture_1, offset = 4096
registered port alsa_pcm:capture_2, offset = 8192
++ jack_rechain_graph():
client alsa_pcm: internal client, execution_order=0.
-- jack_rechain_graph()
13828 waiting for signals
load = 0.0141 max usecs: 6.000, spare = 21327.000
jack main caught signal 2
stopping driver
detaching driver
unloading driver
freeing shared port segments
stopping server thread
stopping watchdog thread
freeing engine shared memory
max usecs: 6.000, engine deleted
This is the output from aplay -l
multimedia:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Audigy2Value [Sound Blaster Audigy2_Value], device 0: emu10k1 [EMU10K1] Subdevices: 32/32 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 Subdevice #8: subdevice #8 Subdevice #9: subdevice #9 Subdevice #10: subdevice #10 Subdevice #11: subdevice #11 Subdevice #12: subdevice #12 Subdevice #13: subdevice #13 Subdevice #14: subdevice #14 Subdevice #15: subdevice #15 Subdevice #16: subdevice #16 Subdevice #17: subdevice #17 Subdevice #18: subdevice #18 Subdevice #19: subdevice #19 Subdevice #20: subdevice #20 Subdevice #21: subdevice #21 Subdevice #22: subdevice #22 Subdevice #23: subdevice #23 Subdevice #24: subdevice #24 Subdevice #25: subdevice #25 Subdevice #26: subdevice #26 Subdevice #27: subdevice #27 Subdevice #28: subdevice #28 Subdevice #29: subdevice #29 Subdevice #30: subdevice #30 Subdevice #31: subdevice #31 card 0: Audigy2Value [Sound Blaster Audigy2_Value], device 2: emu10k1 efx [EMU10K1 EFX] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 1: I82801BAICH2 [Intel 82801BA-ICH2], device 0: Intel ICH [Intel 82801BA-ICH2] Subdevices: 1/1 Subdevice #0: subdevice #0
cat /proc/asound/cards
0 [Audigy2Value ]: Audigy2 - Sound Blaster Audigy2_Value
Sound Blaster Audigy2_Value (rev.0,
serial:0x10011102) at 0xc000, irq 18
1 [I82801BAICH2 ]: ICH - Intel 82801BA-ICH2
Intel 82801BA-ICH2 with ALC200/200P at 0xdc00, irq
17
multimedia:~# cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.8. Compiled on Jan 19 2005 for kernel 2.6.9-6-ntf.
multimedia:~# cat /proc/asound/devices 4: [0- 0]: hardware dependent 9: [0- 1]: raw midi 8: [0- 0]: raw midi 18: [0- 2]: digital audio playback 26: [0- 2]: digital audio capture 25: [0- 1]: digital audio capture 16: [0- 0]: digital audio playback 24: [0- 0]: digital audio capture 0: [0- 0]: ctl 33: : timer 57: [1- 1]: digital audio capture 48: [1- 0]: digital audio playback 56: [1- 0]: digital audio capture 32: [1- 0]: ctl
i have had a play around with .asoundrc but to no avail I can still only see 2 channels on the card!
Alex
Quoted 92 lines · Lee Revell
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 -SThis 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.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.txtandDocumentation/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.
Lee
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user
Quoted 5 lines · Alexander Samad
Hi
Interested in this, been trying to get multi channel output from audigy2 card
What ALSA version do you have? Are you sure you applied the patch correctly?
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Hi
Believe i did, I used a stock debian kernel source for 2.6.9 and then retrieved the debian alsa-source package
ii alsa-base 1.0.7-2 ALSA driver configuration files ii alsa-source 1.0.8-1 ALSA driver sources ii alsa-utils 1.0.7-2 ALSA utilities
I then ran patch -p1 < your patch
(I just checked and guess what --dry-run ......)
How annoying
Sorry, will try again and see what happens!
Thanks
Quoted 13 lines · Lee Revell
Quoted 5 lines · Alexander Samad
Hi
Interested in this, been trying to get multi channel output from audigy2 card
What ALSA version do you have? Are you sure you applied the patch correctly?
Lee
Hi
applied the patch and the config is slightly different now I can see device
card 0: Audigy2Value [Sound Blaster Audigy2_Value], device 3: emu10k1 [EMU10K1 multichannel EFX]
Subdevices: 1/1
Subdevice #0: subdevice #0
but I can not play any sounds at all nor can I pass through ac3. I have a live card in there that was working and then removed it and replaced it with the audigy2 played with the mixer and then tried the ac3 pass through and no luck.
the amp still shows it up as analog PCM !
Alex
Quoted 13 lines · Lee Revell
Quoted 5 lines · Alexander Samad
Hi
Interested in this, been trying to get multi channel output from audigy2 card
What ALSA version do you have? Are you sure you applied the patch correctly?
Lee
Hi
Sorry to bug you, but I used aplay -v on plughw0,3 and I saw that I have the 16 channels, I think the problem is I can't move it into digital output ????
plus how do I set it to 96Khz not 48 ???
Thanks
Alex
Quoted 13 lines · Lee Revell
Quoted 5 lines · Alexander Samad
Hi
Interested in this, been trying to get multi channel output from audigy2 card
What ALSA version do you have? Are you sure you applied the patch correctly?
Lee
Quoted 9 lines · Alexander Samad
Hi
Sorry to bug you, but I used aplay -v on plughw0,3 and I saw that I have the 16 channels, I think the problem is I can't move it into digital output ????
plus how do I set it to 96Khz not 48 ???
You can't do that, this patch has nothing to do with the digital output. You also can't set the digital output to 96 (yet).
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 9 lines · Alexander Samad
Hi
Sorry to bug you, but I used aplay -v on plughw0,3 and I saw that I have the 16 channels, I think the problem is I can't move it into digital output ????
plus how do I set it to 96Khz not 48 ???
Actually there is an experimental patch for 24 bit and 96/192 support on this card. It probably conflicts with my patch.
http://www.alsa-project.org/~james/alsa-driver/p16v/
I would like to hear whether this works for you.
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 13 lines · Lee Revell
Quoted 9 lines · Alexander Samad
Hi
Sorry to bug you, but I used aplay -v on plughw0,3 and I saw that I have the 16 channels, I think the problem is I can't move it into digital output ????
plus how do I set it to 96Khz not 48 ???
Quoted 9 lines
Actually there is an experimental patch for 24 bit and 96/192 support on this card. It probably conflicts with my patch.
http://www.alsa-project.org/~james/alsa-driver/p16v/
I would like to hear whether this works for you.
Lee
WARNING: The p16v patch does not have any volume control yet. So, turn those speakers right down first!!!
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Hi Lee
when I get a chacne I will try it out
Alex
Quoted 21 lines · Lee Revell
Quoted 9 lines · Alexander Samad
Hi
Sorry to bug you, but I used aplay -v on plughw0,3 and I saw that I have the 16 channels, I think the problem is I can't move it into digital output ????
plus how do I set it to 96Khz not 48 ???
Actually there is an experimental patch for 24 bit and 96/192 support on this card. It probably conflicts with my patch.
http://www.alsa-project.org/~james/alsa-driver/p16v/
I would like to hear whether this works for you.
Lee
Lee,
Can you provide instructions for applying the patch?
First I assume I need the latest alsa from CVS, right?
thanks,
brian
Quoted 83 lines · Lee Revell
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 -SThis 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.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.txtandDocumentation/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.
Lee
Quoted 8 lines
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Quoted 6 lines · Brian L Scipioni
Lee,
Can you provide instructions for applying the patch?
First I assume I need the latest alsa from CVS, right?
Yes. I do plan to make a patch against kernel 2.6.10, hopefully I will get to that today. For now, here's the quick CVS install HOWTO. You must have ALSA compiled as modules for this to work.
$ mkdir cvs/alsa-cvs $ cd cvs/alsa-cvs $ cvs -d ":pserver:[email protected]:/cvsroot/alsa" co . $ patch -p1 < emu10k1-multichannel-v005.patch $ ./build prep $ cd alsa-driver $ ./configure --with-cards=emu10k1 --with-kernel=/path/to/kernel/source $ make && sudo make install
Then just reboot, or rmmod your existing ALSA modules and modprobe the new ones.
This was only tested on Debian, YMMV.
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
Re: [Alsa-user] emu10k1 alsamixer items
Quoted 13 lines · Takashi Iwai
At Wed, 26 Jan 2005 11:20:24 -0500,
Quoted 7 lines · Lee Revell
Quoted 2 lines · Brian L Scipioni
Is
"music" MIDI?Yes. I posted a patch to alsa-devel to change this to "Synth" and it was not accepted. I did not get an explanation.
Maybe I overlooked. Could you resend it?
The patch is here:
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-oldversions/change-music-to-synth.patch
(use patch -p0)
Summary: Changes "Music" to "Synth" in mixer control names.
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Takashi Iwai
AppliedRe: emu10k1 alsamixer items
At Thu, 27 Jan 2005 13:41:20 -0500,
Quoted 18 lines · Lee Revell
Quoted 13 lines · Takashi Iwai
At Wed, 26 Jan 2005 11:20:24 -0500,
Quoted 7 lines · Lee Revell
Quoted 2 lines · Brian L Scipioni
Is
"music" MIDI?Yes. I posted a patch to alsa-devel to change this to "Synth" and it was not accepted. I did not get an explanation.
Maybe I overlooked. Could you resend it?
The patch is here:
Quoted 7 lines
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-oldversions/change-music-to-synth.patch
(use patch -p0)
Summary: Changes "Music" to "Synth" in mixer control names.
Signed-off-by Lee Revell <[email protected]>
Thanks, applied to CVS now.
Takashi
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 9 lines · Brian L Scipioni
Lee,
Sorry for the re-post - maybe you
missed it?
Prior to this patch, the IEC958 Optical slider controlled the volume
out of the IEC958 Optical connection (given that IEC958 Optical Raw is muted). Now this slider does nothing. Full volume always present - mute switch still works though.Is this a bug or a feature? This is a change in behavior isn't it?
This was not intended. Are you sure the multichannel patch introduced this behavior? Can you verify that the problem is not present with current ALSA CVS?
Do you have an SBLive or Audigy?
Can someone else confirm the bug?
It will be hard for me to reproduce this as I don't have any IEC958 hardware, but we should be able to track it down via binary search.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
I have Audigy 2 Platinum. I'll see if I have the latest patch. I'm 95% sure the patch introduced it. I can verify against CVS, probably tomorrow.
thanks,
brian
Quoted 15 lines · Lee Revell
Quoted 9 lines · Brian L Scipioni
Lee,
Sorry for the re-post - maybe you
missed it?
Prior to this patch, the IEC958 Optical slider controlled the volume
out of the IEC958 Optical connection (given that IEC958 Optical Raw is muted). Now this slider does nothing. Full volume always present - mute switch still works though.Is this a bug or a feature? This is a change in behavior isn't it?
This was not intended. Are you sure the multichannel patch introduced this behavior? Can you verify that the problem is not present with current ALSA CVS?
Quoted 8 lines
Do you have an SBLive or Audigy?
Can someone else confirm the bug?
It will be hard for me to reproduce this as I don't have any IEC958 hardware, but we should be able to track it down via binary search.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Quoted 4 lines · Brian L Scipioni
I have Audigy 2 Platinum. I'll see if I have the latest patch. I'm 95% sure the patch introduced it. I can verify against CVS, probably tomorrow.
Does the problem only exist when using the multichannel hw:0,3 device, or does it affect the standard devices too?
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Lee,
Sorry for the delay in responding.
The change in behavior IEC958 Optical slider in alsamixer was introduced in 1.0.8. The slider does nothing now (max vol regardless of position).
This has no connection with your multichannel patch (except that it's there because it's in cvs)
FYI - I have Audigy 2 Platinum.
Has anyone else noticed that the IEC958 Optical fader no longer fades?
thanks,
brian
Quoted 15 lines · Lee Revell
Quoted 9 lines · Brian L Scipioni
Lee,
Sorry for the re-post - maybe you
missed it?
Prior to this patch, the IEC958 Optical slider controlled the volume
out of the IEC958 Optical connection (given that IEC958 Optical Raw is muted). Now this slider does nothing. Full volume always present - mute switch still works though.Is this a bug or a feature? This is a change in behavior isn't it?
This was not intended. Are you sure the multichannel patch introduced this behavior? Can you verify that the problem is not present with current ALSA CVS?
Quoted 8 lines
Do you have an SBLive or Audigy?
Can someone else confirm the bug?
It will be hard for me to reproduce this as I don't have any IEC958 hardware, but we should be able to track it down via binary search.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
A message that is not in the archive (sent off-list or not yet received): [email protected]
Re: emu10k1 MIDI record
IIRC it should work. Could be a driver bug though. So the MPU-401 #1 (the port on the card) definitely works but MPU-401 #2 (on the livedrive) does not?
Lee
Quoted 38 lines · Brian L Scipioni
All, sorry for the repost - I'm still trying to get an answer as to why I cannot record from my keyboard to MIDI in.
I have alsa-1.0.8
My Audigy 2 Platinum handles MIDI playback either through the MIDI out to an external keyboard or through any of the 4 internal synth ports. However, I have not been able to see any response whatever from an external synth on the MIDI in (front drive panel). Is this known to not yet be working?
The specific duplex device is Audigy MPU-401 #2. aplaymidi produces sounds on all listed devices, but arecordmidi (and other MIDI recording tools) are not working for me.
[brian@radium music]$ aplaymidi -l
Port Client name Port name 64:0 Audigy MPU-401 (UART) Audigy MPU-401 (UART) 64:32 Audigy MPU-401 (UART) Audigy MPU-401 #2 65:0 Emu10k1 WaveTable Emu10k1 Port 0 65:1 Emu10k1 WaveTable Emu10k1 Port 1 65:2 Emu10k1 WaveTable Emu10k1 Port 2 65:3 Emu10k1 WaveTable Emu10k1 Port 3 128:0 Client-128 qjackctl 129:0 ardour seq 130:0 Rosegarden Rosegarden input [brian@radium music]$ arecordmidi -l Port Client name Port name 64:0 Audigy MPU-401 (UART) Audigy MPU-401 (UART) 64:32 Audigy MPU-401 (UART) Audigy MPU-401 #2 129:0 ardour seqthanks,
brian
Quoted 10 lines
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: emu10k1 MIDI record
No. Each MPU is full-duplex. I don't use the MPU-401 #1 - it is available through the 15 pin MIDI/Joystick-out on the PCI slot frame in back, next to the card.
I use the MPU-401 #2 - the mini-DIN MIDI jack pair on the front "drive" unit. The MIDI-out works fine - I can play my keyboard with Rosegarden or playmidi, e.g. The MIDI-in doesn't seems to work (I've done a bit of troubleshooting - swapped cables, etc.).
thanks,
brian
Quoted 4 lines · Lee Revell
IIRC it should work. Could be a driver bug though. So the MPU-401 #1 (the port on the card) definitely works but MPU-401 #2 (on the livedrive) does not?
Quoted 51 lines
Lee
Quoted 48 lines · Brian L Scipioni
All, sorry for the repost - I'm still trying to get an answer as to why I cannot record from my keyboard to MIDI in.
I have alsa-1.0.8
My Audigy 2 Platinum handles MIDI playback either through the MIDI out to an external keyboard or through any of the 4 internal synth ports. However, I have not been able to see any response whatever from an external synth on the MIDI in (front drive panel). Is this known to not yet be working?
The specific duplex device is Audigy MPU-401 #2. aplaymidi produces sounds on all listed devices, but arecordmidi (and other MIDI recording tools) are not working for me.
[brian@radium music]$ aplaymidi -l
Port Client name Port name 64:0 Audigy MPU-401 (UART) Audigy MPU-401 (UART) 64:32 Audigy MPU-401 (UART) Audigy MPU-401 #2 65:0 Emu10k1 WaveTable Emu10k1 Port 0 65:1 Emu10k1 WaveTable Emu10k1 Port 1 65:2 Emu10k1 WaveTable Emu10k1 Port 2 65:3 Emu10k1 WaveTable Emu10k1 Port 3 128:0 Client-128 qjackctl 129:0 ardour seq 130:0 Rosegarden Rosegarden input [brian@radium music]$ arecordmidi -l Port Client name Port name 64:0 Audigy MPU-401 (UART) Audigy MPU-401 (UART) 64:32 Audigy MPU-401 (UART) Audigy MPU-401 #2 129:0 ardour seqthanks,
brian-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: [Alsa-user] emu10k1 MIDI record
Quoted 8 lines · Brian L Scipioni
No. Each MPU is full-duplex. I don't use the MPU-401 #1 - it is available through the 15 pin MIDI/Joystick-out on the PCI slot frame in back, next to the card.
I use the MPU-401 #2 - the mini-DIN MIDI jack pair on the front "drive" unit. The MIDI-out works fine - I can play my keyboard with Rosegarden or playmidi, e.g. The MIDI-in doesn't seems to work (I've done a bit of troubleshooting - swapped cables, etc.).
OK so you run:
arecordmidi --dump --port=64:32 foo.mid
and get no output, even when the keyboard is plugged in.
Does the interrupt count in /proc/interrupts increase when you play at the keyboard?
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: emu10k1 MIDI record
Lee,
The keyboard is on - both cables in (i've swap-checked them - both good)
aplaymidi -p 64:32 carny.mid
good - tune plays on my keyboard.
arecordmidi --dump --port=64:32 foo.mid
_______Tick Event_________________ Ch _Data__
is all I get as I play notes on the keyboard.
foo.mid conatins only a header line of bytes:
MThd?MTrk?Q? ?X??+?/
Unfortunately, I do not yet have my sound card isolated on IRQ 9. (I'm getting interrupts on it from other devices even without playing)
thanks,
brian
Quoted 25 lines · Lee Revell
Quoted 8 lines · Brian L Scipioni
No. Each MPU is full-duplex. I don't use the MPU-401 #1 - it is available through the 15 pin MIDI/Joystick-out on the PCI slot frame in back, next to the card.
I use the MPU-401 #2 - the mini-DIN MIDI jack pair on the front "drive" unit. The MIDI-out works fine - I can play my keyboard with Rosegarden or playmidi, e.g. The MIDI-in doesn't seems to work (I've done a bit of troubleshooting - swapped cables, etc.).
OK so you run:
arecordmidi --dump --port=64:32 foo.mid
and get no output, even when the keyboard is plugged in.
Does the interrupt count in
/proc/interruptsincrease when you play at the keyboard?Lee
Quoted 9 lines
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: [Alsa-user] emu10k1 MIDI record
Quoted 9 lines · Brian L Scipioni
Lee,
The keyboard is on - both cables in (i've swap-checked them - both good)
aplaymidi -p 64:32 carny.mid
good - tune plays on my keyboard.arecordmidi --dump --port=64:32 foo.mid
Quoted 9 lines
_______TickEvent_________________Ch _Data__
is all I get as I play notes on the keyboard.foo.mid conatins only a header line of bytes:
MThd?MTrk?Q? ?X??+?/Unfortunately, I do not yet have my sound card isolated on IRQ 9. (I'm getting interrupts on it from other devices even without playing)
Please try this patch, and check the dmesg output to see if it logs interrupts.
Index: alsa-old/alsa-kernel/pci/emu10k1/emumpu401.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emumpu401.c,v retrieving revision 1.12
alsa-kernel/pci/emu10k1/emumpu401.c +1 -0
@@ -113,6 +113,7 @@static void snd_emu10k1_midi_interrupt2 (emu10k1_t *emu,unsigned int status) { +snd_printk (KERN_ERR "MPU #2 interrupt: status = 0x%x\n" , status);do_emu10k1_midi_interrupt (emu, &emu->midi2, status); }
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Re: emu10k1 MIDI record
Lee,
Sorry for the delayed response. When I attempted to apply the
"interrupt" patch you sent (below) I received the following error:
patching file alsa-kernel/pci/emu10k1/emumpu401.c
Hunk #1 FAILED at 113.
1 out of 1 hunk FAILED -- saving rejects to file
alsa-kernel/pci/emu10k1/emumpu401.c.rej
I got the latest from cvs and I got the same error.
Anyone else have trouble recording (or even seeing) MIDI on Audigy 2 via the mini DIN MIDI-in on the Audigy "drive"?
(the MPU-401 #2 device)
thanks,
brian
Quoted 38 lines · Lee Revell
Quoted 9 lines · Brian L Scipioni
Lee,
The keyboard is on - both cables in (i've swap-checked them - both good)
aplaymidi -p 64:32 carny.mid
good - tune plays on my keyboard.arecordmidi --dump --port=64:32 foo.mid
Quoted 9 lines
_______TickEvent_________________Ch _Data__
is all I get as I play notes on the keyboard.foo.mid conatins only a header line of bytes:
MThd?MTrk?Q? ?X??+?/Unfortunately, I do not yet have my sound card isolated on IRQ 9. (I'm getting interrupts on it from other devices even without playing)
Please try this patch, and check the dmesg output to see if it logs interrupts.
Index:
alsa-old/alsa-kernel/pci/emu10k1/emumpu401.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emumpu401.c,v retrieving revision 1.12
diff -u -r1.12emumpu401.calsa-kernel/pci/emu10k1/emumpu401.c +1
-0@@ -113,6 +113,7 @@static void snd_emu10k1_midi_interrupt2 (emu10k1_t *emu,unsigned int status) { +snd_printk (KERN_ERR "MPU #2 interrupt: status = 0x%x\n" , status);do_emu10k1_midi_interrupt (emu, &emu->midi2, status); }
Quoted 2 lines
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
Quoted 6 lines · Brian L Scipioni
Lee,
Can you provide instructions for applying the patch?
First I assume I need the latest alsa from CVS, right?
OK I have generated v0.05 as a patch against kernel 2.6.11-rc1. I have not compile tested it yet.
http://www.alsa-project.org/~rlrevell/emu10k1-multichannel-v005-2.6.11-rc1.patch
Lee
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl