Question

Je suis en train de développer une application similaire à la tonematrix en C#.J'ai essayé d'abord avec .net et NAudio bibliothèque, maintenant, je vais essayer avec le XNA, mais il semble que tout ce que je peux obtenir est une cacophonie.


Avec NAudio, Je suis de la génération 8 simple d'ondes sinusoïdales avec differente de fréquences, allant de la (440 hz * 1) à la (440 hz * 8).

Avec XNA, Je suis à l'aide de plusieurs SoundEffectInstance du même fichier audio (comme un D4 note d'un piano), chacune ayant une Hauteur différente de la valeur;la valeur de la Hauteur peut aller vers le haut ou vers le bas d'un maximum d'une octave.

Dans les deux cas, lorsque les sons se chevauchent je suis de bruit au lieu de la musique.Peut-être que j'ai eu tout faux et il n'est pas une question de mixage de sons de différentes hauteur/fréquence.

Je trouve difficile de croire que le tonematrix est en utilisant rien de plus qu'un "simple sinewave synthétiseur", puisque les sons sont assez riches et lorsqu'ils sont mélangés ensemble, ils génèrent toujours une harmonique tune, alors qu'une simple onde sinusoïdale est toujours sonne moche et artificiels pour moi.

Suis-je une mauvaise approche pour créer des harmonies?Avez-vous une idée de ce qui se passe réellement pour les ondes sinusoïdales utilisé par tonematrix?

Était-ce utile?

La solution

Il m'arrive d'être en mesure de répondre à votre musique questions, mais ces questions sont probablement de meilleurs posées sur https://music.stackexchange.com/.

Tout d'abord l'échelle.Ces choses ont en général un les gammes pentatoniques (extrait de Wikipedia:"tout terrains d'une telle ampleur peut être joué dans n'importe quel ordre ou de la combinaison sans soucis").Selon les observations, l'exemple que vous avez lié utilise D Pentatonique Majeure de A à A.

Vous trouverez qu'il n'est pas à l'aide d'une droite jusqu'à onde sinusoïdale, mais est en fait à l'aide d'un Enveloppe ADSR pour lui donner le plaisir de "punch" au début et à la (fausse) "echo" à la fin.C'est facile à mettre en œuvre, car vous avez seulement besoin de moduler l'amplitude.

Aussi loin que je peux dire, c'est de ne pas faire quelque chose de spécial lors du mélange des formes d'onde ensemble.Les Chances sont qu'il est en train de faire une simple addition.

Comme pour la mise en œuvre, si vous avez une méthode pour générer des ondes sinusoïdales, plutôt que d'essayer de transposer un exemple, pourquoi ne pas l'utiliser DynamicSoundEffectInstance et de le nourrir à votre onde sinusoïdale?

XNA intégré de pitch shifting n'est pas vraiment bien adapté à cette tâche.Êtes-vous sûr que vous êtes en utilisant les valeurs correctes pour les réglages?

Autres conseils

Si vous utilisez des multiples de la même fréquence que vos entrées, chaque onde sinusoïdale sera exactement une octave supérieure à celle des autres.Ajout de 8 ondes sinusoïdales comme celle-ci résultera de très hautes pics dans la forme d'onde mixte. Vous devez donc vous assurer de pouvoir appliquer la limitation ou la réduction du volume global afin de ne pas causer de distorsion.Sans voir votre code, il est difficile de dire à coup sûr, mais cela peut faire partie de la cause de votre bruit.

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