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

Klatschometer (merac jacine pljeskanja)

[es] :: C/C++ programiranje :: Klatschometer (merac jacine pljeskanja)

[ Pregleda: 2504 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pera_Anarhista
Autonomija

Član broj: 3473
Poruke: 113
*.177.3.213.dial.bluewin.ch



Profil

icon Klatschometer (merac jacine pljeskanja)07.11.2002. u 01:28 - pre 261 meseci
Pozdrav...
Moram da napravim za skolu nekakav merac, da se za vreme priredbe vidi kada se najvise pljeskalo / sta se publici najvise svidelo... Mikrofon & akustika ne igraju nikakvu bitnu ulogu, znaci moje je ono sto dolazi iz stekera mikrofona. Ja sam napravio program, ali on koristi 8 bita po jednoj periodi (44 100b po sekundi). Da li je to dovoljno ? Tj., da li on pokriva ceo spektar od 96dB ili za tako nesto moram ipak da uzmem 16 bita po periodi ? (da li 8 bitova pokrivaju ceo spektar amplituda (jacine) )?

Kod je prikacen uz poruku.
(ako menjam u 16 bitno snimanje, da li se menja i buffer na zvucnoj kartici ?, ima li neko primer za tako nesto ?)
nema mira, nema pravde

http://www.anarchy-serbia.tk
Prikačeni fajlovi
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.STTNWAHO.dynamic.covad.net



+18 Profil

icon Re: Klatschometer (merac jacine pljeskanja)07.11.2002. u 03:43 - pre 261 meseci
Ako hoces, koristi recimo CoolEdit da snimis zvuk (moze da snima satima), i onda mozes odmah i u njemu da pogledas kada je publika bila 'najzadovoljnija'.
Ako bas hoces da sam snimas i procesiras podatke, onda koristi 16-bitni zapis jer ces inace imati mnogo problema sa normalizacijom zvuka (tj. trebaces bas da namestis sve da ti stane u 8-bita (i tisina, i sum, i aplauz razlicitog inteziteta)).
Sto se bafera tice, samo ce ti biti potreban bafer koji je duplo veci.
 
Odgovor na temu

Pera_Anarhista
Autonomija

Član broj: 3473
Poruke: 113
*.180.202.62.dial.bluewin.ch



Profil

icon Re: Klatschometer (merac jacine pljeskanja)07.11.2002. u 17:00 - pre 261 meseci
Evo funkcije koja izracunava tapsanje:
Code:

DWORD IzvrsiSveProracune( PBYTE pSaveBuffer, DWORD dwVelicina ){
  DWORD dwR = 0;
  DWORD dwTemp = 0;
  int iPrvi = 0, iPoslednji = 0;
  bool bFunkcijaSeSpusta;
  int iSastavljenBroj;
  // za poslednji broj:
  // iSastavljenBroj = pSaveBuffer[dwVelicina-2]+pSaveBuffer[dwVelicina-1]<<8;
  
  for( dwTemp = 1; dwTemp < dwVelicina -1; dwTemp += 2 ){
    iSastavljenBroj = pSaveBuffer[dwTemp -1] + pSaveBuffer[dwTemp]<<8;
    if(iSastavljenBroj > 0){ // ako nije tisina:
      iPrvi = iSastavljenBroj;
      if( iPrvi > iPoslednji ){
        // povecavaj spic
        bFunkcijaSeSpusta = false;
      }
      if( iPrvi < iPoslednji && !bFunkcijaSeSpusta){
        // Funkcija se spusta, spic je prosao i to u iPoslednji...
        dwR += iPoslednji;
        bFunkcijaSeSpusta = true;
      }
    }
    iPoslednji = iPrvi;      
  }
  dwR = dwR / dwVelicina;
  return dwR;
}


Problem je sto ne radi bas onako kako bi trebala... :( U memoriji ce sve biti snimljeno u bajtovima, a ja to posle moram da prebacim u dva bajta (signed int) i da uzimam u obzir samo amplitude preko nule...
Uz poruku sam okacio obnovljen kod za 16-bitno snimanje...

Hvala na odgovoru !

P.S. CoolEdit mi ne moze odraditi posao, posto rezultat ide direktno na bimer, kao u jeftinim TV emisijama...
nema mira, nema pravde

http://www.anarchy-serbia.tk
Prikačeni fajlovi
 
Odgovor na temu

[es] :: C/C++ programiranje :: Klatschometer (merac jacine pljeskanja)

[ Pregleda: 2504 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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