ugrás a tartalomhoz

Hangmagasság és ütem mérés

Creative · 2014. Júl. 16. (Sze), 14.36
Sziasztok,

Az alábbi problémával fordulok most hozzátok s gyors és értő hozzászólásokban reménykedem.

WebAudio segítségével próbálok megvalósítani egy látszólag könnyű dolgot. Adott egy gombnyomása induló liveinput audió bemenet /mikrofon/, s ezen hangmagasságot mérek egy githubos projekt alapján. Extra, hogy a document.ready -be beraktam egy olyan sort, mi szerint ha van pitchDetector.pitch változó, akkor azt azonnal logolja egy textboxba, amiből én logfile-t tudok menteni.

Problémám /azon túl, hogy egy nagyon naív megoldást próbálok használni/, hogy kellene ide egy ütem számláló/mérő is, ami megmondaná, hogy amit hallok, annak mi a bpm -je. Ilyet azonban sajnos nem találtam eddig, ami használható is lett volna. Egyszeri dolog és fontos lenne, ha bárki tapasztalt, hozzáértő tudna nekem segíteni ebben.

Szóval JavaScript alapon, kombinált PitchDetector és BPM counter/calculator/meter (ki hogy hívja).

Bárki bármi tapasztalat ilyen téren, vagy tud olyan megoldásról, ami már létezik erre? Gyorsan kellene és egy egyszerűbb megoldás JS-ben, köszi srácok előre is mindent.
 
1

nem lesz egyszerű

razielanarki · 2014. Júl. 17. (Cs), 18.57
nem lesz egyszerű dolgod, érdmes utánanézni valami készmegoldásnak, ha nem akkor beleásni magad a fourier analízisekbe. (főleg ha pitchet is akarsz mérni)

helpnek pár link:

http://archive.gamedev.net/archive/reference/programming/features/beatdetection/

https://www.clear.rice.edu/elec301/Projects01/beat_sync/beatalgo.html

sajnos pitch detectiönben csak elég tudományos dolgokat talátam, de egy elég részletes fft-vel talán ki tudod mutatni a statisztikailag valahogy :)
2

nem lesz egyszerű

Hidvégi Gábor · 2014. Júl. 18. (P), 10.53
Nagyméretű adatmennyiség feldolgozását JS-re bízni nem biztos, hogy a legjobb ötlet, mert nagyon el lehet szállni a memóriahasználattal, hisz a felszabadításra nincs hatásod.
3

JS

janoszen · 2014. Júl. 18. (P), 11.22
Eloszor is, ez egy elegge szamitasigenyes muvelet, illetve egy rakas kesz libre lesz szukseged, ezert semmikeppen ne csinald meg JS-ben. Masodszor, en eleg sokat dolgozom zenevel es meg a nagyon draga szoftverek SEM tudjak sokszor beloni a BPM-et, foleg olyan zenestilusoknal, ahol nincs tiszta utem (pl elektronikus zene), eppen ezert az automatikus utemmeres melle csinalnak manualis igazitasokat egy megfelelo interfesz segitsegevel. StackOverflow-n talalsz egy rakas ilyen iranyu kerdest, azokat erdemes behatoan attanulmanyozni, de nagy remenyeket nem fuzok hozza, hogy ezt gazdasagos eroforrasokkal meg lehet oldani.