[LAU] midi keyboards, jackd, low latency

Patrick Shirkey pshirkey at boosthardware.com
Thu Feb 26 16:35:27 EST 2009


tizo wrote:
> Hi there,
>
> Sorry about my previous mail. I was just starting to write a draft
> about the topics I want to ask, and I accidentally push the send
> button.
>
> Well, my goal is to play two midi keyboards, sending the events
> through jackd, to qsynth. My computer is a Laptop HP 550, with HDA
> Intel sound card, 3 GB of memory, and a Core 2 DUO CPU of 1.40 GHz. My
> OS is UbuntuStudio 8.04, with kernel 2.6.24-23-rt.
>
> First of all, I cannot run jackd without xruns, if I configure it with
> 32 frames per period, or less. I am running it as root, with realtime,
> and a priority of 70. As soon as I run it, it starts to count xruns,
> and I am only executing jackd.
>
> Looking at the different IRQ, I have saw that my sound card is sharing
> the IRQ 16 with an USB port, and the video driver. This is a cat of
> /proc/interrupts:
>
>            CPU0       CPU1
>   0:    1026591    1099066   IO-APIC-edge      timer
>   1:       2060        839   IO-APIC-edge      i8042
>   8:          0          1   IO-APIC-edge      rtc
>   9:        121         95   IO-APIC-fasteoi   acpi
>  12:     118454      56308   IO-APIC-edge      i8042
>  14:       6410       5638   IO-APIC-edge      libata
>  15:       5167       6228   IO-APIC-edge      libata
>  16:        624        482   IO-APIC-fasteoi   uhci_hcd:usb1, HDA
> Intel, i915 at pci:0000:00:02.0
>  17:      24009      14458   IO-APIC-fasteoi   eth1
>  18:          0          0   IO-APIC-fasteoi   ehci_hcd:usb2, uhci_hcd:usb5
>  20:          0          0   IO-APIC-fasteoi   uhci_hcd:usb3, ehci_hcd:usb6
>  21:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
> 508:        378        139   PCI-MSI-edge      eth0
> NMI:          0          0   Non-maskable interrupts
> LOC:     295845     239602   Local timer interrupts
> RES:      34174      96493   Rescheduling interrupts
> CAL:      10832        457   function call interrupts
> TLB:        873        742   TLB shootdowns
> TRM:          0          0   Thermal event interrupts
> THR:          0          0   Threshold APIC interrupts
> SPU:          0          0   Spurious interrupts
> ERR:          0
>
> I have searched a lot on Internet, and even in the list, and I have
> not found a way to change the IRQ assignments. In fact, I have read
> some mails that said that I can't do that in a laptop (except in some
> Thinkpads, where IRQ can be changed in the BIOS), as in PCs this can
> be done changing the card to other slot. In other places, some kernel
> parameters were suggested to obtain other IRQ assignments, but the
> only parameter that change those in my computer, was "acpi=off", and
> it was not better. In this case, /proc/interrupts shows the following:
>
>            CPU0
>   0:        602    XT-PIC-XT        timer
>   1:        209    XT-PIC-XT        i8042
>   2:          0    XT-PIC-XT        cascade
>   8:          0    XT-PIC-XT        rtc
>  10:       2912    XT-PIC-XT        uhci_hcd:usb1, uhci_hcd:usb3,
> uhci_hcd:usb4, ehci_hcd:usb6, eth1, HDA Intel, i915 at pci:0000:00:02.0
>  11:          0    XT-PIC-XT        ehci_hcd:usb2, uhci_hcd:usb5
>  12:       5196    XT-PIC-XT        i8042
>  14:       9987    XT-PIC-XT        libata
>  15:        704    XT-PIC-XT        libata
> 508:         31   PCI-MSI-edge      eth0
> NMI:          0   Non-maskable interrupts
> LOC:      87955   Local timer interrupts
> RES:          0   Rescheduling interrupts
> CAL:          0   function call interrupts
> TLB:          0   TLB shootdowns
> TRM:          0   Thermal event interrupts
> THR:          0   Threshold APIC interrupts
> SPU:          0   Spurious interrupts
> ERR:          0
>
> So, my first question is: is there a way to change my IRQ assignment?,
> or that really cannot be done in my laptop? I would like to have it in
> a not shared one, not necessarily in IRQ 9, as with rt kernel a
> priority raise of an IRQ can be done with chrt.
>   

Probably not. But check your bios anyway just in case you can reassign 
the irq there.


> I have also read, that the HDA sound card is not good for audio
> processing. I am just starting to configure my whole "synthetizer
> box", so by this time, I am only making some tests with it. But, for
> the near future, which usb sound card would you recommend?.
>
>   

The hda should give you reasonable audio quality and performance but you 
will get better of both worlds with a professional sound card.

Make sure it is usb-2.0 capable if you must use a usb sound card. You 
could also look into a firewire device which tend to have better latency 
performance.

> I also wonder that, if the IRQ of USB ports cannot be change too, I
> would have some of them sharing some IRQ. Would that affect the
> performance, having an usb sound card?. And what about the performance
> of the midi events for the keyboards connected to the laptop?.
>
>   

If you can get the realtime kernel running it will improve latency 
performance. But you might find that a standard kernel is good enough 
for your general needs.


> Thanks very much,
>
> tizo
> _______________________________________________
> Linux-audio-user mailing list
> Linux-audio-user at lists.linuxaudio.org
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
>   


-- 
Patrick Shirkey
Boost Hardware Ltd.






More information about the Linux-audio-user mailing list