Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1120 connectés 

  FORUM HardWare.fr
  Programmation

  [Delphi/C++] Utiliser les plugins Winamp

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[Delphi/C++] Utiliser les plugins Winamp

n°89040
BlackSunSo​ft
Keyboard error - Press F1
Posté le 14-01-2002 à 08:22:39  profilanswer
 

J'aurais besoin d'aide sur ce coup là je bloque. J'arrive a initialiser le plugin in/out/vis mais je ne vois pas comment envoyer les infos au plugins vis.
 
A cette Url vous trouverez mon source basé sur le travail de Snaker.
 
http://www.divx-digest.net/blacksu [...] is_app.zip


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
mood
Publicité
Posté le 14-01-2002 à 08:22:39  profilanswer
 

n°89062
karlkox
Posté le 14-01-2002 à 10:24:00  profilanswer
 

C'est marrant, mais je suis EXACTEMENT dans le meme cas que toi :)
Si tu réussi ou si je réussi je te mail ce que j'ai fait, mais en attendant je cherche a savoir comment envoyer mon petit buffer de pcm data (quelle taille ? dans un callback ou un timer ? )

n°89071
BlackSunSo​ft
Keyboard error - Press F1
Posté le 14-01-2002 à 10:41:36  profilanswer
 

D'apres ce que j'ai compris, il faut utiliser un timer avec comme interval le latencyMs. Et exactement comme toi, je vois pas du tout quoi faire avec le PCMData.
 
J'ai posté le même message sur le forum Winamp on verra bien... Content de pas etre tout seul a vouloir faire ça !


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°89125
karlkox
Posté le 14-01-2002 à 14:02:42  profilanswer
 

ah déja je viens de comprendre pour les inputs. Enfin si l'on veut, comme moi, passer outre l'utilisation des output. Le truc c'est de filler la structure Out_Module par les datas que l'on a a envoyer et de passer cette struct a l'input qui gerera tout le reste (seeking, pause ...). C'est ce que m'a dit Ian Luck, l'auteur de la librairie BASS, je lui ai demandé pour les autres types de plugins, mais il doit avoir l'accord de nullsoft pour ca (c po gagné en gros ...).
Pour les vis, je viens de penser a un truc : et si on utilisait les FFT pour se faire un 'tit buffer, et pourquoi pas de 576 floats ? Ca peut etre une solution, d'autant que j'utilise FMOD qui dispose de cette routine (pas bien dur a faire sans cette librairie de toute facon).
La je suis au boulot, je vais d'abord voir pour les vis et ensuite les inputs.
 
 
 
Note : cdex supporte les plugins inputs en standard, il peut etre interessant de jeter un coup d'oeil sur ses sources :)

n°89263
BlackSunSo​ft
Keyboard error - Press F1
Posté le 15-01-2002 à 06:45:54  profilanswer
 

J'ai rien trouvé de mon coté: ça bloque


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°89432
BlackSunSo​ft
Keyboard error - Press F1
Posté le 15-01-2002 à 13:40:13  profilanswer
 

Allô ?  :heink:


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°89442
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-01-2002 à 13:55:51  profilanswer
 

j'ai cherché et j'ai rien trouvé non plus :(


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°89466
BlackSunSo​ft
Keyboard error - Press F1
Posté le 15-01-2002 à 14:33:27  profilanswer
 

tu as vu, il faut recuperer le pointer PCMData et le mettre dans l'array WaveFormData... Tu doit savoir faire ça toi non ?  :ange:


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°89469
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-01-2002 à 14:39:19  profilanswer
 

heu t'as pas un exemple plus parlant ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°89528
karlkox
Posté le 15-01-2002 à 16:15:22  profilanswer
 

Yopla ! Me revoila, j'ai essayé hier avec les vis, en recupérant 512 floats en FFT (512 pas 576 pour l'instant) le tout dans un timer a 10, ca fait bien bouger le plugin mais pas aussi bien que le fait winamp. C'est assez bizarre je trouve ... Par contre, la meme procedure dans un callback accélere (logique) nettement la rapidité pour etre aussi fluide qu'avec winamp.  Maintenant, le truc c'est de savoir si mon probleme vient du fait que je perd en castant de float vers unsigned char ou est ce vraiement les données pcm (buffer d unsigned char de 576) qu'il veut ? J'ai commencé hier avec un buffer pcm (576 cette fois), mais ca plante pour l'instant (mes donnés sont en ring), je vous tient au courant.

mood
Publicité
Posté le 15-01-2002 à 16:15:22  profilanswer
 

n°89785
BlackSunSo​ft
Keyboard error - Press F1
Posté le 16-01-2002 à 07:30:37  profilanswer
 

:ouch: Oula bon je vais attendre un peu que tu trouves car là je suis largué... Je suis debutant en Delphi...
 
Sur le forum de Winamp pas une seule reponse, j'ai ecrit a Justin Frankel j'attend la reponse.


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°89800
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-01-2002 à 09:33:13  profilanswer
 

t'inquiète pas, moi je suis aussi largué ;)
j'ai jamais manipulé de données vidéo/audio en programmation, sauf un wav en assembleur :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°90105
BlackSunSo​ft
Keyboard error - Press F1
Posté le 17-01-2002 à 07:34:04  profilanswer
 

KarLKoX: tu peux pas me filer ton code comme tu as dejà avançé plus que moi


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°90108
Ciler
Posté le 17-01-2002 à 07:50:47  profilanswer
 

KarLKoX a écrit a écrit :

Yopla ! Me revoila, j'ai essayé hier avec les vis, en recupérant 512 floats en FFT (512 pas 576 pour l'instant) le tout dans un timer a 10, ca fait bien bouger le plugin mais pas aussi bien que le fait winamp. C'est assez bizarre je trouve ... Par contre, la meme procedure dans un callback accélere (logique) nettement la rapidité pour etre aussi fluide qu'avec winamp.  Maintenant, le truc c'est de savoir si mon probleme vient du fait que je perd en castant de float vers unsigned char ou est ce vraiement les données pcm (buffer d unsigned char de 576) qu'il veut ? J'ai commencé hier avec un buffer pcm (576 cette fois), mais ca plante pour l'instant (mes donnés sont en ring), je vous tient au courant.  




 
Quéquidilui ?  :heink:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°90531
BlackSunSo​ft
Keyboard error - Press F1
Posté le 18-01-2002 à 06:49:46  profilanswer
 

uppppp  [:blacksunsoft]


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°90549
karlkox
Posté le 18-01-2002 à 09:19:11  profilanswer
 

un peu oqp ces temps ci, désolé.
Pour les sources, pas de probleme, doit y avoir pas beaucoup plus que toi mais on sait jamais. Par contre, il faut que je recode tout, parce que la, c'est carrément le bordel.
Sinon pour ce que j'ai dit plus haut, on dirait que ca a l'air correct car je viens de regarder les sources d'xmms (un clone de winamp pour les *nix), il utilise les fft pour calculer la fréquence mais en tenant compte du fait que la source soit mono ou stéréo. Ca vaut le coup d'oeil de regarder un peu la dedans ...

n°90552
BlackSunSo​ft
Keyboard error - Press F1
Posté le 18-01-2002 à 09:26:47  profilanswer
 

Ok, mon email c'est blacksun @ powerdivx.com (marre du spam)
 
J'ai pas encore essayer d'utiliser les DSP mais ça va plus trop tarder. Sinon tu as reçu une reponse de Nullsoft pour pouvoir utiliser leur framework ?


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°90607
karlkox
Posté le 18-01-2002 à 11:10:40  profilanswer
 

non, j'ai jamais recu de réponse, malgré mes 2 mails. Je comprend qu'ils recoivent pas mal de mails, mais pour un truc aussi important, je pense qu'ils auraient pu donner une petite réponse ...

n°90619
BlackSunSo​ft
Keyboard error - Press F1
Posté le 18-01-2002 à 11:24:24  profilanswer
 

Je crois qu'on va faire sans c'est leur faute ils repondent pas... Une fois qu'ils realiseront ce qu'on a fait là ils vont prendre contact avec nous et on pourra discuter...


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°90622
BlackSunSo​ft
Keyboard error - Press F1
Posté le 18-01-2002 à 11:28:36  profilanswer
 

Ah oui si c'est possible, tu peux m'envoyer tes sources avant samedi 11h du matin, car apres je part en week end et c'est le seul moment où je peux coder tranquillement. Si tu peux pas tu peux tjrs m'envoyer ce que tu as dejà fait ça m'aiderais bcp.  :(


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°90733
Bruce
Music 4 your ears!
Posté le 18-01-2002 à 15:28:33  profilanswer
 

BlackSun, matte donc les sources des composants qui utilisent winamp (tel que certain BU ou d'autres dispo sur le web)...


---------------
A+++ Bruce - http://www.bheller.com
n°90737
Bruce
Music 4 your ears!
Posté le 18-01-2002 à 15:33:05  profilanswer
 
n°90933
BlackSunSo​ft
Keyboard error - Press F1
Posté le 19-01-2002 à 07:46:51  profilanswer
 

:hello:  
Merci mais ça m'aide pas du tout, là ou je bloque c'est quand il faut convertir un pointer PCMData...


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°91100
Bruce
Music 4 your ears!
Posté le 19-01-2002 à 21:25:38  profilanswer
 

Blacksun, je sais pas du tout j'ai même pas regardé comment ça marchais, mais je suis sûr que dans les exemples que je te donne tu as l'explication... Ils y arrivent eux, alors ça doit pas être sorcier :)


---------------
A+++ Bruce - http://www.bheller.com
n°91409
karlkox
Posté le 21-01-2002 à 02:17:38  profilanswer
 

BlackSunSoft>excuse moi, je n'ai pas eu beaucoup de temps ce week end, mais j'ai commencé cette nuit, je te l'envoye des que possible. (je traine a cause d'un nouveau truc que j'ai compris avec les vis y a une heure :)
 
 
Bruce>je ne pense pas que tu as compris exactement ce que l'on cherche : on ne cherche pas a faire des plugins, mais a se substituer a winamp. On veut ETRE winamp pour pouvoir gérer, tout comme lui, les plugins, et non faire des plugins.

n°91413
Bruce
Music 4 your ears!
Posté le 21-01-2002 à 03:43:05  profilanswer
 

Bha oui ça j'avais pigé... :)
 
Mais dans ces liens il y as bien ça non ? Ou alors g surfé trop vite ;)
 
Faudrais demander à un programmeur d'un soft qui fait déjà ça... Par exemple à BST qui as fait BSplayer qui le fait déjà... En plus il code en Delphi :D


---------------
A+++ Bruce - http://www.bheller.com
n°91417
BlackSunSo​ft
Keyboard error - Press F1
Posté le 21-01-2002 à 07:48:44  profilanswer
 

Oui mais BST n'as pas refait tout le framework, il s'occupe seulement du DSP. Le plus compliqué c'est les vis, le reste c'etait fastoche :D
 
J'attend le resultat avec impatience :D


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°91445
karlkox
Posté le 21-01-2002 à 10:38:36  profilanswer
 

bruce>c'est exactement ce que j'ai fait, j'attend toujours sa réponse ... :(   (j'ai son skinneur qui me dit qu'il l'a prévenu pourtant).
 
 
BlackSunSoft>bein le résultat est bof mais bon, j'ai toujours mon petit probleme de fenetre. Mais c'est en bonne voie, je m'y remet des ce soir !

n°91492
BlackSunSo​ft
Keyboard error - Press F1
Posté le 21-01-2002 à 13:20:35  profilanswer
 

Un probleme de fenetre ? Tiens je vais aller voir sur le forum de Winamp voir s'il y a du new


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°91532
karlkox
Posté le 21-01-2002 à 14:23:49  profilanswer
 

Vi, dans la strucutre de WinampVisModule, on voit qu'il veut l'hWnd parent, mais on ne peut pas donner celui de notre fenetre principale, car lors de l'arret du plugin, la fonction "Quit" est appelé, elle aura pour conséquence de delete l'hWnd qui lui est passé en paramettre dans la structure, et donc, notre fenetre. Il faut donc, "émuler" une fenetre winamp, de la meme classe ( "winamp 1.x". Pour ma part j'en fait une, la plus basique possible, sans bordure ou quoi que ce soit, qui servira de fenetre parente. Le probleme, c'est qu'a l'init, la fonction "Render" me renvoye 1. Conséquence : ma fenetre apparait puis disparait immédiattement. Voila mon petit probleme...

n°92871
karlkox
Posté le 24-01-2002 à 14:16:34  profilanswer
 

Coucou, i am not dead :)
C'est juste que je suis assez occupé ces temps ci ... Bon pour revenir au sujet de départ, le probleme de la fenetre est résolue, et j'ai, roulement de tambour, réussi a envoyer des donnés plus ou moins correctes !!  
Le plugin bouge assez bien, ca suit la musique au poil mais il y a quelques soucis encore :  
1 - ca va trop vite (non non, ca vient pas de mon code),
2 - par moment, le plugin ralentie, puis repart de plus belle, (fragmentation de la mémoire ? car le code est bourrée en fuite mémoire :),
Pis c'est tout en fait. Le truc, c'est que j'ai utilisé le double buffering : dans un callback, je fill un buffer de 2*576 de pcm data (signed short que je convertie en 16 bits mono puis en de 16 a 8 bits), et dans un timer, qui est réglé suivant le DelayMS, je render le tout. Vitesse assuré !
Bon bein maintenant, faut que je nettoye un peu le merdier parce que la ca fait un peu Tchernobyle :)
 
 
 
Note1 : il se pourra qu'en appuyant sur le bouton configure, ca plante. J'ai la flemme de voir ca pour le moment, je préfere me concentrer sur l'amélioration du rendu du plugin.
 
Note2 : si je me débrouille bien, tu devrais recevoir ca ce week end :D

n°93208
karlkox
Posté le 24-01-2002 à 22:55:55  profilanswer
 

Tu as du recevoir un petit mail normalement, si c'est pas le cas, prévient moi :)

n°93277
BlackSunSo​ft
Keyboard error - Press F1
Posté le 25-01-2002 à 09:56:08  profilanswer
 

Thanks, tu as utilisé le MaxlatencyMs pour le timer ?


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°93472
karlkox
Posté le 25-01-2002 à 18:51:47  profilanswer
 

nan, en utilisant delayMs, mais j'ai remarqué que delayMs et latencyMs ont presque toujours (toujours sur tout les plugins que j'ai vu) la meme valeur.

n°93630
BlackSunSo​ft
Keyboard error - Press F1
Posté le 26-01-2002 à 10:18:42  profilanswer
 

J'ai des blemes pour le convertir en Delphi, comment je vais convertir de 16 an 8 bits comme cnv16to8 ?


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°93736
karlkox
Posté le 26-01-2002 à 17:49:06  profilanswer
 

Ouhla ! Je programme pas en Delphi, je pourrais pas te dire, y a pas du bit shifting en Delphi ( shl, shr ...) ?

n°93741
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-01-2002 à 18:00:09  profilanswer
 

oui, shr et shl existent en delphi
 
z := x shr y;
 
z reçoit x décalé de y bits sur la droite


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°94141
BlackSunSo​ft
Keyboard error - Press F1
Posté le 28-01-2002 à 14:47:14  profilanswer
 

Comment on separe les deux canaux ? J'ai l'impression que c'es ça mon bleme


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°94908
BlackSunSo​ft
Keyboard error - Press F1
Posté le 30-01-2002 à 14:55:57  profilanswer
 

Bon ça marche mais le plugins va trop vite et fini avant la fin de la zic, tout en etant correct...  :??:


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
n°94943
karlkox
Posté le 30-01-2002 à 15:54:15  profilanswer
 

Pour la vitesse, si on met un Delay a 50 Ms, ca marche au poil, par contre, je suis pas allé jusqu'a la fin d'une zik, je voit ca se soir (pour les spectrum, j'ai fait un truc tout naz mais ca bouge plus ou moins bien ... work in progress)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Delphi/C++] Utiliser les plugins Winamp

 

Sujets relatifs
Créer un plugin winamp pour afficher les lyrics qui c faire?[C] comment utiliser strstr() dans string.h ...
Prog sous DELPHI ->Matrice...(Personne connait?)[Delphi] pb d'ouverture de fichier avec un TFileStream
[Delphi] Perdu clé pour l'installation, comment me la reprocurer?Est t'il possible d'utiliser Bind (DNS) avec une base de donné Mysql ?
[Delphi] Capturer le clavier et la souris en tâche de fond[Delphi 6] comment chronométrer une boucle ? + pb compteur (résolu)
[Delphi] Changer la langue que un TTextToSpeech parle 
Plus de sujets relatifs à : [Delphi/C++] Utiliser les plugins Winamp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR