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

Qt Discussion :

Avis et conseils sur une idée de projet


Sujet :

Qt

  1. #1
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut Avis et conseils sur une idée de projet
    Bonsoir,

    N'ayant pas encore assez d'expérience pour définir la faisabilité d'une idée de projet avec Qt, je me retourne vers vous en espérant que vous pourrez m'éclairer un maximum.

    Mon idée est de développer un logiciel permettant la reconnaissance de notes musicales et l'écriture d'une tablature de ces notes reconnues (ainsi, lorsqu'on met une chanson par exemple à la guitare, le logiciel doit pouvoir reconnaître chaque note et les écrire sur la tablature qui pourra ensuite être lu).
    L'interface comporterait donc au moins une tablature qu'on pourrait par exemple lire comme sur un logiciel du type "guitar Pro" (voir la pièce-jointe pour avoir une idée).

    Pensez-vous qu'un tel logiciel est réalisable avec Qt ? quels outils seraient aussi indispensables au fonctionnement d'un tel logiciel et par où me conseillez-vous de commencer ?

    Je vous remercie !
    Images attachées Images attachées  

  2. #2
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut
    Citation Envoyé par betsprite Voir le message
    Pensez-vous qu'un tel logiciel est réalisable avec Qt ? quels outils seraient aussi indispensables au fonctionnement d'un tel logiciel et par où me conseillez-vous de commencer ?
    Tout d'abord j'ai envie de répondre oui parce qu'il est pratiquement possible de faire toutes les applications de bureau existantes aujourd'hui en Qt (au moins pour l'interface, le couplage avec OpenGL est parfois nécessaire) et que l'avantage du multi-plateforme est non négligeable.

    Après tu me demandes des preuves ? Alors accroche toi, Guitar Pro 6 a été entièrement refait en ... Qt ! Comment tu crois qu'ils ont réussi a rajouter le support de linux dans cette version, ils ont tout simplement refaire le code en Qt en tout cas pour l'interface. Ils utilisent après certainement des bibliothèques tiers pour gérer le backend.

    Je me fais donc pas de soucis sur les possibilités de Qt mais par contre c'est un Gros projet ! Accroche toi donc.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Je confirme les propos de John. Par contre, la reconnaissance des notes, c'est du travail, mais c'est jouable si tu ne cherches à identifier les notes que d'une guitare (identifier les notes de tout un groupe est impossible).

    Si tu sais ce que sont un harmonique et une transformée de Fourier, tu devrais pouvoir t'en sortir.

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  4. #4
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Bonjour,

    tout d'abord, merci johnlamericain et Gulish pour votre réponse

    Citation Envoyé par johnlamericain
    Après tu me demandes des preuves ? Alors accroche toi, Guitar Pro 6 a été entièrement refait en ... Qt !
    C'est assez surprenant je trouve que ce soit fait avec Qt. Mais comment sont dessinées les tablatures par exemple ? c'est des images ?

    Citation Envoyé par Gulish
    Par contre, la reconnaissance des notes, c'est du travail, mais c'est jouable si tu ne cherches à identifier les notes que d'une guitare (identifier les notes de tout un groupe est impossible).

    Si tu sais ce que sont un harmonique et une transformée de Fourier, tu devrais pouvoir t'en sortir.
    Disons que j'ai déjà fait du traitement du signal dans mon école avec la compression et les séries de Fourier mais je t'avouerai que je ne sais pas vraiment par où commencer... Il faut utiliser un logiciel de traitement du signal et faire la liaison avec Qt ? utiliser des bibliothèques C++ spécifiques pour ce genre de choses ?

    Et comment prendre en entrée les sons pour les analyser et retrouver les notes auxquels ils correspondent ?

    Merci encore

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Disons que j'ai déjà fait du traitement du signal dans mon école avec la compression et les séries de Fourier mais je t'avouerai que je ne sais pas vraiment par où commencer... Il faut utiliser un logiciel de traitement du signal et faire la liaison avec Qt ? utiliser des bibliothèques C++ spécifiques pour ce genre de choses ?

    Et comment prendre en entrée les sons pour les analyser et retrouver les notes auxquels ils correspondent ?
    Si tu as les connaissances de base, c'est le plus important. Le reste viendra en cherchant.
    Alors, je pense que tu auras besoin d'une lib comme FMODEx ou FFTW pour faire ton traitement, cela me semble le plus simple. Pour l'acquisition du son, c'est possible avec FMODEx, mais tu dois pouvoir également le faire avec Qt (QMultimedia::QAudioInput et autre).

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  6. #6
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Citation Envoyé par Gulish
    Alors, je pense que tu auras besoin d'une lib comme FMODEx ou FFTW pour faire ton traitement, cela me semble le plus simple. Pour l'acquisition du son, c'est possible avec FMODEx.
    Merci pour les bibliothèques utiles pour ce genre d'application
    Après je pense que le problème vient de la conception et du couplage de ces lib avec Qt. Comment intégrer les traitements effectués avec des bibliothèques tierces à une interface Qt ? (par exemple, après avoir traité le signal sonore, comment savoir si à la sortie, on aura quelque chose de compatible et qu'on pourra afficher sur notre interface Qt ?)

    Citation Envoyé par Gulish
    Tu dois pouvoir également le faire avec Qt(QMultimedia::QAudioInput et autre).
    Il ne serait pas mieux d'utiliser FMODEx pour pouvoir faire l'acquisition et le traitement avec la même bibliothèque plutôt que d'utiliser QMultimedia pour l'acquisition et FMODEx pour le traitement ?

    Merci !

  7. #7
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut
    Citation Envoyé par betsprite Voir le message
    C'est assez surprenant je trouve que ce soit fait avec Qt. Mais comment sont dessinées les tablatures par exemple ? c'est des images ?
    Il y a plusieurs manière de dessiner les tablatures, cela peut être fait avec QGraphicView ou encore avec QPainter. N'hésite pas à te documenter un maximum avant de commencer pour voir les meilleures solutions. Regarde par exemple ce qu'utilise les applications proches de ce que tu veux faire avec un code source libre : http://qt-apps.org/

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Après je pense que le problème vient de la conception et du couplage de ces lib avec Qt. Comment intégrer les traitements effectués avec des bibliothèques tierces à une interface Qt ? (par exemple, après avoir traité le signal sonore, comment savoir si à la sortie, on aura quelque chose de compatible et qu'on pourra afficher sur notre interface Qt ?)
    Il ne serait pas mieux d'utiliser FMODEx pour pouvoir faire l'acquisition et le traitement avec la même bibliothèque plutôt que d'utiliser QMultimedia pour l'acquisition et FMODEx pour le traitement ?
    Tout est histoire de format de données, d'encodage et de conversion. Théoriquement, rien n'est impossible. En tout cas, toutes les libs de gestion de son gèrent le PCM, qui est le format "standard" (et non la norme) en traitement de son.

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  9. #9
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Ok merci Gulish pour ces explications.
    Sinon, bien que différentes bibliothèques de gestion de sons puissent être utilisés comme QMultimedia et FMODEx, aurais-tu une préférence pour l'une d'entre elles ? (une est peut être plus adaptée que l'autre pour le traitement de données...)

    Merci !

    Après quelques recherches, voici ce que quelqu'un m'a conseillé :
    Effectivement, pour reconnaître des notes il faut convertir tes données audio en domaine de fréquences. Pour ça, FFTW semble être la meilleure solution.
    Qu'en penses-tu ?

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Sinon, bien que différentes bibliothèques de gestion de sons puissent être utilisés comme QMultimedia et FMODEx, aurais-tu une préférence pour l'une d'entre elles ? (une est peut être plus adaptée que l'autre pour le traitement de données...)
    Ce ne sont que des avis persos :
    -FMODEx : pour enregistrer du son / jouer du son, ça marche très bien, et c'est dédié à cela (son 3D, multi-canal, effets sonores, etc). Par contre, la partie traitement pur (analyse mathématique) est très limitée, et je n'ai personnellement jamais eu de résultats satisfaisants avec.
    -QMultimedia : je n'ai jamais essayé. Après, enregistrer/lire un son me semble à la portée de nos amis de chez Qt, donc je suis confiant. En plus, tu auras l'avantage de t'interfacer avec le reste de ton application Qt.
    -FFTW : pure lib de calcul /traitement du signal en C. Je n'ai jamais testé, mais ça me semble vraiment efficace et éprouvé. Après, je pense que son utilisation est moins aisée, car destinée à des "initiés" en traitement du signal. Je crois que si tu veux faire une analyse poussée de ton signal audio, il va falloir passer par là.

    Ce ne sont que mes avis / retour d'expérience. C'est à toi de faire ton choix.

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  11. #11
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Réponse très claire !

    Juste un dernier point : Ne pensez-vous pas que le logiciel sera très "capricieux" au niveau de la clarté du son ? (si le son est moyen avec d'autres sources sonores, ne pas traiter le "bruit" est-il très efficace ?)

    Merci !

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Juste un dernier point : Ne pensez-vous pas que le logiciel sera très "capricieux" au niveau de la clarté du son ? (si le son est moyen avec d'autres sources sonores, ne pas traiter le "bruit" est-il très efficace ?)
    Et bien, c'est toute la subtilité du traitement du signal : prendre l'utile au milieu du bruit, sans jamais prendre le bruit pour de l'utile (je devrais mettre un copyright sur cette citation ).

    Il y a encore des gens qui écrivent des articles et posent des brevets sur ce sujet à notre époque, il y a encore beaucoup de problèmes sans solutions. Pour ton cas, si tu branches directement ta guitare sur une entrée audio de ton pc, ça devrait le faire. Encore faut il que ta guitare soit bien accordée . Si tu veux utiliser un micro, ça sera beaucoup plus complexe, mais pas impossible.

    Mais si tu t'y mets vraiment, tu verras, c'est intéressant !

    Tu as tous mes encouragements (et l'idée n'est pas mauvaise).

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  13. #13
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Citation Envoyé par Gulish
    prendre l'utile au milieu du bruit, sans jamais prendre le bruit pour de l'utile (je devrais mettre un copyright sur cette citation ).
    Bien trouvé la citation

    Citation Envoyé par Gulish
    Tu as tous mes encouragements (et l'idée n'est pas mauvaise).
    Merci beaucoup pour ton soutien

    Sinon, j'en ai profité pour parler de ce projet à un enseignant de mon école donnant des cours de traitement du signal. Il m'a dit que pour réaliser cette application de reconnaissances des notes, je devais en apprendre d'avantage sur la "Reconnaissance Des Formes".
    Ce domaine à l'air cependant très vaste, étant donné qu'il est loin de s'arrêter uniquement aux sons mais inclus aussi la reconnaissance d'images...

    Je me demandais si j'allais pas me perdre dans ces généralités... mais d'un autre côté, ça semble plus "sérieux" qu'une simple transformée de Fourier et une comparaison des fréquences pour l'attribution des notes ...

    Malheureusement, je ne vois pas la différence entre ces deux méthodes. Qu'en pensez-vous ? En quel sens le traitement par la Reconnaissance des Formes serait préfèrable ?

    Merci encore

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Je me demandais si j'allais pas me perdre dans ces généralités... mais d'un autre côté, ça semble plus "sérieux" qu'une simple transformée de Fourier et une comparaison des fréquences pour l'attribution des notes ...

    Malheureusement, je ne vois pas la différence entre ces deux méthodes. Qu'en pensez-vous ? En quel sens le traitement par la Reconnaissance des Formes serait préfèrable ?
    En fait, la reconnaissance des formes désigne encore une fois la détection d'une "chose" au milieu d'un ensemble de données. Dans ton cas, la chose sera la (les) note à un instant t, et l'ensemble de données sera la transformée de Fourrier de cet instant. Donc en gros, ce qu'il dit ce qu'il faudra bien sûr faire une FFT, qui te donnera un spectre de fréquence, et sur ce spectre il faudra appliquer différentes techniques pour reconnaître des notes.
    une simple transformée de Fourier et une comparaison des fréquences pour l'attribution des notes ...
    Je pense que tu te représentes mal quel sera le travail. Tes notes ne seront pas des belles sinusoïdes et ton spectre une rangée de 4 beaux pics. Ca c'est la théorie. En réalité, ça ressemble à un gros grabouillis dont tu ne peux quasiment rien tiré à l'oeil nu.

    Mais il ne faut pas te décourager . Au pire, tu apprendras beaucoup en essayant. Et tu peux déjà commencer par faire un petit soft qui enregistre des sons et affichent les ffts, c'est un bon début !

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  15. #15
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Merci Gulish !

    Oui c'est vrai que je n'ai pas encore été confronté à l'expérience et donc je n'ai pas pu remarquer qu'un simple traitement du signal sans Reconnaissance Des Formes est assez limité et possède plusieurs faiblesses (notamment celle de n'extraire pas correctement les notes étant donnée l'impossibilité d'exploiter les fréquences en sortie d'une FFT).

    Citation Envoyé par Gulish
    Mais il ne faut pas te décourager . Au pire, tu apprendras beaucoup en essayant. Et tu peux déjà commencer par faire un petit soft qui enregistre des sons et affichent les ffts, c'est un bon début !
    Pas de soucis pour la motivation
    C'est vrai que je peux commencer à mettre en place l'application sans cette étape de reconnaissance. Je vais déjà essayer de récupérer un son par le micro ou un fichier mais j'ai du mal déjà à voir comment je pourrais mettre en entrée d'une méthode le son venant du périphérique (micro) :s

    Edit : Je pense faire l'acquisition du son par micro ou fichiers audios à partir de FMODEx ou Qmultimedia et j'utiliserai FFTW quand j'aurai besoin d'effectuer des traitements.

    D'ailleurs, que va devenir QMultimedia avec la version 4.7 ? Est-il judicieux de l'utiliser avant la sortie prochaine de cette version ?
    J'ai pu lire ça sur le forum :
    Le but de cette seconde version beta ? Modulariser un peu plus Qt (voir à ce sujet l'article d'Henry Haverinen : au final, Qt 4.7 ne devrait plus contenir le module Qt Multimedia, celui-ci étant intégré aux Qt Solutions)
    Aussi, après quelques recherches, j'ai pu trouver ce commentaire :

    d'après ce que j'ai lu dans la doc :
    "Important issue with Borland, LCC-Win32, Dev-C++, MinGW, Cygwin users and FMOD Ex C++ interface.
    Note that due to incompatible linking standards with C++ symbols in libraries across different compilers, you will not be able to use the C++ interface of FMOD Ex with these compilers.
    Autrement dit, le couplage FMODex et Qt semblent assez délicat...

    Qu'en pensez-vous ?

    Merci

  16. #16
    Membre habitué Avatar de 0x4e84
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2002
    Messages : 116
    Points : 156
    Points
    156
    Par défaut Toujours besoin d'aide?...
    Salut betsprite,

    J'ai lu ton fil il y a quelque temps, et je l'ai gardé dans mes favoris, car le thème m'intéresse.

    Où en ès-tu? As tu pu démarrer ton projet?

    Pour ma part, j'ai quelques bagages en traitement du signal, surtout en programmation embarquée, que j'aimerais mettre à profit avec le framework Qt. J'ai pour intention d'expérimenter dans les prochains temps avec les applications Audio en utilisant les nouvelles possibilités offertes par QMultimedia, et FFTW pour les transformées.

    Si tu ès intéressé, je te propose qu'on reste en contact car je pourrais t'aider pour la théorie et la mise en oeuvre des méthodes de traitement du signal, et on pourrait partager nos expériences pour ce qui est de Qt et de son interfaçage avec FFTW.

    Fais-moi signe sur ce fil ou par MP si tu ès intéressé!

    A+!

    0x4e84

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/07/2011, 13h08
  2. Avis sur une conception de projet
    Par sabri_icone dans le forum UML
    Réponses: 3
    Dernier message: 01/06/2009, 18h56
  3. Cherche avis sur une idée d'IA pour un rpg...
    Par Neolander dans le forum Intelligence artificielle
    Réponses: 12
    Dernier message: 31/03/2008, 07h19

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