web-dev-qa-db-fra.com

Comment jouer une tonalité (par exemple une onde sinusoïdale) à une hauteur / fréquence arbitraire?

Je souhaite générer une seule tonalité continue (par exemple une onde sinusoïdale) à partir d'une page Web avec la possibilité de contrôler de manière interactive les éléments suivants:

  • démarrer/arrêter le son
  • changer de ton
  • changer le volume

Je recherche une solution raisonnablement susceptible de fonctionner sur une grande variété de matériels, de navigateurs et de connexions; quelque chose d'aussi simple et de bande passante que possible.

La seule méthode qui semble fonctionner de manière fiable sur le matériel auquel j'ai accès est Flash, mais j'aimerais vraiment éviter une solution propriétaire et créer quelque chose avec un logiciel open source conforme aux normes ouvertes.

Est-ce possible?

Si c'est le cas, comment?

2
Ian Mackinnon

Vous pouvez essayer d'utiliser la balise <audio> et la boucler avec l'attribut onended. Je ne suis pas sûr de la compatibilité multiplate-forme de cette solution, mais elle doit être meilleure que Flash, qui ne fonctionnera pas sur l'iPad, l'iPhone ou de nombreux autres appareils mobiles.

Ensuite, vous avez juste besoin d'un script côté serveur pour générer de petits clips audio d'une fréquence particulière. C'est à dire. vous dirigeriez le src de la balise audio vers:

/generate_tone?freq={the frequency you want}
2
Lèse majesté

Java est une alternative. Il existe un environnement de développement appelé Processing qui a été créé pour résumer Java et faciliter la programmation graphique et multimédia par les artistes et les personnes habituelles.

Vous pouvez générer des programmes sous forme d'applets (ou d'applications multiplates-formes).

Si avoir une applet sur votre site Web est ok, alors c'est un bon moyen d'aller.

Voici leur exemple de génération d'une tonalité sinusoïdale en utilisant une bibliothèque audio.

0
milesmeow