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

Algorithmes et structures de données Discussion :

Comment appliquer un vibrato


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Comment appliquer un vibrato
    Salut à toutes et a tous.

    Je fais actuellement quelques essais pour modéliser des générateurs de signaux
    périodiques, donc destinés à terme à la mise en oeuvre de synthétiseurs.

    Pour ce qui est des signaux simples, il n'y a guère de difficultés mais par contre
    j'ai quelques soucis avec la modulation en fréquence (ou de phase ou "vibrato").

    Quel serait l'algo permettant d'appliquer ce vibrato en sachant que je récupère
    la phase (en radians) pour ces deux signaux (signal et modulation) à un instant (t)
    et plus précisément à l'instant (e) de l'échantillonnage ainsi que la profondeur
    de la dite modulation :

    double signal_a_moduler; (en radians)
    double signal_de_modulation; (en radians)
    double amplitude_modulation;


    double resultat_de_la_modulation = ???

    Pour plus de précisions, voici comment je calcule le radian d'un signal sinusoïdal,
    à chaque échantillon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int Echantillon; //Compteur d'échantillons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double Frequence; // fréquence en Hz
    double spp = 44100.0 / Frequence; //nombre de samples par periode
    double radian = Echantillon / spp * Pi; //Pi = 2 * pi
    J'ai donc assez facilement le sinus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double sinus = sin(radian); //math.h pour sin
    A plus !

  2. #2
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    A priori une modulation BF de spp doit mener au résultat.


    Y = sin ( W t )

    ->


    Y = sin ( W t + dW * sin ( w1 . t) )


    W t = Echantillon / spp * Pi


    dW représente l'amplitude en Hz du vibrato .

    Je dirais dw / W <= 0.02. Rappel 1/2 ton represente un accroissement 2^(1/12) = 1.059 de W


    w1 représente la rapidité du vibrato. ( disons entre 0.5 et 10 Hz )

  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 !

    C'est le seul truc que je n'avais pas encore essayé...

    Je te remercie, ça fonctionne !

    A plus !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/09/2005, 16h40
  2. Réponses: 5
    Dernier message: 22/07/2005, 23h40
  3. Comment appliquer un style CSS ?
    Par adameteve dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 10/03/2005, 21h52
  4. [debutant] comment appliquer le code d'un bouton
    Par philippejuju dans le forum MFC
    Réponses: 3
    Dernier message: 20/01/2004, 10h56
  5. [icone]Comment appliquer une icone sur le.exe
    Par JavaLeDirePartout dans le forum JBuilder
    Réponses: 7
    Dernier message: 24/07/2003, 17h28

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