Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-11-08 22:49:46

  garp - Użytkownik

garp
Użytkownik
Zarejestrowany: 2010-11-08

[SOLVED] Alsa + MOCp

Witam,

Przejdę do rzeczy, chciałbym aby w odtwarzaczu MOC zaczęła działać mi kontrola dźwięku. W tym momencie, gdy włączę go, widzę nazwę PCM (chyba) zgodnie z konfiguracją, lecz nie mogę ani ściszać, ani robić głośniej. Zgodnie z wiki ALSY zrobiłem plik .asound i zgodnie z jego konfiguracją umieściłem odpowiednie wpisy w .moc/config, ale to również nie doprowadziło mnie do szczęśliwego końca. Przedstawię wyniki poleceń, żeby ułatwić diagnozę oraz zawartość plików konfiguracyjnych:

aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: CA0106 [CA0106], device 0: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: CA0106 [CA0106], device 1: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: CA0106 [CA0106], device 2: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: CA0106 [CA0106], device 3: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

aplay -L

default:CARD=CA0106
    CA0106, CA0106
    Default Audio Device
front:CARD=CA0106,DEV=0
    CA0106, CA0106
    Front speakers
rear:CARD=CA0106,DEV=0
    CA0106, CA0106
    Rear speakers
center_lfe:CARD=CA0106,DEV=0
    CA0106, CA0106
    Center and Subwoofer speakers
side:CARD=CA0106,DEV=0
    CA0106, CA0106
    Side speakers
surround40:CARD=CA0106,DEV=0
    CA0106, CA0106
    4.0 Surround output to Front and Rear speakers
surround41:CARD=CA0106,DEV=0
    CA0106, CA0106
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=CA0106,DEV=0
    CA0106, CA0106
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=CA0106,DEV=0
    CA0106, CA0106
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=CA0106,DEV=0
    CA0106, CA0106
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=CA0106,DEV=0
    CA0106, CA0106
    IEC958 (S/PDIF) Digital Audio Output

Zawartość .asound

pcm.!default {
        type hw
        card 0
        device 1
}
pcm.!default {
        type hw
        card 0
        device 1
}
pcm.blaser {
        type hw
        card CA0106
}
ctl.blaster {
        type hw
        card CA0106
}

pcm.blaster1 {
        type hw
        card 0
        device 1
}
ctl.blaster1 {
        type hw
        card 0
        device 1
}

Zawartość .moc/config ten fragment, odpowiedzialny za konfigurację dźwięku

AlsaMixer               = Analog Front

# Second ALSA mixer device.
#AlsaMixer2             = Master

# ALSA output device.
AlsaDevice              = blaster

Błagam o pomoc, bo wertuję materiały w internecie od paru godzin, oczy wychodzą mi z orbit, a do niczego konkretnego nie doszedłem ;/

Edit: próbowałem w AlsaMixer wpisywać inne wartości - blaster1, default lub blaster- ale bez rezultatu, w AlsaDevice podobnie.
Edit2: dzwięki na kompie normalnie działają, nie mam z nimi problemu, ale chciałbym żeby w MOC możnabyło ściszać i robić głośniej, i żeby nie ściszało mi głównym suwakiem, który wycisza wszystko w całym kompie, tylko w jakimś lokalnym, o ile się wyraziłem jasno...

Ostatnio edytowany przez garp (2010-11-10 22:51:53)

Offline

 

#2  2010-11-09 22:02:21

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: [SOLVED] Alsa + MOCp

Jeżeli chcesz mieć niezależną kontrolę głośności to zwykle w playerze powinna być opcja "software volume control" lub coś w ten deseń. Jeżeli nie ma, ALSA oferuje plugin "Softvol", myślę że powinieneś do swojego pliku ~/.asoundrc (lub /etc/asound.conf jeżeli z niego korzystasz) wpisać takie coś:

Kod:

pcm.newdevice {
    type                softvol
    slave.pcm        "default"
    control.name   "Softmaster"
    control.card    0
}

zaś w playerze (zapewne ustawienie Softmaster w .moc/config zamiast tego co masz teraz pomorze) ustawić urządzenie wyjściowe na "Softmaster" - po pierwszym włączeniu playera w alsamixerze powinna dojść kontrolka "Softmaster" za pomocą której będziesz mógł kontrolować dźwięk tej aplikacji.

Te wpisy:

Kod:

pcm.!default {
        type hw
        card 0
        device 1
}
pcm.!default {
        type hw
        card 0
        device 1
}
pcm.blaser {
        type hw
        card CA0106
}
ctl.blaster {
        type hw
        card CA0106
}

pcm.blaster1 {
        type hw
        card 0
        device 1
}
ctl.blaster1 {
        type hw
        card 0
        device 1
}

Są raczej do wywalenia - zapewne rozwalisz sobie za ich pomocą miksowanie software'owe w systemie, a Twoja karta hardware-mixingu nie obsługuje.

Tak na koniec - oczywiście z PulseAudio nie korzystasz??

Offline

 

#3  2010-11-09 22:31:16

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] Alsa + MOCp

Do moca użyj servera jack i bedzie działać niezależnie od globalnej głośności.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#4  2010-11-09 22:38:40

  garp - Użytkownik

garp
Użytkownik
Zarejestrowany: 2010-11-08

Re: [SOLVED] Alsa + MOCp

Wkleiłem tylko to

Kod:

pcm.newdevice {
    type                softvol
    slave.pcm        "default"
    control.name   "Softmaster"
    control.card    0
}

i faktycznie w alsamixerze pojawiła się nowa kontrolka, co mnie ucieszyło. W configu MOC nie wiem za bardzo jak ustawić - AlsaMixer ustawiam na Softmaster, jak napisałeś, a AlsaDevice ma być hw:0 czy newdevice jak nazwa definicji w .asoundrc? W MOC widzę "Softmixer" i mogę, w teori, robić głośniej i ciszej, ale w praktyce nic się nie zmienia.

Edit: @ilin zależałoby mi, żeby zrobić bez żadnych dodatków. Na laptopie mam Master i PCM (to są mixery?) i w ustawieniach MOC wybałem PCM, i działa dobrze. Tutaj niestety nawet Master już mi nie śmiga.

Ostatnio edytowany przez garp (2010-11-09 22:40:42)

Offline

 

#5  2010-11-10 01:34:27

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: [SOLVED] Alsa + MOCp

Wyjaśnijmy parę kwestii:

1.W pliku .asoundrc ma być TYLKO ten wpis który podałem, wszystko inne jest zbędne.
2.Wszelkie wpisy zastępujące urządzenie "default" które porobiłeś wcześniej tylko mącą - standardowo ALSA działa tak:

Aplikacja->Alsa(wejście "default")->DMIX(mixer software'owy)->Urządzenie(najczęściej hw:0)

Kiedy nadpisujesz "default" (wpisy pcm.!default{}) i każesz mu słać strumień bezpośrednio do hw:0 tracisz mikser software'owy - a jako że 99% nowych kart dźwiękowych nie posiada miksera sprzętowego, ograniczy cię to do jednej aplikacji korzystającej z karty na raz (karty oparte o CAO106 w tym najtańsze X-Fi (te droższe chyba zresztą też nie - Creative umie wciskać ludziom kit więc biorą "super" karty ;] ), Audigy SE czy Live! 24bit 7.1 - też takiego nie posiadają). Tak więc w pliku .asoundrc masz mieć TYLKO wpis który podałem i nic więcej.

Tyle w ramach wyjaśniania do wcześniejszych wpisów które miałeś ;]

Teraz tak, jako że nie mam tego playera i go na oczy nigdy nie widziałem to nie wiem jak to wygląda, ale stawiam że należny w pliku .mon/config zmienić konfig na coś takiego:

Kod:

AlsaMixer               = Softmaster

# ALSA output device.
AlsaDevice              = Softmaster

Jeżeli program ten działa tak jak podejrzewam to dźwięk będzie szedł do Softmastera którym będzie się dało kontrolować głośność, a dzięki wpisowi "AlsaMixer=Softmaster" player podepnie się do tej kontrolki i będzie ją dostosowywał przy zmianie głośności automatycznie - spróbuj, zobaczymy czy zadziała.

Ostatnio edytowany przez Huk (2010-11-10 01:40:07)

Offline

 

#6  2010-11-10 11:32:42

  garp - Użytkownik

garp
Użytkownik
Zarejestrowany: 2010-11-08

Re: [SOLVED] Alsa + MOCp

Przy wpisaniu

Kod:

AlsaDevice = Softmaster

dostaję taki komunikat

ALSA lib control.c:882:(snd_ctl_open_noupdate) Invalid CTL Softmaster
ALSA lib pcm.c:2190:(snd_pcm_open_noupdate) Unknown PCM Softmaster

FATAL_ERROR: No valid sound driver

Gdy ustawię

Kod:

AlsaDevice = default

, mogę kontrolować poziom dźwięku, ale faktycznie głośność się nie zmienia - tylko procenty skaczą.

Offline

 

#7  2010-11-10 11:58:53

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: [SOLVED] Alsa + MOCp

A spróbuj do tego co podałem dopisać jeszcze:

Kod:

ctl.Softmaster {
    type hw
    card 0
}

lub jak nie zadziałą to spróbuj tak:

Kod:

ctl.newdevice {
    type hw
    card 0
}

I jeszcze raz ustawić AlsaDevice na Softmaster

Ostatnio edytowany przez Huk (2010-11-10 12:01:28)

Offline

 

#8  2010-11-10 16:10:55

  garp - Użytkownik

garp
Użytkownik
Zarejestrowany: 2010-11-08

Re: [SOLVED] Alsa + MOCp

Niestety, zwraca ten sam komunikat. Może po edycji pliku .asoundrc trzeba coś jeszcze zrobić, żeby te ustawienia zadziałały? Dziwne jest również to, że po ustawieniu AlsaDevice na "default" i AlsaMixer na "Master", nie mogę w dalszym ciągu kontrolować dźwięku... nie wiem czym to jest spowodowane.

Offline

 

#9  2010-11-10 16:41:03

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] Alsa + MOCp

Tak dla testu

Zainstaluj jacka

Kod:

aptitude install jackd

Potem w jednym terminalu klepnij

Kod:

jackd -dalsa -dhw:0 -r48000 -p256 -n4 -P

W drugim zaś uruchom moca

Kod:

mocp -R jack

Zobacz czy będzie Ci odpowiadać.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#10  2010-11-10 17:21:14

  garp - Użytkownik

garp
Użytkownik
Zarejestrowany: 2010-11-08

Re: [SOLVED] Alsa + MOCp

@Ilin
W ten sposób działa wyciszanie softmixerem, ale już w ogóle nie działa dźwięk w Iceweasel'u, więc nie przejdzie.

Offline

 

#11  2010-11-10 17:42:52

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] Alsa + MOCp

A u mnie działa.

Trzeba sobie plugin w ~/.asoundrc zrobić który przekierowuje alsę na jacka.
Ale twoja wola jak to zrobisz.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#12  2010-11-10 20:45:42

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: [SOLVED] Alsa + MOCp

Ok zainstalowałem to coś i taki config powinieneś ustawić żeby działał:

Po pierwsze: plik .asoundrc ma wyglądać tak:

Kod:

pcm.plugxxx{
    type plug
    slave.pcm "newdevice"
}

ctl.plugxxx{
    type hw
    card 0
}

pcm.newdevice {
    type                softvol
    slave.pcm        "default"
    control.name   "Softmaster"
    control.card    0
}

Następnie w moc/config takie coś:

Kod:

AlsaMixer               = Softmaster

# ALSA output device.
AlsaDevice              = plugxxx

Następnie restart mocp (ja to zrobiłem poprzez "sudo killall -v -s 9 mocp" - czyli zabiłęm mocp i włączyłem ponownie), i wszystko powinno działać ;] (przynajmniej u mnie działa).

Jeżeli przy pierwszym włączeniu kontrolka Softmaster będzie miała wartość 0% (w moc'u) to zabij go raz jeszcze i wszystko powinno być ok.

Jak by coś mogę wytłumaczyć czemu tak ma być ustawione, a nie inaczej.

@ilin:

Jack, niestety nie zawsze jest rozwiązaniem - spora ilość aplikacji nadal ma z nim problemy (znaczy się z pluginem Jack dla ALSY), parę dni temu coś drgnęło na liście mailingowej ALSY odnośnie tego pluginu, więc może sytuacja się poprawi - fajnie by było mieć jacka zamiast np PA.

Ostatnio edytowany przez Huk (2010-11-10 20:52:02)

Offline

 

#13  2010-11-10 22:12:15

  garp - Użytkownik

garp
Użytkownik
Zarejestrowany: 2010-11-08

Re: [SOLVED] Alsa + MOCp

Kod:

ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_plyg.so

FATAL_ERROR: No valid sound driver

Ciągle pod górę. Ale czemu nie działa kontrola głośności przy domyślnych ustawieniach, gdy na laptopie działa bezproblemowo?

Offline

 

#14  2010-11-10 22:19:00

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: [SOLVED] Alsa + MOCp

Czasem nie walnąłeś się przy wpisywaniu i nie wpisałeś "plyg" zamiast "plug" w:

pcm.plugxxx{
    type plug
    slave.pcm "newdevice"
}

Bo na taki błąd mi to wygląda.

A czemu nie działa standardowo nie wiem - może inna wersja ALSY/Jajka/bibliotek/playera - take your pick.

sprawdź czy wpisałeś poprawnie.

Offline

 

#15  2010-11-10 22:23:42

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] Alsa + MOCp

Ale czemu nie działa kontrola głośności przy domyślnych ustawieniach, gdy na laptopie działa bezproblemowo?

Bo to zależy od karty dźwiękowej.

Metoda Huk'a działa.
Sprawdzałem.
Musiałeś jakąs literówkę strzelić najprawdopodobniej jak wyżej podano.
U mnie na ca0106 nawet z kilku źródeł dxwięk idzie.

Sprawdzałem na moc i mplayerze równocześnie.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#16  2010-11-10 22:51:06

  garp - Użytkownik

garp
Użytkownik
Zarejestrowany: 2010-11-08

Re: [SOLVED] Alsa + MOCp

Działa, faktycznie literówka :) Wielkie dzięki.

Pisałeś HUK, że możesz wyjaśnić czemu takie ustawienia a nie inne, masz może jakiś artykuł opisujący działanie tego wszystkiego? Bo na wiki ALSY są jakieś, ale niewiele mi to dało do myślenia.

Offline

 

#17  2010-11-10 23:10:25

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: [SOLVED] Alsa + MOCp

Jeden artykuł raczej nie, samemu naczytałem się "trochę", jak pisałem swój plugin do kontroli głośności per aplikacja. Musiałbyś poprzeglądać oficjalną stronę ALSY jak i "unofficial ALSA wiki" - niestety na tych stronkach panuje nieporządek i nie zawsze łatwo znaleźć chciane info.

Generalnie plugin "plug" jest to taka fajna wtyczka która dokonuje automatycznie konwersji strumienia na to czego chce aplikacja lub dalsza wtyczka - jeżeli aplikacja chce np wysłać dźwięk o częstotliwości 32000 Hz (32 KHz) do dmixer'a który ma ustawiony sampling na 44100 Hz czy też 48000 Hz to mogą być jajka bo sampling jest niezgodny - "plug" dokona za nas niejawnej konwersji tak aby wszystko działało (przynajmniej tak to rozumiem po naczytaniu się dziesiątek wpisów odnośnie ALSY).

Zaś wpis ctl.plugxxx, mówi aplikacji że plugxxx jest prawdziwym urządzeniem, a nie wyjściem wirtualnym - wg tego co czytałem, nie powinno to być wymagane, ale jako że w API ALSY panuje niezły burdel, a aplikacje uzyskują dostęp do karty na różne sposoby - wymagana często jest.

Wpis odnośnie softvol znasz - nie działał, bo z tego co widzę nie można dla niego symulować prawdziwego urządzenia (czytaj - wpis ctl.costam - nic nie daje), stąd potrzeba była pluginu pośredniego.

Tak więc teraz to idzie tak:

moc->plugxxx(który jest widziany jako prawdziwe urządzenie, przez co nie ma błędu który był wcześniej)->Softmaster(za pomocą którego idzie realna kontrola głośności)->default(które standardowo przekierowuje na dmix)->dmix(który miksuje programowo kanały)->hw:0(Twoja karta - tutaj trafia już zmiksowany strumień ze wszystkimi dźwiękami)


Tak dodam od siebie - co by o ALSIE nie mówić, to architektura wtyczek jest zrobiona bardzo sprawnie - nie ma chyba drugiego takie API, które dawało by taką łatwość manipulowania przez usera tym co się dzieje z dźwiękiem i to bez konieczności przeładowywania systemu dźwiękowego ;]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)