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

MATLAB Discussion :

Exécution de fonctions


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Exécution de fonctions
    Bonjour

    Je me présente, je m'appelle Arthur et j'étudie actuellement en première année d'école d'ingénieur (à l'ESIEE).
    Dans le cadre d'un projet personnel, d'autres élèves et moi-même avons souhaité réaliser un clavier numérique (piano) exclusivement sous Matlab.
    Le projet étant assez concluant, nos professeurs ont décidé de présenter notre projet au "Jour des projets" qui se déroulera dans quelques jours au sein de mon école.

    Actuellement, le clavier permet de jouer des sons en appuyant sur des touches du clavier (on a reproduit une gamme complète) et le son joué est celui d'une guitare.

    Bref, on aurait aimé améliorer un peu les fonctionnalités de notre clavier en ajoutant le support de plusieurs instruments. Pour vous aiguiller, le design du code actuel fonctionne comme ça : on configure tous les boutons, et on lance la fonction de synthèse sonore qui va extraire d'un son monodique de guitare (un Fa3) une fréquence fondamentale et appliquer Fourier avant d'ajouter l'enveloppe, classique.
    Ensuite, le programme associe chaque bouton à un intervalle (on utilise un switch qui incrémente une valeur i représentant l'intervalle qui varie en fonction de chaque case, donc de chaque bouton), et voilà. On a aussi ajouté le support d'octave, dans ce cas là c'est une variable P qui est ajoutée en plus du i (au départ P = 0).

    Donc en gros, la plupart des calculs se font au lancement, ce qui permet lors de l'utilisation une latence infime (le son est déjà crée, il suffit juste d'y appliquer un intervalle et jouer le son).

    On souhaiterait garder cette fluidité en ajoutant d'autres instruments. Pour le moment, j'ai créé un bouton guitare et un autre piano (qui ne font rien), et le but serait, lorsqu'on appuie sur la touche correspondante, de changer d'instrument. Or ce changement d'instrument implique tout d'abord un changement de fichier source (on utiliserait plus guitare.wav mais piano.wav, par exemple), mais aussi d'enveloppe (l'enveloppe d'une guitare n'est pas celle d'un piano et encore moins celle d'un violon).

    Donc si on souhaite garder une certaine fluidité, il faudrait que je copie/colle toute la partie traitement qu'on a déjà créé, que je l'adapte au piano, et que je différencie les cas (si piano alors blabla, si guitare alors blabla).

    Sinon, si je suis prêt à attendre quelques secondes entre chaque instrument, il faudrait exécuter un cas par défaut (exemple piano) et si je veux passer en guitare, je ré exécute ce même cas en changeant les variables.

    Bref, j'ai des idées, mais je ne sais pas laquelle est la meilleure et s'il y aurait d'autres possibilités encore plus pratiques (je débute en Matlab...).

    Merci d'avance pour votre aide et n'hésitez pas à me signaler si j'ai manqué de clarté

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    je te propose une solution un peu bourrin (à voir si tes données ne prennent pas top de place) mais qui peut marcher et être simple à mettre en place

    tu créé (et charge au lancement) une structure pour chaque instrument (sPiano, sGuitare ...) contenant tout ce qu'elle doit contenir (tu fais tous les calculs au lancement de l'appli)

    et une structure instument courant (sIntruCourant) que tu utilises en temps réèl pour faire les sons
    et lorsque l'utilisateur change d'instrument, il te suffit d'affecter à sInstruCourant la nouvelle structure (sInstruCourant = sGuitare; )

    voila une première piste
    Fabien

Discussions similaires

  1. [Débutant]Comment exécuter une fonction tous les jours
    Par pseudomh dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/06/2006, 16h10
  2. Réponses: 5
    Dernier message: 28/04/2006, 14h40
  3. exécution de fonction
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/09/2005, 16h50
  4. Est-il possible d'exécuter une fonction à partir de fichier
    Par magic8392 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 16/09/2005, 13h59
  5. [VB.NET] Exécuter une fonction VB sur un Datagrid
    Par MiJack dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/09/2004, 14h45

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