Live sound low/highpass filtering

 ( goddethroned | 2010. április 13., kedd - 15:05 )

Hi all!

Segítséget kérnék a fenti témakörben.

A feladat: mikrofonról real-time felvett hangot kellene szűrni a köv módon:

- tól-ig skálán beállítani 1 értéket a magas frekvenciatartománynak
- tól-ig skálán beállítani 1 értéket az alacsony frekvenciatartománynak

Majd ezek után a felvett anyag real-time szűrése, és a szűrt hang továbbjátszása az eszköz hangkimenetére.

Soha nem csináltam még semmi ehhez hasonlót, ezért érdeklődnék hogy merre kellene egyáltalán elkezdeni a keresgélést.
Esetleg van erre kész library c/c++ - hoz?

Köszönöm mindenkinek a leendő javaslatokat!

Üdv,
goddethroned

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

szerintem ahhoz ennél több elméleti tudás kell, hogy ezt összerakd. ez nem cut & paste sw-legózás.

ezen a környéken érdemes nézelődni:
http://en.wikipedia.org/wiki/Discrete_Fourier_transform

Hát, nem is gondoltam hogy az lesz :) Köszi a linket.

persze, meg a kvantummechanika nélkül neki se kezdjen :D
attól függ mit akar, ez kicsit kevés infó hogy matekhoz vagy hangmérnökhöz irányítsuk, szóval legyen itt ez is:

sox.sourceforge.net
(nyílt kódú, lehet cut&paste módra is, sőt egyszerűen csövezve is használni ha gyors _működő_ eredmény kell)

Sajna nekem is csak ennyit mondtak, ebből az infóból próbálok kibogarászni valamit... :( Ez a SoX elég jónak tűnik, ezt alaposan átnézem. Köszi!

A Speexet vagy CELT-et lehet, hogy érdemes lenne megnézned ( www.xiph.org ), mind a kettő hangfeldolgozással foglalkozik, lehet, hogy van bennük olyan rész ami érdekel. A speexet már használtam, ott érdemes gitből letölteni a forrást, mert az a naprakész, és a preprocessor rész az ami téged érdekelhet. A CELT-et nem ismerem.
--
ahan nem

Meglesem, nagyon köszi!

sox lehet, hogy késni fog; nem tudom, hogy van-e valósidejű módja. Próba-cseresznye.

A másik út valami olyan proggi, ami LADSPA-pluginokat tud használni.

A harmadik lehetőség Windows vagy Mac.

Ha linux, akkor itt írkáltunk a valós idejű beállításról (de máshol is találsz róla infót).

Ezt mondjuk elfelejtettem leírni: iPhone-ra kellene :)

Most hogy van időm picit nézegetni az SDK-t, még az is lehet hogy van beépített filter a Core Audio SDK-ban ami nekem megfelelő lesz.

Ha low latency kell, akkor nem mindegy az sem, hogy milyen rétegeken keresztül hajtod meg a hangkártyát.

Linuxon a jackd-t érdemes lehet összerakni, abban elég egyszerűen implementálhatóak szűrők. Ha szerencséd van létezik is eleve amit keresel.

Köszi, de iPhone-ra kellene

a dft alapu megoldasok az ablakozas/alias-ozas miatt nem biztos hogy a legjobbak erre a celra direkt. szofisztikaltabb megoldasok talan jok. erdemes lehet pl megnezni hogy egy mp3 lejatszo (xmms, pl) hogy csinalja az ekvale'zereze'st. akkor lehet realtime: hang -> mp3 -> szures -> mp3 -> hang koverzio.

vagy, egy olyan visszacsatolasi halozatot implementalni ami a megfelelo" RC-ko"rt valositja meg. RC-tagokbol tetszoleges passziv es adott josagu szurot lehet csinalni, ha jol tevedek; maximum a jarulekos erositese lesz gyenge. de mivel itt nem elektronikarol van szo, hanem programozasrol, ez nem gond, csak be kell szorozni a kimenetet egy adott ertekkel. ez is erdekes lehet, mint megoldas. ha lenne egy kis idom, meg is nezne'm aka'r...:]