2008/9/24 Pieter Palmers <pieterp@joow.be>
Mysth-R wrote:


2008/9/23 Pieter Palmers <pieterp@joow.be <mailto:pieterp@joow.be>>


   Mysth-R wrote:

       Hi,

       I've got a strange behaviour with my midi controller and/or
       freebob/ffado.
       I made a pure data patch, with a midi learn function. So I can
       control everything with my midi controller.
       When I use jack with Freebob or ffado (I tested both) and a
       Presonus Firebox, I got cracking sounds every time I move
       faders, pots from my Midi Controler.
       When I use jack with alsa and a poor usb berhinger UCA202 it
       works perfectly : no cracking sounds


   Is your midi controller attached to the Presonus box or is it a USB
   midi controller?


I tried with USB and directly attached to the Presonus. My controller is a Korg microKontrol, but I tried with another controller too (an EMU I think)
I also tried with Jackd and Jackdmp , cause I am on Gentoo 64bits.

Strange...


 

   What settings do you use for jackd?


My settings are :

/usr/bin/jackd -R -dfirewire -r48000 -p256 -n3

does it happen with higher buffer sizes too?

try increasing the priority of jackd to 65:
/usr/bin/jackd -R -P65 -dfirewire -r48000 -p256 -n3

I suspect that it has something to do with the kernel layer since it's present in both freebob and ffado.

Ok I have made some tests

First test :
priority : 65
frame/period : 4096
Test OK !! :)

Second test :
Priority : 65
Frame/period : 512
It cracks !

Last test :
Priority : 65
Frame / period : 1024
Test OK !!
 
A friend of mine just tell me that my pd patch works find with his config, and freebob : no cracks !
What, in your mind, could be the problem ? software ? hardware ?

on my gentoo I have compiled my own kernel (2.6.25.4-rt5). But on the open suse I took the one from Jacklab (2.6.22.13)


#################################################
Some more infos :
1- lspci
2- cat /proc/interrupts
3- rtirq
4- limit.conf


###############################################"
1- lspci  :

mysthr2@localhost ~ $ sudo lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation GeForce Go 7900 GS (rev a1)
03:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
03:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
03:01.2 System peripheral: Ricoh Co Ltd Device 0843 (rev 01)
03:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
03:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
0d:00.0 PCI bridge: Texas Instruments XIO2000(A)/XIO2200(A) PCI Express-to-PCI Bridge (rev 03)
0e:00.0 FireWire (IEEE 1394): Texas Instruments XIO2200(A) IEEE-1394a-2000 Controller (PHY/Link) (rev 01)
mysthr2@localhost ~ $


#########################################################
2- cat /proc/interrupts

           CPU0       CPU1      
  0:    1558526          0   IO-APIC-edge      timer
  1:       1313          0   IO-APIC-edge      i8042
  8:          1          0   IO-APIC-edge      rtc
  9:          2          0   IO-APIC-fasteoi   acpi
 12:        123          0   IO-APIC-edge      i8042
 14:      11715          0   IO-APIC-edge      ata_piix
 15:         97          0   IO-APIC-edge      ata_piix
 16:      48553          0   IO-APIC-fasteoi   nvidia
 17:       1495          0   IO-APIC-fasteoi   eth0
 19:         83          0   IO-APIC-fasteoi   ohci1394, ohci1394
 20:       6296          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2
 21:        106          0   IO-APIC-fasteoi   uhci_hcd:usb3, HDA Intel
 22:         92          0   IO-APIC-fasteoi   uhci_hcd:usb4
 23:          0          0   IO-APIC-fasteoi   uhci_hcd:usb5
NMI:          0          0   Non-maskable interrupts
LOC:      39497    1450011   Local timer interrupts
RES:      35829      46345   Rescheduling interrupts
CAL:         38         43   function call interrupts
TLB:        259        469   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
SPU:          0          0   Spurious interrupts
ERR:          0

##################################################

3- rtirq :

#!/bin/sh
#
# Copyright (c) 2004-2007 rncbc aka Rui Nuno Capela.
#
# /etc/conf.d/rtirq
#
# Configuration for IRQ thread tunning,
# for realtime-preempt enabled kernels.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 or later.
#

# IRQ thread service names
# (space separated list, from higher to lower priority).
RTIRQ_NAME_LIST="rtc ohci1394 i8042"

# Highest priority.
RTIRQ_PRIO_HIGH=99

# Priority decrease step.
RTIRQ_PRIO_DECR=10

# Whether to reset all IRQ threads to SCHED_OTHER.
RTIRQ_RESET_ALL=0

# On kernel configurations that support it,
# which services should be NOT threaded
# (space separated list).
RTIRQ_NON_THREADED="rtc ohci1394"

# Process names which will be forced to the
# highest realtime priority range (99-91)
# (space separated list, from highest to lower priority).
# RTIRQ_HIGH_LIST="softirq-timer"


#############################################################"
4- limits.conf

@audio          -       rtprio          99
@audio          -       nice            -10
@audio          -       memlock         1774000


###########################################################

That's all !! :)
Cheers,

Mysth-R

--
* ***************************************************************************************
* {^_^} Mysth-R {^_^}
* <= Aide Auditive =>
*
* http://myspace.com/mysthr
* http://myspace.com/aideauditive
* http://mysthr.free.fr/Joomla => Site dédié à l'audio sous Fedora/PlanetCCRMA.
* ***************************************************************************************