[alsa-devel] Roland/Edirol M-16DX

Takashi Iwai tiwai at suse.de
Fri May 29 08:35:45 CEST 2009


At Thu, 28 May 2009 14:03:39 +0300,
Lasse Kärkkäinen wrote:
> 
> Related messages attached. Didn't see any from you, actually. Maybe 
> something you sent didn't reach me?

Thanks!  It seems completely missing in my mailer...

> Capture works properly but playback has sync issues. The proper fix 
> (based on what the Windows driver does) would be to capture while 
> playing and to use the capture clock to synchronize playback, but no-one 
> had time to implement that.

OK, the problem is known.  The similar problem appears on other devices,
AFAIK.

So, what should we do now?  If you guys are OK to merge even a
known-to-be-buggy (but somehow works), I'm going to add it.


Takashi

> 
> Hopefully this helps.
> 
> [2 Liitetty viesti <message/rfc822 (7bit)>]
> To: alsa-devel at alsa-project.org
> Subject: Re: [alsa-devel] Roland/Edirol M-16DX
> From: Lasse Kärkkäinen <tronic+8nhy at trn.iki.fi>
> Delivered-To: tronic at trn.iki.fi
> Delivered-To: alsa-devel at alsa-project.org
> Message-ID: <4917B029.7010809 at trn.iki.fi>
> Date: Mon, 10 Nov 2008 05:53:13 +0200
> User-Agent: Thunderbird 2.0.0.17 (X11/20080925)
> MIME-Version: 1.0
> In-Reply-To: <48883AAC.6060101 at ladisch.de>
> List-Unsubscribe: <http://mailman.alsa-project.org/mailman/listinfo/alsa-devel>, 	<mailto:alsa-devel-request at alsa-project.org?subject=unsubscribe>
> List-Archive: <http://mailman.alsa-project.org/pipermail/alsa-devel>
> List-Post: <mailto:alsa-devel at alsa-project.org>
> List-Help: <mailto:alsa-devel-request at alsa-project.org?subject=help>
> List-Subscribe: <http://mailman.alsa-project.org/mailman/listinfo/alsa-devel>, 	<mailto:alsa-devel-request at alsa-project.org?subject=subscribe>
> Content-Transfer-Encoding: 7bit
> 
> Sorry about late reply.
> 
> > It appears to have most of the audio class descriptors, so it should be
> > possible to tell the driver to just use it.
> > 
> > Please try to add the following entry somewhere in sound/usb/usbquirks.h
> > and to recompile the driver:
> > 
> > 
> > {
> > 	/* Edirol M-16DX */
> > 	USB_DEVICE(0x0582, 0x00c4),
> > 	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
> > 		.ifnum = QUIRK_ANY_INTERFACE,
> > 		.type = QUIRK_COMPOSITE,
> > 		.data = (const struct snd_usb_audio_quirk[]) {
> > 			{
> > 				.ifnum = 0,
> > 				.type = QUIRK_AUDIO_STANDARD_INTERFACE
> > 			},
> > 			{
> > 				.ifnum = 1,
> > 				.type = QUIRK_AUDIO_STANDARD_INTERFACE
> > 			},
> > 			{
> > 				.ifnum = 2,
> > 				.type = QUIRK_MIDI_FIXED_ENDPOINT,
> > 				.data = & (const struct snd_usb_midi_endpoint_info) {
> > 					.out_cables = 0x0001,
> > 					.in_cables  = 0x0001
> > 				}
> > 			},
> > 			{
> > 				.ifnum = -1
> > 			}
> > 		}
> > 	}
> > },
> 
> This allows the device to be detected correctly and capture seems to be 
> working flawlessly. Playback also works, but there is a severe three 
> second distortion in audio once every 30 seconds, at 48 kHz. This seems 
> to be related to the device sampling rate, as the cycle is only 15 
> seconds when the device is running at 96 kHz.
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> [3 Liitetty viesti <message/rfc822 (8bit)>]
> To: "Lasse =?ISO-8859-1?Q?K=E4rkk=E4inen?=" <tronic+cv5n at trn.iki.fi>
> Cc: alsa-devel at alsa-project.org, clemens at ladisch.de, james at jamestrevelyan.com,
>  timc at wnsp.com
> Subject: Re: [alsa-devel] Roland/Edirol M-16DX
> From: James Trevelyan <james at jamestrev.com>
> Delivered-To: tronic at trn.iki.fi
> In-Reply-To: <491C6E10.7090308 at trn.iki.fi>
> Date: Fri, 14 Nov 2008 00:55:01 +0000
> Message-Id: <1226624101.4836.95.camel at localhost>
> Mime-Version: 1.0
> Content-Transfer-Encoding: 8bit
> 
> On Thu, 2008-11-13 at 20:12 +0200, Lasse Kärkkäinen wrote:
> > Has anyone been able to solve the distortion problem yet?
> > 
> > It seems like a broken ringbuffer implementation. The distortion itself 
> > seems to be just the signal itself in different phase. I tested this 
> > with a 441 Hz (100 samples) sine wave played thru the device and 
> > recorded back. The recording is here:
> > http://zi.fi/debug/M16DX-bug.flac
> 
> I haven't solved it yet, though I exchanged emails with Tim Camp who
> reported that he had this working when the device was set to 44.1khz (I
> haven't had a chance to try this)
> 
> I had previously done something similar to Lasse in re-recording a test
> signal and noticed the same interesting patterns.  However, I also did
> some usb-logging, and when I reassembled the data stream being sent to
> the device it was as it should be, i.e. uncorrupted, suggesting that the
> distortion is being caused in the device, and the driver isn't sending a
> corrupted data stream (though obviously something in the way it is sent
> is upsetting the device)
> 
> I also did some usb-logging under Windows (where it works) and
> disappointingly couldn't see any obvious difference in the way the data
> was sent.  I played around with things like the size of the urbs in the
> driver to try to make the raw usb data look the same, but it had no
> effect.
> 
> However, what I did notice is that in all circumstances the windows
> driver was capturing at the same time as playback, even when I was not
> asking it to record.  This suggests to me that the comment in the driver
> source about synchronising playback to capture has some relevance ...
> 
> James
> 
> [4 Liitetty viesti <message/rfc822 (7bit)>]
> To: James Trevelyan <james at jamestrev.com>
> CC: Lasse Kärkkäinen <tronic+cv5n at trn.iki.fi>, alsa-devel at alsa-project.org,
>  james at jamestrevelyan.com, timc at wnsp.com
> Subject: Re: [alsa-devel] Roland/Edirol M-16DX
> From: Clemens Ladisch <clemens at ladisch.de>
> Delivered-To: tronic at trn.iki.fi
> Message-ID: <491D3300.5050405 at ladisch.de>
> Date: Fri, 14 Nov 2008 09:12:48 +0100
> User-Agent: Thunderbird 2.0.0.17 (Windows/20080914)
> MIME-Version: 1.0
> In-Reply-To: <1226624101.4836.95.camel at localhost>
> Content-Transfer-Encoding: 7bit
> 
> James Trevelyan wrote:
> > ...
> > However, what I did notice is that in all circumstances the windows
> > driver was capturing at the same time as playback, even when I was not
> > asking it to record.  This suggests to me that the comment in the driver
> > source about synchronising playback to capture has some relevance ...
> 
> Indeed.  The driver would have to send the data at the exact speed of
> the device's internal clock, and the only way to determine that clock's
> speed is to capture data.
> 
> So far I haven't found the time to rewrite the driver to support this
> synchronization mechanism.
> 
> 
> Best regards,
> Clemens
> [5 Liitetty viesti <message/rfc822 (8bit)>]
> To: James Trevelyan <james at jamestrev.com>
> Cc: Lasse Kärkkäinen <tronic+cv5n at trn.iki.fi>, alsa-devel at alsa-project.org,
>  clemens at ladisch.de, james at jamestrevelyan.com
> Subject: Re: [alsa-devel] Roland/Edirol M-16DX
> From: Tim Camp <timc at wnsp.com>
> Delivered-To: tronic at trn.iki.fi
> Reply-To: timc at wnsp.com
> In-Reply-To: <1226624101.4836.95.camel at localhost>
> Organization: Dot Com Plus L.L.C.
> Date: Fri, 14 Nov 2008 08:59:19 -0600
> Message-Id: <1226674759.16066.3.camel at operations.dotcom>
> Mime-Version: 1.0
> Content-Transfer-Encoding: 8bit
> 
> James,
> 
> Reading your email I was struck by something.
> I also have a digital I/O connected to the mixer from the pc.
> I wonder if this is allowing the clocks to sync?
> 
> Just a thought.
> 
> Tim
> 
> On Fri, 2008-11-14 at 00:55 +0000, James Trevelyan wrote:
> > On Thu, 2008-11-13 at 20:12 +0200, Lasse Kärkkäinen wrote:
> > > Has anyone been able to solve the distortion problem yet?
> > > 
> > > It seems like a broken ringbuffer implementation. The distortion itself 
> > > seems to be just the signal itself in different phase. I tested this 
> > > with a 441 Hz (100 samples) sine wave played thru the device and 
> > > recorded back. The recording is here:
> > > http://zi.fi/debug/M16DX-bug.flac
> > 
> > I haven't solved it yet, though I exchanged emails with Tim Camp who
> > reported that he had this working when the device was set to 44.1khz (I
> > haven't had a chance to try this)
> > 
> > I had previously done something similar to Lasse in re-recording a test
> > signal and noticed the same interesting patterns.  However, I also did
> > some usb-logging, and when I reassembled the data stream being sent to
> > the device it was as it should be, i.e. uncorrupted, suggesting that the
> > distortion is being caused in the device, and the driver isn't sending a
> > corrupted data stream (though obviously something in the way it is sent
> > is upsetting the device)
> > 
> > I also did some usb-logging under Windows (where it works) and
> > disappointingly couldn't see any obvious difference in the way the data
> > was sent.  I played around with things like the size of the urbs in the
> > driver to try to make the raw usb data look the same, but it had no
> > effect.
> > 
> > However, what I did notice is that in all circumstances the windows
> > driver was capturing at the same time as playback, even when I was not
> > asking it to record.  This suggests to me that the comment in the driver
> > source about synchronising playback to capture has some relevance ...
> > 
> > James
> > 
> 


More information about the Alsa-devel mailing list