Nowe posty

Autor Wątek: Przechwycenie dźwięku ALSA  (Przeczytany 15789 razy)

slacker

  • Gość
Przechwycenie dźwięku ALSA
« dnia: 2012-06-03, 01:44:35 »
Witam,

Od pół roku walczę a tym, aby przechwycić dźwięk który wylatuje z kompa na głośniki :)
Próbowałem już chyba wszystkiego, przekompilowałem też alsę ze wszystkimi sterownikami...
Przeszukałem internet od deski do deski... wszystko sprowadzało się do ustawienia "capture" master, a ja nadal mogę wybrać tylko pomiędzy Int Mic i Ext Mic, w audacity też już próbowałem wszystkich kombinacji. Najbardziej ciekawiłaby mnie opcja napisania własnego programu, bo i tak dźwięk muszę w sposób niestandardowy wysłać po RS'ie. Na razie mam to rozwiązane tak, że utworzone mam urządzenie loop(w asoundrc) do którego wrzucam dźwięk i odczytuje
arecord -D loop -f S16_LE -t raw -c1 -r 44100 | rsplay_moj_program
Niestety nie wszystkie programy chcą się skonfigurować, aby tam pchać dźwięk i nie jest to zbyt wygodne.
Bardzo proszę o pomoc:(

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
Przechwycenie dźwięku ALSA
« Odpowiedź #1 dnia: 2012-06-03, 08:04:36 »

slacker

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #2 dnia: 2012-06-03, 11:14:50 »
Widziałem ten artykuł i nic, dźwięk zgrywa mi z wejścia mikrofonowego lub wbudowanego...
W sumie to co wybiorę w mixerze. http://img339.imageshack.us/img339/7791/mixerb.png Widziałem kombinację parametrów do różnych konsolowych programów, aby wybrać źródło nagrywania, lecz wg mnie wszystko sprowadzało się do tego co można ustawić w właśnie takim okienkowym mixerze.

miro57

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #3 dnia: 2012-06-03, 12:09:33 »
Ja do podobnych operacji (przesyłanie dźwięku między kartami) zamiast poleceń arecord, aplay lub sox używam jednego polecenia alsaloop.

Jeśli nie znasz to zapoznaj się z man alsaloop lub alsaloop -h.

Inne dostępne polecenia to: alsa_in , alsa_out , alsaucm .

Moja karta dźwięku w opcji "Digital Source" (mikser) ma możliwość ustawienia "i2s mixer out".
Przy takim ustawieniu wszystkie programy nagrywające zapisują to co wychodzi z karty dźwięku na "głośniki".
Sprawdź może twoja karta również posiada podobną funkcję.

Ksanderon

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #4 dnia: 2012-06-03, 12:34:49 »
och och jak możesz nagrywać z wejścia mikrofonowego to możesz wszystko- nawet oscyloskop zmontować :) w bardzo zamierzchłych czasach nagrywałem tak audycje radiowe podłączając wyjście z radia do wejścia mikrofonowego- i działało:)

To jest oczywiści żart choć prawdziwy- jak nie chcesz "super ultra" jakości to też powinno wystarczyć.

slacker

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #5 dnia: 2012-06-03, 12:49:13 »
Kolego Ksanderon nie o takie coś mi chodzi :) Ogólnie robię wzmacniacz do którego dźwięk jest wysyłany po czym się chce, obecnie po ethernecie. Nie chcę torem analogowym który jest stratny i nie ma tyle możliwości.
http://slack.homelinux.net/Amplifier

slacker

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #6 dnia: 2012-06-03, 13:16:20 »
Wykorzystałem mojego loopa żeby wrzucić tam dźwięk który tak bardzo pragnę:(
sprawdzam tak:  arecord -D loop | hexdump -C
wrzucam dźwięk: alsaloop -C hw:0,0 -P loop
hw:0,0 mikrofon; hw:0,1 no such; hw:1,0 nic; hw:1,1 nic...

Widziałem że popularne jest dawanie takiego listingu
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
...
  Subdevice #7: subdevice #7
card 1: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
...
  Subdevice #7: subdevice #7
 
Wygląda tak jakby alsa za cholerę nie chciała przechwycić tego dźwięku.
System slackware 13.37 przekompilowana najnowsza alsa ze wszystkimi dźwiękówkami.

miro57

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #7 dnia: 2012-06-03, 15:04:20 »
Czy Twój wzmacniacz ma wejście cyfrowe typu SPDIF (coaxial RCA lub optyczny)?
Jeśli tak to możesz przesłać dźwięk z komputera "bezstratnie" w Linuksie tą drogą
bez żadnych problemów.
Dla większości nawet trochę starszych kart funkcja SPDIF-OUT w Alsa powinna zadziałać.

slacker

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #8 dnia: 2012-06-03, 15:19:57 »
Na razie mam zaimplementowany swój "protokół" którym wysyłam dźwięk i ustawienia. Myślę o USB oraz o Ethernecie(wzmacniacz można np. podłączyć do sieci; router itp) więc na linuxa oraz windowsa będzie musiałby być odpalony mój programik do wysyłania dźwięku, kwestia jak przesłać dźwięk do mojego programu:(
Sprawdzałem na innym komputerze, to normalnie mam wybór "capture".
http://img35.imageshack.us/img35/9457/87502978.png
Zaś na laptopie ThinkPad R61i
http://img254.imageshack.us/img254/9397/thinkpad.png
Dźwiękówka
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)

miro57

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #9 dnia: 2012-06-03, 16:09:12 »
Podaj wynik polecenia:
amixer -c 0 | grep out
oraz
amixer -c 1 | grep out

slacker

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #10 dnia: 2012-06-03, 16:16:56 »
Żadnych wyników, ani na użytkowniku ani na root'cie(dawałem też do grepa parametr -i)

miro57

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #11 dnia: 2012-06-03, 16:57:14 »
Podaj wynik polecenia:
amixer -c 0
oraz
amixer -c 1
oraz
aplay -L

slacker

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #12 dnia: 2012-06-03, 17:09:56 »
amixer -c 1 nic nie zwraca
$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=Intel
    HDA Intel, CONEXANT Analog
    Default Audio Device
front:CARD=Intel,DEV=0
    HDA Intel, CONEXANT Analog
    Front speakers
surround40:CARD=Intel,DEV=0
    HDA Intel, CONEXANT Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
    HDA Intel, CONEXANT Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
    HDA Intel, CONEXANT Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
    HDA Intel, CONEXANT Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
    HDA Intel, CONEXANT Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Intel,DEV=0
    HDA Intel, Conexant Digital
    IEC958 (S/PDIF) Digital Audio Output
default:CARD=Loopback
    Loopback, Loopback PCM
    Default Audio Device

$amixer -c 0
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 43
  Mono:
  Front Left: Playback 39 [91%] [-6.00dB] [on]
  Front Right: Playback 39 [91%] [-6.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 20
  Mono:
  Front Left: Playback 20 [100%] [0.00dB] [on]
  Front Right: Playback 20 [100%] [0.00dB] [on]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958 Default PCM',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Digital',0
  Capabilities: cvolume penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 120
  Front Left: Capture 72 [60%] [6.00dB]
  Front Right: Capture 72 [60%] [6.00dB]
Simple mixer control 'Ext Mic',0
  Capabilities: pvolume cvolume pswitch cswitch penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 20 Capture 0 - 23
  Front Left: Playback 20 [100%] [0.00dB] [on] Capture 23 [100%] [34.50dB] [off]
  Front Right: Playback 20 [100%] [0.00dB] [on] Capture 23 [100%] [34.50dB] [off]
Simple mixer control 'ExtMic',0
  Capabilities: cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Capture channels: Mono
  Mono: Capture [off]
Simple mixer control 'Int Mic',0
  Capabilities: pvolume cvolume pswitch cswitch penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 20 Capture 0 - 23
  Front Left: Playback 20 [100%] [0.00dB] [on] Capture 23 [100%] [34.50dB] [off]
  Front Right: Playback 20 [100%] [0.00dB] [on] Capture 23 [100%] [34.50dB] [off]
Simple mixer control 'IntMic',0
  Capabilities: cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Capture channels: Mono
  Mono: Capture [on]

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
Przechwycenie dźwięku ALSA
« Odpowiedź #13 dnia: 2012-06-03, 19:21:22 »
Z tego co widzę, korzystasz z KDE, u mnie też nie działało tak, jak podałem w linku, gdzie to działało bez problemu na Ubuntu i Gnome, wejdź do ustawień Phonona, w ustawienia sprzętu zmień profil z Analog Stereo Duplex na Analog Stereo Input.

Pozdrawiam!

slacker

  • Gość
Przechwycenie dźwięku ALSA
« Odpowiedź #14 dnia: 2012-06-03, 20:18:13 »
Hmm w kde4? Nigdzie nie widzę żeby coś takiego było i dało się ustawiać