LECTEUR MP3, OGG, WAV AVEC EQUALIZER ET EFFETS SONORES-SUITE

VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017 - 8 sept. 2004 à 00:08
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 5 oct. 2004 à 18:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26004-lecteur-mp3-ogg-wav-avec-equalizer-et-effets-sonores-suite

cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
5 oct. 2004 à 18:51
J'ai regardé et encore regardé le code hier pour toruver le prob et j'ai rien vu :( je vais rééssayer sinon je vais dmander sur le forum de l'aide, y'a des boss des fois :)
Pour lez timer, je vois pas trop quel est le prob, peut etre une vague idée, je vais voir, mais j'utilisai pas de playlist pour les "tests". D'ailleur, y'avait un bug que j'ai corrigé dans ma version de ton programme, quand on stoppait une musique et qu'on en lançai une autre apres, le timer ne se lançai pas. Voila, j'espere pourvoir trouver :)
Sinon, un truc qu'a pas trop de rapport, mais si tu pouvait marquer dans le futur ou tu fait des majs, ça serait bien car je vais pas forcément les voir pour les ajouter à la version sur laquelle je code ;)
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
5 oct. 2004 à 15:04
azerty,
Précision, j'ai du remettre à niveau certaines procédures mais je me rappelle plus ou.
Toujours est-il que si tu n'utilises pas une playlist, mais un seul morceau de musique, tu ne désactives pas le timer tmrEffet, d'où la rame car tu adresses une procédure inutilement.
Essayes de désactiver le timer sur la procédure lsvplay_dblclick, cela peut arranger les choses.
Bien sûr il faudra le réactiver en cas de lecture.
vbsat
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
5 oct. 2004 à 14:58
azerty,
Pas vraiment le temps de regarder la source mais il se peut que la déclaration de FMOD n'accepte pas les longs ? d'où le plantage ?
à vérifier...
Si j'ai le temps je regarde, dsl mais le boulot à repris !
vbsat
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
4 oct. 2004 à 20:55
J'ai avancé ! Le probleme vient de l'arguement : lngEQ(lngIndex), mais aucune idée de pourquoi !
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
4 oct. 2004 à 20:27
Je veux juste préciser que ceci ce produit éxactement comme je l'ai indiqué, j'ai pas activé d'effets supplémentaires, la configuration est par défaut (j'ai effacé les clés de la base de registre avant de réessayer pour vous). Voila :-o
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
4 oct. 2004 à 20:23
Salut
Alors voila, c'est pour parler du bug que j'ai trouvé. Par exemple, quand tu ouvre le player, que tu active l'équalizer, que tu ouvre une musique, et que tu la laisse se terminer gentillement, l'ordi commence à ramer, ramer, et encore ramer, pendant une période qui n'est jamais vraiment la même. J'ai trouvé d'ou vient le probleme, à la routine Public Sub FXSetEQ(lngIndex As Long, sngValue As Single), il y a la ligne Call FSOUND_FX_SetParamEQ(lngEQ(lngIndex), sngCenter, 18, sngValue). Quand on met cette ligne en commentaire et que l'on reproduit à l'identique la manip citée ci dessus, tout se passe bien ! Serait-ce un bug dans la librairie Fmod ?! Visual Basic ?! Ou tout simplement 1 probleme de programmation ? Ou encore mon PC qui pete un plomb mais la c'est moins probable... Je vous le dit car j'en ai aucune idée :-(
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
24 sept. 2004 à 23:45
Salut,
Désole, je n'ai rien reçu, mais il y a l'anti-spam qui déconne par moments...
Renvoie si c'est important je désactive le prog.
@+
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
24 sept. 2004 à 19:07
Fmod supporte plus de formats que ça, c'est facilement intégrable ;)
Par contre les bug, j'en ai trouvé pas mal ! Y'en a un avec l'équaliser, quand une zik ce fini, sa fait ramer à mort le PC, plusieurs avec le CrossFade, et le FadeOut, et d'autres que j'ai corrigé, comme celui de la barre de sélection de l'emplacement dans le morceau ou encore un avec le timer, il était désactivé avant dés que l'on appuyai sur stop.
Sinon, je t'ai écrit plusieurs fois par mail VbSat, t'a pas répondu ?!
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
22 sept. 2004 à 18:57
salut,
Possible que tu ais de la pixelisation, l'interface commence à être chargée et gourmande. Cela dit je l'ai fait fonctionner dernièrement sur un P800 sans trop de problèmes.
Par contre il y a plus de trois format en fait tu peux ouvrir au moins du mp3, de l'ogg, du wav et des mod, peut-être d'autres aussi, je ne me rappelle plus.
Merci pour ta note.
vbsat
cs_RDX Messages postés 117 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 27 août 2005
22 sept. 2004 à 18:30
bijour!
Belle interface, ca marche super.
Par contre la seule chose qui m'empeche de ne pas le prendre comme lecteur par defaut, c'est le fait que seul 3 formats sont lisibles, c'est un peu dommage.
Aussi un petit bémol pour les visualisations, un peu trop pixelisées a mon goût.

9/10

Bye!
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
10 sept. 2004 à 20:38
Oups, bé désolé alors. Je vais essayer de bosser un peu dessus, histoire de le mettre un peu à mon gout, ou faire des petits trucs pour le rendre en programme par défaut pour les fichiers qu'il supporte, si tu veux, tu peux m'envoyer ton mail par mess privé pour que je t'envoye mes améliorations, et peut etre que si chacun bosse un peu dessus, on pourra avoir un super player :)
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
10 sept. 2004 à 20:30
Bonsoir,
Je pense que tu t'es gourré azerty, l'aboutbox du programme n'utilise pas le timer mais une boucle de programme appelée 'mainloop' insérant un Do, Loop duquel tu sors avec un booléen EndNow, ce qui est beucoup plus protable. Le timer ne gère que le décalage du texte, cela peut-être optimisé en reportant le code de la variable incrémentale dans la boucle et tu supprimes le timer!
Pour les boutons, c'est parce que j'ai le thème par défaut, il est évident que tu dois les refaire avec un autre thème. C'est du même cru que pour les skins, je pense que si tu as les sources rien ne t'empêche de tout refaire à ton goût, donc je ne pense pas me pencher sur ce genre de chose. Le skin de la fenêtre en barre de tâches n'était qu'un exemple que je 'promène' depuis pas mal de temps, c'est pour cela que je l'ai mis.

@+ et bon skins ;-)
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
10 sept. 2004 à 13:00
Bé en fait, l'aboutbox est basée sur un timer, donc c'est sur que le framerate sera limité :(
Je voulai ajouter une ptite choses, les bouttons que tu a refait qui se mettent dans la barre de titre, ils fotn assez bizzares quand on a comme thème le thème classique des Windows 9x (bouttons gris, caré,barre de titre fine...) Les boutons sont plus gros que la barre de titre et placés en X un peu plus bas que 0 ... Vouli voilo
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
10 sept. 2004 à 02:49
Salut azerty,
Euh t'évites de m'prendre pour une burne, je sais bien que ta carte graphique ne fait pas de musique ;-)
Je te disais par là que je pense que la déclaration du FFTunit de fmod bouffe pas mal de ressources de la carte graphique. J'ai éffectivement observé que lorsque je surcharge avec copie de répertoires, appels de programmes lourds ie acrobat etc. ça bouge pas trop par contre avec un bête OSD qui apparaît pour le réglage du son sur le bureau, les animations graphiques du picturebox hésitent pas mal. D'ou ma conclusion que fmod surcharge déja la carte graphique par le biais de son scope intégré. D'autant plus que sur des exemples avec OCX c'est fmod qui gère l'affichage du scope tu n'as plus besoin de picturebox transfert direct. Je n'ai utilisé ce contrôle que pour enrichir les effets.

Pour le reste, ta routine ne reglerait pas tout puisque les pbm viennent éssentiellement de la sub timer qui monopolise le traitement, donc les events sont en fait peu nombreux par ailleurs. Je pense que l'optimisation passe par des choix tout autres.

Pour DirectX, je vais essayer mais je ne suis sûr de rien, tu regardes (un peu, de temps à autre, ce serait bien) l'aboutbox elle est en Directx (pas de moi d'ailleurs) elle ne me parait pas plus rapide. donc évenuellement ce ne serait qu'un gain de ressources plus que de vitesse, à voir ?
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
8 sept. 2004 à 15:30
Tient, pour l'optimisation du DoEvents, c'est ici : http://camernet.ifrance.com/camernet/vb/

Pour le code de démo, c'est :

Private Declare Function GetInputState Lib "user32" () As long
Private Sub Form_Click()
Dim i, a
Dim sec1, sec2
Sec1 = Time
For i = 1 To 2000
'Faites varier les fonctions pour voir la différence
If GetInputState then DoEvents
'DoEvents
a = a + 1
debug.Print a
Next i
Sec2 = Time
Msgbox sec1 & " - " & sec2
End sub

L'auteur de ce site a déja posté en 2000 cette source, je l'ai pas remise mais j'aurai bien été tenté, bien sur, avec l'adresse du site vu que ça n'est pas de moi
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
8 sept. 2004 à 15:28
Oula, bonne chance pour faire l'enregistrement de plages. T'es pas sortit de l'auberge comme on dit chez nous :p !!
L'affichage, c'est pas vraiment un probleme, c'est des petits ralentissements qui se voient quand on a le zieutage, faut vraiment le vouloir pour le voir, rien d'affolant. Mais faut toujours essayer d'optimiser un max dans ce genre de prog. D'ailleur, tu parle de doevents, j'ai trouvé un bon truc ce matin pour l'optimiser, si tu veux, je te retrouve cela, mais c'est sur le site. Il faut en fait utiliser une API pour récuperer certains messages, et pas tous, et ça fait gagner du temps.
J'ai pas compris : Et d'après mes observations c'est plutôt la carte graphique qui prend tout avec fmod, tu veux dire que c'est la carte grapique qui fait du son lol ?! Je pense que tu voulai parler des dessins, ça n'est pas la carte graphique justement qui déssine, d'ou l'éxistance de DX ou OpenGL ;)
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
8 sept. 2004 à 15:12
Oui pour les CD c'est de l'enregistrement, un module à part, pas de lecture dans ce cas là ou sans artifices.

Pour les pbm d'affichage je sais que le CPU est déja pas mal chargé mais cela vient éssentiellement des interactivités d'autres routines ou d'autre prog, je n'ai pas mis un seul 'doevents' dans le timer alors...
Et d'après mes observations c'est plutôt la carte graphique qui prend tout avec fmod.
La charge CPU n'est pas facile à analyser car sur le 1Ghz c'est pratiquement à 10% tout le temps pourtant ça se passe bien, et sur mon 2.4 c'est presque tous le temps à 2,5% mais des fois je plante le swapfile. Faut dire que je suis un peu fada et je lui fais des drôles de trucs à ma bestiole... foutu debug :-(

Bon de toutes façons va falloir optimiser car à la 1.7.0 j'ai faillit avoir un zip trop gros.
bon allez faut que j'y aille, @+
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
8 sept. 2004 à 14:39
Intéressant tout ça, malgré que j'ai pas compris pour les CD Audio, tu veux faire un "graveur" ?! Si c'est la lecture, Fmod permet aussi la lecture de CD Audio si je me souvient bien.
Pour la vitesse, je parlai de l'affichage des animations, j'ai pas vraiment eu de probs avec ton programme, mais, vu comme tu l'enrichit pas mal, un jour, ça va finir par coincer :-o (j'ai pas une bébétte de course) Par exemple, je m'était amusé à bidouiller la source de ce site, que tu utilise, celle qui fait un mini graph au milieu et les 2 barres pour le volume sonnore D/G, eh bin, en désactivant les 2 barres, je voyait la vitesse d'affichage du graph augmenter, et vice versa. Et je t'ai parlé de DX car il est bcp plus rapide et mange moins de ressources.
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
8 sept. 2004 à 13:28
Merci,
En fait les prochaines trucs à rajouter, en vrac, mais je n'ai pas encore vu comment faire :
- Sélectionner dans la liste et pouvoir directement faire des CD audio, MP3 (puisque c'est les seuls formats reconnus sur les lecteurs pour le moment) avec calcul de la taille limite des morceaux choisis, etc.
- Peut-être un tirage au sort des morceaux avec gestion d'un top ten et BDD à l'appui j'ai déja fait ça sur un autre prog.
- Gestion de CDTèques ou autres supports.
- Etendre éffectivement aux autres formats pris en charge par la dll.
- Peut-être l'édition et pourquoi pas la table de mixage, mais là on rèvent un peu.

Pour ce qui est d'OpenGL et DirectX j'ai déja pas mal bossé sur Ogl très peu sur DirectX, mais la finalité du truc c'est de démistifier la prog des librairies et API et si on attaque ces domaines va y en avoir quelques uns de largués. D'ou la volonté d'adresser des dll simplement en commentant le code, c'est plus dictatique comme truc qu'autre chose.

Quand aux plugins, xmédia et d'autres l'ont fait, mais ça merdoit franchement. Pbm d'enregistrement des plugins.

Pour la vitesse je sais pas, t'as des pbm ? car moi j'ai fais touné sur un 1Ghz en réseau Wifi, c'était plus le temps d'accès réseau qui merdait que le prog.

Hé si ça en tente quelques uns, on fait avancer en groupe chacun son morceau, pourquoi pas ?

Bonne prog @+
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
8 sept. 2004 à 12:21
Pas mal, tu fera peut etre bientot une suite multimédia peut etre ! ;)
Si tu veux qq idées, j'en ai : visualisations plein écran, programme totalement skinnable, élargir les sons reconnus (FMOD gere plus de types que MP3 OGG et WAV, certains sont considérés comme samples), un truc pour faire ses propres visualisations perso sans avoir accès au code source, un type de plugin en fait, et DirectX ou OpenGL pour faire les anims. En effet, c'est bcp plus rapide d'utiliser ces librairies que déssiner avec des API, car certaines fonctions sont directement traitées par la carte graphique. Voili voilo ;)
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
8 sept. 2004 à 11:14
Bonjour,
Je n'ai pas encore vu d'adaptation des déclarations d'accès à fmod en . net, mais ça doit pas être le bout du monde, dsl j'ai pas .net.
Comme cette dll marche à peu près avec tout PS2,, XBox, Windows, Linux, WindowsCE Y'a pas de raison.

@+ et merci de l'appréciation.
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
8 sept. 2004 à 10:03
vraiment pas mal !
exelent meme. Jadore les visualisation rapide ...
Si fMod est en .Net jessaierai en .Net
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
8 sept. 2004 à 00:08
Prochaine version,
J'essaie la transparence sur le spectrum lorsque c'est en barre de tâches.
Bonne nuit.
Rejoignez-nous