Strona 1 z 1

ALSA - problem z dźwiękiem czy za mało RAMu? - ALSA lib pcm.c:8251:(snd_pcm_recover) underrun occurred

: 11 grudnia 2016, 19:03
autor: tokirium
Zainstalowałem program GrandOrgue, który emuluje prawdziwe organy piszczałkowe. Dla tych, którzy nie wiedzą to program wczytuje po prostu do pamięci tzw. sample - nagrane próbki brzmienia poszczególnych piszczałek z prawdziwych organów (nawet kilka tysięcy plików wav) i odtwarza je podczas gry na klawiaturze MIDI, dając bardzo realistyczne brzmienie organów, umożliwiając też dowolne dobieranie głosów podczas gry.
Niestety na moim sprzęcie nie da się grać - jak "gram" jednym palcem to dźwięk jest prawidłowy, ale jak wcisnę więcej klawiszy to się "tnie". Jak włączę więcej głosów to już w ogóle nawet jednym palcem nie da się nawet grać.
Obecnie mam komputer Celeron 2,8GHz i 2Gb RAM. Wcześniej działałem na PentiumIII 700MHz z 300mb RAM, ale pod Windows XP i w programie MyOrgan (stary, nierozwijany już program, ale bardzo podobny - GrandOrgue jest jakby jego kontynuacją). Wtedy brakowało RAMu (podczas wczytywania sampli wyskakiwał komunikat o zapełnionej pamięci i że zostanie wykorzystana pamięć wirtualna) i tak samo to się objawiało jak teraz. Ale gdy przeszedłem na Pentium4 i 2 GB RAM to nie miałem już żadnych problemów - mogłem włączyć wszystkie głosy i wcisnąć jednocześnie wszystkie klawisze na klawiaturze i nie było żadnych problemów z dźwiękiem, chyba że włączyłem jednocześnie Firefoxa to wtedy chwilowo zniekształcało dźwięk. Ale gdy na tym samym sprzęcie uruchamiałem MyOrgan przez Wine na Linuxie, to już dźwięk był cały czas zniekształcany.
Teraz całkowicie przeszedłem na Linuxa i zainstalowałem GrandOrgue, który jest dostępny na Linuxa, ma więcej możliwości i jest dla niego dostępnych wiele sampli do pobrania. Ale tak jak pisałem na początku, na przykładowym samplu nie da się w ogóle grać, choć ma mniej głosów niż ten który używałem w MyOrgan.
Gdy uruchamiam GrandOrgue spod konsoli, to w konsoli wyświetla takie komunikaty:

Kod: Zaznacz cały

$ GrandOrgue
Cannot connect to server socket err = Nie ma takiego pliku ani katalogu
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

MidiInJack::initialize: JACK server not running?

Cannot connect to server socket err = Nie ma takiego pliku ani katalogu
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

MidiInJack::initialize: JACK server not running?

Cannot connect to server socket err = Nie ma takiego pliku ani katalogu
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

MidiOutJack::initialize: JACK server not running?

Cannot connect to server socket err = Nie ma takiego pliku ani katalogu
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

MidiOutJack::initialize: JACK server not running?

ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Cannot connect to server socket err = Nie ma takiego pliku ani katalogu
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

MidiInJack::initialize: JACK server not running?


MidiInJack::initialize: JACK server not running?


MidiOutJack::initialize: JACK server not running?


MidiOutJack::initialize: JACK server not running?


MidiInJack::initialize: JACK server not running?


MidiInJack::initialize: JACK server not running?


MidiOutJack::initialize: JACK server not running?


MidiOutJack::initialize: JACK server not running?

A gdy podczas grania pojawiają się te zniekształcenia dźwięku, to w konsoli generuje setki takich komunikatów:

Kod: Zaznacz cały

ALSA lib pcm.c:8251:(snd_pcm_recover) underrun occurred
Nawet nie potrafię nazwać tego co się dzieje wtedy z dźwiękiem - to tak jakby sprzęganie się dźwięku na koncertach lub w radio, gdy dzwoni słuchacz i ma u siebie włączone radio. W wyniku tego powstaje takie dudniące echo, które stopniowo zanika. Im więcej było wciśniętych klawiszy, tym dłużej trwa zanikanie i dopiero jak zaniknie całkowicie to można ponownie wydobyć dźwięk, w przeciwnym razie tylko podsyca się to echo. Może spróbuję to nagrać.
Po tym komunikacie z konsoli mam podejrzenia, że to wcale nie musi być wina braku pamięci, tylko wynika z działania sterowników dźwięku i występuje to właśnie w Linuxie. Szukałem w Google i znalazłem podobne angielskojęzyczne tematy ta forach i nawet jakieś sposoby naprawy tego, ale nie dowiedziałem się żadnych konkretów i nie chcę kombinować jeśli tego nie rozumiem, by czegoś nie zepsuć. Czy ktoś  orientuje się w czym tkwi problem i jak można go naprawić?

Karta dźwiękowa w lspci -k:

Kod: Zaznacz cały

00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
	Subsystem: Albatron Corp. VT8233/A/8235/8237 AC97 Audio Controller
	Kernel driver in use: snd_via82xx
	Kernel modules: snd_via82xx