2016-10-22 1 views
2

J'ai créé un jeu HTML5 qui utilise des échantillons et de la musique ADPCM.WebAudio: Steep lowpass?

La musique elle-même est à 11025Hz mono et j'ai fait un simple-Neighbor-Resampler plus simple pour obtenir 22050Hz plus un algorithme stéréo faux.

Les échantillons sont pré-suréchantillonnés pendant le chargement afin de réduire la charge du processeur pendant l'exécution (aucun rééchantillonnage en temps réel n'est nécessaire).

J'ai donc atteint ce véritable son rétro comme à la fin des années 90.

Fonctionne très bien jusqu'ici.

Mais le "vrai" rééchantillonneur de WebAudio qui correspond au 22050Hz à la fréquence d'échantillonnage interne ne semble pas encore mieux sur certains navigateurs :-D.

Comment est-ce que je peux couper tout au-dessus de 11025Hz (fréquence de Nyquist de 22050Hz)? Idéal serait: 0-11025Hz intacte mais 11026Hz-max filtré.

Le filtre passe-bas fourni par l'API WebAudio n'est pas assez raide et produit des résonances à la fréquence du filtre. Je ne veux pas laisser les fréquences "merdiques" aller si haut. Le rééchantillonnage "merdique" devrait s'arrêter à 11025Hz. Je pense, il n'est pas bon pour les haut-parleurs tweeter et même les joueurs d'entendre lorsque les basses fréquences fortes reflètent à haute fréquence.

Vous ne voulez pas MP3 & ici. ADPCM-> MP3 a besoin de plus de débit que le réel ADPCM (Les artefacts désirés sont difficiles à encoder sans perte audible) :-). J'ai lu à propos des filtres FIR et IIR mais je ne les ai pas compris parce que c'est trop mathématique pour moi.

Je pense que c'est ce dont j'ai besoin.

J'ai besoin de quelque chose qui peut être transformé en code sans avoir un diplôme universitaire :-D.

Répondre

0

Je suis probablement en retard à la fête, mais pour obtenir une courbe de filtre plus raide, vous avez simplement besoin de plusieurs applications du filtre biquad, à savoir plusieurs objets BiquadFilterNode enchaînés.

Un seul BiquadFilterNode avec lowpass a une atténuation de 12db par octave, à partir de laquelle vous pouvez facilement calculer le nombre de nœuds de filtrage dont vous avez besoin. Si vous êtes préoccupé par la résonance, il suffit de la diminuer (réglage Q).