manipuler l'audio et le dessin de la forme d'onde à l'aide de java sonore en temps réel
Je suis actuellement en train de développer une application qui permet à l'utilisateur de personnaliser son de la guitare et de générer des effets de guitare. C'est en temps réel. J'ai été à la recherche à travers des applications java qui pourrait donner une idée de générer des effets de guitare tels que le surmenage et de retard mais je ne pouvais pas trouver tout. Aussi une source sur la création d'une forme d'onde en temps réel est nécessaire. Vos commentaires seraient beaucoup d'aide, merci d'avance.
OriginalL'auteur | 2009-02-07
Vous devez vous connecter pour publier un commentaire.
Jean dit:
Mon dieu, c'est un peu difficile, vous devriez avoir dit Soleil que ce n'était pas possible avant, ils ont publié l'API pour que cela: http://java.sun.com/products/java-media/sound/. Il y a beaucoup fait avec le son en Java, et je n'ai jamais eu un problème de latence ou des tampons, même sur un peu décrépit matériel.
De bons exemples @ http://www.jsresources.org/examples/index.html
Bonne aide @ http://java.sun.com/products/java-media/sound/list.html
... avoir dit que, de Jean-observations sur l'apprentissage de la DSP & de la forme d'onde d'analyse sont sur les $$$.
Amusez - Dave
Je suis récemment tombé sur ce petit tid bits, j'ai pensé partager. stackoverflow.com/a/1602139/58961
J'ai souvent pensé que ce serait utile serait si les flux de gardé la trace d'un montant absolu de fois depuis qu'ils ont été ouverts, et l'on peut spécifier qu'un flux de données audio doivent remplacer tout ce qui est déjà amortie, en commençant à un temps absolu, avec la sémantique que si ce délai était dans le passé, la quantité appropriée de nouvelles données ignorées, de sorte que chaque échantillon qui avait été mis en file d'attente pour jouer à un moment donné serait remplacés avec des données qui était destiné à jouer en même temps. Qui permettrait de code pour mettre en file d'attente spéculative de données...
...mais le remplacer instantanément si les contrôles ont été modifiés de sorte qu'il est devenu obsolète. Aucune idée si les systèmes de faire quelque chose comme ça?
Bien sûr, mais ça va dépendre de la façon dont le flux de données est codé, le PCM est simple puisque le temps de recherche se rapporte de façon linéaire avec la fréquence d'échantillonnage, la profondeur de bits et le nombre de voies. Pour les autres flux encodés je ne sais pas, mais en général, vous avez la notion de débit, ce qui est probablement une bonne approximation, mais elle n'est pas exacte, pour connaître les temps de recherche que vous auriez probablement compter sur plus de connaissances de la façon dont le flux est codé. Peut-être il y a des marqueurs dans le flux de données que vous pouvez sauter et ensuite chercher à obtenir d'eux, qui est probablement un bon compromis entre l'efficacité et l'aspect pratique.
OriginalL'auteur Dave Carpeneto
Ce projet open source peut-être une bonne référence pour vous. Il existe une fonction qui construit la forme d'onde
http://code.google.com/p/musicg/
OriginalL'auteur c'quet
Concernant la de faisabilité de faible latence de traitement du son: jetez un oeil à cet article sur Harmonicon, java doux synthé. C'est un exemple de jeu de synthé mis en œuvre entièrement en java, à l'aide de la Métronome GC, ce qui est supérieur de latence de garanties dans le < 2 ms en cours d'exécution sur un OS temps réel.
Concernant vague la génération des formulaires/dsp, découvrez l'exemple de cette question, Java de génération de sons, un très simple exemple de génération de forme d'onde.
OriginalL'auteur claj
Tout d'abord, oubliez Java. Java est géré au moment de l'exécution, qui ne collecte des ordures. Lorsque cela arrive, vous entendrez coffrage parce que vous voulez garder votre son petit tampon pour réduire le temps de latence,
Deuxièmement, vous serez l'interface avec le matériel carte son par exemple, Java ne supporte pas ce genre de chose et donc, vous devrez écrire une partie du matériel de l'abstraction dans la JNI ou de trouver une solution existante, mais il y a un problème avec ça. Il est peu probable que vous obtiendrez en temps réel les performances de la plate-forme Java.
En ce que vous voulez c'est que vous voulez aller avec
C++
pour cela, et vous voulez en savoir plus sur partielle de la différenciation, de la DSP, la synthèse du son et de la forme d'onde d'analyse. C'est beaucoup à prendre, mais elle devrait vous donner un bon sens de l'orientation si vous commencez à lire sur la recherche pertinente...OriginalL'auteur John Leidegren