soundengine n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
SoundEngine PowerPoint Presentation
Download Presentation
SoundEngine

Loading in 2 Seconds...

play fullscreen
1 / 48

SoundEngine - PowerPoint PPT Presentation


  • 190 Views
  • Updated on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - 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