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

Frekvencija zvuka

[es] :: Pascal / Delphi / Kylix :: Frekvencija zvuka

[ Pregleda: 3113 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Frekvencija zvuka07.10.2005. u 17:37 - pre 224 meseci
Hocu da napravim stimer za gitaru. Ono sto treba da radi je da na svakih 50-100ms uhvati zvuk sa mikrofona i da prikaze frekvenciju zvuka. Jel ima neko koristan savet u vezi s tim? Ono sto sam ja uspeo je da sa mciSendCommand na svakih 100ms snimim kratki wav fajl, ali sad ne znam kako da izvudem frekvenciju iz njega.
Hvala
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Frekvencija zvuka07.10.2005. u 17:54 - pre 224 meseci
Kad pohvatas podatke sa mic ili line-in protrcis kroz buffer i pratis kako vrednost raste. Kad vidis da vrednost pocinje da opata znaci da je tu najjaci signal i zapamtis vreme tog trenutka. Zatim opet radis isto dok ne pronadjes jos jedan najjaci signal. Tako ces imati vreme izmedju dva najaca signala i moci ces da izracunas frekvenciju.
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Frekvencija zvuka07.10.2005. u 18:02 - pre 224 meseci
jel moze samo to detaljnije malo, ne razumem bas. Koji buffer? Ja znam jedino direktno u fajl da sacuvam sa
Code:

mciSp.lpfilename := PChar(FileName);
    Res := mciSendCommand(MediaID, MCI_SAVE,
                                     MCI_SAVE_FILE or MCI_WAIT,
                                     LongInt(@mciSp));

Hvala
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Frekvencija zvuka07.10.2005. u 18:39 - pre 224 meseci
Preporucio bih ti da koristis sledece funkcije:

waveInOpen za pripremanje muzicke za snimanje zvuka
Napravices jednu funkciju tipa waveInProc koja ce ti sluziti za komunikaciju sa muzickom.
waveInPrepareHeader da pripremis buffer za primanje podataka sa muzicke
waveInAddBuffer da posaljes buffer u koji ce se snimati
waveInUnprepareHeader da oslobodis neke interne promenljive kad muzicka zavrsi s bufferom (obavestice te u funkciji koju si prosledio u waveInOpen kad je zavrsila sa bafferom)
waveInStart za pocetak snimanja
waveInReset za zaustavljanje snimanja kad za to dodje vreme
waveInClose za zatvaranje muzicke

Za sve ove funkcije imas help u Win SDK koji ide sa Delphiem. U bufferu ce se nalaziti podaci o zvuku. Dovoljno ti je da izaberes mono 16-bit buffer (mozda ti je dovoljan i 8-bit) i onda ti ostaje samo jos da napises funkciju za pronalazenje vremena izmedju dva vrha. Obrati paznju samo da ti buffer bude dovoljno velik za analizu ili da funkcija podrzava pretrazivanje vise buffera dok ne pronadje vrh ako ti je potrebna skoro real time brzina analiziranja. Sto je buffer manji pre ces moci da ga obradis, ali ce se mozda desiti da ne bude ni jedne cele oscilacije u njemu, a ako je duzi onda ces morati da sacekas da se ceo napuni podacima, ali ces definitivno imati bar jednu oscilaciju.

[Ovu poruku je menjao Srki_82 dana 07.10.2005. u 19:39 GMT+1]
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.hsd1.ca.comcast.net.



+1001 Profil

icon Re: Frekvencija zvuka08.10.2005. u 06:46 - pre 224 meseci
Napricaste coveku svasta. Kad bi radio to sto mu savetujete, dobijao bi frekvencije u
rasponu od 0.03 do 10 Hertz-a.

Nego, blago meni, bolje nadji negde biblioteku za FFT (brza furijeova transformacija)
pa racunaj spektar signala. To mozda nije najefikasniji algoritam za te stvari, ali je
najlakse da shvatis kako da ga implementiras ako nemas znanje iz obrade signala.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Frekvencija zvuka08.10.2005. u 09:30 - pre 224 meseci
Zasto mislis da bi dobijao vrednosti samo od 0.03Hz do 10Hz? Podaci u bufferu oznacavaju polozaj membrane na zvucniku, a njemu treba koliko se cesto u sekundi membrana pomeri sa +Max na -Max tako da bi trebalo da samo pronalazenje vremena izmedju dva +Max-a posluzi za racunanje frekvencije.
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.hsd1.ca.comcast.net.



+1001 Profil

icon Re: Frekvencija zvuka08.10.2005. u 20:39 - pre 224 meseci
To bi vazilo samo ako bi imao monohromatski ton - jednu sinusoidu.

Kad imas (kao sto imas) kod obicnog signala glasa ili muzike zbir mnostva sinusoida
raznih frekvencija, u kojoj svaka po nekom svom ritmu menja intenzitet, nestaje, da
bi se ponovo javila u ko zna kom trenutku sa ko zna kojom fazom - ta ideja ne
prolazi.

Ono sto kod muzike oznacavaju peak-ovi, obicno je ritam (bas + bubanj) i/ili plozivi
glasa, koji se po prirodi stvari desavaju do desetak puta u sekundi.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Frekvencija zvuka08.10.2005. u 20:58 - pre 224 meseci
Upssss
Tacno... upravu si. Nema sanse da to bude samo jedna sinusoida.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Frekvencija zvuka08.10.2005. u 21:03 - pre 224 meseci
Mozda ovo pomogne.

http://www.codeproject.com/audio/waveInFFT.asp
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.hsd1.ca.comcast.net.



+1001 Profil

icon Re: Frekvencija zvuka09.10.2005. u 03:10 - pre 224 meseci
Znati i razumeti FFT je dragoceno. Preporucujem svakome ko zeli da se bavi
digitalnim audiom - to je prvi veliki korak.

Za ovu svrhu (monitorisanje spektralne raspodele snage) postoji gomila racunski
jednostavnijih metoda, medjutim razumeti kako se do toga doslo zahteva rad u
digitalnoj obradi signala, pa mu FFT dodje kao lep i elegantan prvi korak. Na novijim
PC-ovima ako je algoritam pisan u SSE (ili integer verzija u MMX-u), radi sasvim
brzo i lepo i do reda 16.

Primera radi, moze se meriti snaga signala na izlazima serije band-pass filtara. Neki
dobar IIR filter zahteva daleko manje mnozenja i sabiranja nego FFT...

[Ovu poruku je menjao milanche dana 09.10.2005. u 04:10 GMT+1]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Frekvencija zvuka

[ Pregleda: 3113 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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