Re: [LAU] midi keyboards, jackd, low latency

From: tizo <tizone@email-addr-hidden>
Date: Fri Feb 27 2009 - 16:42:39 EET

On Thu, Feb 26, 2009 at 7:35 PM, Patrick Shirkey
<pshirkey@boosthardware.com> wrote:
> 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@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@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 had already checked that; it is not a possibility in my computer.

>> 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.
>

Ok, thanks.

>> 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.
>
>

Actually, I am using a realtime kernel. Anyway, I have to make some
more test with the midi keyboards. With one of them, I can play right,
with 64 or 128 fpp, although there are some xruns.

>> Thanks very much,
>>
>> tizo
>> _______________________________________________
>> Linux-audio-user mailing list
>> Linux-audio-user@lists.linuxaudio.org
>> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
>>
>
>
> --
> Patrick Shirkey
> Boost Hardware Ltd.
>

Thanks,

tizo
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
Received on Fri Feb 27 20:15:04 2009

This archive was generated by hypermail 2.1.8 : Fri Feb 27 2009 - 20:15:04 EET