1 / 48

SoundEngine

SoundEngine. Un serveur d ’effets sonore en temps réel Juillerat Nicolas. Objectifs du projet. Modifier des sons en temps réel Micro  Transformation  Hauts-parleurs Modifier la transformation en temps réel Modification des paramètres Modification des effets Temps réel = 1/10 secondes.

brook
Download Presentation

SoundEngine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SoundEngine Un serveur d ’effets sonore en temps réel Juillerat Nicolas

  2. Objectifs du projet • Modifier des sons en temps réel • Micro  Transformation  Hauts-parleurs • Modifier la transformation en temps réel • Modification des paramètres • Modification des effets • Temps réel = 1/10 secondes

  3. Plan de la présentation • 1. Noyau du programme • 2. Effets sonores • 3. Conclusion

  4. 1. Noyau du programme

  5. 1. Noyau du programme • Composantes principales • 1.1 Effets • 1.2 Graphe d’effets • 1.3 Remarques

  6. 1.1 Effets • Boîtes noires constituées d’entrées et de sorties • Structure d’un effet • Nom, type, description • Ports d’entrée et de sortie • Fonction (inconnue du noyau et du client)

  7. 1.1 Effets • Structure d’un port • Nom, description, capacité • Attributs • Formats acceptés

  8. 1.1 Effets • Exemples de formats • 2048 échantillons 16 bit, 44100Hz, linéaire, Mono (Qualité CD) • 1024 bandes de fréquence (amplitude et phase) • Un nombre à virgule flottante • Un choix parmi une liste • État (Stop, Play, Pause) • Interrupteur (On, Off) • Un nom de fichier

  9. 1.1 Effets • Fonctionnement d’un effet • Lis les données dans les ports d’entrées • Applique une ou plusieurs transformations • Renvoie les résultats dans les ports de sortie

  10. 1.1 Effets • Trois types d’effets • sources : produisent des sons • Lecture depuis un fichier • Lecture depuis le microphone • Génération de signaux simples • effets : transforment des sons • puits : diffusent des sons • Diffusion dans les hauts-parleurs • Enregistrement dans un fichier

  11. 1.2 Graphe d’effets • But • Combiner plusieurs effets simples entre eux pour créer des effets complexes • Isoler chaque problème • Exemple : • 1 effet pour lire depuis un microphone • 1 ou plusieurs effets pour transformer le son • 1 effet pour diffuser le résultat dans les hauts-parleurs

  12. 1.2 Graphe d’effets • Structure • Noeuds: Effets • Arcs: Connexions entre le port de sortie d’un effet et le port d’entrée d ’un autre effet • Lorsque deux ports sont connectés, les données produites dans le port de sortie sont transmise au port d ’entrée

  13. 1.2 Graphe d ’effets • Fonctionnement interne • Similaire à un « depth-first search » partant des puits • Les puits demandent des informations à intervalles réguliers • Les autres effets répondent aux demandes • Les données sonores sont traitées et circulent par blocs de 50ms

  14. 1.2 Graphe d ’effets

  15. 1.2 Graphe d ’effets • Remarques • Les cycles sont permis • Ils induisent un retard dépendant des effets • Les effets inatteignable depuis un puit ne travaillent pas

  16. 1.3 Remarques • Le programme permet de créer et de connecter des effets entre eux pour créer un graphe quelconque • La création et la manipulation d ’effets et de connexions est effectuée par des appels RPC

  17. 1.3 Remarques • Utilise un Scheduler pour répartir les tâches suivantes : • Réception des appels RPC (tâche de fond) • Exécution des appels RPC • « depth-first-search » du graphe des effets (tâche périodique) • Autres événements utilisés par certains effets temps-réel

  18. 1.3 Remarques • Le noyau est indépendant des types d’effets • Effets sonores • Effets vidéos • Portes logiques • etc

  19. 2. Effets sonores

  20. 2. Effets sonores • Présentation d’un exemple concret: le décalage fréquentiel (pitch shifting)

  21. 2. Effets sonores • 2.1 Définition du pitch shifting • 2.2 Problèmes • 2.3 Solution proposée • 2.4 Intégration

  22. 2.1 Définition du pitch shifting • Définition intuitive • Modifier la fréquence d’un son sans en changer la vitesse • Définition formelle • Multiplier par une constante l’ensemble des fréquences de base du spectre instantané à tout instant

  23. 2.1 Définition du pitch shifting • Définition du spectre instantané • Ensemble des fréquences de base présente dans un son à un instant donné

  24. 2.1 Définition du pitch shifting • Définition d ’une fréquence de base • signal cosinusoïdal, A * cos(2f + ) • A: amplitude • f: fréquence • : phase • Remarque • Tout son périodique est la somme d’un ensemble (généralement infini ) de fréquences de base (théorie de Fourier)

  25. 2.1 Définition du pitch shifting • Illustration

  26. 2.2 Problèmes • A) Impossible de traiter un ensemble infini de fréquences • B) Impossible de modifier une fréquence sans changer la phase • C) Impossible de calculer le spectre instantané (principe d’incertitude d’Heisenberg)

  27. 2.3 Solution proposée • Principes • A) Se limiter à un ensemble de fréquences audibles • B) Ignorer les modifications de phase • C) Se contenter du spectre local (ensemble des fréquences de bases sur un intervalle de temps)

  28. 2.3 Solution proposée • Méthode • Diviser le son en intervalles consécutifs • Calculer et modifier le spectre local sur chaque intervalle • Regrouper les intervalles modifiés pour reconstruire le résultat final

  29. 2.3 Solution proposée • Calcul du spectre local • Utiliser la transformation de Fourier discrète (DFT) • Remarques (choix pratiques) • Les sons sont échantillonnés à 44100Hz • La taille choisie des intervalles est de 2048 échantillons (environ 50ms) => Analyse des fréquences entre 22Hz (environ) et 22kHz => Permet d ’utiliser la FFT

  30. 2.3 Solution proposée • Calcul du spectre local Problème: • La DFT analyse le spectre d’un son périodique • Problème de dispersionpour les fréquences qui n’apparaissent pas un nombre entier de fois dans l’intervalle • Domaine temporel: discontinuités • Domaine spectral: apparition de hautes fréquences

  31. 2.3 Solution proposée • Calcul du spectre local Illustration

  32. 2.3 Solution proposée • Calcul du spectre local Illustration

  33. 2.3 Solution proposée • Calcul du spectre local Solution : le fenêtrage • Atténuer les bords des intervalles par une multiplication par une fonction fenêtre

  34. 2.3 Solution proposée • Fenêtrage : Illustration

  35. 2.3 Solution proposée • Fenêtrage : Problèmes • L ’information est perdue sur les bords des intervalles • Le son est modulé • La transformation peut modifier la fenêtre • La fenêtre modifiée peut ne plus être atténuée sur les bords de l ’intervalle

  36. 2.3 Solution proposée • Fenêtrage : Solutions • Utiliser des intervalles qui se chevauchent • Appliquer une fenêtre de correction lors de la reconstruction • Tenir compte de la modification de la fenêtre pour la reconstruction • Appliquer une seconde fenêtre après la transformation et tenir compte des deux fenêtres pour la reconstruction

  37. 2.3 Solution proposée • Résumé

  38. 2.4 Intégration

  39. 2.4 Intégration • 1ere idée • Créer un effet « pitch shifting » qui effectue toutes ces opérations

  40. 2.4 Intégration • Meilleure solution • Créer un effet différent pour chaque étape: • Division en intervalles et fenêtrage • DFT • Modification des fréquences et de la fenêtre • DFT inverse • Second fenêtrage et reconstruction du signal

  41. 2.4 Intégration • Désavantages • Plusieurs effets pour un effet sonore

  42. 2.4 Intégration • Avantages • Isole chaque problème • Les effets de fenêtrage et de DFT peuvent être réutilisés indépendamment pour d ’autres effets sonores • Deux effets travaillant sur le spectre peuvent être regroupés entre la DFT et la DFT inverse => optimisation

  43. 3. Conclusion

  44. 3. Conclusion • Le temps de réaction dépend de nombreux facteurs • Retard du au tampon du périphérique d ’entrée (0 - 25ms) • Taille des blocs traités (50ms) • Fenêtrage (0 - 100ms) • Temps de calcul (0 - 50ms) • Retard du au tampon du périphérique de sortie (0 - 25ms)

  45. 3. Conclusion • Temps de réaction (total) • Intervalle (50 - 250ms) • En pratique: • Décalage de la tonalité sans fenêtrage: env. 80ms • Décalage de la tonalité avec fenêtrage: env. 150ms

  46. Questions ?

  47. Demonstration !

  48. Coffee break Merci de votre attention

More Related