Re: Audioaufnahme stottert gelegentlich

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Tue, 13 May 2008 19:03:28 +0200 (CEST)

Peter Ross wrote:
> ich bin dabei, für einen Freund alte Platten zu digitalisieren. Ich habe
> dazu gramofile benutzt.
>
> Für die meiste Zeit scheint es gut zu gehen, aber eben habe ich zufällig
> mittendrin Stotterer entdeckt.
>
> Ich weiß nicht, ob ich zu dem Zeitpunkt in der Aufnahme vielleicht gerade
> einen Load-, Memory- oder I/O-Peak hatte (es ist mein Laptop, es könnte
> sowas wie Browserstarten oder so sein..)

Browserstarten? Echtzeitaufnahmen (Audio und/oder Video)
würde ich nicht auf einem Rechner machen, auf dem X läuft,
geschweige denn während der Aufnahme irgendetwas machen,
was nennenswert I/O erzeugt (was ein Browserstart sicher-
lich tut). Genau das dürfte nämlich das Problem gewesen
sein: I/O.

Auch Dinge wie nice(1) oder idprio(1) helfen Dir in solchen
Fällen wenig, da sie nur die CPU-Zuteilung des Schedulers
beeinflussen. Das hat aber nichts damit zu tun, dass eine
Echtzeit-Aufnahme eine gewisse konstante I/O-Bandbreite
benötigt.

> Derzeit läuft mein Laptop mit einem ein paar Wochen alten FreeBSD-7 und
> mit dem Defaultscheduler.
>
> Könnte ein Schedulerwechsel helfen? Andere Ideen?

Wenn Du ein aktuelles 7-stable hast, hast Du per default
den ULE-Scheduler (wenn Du keine alte Kernel-config ver-
wendest, wo noch der alte BSD-Scheduler drinsteht). Den
solltest Du auch verwenden.

Ansonsten:

 - Kein X11 laufen lassen. Falls Du unbedingt ein GUI-
   Programm für die Aufnahmen verwenden willst, kannst Du
   dies ja per Remote-Display-verbindung auf einem X-Server
   (anderer Rechner) laufen lassen, und ansonsten keine
   X-Programm auf dem Rechner starten, der die Aufnahme.
   macht.

 - Während der Aufnahme keine unnützen Programme starten,
   am besten gar nichts. Wenn Du paranoid bist, kannst Du
   auch den cron killen.

 - sysctl hw.snd.maxautovchans=0 (Disabled VCHANs im
   Kernel, die Du vermutlich nicht brauchst und die einen
   gewissen Overhead haben.)

 - sysctl dev.pcm.0.buffersize=32768 (Der Default ist 16K;
   möglicherweise hilft ein größerer Wert, aber das musst
   Du im Zweifelsfall testen.)

> Es sind ungefähr zehn Stunden Musik, die möchte ich nicht alle dreimal
> hören, aber auch keinen "Schrott" zurückgeben.

Also, um mindestens einmal Prüfhören wirst Du nicht herum-
kommen, fürchte. Zumindest würde ich es tun. Ob Buffer-
overruns im Soundtreiber aufgetreten sind, kannst Du so
herausfinden:

 $ sysctl hw.snd.verbose=2
 $ cat /dev/sndstat

In der Ausgabe wird die Anzahl der Overruns unter "Record"
angezeigt. Das sollte idealerweise Null sein.

Aber nicht alle potentiellen Probleme sind Overruns, daher
solltest Du auf jeden Fall auch Prüfhören. Es sei denn,
der Stil der Musik ist diametral zu Deinem eigenen Musik-
geschmack; in dem Fall solltest Du das Probehören besser
dem überlassen, für den Du die Aufnahmen machst. ;-)
(Schließlich möchte er's ja auch haben.)

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"The last good thing written in C was
Franz Schubert's Symphony number 9."
        -- Erwin Dieterich
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 13 May 2008 - 19:03:34 CEST

search this site