Re: [Alsa-devel] [ANN] Open Source US-X2Y firmware
Am Donnerstag 27 Mai 2004 21:26 schrieb Martin Langer: Hi, if someone is interested in a free (I mean GPL) firmware for the Tascam US-X2Y devices I can offer an open source replacement for the second stage loader alsa-firmware/usx2yloader/tascam_loader.ihx. All three US-X2Y devices need this file. But I have only tried it out with an US-122 where it works. does it here with an US-428 without any problem. Good stuff! Be careful. This software comes with ABSOLUTELY NO WARRANTY! http://www.langerland.de/us122/usx2y-fw-0.1.tar.bz2 Thanks, Karsten --- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] [PATCH]snd-usb-usx2y 0.6.1
Hi Takashi, little fix attached. Please commit with comment - avoid entry in system log when device disconnects (for RELEASE build) Thanks, Karsten Index: alsa-driver/usb/usx2y/usbusx2y.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v retrieving revision 1.9 diff -u -r1.9 usbusx2y.c --- alsa-driver/usb/usx2y/usbusx2y.c 7 Apr 2004 11:46:35 - 1.9 +++ alsa-driver/usb/usx2y/usbusx2y.c 14 May 2004 10:49:34 - @@ -98,7 +98,7 @@ MODULE_AUTHOR(Karsten Wiese [EMAIL PROTECTED]); -MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.6.0); +MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.6.1); MODULE_LICENSE(GPL); MODULE_CLASSES({sound}); MODULE_DEVICES({{TASCAM(0x1604), NAME_ALLCAPS(0x8001)(0x8007) }}); @@ -155,7 +155,7 @@ usX2Y-In04IntCalls++; if (urb-status) { - snd_printk( Interrupt Pipe 4 came back with status=%i\n, urb-status); + snd_printd(Interrupt Pipe 4 came back with status=%i\n, urb-status); return; }
Re: [Alsa-devel] digital i/o tascam usb428
Am Dienstag 27 April 2004 09:12 schrieb Michael Iber: Hello, is this correct that there is no spdif-i/o-support for the tascam us428 in current alsa-cvs, and never has been before? yes. as it looks, some serious usb-snooping on windows has to be done to get it right. Regards, Karsten --- This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek For a limited time only, get FREE Ground shipping on all orders of $35 or more. Hurry up and shop folks, this offer expires April 30th! http://www.thinkgeek.com/freeshipping/?cpg=12297 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Re: Tascam US-224 progress report (was: USB224_usbsnoop1.log captured on WinXP)
Am Dienstag 06 April 2004 02:10 schrieb Rui Nuno Capela: Now comes the weird part. No, I couldn't get it to work unless I set --with-debug=full on configure line. And I've tested several times, believe me. FYI, I'm stick with 2.6 kernel tree, and already tested with 2.6.4 and latest 2.6.5. My way of building the kernel modules is from stock tarball, and is pretty canonical, as literally as follows (all as root): tar -jxf alsa-driver-1.0.4.tar.bz2 cd alsa-driver-1.0.4 gzip -dc ../alsa-driver-1.0.4p1.patch.gz# see attachment ./configure --with-isapnp=no --with-sequencer=yes --with-oss=yes --with-cards=all --with-debug=full make make install As stated, the INPUT MONITOR LED does not get lit if I take out the clause --with-debug=full. How come? You don't use --with-kernel option. Are you shure ALSA build sees the correct linux-kernel source? What distro are you using? On some (i.e. fc1) you'd have to specify a special gcc like export CC=gcc32 befure ./configure. I'm building a no debug ALSA here with a 2.6.5-aa1 kernel. maybe I'll find something. Cheers, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Re: Tascam US-224 progress report (was: USB224_usbsnoop1.log captured on WinXP)
Am Dienstag 06 April 2004 12:52 schrieb Karsten Wiese: Am Dienstag 06 April 2004 02:10 schrieb Rui Nuno Capela: Now comes the weird part. No, I couldn't get it to work unless I set --with-debug=full on configure line. And I've tested several times, believe me. FYI, I'm stick with 2.6 kernel tree, and already tested with 2.6.4 and latest 2.6.5. My way of building the kernel modules is from stock tarball, and is pretty canonical, as literally as follows (all as root): tar -jxf alsa-driver-1.0.4.tar.bz2 cd alsa-driver-1.0.4 gzip -dc ../alsa-driver-1.0.4p1.patch.gz # see attachment ./configure --with-isapnp=no --with-sequencer=yes --with-oss=yes --with-cards=all --with-debug=full make make install As stated, the INPUT MONITOR LED does not get lit if I take out the clause --with-debug=full. How come? You don't use --with-kernel option. Are you shure ALSA build sees the correct linux-kernel source? What distro are you using? On some (i.e. fc1) you'd have to specify a special gcc like export CC=gcc32 befure ./configure. I'm building a no debug ALSA here with a 2.6.5-aa1 kernel. maybe I'll find something. Yes, same odd behavior here: built without --with-debug=full, nothing is sent from us428control to the us428. So your build process is propably ok. Cheers, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Re: Tascam US-224 progress report (was: USB224_usbsnoop1.log captured on WinXP)
Now comes the weird part. No, I couldn't get it to work unless I set --with-debug=full on configure line. And I've tested several times, believe me. Attached diff fixed it here. Please verify. CU Index: alsa-driver/usb/usx2y/usbusx2y.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v retrieving revision 1.8 diff -u -r1.8 usbusx2y.c --- alsa-driver/usb/usx2y/usbusx2y.c 17 Feb 2004 15:28:31 - 1.8 +++ alsa-driver/usb/usx2y/usbusx2y.c 6 Apr 2004 16:51:22 - @@ -118,7 +118,6 @@ static void snd_usX2Y_usb_disconnect(struct usb_device* usb_device, void* ptr); static void snd_usX2Y_card_private_free(snd_card_t *card); -#ifdef CONFIG_SND_DEBUG /* * pipe 4 is used for switching the lamps, setting samplerate, volumes */ @@ -128,14 +127,15 @@ void snd_usX2Y_Out04Int(struct urb* urb) #endif { +#ifdef CONFIG_SND_DEBUG if (urb-status) { int i; usX2Ydev_t* usX2Y = urb-context; for (i = 0; i 10 usX2Y-AS04.urb[i] != urb; i++); snd_printd(snd_usX2Y_Out04Int() usX2Y-Seq04=%i urb %i status=%i\n, usX2Y-Seq04, i, urb-status); } -} #endif +} #ifndef OLD_USB void snd_usX2Y_In04Int(struct urb* urb, struct pt_regs *regs) @@ -194,7 +194,7 @@ int j, send = us428ctls-p4outSent + 1; if (send = N_us428_p4out_BUFS) send = 0; -for (j = 0; j URBS_AsyncSeq; ++j) +for (j = 0; j URBS_AsyncSeq!err; ++j) if (0 == usX2Y-AS04.urb[j]-status) { us428_p4out_t *p4out = us428ctls-p4out + send; // FIXME if more then 1 p4out is new, 1 gets lost. usb_fill_bulk_urb(usX2Y-AS04.urb[j], usX2Y-chip.dev, @@ -204,7 +204,7 @@ #ifdef OLD_USB usX2Y-AS04.urb[j]-transfer_flags = USB_QUEUE_BULK; #endif - usb_submit_urb(usX2Y-AS04.urb[j], GFP_ATOMIC); + err = usb_submit_urb(usX2Y-AS04.urb[j], GFP_ATOMIC); us428ctls-p4outSent = send; break; } Index: alsa-driver/usb/usx2y/usbusx2y.h === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.h,v retrieving revision 1.3 diff -u -r1.3 usbusx2y.h --- alsa-driver/usb/usx2y/usbusx2y.h 19 Jan 2004 18:43:28 - 1.3 +++ alsa-driver/usb/usx2y/usbusx2y.h 6 Apr 2004 16:51:22 - @@ -58,10 +58,6 @@ void snd_usX2Y_In04Int(struct urb* urb); #endif -#ifndef CONFIG_SND_DEBUG -#define snd_usX2Y_Out04Int 0 -#endif - #define NAME_ALLCAPS US-X2Y #endif Index: alsa-driver/usb/usx2y/usbusx2yaudio.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v retrieving revision 1.9 diff -u -r1.9 usbusx2yaudio.c --- alsa-driver/usb/usx2y/usbusx2yaudio.c 30 Mar 2004 08:27:16 - 1.9 +++ alsa-driver/usb/usx2y/usbusx2yaudio.c 6 Apr 2004 16:51:25 - @@ -1245,7 +1245,7 @@ snd_dma_continuous_data(GFP_KERNEL), usX2Y_capt_substream-endpoints * 64*1024, usX2Y_capt_substream-endpoints * 128*1024)) || - (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US428 + (usX2Y(card)-chip.dev-descriptor.idProduct != USB_ID_US122 0 (err = usX2Y_rate_set(usX2Y_stream, 44100 { // Lets us428 recognize output-volume settings, disturbs us122. snd_usX2Y_audio_stream_free(usX2Y_stream); return err;
[Alsa-devel] [PATCH]snd-usb-usx2y 0.6
Hi Jaroslav, Please commit this with comments - US224 support - FIX for build without CONFIG_SND_DEBUG Thanks, Karsten Index: usb/usx2y/usX2Yhwdep.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usX2Yhwdep.c,v retrieving revision 1.5 diff -u -r1.5 usX2Yhwdep.c --- usb/usx2y/usX2Yhwdep.c 19 Mar 2004 07:22:06 - 1.5 +++ usb/usx2y/usX2Yhwdep.c 6 Apr 2004 21:32:05 - @@ -194,11 +194,10 @@ { int err = 0, i; - usX2Y-Seq04 = 0; if (NULL == (usX2Y-AS04.buffer = kmalloc(URB_DataLen_AsyncSeq*URBS_AsyncSeq, GFP_KERNEL))) { err = -ENOMEM; - }else + } else for (i = 0; i URBS_AsyncSeq; ++i) { if (NULL == (usX2Y-AS04.urb[i] = usb_alloc_urb(0, GFP_KERNEL))) { err = -ENOMEM; Index: usb/usx2y/usbusx2y.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v retrieving revision 1.8 diff -u -r1.8 usbusx2y.c --- usb/usx2y/usbusx2y.c 17 Feb 2004 15:28:31 - 1.8 +++ usb/usx2y/usbusx2y.c 6 Apr 2004 21:32:06 - @@ -1,6 +1,11 @@ /* * usbus428.c - ALSA USB US-428 Driver * +2004-04-06 Karsten Wiese + Version 0.6.0: + Runs on 2.6.5 kernel without any --with-debug= things. + us224 reported running. + 2004-01-14 Karsten Wiese Version 0.5.1: Runs with 2.6.1 kernel. @@ -93,7 +98,7 @@ MODULE_AUTHOR(Karsten Wiese [EMAIL PROTECTED]); -MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.4.1); +MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.6.0); MODULE_LICENSE(GPL); MODULE_CLASSES({sound}); MODULE_DEVICES({{TASCAM(0x1604), NAME_ALLCAPS(0x8001)(0x8007) }}); @@ -118,7 +123,6 @@ static void snd_usX2Y_usb_disconnect(struct usb_device* usb_device, void* ptr); static void snd_usX2Y_card_private_free(snd_card_t *card); -#ifdef CONFIG_SND_DEBUG /* * pipe 4 is used for switching the lamps, setting samplerate, volumes */ @@ -128,14 +132,15 @@ void snd_usX2Y_Out04Int(struct urb* urb) #endif { +#ifdef CONFIG_SND_DEBUG if (urb-status) { int i; usX2Ydev_t* usX2Y = urb-context; for (i = 0; i 10 usX2Y-AS04.urb[i] != urb; i++); - snd_printd(snd_usX2Y_Out04Int() usX2Y-Seq04=%i urb %i status=%i\n, usX2Y-Seq04, i, urb-status); + snd_printd(snd_usX2Y_Out04Int() urb %i status=%i\n, i, urb-status); } -} #endif +} #ifndef OLD_USB void snd_usX2Y_In04Int(struct urb* urb, struct pt_regs *regs) @@ -194,7 +199,7 @@ int j, send = us428ctls-p4outSent + 1; if (send = N_us428_p4out_BUFS) send = 0; -for (j = 0; j URBS_AsyncSeq; ++j) +for (j = 0; j URBS_AsyncSeq!err; ++j) if (0 == usX2Y-AS04.urb[j]-status) { us428_p4out_t *p4out = us428ctls-p4out + send; // FIXME if more then 1 p4out is new, 1 gets lost. usb_fill_bulk_urb(usX2Y-AS04.urb[j], usX2Y-chip.dev, @@ -204,7 +209,7 @@ #ifdef OLD_USB usX2Y-AS04.urb[j]-transfer_flags = USB_QUEUE_BULK; #endif - usb_submit_urb(usX2Y-AS04.urb[j], GFP_ATOMIC); + err = usb_submit_urb(usX2Y-AS04.urb[j], GFP_ATOMIC); us428ctls-p4outSent = send; break; } @@ -273,7 +278,6 @@ usX2Y(card)-chip.card = card; init_MUTEX (usX2Y(card)-open_mutex); INIT_LIST_HEAD(usX2Y(card)-chip.midi_list); - usX2Y(card)-Seq04Complete = 1; strcpy(card-driver, USB NAME_ALLCAPS); sprintf(card-shortname, TASCAM NAME_ALLCAPS); sprintf(card-longname, %s (%x:%x if %d at %03d/%03d), Index: usb/usx2y/usbusx2y.h === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.h,v retrieving revision 1.3 diff -u -r1.3 usbusx2y.h --- usb/usx2y/usbusx2y.h 19 Jan 2004 18:43:28 - 1.3 +++ usb/usx2y/usbusx2y.h 6 Apr 2004 21:32:06 - @@ -29,8 +29,6 @@ char In04Last[24]; unsigned In04IntCalls; snd_usX2Y_urbSeq_t* US04; - int Seq04; - int Seq04Complete; wait_queue_head_t In04WaitQueue; snd_usX2Y_AsyncSeq_t AS04; unsigned int rate, @@ -56,10 +54,6 @@ #else void snd_usX2Y_Out04Int(struct urb* urb); void snd_usX2Y_In04Int(struct urb* urb); -#endif - -#ifndef CONFIG_SND_DEBUG -#define snd_usX2Y_Out04Int 0 #endif #define NAME_ALLCAPS US-X2Y Index: usb/usx2y/usbusx2yaudio.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v retrieving revision 1.9 diff -u -r1.9 usbusx2yaudio.c --- usb/usx2y/usbusx2yaudio.c 30 Mar 2004 08:27:16 - 1.9 +++ usb/usx2y/usbusx2yaudio.c 6 Apr 2004 21:32:08 - @@ -1245,7 +1245,7 @@ snd_dma_continuous_data(GFP_KERNEL), usX2Y_capt_substream-endpoints * 64*1024, usX2Y_capt_substream-endpoints * 128*1024)) || - (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US428 + (usX2Y(card)-chip.dev-descriptor.idProduct != USB_ID_US122 0 (err = usX2Y_rate_set(usX2Y_stream, 44100 { // Lets us428 recognize output-volume settings, disturbs us122. snd_usX2Y_audio_stream_free(usX2Y_stream
[Alsa-devel] Re: Tascam US-224 progress report (was: USB224_usbsnoop1.log captured on WinXP)
Am Samstag 03 April 2004 03:24 schrieb Rui Nuno Capela: I have news, and they're good this time. After some juggling and persistance around compiling and patching the snd-usb-usx2y module, I've finally got that dreaded INPUT MONITOR LED come to light and, as Karsten rightly predicted, playback has shown its ugly head on my Tascam US-224. Hip, hip, hurray! Like a miracle, the MUTE and SELECT LED lights of the mixer strips 1-4 are lightning up too. Again, Karsten tips are quite cirurgical :) However, I don't get the SOLO, REC, NULL, nor all other transport LEDs to lit. But that's yet another step, I think the next. Ok, go for it. Should be fairly easy. Just implement the sink-side of the alsa-sequencer interface in us428control ;-) erm no it is not implemented yet. The Transport Lights could react to MMC Messages. MUTE, REC, SOLO SELECT Lights would be controlled by i. e. ardour. NULL-Mode is a little more complicated: In INPUT MONITOR Mode us428control knows all to handle it. In not INPUT MONITOR Mode us428control has to know from i. e. Ardour the Mixer Settings to compare them with the actual state. We're getting near and I'm quite happier now. Karsten Wiese wrote: So please try the following patch: --- alsa-driver/usb/usx2y/usbusx2yaudio.c 30 Mar 2004 08:27:16 - 1.9 +++ alsa-driver/usb/usx2y/usbusx2yaudio.c 2 Apr 2004 11:55:21 - @@ -1245,7 +1245,7 @@ snd_dma_continuous_data(GFP_KERNEL), usX2Y_capt_substream-endpoints * 64*1024, usX2Y_capt_substream-endpoints * 128*1024)) || - (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US428 + (usX2Y(card)-chip.dev-descriptor.idProduct != USB_ID_US122 0 (err = usX2Y_rate_set(usX2Y_stream, 44100 {// Lets us428 recognize output-volume settings, disturbs us122. snd_usX2Y_audio_stream_free(usX2Y_stream); return err; if the us428 doesn't get the usX2Y_rate_set(usX2Y_stream, 44100) at startup, it later behaves ignorant to light volume setting. like us224 behaves now. That was it. Although I only got it working after one last alsa-driver-1.0.3 rebuild and when set --with-debug=full on ./configure. Kind of strange. My literal patch applied to stock alsa-driver-1.0.3 is on attachment. It is just the same of Karsten's supplied above, just for reference. Please make shure it also works without debug mode. after make clean. If we get the INPUT MONITOR Led enlightened, the Volume settings should also work with respect to direct monitoring at least. US224 Master Fader seams to b where US428's Fader5 is. That needs adjustment in s428control. The data sent to set us224 internal mixers is filtered out with grep -n 00: 0[0123456789] .. .. .. ..$ USB224_usbsnoop1.log it gives i. e.: 11721:: 00 00 25 00 25 11732:: 01 00 25 00 25 11743:: 02 00 25 00 25 11754:: 03 00 25 00 25 11831:: 04 00 42 00 42 look at struct usX2Y_volume and its methods. it should fit the us224. But lets get that Leds enlighted first :-) The master fader works, at least while on playback. I don't seem to get fader strips 1-4 to have any audible effect. But now's too early to judge my experiments. Is Direct Monitoring not working? Please try. Has the us224 got SPDIF besides the 2 Anolog Ins? I'm wondering why there are 5 internal mixers being set. 4 should be PCM from usb, 0 shold be Chanell A Monitor and 1 shold be Chanell B Monitor What are 2 and 3? CU --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] USB224_usbsnoop1.log captured on WinXP
It shows the same light switching as is already implemented: grep -n : 19 USB224_usbsnoop1.log gives us pre INPUT MONITOR pressed 21501:: 19 00 1a 00 1b 00 1c 00 1d 11 1e 00 1f 00 and post 21941:: 19 00 1a 00 1b 00 1c 02 1d 01 1e 00 1f 00 the 8th byte changing from 0 to 2 is the actual INPUT MONITOR Led switch on. see us428control: void us428_lights::init_us428_lights() void us428_lights::LightSet(eLight L, bool Value) with enum eLight{ eL_InputMonitor = 25 }; the same urb as in the log should be sent to the us224 on linux. for the us428 it works. not for the us224. So please try the following patch: --- alsa-driver/usb/usx2y/usbusx2yaudio.c 30 Mar 2004 08:27:16 - 1.9 +++ alsa-driver/usb/usx2y/usbusx2yaudio.c 2 Apr 2004 11:55:21 - @@ -1245,7 +1245,7 @@ snd_dma_continuous_data(GFP_KERNEL), usX2Y_capt_substream-endpoints * 64*1024, usX2Y_capt_substream-endpoints * 128*1024)) || - (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US428 + (usX2Y(card)-chip.dev-descriptor.idProduct != USB_ID_US122 0 (err = usX2Y_rate_set(usX2Y_stream, 44100 {// Lets us428 recognize output-volume settings, disturbs us122. snd_usX2Y_audio_stream_free(usX2Y_stream); return err; if the us428 doesn't get the usX2Y_rate_set(usX2Y_stream, 44100) at startup, it later behaves ignorant to light volume setting. like us224 behaves now. If we get the INPUT MONITOR Led enlightened, the Volume settings should also work with respect to direct monitoring at least. US224 Master Fader seams to b where US428's Fader5 is. That needs adjustment in us428control. The data sent to set us224 internal mixers is filtered out with grep -n 00: 0[0123456789] .. .. .. ..$ USB224_usbsnoop1.log it gives i. e.: 11721:: 00 00 25 00 25 11732:: 01 00 25 00 25 11743:: 02 00 25 00 25 11754:: 03 00 25 00 25 11831:: 04 00 42 00 42 look at struct usX2Y_volume and its methods. it should fit the us224. But lets get that Leds enlighted first :-) Cheers, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] 1.0.4rc from cvs-head: snd-usb-usx2y still needs snd-hwdep....
Am Mittwoch 31 März 2004 20:57 schrieb Martin Langer: On Wed, Mar 31, 2004 at 09:10:17AM +0200, Jaroslav Kysela wrote: On Wed, 31 Mar 2004, Karsten Wiese wrote: ..., which is not built. this is for kernel 2.4. /etc/asound/driver_args: --with-cards=via82xx,msnd-pinnacle,usb-audio,usb-usx2y,es1968 --with-kernel=/usr/src/linux-2.4 --with-debug=full --with-sequencer=yes Fixed. Really? Yes! rm every file in alsa-driver, re-update from cvs and ./cvscompile. There might be a simpler solution though... ./configure --with-cards=usb-usx2y /sbin/depmod -ue depmod: *** Unresolved symbols in /lib/modules/2.4.25-rc1/kernel/sound/usb/snd-usb-audio.o depmod: snd_rawmidi_transmit_peek depmod: snd_rawmidi_transmit_ack depmod: snd_rawmidi_transmit_empty depmod: snd_rawmidi_receive depmod: snd_rawmidi_new depmod: snd_rawmidi_set_ops didn't see this. depmod: *** Unresolved symbols in /lib/modules/2.4.25-rc1/kernel/sound/usb/usx2y/snd-usb-usx2y.o depmod: snd_hwdep_new this was here also until I applied above measure. Cheers, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70alloc_id638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Re: [Alsa-user] alsa-driver-1.0.4rc1 missing snd-usb-usx2y ?
Am Dienstag 30 März 2004 22:51 schrieb Rui Nuno Capela: the snd-usb-usx2y module. AFAICT it's not being included by ./configure --with-cards option, nor it gets built when one sets --with-cards=all. It is fixed in CVS now. Thanks. Checked out today's alsa-driver-1.0.4rc2 where the missed snd-usb-usx2y module gets built now. However, I couldn't get it to load, dmesg gives: snd_usb_usx2y: Unknown symbol snd_pcm_dma_flags All other alsa packages are up to 1.0.4rc1 here. CVS today: OK here with 2.4 and 2.6.5-rc3. Have you tried a fresh checkout? --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70alloc_id638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Tascam US-224 support: MIDI OK, Audio KO?
Am Dienstag 30 März 2004 10:14 schrieb Rui Nuno Capela: If there's still no lights, some usb snooping on windoz might help. I've some specially tuned stuff here which I could send you then. That's of course a very good idea. Please do so ASAP. I'll be very pleased to follow your instructions and get a thorough profile on this. My laptop has a working winxp partition installed and the US-224 (audio mixer leds) works there as designed, but that's hardly a surprise for anyone :) The real stuff is too big for the list, I'll send it to you seperatly. It is a modified (changed filter-driver, added ListeningPipe app) usb snooper. modified so I get (filtered) output consisting of sent/received data in a c header-file. It works for me on win2k/vc6 only; haven't tried it on xp yet. Quick Dirty Instructions: Install the filter driver filter/release2k/usbsnoop.sys like in standard usb snoopy of that version. (Detailed Instructions somewhere @ sf.net if not in the zip) enable filter -driver with standard ui app. see attached jpg. Switch On us224. Start ListeningPipe/Release/ListeningPipe.exe. It will (hopefully) create a BIG file fw.h containing everything it snoops dump first occurances of messages to stdout. Pipe stdout to a file to capture infos, while you do something with the us224. to get best results, switch off us224 to end ListeningPipe.exesomefile. you can also control-c, but then somefile is not complete. some bugs there still. take f1up_m1.h as an example : preconditions: us428 switch on, INPUT MONITOR Light activ. Other LEDs OFF. Fader 1 @ Minimum. Started ListeningPipe.exe in a shell like this: ListeningPipef1up_m1.h Moved Fader 1 up (1/5 Full scale). Switched Mute 1 ON. Switched off us428. ListeningPipe finished ok. Cheers, Karsten attachment: ui.jpg//Pipe Connected! // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x84 // NEW [EMAIL PROTECTED], len=0x15 { 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x04 // NEW [EMAIL PROTECTED], len=0xE { 0x19, 0x08, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x02, 0x1D, 0x01, 0x1E, 0x00, 0x1F, 0x00, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x84 // NEW [EMAIL PROTECTED], len=0x15 { 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x04 // NEW [EMAIL PROTECTED], len=0x5 { 0x00, 0x00, 0x09, 0x00, 0x0A, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x84 // NEW [EMAIL PROTECTED], len=0x15 { 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x04 // NEW [EMAIL PROTECTED], len=0x5 { 0x00, 0x00, 0x13, 0x00, 0x14, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x84 // NEW [EMAIL PROTECTED], len=0x15 { 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x04 // NEW [EMAIL PROTECTED], len=0x5 { 0x00, 0x00, 0x1D, 0x00, 0x1E, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x84 // NEW [EMAIL PROTECTED], len=0x15 { 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x04 // NEW [EMAIL PROTECTED], len=0x5 { 0x00, 0x00, 0x26, 0x00, 0x28, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x84 // NEW [EMAIL PROTECTED], len=0x15 { 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x04 // NEW [EMAIL PROTECTED], len=0x5 { 0x00, 0x00, 0x30, 0x00, 0x32, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x84 // NEW [EMAIL PROTECTED], len=0x15 { 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x04 // NEW [EMAIL PROTECTED], len=0x5 { 0x00, 0x00, 0x3A, 0x00, 0x3C, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x84 // NEW [EMAIL PROTECTED], len=0x15 { 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, }; // _URB_HEADER 09 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER // pipe=0x04 // NEW [EMAIL PROTECTED], len=0x5 { 0x00, 0x00, 0x43, 0x00, 0x46, }; // _URB_HEADER 09
Re: [Alsa-devel] Tascam US-224 support: MIDI OK, Audio KO?
Am Dienstag 30 Mrz 2004 14:29 schrieb Rui Nuno Capela: Hi Karsten, Already grabbed and installed SnoopyPro-0.22 from http://sourceforge.net/projects/usbsnoop . Guess it's what you mentioned. See on attachment a screenshot right after sniffer installation. If that's right, you probably don't need to send everything, just the ListeningPipe utility. OK? Hi Rui, screenshot looks ok. I don't know SnoopyPro-0.22. I think I took an older version from somewhere on the web modified it heavyly. maybe SnoopyPro-0.22 can also do what my ListeningPipe app can: Dump any different telegram only the first time it is being transmitted. the usb is in constant usage, so if you need to find a special teloegram that onlyx occurs if you do something, it can be quit hard work to find out the exact telegram. If you want ListeningPipe, you have to also use the filter-driver that came with the zip file. At least so I think... Cheers, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70alloc_id638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Tascam US-224 support: MIDI OK, Audio KO?
Am Dienstag 30 März 2004 21:32 schrieb Rui Nuno Capela: screenshot looks ok. I don't know SnoopyPro-0.22. I just picked it up from sf.net , as you suggested. I think I took an older version from somewhere on the web modified it heavyly. maybe SnoopyPro-0.22 can also do what my ListeningPipe app can: Dump any different telegram only the first time it is being transmitted. the usb is in constant usage, so if you need to find a special teloegram that onlyx occurs if you do something, it can be quit hard work to find out the exact telegram. Hmmm. I think we better stick with your custom binaries and put aside that SnoopyPro thing. AFAICT there's no filtering feature in it. We better use the very same tools, otherwise things get weird, and no one gets the blame ;) If you want ListeningPipe, you have to also use the filter-driver that came with the zip file. At least so I think... Of course I do. Please apologize me, but I'm missing the zip file you're mentioning. Have you sent it already? i sent it 7 hours ago and now again. I'd suggest you use my tool if it fits winxp USB 2 (I mean the latest high speed USB which your machine is equiped with?) which i don't know as i only used it with win2k and the slower 10MBit/s USB. I mean use what fits best ;-) Just checked: The Mail with the zip is in my inbox again (CCed me), so it should be in yours too soon: Rui Nuno Capela [EMAIL PROTECTED] It is 351 kBytes big, so i can't send it to alsa-devel list. You have it? --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70alloc_id638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] 1.0.4rc from cvs-head: snd-usb-usx2y still needs snd-hwdep....
..., which is not built. this is for kernel 2.4. /etc/asound/driver_args: --with-cards=via82xx,msnd-pinnacle,usb-audio,usb-usx2y,es1968 --with-kernel=/usr/src/linux-2.4 --with-debug=full --with-sequencer=yes regards, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Tascam US-224 support: MIDI OK, Audio KO?
Am Montag 29 März 2004 13:34 schrieb Rui Nuno Capela: My first question goes whether us428control's not recognizing any USx2y hardware dependant stuff (hwdep) either on hw:0 or hw:1. I'm almost sure that it should be on hw:1 as the US-224 is configured as my second soundcard under the ALSA configuration (i.e. alias snd-usb-usx2y snd-card-1). But us428control does not find anything, at least after the firmware gets loaded. I only have a us428 here, so I assume us224 behaves the same. could it be it is already running (started by hotpug scripts which were installed with alsa)? Did you try ps -aux|grep us428control ? aconnect -li gave you among others client 129: 'US-428' [type=user] 0 'Controls' this usually is due to us428controls activity. Strange enough, to me at least, us428control seems to work between the fw and fpga loading steps. Using lsusb, I've noticed that the USB ids do change from 1604:8004 to 1604:8005 while plugging in. Guess that's normal, and it marks the momemt when fw is loaded and fpga is about to. The second one is about the LEDs on the control surface: besides the USB light, isn't that supposed to light up anything else? Everything else is dead dark. Touching the knobs, pushing the buttons or whatever doesn't make any visible difference. Is that supposed to be normal? if us428control is running ok (AND fits the us224), INPUT MONITOR Led is functional. Also if INPUT MONITOR Led is ON, SELECT and MUTE Leds work. OK. I've tested on two different systems, a Compaq laptop w/Mandrake 10.0 (P4 2.533GHz, OHCI) and on a custom desktop w/SUSE 9.0 (P4 3.333GHz SMP/HT, UHCI). On both, the firmware seems to get loaded and only visible thing to note is that the USB light gets lit. The only thing that i could get to work is the MIDI interface. AFAICT all faders, buttons and the jog wheel do send MIDI control events, and I could intercept those on the ALSA sequencer interface. MIDI seems pretty functional then. I could also test the external raw MIDI interface, by sending out some notes and it seems to work too. faders, buttons and the jog wheel do send MIDI control events are made by us428control. It's the PCM audio part that gets me worried. ALSA reports both capture and playback PCM interfaces. But on all my tests I could only ear silence. Not a sound. Dead silence only. Although it all seems to be OK, at least as reported by ALSA. us428 MASTER Slider behaves funny here: if it is set to MAXIMUM at Firmware BootUp, it tells us428control that it is ZEROed! To hear audio here I have to set MASTER Fader below MAX first. Later I can put it to MAX and it behaves as expected. Quite traditionally this symptom is due to initially default muted mixer channels, but running `alsamixer -c1` reports that there's no mixer elems. So how can I unmute this beast? Hope the above helps. Mixer support isn't yet written, sorry. To see if capturing works: can you record a file and it looks like expected in an audio editor? (UHCI worked more often than OHCI, but also UHCI can be tricky: on a via mobo one connector does it, but the other not !?!) Cheers, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70alloc_id638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Tascam US-224 support: MIDI OK, Audio KO?
Hi Rui, please try to enable audio out with us428control -v2 -D hw:1 like this: - toggle INPUT MONITOR until us428control says ...Light is 1 - then move Fader3 to max and play some audio. This is just a guess assuming audio out is mapped on us224 internal mixer 2, input monitor channel 1 is mapped on us224 internal mixer 0 and input monitor channel 2 is mapped on us224 internal mixer 1. - Please also try your guitar on both inputs: move faders 1 2 to see if sound is routed to the outputs. We have to tweak us428control to add real us224 support. Above is just to verify that the current us428 internal mixer mechanics is usable for the us224. Concerning us224's Lights I'm currently left in the dark For us428 I found that a 7Byte long USB-Message on pipe 4 is a Lights set command, while a 5Byte long is an internal mixer set command. You could tweak us428control to toggle the 0'th light instead of the 25'th light, which is InputMonitor Light on us428. the 0th light is Select Channel 1 on the us428. Exchange Cus428State.cc Line 118 , 119 Light[0].Value = StateInputMonitor() ? SelectInputMonitor : Select; Light[2].Value = StateInputMonitor() ? MuteInputMonitor : Mute; for Light[0].Value = 0x55; Light[2].Value = 0xAA; to check light mechanics. If there's still no lights, some usb snooping on windoz might help. I've some specially tuned stuff here which I could send you then. cheers, Karsten Am Montag 29 März 2004 23:41 schrieb Rui Nuno Capela: Hi Karsten, Martin, Karsten wrote: I only have a us428 here, so I assume us224 behaves the same. could it be it is already running (started by hotpug scripts which were installed with alsa)? Did you try ps -aux|grep us428control ? aconnect -li gave you among others client 129: 'US-428' [type=user] 0 'Controls' this usually is due to us428controls activity. Yes us428control is indeed already running, spawned by the hotplug scripts alright. How could I miss that? :) OK. The first thing I tried then was killing it and restarting it by hand: us428control -v2 -D hw:1 By tweaking some knobs and faders it seems that its working. I have the verbose feedback OK, or so I think. Below, you can find some data that I've collected here. Please check if it's the same or similar that you find for the US-428. The second one is about the LEDs on the control surface: besides the USB light, isn't that supposed to light up anything else? Everything else is dead dark. Touching the knobs, pushing the buttons or whatever doesn't make any visible difference. Is that supposed to be normal? if us428control is running ok (AND fits the us224), INPUT MONITOR Led is functional. Nope. INPUT MONITOR never gets lit, despite the verbose output of us428control saying otherwise (see below). Also if INPUT MONITOR Led is ON, SELECT and MUTE Leds work. Neither of those leds get ON, no matter how much I try to play with them. Only darkness I see. us428 MASTER Slider behaves funny here: if it is set to MAXIMUM at Firmware BootUp, it tells us428control that it is ZEROed! To hear audio here I have to set MASTER Fader below MAX first. Later I can put it to MAX and it behaves as expected. Tried several positions. Can't hear a thing. No output, only silence Hope the above helps. Mixer support isn't yet written, sorry. Hmmm. Is it planned any time soon? Can I help in any way? To see if capturing works: can you record a file and it looks like expected in an audio editor? YES. Capture works. I've tested with `arecord -D hw:1 take1.wav` and I can hear my guitar. Obviously I had to feed the captured file into the onboard soundcard to get to ear it. After all, it's only playback that's missing. Oh, and no leds too. (UHCI worked more often than OHCI, but also UHCI can be tricky: on a via mobo one connector does it, but the other not !?!) As I noted, I'm testing on two quite different machines, a desktop and a laptop. The desktop one seems to be using UHCI (although ohci, uhci and ehci modules are all loaded in). The laptop one is OHCI for sure and only. AFAICT, the behaviour is quite the same on either system. No playback sound, at least via PHONES output. Now follows the data I collected while watching `us428control -v2 -D hw:1` output. Hope it sheds some light. -- Jog wheel: poll returned 0x1 Last is 0 00 poll returned 0x1 Last is 1 01 poll returned 0x1 Last is 2 02 . . . . . .
[Alsa-devel] Re: usx2y firmware update
Am Donnerstag, 11. März 2004 21:50 schrieb Martin Langer: Hi, Tascam has released v3.24 of their windows drivers and the firmware for the us224 and us428 changed (only EZ-USB), but I found no changes for the us122. You can find both changed and converted firmware files here: http://www.langerland.de/us122/usx2y-firmware_v3.24.tar.bz2 Please test! I have no information about the changes, but hopefully it will fix something. Perhaps other usx2y users know more... works just as before so far. no difference noticed. thanks, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70alloc_id638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] USB audio devices
We can also vary the exact USB frame time. With UHCI 1.1 USB Hosts there is the SOF Register. It is setable from 0 to 255, the default being 127. Using this SOF-Register, we can set the actual USB Frame Rate from ((12000 - 127) / 12000)ms to ((12000 + 128) / 12000)ms. That is about -/+ 1%: More than enough to adjust the USB-Frame rate to let us get 44(44100) or 48 (48000) Sample Frames everyy USB Frame. It really works here already with the us428: The trick is: We first make the USB-Frame longer until we capture 1 Sample Frame more 45 (for 44100). then the USB-Frame is shortened until we capture only 43 Sample Frames for one USB Frame. and so on. If we use a period size of multiples of 44 (for 44100) then : - Latency is almost at its best (only 1/44 less than optimal. - User Prog Scheduling Jitter is minimized. - Alsas keeps constant Period size. cheers, Karsten --- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: Start us224control via hotplug. was: Re: [Alsa-devel] Tascam US-224 support
Am Freitag, 20. Februar 2004 11:50 schrieb Takashi Iwai: At Fri, 20 Feb 2004 00:40:32 +0100, Karsten Wiese wrote: this is a patch against /alsa-tools/usx2yloader/tascam_fpga.in: Index: tascam_fpga.in === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/tascam_fpga.in,v retrieving revision 1.4 diff -u -r1.4 tascam_fpga.in --- tascam_fpga.in 19 Jan 2004 18:49:21 - 1.4 +++ tascam_fpga.in 19 Feb 2004 22:16:04 - @@ -23,6 +23,9 @@ 1604/8001/*) [EMAIL PROTECTED]@/us428control ;; +1604/8005/*) + [EMAIL PROTECTED]@/us224control + ;; *) ;; esac unfortunately this patch is only half of what it should be: us224control is meant to be created from ln -s us428control us224control is it necessary for performance except for the sane naming? for example, in the case of aplay/arecord, both of them are the same binary but perform differently according to the executed name. if it's not the case, i'd like to keep the same name. sane naming only so far. how would we integrate this ln -s us428control us224control into Makefile.am ? or should we just cp the symbolic link? but then: can you put the symbolic link created by ln -s us428control us224control into CVS? if nobody knows, here is what works out of the box: Index: tascam_fpga.in === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/tascam_fpga.in,v retrieving revision 1.4 diff -u -r1.4 tascam_fpga.in --- tascam_fpga.in 19 Jan 2004 18:49:21 - 1.4 +++ tascam_fpga.in 19 Feb 2004 22:16:04 - @@ -23,6 +23,9 @@ 1604/8001/*) [EMAIL PROTECTED]@/us428control ;; +1604/8005/*) + [EMAIL PROTECTED]@/us428control + ;; *) ;; esac that's fine. please commit the 'fine' version: Index: tascam_fpga.in === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/tascam_fpga.in,v retrieving revision 1.4 diff -u -r1.4 tascam_fpga.in --- tascam_fpga.in 19 Jan 2004 18:49:21 - 1.4 +++ tascam_fpga.in 19 Feb 2004 22:16:04 - @@ -23,6 +23,9 @@ 1604/8001/*) [EMAIL PROTECTED]@/us428control ;; +1604/8005/*) + [EMAIL PROTECTED]@/us428control + ;; *) ;; esac thanks, Karsten --- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356alloc_id=3438op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Start us224control via hotplug. was: Re: [Alsa-devel] Tascam US-224 support
this is a patch against /alsa-tools/usx2yloader/tascam_fpga.in: Index: tascam_fpga.in === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/tascam_fpga.in,v retrieving revision 1.4 diff -u -r1.4 tascam_fpga.in --- tascam_fpga.in 19 Jan 2004 18:49:21 - 1.4 +++ tascam_fpga.in 19 Feb 2004 22:16:04 - @@ -23,6 +23,9 @@ 1604/8001/*) [EMAIL PROTECTED]@/us428control ;; +1604/8005/*) + [EMAIL PROTECTED]@/us224control + ;; *) ;; esac unfortunately this patch is only half of what it should be: us224control is meant to be created from ln -s us428control us224control how would we integrate this ln -s us428control us224control into Makefile.am ? or should we just cp the symbolic link? but then: can you put the symbolic link created by ln -s us428control us224control into CVS? if nobody knows, here is what works out of the box: Index: tascam_fpga.in === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/tascam_fpga.in,v retrieving revision 1.4 diff -u -r1.4 tascam_fpga.in --- tascam_fpga.in 19 Jan 2004 18:49:21 - 1.4 +++ tascam_fpga.in 19 Feb 2004 22:16:04 - @@ -23,6 +23,9 @@ 1604/8001/*) [EMAIL PROTECTED]@/us428control ;; +1604/8005/*) + [EMAIL PROTECTED]@/us428control + ;; *) ;; esac best regards, Karsten --- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356alloc_id=3438op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] Re: still interested in us224 support?
Am Dienstag, 10. Februar 2004 19:58 schrieben Sie: I had some time to try us428control. I tried to run it without arguments, but it complained about no-existent /dev/seq (don't have built-in sequencer in my internal sound card). I tried to use options /dev/seq refers here to a software-alsa-part. see my computers answer to $cat /proc/asound/devices 0: [0- 0]: ctl 8: [0- 0]: raw midi 16: [0- 0]: digital audio playback 24: [0- 0]: digital audio capture 1: : sequencer this is alsas sequencer 33: : timer 32: [1- 0]: ctl 36: [1- 0]: hardware dependent 48: [1- 0]: digital audio playback 56: [1- 0]: digital audio capture 40: [1- 0]: raw midi the alsa's sequencer is definitly needed to let us428control work. the corresponding module is snd-seq-device. lsmod should show it. if not, try modprobe snd-seq-device. if snd-seq-device is missing, build it. configure alsa-driver by creating the file /etc/asound/driver_args. mine looks like: --with-cards=via82xx,msnd-pinnacle,usb-audio,usb-usx2y,es1968 --with-kernel=/usr/src/linux-2.4 --with-debug=full --with-sequencer=yes then rebuild with ./cvscompile etc. to override this, but i must admit i'm not sure i understand all alsa principles. I tried options like : # ./us428control -Dhw1,0,0 ALSA lib hwdep.c:151:(snd_hwdep_open_noupdate) Unknown HwDep hw1,0,0 # ./us428control -D1,0 ALSA lib hwdep.c:151:(snd_hwdep_open_noupdate) Unknown HwDep 1,0 # ./us428control -chw1,0,0 us428control: cannot open hwdep hw:0 # ./us428control -chw1,0 us428control: cannot open hwdep hw:0 start it like $us428control -v2 -Dhw:X or $us428control -v2 -cX with X=index of the card. But I thought there were a control midi port on us224, which to seems noexistent with alsa ? us428 controls work. provided us428control runs. I cand send more usb snooping if needed. try to get us428control running first. if us224 is very similar to 428, you'll get a printout of lots of control numbers if you use the controls and have started us428control with option -v2. You uncommented any section containing USB_ID_US224 in snd-usb-usx2y? Also for trying on us224 please change usbusx2yaudio.c line 1244 (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US428 to (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US224 Also tried this change (just to test) : Feb 7 11:57:31 ouragan /etc/hotplug/usb.agent: Module setup tascam_fpga for USB product 1604/8005/1 Feb 7 11:57:31 ouragan /etc/hotplug/usb/tascam_fpga: calling /usr/local/bin/usx2yloader for /proc/bus/usb/001/010 Feb 7 11:57:35 ouragan kernel: ALSA usX2Yhwdep.c:315: snd_usX2Y_create_alsa_devices error -19 this only happens with the change aplied? so this change doesn't help. Karsten --- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356alloc_id=3438op=click ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] Re: still interested in us224 support?
Am Freitag, 30. Januar 2004 21:12 schrieb Martin Langer: On Fri, Jan 30, 2004 at 06:04:09PM +0100, David wrote: Le Jeudi 29 Janvier 2004 23:54, vous avez écrit : Jump to alsa-firmware/usx2yloader and place the attached us224.prepad file there. Part two of the job is patching two files there with the attached patchfile: patch -p0 loader.patch Done, but even a ./configure make make install would copy us224.prepad to /usr/local/share/alsa/firmware/usx2yloader/ so i copied the file by myself. ok. and then run the typical install stuff... Now the control led is burning. I couldn't force aplay to use us224 instead of my maestro 2E, so i tried to cat a wav file to /dev/dspx. I also tried to use xmms : it seems the file is played but with no sound. if the us224 is device number X: aplay -Dplughw:X,0 test.wav I guess it's in your case: aplay -Dplughw:1,0 test.wav For direct hardware access if the file is 44.1 or 48kHz and no alsa-lib conversion is necessary, it should be possible with: aplay -Dhw:1,0 test.wav running alsamixer -c1 returns a No mixer elems found (i think it's normal as under Windows there is also no mixing possibility). Well, that's the big difference to my 122 which is only an I/O interface and not a controller. My mixer is a 100% hardware solution but I guess the 224 is like the 428 and need a similar (the same ?) control interface. Perhaps the us428control (in alsa-tools) works out of the box for the 224 too, but I've never looked inside that code. Karsten? could work. but maybe some numbers identifying sliders or output mixers don't fit us224. we would need info from tasam or usb snooping windoze or braveheartedly testing on linux to know more. ...also i'm not completely shure if the snd-usb-usx2y's mmap interface is initialized for us224 also. us428control talks to the driver with it. Just give it a try. Karsten, how reacts the 428 without starting us428control? Simply no sound on playback? Or is there another point I've missed? No sound on playback. I guess it's time to create some official 224 driver/loader patches for Alsa CVS now. Any objections? You uncommented any section containing USB_ID_US224 in snd-usb-usx2y? Also for trying on us224 please change usbusx2yaudio.c line 1244 (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US428 to (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US224 have fun, Karsten --- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] [PATCH]snd-usb-usx2y 0.5.1
Hi Takashi, this lets it work on kernel 2.6.1. please commit, thanks, karsten Index: alsa-driver/usb/usx2y/usX2Yhwdep.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usX2Yhwdep.c,v retrieving revision 1.3 diff -u -r1.3 usX2Yhwdep.c --- alsa-driver/usb/usx2y/usX2Yhwdep.c 13 Jan 2004 17:19:30 - 1.3 +++ alsa-driver/usb/usx2y/usX2Yhwdep.c 15 Jan 2004 23:22:37 - @@ -37,7 +37,9 @@ { } -#ifndef LINUX_2_2 +#if LINUX_VERSION_CODE = KERNEL_VERSION(2, 6, 0) +static struct page * us428ctls_vm_nopage(struct vm_area_struct *area, unsigned long address, int *type) +#elif LINUX_VERSION_CODE = KERNEL_VERSION(2, 4, 0) static struct page * us428ctls_vm_nopage(struct vm_area_struct *area, unsigned long address, int no_share) #else static unsigned long us428ctls_vm_nopage(struct vm_area_struct *area, unsigned long address, int no_share) @@ -47,12 +49,11 @@ struct page * page; void *vaddr; - snd_printd(ENTER, start %lXh, ofs %lXh, pgoff %ld, addr %lXh, wr %d\n, + snd_printd(ENTER, start %lXh, ofs %lXh, pgoff %ld, addr %lXh\n, area-vm_start, address - area-vm_start, (address - area-vm_start) PAGE_SHIFT, - address, - no_share); + address); #if LINUX_VERSION_CODE = KERNEL_VERSION(2, 3, 25) offset = area-vm_pgoff PAGE_SHIFT; @@ -65,6 +66,12 @@ page = virt_to_page(vaddr); get_page(page); snd_printd( vaddr=%p made us428ctls_vm_nopage() return %p; offset=%lX\n, vaddr, page, offset); + +#if LINUX_VERSION_CODE = KERNEL_VERSION(2, 6, 0) + if (type) + *type = VM_FAULT_MINOR; +#endif + #ifndef LINUX_2_2 return page; #else @@ -303,6 +310,8 @@ } if (!err1 == dsp-index) do { + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_timeout(HZ/4); // give the device some time if ((err = snd_usX2Y_AsyncSeq04_init((usX2Ydev_t*)hw-private_data))) { snd_printk(snd_usX2Y_AsyncSeq04_init error \n); break; Index: alsa-driver/usb/usx2y/usbusx2y.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v retrieving revision 1.5 diff -u -r1.5 usbusx2y.c --- alsa-driver/usb/usx2y/usbusx2y.c 30 Dec 2003 16:33:44 - 1.5 +++ alsa-driver/usb/usx2y/usbusx2y.c 15 Jan 2004 23:22:37 - @@ -1,6 +1,10 @@ /* * usbus428.c - ALSA USB US-428 Driver * +2004-01-14 Karsten Wiese + Version 0.5.1: + Runs with 2.6.1 kernel. + 2003-12-30 Karsten Wiese Version 0.4.1: Fix 24Bit 4Channel capturing for the us428. @@ -142,7 +146,7 @@ int err = 0; usX2Ydev_t *usX2Y = urb-context; us428ctls_sharedmem_t *us428ctls = usX2Y-us428ctls_sharedmem; - + usX2Y-In04IntCalls++; if (urb-status) { @@ -210,6 +214,11 @@ if (err) { snd_printk(In04Int() usb_submit_urb err=%i\n, err); } + +#if LINUX_VERSION_CODE = KERNEL_VERSION(2, 6, 0) + urb-dev = usX2Y-chip.dev; + usb_submit_urb(urb, GFP_ATOMIC); +#endif } static void snd_usX2Y_unlinkSeq(snd_usX2Y_AsyncSeq_t* S) @@ -361,14 +370,16 @@ if (ptr) { usX2Ydev_t* usX2Y = usX2Y((snd_card_t*)ptr); struct list_head* p; + if (usX2Y-chip_status == USX2Y_STAT_CHIP_HUP) // on 2.6.1 kernel snd_usbmidi_disconnect() + return; // calls us back. better leave :-) . usX2Y-chip_status = USX2Y_STAT_CHIP_HUP; snd_usX2Y_unlinkSeq(usX2Y-AS04); usb_unlink_urb(usX2Y-In04urb); + snd_card_disconnect((snd_card_t*)ptr); /* release the midi resources */ list_for_each(p, usX2Y-chip.midi_list) { snd_usbmidi_disconnect(p, snd_usX2Y_usb_driver); } - snd_card_disconnect((snd_card_t*)ptr); if (usX2Y-us428ctls_sharedmem) wake_up(usX2Y-us428ctls_wait_queue_head); snd_card_free_in_thread((snd_card_t*)ptr); Index: alsa-driver/usb/usx2y/usbusx2y.h === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.h,v retrieving revision 1.2 diff -u -r1.2 usbusx2y.h --- alsa-driver/usb/usx2y/usbusx2y.h 2 Dec 2003 10:15:02 - 1.2 +++ alsa-driver/usb/usx2y/usbusx2y.h 15 Jan 2004 23:22:37 - @@ -5,7 +5,7 @@ #include usbus428ctldefs.h #define NRURBS 2 /* */ -#define NRPACKS 1 /* usb-frames/ms per urb */ +#define NRPACKS 2 /* usb-frames/ms per urb: 1 and 2 are supported. set to 1 if you want lowest possible latency */ #define URBS_AsyncSeq 10 #define URB_DataLen_AsyncSeq 32 Index: alsa-driver/usb/usx2y/usbusx2yaudio.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v retrieving revision 1.6 diff -u -r1.6 usbusx2yaudio.c --- alsa-driver/usb/usx2y/usbusx2yaudio.c 13 Jan 2004 17:19:30 - 1.6 +++ alsa-driver/usb/usx2y/usbusx2yaudio.c 15 Jan 2004 23:22:40 - @@ -122,7 +122,6 @@ struct urb *urb) { unsigned long flags, pack; - urb-dev = subs-stream-usX2Y-chip.dev; /* we need to set this at each time */ spin_lock_irqsave(subs-lock, flags); for (pack = 0; pack NRPACKS; pack++) { @@ -131,8
[Alsa-devel] Re: usx2y: known problems with us122 and alsa-drivers-1.0.1?
Am Samstag, 10. Januar 2004 20:27 schrieben Sie: Hi, I have built and installed ALSA 1.0.1 from tarballs for use with my new Tascam US-122. As far as I can tell, ALSA is correctly recognizing and loading firmware for this device. The USB light is on, the device shows up in /proc/asound as card # 0, etc. ALSA works properly on the internal card for this laptop, which is loaded as the second card, I can produce sound and so on. However, when I attempt to play a soundfile through the US-122 using aplay, it fails as follows. My question to you is: do you have any known problems with US-122 and alsa-1.0.1? no known problem for the US-428 here with a 2.4.23 kernel. Did not yet try any 2.6 kernel don't have an US-122. I did have to make a small change to alsa-kernel/usb/usbaudio.h in the tarball distro to add back some definitions for USB_DT_CS_* that are needed by the usb audio driver. Maybe this is evidence that the 1.0.1 distro is out of sync with authoritative source for usb-audio? Here is some possibly useful information about my system. Thanks in advance for any help you can provide. $ cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.1. Compiled on Jan 10 2004 for kernel 2.6.0. $ cat /proc/asound/cards 0 [USX2Y ]: USB US-X2Y - TASCAM US-X2Y TASCAM US-X2Y (1604:8007 if 0 at 003/006) 1 [A5451 ]: ALI5451 - ALI 5451 ALI 5451 at 0x1000, irq 5 please give us the output of $ cat /proc/asound/devices! $ aplay -D hw:0 ~/gillian.wav Playing WAVE '/home/grib/gillian.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo ALSA lib pcm_hw.c:324:(snd_pcm_hw_hw_params) SNDRV_PCM_IOCTL_HW_PARAMS failed: No such device aplay: set_params:875: Unable to install hw params: ACCESS: RW_INTERLEAVED FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: 16 FRAME_BITS: 32 CHANNELS: 2 RATE: 44100 PERIOD_TIME: (125011 125012) PERIOD_SIZE: 5513 PERIOD_BYTES: 22052 PERIODS: (2 3) BUFFER_TIME: (371519 371520) BUFFER_SIZE: 16384 BUFFER_BYTES: 65536 TICK_TIME: 1000 I have tried many normal variations of buffer sizes and so on but no change. Here is some other possibly useful information: OK, and it's in /dev also: $ ls -l /dev/snd total 0 crw-rw1 root audio116, 0 Dec 31 1969 controlC0 crw-rw1 root audio116, 32 Dec 31 1969 controlC1 crw-rw1 root audio116, 4 Dec 31 1969 hwC0D0 crw-rw1 root audio116, 8 Dec 31 1969 midiC0D0 crw-rw1 root audio116, 24 Dec 31 1969 pcmC0D0c crw-rw1 root audio116, 16 Dec 31 1969 pcmC0D0p crw-rw1 root audio116, 56 Dec 31 1969 pcmC1D0c crw-rw1 root audio116, 48 Dec 31 1969 pcmC1D0p crw-rw1 root audio116, 33 Dec 31 1969 timer When I attached the USB device, here's the message I saw in /var/log/messages: Jan 10 12:50:10 serrano kernel: hub 3-0:1.0: new USB device on port 2, assigned address 5 Jan 10 12:50:10 serrano kernel: midi: probe of 3-2:1.0 failed with error -5 Jan 10 12:50:11 serrano /etc/hotplug/usb/tascam_fw: load /usr/share/alsa/firmware/usx2yloader/us122fw.ihx for 1604/8006/100 to /proc/bus/usb/003/005 Jan 10 12:50:11 serrano kernel: usb 3-2: USB disconnect, address 5 Jan 10 12:50:13 serrano kernel: hub 3-0:1.0: new USB device on port 2, assigned address 6 Jan 10 12:50:13 serrano kernel: midi: probe of 3-2:1.0 failed with error -5 Jan 10 12:50:13 serrano /etc/hotplug/usb/tascam_fpga: calling /usr/bin/usx2yloader for /proc/bus/usb/003/006 Jan 10 12:50:15 serrano /etc/hotplug/usb/tascam_fpga: starting for /proc/bus/usb/003/006 Jan 10 12:50:15 serrano /etc/hotplug/usb/tascam_fpga: leaving --- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] Re: usx2y: known problems with us122 and alsa-drivers-1.0.1?
you might also try 2.6.1-mm1. ALSA 1.0.1 is integrated there, IIUC! regards, Karsten --- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] [PATCH]snd-usb-usx2y.patch.0.4.1
Hi Jaroslav, this fixes 24Bit 4Channel capturing. Please commit. Thanks, Karsten Index: usbusx2y.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v retrieving revision 1.4 diff -u -r1.4 usbusx2y.c --- usbusx2y.c 2 Dec 2003 10:15:02 - 1.4 +++ usbusx2y.c 30 Dec 2003 13:21:03 - @@ -1,6 +1,10 @@ /* * usbus428.c - ALSA USB US-428 Driver * +2003-12-30 Karsten Wiese + Version 0.4.1: + Fix 24Bit 4Channel capturing for the us428. + 2003-11-27 Karsten Wiese, Martin Langer Version 0.4: us122 support. @@ -85,7 +89,7 @@ MODULE_AUTHOR(Karsten Wiese [EMAIL PROTECTED]); -MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.4); +MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.4.1); MODULE_LICENSE(GPL); MODULE_CLASSES({sound}); MODULE_DEVICES({{TASCAM(0x1604), NAME_ALLCAPS(0x8001)(0x8007) }}); Index: usbusx2yaudio.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v retrieving revision 1.4 diff -u -r1.4 usbusx2yaudio.c --- usbusx2yaudio.c 5 Dec 2003 08:06:19 - 1.4 +++ usbusx2yaudio.c 30 Dec 2003 13:21:05 - @@ -141,13 +141,22 @@ * copy the data from each desctiptor to the pcm buffer, and * update the current position. */ -static void framecpy_4c(int* p_dma_area, int* cp, int cnt) +static void framecpy_4c_16(unsigned char *p_dma_area, unsigned char *cp, int cnt) { do{ - *p_dma_area = *cp; - p_dma_area += 2; - cp++; - }while (--cnt); + *(int *)p_dma_area = *(int *)cp; + p_dma_area += 8; + cp += 4; + } while (--cnt); +} + +static void framecpy_4c_24(unsigned char *p_dma_area, unsigned char *cp, int cnt) +{ + do{ + memcpy(p_dma_area, cp, 6); + p_dma_area += 12; + cp += 6; + } while (--cnt); } static int snd_usX2Y_urb_capt_retire(snd_usX2Y_substream_t *subs, @@ -158,6 +167,10 @@ unsigned char *cp; int i, len, lens = 0, hwptr_done = subs-hwptr_done; usX2Ydev_t *usX2Y = subs-stream-usX2Y; + void (*fourc_cpy)(unsigned char* p_dma_area, unsigned char* cp, int cnt) = 0; + + if (runtime-channels == 4) + fourc_cpy = usX2Y-stride == 4 ? framecpy_4c_16 : framecpy_4c_24; for (i = 0; i NRPACKS; i++) { cp = (unsigned char*)urb-transfer_buffer + urb-iso_frame_desc[i].offset; @@ -200,21 +213,21 @@ /* copy a data chunk */ if ((hwptr_done + len) runtime-buffer_size) { int cnt = runtime-buffer_size - hwptr_done; - if (runtime-channels != 4) { + if (fourc_cpy) { +unsigned char *p_dma_area = runtime-dma_area + (urb-pipe == subs-datapipe[0] ? 0 : usX2Y-stride); +fourc_cpy(p_dma_area + hwptr_done * usX2Y-stride * 2, cp, cnt); +fourc_cpy(p_dma_area, cp + cnt * usX2Y-stride, len - cnt); + } else { int blen = cnt * usX2Y-stride; memcpy(runtime-dma_area + hwptr_done * usX2Y-stride, cp, blen); memcpy(runtime-dma_area, cp + blen, len * usX2Y-stride - blen); - } else { -int* p_dma_area = (int*)runtime-dma_area + (urb-pipe == subs-datapipe[0] ? 0 : 1); -framecpy_4c(p_dma_area + hwptr_done * 2, (int*)cp, cnt); -framecpy_4c(p_dma_area, (int*)cp + cnt, len - cnt); } } else { - if (runtime-channels != 4) { -memcpy(runtime-dma_area + hwptr_done * usX2Y-stride, cp, len * usX2Y-stride); + if (fourc_cpy) { +unsigned char *p_dma_area = runtime-dma_area + (urb-pipe == subs-datapipe[0] ? 0 : usX2Y-stride); +fourc_cpy(p_dma_area + hwptr_done * usX2Y-stride * 2, cp, len); } else { -int* p_dma_area = (int*)runtime-dma_area + (urb-pipe == subs-datapipe[0] ? 0 : 1); -framecpy_4c(p_dma_area + hwptr_done * 2, (int*)cp, len); +memcpy(runtime-dma_area + hwptr_done * usX2Y-stride, cp, len * usX2Y-stride); } } lens += len; @@ -290,7 +303,8 @@ } else { /* set the buffer pointer */ urb-transfer_buffer = runtime-dma_area + subs-hwptr * usX2Y-stride; - subs-hwptr += count; + if ((subs-hwptr += count) = runtime-buffer_size) + subs-hwptr -= runtime-buffer_size; } spin_unlock_irqrestore(subs-lock, flags); urb-transfer_buffer_length = count * usX2Y-stride;
[Alsa-devel] Re: [PATCH]snd-usb-usx2y
Am Donnerstag, 4. Dezember 2003 20:30 schrieb Martin Langer: Karsten, your us428 fix breaks us122 support. usX2Y_rate_set(usX2Y_stream, 44100)) isn't possible on us122. usX2Y_rate_set() is being called when you start audio also. So audio stops working on the us122 with this patch? Would it work with 48000 instead of 44100? Karsten --- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] Re: [PATCH]snd-usb-usx2y
Am Donnerstag, 4. Dezember 2003 23:46 schrieb Martin Langer: On Thu, Dec 04, 2003 at 11:02:14PM +0100, Karsten Wiese wrote: Am Donnerstag, 4. Dezember 2003 20:30 schrieb Martin Langer: Karsten, your us428 fix breaks us122 support. usX2Y_rate_set(usX2Y_stream, 44100)) isn't possible on us122. usX2Y_rate_set() is being called when you start audio also. So audio stops working on the us122 with this patch? Would it work with 48000 instead of 44100? no success with both frequencies. it produces the same error: ALSA usX2Yhwdep.c:315: snd_us428_create_alsa_devices error -19 I guess we have to check the device id here and allow this only in case of ID=8001. The attached patch against CVS-HEAD does that. Please try it. If us122 works again, ask Jaroslav to commit it, as Takashi is on vacation. Best, Karsten Index: alsa-driver/usb/usx2y/usbusx2yaudio.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v retrieving revision 1.3 diff -u -r1.3 usbusx2yaudio.c --- alsa-driver/usb/usx2y/usbusx2yaudio.c 2 Dec 2003 10:15:02 - 1.3 +++ alsa-driver/usb/usx2y/usbusx2yaudio.c 4 Dec 2003 23:24:00 - @@ -1224,9 +1224,12 @@ sprintf(pcm-name, NAME_ALLCAPS Audio #%d, usX2Y(card)-chip.pcm_devs); - if (0 (err = snd_pcm_lib_preallocate_pages(pcm-streams[SNDRV_PCM_STREAM_PLAYBACK].substream, 64*1024, 128*1024, GFP_KERNEL)) - || 0 (err = snd_pcm_lib_preallocate_pages(pcm-streams[SNDRV_PCM_STREAM_CAPTURE].substream , usX2Y_capt_substream-endpoints * 64*1024, usX2Y_capt_substream-endpoints * 128*1024, GFP_KERNEL)) - || 0 (err = usX2Y_rate_set(usX2Y_stream, 44100))) { // needed to make us428 recognize output-volume settings for direct-monitoring and master-pcm. shouldn't disturb other usx2y. + if (0 (err = snd_pcm_lib_preallocate_pages(pcm-streams[SNDRV_PCM_STREAM_PLAYBACK].substream, 64*1024, 128*1024, GFP_KERNEL)) || + 0 (err = snd_pcm_lib_preallocate_pages(pcm-streams[SNDRV_PCM_STREAM_CAPTURE].substream, + usX2Y_capt_substream-endpoints * 64*1024, + usX2Y_capt_substream-endpoints * 128*1024, GFP_KERNEL)) || + (usX2Y(card)-chip.dev-descriptor.idProduct == USB_ID_US428 + 0 (err = usX2Y_rate_set(usX2Y_stream, 44100 { // Lets us428 recognize output-volume settings, disturbs us122. snd_usX2Y_audio_stream_free(usX2Y_stream); return err; }
[Alsa-devel] [PATCH]only start us428control if an us428 listens
Hi Takashi, please commit. thanks! Karsten Index: alsa-tools/usx2yloader/tascam_fpga.in === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/tascam_fpga.in,v retrieving revision 1.2 diff -u -r1.2 tascam_fpga.in --- alsa-tools/usx2yloader/tascam_fpga.in 2 Dec 2003 11:57:06 - 1.2 +++ alsa-tools/usx2yloader/tascam_fpga.in 3 Dec 2003 21:54:27 - @@ -1,18 +1,45 @@ #!/bin/sh -# load the firmware into Tascam USB devices (FPGA design) +# load the firmware into Tascam USB devices (FPGA design), +# start appropriate control application. [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@/usx2yloader +CONTROLLER= -if [ -x /usr/bin/logger ]; then - /usr/bin/logger -t $0 calling $LOADER for $DEVICE +if [ -x $LOADER ]; then + if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 calling $LOADER for $DEVICE + fi + $LOADER +else + if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 missing $LOADER for $DEVICE + fi fi -$LOADER -if [ -x @bindir@/us428control ]; then - @bindir@/us428control + +case $PRODUCT in +1604/8001/*) + [EMAIL PROTECTED]@/us428control + ;; +*) + ;; +esac + +if [ -n $CONTROLLER ]; then + if [ -x $CONTROLLER ]; then + if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 starting $CONTROLLER for $DEVICE + fi + $CONTROLLER + else + if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 missing $CONTROLLER for $DEVICE + fi + fi fi + if [ -x /usr/bin/logger ]; then /usr/bin/logger -t $0 leaving fi
[Alsa-devel] [PATCH]usx2yloader hotplugging in HEAD
Hi Takashi, Please commit this to reenable usx2yloader hotplugging: Index: alsa-tools/usx2yloader/tascam_fw === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/tascam_fw,v retrieving revision 1.1 diff -u -r1.1 tascam_fw --- alsa-tools/usx2yloader/tascam_fw23 Sep 2003 14:16:23 - 1.1 +++ alsa-tools/usx2yloader/tascam_fw2 Dec 2003 07:46:08 - @@ -3,7 +3,7 @@ # load the firmware into Tascam USB devices FIRMWARE= -FIRMWAREDIR=/usr/local/share/alsa/firmware +FIRMWAREDIR=/usr/local/share/alsa/firmware/usx2yloader FLAGS= LOADER=/sbin/fxload LOADERFIRMWARE=$FIRMWAREDIR/tascam_loader.ihx Later there should also be some magic to (not) include the /local substring, I don't know yet how to do that; anybody? Thanks, Karsten --- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] Re: [PATCH]usx2yloader hotplugging in HEAD
Am Dienstag, 2. Dezember 2003 11:05 schrieb Takashi Iwai: At Tue, 2 Dec 2003 09:31:32 +0100, fixed on cvs. tascam_fw and tascam_fpga will be generated via configure script now. the diff is attached below. please give a try. Tried succesfully! Thanks, Karsten --- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] [PATCH]us428control.patch.0.4.1
Hi Takashi, Two Segmentation fault spots cleared. Please commit. Thanks, Karsten Index: alsa-tools/us428control/Cus428State.cc === RCS file: /cvsroot/alsa/alsa-tools/us428control/Cus428State.cc,v retrieving revision 1.2 diff -u -r1.2 Cus428State.cc --- alsa-tools/us428control/Cus428State.cc 24 Oct 2003 14:01:45 - 1.2 +++ alsa-tools/us428control/Cus428State.cc 2 Dec 2003 17:41:06 - @@ -38,7 +38,8 @@ void Cus428State::InitDevice(void) { - SliderChangedTo(eFaderM, ((unsigned char*)(us428ctls_sharedmem-CtlSnapShot + us428ctls_sharedmem-CtlSnapShotLast))[eFaderM]); + if (us428ctls_sharedmem-CtlSnapShotLast = 0) + SliderChangedTo(eFaderM, ((unsigned char*)(us428ctls_sharedmem-CtlSnapShot + us428ctls_sharedmem-CtlSnapShotLast))[eFaderM]); } Index: alsa-tools/us428control/Cus428_ctls.cc === RCS file: /cvsroot/alsa/alsa-tools/us428control/Cus428_ctls.cc,v retrieving revision 1.2 diff -u -r1.2 Cus428_ctls.cc --- alsa-tools/us428control/Cus428_ctls.cc 24 Oct 2003 14:01:45 - 1.2 +++ alsa-tools/us428control/Cus428_ctls.cc 2 Dec 2003 17:41:06 - @@ -36,26 +36,29 @@ } void -Cus428_ctls::analyse(Cus428_ctls Previous, unsigned n) +Cus428_ctls::analyse(Cus428_ctls *Previous, unsigned n) { + Cus428_ctls *PreviousL = Previous ? Previous : new Cus428_ctls(); OneState-Set_us428_ctls(this); for (; n 9; n++) { //Sliders - char Diff = ((unsigned char*)this)[n] - ((unsigned char*)Previous)[n]; + char Diff = DiffValAt(PreviousL, n); if (Diff) - OneState-SliderChangedTo(n, ((unsigned char*)this)[n]); + OneState-SliderChangedTo(n, ValAt(n)); } for (; n 16; n++) { //Knobs - unsigned char Diff = ((unsigned char*)this)[n] ^ ((unsigned char*)Previous)[n]; + unsigned char Diff = DiffBitAt(PreviousL, n); unsigned o = 0; while (o 8) { if (Diff (1 o)) -OneState-KnobChangedTo((Cus428State::eKnobs)(8*n + o), ((unsigned char*)this)[n] (1 o)); +OneState-KnobChangedTo((Cus428State::eKnobs)(8*n + o), ValAt(n) (1 o)); ++o; } } for (; n sizeof(*this); n++) { //wheels - char Diff = ((unsigned char*)this)[ n] - ((unsigned char*)Previous)[n]; + char Diff = DiffValAt(PreviousL, n); if (Diff) OneState-WheelChangedTo((E_In84)n, Diff); - } + } + if (0 == Previous) + delete PreviousL; } Index: alsa-tools/us428control/Cus428_ctls.h === RCS file: /cvsroot/alsa/alsa-tools/us428control/Cus428_ctls.h,v retrieving revision 1.2 diff -u -r1.2 Cus428_ctls.h --- alsa-tools/us428control/Cus428_ctls.h 24 Oct 2003 14:01:45 - 1.2 +++ alsa-tools/us428control/Cus428_ctls.h 2 Dec 2003 17:41:06 - @@ -25,10 +25,23 @@ class Cus428_ctls: public us428_ctls{ public: + Cus428_ctls() { + memset(this, 0, sizeof(*this)); + } void dump(int n = 0); - void analyse(Cus428_ctls Previous, unsigned n = 0); + void analyse(Cus428_ctls *Previous, unsigned n = 0); bool Knob( int K) { return ((char*)this)[K / 8] (1 K % 8); + } + protected: + unsigned char ValAt(int i) { + return ((unsigned char*)this)[i]; + } + unsigned char DiffValAt(Cus428_ctls *Other, int i) { + return ValAt(i) - Other-ValAt(i); + } + unsigned char DiffBitAt(Cus428_ctls *Other, int i) { + return ValAt(i) ^ Other-ValAt(i); } }; Index: alsa-tools/us428control/configure.in === RCS file: /cvsroot/alsa/alsa-tools/us428control/configure.in,v retrieving revision 1.4 diff -u -r1.4 configure.in --- alsa-tools/us428control/configure.in 25 Nov 2003 17:14:03 - 1.4 +++ alsa-tools/us428control/configure.in 2 Dec 2003 17:41:06 - @@ -1,5 +1,5 @@ AC_INIT(us428control.cc) -AM_INIT_AUTOMAKE(us428control, 0.4) +AM_INIT_AUTOMAKE(us428control, 0.4.1) AC_PROG_CXX AC_PROG_INSTALL AC_HEADER_STDC Index: alsa-tools/us428control/us428control.cc === RCS file: /cvsroot/alsa/alsa-tools/us428control/us428control.cc,v retrieving revision 1.2 diff -u -r1.2 us428control.cc --- alsa-tools/us428control/us428control.cc 24 Oct 2003 14:01:45 - 1.2 +++ alsa-tools/us428control/us428control.cc 2 Dec 2003 17:41:06 - @@ -121,14 +121,16 @@ if (verbose 1) printf(Last is %i\n, Last); while (us428ctls_sharedmem-CtlSnapShotRed != Last) { + static Cus428_ctls *Red = 0; int Read = us428ctls_sharedmem-CtlSnapShotRed + 1; - if (Read = N_us428_ctl_BUFS) + if (Read = N_us428_ctl_BUFS || Read 0) Read = 0; Cus428_ctls* PCtlSnapShot = ((Cus428_ctls*)(us428ctls_sharedmem-CtlSnapShot)) + Read; int DiffAt = us428ctls_sharedmem-CtlSnapShotDiffersAt[Read]; if (verbose 1) PCtlSnapShot-dump(DiffAt); - PCtlSnapShot-analyse(((Cus428_ctls*)(us428ctls_sharedmem-CtlSnapShot))[us428ctls_sharedmem-CtlSnapShotRed], DiffAt ); + PCtlSnapShot-analyse(Red, DiffAt); + Red =
[Alsa-devel] [PATCH]snd-usb-usx2y
Hi, this fixes an us428 error that crept in during us122 merge. Please commit with comment: - Start devices audio-engine on driver startup. - Prepare for us224 - Tests. Thanks, Karsten Index: alsa-driver/usb/usx2y/usbusx2y.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v retrieving revision 1.2 diff -u -r1.2 usbusx2y.c --- alsa-driver/usb/usx2y/usbusx2y.c 26 Nov 2003 10:01:28 - 1.2 +++ alsa-driver/usb/usx2y/usbusx2y.c 27 Nov 2003 14:32:23 - @@ -1,6 +1,11 @@ /* * usbus428.c - ALSA USB US-428 Driver * +2003-11-27 Karsten Wiese, Martin Langer + Version 0.4: + us122 support. + us224 could be tested by uncommenting the sections containing USB_ID_US224 + 2003-11-03 Karsten Wiese Version 0.3: 24Bit support. @@ -229,6 +234,11 @@ .idVendor = 0x1604, .idProduct = USB_ID_US122 }, +/* { FIXME: uncomment to test us224 support*/ +/* .match_flags = USB_DEVICE_ID_MATCH_DEVICE, */ +/* .idVendor = 0x1604, */ +/* .idProduct = USB_ID_US224 */ +/* }, */ { /* terminator */ } }; @@ -268,7 +278,7 @@ int err; snd_card_t* card; if (device-descriptor.idVendor != 0x1604 || - (device-descriptor.idProduct != USB_ID_US122 device-descriptor.idProduct != USB_ID_US428) || + (device-descriptor.idProduct != USB_ID_US122 /* device-descriptor.idProduct != USB_ID_US224 */ device-descriptor.idProduct != USB_ID_US428) || !(card = snd_usX2Y_create_card(device))) return 0; if ((err = snd_usX2Y_hwdep_new(card, device)) 0 || Index: alsa-driver/usb/usx2y/usbusx2yaudio.c === RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v retrieving revision 1.1 diff -u -r1.1 usbusx2yaudio.c --- alsa-driver/usb/usx2y/usbusx2yaudio.c 25 Nov 2003 11:21:49 - 1.1 +++ alsa-driver/usb/usx2y/usbusx2yaudio.c 27 Nov 2003 14:32:25 - @@ -1225,7 +1225,8 @@ sprintf(pcm-name, NAME_ALLCAPS Audio #%d, usX2Y(card)-chip.pcm_devs); if (0 (err = snd_pcm_lib_preallocate_pages(pcm-streams[SNDRV_PCM_STREAM_PLAYBACK].substream, 64*1024, 128*1024, GFP_ATOMIC)) - || 0 (err = snd_pcm_lib_preallocate_pages(pcm-streams[SNDRV_PCM_STREAM_CAPTURE].substream , usX2Y_capt_substream-endpoints * 64*1024, usX2Y_capt_substream-endpoints * 128*1024, GFP_ATOMIC))) { + || 0 (err = snd_pcm_lib_preallocate_pages(pcm-streams[SNDRV_PCM_STREAM_CAPTURE].substream , usX2Y_capt_substream-endpoints * 64*1024, usX2Y_capt_substream-endpoints * 128*1024, GFP_ATOMIC)) + || 0 (err = usX2Y_rate_set(usX2Y_stream, 44100))) { // needed to make us428 recognize output-volume settings for direct-monitoring and master-pcm. shouldn't disturb other usx2y. snd_usX2Y_audio_stream_free(usX2Y_stream); return err; }
Re: [Alsa-devel] Tascam US-122: tascam_firmware-0.1 and alsa-firmware
Am Donnerstag, 27. November 2003 15:35 schrieb JoDaY: Hi, I've succesfully installed tascam_firmware-0.1 from http://usb-midi-fw.sf.net : this is not needed anymore. please try alsa-tools/usx2yloader from cvs or 1.0.0pre3. It is based an the works of usb-midi-fw.sf.net (Thanks !!) and integrates with alsa hwdep-layer and hotplug. The Tascam US-122 is LED lighted, the firmwares are loaded.(by hotplug) I've just compiled cvs version of alsa (2003/11/27) All seems ok: lsmod command show this modules: snd-usb-usx2y snd-usb-audio snd-rawmidi snd-seq-device snd-pcm snd-timer snd-hwdep snd-page-alloc snd usbcore May I ask you if the alsa-firmware and tascam_firmware-0.1 meet them in conflict ? don't really remember. usx2yloader uses the alsa hwdep-layer to download the firmware. please try usx2yloader. I can see a link USX2Y in /proc/asound wich point to card0. But I can't see it in any mixer: alsamixer return No mixer elems found. there is no mixer support yet. but it is certainly implementable ;-) Thanks for your great work! you're welcome! Karsten --- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] [PATCH]snd-usb-usx2y
Am Donnerstag, 27. November 2003 15:44 schrieb Karsten Wiese: Hi, this fixes an us428 error that crept in during us122 merge. Please commit with comment: - Start devices audio-engine on driver startup. should be: - Start device's audio-engine on driver startup. - Prepare for us224 - Tests. Thanks, Karsten --- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] [PATCH]Firmware for us122 us224 Part1
Hi Takashi, to complete support for us122 and make it easy for developers to add us224 support, please commit this stuff to alsa-tools/usx2yloader. Thanks, Karsten Index: alsa-tools/usx2yloader/firmware/Makefile.am === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/firmware/Makefile.am,v retrieving revision 1.2 diff -u -r1.2 Makefile.am --- alsa-tools/usx2yloader/firmware/Makefile.am 23 Sep 2003 14:16:23 - 1.2 +++ alsa-tools/usx2yloader/firmware/Makefile.am 25 Nov 2003 12:39:22 - @@ -1,4 +1,9 @@ -cfg_files = us428.conf us428.prepad us428.rbt tascam_loader.ihx us428fw.ihx +cfg_files = us122.conf us224.conf us428.conf \ + usx2y.prepad us428.prepad \ + us122.rbt us224.rbt us428.rbt \ + tascam_loader.ihx \ + us122fw.ihx us224fw.ihx us428fw.ihx + EXTRA_DIST = $(cfg_files) firmwaredir = $(datadir)/alsa/firmware usx2yloader_firmware_122.tar.bz2 Description: application/tbz
[Alsa-devel] [PATCH]Firmware for us122 us224 Part2
Hi Takashi, to complete support for us122 and make it easy for developers to add us224 support, please commit this stuff to alsa-tools/usx2yloader. Thanks, Karsten usx2yloader_firmware_224.tar.bz2 Description: application/tbz
[Alsa-devel] [PATCH]against cvs: us122 support in snd-usb-us428
Hi, would you please give this a try an your us122s? I integrated Martins stuff into mine. us428 still works here. besides patching you'll need to copy the attached header into alsa-driver/usb/us428. you'll probaply also still need Martin's patched usx2yloader infrastructure files. Gruesse, Karsten #ifndef USBUSX2Y_H #define USBUSX2Y_H #include linux/usb.h #include ../../alsa-kernel/usb/usbaudio.h #include usbus428ctldefs.h #define NRURBS 2 /* */ #define NRPACKS 1 /* usb-frames/ms per urb */ #ifndef LINUX_2_2 typedef struct urb urb_t; typedef struct urb* purb_t; #endif #define URBS_AsyncSeq 10 #define URB_DataLen_AsyncSeq 32 typedef struct { urb_t* urb[URBS_AsyncSeq]; char* buffer; } snd_usX2Y_AsyncSeq_t; typedef struct { int submitted; int len; urb_t* urb[0]; } snd_usX2Y_urbSeq_t; typedef struct { snd_usb_audio_t chip; int stride; purb_t In04urb; void* In04Buf; char In04Last[24]; unsigned In04IntCalls; snd_usX2Y_urbSeq_t* US04; int Seq04; int Seq04Complete; wait_queue_head_t In04WaitQueue; snd_usX2Y_AsyncSeq_t AS04; unsigned int rate, format; int refframes; purb_t play_urb_waiting[2]; int pipe0Aframes[NRURBS][NRPACKS]; snd_hwdep_t* hwdep; int chip_status; struct semaphore open_mutex; us428ctls_sharedmem_t* us428ctls_sharedmem; wait_queue_head_t us428ctls_wait_queue_head; } usX2Ydev_t; #define usX2Y(c) ((usX2Ydev_t*)(c)-private_data) int snd_usX2Y_audio_create(snd_card_t* card); #ifndef OLD_USB void snd_usX2Y_Out04Int(urb_t* urb, struct pt_regs *regs); void snd_usX2Y_In04Int(urb_t* urb, struct pt_regs *regs); #else void snd_usX2Y_Out04Int(urb_t* urb); void snd_usX2Y_In04Int(urb_t* urb); #endif #ifndef CONFIG_SND_DEBUG #define snd_usX2Y_Out04Int 0 #endif #define NAME_ALLCAPS US-X2Y #endif snd-usb-us428+us122.patch.tar.bz2 Description: application/tbz
[Alsa-devel] [PATCH]against cvs: us122 and us428 support in snd-usb-usx2y
Hi Takashi, from the version, Werner tested, I only changed filenames to the 'usx2y'. So please commit snd-usb-usx2y_alsacvs.patch and cp the content of snd-usb-usx2y.tar.bz2 into alsa-driver/usb (thats also commit? ;-). alsa-driver/usb/us428 is obsoleted then. Thanks, Karsten Am Montag, 24. November 2003 21:50 schrieb Werner Schweer: On Monday 24 November 2003 14:37, Karsten Wiese wrote: Hi, would you please give this a try an your us122s? I integrated Martins stuff into mine. us428 still works here. besides patching you'll need to copy the attached header into alsa-driver/usb/us428. you'll probaply also still need Martin's patched usx2yloader infrastructure files. it works! Tested with US-122: audio recording/play, midi play Werner Index: alsa-driver/INSTALL === RCS file: /cvsroot/alsa/alsa-driver/INSTALL,v retrieving revision 1.149 diff -u -r1.149 INSTALL --- alsa-driver/INSTALL 10 Nov 2003 17:32:36 - 1.149 +++ alsa-driver/INSTALL 24 Nov 2003 21:41:25 - @@ -214,10 +214,10 @@ Module supports up to 8 cards. - Module snd-usb-us428 + Module snd-usb-usx2y -Module for Tascam USB US-428 device. +Module for Tascam USB US-122 and US-428 devices. This module supports up to 8 cards, autoprobe and hotplugging. Index: alsa-driver/acore/Makefile === RCS file: /cvsroot/alsa/alsa-driver/acore/Makefile,v retrieving revision 1.32 diff -u -r1.32 Makefile --- alsa-driver/acore/Makefile 11 Nov 2003 13:12:15 - 1.32 +++ alsa-driver/acore/Makefile 24 Nov 2003 21:41:25 - @@ -11,7 +11,7 @@ obj-$(CONFIG_SND_MIXART) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-hwdep.o obj-$(CONFIG_SND_SERIALMIDI) += snd-rawmidi.o snd.o obj-$(CONFIG_SND_MSND_PINNACLE) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o -obj-$(CONFIG_SND_USB_US428) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o snd-hwdep.o +obj-$(CONFIG_SND_USB_USX2Y) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o snd-hwdep.o obj-$(CONFIG_SND_AU8810) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o snd-hwdep.o obj-$(CONFIG_SND_AU8820) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o snd-hwdep.o obj-$(CONFIG_SND_AU8830) += snd-pcm.o snd-timer.o snd-page-alloc.o snd.o snd-rawmidi.o snd-hwdep.o Index: alsa-driver/include/amagic.h === RCS file: /cvsroot/alsa/alsa-driver/include/amagic.h,v retrieving revision 1.10 diff -u -r1.10 amagic.h --- alsa-driver/include/amagic.h 6 Oct 2003 14:01:00 - 1.10 +++ alsa-driver/include/amagic.h 24 Nov 2003 21:41:25 - @@ -6,7 +6,7 @@ #define snd_msndpinnacle_pcm_t_magic 0xa25a3e01 #define msndmidi_t_magic 0xa25a3e02 #define pdacf_t_magic0xa25a3f00 -#define snd_us428_stream_t_magic0xa25a5e03 +#define snd_usX2Y_stream_t_magic0xa25a5e03 #define vortex_t_magic0xa25a4001 #endif Index: alsa-driver/usb/Makefile === RCS file: /cvsroot/alsa/alsa-driver/usb/Makefile,v retrieving revision 1.12 diff -u -r1.12 Makefile --- alsa-driver/usb/Makefile 11 Nov 2003 13:12:34 - 1.12 +++ alsa-driver/usb/Makefile 24 Nov 2003 21:41:27 - @@ -10,7 +10,7 @@ # for compatibility extra-snd-usb-audio-objs := usbcompat.o -obj-$(CONFIG_SND) += us428/ +obj-$(CONFIG_SND) += usx2y/ export-objs := usbaudio.o usbmidi.o Index: alsa-driver/utils/Modules.dep === RCS file: /cvsroot/alsa/alsa-driver/utils/Modules.dep,v retrieving revision 1.26 diff -u -r1.26 Modules.dep --- alsa-driver/utils/Modules.dep 6 Oct 2003 14:01:07 - 1.26 +++ alsa-driver/utils/Modules.dep 24 Nov 2003 21:41:27 - @@ -17,8 +17,8 @@ %dir linux/sound/pcmcia/pdaudiocf |snd-pdaudiocf snd-pcm -%dir linux/sound/usb/us428 -|snd-usb-us428 snd-usb-audio snd-hwdep +%dir linux/sound/usb/usx2y +|snd-usb-usx2y snd-usb-audio snd-hwdep %dir linux/sound/pci/au88x0 |snd-au8810 snd-pcm snd-ac97-codec snd-mpu401-uart snd-usb-usx2y.tar.bz2 Description: application/tbz
[Alsa-devel] [PATCH]snd-usb-us428.patch.0.3
Hi Takashi, please commit this with Comment: 24Bit in 3Bytes (S24_3LE) support. Danke, Karsten Index: alsa-driver/usb/us428/usbus428.c === RCS file: /cvsroot/alsa/alsa-driver/usb/us428/usbus428.c,v retrieving revision 1.6 diff -u -r1.6 usbus428.c --- alsa-driver/usb/us428/usbus428.c 24 Oct 2003 13:58:47 - 1.6 +++ alsa-driver/usb/us428/usbus428.c 3 Nov 2003 10:55:22 - @@ -1,6 +1,11 @@ /* * usbus428.c - ALSA USB US-428 Driver * +2003-11-03 Karsten Wiese + Version 0.3: + 24Bit support. + arecord -D hw:1 -c 2 -r 48000 -M -f S24_3LE|aplay -D hw:1 -c 2 -r 48000 -M -f S24_3LE works. + 2003-08-22 Karsten Wiese Version 0.0.8: Removed EZUSB Firmware. First Stage Firmwaredownload is now done by tascam-firmware downloader. @@ -75,7 +80,7 @@ MODULE_AUTHOR(Karsten Wiese [EMAIL PROTECTED]); -MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.2); +MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.3); MODULE_LICENSE(GPL); MODULE_CLASSES({sound}); MODULE_DEVICES({{TASCAM(0x1604), NAME_ALLCAPS(0x8001) }}); @@ -226,18 +231,14 @@ { int dev; snd_card_t* card; - for (dev = 0; dev SNDRV_CARDS; ++dev) if (enable[dev] !snd_us428_card_used[dev]) break; - if (dev = SNDRV_CARDS) return NULL; - card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(us428dev_t)); if (!card) return NULL; - snd_us428_card_used[us428(card)-chip.index = dev] = 1; card-private_free = snd_us428_card_private_free; us428(card)-chip.dev = device; @@ -245,7 +246,6 @@ init_MUTEX (us428(card)-open_mutex); INIT_LIST_HEAD(us428(card)-chip.midi_list); us428(card)-Seq04Complete = 1; - us428(card)-stride = 4; // 16 Bit strcpy(card-driver, USB NAME_ALLCAPS); sprintf(card-shortname, TASCAM NAME_ALLCAPS); sprintf(card-longname, %s (%x:%x if %d at %03d/%03d), @@ -258,25 +258,15 @@ } -static void* snd_us428_usb_probe(struct usb_device* device, - struct usb_interface *intf, - const struct usb_device_id* device_id) +static void* snd_us428_usb_probe(struct usb_device* device, struct usb_interface *intf, const struct usb_device_id* device_id) { int err; snd_card_t* card; - - /* See if the device offered us matches what we can accept */ - if (device-descriptor.idVendor != 0x1604 || device-descriptor.idProduct != 0x8001) + if (device-descriptor.idVendor != 0x1604 || device-descriptor.idProduct != 0x8001 || + !(card = snd_us428_create_card(device))) return 0; - - if (!(card = snd_us428_create_card(device))) - return 0; - - if ((err = snd_usX2Y_hwdep_new(card, device)) 0) { - snd_card_free(card); - return 0; - } - if ((err = snd_card_register(card)) 0) { + if ((err = snd_usX2Y_hwdep_new(card, device)) 0 || + (err = snd_card_register(card)) 0) { snd_card_free(card); return 0; } @@ -287,8 +277,7 @@ /* * new 2.5 USB kernel API */ -static int snd_us428_probe(struct usb_interface *intf, - const struct usb_device_id *id) +static int snd_us428_probe(struct usb_interface *intf, const struct usb_device_id *id) { void *chip; chip = snd_us428_usb_probe(interface_to_usbdev(intf), intf, id); @@ -308,8 +297,7 @@ /* * 2.4 USB kernel API */ -static void *snd_us428_probe(struct usb_device *dev, unsigned int ifnum, - const struct usb_device_id *id) +static void *snd_us428_probe(struct usb_device *dev, unsigned int ifnum, const struct usb_device_id *id) { return snd_us428_usb_probe(dev, usb_ifnum_to_if(dev, ifnum), id); } Index: alsa-driver/usb/us428/usbus428.h === RCS file: /cvsroot/alsa/alsa-driver/usb/us428/usbus428.h,v retrieving revision 1.2 diff -u -r1.2 usbus428.h --- alsa-driver/usb/us428/usbus428.h 24 Sep 2003 16:45:10 - 1.2 +++ alsa-driver/usb/us428/usbus428.h 3 Nov 2003 10:55:22 - @@ -14,12 +14,12 @@ #define URBS_AsyncSeq 10 #define URB_DataLen_AsyncSeq 32 -typedef struct{ +typedef struct { urb_t* urb[URBS_AsyncSeq]; char* buffer; } snd_us428_AsyncSeq_t; -typedef struct{ +typedef struct { int submitted; int len; urb_t* urb[0]; @@ -38,7 +38,8 @@ int Seq04Complete; wait_queue_head_t In04WaitQueue; snd_us428_AsyncSeq_t AS04; - int rate; + unsigned int rate, +format; int refframes; purb_t play_urb_waiting[2]; int pipe0Aframes[NRURBS][NRPACKS]; Index: alsa-driver/usb/us428/usbus428audio.c === RCS file: /cvsroot/alsa/alsa-driver/usb/us428/usbus428audio.c,v retrieving revision 1.6 diff -u -r1.6 usbus428audio.c --- alsa-driver/usb/us428/usbus428audio.c 24 Oct 2003 13:58:47 - 1.6 +++ alsa-driver/usb/us428/usbus428audio.c 3 Nov 2003 10:55:24 - @@ -47,6 +47,7 @@ #include sound/core.h #include sound/info.h #include sound/pcm.h +#include sound/pcm_params.h #include sound/initval.h #include usbus428.h @@ -153,9 +154,9 @@ struct urb *urb) { unsigned long flags; - unsigned
[Alsa-devel] [PATCH]us428control.patch.0.4
Hi Takashi, please commit this with Comment: Initialize Cus428State::SelectInputMonitor in Ctor. Danke, Karsten Index: alsa-tools/us428control/Cus428Midi.cc === RCS file: /cvsroot/alsa/alsa-tools/us428control/Cus428Midi.cc,v retrieving revision 1.1 diff -u -r1.1 Cus428Midi.cc --- alsa-tools/us428control/Cus428Midi.cc 24 Oct 2003 14:01:45 - 1.1 +++ alsa-tools/us428control/Cus428Midi.cc 27 Oct 2003 19:26:10 - @@ -1,3 +1,22 @@ +/* + * + * Copyright (c) 2003 by Karsten Wiese [EMAIL PROTECTED] + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + #include alsa/asoundlib.h #include Cus428Midi.h Index: alsa-tools/us428control/Cus428Midi.h === RCS file: /cvsroot/alsa/alsa-tools/us428control/Cus428Midi.h,v retrieving revision 1.1 diff -u -r1.1 Cus428Midi.h --- alsa-tools/us428control/Cus428Midi.h 24 Oct 2003 14:01:45 - 1.1 +++ alsa-tools/us428control/Cus428Midi.h 27 Oct 2003 19:26:10 - @@ -1,3 +1,22 @@ +/* + * + * Copyright (c) 2003 by Karsten Wiese [EMAIL PROTECTED] + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + #include sound/asequencer.h #include Cus428State.h Index: alsa-tools/us428control/Cus428State.h === RCS file: /cvsroot/alsa/alsa-tools/us428control/Cus428State.h,v retrieving revision 1.2 diff -u -r1.2 Cus428State.h --- alsa-tools/us428control/Cus428State.h 24 Oct 2003 14:01:45 - 1.2 +++ alsa-tools/us428control/Cus428State.h 27 Oct 2003 19:26:10 - @@ -29,6 +29,8 @@ :us428ctls_sharedmem(Pus428ctls_sharedmem) ,MuteInputMonitor(0) ,Mute(0) + ,SelectInputMonitor(0) + ,Select(0) ,us428_ctls(0) { init_us428_lights(); Index: alsa-tools/us428control/configure.in === RCS file: /cvsroot/alsa/alsa-tools/us428control/configure.in,v retrieving revision 1.2 diff -u -r1.2 configure.in --- alsa-tools/us428control/configure.in 24 Oct 2003 14:01:45 - 1.2 +++ alsa-tools/us428control/configure.in 27 Oct 2003 19:26:10 - @@ -1,5 +1,5 @@ AC_INIT(us428control.cc) -AM_INIT_AUTOMAKE(us428control, 0.3) +AM_INIT_AUTOMAKE(us428control, 0.4) AC_PROG_CXX AC_PROG_INSTALL AC_HEADER_STDC
Re: [Alsa-devel] tascam us-122 : invalid synch pipe
Am Montag, 27. Oktober 2003 22:43 schrieb Martin Langer: On Mon, Oct 27, 2003 at 12:33:46PM +0100, Takashi Iwai wrote: At Tue, 21 Oct 2003 23:52:55 +0200, Martin Langer wrote: ... at http://www.langerland.de/us122/driver.html any chance to merge us122 driver with us428 driver? they look quite similar... Yes, a common tascam driver should be possible somehow. It's my goal to merge them together. But maybe someone else is more interested in this job than I. Karsten? Or any other volunteer? bye, martin I'll check the merge on the us428, but prefer to actually code still missing features like spdif, 24bit and MIDI-Client for the us428's lights. If somebody is willing to code the merge, would you, Takashi, setup a seperate cvs subdir alsa-driver/usb/usx2y for it? If the merge is finished, we could then discard usb/us428. And... Is it possible for the merger (and the checker ;-) to have non-anonymous cvs-access (== shorter turn around times)? I mean, just complete read-access + write-acces to alsa-driver/usb/usx2y only would be fine. regards, Karsten --- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] [Patch]snd-usb-us428.patch.0.2
Hi Takashi, This is a Bugfix (sporadic hangups solved), cosmetical treatment and feature-enhancement (Setting of PCM-Out Volume according to Mastervolume-Slider at device start). Please commit. tnx, Karsten Index: alsa-driver/usb/us428/usX2Yhwdep.c === RCS file: /cvsroot/alsa/alsa-driver/usb/us428/usX2Yhwdep.c,v retrieving revision 1.2 diff -u -r1.2 usX2Yhwdep.c --- alsa-driver/usb/us428/usX2Yhwdep.c 24 Sep 2003 16:45:10 - 1.2 +++ alsa-driver/usb/us428/usX2Yhwdep.c 23 Oct 2003 17:01:39 - @@ -93,7 +93,7 @@ return -EBUSY; /* if userspace tries to mmap beyond end of our buffer, fail */ -if (size ((PAGE_SIZE - 1 + sizeof(us428ctls_sharedmem_t)) / PAGE_SIZE) * PAGE_SIZE){ +if (size ((PAGE_SIZE - 1 + sizeof(us428ctls_sharedmem_t)) / PAGE_SIZE) * PAGE_SIZE) { snd_printd( %i %i\n, size,sizeof(us428ctls_sharedmem_t)); return -EINVAL; } @@ -103,6 +103,7 @@ if(!(us428-us428ctls_sharedmem = snd_malloc_pages(sizeof(us428ctls_sharedmem_t), GFP_KERNEL))) return -ENOMEM; memset(us428-us428ctls_sharedmem, -1, sizeof(us428ctls_sharedmem_t)); + us428-us428ctls_sharedmem-CtlSnapShotLast = -2; } area-vm_ops = us428ctls_vm_ops; #ifdef VM_RESERVED @@ -174,11 +175,11 @@ i; us428-Seq04 = 0; - if (NULL == (us428-AS04.buffer = kmalloc(URB_DataLen_AsyncSeq*URBS_AsyncSeq, GFP_KERNEL))){ + if (NULL == (us428-AS04.buffer = kmalloc(URB_DataLen_AsyncSeq*URBS_AsyncSeq, GFP_KERNEL))) { err = -ENOMEM; }else - for (i = 0; i URBS_AsyncSeq; ++i){ - if (NULL == (us428-AS04.urb[i] = usb_alloc_urb(0, GFP_KERNEL))){ + for (i = 0; i URBS_AsyncSeq; ++i) { + if (NULL == (us428-AS04.urb[i] = usb_alloc_urb(0, GFP_KERNEL))) { err = -ENOMEM; break; } @@ -219,7 +220,7 @@ int err; do { - if ((err = snd_us428_create_usbmidi(card)) 0){ + if ((err = snd_us428_create_usbmidi(card)) 0) { snd_printk(snd_us428_create_alsa_devices: snd_us428_create_usbmidi error %i \n, err); break; } @@ -238,7 +239,7 @@ if (! (us428-In04urb = usb_alloc_urb(0, GFP_KERNEL))) return -ENOMEM; - if (! (us428-In04Buf = kmalloc(21, GFP_KERNEL))){ + if (! (us428-In04Buf = kmalloc(21, GFP_KERNEL))) { usb_free_urb(us428-In04urb); return -ENOMEM; } @@ -276,15 +277,15 @@ } if (!err1 == dsp-index) do { - if ((err = snd_us428_AsyncSeq04_init((us428dev_t*)hw-private_data))){ + if ((err = snd_us428_AsyncSeq04_init((us428dev_t*)hw-private_data))) { snd_printk(snd_us428_AsyncSeq04_init error \n); break; } - if ((err = snd_us428_In04_init((us428dev_t*)hw-private_data))){ + if ((err = snd_us428_In04_init((us428dev_t*)hw-private_data))) { snd_printk(snd_us428_In04_init error \n); break; } - if ((err = snd_us428_create_alsa_devices(hw-card))){ + if ((err = snd_us428_create_alsa_devices(hw-card))) { snd_printk(snd_us428_create_alsa_devices error %i \n, err); snd_card_free(hw-card); break; Index: alsa-driver/usb/us428/usbus428.c === RCS file: /cvsroot/alsa/alsa-driver/usb/us428/usbus428.c,v retrieving revision 1.5 diff -u -r1.5 usbus428.c --- alsa-driver/usb/us428/usbus428.c 6 Oct 2003 13:15:17 - 1.5 +++ alsa-driver/usb/us428/usbus428.c 23 Oct 2003 17:01:39 - @@ -75,7 +75,7 @@ MODULE_AUTHOR(Karsten Wiese [EMAIL PROTECTED]); -MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.1); +MODULE_DESCRIPTION(TASCAM NAME_ALLCAPS Version 0.2); MODULE_LICENSE(GPL); MODULE_CLASSES({sound}); MODULE_DEVICES({{TASCAM(0x1604), NAME_ALLCAPS(0x8001) }}); @@ -131,22 +131,29 @@ us428-In04IntCalls++; - if (urb-status){ + if (urb-status) { snd_printk( Interrupt Pipe 4 came back with status=%i\n, urb-status); return; } -{ - int diff = -1, i; // printk(%i:0x%02X , 8, (int)((unsigned char*)us428-In04Buf)[8]); Master volume shows 0 here if fader is at max during boot ?!? - for (i = 0; i 21; i++) { - if (us428-In04Last[i] != ((char*)us428-In04Buf)[i]) { -if (diff 0) - diff = i; -us428-In04Last[i] = ((char*)us428-In04Buf)[i]; + if (us428ctls) { + int diff = -1; + if (-2 == us428ctls-CtlSnapShotLast) { + diff = 0; + memcpy(us428-In04Last, us428-In04Buf, sizeof(us428-In04Last)); + us428ctls-CtlSnapShotLast = -1; + } else { + int i; + for (i = 0; i 21; i++) { +if (us428-In04Last[i] != ((char*)us428-In04Buf)[i]) { + if (diff 0) + diff = i; + us428-In04Last[i] = ((char*)us428-In04Buf)[i]; +} } } - if (diff = 0us428ctls) { + if (0 = diff) { int n = us428ctls-CtlSnapShotLast + 1; if (n = N_us428_ctl_BUFS || n 0) n = 0; @@ -186,7 +193,7 @@ } } - if (err){ + if (err) { snd_printk(In04Int() usb_submit_urb err=%i\n, err); } } Index: alsa-driver/usb/us428/usbus428audio.c === RCS file: /cvsroot/alsa/alsa-driver
[Alsa-devel] [PATCH]us428control.patch.0.3
Hi Takashi, This has more features: - PCM-Volume adjusted to MasteVolumeSlider setting at device start. - Direct Monitoring Functions adjustable directly on the US428 - Alsa Sequencer Output port for applications to receive the US428 sliders etc. please add the missing files attached + commit the patch. Danke, Karsten Index: alsa-tools/us428control/Cus428State.cc === RCS file: /cvsroot/alsa/alsa-tools/us428control/Cus428State.cc,v retrieving revision 1.1 diff -u -r1.1 Cus428State.cc --- alsa-tools/us428control/Cus428State.cc 6 Oct 2003 15:57:24 - 1.1 +++ alsa-tools/us428control/Cus428State.cc 23 Oct 2003 17:01:45 - @@ -20,12 +20,14 @@ #include stdio.h #include string.h -#include Cus428State.h +#include alsa/asoundlib.h +#include Cus428Midi.h extern int verbose; -void -us428_lights::init_us428_lights() + + +void us428_lights::init_us428_lights() { int i = 0; memset(this, 0, sizeof(*this)); @@ -33,8 +35,14 @@ Light[ i].Offset = i + 0x19; } -int -Cus428State::LightSend() + +void Cus428State::InitDevice(void) +{ + SliderChangedTo(eFaderM, ((unsigned char*)(us428ctls_sharedmem-CtlSnapShot + us428ctls_sharedmem-CtlSnapShotLast))[eFaderM]); +} + + +int Cus428State::LightSend() { int Next = us428ctls_sharedmem-p4outLast + 1; if(Next 0 || Next = N_us428_p4out_BUFS) @@ -44,14 +52,8 @@ return us428ctls_sharedmem-p4outLast = Next; } -void -Cus428State::SliderChangedTo(int S, unsigned char New) +void Cus428State::SendVolume(usX2Y_volume V) { - if ((S = eFader4 || S 0) S != eFaderM) - return; - - usX2Y_volume V; - V.SetTo(S, New); int Next = us428ctls_sharedmem-p4outLast + 1; if (Next 0 || Next = N_us428_p4out_BUFS) Next = 0; @@ -60,24 +62,107 @@ us428ctls_sharedmem-p4outLast = Next; } +void Cus428State::SliderChangedTo(int S, unsigned char New) +{ + if (StateInputMonitor() S = eFader3 + || S == eFaderM) { + usX2Y_volume V = Volume[S = eFader4 ? eFader4 : S]; + V.SetTo(S, New); + if (S == eFaderM || !LightIs(eL_Mute0 + S)) + SendVolume(V); + } else + Midi.SendMidiControl(0x40 + S, ((unsigned char*)us428_ctls)[S] / 2); + +} -void -Cus428State::KnobChangedTo(eKnobs K, bool V) + +void Cus428State::KnobChangedTo(eKnobs K, bool V) { - switch (K) { - case eK_InputMonitor: - if (verbose 1) - printf(Knob InputMonitor now %i, V); + switch (K ~(StateInputMonitor() ? 3 : -1)) { + case eK_Select0: if (V) { - LightSet(eL_InputMonitor, ! LightIs(eL_InputMonitor)); + int S = eL_Select0 + (K 7); + Light[eL_Select0 / 8].Value = 0; + LightSet(S, !LightIs(S)); LightSend(); } - if (verbose 1) - printf( Light is %i\n, LightIs(eL_InputMonitor)); + break; + case eK_Mute0: + if (V) { + int M = eL_Mute0 + (K 7); + LightSet(M, !LightIs(M)); + LightSend(); + if (StateInputMonitor()) { +usX2Y_volume V = Volume[M - eL_Mute0]; +if (LightIs(M)) + V.LH = V.LL = V.RL = V.RH = 0; +SendVolume(V); + } + } break; default: - if (verbose 1) - printf(Knob %i now %i\n, K, V); + switch (K) { + case eK_InputMonitor: + if (verbose 1) +printf(Knob InputMonitor now %i, V); + if (V) { +if (StateInputMonitor()) { + SelectInputMonitor = Light[0].Value; + MuteInputMonitor = Light[2].Value; +} else { + Select = Light[0].Value; + Mute = Light[2].Value; +} +LightSet(eL_InputMonitor, ! StateInputMonitor()); +Light[0].Value = StateInputMonitor() ? SelectInputMonitor : Select; +Light[2].Value = StateInputMonitor() ? MuteInputMonitor : Mute; +LightSend(); + } + if (verbose 1) +printf( Light is %i\n, LightIs(eL_InputMonitor)); + break; + default: + if (verbose 1) +printf(Knob %i now %i\n, K, V); + Midi.SendMidiControl(K, V); + } } } + +void Cus428State::WheelChangedTo(E_In84 W, char Diff) +{ + char Param; + switch (W) { + case eWheelPan: + if (StateInputMonitor() Light[0].Value) { + int index = 0; + + while( index 4 (1 index) != Light[0].Value) +index++; + + if (index = 4) +return; + + Volume[index].PanTo(Diff, us428_ctls-Knob(eK_SET)); + if (!LightIs(eL_Mute0 + index)) +SendVolume(Volume[index]); + return; + } + Param = 0x4D; + break; + case eWheelGain: + Param = 0x48; + break; + case eWheelFreq: + Param = 0x49; + break; + case eWheelQ: + Param = 0x4A; + break; + case eWheel: + Param = 0x60; + break; + } + Midi.SendMidiControl(Param, ((unsigned char*)us428_ctls)[W]); +} Index: alsa-tools/us428control/Cus428State.h === RCS file: /cvsroot/alsa/alsa-tools/us428control/Cus428State.h,v retrieving revision 1.1 diff -u -r1.1 Cus428State.h --- alsa-tools/us428control/Cus428State.h 6 Oct 2003 15:57:24 - 1.1 +++ alsa-tools/us428control/Cus428State.h 23 Oct 2003 17:01:45 - @@ -23,24 +23,79 @@ #include Cus428_ctls.h -class Cus428State: public us428_lights, public Cus428_ctls{
[Alsa-devel] [PATCH] usbus428.c.patch_1.4_1.5
Hi Takashi, this enables DRAINING. Here it is a really bugfix for using us428 with snd alsaplayer. Please commit. What do you think about the us428control stuffs I sent you last week? best, Karsten ? .directory ? alsa-driver/cscope.files ? alsa-driver/cscope.out ? alsa-driver/usb/us428/cscope.out ? alsa-lib/cscope.files Index: alsa-driver/usb/us428/usbus428audio.c === RCS file: /cvsroot/alsa/alsa-driver/usb/us428/usbus428audio.c,v retrieving revision 1.3 diff -u -r1.3 usbus428audio.c --- alsa-driver/usb/us428/usbus428audio.c 30 Sep 2003 08:54:47 - 1.3 +++ alsa-driver/usb/us428/usbus428audio.c 5 Oct 2003 19:10:30 - @@ -401,13 +401,15 @@ } if (pcm_captsubs) - if (pcm_captsubs-runtime-status-state == SNDRV_PCM_STATE_RUNNING) + if (pcm_captsubs-runtime-status-state == SNDRV_PCM_STATE_RUNNING + || pcm_captsubs-runtime-status-state == SNDRV_PCM_STATE_DRAINING) runtime = pcm_captsubs-runtime; if (NULL == runtime){ snd_us428_substream_t *playsubs = captsubs-stream-substream + SNDRV_PCM_STREAM_PLAYBACK; snd_pcm_substream_t *pcm_playsubs = playsubs-pcm_substream; if (pcm_playsubs) - if (pcm_playsubs-runtime-status-state == SNDRV_PCM_STATE_RUNNING) + if (pcm_playsubs-runtime-status-state == SNDRV_PCM_STATE_RUNNING + || pcm_playsubs-runtime-status-state == SNDRV_PCM_STATE_DRAINING) runtime = pcm_playsubs-runtime; }
[Alsa-devel] us428control 0.0.2 for alsa-tools
Hi Takashi, please review this one. It is definitly needed to make use of the US-428. thanks, Karsten us428control.0.0.2.tar.bz2 Description: application/tbz
[Alsa-devel] usbus428.c.patch_1.3_1.4
Hi Takashi, this makes it work again! ciao, Karsten Index: alsa-driver/usb/us428/usbus428.c === RCS file: /cvsroot/alsa/alsa-driver/usb/us428/usbus428.c,v retrieving revision 1.3 diff -u -r1.3 usbus428.c --- alsa-driver/usb/us428/usbus428.c 24 Sep 2003 16:45:10 - 1.3 +++ alsa-driver/usb/us428/usbus428.c 25 Sep 2003 09:29:07 - @@ -169,15 +169,12 @@ int j, send = us428ctls-p4outSent + 1; if (send = N_us428_p4out_BUFS) send = 0; -while (us428ctls-p4out[send].type == eLT_Light send != us428ctls-p4outLast) - if (++send = N_us428_p4out_BUFS) - send = 0; for (j = 0; j URBS_AsyncSeq; ++j) if (0 == us428-AS04.urb[j]-status) { us428_p4out_t *p4out = us428ctls-p4out + send; // FIXME if more then 1 p4out is new, 1 gets lost. usb_fill_bulk_urb(us428-AS04.urb[j], us428-chip.dev, usb_sndbulkpipe(us428-chip.dev, 0x04), p4out-vol, - p4out-type == eLT_Light ? sizeof(us428_lights_t) : sizeof(usX2Y_volume_t), + p4out-type == eLT_Light ? sizeof(us428_lights_t) : 5, snd_us428_Out04Int, us428); #ifdef OLD_USB us428-AS04.urb[j]-transfer_flags = USB_QUEUE_BULK; @@ -225,7 +222,7 @@ for (dev = 0; dev SNDRV_CARDS; ++dev) if (enable[dev] !snd_us428_card_used[dev]) - return NULL; + break; if (dev = SNDRV_CARDS) return NULL;
Re: [Alsa-devel] tascam us-122 : invalid synch pipe
--- Werner Schweer [EMAIL PROTECTED] schrieb: Hello, i'm unable to get a tascam us-122 usb audio/midi box working. This device is supported by ALSA us428 driver. Trying alsaplayer and MusE both return an error on setting the pcm hw params: ALSA lib pcm_hw.c:324:(snd_pcm_hw_hw_params) SNDRV_PCM_IOCTL_HW_PARAMS failed: Invalid argument The kernel log says: Sep 25 16:40:58 t10 vmunix: ALSA usbaudio.c:1108: 7:0:1 : invalid synch pipe I am using current (todays) ALSA cvs and linux 2.4.23pre4. What i'm doing wrong? nothing, except snd-usb-us428 is not yet capable of handling the us122. You are shure it was loaded? Would wonder how that would happen. I'd need hands on an us122 to support it in snd-usb-us428. regards, Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Logos und Klingeltöne fürs Handy bei http://sms.yahoo.de --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] usx2yloader 0.3
Hallo Takashi, here is a patch which sports complete us428 initialisation via hotplug, an INSTALL and a README. I took the phase 1 firmware files from usb-midi-firmware project. Also fixed are some compile warnings. Maybe the Makefile.am is not completely correct as I hardcoded the directory /etc/hotplug/usb. But maybe also this is the standard place to put such hotplug files? Wellhere it works. Please put the stuffs to CVS. The driver from CVS also works here. Thanks, Karsten usx2yloader adds for 0.3.tar.bz2 Description: application/tbz Index: Makefile.am === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/Makefile.am,v retrieving revision 1.1 diff -u -r1.1 Makefile.am --- Makefile.am 8 Sep 2003 11:12:31 - 1.1 +++ Makefile.am 18 Sep 2003 20:08:53 - @@ -11,6 +11,11 @@ EXTRA_DIST = depcomp +hotplug_files = tascam_fw.usermap tascam_fw tascam_fpga +hotplugdir = /etc/hotplug/usb +hotplug_SCRIPTS = $(hotplug_files) + + alsa-dist: distdir @rm -rf ../distdir/usx2yloader @mkdir -p ../distdir/usx2yloader Index: configure.in === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/configure.in,v retrieving revision 1.1 diff -u -r1.1 configure.in --- configure.in 8 Sep 2003 11:12:31 - 1.1 +++ configure.in 18 Sep 2003 20:08:53 - @@ -1,5 +1,5 @@ AC_INIT(usx2yloader.c) -AM_INIT_AUTOMAKE(usx2yloader, 0.2) +AM_INIT_AUTOMAKE(usx2yloader, 0.3) AC_PROG_CC AC_PROG_INSTALL AC_HEADER_STDC Index: usx2yloader.c === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/usx2yloader.c,v retrieving revision 1.1 diff -u -r1.1 usx2yloader.c --- usx2yloader.c 8 Sep 2003 11:12:31 - 1.1 +++ usx2yloader.c 18 Sep 2003 20:08:54 - @@ -63,15 +63,17 @@ /* - * read a xilinx bitstream file + * read a xilinx bitstream file. + * NOTE: This interprets somehow differently from the vxloaders read_xilinx_image()! + * I took this from rbtload.c of the project usb-midi-fw.sf.net. */ static int read_xilinx_image(snd_hwdep_dsp_image_t *img, const char *fname) { FILE *fp; char buf[256]; - int data, c, idx, length; + int data = 0, c = 0, idx = 0, length = 0; char *p; - char *imgbuf; + char *imgbuf = 0; if ((fp = fopen(fname, r)) == NULL) { fprintf(stderr, PROGNAME : cannot open %s\n, fname); @@ -79,10 +81,6 @@ } snd_hwdep_dsp_image_set_name(img, fname); - c = 0; - data = 0; - idx = 0; - length = 0; while (fgets(buf, sizeof(buf), fp)) { if (strncmp(buf, Bits:, 5) == 0) { for (p = buf + 5; *p isspace(*p); p++); @@ -140,15 +138,13 @@ } } } - if (c) - imgbuf[idx++] = data; - if (idx != length) { - fprintf(stderr, - PROGNAME : length doesn't match: %d != %d\n, idx, - length); + if (idx != length || 0 == imgbuf) { + fprintf(stderr, PROGNAME : length doesn't match: %d != %d\n, idx, length); fclose(fp); return -EINVAL; } + if (c) + imgbuf[idx++] = data; snd_hwdep_dsp_image_set_length(img, length); snd_hwdep_dsp_image_set_image(img, imgbuf); fclose(fp); @@ -223,7 +219,6 @@ len = strlen(temp); while (fgets(buf, sizeof(buf), fp)) { - int prepad; if (strncmp(buf, temp, len)) continue; @@ -303,7 +298,7 @@ { snd_hwdep_t *hw; const char *id; - int err, is_pcmcia; + int err; unsigned int idx, dsps, loaded; snd_hwdep_dsp_status_t *stat; Index: firmware/Makefile.am === RCS file: /cvsroot/alsa/alsa-tools/usx2yloader/firmware/Makefile.am,v retrieving revision 1.1 diff -u -r1.1 Makefile.am --- firmware/Makefile.am 8 Sep 2003 11:12:31 - 1.1 +++ firmware/Makefile.am 18 Sep 2003 20:08:54 - @@ -1,5 +1,4 @@ -cfg_files = us428.conf us428.prepad us428.rbt - +cfg_files = us428.conf us428.prepad us428.rbt tascam_loader.ihx us428fw.ihx EXTRA_DIST = $(cfg_files) firmwaredir = $(datadir)/alsa/firmware
[Alsa-devel] Re: /alsa-tools-0.9.6/us428controls 0.1
Am Montag 08 September 2003 13:19 schrieb Takashi Iwai: At Sat, 6 Sep 2003 16:51:46 +0200, Karsten Wiese wrote: [1 text/plain; us-ascii (7bit)] Hi, intended to be started from hotplug script, us428controls so far enables the sliders 1..4 for setting directmonitoring levels. It also takes care of the red Mastervolume slider. this app can be expanded to fully enable all of the sliders+knobs. in userspace it is easier to recover from errors do you think this version to be put on alsa-tools package, too? then i'll review the code... no need to put this version on alsa-tools package. Here is already a more capable one. I'll send it, when I tested it with the CVS-built module. Or on request, if someone likes to test-drive :-) regards, Karsten --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] [PATCH]usbus428 0.1 against alsa-driver-0.9.6
Hi, this uses hwdep 2 fold: a) second stage firmware download b) interface for us428control - aplication no alsa-mixer interface yet, sorry. but: with us428control you can use the us428's sliders to set direct monitoring levels and pcm-out level. I chose to integrate a userspace tool, so further needed steps for the us428's knobs sliders can be done in userspace until all is sorted out. see us428control usX2Yloader in the following e-mails. have fun, Karsten alsa-driver-0.9.6+usbus428_0.1.diff.bz2 Description: BZip2 compressed data
[Alsa-devel] usx2yloader 0.2
small modifications. copy tascam-fpga to your /etc/hotplug/usb after setiing up from usb-midi-fw.sf.net for more necessary infrastructur. have fun, Karsten usX2Yloader.tar.bz2 Description: application/tbz
[Alsa-devel] /alsa-tools-0.9.6/us428controls 0.1
Hi, intended to be started from hotplug script, us428controls so far enables the sliders 1..4 for setting directmonitoring levels. It also takes care of the red Mastervolume slider. this app can be expanded to fully enable all of the sliders+knobs. in userspace it is easier to recover from errors for hotplug-starting this, copy tascam-fpga to your /etc/hotplug/usb after setiing up from usb-midi-fw.sf.net for more necessary infrastructur. regards, Karsten us428control.tar.bz2 Description: application/tbz
[Alsa-devel] [PATCH]alsa-driver-0.9.6/acore/hwdep.c
Hi, I'm trying the hwdep interface with poll(). looking for reasons why removal of USB-device caused bad MAGIC in hwdep.c, I found this solution: PATCH --- alsa-driver-0.9.6/acore/hwdep.c 2003-07-30 01:01:23.0 +0200 +++ alsa-driver-0.9.6-patched/acore/hwdep.c 2003-09-04 17:45:59.0 +0200 @@ -133,9 +133,14 @@ set_current_state(TASK_RUNNING); remove_wait_queue(hw-open_wait, wait); if (err = 0) { + err = snd_card_file_add(hw-card, file); + if (err 0) + return -ENODEV; + file-private_data = hw; hw-used++; } + up(hw-open_mutex); return err; } @@ -151,6 +156,7 @@ } if (hw-used 0) hw-used--; + snd_card_file_remove(hw-card, file); up(hw-open_mutex); return -ENXIO; } /PATCH Also in Web-CVS this part of the code seams not to have the snd_card_file* calls. It works for me here. If it is correct, please apply! regards, Karsten --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] Re: Tascam USx2x Audio
Am Sonntag 31 August 2003 10:39 schrieb Martin Langer: On Wed, Aug 20, 2003 at 08:29:12PM +0200, Karsten Wiese wrote: would you try the us428 audio part on the us122? Yes, I've tried it out and capturing runs perfect. Playback is ok if you do it not longer than 5 seconds or so. Then speed becomes slower and sloooweeer and it sounds terrible croaky from there on. I guess that's the sync problem you mentioned. you have built your module with debug=full? can you then do something like this in a console: dmesg -c aplay file until sound starts getting croaky then immediately conrol+c dmesgdmesgfile and then send dmesgfile to me? also please attach a lsusb of the us122. and the changes you applied for this test. (Just for Information the lsusb of the us428 here gives: Bus 001 Device 003: ID 1604:8001 Tascam US-428 Audio/Midi Controller Language IDs: none (invalid length string descriptor bf; len=0) Device Descriptor: bLength18 bDescriptorType 1 bcdUSB 1.00 bDeviceClass0 Interface bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize064 idVendor 0x1604 Tascam idProduct 0x8001 US-428 Audio/Midi Controller bcdDevice0.01 iManufacturer 0 iProduct0 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 183 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x40 Self Powered MaxPower0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber0 bAlternateSetting 0 bNumEndpoints 5 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes2 Transfer TypeBulk Synch Type none wMaxPacketSize 64 bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes3 Transfer TypeInterrupt Synch Type none wMaxPacketSize 21 bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes2 Transfer TypeBulk Synch Type none wMaxPacketSize 64 bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes2 Transfer TypeBulk Synch Type none wMaxPacketSize 64 bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes2 Transfer TypeBulk Synch Type none wMaxPacketSize 64 bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber0 bAlternateSetting 1 bNumEndpoints 8 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes2 Transfer TypeBulk Synch Type none wMaxPacketSize 64 bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes3 Transfer TypeInterrupt Synch Type none wMaxPacketSize 21 bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes2 Transfer TypeBulk Synch Type none wMaxPacketSize 64 bInterval 0 Endpoint Descriptor: bLength 7
[Alsa-devel] Fwd: [usb-midi-fw-devel] proposal concerning cooperation of snd-usb-usx2x.o and rbtload
*/ /* i = usb_device(usbdev)-config[configuration].interface[interface]. */ /* altsetting[altsetting].bInterfaceNumber; */ /* if (usb_claim_interface(usbdev, i) 0) { */ /* fprintf(stderr, PROGNAME : USB Error %s\n, */ /* usb_strerror()); */ /* exit(EXIT_FAILURE); */ /* } */ /* // set alternate interface */ /* i = usb_device(usbdev)-config[configuration].interface[interface]. */ /* altsetting[altsetting].bAlternateSetting; */ /* if (usb_set_altinterface(usbdev, i) 0) { */ /* fprintf(stderr, PROGNAME : USB Error %s\n, */ /* usb_strerror()); */ /* exit(EXIT_FAILURE); */ /* } */ return usbdev; } void download_image(usb_dev_handle * usbdev, int pipe, byte * imgbuf, int length, int timeout) { int ret; int todo; int pos = 0; if (!imgbuf || !length) { fprintf(stderr, PROGNAME : invalid download_image params\n); exit(EXIT_FAILURE); } while (pos length) { todo = 0x1000; if ((length - pos) todo) todo = (length - pos); { struct usbdevfs_ioctl io = {0,IOCTL_USx2x_OUT_PIPE2(todo), imgbuf+pos}; ret = ioctl( *(int*)usbdev, USBDEVFS_IOCTL, io); } if (ret) { perror( PROGNAME : USB Error); exit(EXIT_FAILURE); } //printf(.); fflush(stdout); pos += todo; } //printf(\n); } int main(int argc, char *argv[]) { char *firmware_path = 0; char *device_path = getenv(DEVICE); int prepadding = 0; int endpoint = 2; int interface = 0; int configuration = 0; int altsetting = 0; int timeout = 1000; int configuration_length = 0; int opt; byte *configuration_data; byte *pad_data; usb_dev_handle *usbdev = NULL; while ((opt = getopt(argc, argv, hvVD:I:i:c:a:e:p:t:)) != EOF) switch (opt) { case 'D': device_path = optarg; break; case 'I': firmware_path = optarg; break; case 'V': puts(RBTLOAD_VERSION); return 0; case 'v': verbose++; break; case 'i': interface = atoi(optarg); break; case 'c': configuration = atoi(optarg); break; case 'a': altsetting = atoi(optarg); break; case 'e': endpoint = atoi(optarg); break; case 'p': prepadding = atoi(optarg); break; case 't': timeout = atoi(optarg); break; case 'h': default: usage(); } if (!device_path) { fputs(PROGNAME : no device specified!\n, stderr); usage(); } if (!firmware_path) { fputs(PROGNAME : missing firmware file name!\n, stderr); usage(); } configuration_data = read_xilinx_image(firmware_path, configuration_length); usbdev = usb_find_device(device_path, configuration, interface, altsetting); if (prepadding) { pad_data = malloc(prepadding); memset(pad_data, 0, prepadding); download_image(usbdev, endpoint, pad_data, prepadding, timeout); } download_image(usbdev, endpoint, configuration_data, configuration_length, timeout); { struct usbdevfs_ioctl io = {0,IOCTL_USx2x_START_ALSA, NULL}; if(ioctl( *(int*)usbdev, USBDEVFS_IOCTL, io)); perror( ioctl!); } // close USB handle if (usb_close(usbdev) 0) { fprintf(stderr, PROGNAME : USB Error %s\n, usb_strerror()); return EXIT_FAILURE; } return EXIT_SUCCESS; } #ifndef USBUS428IOCTL_H #define USBUS428IOCTL_H #include linux/ioctl.h #define IOCTL_USx2x_OUT_PIPE2(len) _IOC(_IOC_WRITE,'U',0,len) #define IOCTL_USx2x_START_ALSA _IO('U', 1) #define IOCTL_USx2x_STOP_ALSA _IO('U', 2) #endif /* * usbus428.c - ALSA USB US-428 Driver * 2003-08-22 Karsten Wiese Version 0.0.8: Removed EZUSB Firmware. First Stage Firmwaredownload is now done by tascam-firmware downloader. See: http://usb-midi-fw.sourceforge.net/tascam-firmware.tar.gz 2003-06-18 Karsten Wiese Version 0.0.5: changed to compile with kernel 2.4.21 and alsa 0.9.4 2002-10-16 Karsten Wiese Version 0.0.4: compiles again with alsa-current. USB_ISO_ASAP not used anymore (most of the time), instead urb-start_frame is calculated here now, some calls inside usb-driver don't need to happen anymore. To get the best out of this: Disable APM-support in the kernel as APM-BIOS calls (once each second) hard disable interrupt for many precious milliseconds. This helped me much on my slowish PII 400 PIII 500. ACPI yet untested but might cause the same bad behaviour. Use a kernel with lowlatency and preemptiv patches applied. To autoload snd-usb-midi append a line post-install snd-usb-us428 modprobe snd-usb-midi to /etc/modules.conf. known problems: sliders, knobs, lights not yet handled except MASTER Volume slider. pcm -c 2 doesn't work. pcm -c 2 -m direct_interleaved does. KDE3: Enable full duplex operation deadlocks. 2002-08-31 Karsten Wiese Version 0.0.3: audio also simplex; simplifying: iso urbs only 1 packet, melted structs. ASYNC_UNLINK not used anymore: no more crashes so far. for alsa 0.9 rc3. 2002-08-09 Karsten Wiese Version 0.0.2: midi works with snd-usb-midi, audio (only fullduplex now) with i.e. bristol. The firmware has been sniffed from win2k us-428 driver 3.09
[Alsa-devel] Re: [usb-midi-fw-devel] proposal concerning cooperation of snd-usb-usx2x.o and rbtload
Am Freitag 29 August 2003 17:34 schrieb Pedro Lopez-Cabanillas: El Jueves, 28 de Agosto de 2003 23:52, Karsten Wiese escribió: when a hotplug occurs (EZUSB Firmware not being looked at here, works as before), the kernel 1.) asks snd-usb-us428.o, if it wants to have the device. snd-usb-us428.o says 'yes!'. this latest snd-usb-us428.o will not start any ALSA-Activity in this stage. It just owns the interface to the us428 (and implements 2 new ioctl-able entriepoints). ...assuming that your module (snd-usb-us428) is already loaded, or it is statically linked into the kernel. Anyway, hotplug will load the module if it's not loaded yet. 2.) starts rbtload (by means of the hotplug-scripts) to download the fpga code. this hacked rbtload does the download by means of standard ioctl() - calls to snd-usb-us428.o. Thus we don't need libusb here anymore. (libusb is still used here for minimizing changing efforts.) if download is finished, snd-usb-us428.o ALSA-Activities are started by another ioctl to snd-usb-us428.o. Result: us428 works as before. What do you think about setting up a 0.2 this way? Not sure. You explained what you are doing, but not why you are doing that. I don't have a us428 or us122 here, so I can't test it myself. I can guess that there is a problem if you try to use rbtload when the kernel driver is already loaded locking the USB interface, and forces rbtload to fail. Another issue is that rbtload can be rewritten without libusb at all. But perhaps you have found some other issues. A good starting point could be to share your concerns, and after that we can try to find the best solution for them. Of course we can arrive to the conclusion that your hack is the best solution at all, but please: let's talk first. the sequence first 'Module load' then 'hotplug script start' is hardcoded in the kernel's usb.c. Before FPGA download, the usx2x dont work. So it is useless to start ALSA-activities at this stage. None the less the module has to say 'YES, I want the device' now. (Maybe there are other ways for an USB-module to get attached to their device(s) but I could not find them.) The usx2x keep their USB ProductIDs after the FPGA load, so the kernel doesn't see a 'new' device and thus wont ask the module again. We know rbtload_0.1 can't download with a module owning the target (interface claim must fail). So before rbtload getting involved, we could unload the module, rbtload and load the module again? Yes, but what if there where more then 1 usx2x attached to the system? unload would fail, if 1 usx2x would be in use. some minutes break Just received an email from Takashi. He asks why not do it like he did it before for the vx interfaces. I found the driver code. The firmware downloader vxloader is part of alsa-tools. as far as i can see it works like I outlined above, except that ALSA already has a sceleton for this purpose. If you are curious, grep for snd_hwdep_dsp_image_t. Now I think I'll make use of that so called 'hardware dependant interface' in the us428 module. Then there should be rbtload 0.2 using this interface from userspace to download the firmware and actually start the ALSA-functions of the usx2x. regards, Karsten --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] Re: [linux-usb-devel] uhci.c Fix for an UHCI error -EILSEQ on a VIA Controller during BULK IN transfer
On Sat, 23 Aug 2003, Wolfgang Mes wrote: On Fri, 22 Aug 2003, Karsten Wiese wrote: the FIX is to initialise status in uhci_submit_bulk() like this: /* 3 errors if there is a timeout else 0; UHCI Spec says: 0 == unlimited errors VIA-chip 1106:3038 needs 0 for urbs that should not timeout! */ status = TD_CTRL_ACTIVE | ((urb-timeout ? 3 : 0) TD_CTRL_C_ERR_SHIFT); I have seen these sort of errors when there was an EMI spike. I got this with a device which is self powered and has a connection to the ground of the power supply cable. The spike was induced in the ground loop of PC, device and USB cable. This spike maybe last 10 ms. If an USB transfer gets no NAK from the device due to the spike, the transfer is retried and the error count decremented. My VIA controller does all 3 retries very fast, back-to-back. So the third try timed out before the spike was gone. I was just going to write a similar reply. IMHO this is an issue which is generally underestimated. Any long-living transfer might run into this problem. F.e. if there is an INT IN scheduled to poll some input activity, this transfer might be active for seconds, minutes or even longer. All it needs is three spikes on the wire to make the urb failing with EILSEQ. Ok, seems VIA does the retries fast enough so a single spike could be sufficient. This explains why this is sometimes seen with VIA but not Intel. However the issue is still there anyway. It's just depending on how noisy the environment is. IMHO it's the drivers job to be prepared to get these errors and recover appropriately. IIRC there is also an Application Note on Cypress' website describing this issue and how driver should be prepared to handle this, particularly for long-living transfers. I think it would be wise to add another level of retries on top of the controller timeout, in the HCD. If you have no HCD support for this sort of failure, you can try to use a kernel timer and retry the URB from within your driver. (Note that for this to work, the device must be able to resend the information from the last transfer). Not sure about this. This might get pretty messy with queued requests. IMHO when the urb gets stopped due to error retry count reached, the HCD should just stop further urbs queued for this endpoint and let the driver recover. You are right: The USB device is self powered. Measuring the passed usb-frames versus urb errors, I found about 80ms from one C_ERR decrease to the next. If I simply insert the power adapter the other way round, this rate drops to 1ms and lower. So it is my noisy hardware letting those urbs fail. A sensible patch would enable HCDs to log a warning if the amount of C_ERR decreases per time surpassed a certain value. If C_ERR decreases stayed below that certain value, the failing urb might also be resubmitted without bothering the higherlevel-driver. Thanks! Karsten --- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] uhci.c Fix for an UHCI error -EILSEQ on a VIA Controller during BULK IN transfer
hi Maintainers, I'm developing a driver for the tascam us428 audio/midi controller. it works on intel USB BX440 Host controller, but has problems with one VIA USB Controller (others unknown). kernel is 2.4.21. module is uhci. (usb-uhci behaves similarly.) the error shows up like this: uhci.c: uhci_result_interrupt/bulk() failed with status 44 [cf7a50c0] link (0f7a5092) element (02ecf1e0) 0: [c2ecf1e0] link (0001) e0 IOC Stalled CRC/Timeo Length=7ff MaxLen=3f DT0 EndPt=6 Dev=2, PID=69(IN) (buf=0e01cc54) the FIX is to initialise status in uhci_submit_bulk() like this: /* 3 errors if there is a timeout else 0; UHCI Spec says: 0 == unlimited errors VIA-chip 1106:3038 needs 0 for urbs that should not timeout! */ status = TD_CTRL_ACTIVE | ((urb-timeout ? 3 : 0) TD_CTRL_C_ERR_SHIFT); the urb in question should stay in the queue until the extern midi device submits an event. It seams intels HC ignores the spec, while Via's obeys here? Please apply the fix in uhci.c, usb-uhci.c and for 2.6! thanks, karsten some details: lspci -n for the VIA Board: 00:00.0 Class 0600: 1106:0691 (rev c4) 00:01.0 Class 0604: 1106:8598 00:07.0 Class 0601: 1106:0686 (rev 40) 00:07.1 Class 0101: 1106:0571 (rev 06) 00:07.2 Class 0c03: 1106:3038 (rev 1a) 00:07.3 Class 0c03: 1106:3038 (rev 1a) 00:07.4 Class 0680: 1106:3057 (rev 40) 00:07.5 Class 0401: 1106:3058 (rev 50) 00:09.0 Class 0100: 1000:000f (rev 03) 00:0a.0 Class 0200: 8086:1229 (rev 08) 01:00.0 Class 0300: 1002:4c42 (rev dc) lspci -v for the VIA Board: 00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4) Flags: bus master, medium devsel, latency 8 Memory at e000 (32-bit, prefetchable) [size=32M] Capabilities: available only to root 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] (prog-if 00 [Normal decode]) Flags: bus master, 66Mhz, medium devsel, latency 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: c000-cfff Memory behind bridge: e200-e3ff Capabilities: available only to root 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40) Subsystem: VIA Technologies, Inc. VT82C686/A PCI to ISA Bridge Flags: bus master, stepping, medium devsel, latency 0 Capabilities: available only to root 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586/B/686A/B PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP]) Subsystem: VIA Technologies, Inc. VT8235 Bus Master ATA133/100/66/33 IDE Flags: bus master, medium devsel, latency 32 I/O ports at d000 [size=16] Capabilities: available only to root 00:07.2 USB Controller: VIA Technologies, Inc. USB (rev 1a) (prog-if 00 [UHCI]) Subsystem: VIA Technologies, Inc. (Wrong ID) USB Controller Flags: bus master, medium devsel, latency 32, IRQ 5 I/O ports at d400 [size=32] Capabilities: available only to root 00:07.3 USB Controller: VIA Technologies, Inc. USB (rev 1a) (prog-if 00 [UHCI]) Subsystem: VIA Technologies, Inc. (Wrong ID) USB Controller Flags: bus master, medium devsel, latency 32, IRQ 5 I/O ports at d800 [size=32] Capabilities: available only to root 00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) Subsystem: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] Flags: medium devsel, IRQ 9 Capabilities: available only to root 00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50) Subsystem: VIA Technologies, Inc. VT82C686 AC97 Audio Controller Flags: medium devsel, IRQ 10 I/O ports at dc00 [size=256] I/O ports at e000 [size=4] I/O ports at e400 [size=4] Capabilities: available only to root 00:09.0 SCSI storage controller: LSI Logic / Symbios Logic 53c875 (rev 03) Flags: bus master, medium devsel, latency 134, IRQ 11 I/O ports at e800 [size=256] Memory at e4202000 (32-bit, non-prefetchable) [size=256] Memory at e4201000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at unassigned [disabled] [size=64K] 00:0a.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) Subsystem: Intel Corp. EtherExpress PRO/100+ Management Adapter Flags: bus master, medium devsel, latency 32, IRQ 10 Memory at e420 (32-bit, non-prefetchable) [size=4K] I/O ports at ec00 [size=64] Memory at e400 (32-bit, non-prefetchable) [size=1M] Expansion ROM at unassigned [disabled] [size=1M] Capabilities: available only to root 01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage LT Pro AGP-133 (rev dc) (prog-if 00 [VGA]) Subsystem: ATI Technologies Inc Rage LT Pro AGP 2X Flags: bus master, stepping, medium
Re: [Alsa-devel] usbus428 0.0.7 patch against release alsa-driver 0.9.6 (was Re: tascam gives a go for us428 @ alsa ...)
Am Mittwoch 20 August 2003 19:58 schrieb Martin Langer: On Thu, Aug 07, 2003 at 04:44:08PM +0200, Takashi Iwai wrote: At Wed, 30 Jul 2003 21:33:37 +0200, Karsten Wiese wrote: i agree that its a reasonable goal to integrate the us428 audio part into ALSA usb-audio. is there such a mechanism to syncronize the playback-pipe by the capture-pipe allrteady in usb-audio.c? the us428 definitly needs such a beast. i'm not sure what you mean here, but i guess it's not implemented. (is it a standard USB audio feature? if not, we don't have it :) Stupid question: Why do we need synchronisation?? to avoid crackles in Audio Out. goal: feeding Audio Out exactly as many frames as it can digest. Isn't it the job of the FPGA? We know that each signal is routed across the FPGA and that's why the config data should be loaded into for standalone usage or nothing will work on our USxxx. Without an internal synchronisation there would be no standalone usage possible or do I make a mistake here. What do you mean with standalone usage? What about removing synchronisation stuff and replacing it with some talking to the FPGA buffer??? I guess that will not fit into USB AUDIO class, but anyhow my USxxx is vendor specififc. how would you do that? You have the 122s circuit diagram? What I know so far is: there are no crackles in audio anymore if we feed Audio Out at exactly the frame-rate we have received from Audio In just before. this is what I mean by synchronisation. would you try the us428 audio part on the us122? I could send you a special version for 2 Audio Ins 2 Audio Outs. We could then build a snd-usb-usx2x module ;-) None the less you'd first have to extract the second stage firmware. have you already? karsten --- This SF.net email is sponsored by Dice.com. Did you know that Dice has over 25,000 tech jobs available today? From careers in IT to Engineering to Tech Sales, Dice has tech jobs from the best hiring companies. http://www.dice.com/index.epl?rel_code=104 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] usbus428 0.0.7 patch against release alsa-driver 0.9.6 (was Re: tascam gives a go for us428 @ alsa ...)
Am Donnerstag 14 August 2003 22:20 schrieb Martin Langer: On Tue, Aug 12, 2003 at 09:19:40PM +0200, Martin Langer wrote: Success. US122 behaves like a normal ezusb device. And the whole USx2x family is using the same loader. I think we are at a point where we can remove that firmware stuff of us428fw8000.h and use fxload with an extracted firmware. Ok, a final test on us428 should be done before. Pedro's Tascam USx2x extractor/loader is already here and Clemens is on the way to create an sf project for this wonderful ezusb stuff for MidiSport, Tascam devices (and maybe more in the future). Hi us428, here you can find that Tascam EZUSB firmware extractor prerelease: http://langerland.de/us122/tascam-firmware.tar.bz2 martin Success with US-428 here ( @ PlanetCCRMA 2.4.21-ck3 PIII BX440 laptop) also! a summer breaze :-) usbus428 0.0.8 patch soon to follow. karsten --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] usbus428 0.0.7 patch against release alsa-driver 0.9.6 (was Re: tascam gives a go for us428 @ alsa ...)
while we're in here: i'm looking at the code now and have some questions / suggestions to Karsten: * the comments in usbus428.c looks like the GPL/BSD dual license but MODULE_LICENSE() is defined as GPL. is it correct? i mean MODULE_LICENSE() is defined as GPL. example solely GPL header please? * what's the reason of the independent snd-usb-us428-dl module? this module seems doing only feeding the firmware to the interface, so why not in snd-usb-us428 itself? this will reduce the use of inter_module_* stuffs which are obsolete in 2.6 kernels. since Pedro's tascam-firmware loader works, there is only one reason to have a separate module: it can be unloaded to free memory. i'll reentegrate the 8001 firmware into the usb-us428 module for 2.6 reasons. maybe with the FPGA downloader stuff, Martin has mentioned, we can get rid of firmware in module at all? for now: which is the (2.6-)way to tell the kernel that a module's static const variable is pageable / can be swaped out to preserve memory? * usbus428ctls.c defines mmap co. they still be needed? could they be replaced with the standard ALSA control API? (btw, P_us428ctls_sharedmem_u may be unalighed to the page when allocated via kmalloc(). so the mmap code looks buggy for me anyway. also, please avoid virt_to_phys() as much as possible. this is architecture dependent, and won't run on non-x86 well.) notice please the us-428 knobs/sliders events can only be received by an application in a sense like a users interface. so we have a difference here to standard mixer-like controls (opposite direction)? mmh yes: they are comparable to the laptop's volume knobs..except most of them would trigger some app's filters instead of a chip's hardware directly... should i investigate that further? alsa-lib can help ? or: how do i register/operate an alsa-sequencer midi-port from userspace? which is the kernel function to obtain aligned memory for mmap? * 64bit division macros can be found in pcm.h. the asm codes in usbus428audio.c can be removed. * there are still GCC-style of structs initialization in some parts :) * please follow the coding style described in linux/Documentation/ CodingStyle. spaces after a (open) parenthesis are not common... (i know it's a matter of tastes, but we should keep the consistent style if possible.) also, debug codes which are obviously unnecessary any more should be removed in the release source codes. * you don't need to modify configure stuff but just add the following to alsa-driver/utils/Modules.dep and run cvscompile again: %dir linux/sound/usb snd-usb-us428-dl |snd-usb-us428 snd-usb-audio snd-usb-us428-dl will obey. thanks! Takashi lots of ?. thanks! Karsten --- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa0013ave/direct;at.aspnet_072303_01/01 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] usbus428 0.0.7 patch against release alsa-driver 0.9.6 (was Re: tascam gives a go for us428 @ alsa ...)
this is part 2 of the patch: the firware files. alsa-driver-0.9.6+usbus428.2.diff.tar.bz2 Description: application/tbz
[Alsa-devel] usbus428 0.0.7 patch against release alsa-driver 0.9.6 (was Re: tascam gives a go for us428 @ alsa ...)
Am Montag 05 Mai 2003 15:14 schrieb Takashi Iwai: Hi, At Wed, 30 Apr 2003 13:56:34 +0200, karsten wrote: ... if I understand this http://www.tascam.com/forums/showthread.php?s=threadid=28584 correctly. please have a look at administrator Jims post near the bottom and tell me, if you agree to include our us428 driver in alsa. we would split the driver in two parts then, audio/midi handling and firmware. great! could you send the patch again (the one to the latest cvs version is preferred)? the current ALSA usb-audio driver has more generic layer to absorb the device specific part, so perhaps we can integrate the tascam driver more smoothly. thanks, Takashi this is part 1 of usbus428 0.0.7 patch against release alsa-driver 0.9.6. i hope 0.9.6 is still pretty close to CVS. this works for me on a planet ccrma rh9 box with 2.4.21-ck3 kernel. so far only on a laptop with bx440 chipset. my via pIII box has shown usb-problems and crackling sound with this. (anybody any ideas?) new here is: - both firmware-downloads are handled now by the snd-usb-us428-dl module (this functionality should move further on into userspace via libusb ? volunteers?) - pcm capturing using one device with all 4 channels works - good for jack - beginning of an userspace application interface for controll communication. (there is a very early implementation that can start stop ardour using those knobs; erm actually not in this patch..still needs some polishing..) my working configure invocation was: ./configure --with-cards=via82xx,msnd-pinnacle,usb-audio,usb-us428,usb-us428-dl,es1968 --with-kernel=/home/ka/kernel/linux-2.4.21 --with-debug=full and it will most propably not run on one of the other tascam usb devices. and yes, the midi i/o should also still tick by virtue of snd-usb-audio :-) i agree that its a reasonable goal to integrate the us428 audio part into ALSA usb-audio. is there such a mechanism to syncronize the playback-pipe by the capture-pipe allrteady in usb-audio.c? the us428 definitly needs such a beast. for now its easier for me to keep a seperate module: source is smaller and i'd like to do more on the knobs, sliders lights part of the us428. none the less i'd greatly appreciate if you'd submit the path ;-) part2 of the patch in next mail. alsa-driver-0.9.6+usbus428.1.diff.tar.bz2 Description: application/tbz
Re: [Alsa-devel] Major Bug in Alsa 0.9 for over 1 year
--- Clemens Ladisch [EMAIL PROTECTED] schrieb: Karsten Wiese wrote: insmod snd-cs4232 Using /lib/modules/2.4.19/kernel/sound/isa/cs423x/snd-cs4232.o /lib/modules/2.4.19/kernel/sound/isa/cs423x/snd-cs4232.o: unresolved symbol snd_card_new_R506deba1 the _R506deba1 makes me think snd-cs4232.o is compiled with module versionnumbers and the module, snd_card_new lives in, haS been made without module version numbers. No, that's caused by using insmod. Using modprobe instead ensures that all required modules are loaded. right, but none the less the _R506deba1 in snd_card_new_R506deba1 means the requesting module needs version information on module symbols. if the use of version information on module symbols is not consistent across kernel modules, this message can occure. karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This SF.net email is sponsored by: ApacheCon, November 18-21 in Las Vegas (supported by COMDEX), the only Apache event to be fully supported by the ASF. http://www.apachecon.com ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] alsa-lib/test/pcm.c: -b option
hallo jaroslav, please aply the attached patch. it enables the -b option. thanks, karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de alsalibtestpcm_patch Description: alsalibtestpcm_patch
[Alsa-devel] us428 patch 0.0.4
hi, this is the logentry: compiles again with alsa-current. USB_ISO_ASAP not used anymore (most of the time), instead urb-start_frame is calculated here now, some calls inside usb-driver don't need to happen anymore. To get the best out of this: Disable APM-support in the kernel as APM-BIOS calls (once each second) hard disable interrupt for many precious milliseconds. This helped me much on my slowish PII 400 PIII 500. ACPI yet untested but might cause the same bad behaviour. Use a kernel with lowlatency and preemptiv patches applied. To autoload snd-usb-midi append a line post-install snd-usb-us428 modprobe snd-usb-midi to /etc/modules.conf. known problems: (1) interrupts 1000 every 1 s. (2)sliders, knobs, lights not yet handled except MASTER Volume slider. (3)pcm -c 2 doesn't work. pcm -c 2 -m direct_interleaved does. (4)KDE3.03: Enable full duplex operation deadlocks. tascams (still unauthorized) firmware is not included but can be optained off http://hal9000.drehmoment.org/tascam/ thanks for your support ! aaand does anybody have some clue(s) about the known problem (3)? best regards, karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de us428_0.0.4_alsa0.9_gpl.tar.bz2 Description: us428_0.0.4_alsa0.9_gpl.tar.bz2
Re: [Alsa-devel] help for a levelmeter
--- Paul Davis [EMAIL PROTECTED] schrieb: An: Laurent Georget [EMAIL PROTECTED] CC: karsten wiese [EMAIL PROTECTED], Devel Alsa [EMAIL PROTECTED] Betreff: Re: [Alsa-devel] help for a levelmeter Datum: Wed, 16 Oct 2002 18:07:48 -0400 Von: Paul Davis [EMAIL PROTECTED] [ please forward to [EMAIL PROTECTED] i still cannot post there. ] Anyway I can now try to experiment the copy_plugin : would you know some program using this plugin, which would make the thing easier ! programs don't use a plugin. its just a function of which PCM device they are told to open. the code they contain is no different whether they are accessing a hardware PCM device, a plughw PCM device, or a copy PCM device. --p __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by: viaVerio will pay you up to $1,000 for every account that you consolidate with us. http://ad.doubleclick.net/clk;4749864;7604308;v? http://www.viaverio.com/consolidator/osdn.cfm ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] help needed on how to autoload snd-usb-midi
Hi, I am in the process of updating the tascam us-428 patch for alsa-current and need some hints: formerly the snd-usb-us428 issued request_module( snd-usb-midi); to load that module. this doesn't work with alsa-current anymore as the snd-usb-audio initialisation, which is triggered, conflicts with the initialisation of snd-usb-us428. thus I deleted that request_module( snd-usb-midi); from snd_usb_us428. I remember from some Mail on this list, that snd-usb-midi would be autoloaded if a users process accesses a mididevice, which has been created by snd_seq_device_new( ...SNDRV_SEQ_DEV_ID_USBMIDI). this does not happen here now. what do I miss? for the tests I use the bristolsynth with ./startBristol -alsa -audiodev hw:1 -mididev hw:1 having issued modprobe snd-usb-midi before, everythingg works as expected. otherwise Could not open the MIDI interface. Error opening midi device hw:1, exiting midi thread TIA, Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] help needed on how to autoload snd-usb-midi
Clemens Ladisch schrieb: karsten wiese wrote: I am in the process of updating the tascam us-428 patch for alsa-current and need some hints: formerly the snd-usb-us428 issued request_module( snd-usb-midi); to load that module. this doesn't work with alsa-current anymore as the snd-usb-audio initialisation, which is triggered, conflicts with the initialisation of snd-usb-us428. thus I deleted that request_module( snd-usb-midi); from snd_usb_us428. snd-usb-midi isn't anymore an independent driver, it has been integrated into snd-usb-audio (as you've seen), although it's still a separate module. In theory, it may be possible to do the same stuff as snd_usb_create_midi_interface() to make it load correctly. here is the routine that is used in snd-usb-us428: static int snd_us428_create_usbmidi( snd_card_t* card ) { #if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE) static snd_usb_audio_quirk_t quirk = { .vendor_name = TASCAM, .product_name = US-428, .ifnum =0, .type = QUIRK_MIDI_FIXED_ENDPOINT, .data = (const snd_usb_midi_endpoint_info_t) { .epnum =6, .out_cables = 3, .in_cables =3 } }; snd_seq_device_t *seq_device; snd_usb_midi_t *umidi; int err; err = snd_seq_device_new( card, us428( card)-chip.next_seq_device, SNDRV_SEQ_DEV_ID_USBMIDI, sizeof(snd_usb_midi_t), seq_device); if (err 0) return err; us428( card)-chip.next_seq_device++; strcpy(seq_device-name, card-shortname); umidi = (snd_usb_midi_t *)SNDRV_SEQ_DEVICE_ARGPTR(seq_device); umidi-chip = us428( card)-chip; umidi-ifnum = 0; umidi-quirk = quirk; umidi-seq_client = -1; #endif return 0; } its a copy-change of usb-audio. something wrong here ? cannot be completely wrong: if snd-usb-midi is loaded manually, everything works ok. IMHO the best solution would be to add a quirk to usbaudio.c, instead of writing an entirely separate driver with most of the code duplicated. I didn't look at your patch in full length, but it seems to me that the changes needed would be firmware loading (best done in a separate driver or a userspace program) and adding some information about supported audio formats/bitrates. (I'm sure I've missed something. :) the us-428 audio is very nonstandard: it is necessary to know how many frames are just recorded to be able to playback without unwanted crackles. I found no other way to determine the exact samplerate. furthermore there are the hardware knobs, sliders and lights, the digital in switch I remember from some Mail on this list, that snd-usb-midi would be autoloaded if a users process accesses a mididevice, which has been created by snd_seq_device_new( ...SNDRV_SEQ_DEV_ID_USBMIDI). this does not happen here now. Autoloading happens if there is an alias for snd-card-x (x derived from the client number) in modules.conf, and if the card driver calls snd_seq_device_new() for the sequencer driver. (BTW: there was a bug with autoloading sequencer drivers which has been fixed yesterday) mmh, i just checked again my tree: it is current. I put a line alias snd-card-1 snd-usb-midi (the us-428 is my second card) into modules.conf. is it this what you suggest? unfortunately the autoload still does not happen. Trying to start the Synth with: ./startBristol -alsa -audiodev hw:1 -mididev hw:1 snd-usb-midi is still not loaded and the error message is: ALSA lib rawmidi_hw.c:227:(snd_rawmidi_hw_open) open /dev/snd/midiC1D0 failed: No such file or directory Could somebody please explain, how a specific midi module gets loaded on a user processes access of an alsa (raw)midi device ? Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] help for a levelmeter
Laurent Georget: Hello, I 'd like to make a levelmeter program which would display sound card input/output while the audio device is opened by another program. I tried to use copy plugin , but now (since 0.9.0rc3 ) the snd_pcm_copy_open give a implicit declaration of function hmm, it is still declared in alsa-lib/include/pcm_plugin.h ...? message . (Anyway, i don't know if using this plugin was correct for that purpose) So, would you know a way to read audio data going to (or coming from) the device , when it is opened by another program ? Thanks for any help! Laurent (there is a jack meter client @ http://plugin.org.uk/meterbridge/) regards, karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by: viaVerio will pay you up to $1,000 for every account that you consolidate with us. http://ad.doubleclick.net/clk;4749864;7604308;v? http://www.viaverio.com/consolidator/osdn.cfm ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
RE: [Alsa-devel] snd_ prefix for module options
Hi, so far, all alsa modules use snd_ prefix for each module option. iirc, there was a problem regarding namespace at the time of 2.0 kernel, and this was some workaround to avoid confliction. but 2.2 and later kernels have no such a problem at all. so, i'd like to ask you how do you think to remove this snd_ prefix. of course, there is one and only big problem - compatibility! the questions are - whether we should really do it or not? is it worthy? leave it like it is. changing would break lots of users module.conf entries, which might be the fruits of hours of work. and - when? now or after 0.9.0-final release? opinions, please? Takashi --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Yahoo! präsentiert als offizieller Sponsor das Fußball-Highlight des Jahres: - http://www.FIFAworldcup.com --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
AW: [Alsa-devel] usb quattro
Here's what I get from ksymoops Warning (compare_maps): ksyms_base symbol vmalloc_to_page_R__ver_vmalloc_to_page not found in System.map. Ignoring ksyms_base entry Unable to handle kernel NULL pointer dereference at virtual address 0020 c01e52e4 *pde = CPU:0 EIP:0010:[c01e52e4] Not tainted Using defaults from ksymoops -t elf32-i386 -a i386 EFLAGS: 00010097 eax: cf21cc84 ebx: cf21c480ecx: d7efd3fc edx: cf21c484 esi: ed1: 0097 ebp: cf21cc84 esp: c0287f38 Warning (Oops_set_regs): garbage 'ed1: 0097 ebp: cf21cc84 esp: c0287f38' at end of register line ignored ds: 0018es: 0018 ss:0018 Process swapper (pid: 0, stackpage=c0287000) Stack: 0292 d7efd3fc cc00 d7efd380 c0287fac c01e535b5 d7efd380 d7efd380 d7eede80 0401 000b c0109e8a 000b d7efd380 c0287fac c0287fac 000b c02bee80 d7eede80 c010a018 000b c0287fac d7eede80 Call Trace: [c01e53b5] [c0109e8a] [c010a018] [c0106f10] [c0106f10] [c010c108] [c0106f10] [c0106f36] {c0106fc2] [c0105000] Code: c7 46 20 98 ff ff ff 8b 43 10 8b 1b 80 b8 00 00 00 8b 48 EIP; c01e52e4 uhci_remove_pending_qhs+44/90 = the Tascam US-428 driver (copied / changed from snd-usb-audio ) showed a similar problem. I worked around it by not using ASYNC_UNLINKing of the urbs. uhci_remove_pending_qhs is called to unlink urbs in ASYNC mode. seems as if uhci has a bug ? or may we asyncly unlink only 1 urb at a time? any experiences with kernels 2.4.18 ? Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE! https://www.inphonic.com/r.asp?r=sourceforge1refcode1=vs3390 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] [PATCH] integrate snd-usb-midi into snd-usb-audio
--- Takashi Iwai [EMAIL PROTECTED] schrieb: Hi, thanks. the patch is applied now to cvs. could you check whether it works for you? Karsten, can you rewrite the patch for your tascam driver based on this new mechanism? if any other changes are needed, please let us know. no changes needed. works well as it is now. changed tascam driver available via email. Tascam did not answer yet our calls to allow us the use of their firmware. proposal for autoloading snd-usb-midi from snd-usb-audio if needed: request_module( snd-usb-midi); this way the tascam driver releaves the user from taking care that snd-usb-midi is present. Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE! https://www.inphonic.com/r.asp?r=sourceforge1refcode1=vs3390 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] usb-audio: variable periodsize / nframes per callback can shorten latency times
Hi, usb iso transfers happen every 1ms (USB1.1) ( or at multiples of 125µs for USB2.0). this timing is fixed and leads to a variable amount of frames available at interrupt. looking at 44100Hz on USB 1.1, we receive/send 44 frames on 9 of 10 USB-interrupts and 45 frames on 1 of 10 USB-interrupts. on first sight 48000Hz seams to lead to a constant 48 frames per interrupt. this does not remain true if the USB-audio device is in sync to an externally connected device (digital in). the current usb-audio mimics constant period size in the USB-interrupt routines by calling snd_period_elapsed() only, if at least full period sizes are transfered on the usb. this good for constant period-size compatibility but leads to sub-optimal latency: i.e. for capture worst case, audio apps start working 1ms later than possible. How can we implement the latency-optimal behaviour with alsa-driver framework? Can we implement something like a snd_1ms_elapsed() routine (called from USB-interrupt), which in turn triggers a waiting app with the available period size (which would be 44 or 45 frames for 44100Hz)? I would like to see this in ALSA / JACK. What do you think? regards, Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE! https://www.inphonic.com/r.asp?r=sourceforge1refcode1=vs3390 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
Re: [Alsa-devel] usb-midi rc3 patch request
--- Takashi Iwai [EMAIL PROTECTED] wrote: At Fri, 16 Aug 2002 12:34:50 +0200 (CEST), karsten wiese wrote: hallo, the attached patch exports two functions of usb-midi, so other device-owning drivers can use usb-midi's capabilities. the patched usb-midi driver is used by the us428 driver through those exported functions. we can avoid having different alsa-devices for the same physical device this way. plus usb-midi can be used for non standard devices, which need special initialisations through a special driver first. the patched usb-midi drivers should work in all other cases exactly as before. sorry, your patch looks still a bit hacky, perhaps because you wanted to keep the usb-midi code as original as possible. i think we need rather rewrite the top of usb device management (on alsa). there is also another problem in this regard, for example, a device with both midi and audio is assigned to two different cards, since midi and audio handles it individually. the patch adresses just that. here the output of cat /proc/asound/devices 0: [0- 0]: ctl 8: [0- 0]: raw midi 16: [0- 0]: digital audio playback 24: [0- 0]: digital audio capture 1: : sequencer 33: : timer 32: [1- 0]: ctl 57: [1- 1]: digital audio capture 48: [1- 0]: digital audio playback 56: [1- 0]: digital audio capture 40: [1- 0]: raw midi 41: [1- 1]: raw midi cat /proc/asound/cards 0 [card0 ]: ES1978 - ESS ES1978 (Maestro 2E) ESS ES1978 (Maestro 2E) at 0x1400, irq 5 1 [card1 ]: USB US-428 - TASCAM US-428 TASCAM US-428 (1604:8001 if 0 at 001/003) the us428 driver calls the snd-usb-midi like this: err = snd_usbmidi_card_create( us428-dev, us428-usbmidi, us428-card, us428-usbmidi_devnum ); interesting here is that us428-card has already been initialized from the us428 driver before. the patched snd_usbmidi_card_create() creates thus er... (hacky, cause the name doesnt fit anymore) NO card on its own but uses the supplied one. Would it be sufficient to add an extra function like snd_usbmidi_card_attach() instead of overloading snd_usbmidi_card_create()? let's discuss about it at first. (BTW, could you check the legal condition of firmware on tascam device? i'd like to put the stuffs but without this permission it's of course unacceptable...) what exactly do you need? I once tried to get an answer from turtle beach, which did not happen... tascam will most likely not agree to release the firmware under GPL in any form nor object- nor source-code. is it sufficient, if tascam just allows ALSA to use publish their firmware as it is now? now it consists of char arrays in C header files representing raw binary data sniffed from the win2k USB. tascam will likely want a comment in the header stating that it is forbidden to disassemble, that the code in that file is their property and may only be used to compile the code nothing else. is there such a file header aside the GPL-world already to be used as temlate? AND does anybody know somebody @ TASCAM? Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE! https://www.inphonic.com/r.asp?r=sourceforge1refcode1=vs3390 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] usb-midi rc3 patch request
hallo, the attached patch exports two functions of usb-midi, so other device-owning drivers can use usb-midi's capabilities. the patched usb-midi driver is used by the us428 driver through those exported functions. we can avoid having different alsa-devices for the same physical device this way. plus usb-midi can be used for non standard devices, which need special initialisations through a special driver first. the patched usb-midi drivers should work in all other cases exactly as before. patch_usbmidi_rc3.tar.bz2 contains file diffs : patch file file alsa-kernel/usb/usbmidi.h : to be added header best regards, karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de patch_usbmidi_rc3.tar.bz2 Description: patch_usbmidi_rc3.tar.bz2
[Alsa-devel] tascam us-428 patch 0.0.2
hey, on http://hal9000.drehmoment.org/tascam/ you can download a patch against cvs of august 14. it contains: - snd-usb-us428 downloads firmware to endpoint 2. creates 2 midi devices through the patched snd-usb-midi and 2 input + 1 output pcm devices. - snd-usb-midi with exports same as before ( i hope...), except added exports to make it callable by snd-usb-us428. Clemens and Takashi: you think its ok, or is there a better way? - snd-usb-us428-dl firmware for a coldly booted us-428. this driver's task can shurely be done by a generic ez-usb firmware-loader. for now it is needed to prepare the us-428 for the snd-usb-us428 module. midi audio work i.e. with the bristol-synths (44100 48000 S16_LE). the us-428 control's messages are only printked except for the master volume slider, which is functional. the firmware and usb messages have been sniffed from the win2k 3.09 driver with an improved version of sniffusb 1.5. (there has been no support from tascam so far) should you like to sniff, i'll mail the sniffer to you. there are still some things to improve like - mapping the controls messages to midi messages - stearing the leds by midi messages - enhancing audio (24bit (possible by simply using altsetting 2), input monitoring) cheers, karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE! https://www.inphonic.com/r.asp?r=sourceforge1refcode1=vs3390 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
AW: [Alsa-devel] general audio card Q
Paul wrote: cards that do not use DMA should generally be considered inferior because of the extra CPU cycles they force on the host system. not generally. i.e. the pinnacle/fiji way is to map a piece of memory into the pc's memory space. thus an application using alsa-mmap can write (or read) directly into the cards pcm-memory. pretty efficiently, don't you think? (except that its ISA-memory) (it can do so with 2 or 3 periods per buffer). I don't see any drawback here caused by the lack of DMA. regards, Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de --- This sf.net email is sponsored by: Dice - The leading online job board for high-tech professionals. Search and apply for tech jobs today! http://seeker.dice.com/seeker.epl?rel_code1 ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] USB tascam us-428
attached is one first step of a driver for that blue box. (apply the diff to a cvs-download and copy the other files into the alsa-driver/usb directory to build it.) It does the coldboot (DeviceID 0x8000) firmware download after the us428 is switched on. you can use the a.out together with libusp usb-robot to do that coldboot firmware download from a shell. having done the download against a freshly switched on us-428, it says it has deviceID 0x8001 (like with windows). regards, Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de us428.0.0.1.tar.bz2 Description: us428.0.0.1.tar.bz2
Re: [Alsa-devel] Turtle Beach Pinnacle/Fiji alsa driver 0.1.3
Hi Takashi, Takashi Iwai [EMAIL PROTECTED] wrote: Hi Karsten, At Sat, 6 Jul 2002 15:11:36 +0200 (CEST), karsten wiese wrote: here is a newer version. it doesn't crash the pc when using oss emulation anymore. it can do 2 (or 3) periods per buffer now. thanks for your work. now it's committed to cvs. please check the cvs tree. works fine here :-) i changed slightly your patch: - the module is renamed as snd-msnd-classic (with hyphen) - all stuffs are still on alsa-drivers. will be moved to alsa-kernel and submitted to 2.5 kernel tree later once after it's confirmed to work fine. this is our policy. regarding to pnp. is it possible to integrate it using the standard isapnp api? or is it a specific one? hmmm.., don't know don't want to test that on this machine, 'cause it is to also run NT4 (:no pnp for stability) for commercial reasons. ciao, Takashi can we put the firmware-binaries on cvs as well? so far it is necessary to extract them with some extra steps... best, Karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Yahoo! präsentiert als offizieller Sponsor das Fußball-Highlight des Jahres: - http://www.FIFAworldcup.com --- This sf.net email is sponsored by:ThinkGeek Stuff, things, and much much more. http://thinkgeek.com/sf ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] Turtle Beach Pinnacle/Fiji alsa driver 0.1.3
Hi Takashi, here is a newer version. it doesn't crash the pc when using oss emulation anymore. it can do 2 (or 3) periods per buffer now. Takashi Iwai [EMAIL PROTECTED] schrieb: Hi Karsten, thanks, we got finally the support for this old card. i'd like to put this stuff into cvs, but before that, could you check the following things? - missing rule for tb-classic module. there is no classic module in this yet. mainly because i don't have such a card and thus could not test the driver. i left the files, so interested developers can start easier. (i could do i module later that compiles but would be absolutly untested. you mean that?) if there are two card modules, will there a common lowlevel module for them? or will be integrated? made no decision on that... - please remove the codes for old kernels. the compatibility routines should go to alsa-driver tree, not on alsa-kernel tree. done. - is there a workaround for the jiffires warp (32bit overflow)? i only used jiffies in code that was not really used, cause it generated errors in the framework crackles in the sound. maybe cause that overflow wasn't handled correctly? no idea. commented that stuff out for now. - please reformat the codes with a certain indent. done (correctly?) - you can use snd_printd() for debug printk. done (mostly) - it'd be better to keep the uniformity of module parameters like other alsa modules, i.e. snd_xxx. done - obviously we can clean up msnd_pinnacle_mixer.c more :) done ciao, Takashi works: PCM: Stereo record / playback mmaped fullduplex with the alsa-tools aplay, pcm, aplay -M, latency, alsaplayer, amSynth, bristol, jack, ardour, artsd, oss-emulation MIXER:Master, Pcm, Line In, Monitor MIDI: in VERSION: 0.9rc2CVS, patch attached OS: tested on Slackware 8.1rc1 not...yet: MIDI: out, header SPDIF: KURZWEIL: start a mpu401 device the patch archive consists off a diff, which is to be applied to the raw cvs-sources and two directories. after copying the also contained directories into the cvs tree do cvscompile make make install in alsa-driver as usual. note: this has only been tested to build modules for a 2.4.18 kernel on an single 400MHz PII with a pinnacle in non-pnp mode. regards, karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Yahoo! präsentiert als offizieller Sponsor das Fußball-Highlight des Jahres: - http://www.FIFAworldcup.com 0.9rc2-0.1.3.tar.gz Description: 0.9rc2-0.1.3.tar.gz
[Alsa-devel] Turtle Beach Pinnacle/Fiji alsa driver 0.1.2
hi, new in this is pcm record and midiin. latency (latency -m32 -M32 -b -r 48000, patched to allow 3 periods) runs with down to 32 frames. amSynth runs well with it on an 400PII. mmap driver for amSynth available from me. not needed, but gives you more voics with the fiji/pinnacle. works: PCM: Stereo record / playback mmaped fullduplex with the alsa-tools aplay, pcm, aplay -M, latency with 3 periods patch, alsaplayer, amSynth MIXER: Master, Pcm, Line In, Monitor MIDI:in VERSION: 0.9rc2CVS, patch attached OS: tested on Slackware 8.1rc1 not...yet: PCM: periods / buffer != 3 MIDI:out SPDIF: KURZWEIL: start a mpu401 device the patch archive consists off a diff, which is to be applied to the raw cvs-sources and two directories. after copying the also contained directories into the cvs tree do cvscompile make make install in alsa-driver as usual. note: this has only been tested to build modules for a 2.4.18 kernel on an 400MHz PII with a pinnacle in non-pnp mode. For additional infos concerning the fiji/pinnacle cards search for the pinnacle oss-free driver docus on the web. there is a how-to install the needed firmware-files also. cheers, karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Yahoo! präsentiert als offizieller Sponsor das Fußball-Highlight des Jahres: - http://www.FIFAworldcup.com 0.9rc2-0.1.2.tar.gz Description: 0.9rc2-0.1.2.tar.gz
[Alsa-devel] Turtle Beach Pinnacle/Fiji alsa driver 0.1.1
hi, new in this is onboard memory maped playback at up to 1387 cycles/s ;-) on a 400PII with no xruns, if it runs with realtime scheduling with no other hungry tasks. it is still err.. a little unstable: for instance crashes while accessing some /proc/asound files. works: PCM:Stereo playback @44100 with the alsa-tools aplay pcm aplay -M MIXER: Master, Pcm VERSION:0.9rc1CVS, patched sources, diffs available via e-mail OS: Slackware 8.1rc1 not...yet: PCM:Record MIDI: SPDIF: cheers, karsten _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] Turtle Beach Pinnacle/Fiji
somebody working on drivers for this card? __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Yahoo! präsentiert als offizieller Sponsor das Fußball-Highlight des Jahres: - http://www.FIFAworldcup.com ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
[Alsa-devel] small enhancement to es1968.c
hallo, this one lets the volume reach maximum on both channels also by using the extra volume-control-knobs found on some laptops. the diff was run against the cvs - version of today. --- es1968.c_cvsMon May 20 22:09:37 2002 +++ es1968.cMon May 20 22:12:11 2002 @@ -1981,7 +1981,7 @@ /* volume up */ if ((val 0xff) 0) val--; - if ((val 0xff00) 0x100) + if ((val 0xff00) 0) val -= 0x0100; } else { /* volume down */ best regards, karsten __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Sie brauchen mehr Speicher für Ihre E-Mails? - http://premiummail.yahoo.de ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ___ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel