Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zvuk iz ArrayList-a

[es] :: .NET :: Zvuk iz ArrayList-a

[ Pregleda: 1882 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

PremierApostile
Oslo, Norway

Član broj: 74986
Poruke: 68
*.ns.ac.yu.



+4 Profil

icon Zvuk iz ArrayList-a15.06.2007. u 10:51 - pre 177 meseci
Da li je moguce pustiti signal na zvucnik iz ArrayLista.Podaci u ArrayListu su mi Uint tipa. Znam da Matlab ima neku jednostavnu naredbu koja to izvrsava ,al u c# ? :-(. Signal koji cuvam u ArrayListu mi je u slusnom podrucju tako da nije problem u konstantaciji ,vec u implementaciji .Ako ko ima ideju,svaka je dobro dosla.

Svako može, a poneko zna.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6025



+4621 Profil

icon Re: Zvuk iz ArrayList-a15.06.2007. u 12:35 - pre 177 meseci
Hmmm, nesto mi tu ne "zvuci" ok. Mozda gresim, davno je bilo, ali koliko se secam elektroakustike, signal da bi se cuo lepo treba da oscilira ispod i iznad "nultog signala" da bi to omogucilo maksimalni opseg membrane na zvucniku. Svaka jednosmerna komponenta signala limitira opseg posto "zakucava" membranu u ne-nulti polozaj i deformise zvuk i u krajnjoj liniji ga utisava. Zasto ovo pricam, zato sto je tvoj arraj popunjen UInt-ima, sto ce reci seo tvoj signal je uvek u pozitivnom opsegu i ima ili fiksnu ili plutajucu jednosmernu komponentu.

A za izbacivanje array-a integera na zvucnike, ja bih licno tu iskoristio malo unmannaged code-a i unsafe metode. To bi ti omogucilo da castujes c# managed int[] u fiksirani int* buffer sto je jedini nacin da nateras GC da ne dira tvoj buffer

Code:

            int[] x = { -1, 1, -2, 2, -3, 3 };
            fixed (int* px = x)
            {
                // ovde izbacis bafer na zvucnu
            }


Taj pointer posle mozes da bacis na zvucnu karticu kroz Interop kroz API, pogledaj sors ovog primera
A low-level audio player in C#
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

PremierApostile
Oslo, Norway

Član broj: 74986
Poruke: 68
*.ADSL.neobee.net.



+4 Profil

icon Re: Zvuk iz ArrayList-a15.06.2007. u 20:35 - pre 177 meseci
Citat:
mmix: Hmmm, nesto mi tu ne "zvuci" ok. Mozda gresim, davno je bilo, ali koliko se secam elektroakustike, signal da bi se cuo lepo treba da oscilira ispod i iznad "nultog signala" da bi to omogucilo maksimalni opseg membrane na zvucniku. Svaka jednosmerna komponenta signala limitira opseg posto "zakucava" membranu u ne-nulti polozaj i deformise zvuk i u krajnjoj liniji ga utisava. Zasto ovo pricam, zato sto je tvoj arraj popunjen UInt-ima, sto ce reci seo tvoj signal je uvek u pozitivnom opsegu i ima ili fiksnu ili plutajucu jednosmernu komponentu.

A za izbacivanje array-a integera na zvucnike, ja bih licno tu iskoristio malo unmannaged code-a i unsafe metode. To bi ti omogucilo da castujes c# managed int[] u fiksirani int* buffer sto je jedini nacin da nateras GC da ne dira tvoj buffer :)

Code:

            int[] x = { -1, 1, -2, 2, -3, 3 };
            fixed (int* px = x)
            {
                // ovde izbacis bafer na zvucnu
            }


Taj pointer posle mozes da bacis na zvucnu karticu kroz Interop kroz API, pogledaj sors ovog primera
A low-level audio player in C#

Nije problem mogu prebaciti uint u int . Posto su mi elementi u nizu u rasponu 0-4096,mogu isto promeniti na -2048 do 2048.
Koliko sam shvatio poenta ovog je izbacivanje celog bafera . Meni je potrebno tako reci real time ,tj. da mi po pristizanju podataka sa uredjaja odnosno po prikazu signala na ekran isto se cuje na zvucniku.Ne radim komercijalni program,radi se o Master(diplomskom) Radu ,koji mi je posteno zapeo kod ovog dela :-(.
Svako može, a poneko zna.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6025



+4621 Profil

icon Re: Zvuk iz ArrayList-a18.06.2007. u 14:48 - pre 177 meseci
OK, ti bas testiras moje zakorelo znanje o ovome

1. opseg -2k do 2k nije dobar. Zvucne kartice su 16-bitne i Int ima opseg od -32k do +32k, sto znaci da ce ti input volume tvog signala biti 6% maksimalnog. U prevodu, cak iako i karticu i zvucnike pojacas do maksimuma cuces sa samo 6% jacine. Pre nego izbacis ovaj buffer na karticu moras da "normalizujes" signal, u tvom slucaju svaki int da pomnozis sa 16 (ili svaki int da shiftujes 4 mesta na levo sa predznakom)

2. Ne postoji real time zvuk. Svi programi od mp3 playera do igrica rade sa malim smenjujucim baferima da postignu utisak realnosti. U 44.1Khz modu, kartica "guta" 44100 unsigned integera svake sekunde. Posto oko ne postize vise od realno 25 frameova i ono sto prikazes na ekranu u medjuvremenu covek ne vidi tu imas prostora da laziras stvarnost. Takle ako ti organizujes buffer od 44100/25 = 1764 unsigned integera i vrtis u krug dva buffera (pogledaj double buffering) postici ces "utisak" da zvuk realno prati ispis na ekranu iako taj signal realno kasni za "realnoscu" od 0 to 40ms (1000/25)

E sad posto realno sumnjam da ces moci da postignes sve ovo kroz cisti C# i WaveAPI, toplo preporucujem da pogledas DirectSound9.0 extension for .NET.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

PremierApostile
Oslo, Norway

Član broj: 74986
Poruke: 68
*.ADSL.neobee.net.



+4 Profil

icon Re: Zvuk iz ArrayList-a18.06.2007. u 20:41 - pre 177 meseci
Citat:
mmix: OK, ti bas testiras moje zakorelo znanje o ovome :)

1. opseg -2k do 2k nije dobar. Zvucne kartice su 16-bitne i Int ima opseg od -32k do +32k, sto znaci da ce ti input volume tvog signala biti 6% maksimalnog. U prevodu, cak iako i karticu i zvucnike pojacas do maksimuma cuces sa samo 6% jacine. Pre nego izbacis ovaj buffer na karticu moras da "normalizujes" signal, u tvom slucaju svaki int da pomnozis sa 16 (ili svaki int da shiftujes 4 mesta na levo sa predznakom)

2. Ne postoji real time zvuk. Svi programi od mp3 playera do igrica rade sa malim smenjujucim baferima da postignu utisak realnosti. U 44.1Khz modu, kartica "guta" 44100 unsigned integera svake sekunde. Posto oko ne postize vise od realno 25 frameova i ono sto prikazes na ekranu u medjuvremenu covek ne vidi tu imas prostora da laziras stvarnost. Takle ako ti organizujes buffer od 44100/25 = 1764 unsigned integera i vrtis u krug dva buffera (pogledaj double buffering) postici ces "utisak" da zvuk realno prati ispis na ekranu iako taj signal realno kasni za "realnoscu" od 0 to 40ms (1000/25)

E sad posto realno sumnjam da ces moci da postignes sve ovo kroz cisti C# i WaveAPI, toplo preporucujem da pogledas DirectSound9.0 extension for .NET.


Ako ti ovo nazivas zakorelim znanjem,ne znam onda sta je za tebe "tecno " znanje -:)) .U svakom slucaju hvala na ovim odlicnim i preciznim informacijama .
Jos jednom,hvala !
Svako može, a poneko zna.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6025



+4621 Profil

icon Re: Zvuk iz ArrayList-a19.06.2007. u 15:11 - pre 177 meseci
Svojevremeno ('97-e) sam pomagao ortaku koji je pravio program koji "pretvara" jeftinu zvucnu karticu u jeftini +/-20mV osciloskop za signale do 22Khz preko LineIn utisnice , al davno to bese. Ocigledno se nesto "zalepilo"
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: Zvuk iz ArrayList-a

[ Pregleda: 1882 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.