Xruns & Co.

hier dreht sich alles um midi-sequencing und harddiskrecording mit linux.
hier bist du also genau richtig, wenn du dich von programmen wie cubase, logic oder protools trennen willst...
Antworten
Benutzeravatar
stevie777
Power User
Power User
Beiträge: 687
Registriert: Do Feb 04, 2010 11:28 pm

Xruns & Co.

Beitrag von stevie777 »

Was genau sind eigentlich xruns? Wenn ich mir so meine Meldungen von Tante Jack anschaue, habe ich wohl den ein oder anderen:

Code: Alles auswählen

08:07:02.054 Steckfeld deaktiviert.
08:07:02.061 Statistik zurückgesetzt.
08:07:02.068 Startup script...
08:07:02.069 artsshell -q terminate
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
08:07:02.096 Schaubild der ALSA-Verbindungen geändert.
sh: artsshell: not found
08:07:02.594 Startup script terminated mit Rückgabewert = 32512.
08:07:02.595 JACK startet...
08:07:02.595 /usr/bin/jackd -dalsa -dhw:0 -r44100 -p1024 -n2
08:07:02.700 JACK wurde mit PID = 2648 gestartet.
08:07:02.797 ALSA-Verbindung geändert.
ALSA: final selected sample format for capture: 32bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit little-endian
ALSA: use 2 periods for playback
08:07:04.823 Serverkonfiguration nach "/home/stefan/.jackdrc" gespeichert.
08:07:04.824 Statistik zurückgesetzt.
08:07:04.843 Client aktiviert
08:07:04.847 JACK-Verbindung geändert.
08:07:04.882 Schaubild der JACK-Verbindungen geändert.
08:07:12.502 Schaubild der ALSA-Verbindungen geändert.
08:07:12.562 ALSA-Verbindung geändert.
alsa_driver_xrun_recovery 
08:07:12.813 XRUN callback (1).
**** alsa_pcm: xrun of at least 1266303729926.144 msecs
ProcessAsync: read error
alsa_driver_xrun_recovery 
**** alsa_pcm: xrun of at least 1266303729926.144 msecs
08:07:14.046 XRUN callback (2).
ProcessAsync: read error
08:07:14.721 Schaubild der JACK-Verbindungen geändert.
08:07:33.666 Schaubild der JACK-Verbindungen geändert.
08:07:34.316 Schaubild der JACK-Verbindungen geändert.
08:07:34.671 Schaubild der JACK-Verbindungen geändert.
08:07:34.735 JACK-Verbindung geändert.
08:07:34.737 Schaubild der JACK-Verbindungen geändert.
08:07:34.993 JACK-Verbindung geändert.
08:07:34.997 Schaubild der JACK-Verbindungen geändert.
alsa_driver_xrun_recovery 
**** alsa_pcm: xrun of at least 1266303729926.144 msecs
ProcessAsync: read error
08:07:35.398 XRUN callback (3).
08:07:47.324 XRUN callback (4).
JackEngine::XRun: client = ardour was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackEngine::XRun: client = qjackctl was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackActivationCount::Signal value = 0 ref = 3
08:08:23.476 XRUN callback (5).
alsa_driver_xrun_recovery 
**** alsa_pcm: xrun of at least 1266303729926.144 msecs
ProcessAsync: read error
08:08:37.129 XRUN callback (6).
JackEngine::XRun: client = qjackctl was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackActivationCount::Signal value = 0 ref = 3
08:10:35.672 XRUN callback (7).
JackEngine::XRun: client = qjackctl was not run: state = 1
JackAudioDriver::ProcessAsync Process error
08:11:24.104 XRUN callback (8).
JackActivationCount::Signal value = 0 ref = 3
JackEngine::XRun: client = ardour was not run: state = 2
JackAudioDriver::ProcessAsync Process error
08:12:32.489 XRUN callback (9).
JackEngine::XRun: client = qjackctl was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackActivationCount::Signal value = 0 ref = 3
08:13:37.525 XRUN callback (10).
JackEngine::XRun: client = qjackctl was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackActivationCount::Signal value = 0 ref = 3
08:14:19.156 XRUN callback (11).
JackEngine::XRun: client = qjackctl was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackActivationCount::Signal value = 0 ref = 3
08:14:26.034 XRUN callback (12).
alsa_driver_xrun_recovery 
**** alsa_pcm: xrun of at least 1266303729926.144 msecs
ProcessAsync: read error
08:15:29.567 XRUN callback (13).
Benutzeravatar
linuxchaos
Site Admin
Site Admin
Beiträge: 1312
Registriert: Mo Mär 03, 2003 9:32 pm
Kontaktdaten:

Beitrag von linuxchaos »

hallo,

bei xruns kommt die audioengine nicht nach - leerer buffer oder sowas. beim straten oder beenden von programmen ist das nichts besonderes, bei laufenden betrieb sollte es allerdings ohne gehen. ganz kleine xruns sind aber auch nicht der untergang. ardour zeigt einem die xruns als marker an. ich höre mir die stellen dann sehr genau an un in 90% der fälle kann die aufnahme trotzdem prblemlos verwendet werden...

grüsse
l.chaos
http://www.audiowerkstatt.de
brummer
Power User
Power User
Beiträge: 355
Registriert: Mi Jul 16, 2008 10:46 am

Re: Xruns & Co.

Beitrag von brummer »

stevie777 hat geschrieben:Was genau sind eigentlich xruns?
Jack transportiert die Audio daten als Daten packete (frames). Diese müssen natürlich rechtzeitig an der Soundkarte ankommen um ein Reibungsloses Abspielen zu gewährleisten.
Kommt ein Packet zu spät, fällt es weg. Das is gleichbedeutend mit Daten Verlust(Xrun).!

Es kommen 2 Verursacher in frage.
1.) Die Software, player,Effect, oder Synthese Berechnung dauert zu lange.
2.) Die Datenübertragung an die Soundkarte dauert zu lange.

Im ersten Fall ist die CPU das Nadelöhr. Die Realtime Einstellung von Jack ist dafür gedacht,
Audio Daten Berechnung in der CPU zu Priorisieren. Inzwischen ist zwar kein rt-kernel mehr nötig um jack mit realtime prio laufen zu lassen, aber . .

Im Zweiten Fall sind die IRQ's deines Rechners das Nadelöhr, und das kann mit hilfe des rt-kernels geändert werden. Der IRQ deiner Soundkarte kann mit einer höheren priorität versehen werden.

gruß brummer
zettberlin
Power User
Power User
Beiträge: 1233
Registriert: Di Jul 06, 2004 11:47 pm
Wohnort: Berlin
Kontaktdaten:

Beitrag von zettberlin »

Das Wort Xrun ist typisches Hacker-L337 - die Daten gehen, wie Brummer ganz richtig erklärt, verloren, wenn das System sie nicht ausreichend schnell transportieren kann.
Das geschieht, wenn die liefernden Programme nicht genug Rechenleistung bekommen. Dann läuft jacks Buffer leer (underrun). Aber auch, wenn Jack die Daten nicht schnell genug vom Backend (Alsa für PCI/USB-Soundkarten, FFADO für Firewire) abgenommen bekommt, müssen Pakete verworfen werden - das ist dann ein Buffer overrun. Richtig wäre also eigentlich over/underrun, daraus hat sich der Begriff Xrun abgeleitet, weil er kürzer, griffiger und L337-mäßig kryptischer ist ;-)
nostrum fungitur
Drumfix
Power User
Power User
Beiträge: 144
Registriert: Di Apr 29, 2003 4:29 pm

Beitrag von Drumfix »

08:07:02.595 /usr/bin/jackd -dalsa -dhw:0 -r44100 -p1024 -n2

Und die Zeile sagt uns, dass du jackd ohne Realtime (-R) startest
Benutzeravatar
stevie777
Power User
Power User
Beiträge: 687
Registriert: Do Feb 04, 2010 11:28 pm

Beitrag von stevie777 »

Sieht so aus, als wenn Drumfix recht gehabt hat. Ein Häckchen bei "Realtime" und Ardour lässt sich ohne Meckern aufrufen. Ich beobachte das noch mal, aber das war schon der entscheidende Hinweis, glaub ich . :hm:
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast