Bonjour à tous,
Je "travaille" en ce moment sur un projet dont le but final sera de créer des sons aléatoires ou paramétrés. (inutile de dire que j'utiliserai Qt pour l'interface graphique) Tout d'abord, je voudrais savoir si Qt permettait la création d'un son à partir d'un tableau de float dont les valeurs comprises entre -1 et 1 rendraient compte d'un son, comme avec la SFML qui permet de le faire avec la fonction loadfrombuffer de sf::SoundBuffer. Je n'ai en effet pas trouvé sur internet ni sur la doc (ou alors je ne sais pas bien chercher) de fonction similaire. Ceci n'est qu'un détail car la SFML pourra toujours faire l'affaire même si cela ajoutera quelques difficultés au niveau du linkage dans Qtcreator. La principale question que je me pose concerne le design de mon projet. Je me demande en effet si il vaut mieux que je crée des classes héritant de divers QWidget comprenant toutes les valeurs spécifiques pour créer un son ou si il vaut mieux que je sépare la partie purement graphique avec une partie "son" comprenant toutes les valeurs utiles. Je dois avouer que le schéma de l'interface graphique est assez complexe : outre divers QSlider permettant de gérer la note, l'octave, le taux d'échantillonnage du son, ainsi que de nombreux autres boutons divers pour la création aléatoire, la sauvegarde, le chargement ... de ces sons, le plus important, ce qui définit le son dans son détail, s'organisera comme suit :
-comme un son est un ensemble d'harmoniques comprises dans une courbe d'enveloppe de type ADSR, il existera un widget permettant tout d'abord de modifier la courbe d'enveloppe, visible sur un widget afficheur;
-la fondamentale doit être ensuite définie, ce qui se fait dans un autre widget en dessous du premier. Elle peut être définie en fonction de valeur de type ADSR ou de différentes "parties" logarithmiques, exponentielles ou linéaires dont on pourra faire varier les valeurs et la forme de courbe s'affichera dans un autre widget;
-enfin, l'utilisateur pourra ajouter autant d'harmoniques qu'il le souhaitera et qu'il définira de la même façon que la fondamentale, la courbe correspondante s'affichant au sein des widgets ajoutés.
Toutes les harmoniques seront alors "modifiées" par la courbe d'enveloppe et une moyenne sera faite afin d'obtenir une courbe de synthèse correspondant au son créée, courbe d'ailleurs visible dans un widget afficheur de synthèse prenant en compte la note et l'octave.
Mon niveau de terminale et mon faible niveau en informatique font que j'ai du mal à imaginer clairement le schéma des classes du projet : dois-je séparer distinctement la partie graphique et la partie courbe et sons, augmentant ainsi considérablement la compexité du code, ou bien est-il possible d'inclure la partie courbe au niveau des classes graphiques ?
Voilà mon problème, n'hésitez pas à me demander des précisions ou réexplications car c'est assez difficile à expliquer

Merci d'avance