La génération de l'onde sinusoïdale son en Python
J'ai besoin de générer une onde sinusoïdale son en Python, et j'ai besoin d'être en mesure de contrôler la fréquence, la durée et le volume relatif. Par "générer" je veux dire que je veux que ce jeu même si les haut-parleurs immédiatement, de ne pas enregistrer dans un fichier.
Quelle est la meilleure façon de le faire?
Quelle plate-forme(s) ciblez-vous?
Principalement MacOS X - I devrait avoir précisé cela, désolé!
Cette question est similaire à stackoverflow.com/questions/307305/play-a-sound-with-python et stackoverflow.com/questions/260738/play-audio-with-python
génération de signaux Sinusoïdaux
Principalement MacOS X - I devrait avoir précisé cela, désolé!
Cette question est similaire à stackoverflow.com/questions/307305/play-a-sound-with-python et stackoverflow.com/questions/260738/play-audio-with-python
génération de signaux Sinusoïdaux
OriginalL'auteur astrofrog | 2011-11-28
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé @yahweh contribution à la être le cas. Il serait utile d'inclure dans le code de l'échantillon.
OriginalL'auteur ivan_onys
ivan-onys a donné une excellente réponse, mais il y a un peu plus de lui:
ce script génère 4 fois plus courte que prévu, car Pyaudio méthode d'écriture besoins de données chaîne de float32, mais lorsque vous passez un tableau numpy pour cette méthode, il convertit l'ensemble de la baie comme une entité à une chaîne de caractères, par conséquent, vous devez convertir les données dans un tableau numpy à la séquence d'octets de vous-même comme ceci:
et vous devez changer cette ligne:
OriginalL'auteur yahweh
L'un des plus cohérents andeasy d'installer des moyens de traiter avec le son en Python est le Pygame bibliothèques multimédia.
J'avais recommandons de l'utiliser, il y a de pygame.sndarray sous-module qui permet de manipuler des nombres dans un vecteur de données qui deviennent un haut niveau sonore de l'objet qui peut être joueurs dans le pygame.module de mixage.
De la documentation dans l'pygame.org le site devrait être suffisant pour l'utilisation de la sndarray module.
OriginalL'auteur jsbueno
Je le bregman laboratoire boîte à outils vous avez un ensemble de fonctions qui fait exactement ce que vous voulez. Ce module python est un peu buggé, mais vous pouvez adapter ce code pour obtenir vos propres fonctions
OriginalL'auteur lizzie
Aujourd'hui pour Python 3.5+, la meilleure façon est d'installer les paquets recommandés par le développeur.
http://people.csail.mit.edu/hubert/pyaudio/
Pour Debian ne
avant d'essayer d'installer pyaudio
OriginalL'auteur Drill Bit