Ma question n'est pas complètement liée à la programmation, mais je pense néanmoins que le bon endroit est le bon endroit à poser. P>
Dans mon programme, je génère des données audio et je enregistre la piste dans un fichier WAV. Tout fonctionne bien avec un générateur de son. Mais maintenant, je souhaite ajouter plus de générateurs et mélanger les données audio générées dans un seul fichier. Malheureusement, il est plus compliqué que ce qu'il semble à première vue. De plus, je n'ai pas trouvé d'informations très utiles sur la manière de mélanger un ensemble d'échantillons audio. P>
Y a-t-il quelqu'un qui peut me donner des conseils? P>
EDIT: P>
Je suis la programmation en C ++. Mais cela n'a pas d'importance, puisque je m'intéressais à la théorie derrière le mélange de deux pistes audio. Le problème que j'ai est que je ne puisse pas simplement résumer les échantillons, car cela produit souvent un son déformé. P>
4 Réponses :
Vous n'avez jamais dit quel langage et la plate-forme de programmation, mais pour l'instant, je suppose Windows à l'aide de C #. P>
http://www.codeplex.com/naudio p>
Une grande bibliothèque open source qui couvre vraiment beaucoup de choses que vous rencontreriez lors de la plupart des opérations audio. P>
Je suppose que votre problème est que pour chaque source audio que vous ajoutez, vous devez réduire les niveaux. P>
Si l'application donne le contrôle à un utilisateur, laissez-les simplement contrôler les niveaux directement. La chaleur est leur responsabilité, pas la vôtre. C'est "sommation". P>
Si le mélange est automatisé, Vous êtes sur le point de partir en voyage . Vous aurez probablement besoin de compression, sinon de limiter. (La limitation est une version extrême de la compression.) P>
Notez que tout ce que vous faites à l'audio (y compris la compression et la limitation) est une forme de distorsion, vous aurez donc une coloration de l'audio. Votre choix d'algorithmes de compression et de limitation affectera le son. P>
Puisque vous ne générez pas l'audio en temps réel, vous avez la possibilité de faire la limitation de "mur de briques". C'est parce que vous avez connaissance des niveaux. La limitation en temps réel est plus limitée car vous ne pouvez pas savoir ce qui se passe - vous devez être réactif. P>
Cette musique, effets sonores, voix, quoi? P>
programmeurs ici traite de cela tout le temps. P >
Merci d'avoir deviné ce que je voulais poser avec ma question initiale;)
C'est un problème assez commun, comme vous pourriez imaginer.
C'est certainement, je suis dans le même problème mélangeant deux sons générés dans ActionScript 3. Merci pour les liens, on dirait que j'ai une lecture à faire sur les compresseurs!
Mélanger des échantillons audio signifie les ajouter ensemble, c'est tout. En règle générale, vous les ajoutez dans un type de données plus grand afin de pouvoir détecter le débordement et serrez les valeurs avant de revenir dans votre mémoire tampon de destination. Si vous savez à l'avance que vous aurez un débordement, vous pouvez augmenter leurs amplitudes avant d'ajouter - simplement multiplier par une valeur de point flottante comprise entre 0 et 1, en gardant à nouveau à l'esprit la question de la précision, convertissant peut-être d'abord un type de données plus important. < / p>
Si vous avez un problème spécifique qui n'est pas abordé par cela, n'hésitez pas à mettre à jour votre question initiale. P>
Le serrage est limité, et semble assez mauvais. Il est plus susceptible de vouloir un genou sur cette limitation. :-)
Il pourrait, mais c'est techniquement autre chose d'autre que ce qu'il a demandé :)
Mélange sale de deux échantillons
Quel langage et quelle plate-forme de programmation?
Quelle langue utilisez-vous? Quelles bibliothèques? Donner encore plus de détails.