IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement du signal Discussion :

[son] algo de création de son.


Sujet :

Traitement du signal

  1. #1
    Membre éclairé Avatar de Muesko
    Profil pro
    Collégien
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Par défaut [son] algo de création de son.
    Salut,
    Je cherche des algo qui permmetent de créer des sons (style simple : sinus, triangle, dent de scie et carré) ca fait un bout de temps que je fait des recherches mais je n'est jamais rein trouver.

    Quelqu'un sait ou je peut treouver ca ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    En fait, il suffit de discrétiser ton signal et écrire ça dans un format audio (un truc simple comme le wav devrait suffire)

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Voici un début de réflexion !

    Comme ici on calcule d'échantillon en échantillon, il est relativement simple de calculer la phase d'un signal de fréquence donnée à chaque échantillon :

    phase = Nième_Sample * Fréquence_signal * 2*pi / Fréquence_échantillonnage

    A ce stade on peut appliquer un déphasage :

    phase = phase + déphasage

    Ici, phase et déphasage sont exprimés en radians.

    La phase nous est donnée ici comme celle du signal calculée depuis le début :

    périodes révolues + période en cours.

    Pour récupérer la phase dans la période en cours, il suffit donc d'appliquer un modulo :

    phase = phase modulo 2*pi

    Les différentes formes d'ondes peuvent être calculées à partir de la phase et ici on va le faire dans l'intervalle [-1, +1] :

    a) pour un signal sinus, c'est le plus simple :

    signal = sinus de phase

    b) pour un signal carré, on analyse la phase pour en déduire deux états possibles :

    si phase < pi alors signal = -1
    sinon signal = 1



    c) pour un signal en dent de scie :

    signal = (pi - phase) / pi

    d) pour un signal triangulaire, on redresse l'une des alternances de la dent de scie et on recadre l’ensemble :

    signal = (pi - phase) / pi
    si (signal < 0) alors signal = -signal
    signal = 1 - (signal * 2)


    Il est important de tenir compte du fait que la fréquence du signal doit être inférieure à la fréquence d'échantillonnage / 2
    Si cela n'est pas trop compliqué pour un signal sinusoïdal, en revanche, il faut savoir que tous les autres signaux génèrent des harmoniques qui doivent aussi respecter cette règle.
    Ne pas la respecter provoque un repliement du spectre qui se traduit par l'émergence de fréquences indésirables.

    A suivre et à compléter sans doute !

  4. #4
    Membre éclairé Avatar de Muesko
    Profil pro
    Collégien
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Par défaut
    Ok je vait me pencher la dessus. J'ai aussi trouver des sources d'un synthé virtuel, je vait également y jeter un coup d'oeil.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par L'apprentis
    Ok je vait me pencher la dessus. J'ai aussi trouver des sources d'un synthé virtuel, je vait également y jeter un coup d'oeil.
    Si tu ne sais pas ce que ce sont les signaux précédents, ce n'est pas en regardant les sources d'un synthé virtuel que tu t'en sortiras.

  6. #6
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    salut

    je te conseille goldwave qui est un petit éditeur de fichiers son où tu peux rentrer une formule (il y en plein déja toutes faites)
    --> tu crées un fichier puis tu cliques sur le bouton f(x)

    sinon pour créer un son "intéressant" il faut généralement passer par sa transformée de fourier discrète ou sa transformation en ondelettes discrètes,
    c'est comme ça que sont faits bon nombres d'effets (echo, filtre, chorus...) et en l'appliquant même à une simple sinusoïde tu peux déja faire énormément de choses

    (je ne connais malheureusement pas de logiciel qui propose de rentrer des fonctions à appliquer au spectre d'une manière intuitive, il faut le programmer soit même je pense)

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    Matlab le fait très bien aussi avec des vecteurs de nombre (liste, tableau, etc) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    pi=3.14159;
    sin([0:0.001:2.*pi]);
    donne la trace d'un sinus sur (2xpi)/0.001 points par exemple.
    De plus il est possible d'écrire dans des .wav facilement je crois.

    Enfin il vaut mieux choisir un langage qui gère les tableaux comme un type (python, matlab), au contraire du C qui fait du traitement élément par élément. Sinon tu vas te perdre un peu trop dans l'implémentation.

    (enfin c'est faisable, mais c'est pas très rapide)

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Sinon il reste la solution de reconstruire chaque forme d'onde à partir du dosage harmonique qui lui est propre.

    Au niveau du dosage, il me semble que l'on a :

    a) pour un carré (on prend les sinus):

    h1 + h3/3 + h5/5 + h7/7...

    b) pour une dent de scie (on prend les sinus) :

    h1 + h2/2 + h3/3 + h4/4 + h5/5....

    c) pour un triangle (on prend les cosinus):

    h1 + h3/3² + h5/5² + h7/7²...

    A plus !

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    ça suppose une somme infinie de composantes. Pas certain que ce soit optimisé par rapport à un codage directe la forme d'onde.

  10. #10
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Synthèse additive power ?

  11. #11
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Par défaut
    Differentes sources d'information :

    http://www.kvraudio.com : le site des createurs de plugins VST : voir le forum dev.
    http://www.u-he.com/vstsource/ : une archive de code sources de plugins VST
    http://musicdsp.org/ : une archive de codes sources pour DSP

    Dans ces trois sites, la questions de synthétiser du son est très très largement abordée.

    Mais faire un synthé "qui sonne" c'est pas facile... Bon courage !

  12. #12
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut
    salut,

    J'ai aussi trouver des sources d'un synthé virtuel
    ah oui?!!peux tu me donner le lien stp?

  13. #13
    Membre éclairé Avatar de Muesko
    Profil pro
    Collégien
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Par défaut
    Bien sur. c'est par la

  14. #14
    Membre éclairé Avatar de Muesko
    Profil pro
    Collégien
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Par défaut
    Heu pour la synthèse aditive ya paas un truc plus simple, genre envoyé directement des valeurs sur la carte son genre 1,2,3,4,5,6,7,8,9,0 pour une dent de scie ? J'avais fait il y a longtemp (j'ai redécouvert les sources il y a peu) un truc sous qbasic qui faisait de la pseudo fm.

  15. #15
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut
    Merci infiniement L'apprentis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. appeller une classe par son numéro de création
    Par cobe91 dans le forum Général Python
    Réponses: 4
    Dernier message: 28/04/2011, 22h17
  2. [Kettle PDI] Création de son propre plugin
    Par arno974 dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 20/05/2010, 11h28
  3. Réponses: 5
    Dernier message: 28/04/2009, 12h45
  4. Création de son propre repository
    Par Cooly dans le forum Maven
    Réponses: 1
    Dernier message: 13/03/2007, 18h28
  5. Création de son propre message dans un formulaire
    Par androme dans le forum C++Builder
    Réponses: 17
    Dernier message: 06/02/2005, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo