Edirol SD-20 Studio Canvas
Edirol SD-20 Studio Canvas MIDI synth module.
Related pages: Evolution eKeys 37,
back to gadgets page.
Work log
2021-08-26: I re-created this page on my self-hosted web server.
2011-02-22: under OpenBSD 4.8 / i386, the SD-20 shows up like this in /var/log/messages:
Feb 23 00:30:15 home99 /bsd: umidi1 at uhub2 Feb 23 00:30:15 home99 /bsd: port 3 configuration 1 interface 0 "Roland EDIROL SD-20" rev 1.10/1.00 addr 4 Feb 23 00:30:15 home99 /bsd: umidi1: (Fixed Endpoint) Feb 23 00:30:15 home99 /bsd: umidi1: out=2, in=3 Feb 23 00:30:15 home99 /bsd: midi1 at umidi1: <USB MIDI I/F> Feb 23 00:30:15 home99 /bsd: midi2 at umidi1: <USB MIDI I/F> Feb 23 00:30:15 home99 /bsd: midi3 at umidi1: <USB MIDI I/F>
and here is the usbdevs output:
tingo@home99$ usbdevs -dv -f /dev/usb0 -a 4 Controller /dev/usb0: addr 4: full speed, power 500 mA, config 1, EDIROL SD-20(0x0027), Roland(0x0582), rev 1.00 umidi1
Very cool.
2011-02-20: under FreeBSD 8.2-prerelease, with the snd_uaudio module loaded, I get this in /var/log/messages:
root@kg-v7# uname -a FreeBSD kg-v7.kg4.no 8.2-PRERELEASE FreeBSD 8.2-PRERELEASE #4: Sun Feb 20 03:18:04 CET 2011 root@kg-v7.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64 Feb 20 20:17:11 kg-v7 root: Unknown USB device: vendor 0x0582 product 0x0027 bus uhub2 Feb 20 20:17:11 kg-v7 kernel: ugen0.4: <Roland> at usbus0
and here is the usbconfig output:
root@kg-v7# usbconfig -u 0 -a 4 ugen0.4: <EDIROL SD-20 Roland> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
usb device descriptor:
root@kg-v7# usbconfig -u 0 -a 4 dump_device_desc ugen0.4: <EDIROL SD-20 Roland> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x00ff bDeviceSubClass = 0x0000 bDeviceProtocol = 0x00ff bMaxPacketSize0 = 0x0008 idVendor = 0x0582 idProduct = 0x0027 bcdDevice = 0x0100 iManufacturer = 0x0001 <Roland> iProduct = 0x0002 <EDIROL SD-20> iSerialNumber = 0x0000 <no string> bNumConfigurations = 0x0001
current config:
root@kg-v7# usbconfig -u 0 -a 4 dump_curr_config_desc ugen0.4: <EDIROL SD-20 Roland> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x00fd bNumInterfaces = 0x0001 bConfigurationValue = 0x0001 iConfiguration = 0x0000 <no string> bmAttributes = 0x0080 bMaxPower = 0x00fa Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0002 bInterfaceClass = 0x00ff bInterfaceSubClass = 0x0003 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Additional Descriptor bLength = 0x07 bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x24, 0x01, 0x00, 0x01, 0x52, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x01, 0x10, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x01, 0x11, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x02, 0x20, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x02, 0x21, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x02, 0x22, 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x01, 0x30, 0x01, 0x20, 0x01, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x01, 0x31, 0x01, 0x21, 0x01, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x01, 0x32, 0x01, 0x22, 0x01, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x02, 0x40, 0x01, 0x10, 0x01, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x02, 0x41, 0x01, 0x11, 0x01, 0x08 | 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0001 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x06 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x06, 0x25, 0x01, 0x02, 0x10, 0x11 Endpoint 1 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x03, 0x30, 0x31, 0x32 Interface 0 Alt 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0001 bNumEndpoints = 0x0002 bInterfaceClass = 0x00ff bInterfaceSubClass = 0x0003 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Additional Descriptor bLength = 0x07 bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x24, 0x01, 0x00, 0x01, 0x52, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x01, 0x10, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x01, 0x11, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x02, 0x20, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x02, 0x21, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x06, 0x24, 0x02, 0x02, 0x22, 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x01, 0x30, 0x01, 0x20, 0x01, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x01, 0x31, 0x01, 0x21, 0x01, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x01, 0x32, 0x01, 0x22, 0x01, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x02, 0x40, 0x01, 0x10, 0x01, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x02, 0x41, 0x01, 0x11, 0x01, 0x08 | 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0001 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x06 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x06, 0x25, 0x01, 0x02, 0x10, 0x11 Endpoint 1 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0003 <INTERRUPT> wMaxPacketSize = 0x0040 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x03, 0x30, 0x31, 0x32
That's it.
2010-01-16: under FreeBSD 8.0-stable, this is what it looks like:
tingo@kg-v2$ uname -a FreeBSD kg-v2.kg4.no 8.0-STABLE FreeBSD 8.0-STABLE #1: Wed Jan 6 21:21:40 CET 2010 root@kg-v2.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64
from /var/log/messages:
Jan 16 23:57:32 kg-v2 root: Unknown USB device: vendor 0x0582 product 0x0027 bus uhub0 Jan 16 23:57:32 kg-v2 kernel: ugen0.3: <Roland> at usbus0
from usbconfig:
tingo@kg-v2$ usbconfig -u 0 ugen0.1: <OHCI root HUB nVidia> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen0.2: <PS2 to USB Converter CHESEN> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON ugen0.3: <EDIROL SD-20 Roland> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
(ugen0.2 is just an usb-to-ps2 adapter)
tingo@kg-v2$ cat /dev/midistat FreeBSD Midi Driver (midi2) No devices installed.
2009-01-26: connected the SD-20 to a machine running FreeBSD 7.1-prerelease (for completeness):
tingo@kg-work2$ uname -a FreeBSD kg-work2.kg4.no 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #3: Mon Dec 1 19:10:45 CET 2008 root@kg-work2.kg4.no:/usr/obj/usr/src/sys/SX270 i386
From /var/log/messages output:
Jan 26 00:50:14 kg-work2 root: Unknown USB device: vendor 0x0582 product 0x0027 bus uhub1 Jan 26 00:50:14 kg-work2 kernel: ugen2: <Roland EDIROL SD-20, class 255/0, rev 1.10/1.00, addr 2> on uhub1
From usbdevs -v output:
Controller /dev/usb1: addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00 port 1 addr 2: full speed, power 500 mA, config 1, EDIROL SD-20(0x0027), Roland(0x0582), rev 1.00 port 2 powered
2009-01-26: connected the SD-20 to a machine running NetBSD 5.0 BETA:
$ uname -a NetBSD kg-v2.kg4.no 5.0_BETA NetBSD 5.0_BETA (GENERIC) #0: Wed Jan 21 10:13:28 PST 2009 builds@wb27:/home/builds/ab/netbsd-5/amd64/200901210002Z-obj/home/builds/ab/netbsd-5/src/sys/arch/amd64/compile/GENERIC amd64
from /var/log/messages:
Jan 26 00:17:18 kg-v2 /netbsd: umidi0 at uhub0 port 5 configuration 1 interface 0 Jan 26 00:17:18 kg-v2 /netbsd: Roland EDIROL SD-20, rev 1.10/1.00, addr 3 Jan 26 00:17:18 kg-v2 /netbsd: umidi0: (Fixed Endpoint) Jan 26 00:17:18 kg-v2 /netbsd: umidi0: out=2, in=3 Jan 26 00:17:18 kg-v2 /netbsd: midi1 at umidi0: <0 >0 on umidi0 Jan 26 00:17:18 kg-v2 /netbsd: midi2 at umidi0: <1 >1 on umidi0 Jan 26 00:17:18 kg-v2 /netbsd: midi3 at umidi0: >1 on umidi0
From usbdevs:
kg-v2# usbdevs addr 1: OHCI root hub, vendor 0x10de addr 2: PS2 to USB Converter, CHESEN addr 3: EDIROL SD-20, Roland addr 1: EHCI root hub, vendor 0x10de addr 2: USB 2.0 Reader, Generic addr 1: OHCI root hub, vendor 0x10de addr 1: EHCI root hub, vendor 0x10de
From usbdevs -v:
kg-v2# usbdevs -v Controller /dev/usb0: addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), vendor 0x10de(0x10de), rev 1.00 port 1 powered port 2 powered port 3 addr 2: low speed, power 100 mA, config 1, PS2 to USB Converter(0x0205), CHESEN(0x0a81), rev 0.10 port 4 powered port 5 addr 3: full speed, power 500 mA, config 1, EDIROL SD-20(0x0027), Roland(0x0582), rev 1.00 port 6 powered
2009-01-25: connected the SD-20 to a machine running Xubuntu 8.10. From /var/log/messages:
Jan 25 22:02:21 kg-home kernel: [172767.376273] usb 2-2: new full speed USB device using uhci_hcd and address 6 Jan 25 22:02:21 kg-home kernel: [172767.574398] usb 2-2: configuration #1 chosen from 1 choice Jan 25 22:02:21 kg-home kernel: [172767.839019] usbcore: registered new interface driver snd-usb-audio
Output from lsusb:
tingo@kg-home:~$ lsusb -d 0582:0027 Bus 002 Device 006: ID 0582:0027 Roland Corp. EDIROL SD-20
and lsusb -v output.
2008-03-11: connected an Edirol SD-20 to a machine running FreeBSD 7.0-stable. From /var/log/messages:
Mar 11 20:22:21 kg-i82 kernel: ugen0: <Roland EDIROL SD-20, class 255/0, rev 1.10/1.00, addr 2> on uhub0 Mar 11 20:22:21 kg-i82 root: Unknown USB device: vendor 0x0582 product 0x0027 bus uhub0
and lsusb output:
root@kg-i82# lsusb Bus /dev/usb0 Device /dev/ugen0: ID 0582:0027 Roland Corp.