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:

[b]aplay -l[/b]

**** 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[/quote]
[b]aplay -L[/b]

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[/quote]
Zawartość[b] .asound[/b]

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
}[/quote]
Zawartość[b] .moc/config[/b] ten fragment, odpowiedzialny za konfigurację dźwięku

AlsaMixer               = Analog Front

# Second ALSA mixer device.
#AlsaMixer2             = Master

# ALSA output device.
AlsaDevice              = blaster[/quote]
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.


[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]

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[/quote]
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ć.


[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]

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.


[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]

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{
   [b] type plug[/b]
    slave.pcm "newdevice"
}[/quote]
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?[/quote]
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.


[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]

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 ;-)

[ Generated in 0.008 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00003 SET NAMES latin2
0.00111 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.116.21.194' WHERE u.id=1
0.00067 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.116.21.194', 1734000356)
0.00043 SELECT * FROM punbb_online WHERE logged<1734000056
0.00045 SELECT topic_id FROM punbb_posts WHERE id=158148
0.00006 SELECT id FROM punbb_posts WHERE topic_id=17704 ORDER BY posted
0.00047 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17704 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00089 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17704 ORDER BY p.id LIMIT 0,25
0.00081 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17704
Total query time: 0.00508 s