[Line-in] Meerdere keren gebruiken.

Pagina: 1
Acties:

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Hoi,

Hoe gebruik in de line-in van een geluidskaart bijvoorbeeld 3 keer? Stel dat 1 programma wil opnemen, 1 wil broadcasten, 1 andere ook opnemen.

Normaliter is de device in use, maar ik heb begrepen dat hier soundservers voor zijn. Wat kun je het best gebruiken als je in console simpelweg wil wat ik nodig heb? :)

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 10:41

odysseus

Debian GNU/Linux Sid

Het makkelijkst? Je kunt natuurlijk tee gebruiken, dat lijkt me het simpelst. Als je het iets netter wilt doen dan moet je eens kijken of je het voor elkaar krijgt om dat bestand de mogelijkheid tot multiple_open() (zoiets was het geloof ik) te laten bieden...nieuwere geluidskaarten (of eigenlijk de drivers) doen dat ook voor hun invoer.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Ik moet nog een stapel geluidskaarten aanschaffen, dus wellicht ook belangrijk om op iets speciaals te letten? Ik ben niet zo into audio kaarten. Weet alleen dat 'n creative kaartje altijd werkt ;).

Verwijderd

GStreamer.

:P.

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Het mooist is dat mijn /dev/dsp0 gewoon meerdere keren te gebruiken is, met die programma's hierboven moeten mijn applicaties er zeker weer support voor hebben ;) (jaja, ik heb nog niets gelezen of getest :+)))

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Zeg ronald :+. kan ik die DC10 ook meerdere keren aanroepen om bijvoorbeeld 2 kwaliteiten op te slaan? :)

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
odysseus schreef op 02 december 2002 @ 21:57:
Het makkelijkst? Je kunt natuurlijk tee gebruiken, dat lijkt me het simpelst. Als je het iets netter wilt doen dan moet je eens kijken of je het voor elkaar krijgt om dat bestand de mogelijkheid tot multiple_open() (zoiets was het geloof ik) te laten bieden...nieuwere geluidskaarten (of eigenlijk de drivers) doen dat ook voor hun invoer.
Ik zit te spelen met tee, maar kan me niet voorstellen hoe ik dat toe ga passen om mijn line-in meerdere keren te gebruiken. Kun je eens een voorbeeld geven?

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 10:41

odysseus

Debian GNU/Linux Sid

cat /dev/dsp0 | tee /dev/mijn_fifo | my_first_program
cat /dev/mijn_fifo | my_second_program

Naar smaak gebruik je tee een keer of wat om nog wat extra bestanden te vullen waaruit gelezen kan worden. Zie ook man (1) mkfifo.

* odysseus heeft bovenstaande constructie nog nooit gebruikt, maar het zou moeten werken lijkt me ;).

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Odysseus is een held! Mijn /dev/dsptee poept nu 't zelfde als /dev/dsp :) :* O+. Dit kan ik dus ook voor video gebruiken! (Met alles, als ik het goed begrijp).. Super!

Verwijderd

jep.....vraagje......
Had je dit zelf niet kunnen vinden? >:) :P ;)

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Ik heb een poging gedaan, maar ik vond met de combinatie linux en tee dermate veel mensen van aziatische afkomst dat ik besloot odysseus even te pesten :+.

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
DarkIce: OssDspSource.cpp:174: can't set format [16]

Hij spuugt dezelfde raw-data uit als /dev/dsp, dat lijkt in orde. OSS instellingen neemt hij alleen niet over, waar moet ik dat zoeken?

[ Voor 51% gewijzigd door jep op 30-12-2002 13:39 ]


  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Ik kom 'r ff op terug. Bovenstaande poept alleen naar een bestand, maar 't moet echt een device zijn. Esound heb ik geprobeerd, maar geen van de door mij gebruikte applicaties heeft esound support.

Kan ik bovenstaande methode gebruiken maar dan een device maken, ipv een file? ;). Ik zoek echt wel, maar het is waarschijnlijk zo simpel dat 't niet te vinden is :P

Verwijderd

Nee, dat kan dus niet. Je kan data wel vermenigvuldigen, maar je kan niet een device faken (nouja, dat kan wel, maar dan moet je dus een fake-copy OSS driver schrijven en dat wil je niet nee echt niet neehee echt niet nouja misschien ook wel maar doe toch maar niet want het gaat toch niet goed werken :P).

Een driver/applicatie doen meer dan read() (applicatie) en read()-handler (driver). Doet ook set-format ioctl()s (dingen als bitrate/unsigned/signed/endianness, samplerate etc.), en nog wat meer dingen. Nu raad je 'em al: een FIFO kan geen van dat allen! :P. Een FIFO is net zo dom als een tuinslang, het heeft een ingang en een uitgang en verder niks. Een device driver kan veel meer dan dat.

Daarmee heb ik videovraag ook al deels beantwoord - dat kan dus ook niet, tenzij je een fake-copy driver schrijft, en bij video wil je dat al HELEMAAAAAAAAAAAAAAAL niet. Onder sommige omstandigheden kan het handig zijn, maar ik raad het af. Mocht ik het ooit moeten doen (/me jep vreemd aan :? * O-) ), dan kan het wel, maar het is allesbehalve simpel, omdat je namelijk vanuit een kernel driver userspace interaction met andere drivers moet doen en dat zuigt. Het moet idd via kernelspace omdat je anders niet bij videodev.o of soundcore.o kunt registreren, en daar zitten alle video/audio devices... Is nogal evil daarbinnen. ;).

Maargoed, zo simpel als 'een device copieren' is het helaas niet. Data kun je copieren, maar gedrag kun je niet emuleren. Sorry...

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Het leek me zo simpel :? Ik dacht zo van: Als je een muziekje uit je speakers laat komen, kun je het door 2 mensen laten horen, of door 1000. Als je nou output van een geluidskaart (stomweg rauwe lelijke data :P) uitspuugt, moet je 't toch ook voor meerdere applicaties zichtbaar kunnen hebben? ;)

Of denk ik nou te simpel :o

  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
Verwijderd schreef op 17 January 2003 @ 17:03:
Een FIFO is net zo dom als een tuinslang, het heeft een ingang en een uitgang en verder niks.
* AlterEgo complimenteert Beelzebubu met deze uitspraak _/-\o_

Binnenkort in de boekhandel: "Linux voor Jip en Janneke" door Beelzebubu :)

[ Voor 5% gewijzigd door AlterEgo op 17-01-2003 21:21 ]


Verwijderd

jep schreef op 17 januari 2003 @ 21:03:
Het leek me zo simpel :? Ik dacht zo van: Als je een muziekje uit je speakers laat komen, kun je het door 2 mensen laten horen, of door 1000. Als je nou output van een geluidskaart (stomweg rauwe lelijke data :P) uitspuugt, moet je 't toch ook voor meerdere applicaties zichtbaar kunnen hebben? ;)

Of denk ik nou te simpel :o
Mwoh... Als beide applicaties dezelfde audio properties opvragen (sampling rate, signedness, volume, bitsize, endianness, etc.) dan zou je de data kunnen vermenigvuldigen (wat trouwens ten koste gaat v.d. prestaties, aangezien card->mem DMA is en mem->mem via de CPU gaat - geen direct device spul en hoort dus niet in de kernel thuis). Echter, hoe weet je dat die properties gelijk zijn? Als ze dat niet zijn, moet je transformeren, en dat kost behoorlijk wat CPU en hoort sowieso al niet in de kernel thuis. ESDrec (ook available als GStreamer plugin) doet dit in userspace, en dan is het wel handig. Maargoed, dan moeten applicaties dus esdrec gebruiken (esddsp <applicatie>? :P) in plaats van direct device access.

Via video bestaat zoiets nog niet, en dat zou, tenzij je dezelfde properties gebruikt, ook gigantisch veel CPU kosten. :{.

Verwijderd

AlterEgo schreef op 17 januari 2003 @ 21:20:
* AlterEgo complimenteert Beelzebubu met deze uitspraak _/-\o_

Binnenkort in de boekhandel: "Linux voor Jip en Janneke" door Beelzebubu :)
:D. :D. :D.

Hm, okee, wat is een file dan? Tuinslang met slechts een verbinding met de buitenkant die zowel de ingang als de uitgang, maar slechts een tegelijk is? Doodlopende tweewegs tuinslang dus? :P. En wat is een directory dan? :X. :D.

Verwijderd

Verwijderd schreef op 17 januari 2003 @ 21:44:
[...]


:D. :D. :D.

Hm, okee, wat is een file dan? Tuinslang met slechts een verbinding met de buitenkant die zowel de ingang als de uitgang, maar slechts een tegelijk is? Doodlopende tweewegs tuinslang dus? :P. En wat is een directory dan? :X. :D.
vim -v /home

code:
1
2
3
4
5
6
" Press ? for keyboard shortcuts
" Sorted by name (.bak,~,.o,.h,.info,.swp,.obj at end of list)
"= /home/
../
stratos/
~


een directory is een file en dus een tuinslang maar hij heeft wel een ander kleurtje zodat tuinmannen weten dat het een directory is en geen file
:7

Verwijderd

Dus eigenlijk gewoon een tuinslang met allemaal babytuinslangetjes. Is een olifant dan niet een betere analogie? Alhoewel, dan krijgt in- en uitgang weer zo'n vreemde bijbetekenis. :X. :D.

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Verwijderd schreef op 17 januari 2003 @ 23:19:
Dus eigenlijk gewoon een tuinslang met allemaal babytuinslangetjes. Is een olifant dan niet een betere analogie? Alhoewel, dan krijgt in- en uitgang weer zo'n vreemde bijbetekenis. :X. :D.
Kindjes :+.

Maar om een lang verhaal kort te maken; voor mijn streaming + recording ga ik meer dan 1 geluidskaart gebruiken? :)

Verwijderd

Nee, je gaat esdrec support implementeren in die applicaties, evt. kan dat al via "esddsp" (dat zou geniaal simpel zijn, maar ik gok van niet eigenlijk).

Of je gaat GStreamer gebruiken, wij kunnen dat al. :+.

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Ga ik dat doen? Nee, dat laat ik mooi uitbesteden >:)

Verwijderd

/me :X.

  • im_ik
  • Registratie: November 2000
  • Laatst online: 28-12-2025

im_ik

dat ben ik dus

jep schreef op 30 december 2002 @ 12:02:
Zeg ronald :+. kan ik die DC10 ook meerdere keren aanroepen om bijvoorbeeld 2 kwaliteiten op te slaan? :)
Tis vandaag im_ik :P

Maar dat kan met "VidSplit - Video Splitter for Video 4 Linux devices"
url: http://www.ednet.ns.ca/~macleajb/vidsplit.html

maar dat had je zelf ook heel simple kunnen vinden door op:
http://www.exploits.org/v4l/ te kijken (1st link google "v4l")

Atari Terminator AI - LegoBlockX3 = ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T008ᖟ


Verwijderd

code:
1
2
3
4
    * Input should be RGB24.
    * Slow.
    * Missing many format conversions.
    * Goes into slow motion when 2 applications are running for a while. (BUG)


;). Er is ook geen goede manier om dit te doen, sorry... Kost teveel CPU... Ooit zal GStreamer het kunnen, maar snel zal het nooit worden. :{.

Verwijderd

Wat als je nou die zooi uit je soundkaart naar file schrijft...en die weer opent dan (met een delay van 1 sec bijvoorbeeld) ben je er toch ook?

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42
Mijn streaming software wil zoiets als /dev/dsp :) Met een file gaat 't niet.

Verwijderd

Verwijderd schreef op 18 januari 2003 @ 22:17:
Wat als je nou die zooi uit je soundkaart naar file schrijft...en die weer opent dan (met een delay van 1 sec bijvoorbeeld) ben je er toch ook?
Heeft 't zelfde effect als een FIFO. ;).

  • J!M!B
  • Registratie: December 2002
  • Laatst online: 06-04 09:46
Volgens mij hoeft het allemaal lang niet zo ingewikkeld, ik denk dat je gewoon met een beetje knutsel werk de cd-in en de aux aansluitingen op een standard geluidskaart kan gebruiken, je sluit dan gewoon 2 van de drie line-in's die je wil gebruiken op deze aansluitingen aan. Ik bedoel dus die koperen pinnentjes op de geluidskaart waar je normaal gesproken je cd-rom/dvd/brander op aansluit om audio cd's af te spelen. (op sommige geluidskaarten zijn deze pinnetjes verwerkt in een plastic blokje waar je een klein stekkertje in moet stoppen die naar je cd-rom/dvd/brander gaat)
Mogelijk werkt het bovenstaande niet zo als jij wil, of laat de kwaliteit wat te wensen over, ik heb het zelf nog niet geprobeerd namelijk...
Pagina: 1