J'aimerais mélanger au moins deux canaux audio PCM (par exemple, des échantillons enregistrés) numériquement de manière acoustiquement fidèle, de préférence en temps quasi réel (ce qui signifie peu ou pas de coup d'œil).
La façon physiquement "correcte" de procéder consiste à additionner les échantillons. Toutefois, lorsque vous ajoutez deux échantillons arbitraires, la valeur obtenue peut atteindre le double de la valeur maximale.
Par exemple, si vos échantillons ont une valeur de 16 bits, le résultat sera au maximum de 65 536 * 2. Cela entraîne une coupure.
La solution naïve consiste ici à diviser par N, N étant le nombre de canaux mélangés. Cependant, cela signifie que chaque échantillon est 1 / Nth aussi fort, ce qui est complètement irréaliste. Dans le monde réel, lorsque deux instruments jouent simultanément, chaque instrument ne devient pas moitié plus fort.
En lecture, une méthode de mixage courante est la suivante: resultat = A + B - AB, où A et B sont les deux échantillons normalisés mélangés, et AB est un terme permettant de garantir que les sons plus forts sont de plus en plus "atténués".
Cependant, cela introduit une distorsion du signal. Ce niveau de distorsion est-il acceptable dans une synthèse audio de haute qualité?
Quelles autres méthodes existe-t-il pour résoudre ce problème? Je m'intéresse aux algorithmes efficaces de moindre qualité ainsi qu'aux algorithmes de haute qualité moins efficaces.
Je pose ma question dans le contexte de la synthèse musicale numérique, dans le but de mélanger plusieurs pistes d’instrument. Les pistes peuvent être de l'audio synthétisé, des échantillons pré-enregistrés ou une entrée de microphone en temps réel.