Question

Je voudrais produire des sons qui ressemblent audio d'instruments réels. Le problème est que j'ai très peu moindre idée de comment obtenir.

Ce que je sais loin d'instruments réels est qu'ils sont rarement les sons en propre. Mais comment produire ces sons impurs?

Jusqu'à présent, je l'ai appris à ce faire, il produit un son tout à fait clair à partir de laquelle je ne suis pas sûr qu'il est même en utilisant le alsa correctement.

import numpy
from numpy.fft import fft, ifft
from numpy.random import random_sample
from alsaaudio import PCM, PCM_NONBLOCK, PCM_FORMAT_FLOAT_LE

pcm = PCM()#mode=PCM_NONBLOCK)
pcm.setrate(44100)
pcm.setformat(PCM_FORMAT_FLOAT_LE)
pcm.setchannels(1)
pcm.setperiodsize(4096)

def sine_wave(x, freq=100):
    sample = numpy.arange(x*4096, (x+1)*4096, dtype=numpy.float32)
    sample *= numpy.pi * 2 / 44100
    sample *= freq
    return numpy.sin(sample)

for x in xrange(1000):
    sample = sine_wave(x, 100)
    pcm.write(sample.tostring())
Était-ce utile?

La solution

Cheery, si vous voulez générer (à partir de zéro) quelque chose qui sonne vraiment « organique », à savoir comme un objet physique, vous êtes probablement mieux loti en apprendre un peu sur la façon dont ces sons sont générés. Pour une introduction solide, vous pouvez jeter un oeil à un livre comme Fletcher et Rossings La physique des Instruments de musique . Il y a beaucoup de choses sur le web aussi, vous pouvez jeter un oeil à l'amorce James Clark a ici

Avoir au moins un lait écrémé sur ce genre de choses vous donnera une idée de ce que vous êtes contre. La modélisation des instruments physiques est précisément très difficile!

Si ce que vous voulez faire est d'avoir quelque chose qui sonne physique, plutôt quelque chose qui sonne comme instrument X, votre travail est un peu plus facile. Vous pouvez construire des fréquences assez facilement et les empiler ensemble, ajouter un peu de bruit, et vous aurez quelque chose qui au moins ne semble pas quelque chose comme un son pur.

Lecture un peu sur l'analyse de Fourier en général contribuera, comme les techniques de modulation de fréquence (FM).

Amusez-vous bien!

Autres conseils

synthèse sonore est un sujet complexe qui nécessite de nombreuses années d'études à maîtriser.

Il est pas un problème entièrement résolu, bien que relativement récentes (telles que la synthèse de modélisation physique) ont fait des progrès dans l'imitation des instruments du monde réel.

Il y a un certain nombre d'options ouvertes pour vous. Si vous êtes sûr que vous voulez explorer la synthèse plus loin, je vous suggère de commencer par l'apprentissage de la synthèse FM. Il est relativement facile à apprendre et à mettre en œuvre dans le logiciel, forme au moins en base, et produit une large gamme de sons intéressants. En outre, consultez le livre "The Computer Music Tutorial" par Curtis Roads. C'est une bible pour toutes choses musique assistée par ordinateur, et bien qu'il soit quelques ans, il est le livre de choix pour l'apprentissage des fondamentaux.

Si vous voulez un moyen plus rapide pour produire un son semblable à la vie, pensez à utiliser des techniques d'échantillonnage: à savoir, enregistrer les instruments que vous souhaitez reproduire (ou utiliser une banque d'échantillons pré-existants), et juste lire les échantillons. Il est une approche beaucoup plus simple (et souvent plus efficace).

Je suis d'accord que cela est très non trivial et il n'y a pas de jeu « droit chemin », mais vous devriez envisager de commencer par un (ou faire votre propre) href="http://en.wikipedia.org/wiki/SoundFont" rel="nofollow noreferrer"> SoundFont .

Comme d'autres ont dit, pas un sujet trivial du tout. Il y a des défis à la fois du côté de la programmation des choses (surtout si vous vous souciez de faible latence) et la partie de synthèse. Une mine d'or pour la synthèse sonore est la page par Julius O. Smith. Il y a beaucoup de techniques de synthèse http: // www-CCRMA .stanford.edu / ~ jos / .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top