Midi Controller, snd_usb_audio?


MrChops

Member
Joined
Sep 2, 2010
Messages
207
I recently picked up an m-audio trigger finger for $50 on cl.


a.provider,m.254679,mod.media,th.normal,s.pictures.jpg



I was hoping it would be detected in SunVox, lmms, or seq24 but I'm having trouble getting it to work. It connects and is powered with usb, so it would be very portable if I was able to get it to work but, at the same time, that fact is also the reason I'm having trouble. It's not a usb to midi cable, it's a strait usb cable. The trigger finger is made for pc/mac but I read online that it works on linux with the module snd_usb_audio. lsmod does not list it on my pandora (hf6). The angstrom repository has it but I've only ever installed programs from the repository, never messed with kernel modules. Is it possible to install modules or do they have to be built into the kernel? I'm a linux noob so you'll have to excuse my ignorance. Thanks in advance for any help, I'm really excited about possibly having a super portable pandora powered midi drum pad. B)
 
snd_usb_audio is indeed included, but the device has first to be recognized.


1- plug the device, then power on the OP.


2- if lsmod shows nothing, unplug, replug and type dmesg in the terminal. What do you see ?


3- type sudo lsusb -v and try to see the amount of current drained by your device.
 
Last edited by a moderator:
I don't have this specific device, but I have a Korg Nanokey that is detected fine in lmms and sunvox. I usually use it on an unpowered hub, but I think it worked without too. I echo the advice fron Linux-SWAT, I'm thinking it could be power hungry.
 
I saw a thread where Gruso mentioned you have to use a hub sometimes and that worked for me, it's now recognized. I'm not sure how to tell what the power drain is with lsusb, I see where it says maxpower is 120mA so I guess thats it. Its been plugged in for an hour with wifi running and It doesn't seem to drain all that fast. Although I haven't got it to actually trigger any sounds yet :p any pointers?


[edit]lsusb out:

Code:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Device Descriptor:

  bLength            	18

  bDescriptorType     	1

  bcdUSB           	2.00

  bDeviceClass        	9 Hub

  bDeviceSubClass     	0 Unused

  bDeviceProtocol     	0 Full speed (or root) hub

  bMaxPacketSize0    	64

  idVendor       	0x1d6b Linux Foundation

  idProduct      	0x0002 2.0 root hub

  bcdDevice        	2.06

  iManufacturer       	3 Linux 2.6.27.46-omap1 ehci_hcd

  iProduct            	2 OMAP-EHCI Host Controller

  iSerial             	1 ehci-omap.0

  bNumConfigurations  	1

  Configuration Descriptor:

	bLength             	9

	bDescriptorType     	2

	wTotalLength       	25

	bNumInterfaces      	1

	bConfigurationValue 	1

	iConfiguration      	0

	bmAttributes     	0xe0

  	Self Powered

  	Remote Wakeup

	MaxPower            	0mA

	Interface Descriptor:

  	bLength             	9

  	bDescriptorType     	4

  	bInterfaceNumber    	0

  	bAlternateSetting   	0

  	bNumEndpoints       	1

  	bInterfaceClass     	9 Hub

  	bInterfaceSubClass  	0 Unused

  	bInterfaceProtocol  	0 Full speed (or root) hub

  	iInterface          	0

  	Endpoint Descriptor:

    	bLength             	7

    	bDescriptorType     	5

    	bEndpointAddress 	0x81  EP 1 IN

    	bmAttributes        	3

      	Transfer Type        	Interrupt

      	Synch Type           	None

      	Usage Type           	Data

    	wMaxPacketSize 	0x0004  1x 4 bytes

    	bInterval          	12

Hub Descriptor:

  bLength           	9

  bDescriptorType  	41

  nNbrPorts         	3

  wHubCharacteristic 0x0009

	Per-port power switching

	Per-port overcurrent protection

  bPwrOn2PwrGood   	10 * 2 milli seconds

  bHubContrCurrent  	0 milli Ampere

  DeviceRemovable	0x00

  PortPwrCtrlMask	0xff

Hub Port Status:

   Port 1: 0000.0100 power

   Port 2: 0000.0503 highspeed power enable connect

   Port 3: 0000.0100 power

Device Status: 	0x0001

  Self Powered

Bus 001 Device 004: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub

Device Descriptor:

  bLength            	18

  bDescriptorType     	1

  bcdUSB           	2.00

  bDeviceClass        	9 Hub

  bDeviceSubClass     	0 Unused

  bDeviceProtocol     	1 Single TT

  bMaxPacketSize0    	64

  idVendor       	0x05e3 Genesys Logic, Inc.

  idProduct      	0x0606 USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub

  bcdDevice        	7.02

  iManufacturer       	0

  iProduct            	1 USB2.0 Hub

  iSerial             	0

  bNumConfigurations  	1

  Configuration Descriptor:

	bLength             	9

	bDescriptorType     	2

	wTotalLength       	25

	bNumInterfaces      	1

	bConfigurationValue 	1

	iConfiguration      	0

	bmAttributes     	0xe0

  	Self Powered

  	Remote Wakeup

	MaxPower          	100mA

	Interface Descriptor:

  	bLength             	9

  	bDescriptorType     	4

  	bInterfaceNumber    	0

  	bAlternateSetting   	0

  	bNumEndpoints       	1

  	bInterfaceClass     	9 Hub

  	bInterfaceSubClass  	0 Unused

  	bInterfaceProtocol  	0 Full speed (or root) hub

  	iInterface          	0

  	Endpoint Descriptor:

    	bLength             	7

    	bDescriptorType     	5

    	bEndpointAddress 	0x81  EP 1 IN

    	bmAttributes        	3

      	Transfer Type        	Interrupt

      	Synch Type           	None

      	Usage Type           	Data

    	wMaxPacketSize 	0x0001  1x 1 bytes

    	bInterval          	12

Hub Descriptor:

  bLength           	9

  bDescriptorType  	41

  nNbrPorts         	4

  wHubCharacteristic 0x00e0

	Ganged power switching

	Ganged overcurrent protection

	TT think time 32 FS bits

	Port indicators

  bPwrOn2PwrGood   	50 * 2 milli seconds

  bHubContrCurrent	100 milli Ampere

  DeviceRemovable	0x00

  PortPwrCtrlMask	0xff

Hub Port Status:

   Port 1: 0000.0100 power

   Port 2: 0000.0100 power

   Port 3: 0000.0103 power enable connect

   Port 4: 0000.0100 power

Device Qualifier (for other device speed):

  bLength            	10

  bDescriptorType     	6

  bcdUSB           	2.00

  bDeviceClass        	9 Hub

  bDeviceSubClass     	0 Unused

  bDeviceProtocol     	0 Full speed (or root) hub

  bMaxPacketSize0    	64

  bNumConfigurations  	1

Device Status: 	0x0003

  Self Powered

  Remote Wakeup Enabled

Bus 001 Device 005: ID 0763:0117 Midiman Trigger Finger

Device Descriptor:

  bLength            	18

  bDescriptorType     	1

  bcdUSB           	1.00

  bDeviceClass        	0 (Defined at Interface level)

  bDeviceSubClass     	0

  bDeviceProtocol     	0

  bMaxPacketSize0    	64

  idVendor       	0x0763 Midiman

  idProduct      	0x0117 Trigger Finger

  bcdDevice        	1.01

  iManufacturer       	1 M-Audio

  iProduct            	2 USB Trigger Finger

  iSerial             	0

  bNumConfigurations  	1

  Configuration Descriptor:

	bLength             	9

	bDescriptorType     	2

	wTotalLength      	101

	bNumInterfaces      	2

	bConfigurationValue 	1

	iConfiguration      	3 Audio Class

	bmAttributes     	0xc0

  	Self Powered

	MaxPower          	120mA

	Interface Descriptor:

  	bLength             	9

  	bDescriptorType     	4

  	bInterfaceNumber    	0

  	bAlternateSetting   	0

  	bNumEndpoints       	0

  	bInterfaceClass     	1 Audio

  	bInterfaceSubClass  	1 Control Device

  	bInterfaceProtocol  	0

  	iInterface          	0

  	AudioControl Interface Descriptor:

    	bLength             	9

    	bDescriptorType    	36

    	bDescriptorSubtype  	1 (HEADER)

    	bcdADC           	1.00

    	wTotalLength        	9

    	bInCollection       	1

    	baInterfaceNr( 0)   	1

	Interface Descriptor:

  	bLength             	9

  	bDescriptorType     	4

  	bInterfaceNumber    	1

  	bAlternateSetting   	0

  	bNumEndpoints       	2

  	bInterfaceClass     	1 Audio

  	bInterfaceSubClass  	3 MIDI Streaming

  	bInterfaceProtocol  	0

  	iInterface          	0

  	MIDIStreaming Interface Descriptor:

    	bLength             	7

    	bDescriptorType    	36

    	bDescriptorSubtype  	1 (HEADER)

    	bcdADC           	1.00

    	wTotalLength       	65

  	MIDIStreaming Interface Descriptor:

    	bLength             	6

    	bDescriptorType    	36

    	bDescriptorSubtype  	2 (MIDI_IN_JACK)

    	bJackType           	1 Embedded

    	bJackID             	1

    	iJack               	0

  	MIDIStreaming Interface Descriptor:

    	bLength             	6

    	bDescriptorType    	36

    	bDescriptorSubtype  	2 (MIDI_IN_JACK)

    	bJackType           	2 External

    	bJackID             	2

    	iJack               	0

  	MIDIStreaming Interface Descriptor:

    	bLength             	9

    	bDescriptorType    	36

    	bDescriptorSubtype  	3 (MIDI_OUT_JACK)

    	bJackType           	1 Embedded

    	bJackID             	3

    	bNrInputPins        	1

    	baSourceID( 0)      	2

    	BaSourcePin( 0)     	1

    	iJack               	0

  	MIDIStreaming Interface Descriptor:

    	bLength             	9

    	bDescriptorType    	36

    	bDescriptorSubtype  	3 (MIDI_OUT_JACK)

    	bJackType           	2 External

    	bJackID             	4

    	bNrInputPins        	1

    	baSourceID( 0)      	1

    	BaSourcePin( 0)     	1

    	iJack               	0

  	Endpoint Descriptor:

    	bLength             	9

    	bDescriptorType     	5

    	bEndpointAddress 	0x81  EP 1 IN

    	bmAttributes        	2

      	Transfer Type        	Bulk

      	Synch Type           	None

      	Usage Type           	Data

    	wMaxPacketSize 	0x0040  1x 64 bytes

    	bInterval           	0

    	bRefresh            	0

    	bSynchAddress       	0

    	MIDIStreaming Endpoint Descriptor:

      	bLength             	5

      	bDescriptorType    	37

      	bDescriptorSubtype  	1 (GENERAL)

      	bNumEmbMIDIJack     	1

      	baAssocJackID( 0)   	3

  	Endpoint Descriptor:

    	bLength             	9

    	bDescriptorType     	5

    	bEndpointAddress 	0x02  EP 2 OUT

    	bmAttributes        	2

      	Transfer Type        	Bulk

      	Synch Type           	None

      	Usage Type           	Data

    	wMaxPacketSize 	0x0040  1x 64 bytes

    	bInterval           	0

    	bRefresh            	0

    	bSynchAddress       	0

    	MIDIStreaming Endpoint Descriptor:

      	bLength             	5

      	bDescriptorType    	37

      	bDescriptorSubtype  	1 (GENERAL)

      	bNumEmbMIDIJack     	1

      	baAssocJackID( 0)   	1

Device Status: 	0x0000

  (Bus Powered)
 
Last edited by a moderator:
For the power part, it's far below the limit (500mA), so it's OK.


bcdUSB is 1, so your device is USB 1.


As the big host port on the Pandora is only USB 2, you indeed have to use a HUB.


Take care choosing a good one :


http://pandorawiki.org/USB_compatibility_list#Compact_USB_Hubs'>http://pandorawiki.org/USB_compatibility_list#Compact_USB_Hubs


More reading :


http://pandorawiki.org/USB
 
Finally got it to trigger sounds. Apparently it was set to channel 2, once I set the trigger finger to channel 1 it worked great except the response time is terrible when using it with sunvox. Any tips or tricks that anyone knows of to shorten the response time?
 
Finally got it to trigger sounds. Apparently it was set to channel 2, once I set the trigger finger to channel 1 it worked great except the response time is terrible when using it with sunvox. Any tips or tricks that anyone knows of to shorten the response time?

Maybe an overclock would help? Though that would probably not fix the problem.
 
Run the "top" command in a term, using you device like crazy, and see the cpu usage.


If you have a clear average 100% you may have to overclock.
 
Last edited by a moderator:
Get a -rt kernel to lower latency, CPU scheduler with lower latency instead of raw performance might help too.
 
yea, I was already overclocked to 900+ so I don't think oc will do it. Is the real time kernel something I can do, is there a tutorial somewhere I can read? How does a CPU scheduler work?
 
I'm not sure your problem is linked to frequency or latency.


I'd say it's more a USB hub (you use one, right ?) or app problem.


Did you tried with another MIDI program (if there's any) ?
 
yea, I was already overclocked to 900+ so I don't think oc will do it. Is the real time kernel something I can do, is there a tutorial somewhere I can read? How does a CPU scheduler work?
I'm still interested in this thread.

Have you had any luck reducing cpu usage?
 
Back
Top