[alsa-devel] Help needed to develop quirks for USB Sound device for Roland Edirol PC-80 MIDI controller
Alain Lauzon
alauzon at alainlauzon.com
Fri Dec 18 16:32:05 CET 2009
Le vendredi 18 décembre 2009 à 15:19 +0100, Clemens Ladisch a écrit :
> (please don't top-post)
>
> Alain Lauzon wrote:
> > Bus 001 Device 014: ID 0582:0092 Roland Corp. EDIROL PC-80 WAVE
> > ...
> > Bus 001 Device 013: ID 0582:0093 Roland Corp. EDIROL PC-80 MIDI
> > ...
>
> This is implemented as two logical devices, so it will show up as two
> ALSA sound cards.
>
> You didn't show the descriptors for a full-duplex mode, so I'm assuming
> it works like with any other Roland device.
>
> Please try the following quirk entries:
>
> {
> /* WAVE part only; see ID 0x0093 for MIDI */
> USB_DEVICE(0x0582, 0x0092),
> .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
> /* .vendor_name = "EDIROL", */
> /* .product_name = "PC-80", */
> .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 = -1
> }
> }
> }
> },
> {
> /* MIDI part only; see ID 0x0092 for WAVE */
> USB_DEVICE(0x0582, 0x0093),
> .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
> /* .vendor_name = "EDIROL", */
> /* .product_name = "PC-80", */
> .ifnum = 0,
> .type = QUIRK_MIDI_FIXED_ENDPOINT,
> .data = & (const struct snd_usb_midi_endpoint_info) {
> .out_cables = 0x0000,
> .in_cables = 0x0003,
> }
> }
> },
> --
Thank you for your support Clemens.
I have tried your code and it gives me this:
The MIDI works control works #1 and for the sound I see Analog stereo
output and this works fine too. I don't see any imput from that device.
I have tried adding 2 more interfaces for the audio just to see what it
would bring with this:
{
/* WAVE part only; see ID 0x0093 for MIDI */
USB_DEVICE(0x0582, 0x0092),
.driver_info = (unsigned long) & (const struct
snd_usb_audio_quirk) {
/* .vendor_name = "EDIROL", */
/* .product_name = "PC-80", */
.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_AUDIO_STANDARD_INTERFACE
},
{
.ifnum = 3,
.type = QUIRK_AUDIO_STANDARD_INTERFACE
},
{
.ifnum = -1
}
}
}
},
{
/* MIDI part only; see ID 0x0092 for WAVE */
USB_DEVICE(0x0582, 0x0093),
.driver_info = (unsigned long) & (const struct
snd_usb_audio_quirk) {
/* .vendor_name = "EDIROL", */
/* .product_name = "PC-80", */
.ifnum = 0,
.type = QUIRK_MIDI_FIXED_ENDPOINT,
.data = & (const struct snd_usb_midi_endpoint_info) {
.out_cables = 0x0000,
.in_cables = 0x0003,
}
}
},
What I've got is that MIDI control works just as good, but I now have
two audio, namely "Analog Stereo Output" and "Digital Stereo Duplex
(IEC958)" and they both work good as audio out. I still don't have any
audio input device. I should have one since there are two entries on
the back of my Edirol PC-80 that accepts either a microphone or a
guitar. So I should be able to relay those audio inputs to my computer
through my USB connection, right?
Thanks, Alain Lauzon
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the Alsa-devel
mailing list