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

Interfaces Graphiques Discussion :

retour de variable [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Points : 4
    Points
    4
    Par défaut retour de variable
    Bonjour,
    Je suis débutant en MATLAB et je me retrouve confronté à un problème.
    Je dois réaliser une interface graphique simple via GUIDE (push button, ...) qui doit me permettre de sélectionner un fichier audio et de lui appliquer un effet sonore.
    La sélection de ce fichier, le choix de l'effet sonore, ainsi que la touche "play" doivent être gérées par 3 boutons différents.
    J'ai réalisé 3 boutons pour les fichiers audio et 3 boutons pour les effets.
    Le problème est que je n'arrive pas à garder en mémoire le fichier que j'ai sélectionné et sur lequel j'applique mon effet.
    Ci dessous un bout de code avec 2 boutons pour la sélection de fichier audio, un bouton pour l'effet et un bouton "play"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    function pushbutton2_Callback(hObject, eventdata, handles)
    global fichier
    fichier='son.wav';
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
     
    function pushbutton4_Callback(hObject, eventdata, handles)
    global fichier
    fichier='sonnerie_tel.wav';
    % hObject    handle to pushbutton4 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    function pushbutton5_Callback(hObject, eventdata, handles)
    global fichier
    global N
    global Fe
    N=5000;
    global y
    [x,Fe]=audioread(fichier);
    for n=N+1:length(x) 
        y(n)=x(n)+x(n-N); 
    end
    % hObject    handle to pushbutton5 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA
     
    function pushbutton1_Callback(hObject, eventdata, handles)
    global y
    global Fe
    Fe=44100;
    sound(y,Fe);
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    J'ai lu pas mal de tuto, mais rien n'y fait.
    Pouvez vous m'aider s'il vous plait?

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour,

    Une solution simple pour gérer tes variables est d'utiliser les handles.

    Par exemple, pour ton fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    handles.fichier = 'son.wav';
    guidata(hObject, handles);
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Ok, mais du coup l'appel de handles.fichier dans mon audioread ça se passe comment?

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Je ne connais pas la fonction audioread mais je suppose que ceci doit fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [handles.x,handles.Fe]=audioread(fichier);
    % ...
    guidata(hObject, handles);
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Matlab me répond que la variable fichier n'est pas définie.

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Oui effectivement, c'est maintenant handles.fichier si tu as fait ceci au préalable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    handles.fichier = 'son.wav';
    guidata(hObject, handles);
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Maintenant j'ai ca: Undefined function 'audioread' for input arguments of type 'char'.
    C'est un problème avec audioread.
    Ou alors je ne passe pas les bonnes variables dans les fonctions.

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Peux tu nous faire voir le code associé à cette erreur?
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function pushbutton1_Callback(hObject, eventdata, handles)
    handles.fichier = uigetfile('~/matlab/*.wav','Selectionnez le fichier audio');
    guidata(hObject,handles);
    % hObject    handle to pushbutton3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % --- Executes on button press in echo.
    function pushbutton2_Callback(hObject, eventdata, handles)
    global N
    global Fe
    N=5000;
    [x,Fe]=audioread(handles.fichier);
    for n=N+1:length(x) 
        y(n)=x(n)+x(n-N); 
    end
    Que ce soit handles.x ou jutse x devant audioread.

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Peux tu mettre un point d'arrêt après ta récupération de handles.fichier et vérifier le contenu de la variable?
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    C'est bon, j'ai réussi!
    Un petit problème avec l'utilisation des handles
    Merci!

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

Discussions similaires

  1. Bouton retour avec Variable POST
    Par HWICE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/03/2008, 17h29
  2. Retour de variable locale ou membre ?
    Par jph_void dans le forum C++
    Réponses: 5
    Dernier message: 25/08/2007, 21h30
  3. Fonction retour de variable par webservice
    Par Tigrou_Giyome dans le forum Services Web
    Réponses: 1
    Dernier message: 26/01/2007, 15h35
  4. retour chariot variable
    Par mussara dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 15h24
  5. retour de variable d'une fonction
    Par thunderblade dans le forum ASP
    Réponses: 4
    Dernier message: 28/04/2005, 13h27

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