Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Pure data et video

  • 10 réponses
  • 4 participants
  • 973 vues
  • 1 follower
Sujet de la discussion Pure data et video
Sans grand espoir, mais on sait jamais: est ce qqn a deja utilise pure data (avec eventuellement gem) pour faire des patchs relativement complexes, avec synchronisation audio et video assez precise ?
2
Oui, c'ets super facile...

































non je déconne :oops:
3
Yo Gabou-san ! ;)

Ouais j'ai déja utilisé Gem et je me demande s'il n'y a pas une autre lib également qui permet de faire de la vidéo. J'ai réalisé pour ma part un embryon de "pong/flipper" hyper basique et aussi divers patchs pour apprendre, genre mapping d'image sur sphere en 3D controllé en midi. Je n'ai vraiment fait qu'éffleurer les possibilités.

Mes conclusions, et bien vu que je n'ai pas été très loin je ne peux pas affirmer ceci ou cela, sauf qu'avec une bonne carte 3D, à vrai dire comme toutes celles qui existent actuellement :) ca devrais tout a fait bien se passer ??

Il faut être un peu perséverant toutefois car Gem n'est pas exempts de petits bugs ou subtilités mais vu que ca fait des annees que j'ai fait mes trucs, ca a du bien évoluer.

J'ignore ton projet, mais le seul frein est que le langage max est parfois peu adapté si l'on veut faire un vrai programme plutot qu'un petit patch de démo.

A+,

4
PS: à noter qu'on peut écrire ses propres objets en C pour les choses plus complexes

5
Au fait PD a ete rentré dans la base produits AF, regarde ds mon profile si tu trouves pas.

6
Ah yes, j'avais cherché, mais pas trouvé

Afficher un film, j'arrive à faire. Lire un wave, aussi. Maintenant, faire la synchro, je vois pas trop comment faire, ni comment étendre la GUI. T'es obligé de prendre tcl/tk pour étendre la gui de pd ? J'aimerais avoir un widget qui permette de lire un wave de taille importante, avec zoom horizontal, voire vertical, comme un éditeur audio, quoi. Je sais pas si c'est facile.

Je viens de trouver un exemple de code, là, on va bien voir...
7
J'dirais que le hic c'est un peu l'interface tcl/tk actuelle. A moins qu'elle ait evolué sur les dernieres version, les interactions sont génératrices de coupures, enfin tout dépend comment tu t'y prends. Il y a des libs comme "gripd" qui cherchent à offrir plus de possibilités au niveau GUI et en s'affranchissant de tlc/tk, mais je n'ai pas testé et je ne sais pas si c vraiment utilisable.
http://crca.ucsd.edu/~jsarlo/gripd/

Ideallement, si tu as besoin d'un temps de latence minimal garanti, tu peux essayer de dissocier l'interface de PD et communiquer via les objets "netsend/netreceive". Il y a plusieurs options possibles à considerer (2 machines distinctes, ou meme machine avec deux PD dont un tps reel pour les calculs).

Sinon pour ton idée de widget, Yves Degoyon a fait un objet qui est similaire et pourrait t'interesser:
http://ydegoyon.free.fr/software.html regarde "cooled"

Citation : Afficher un film, j'arrive à faire. Lire un wave, aussi. Maintenant, faire la synchro, je vois pas trop comment faire



Can u elaborate ?

8
Von, déjà, pas trop besoin d'une pure latence. Le but de mon appli, c'est de pouvoir visualiser une video, la bande son comme dans un éditeur audio, avec différentes features extraites de la bande son par des algo perso, comme le pitch, la séparation voice/unvoice, etc...

J'aimerais qu'il y ait une barre verticale annonçant l'endroit jouée dans le wave et le pitch, en synchro avec la video qui serait jouée. La video faisant environ 25frames par seconde, j'ai environ 40 ms de latence possible, et je pense que je peux même me permettre une ou deux frames de décalage, faut juste que ça se voit pas, le but est essentiellement d'avoir une vue d'ensemble et de pouvoir juger de la partinence des informations extraites avec la video.

Je me demande si c'est envisageable de faire une GUI dans pd qui soit dans un processus à part avec un toolkit plus sympa que tcl/tk (genre qt). Mais là se pose le pb de la synchro inter processus, puis finalement, je suis pas sûr que je gagne beaucoup à utiliser pd par rapport à un langage de script tel que python, voire carrément un code en C++.
9
Pour l'audio il te faut un "peakfile", donc si tu utilises une vidéo il faut déja faire cette analyse au préalable ou alors tu réenregistres l'audio sous une forme .wav. Si tu as déja video et audio en 2 fichiers sépares, c deja ca en moins. Tu peux utiliser sfplay~/readsf~/sfread~ pour la lecture en stream ou alors tout charger en mémoire (attention les tableaux sont en float 32 bits).

Apres pour la présentation, c possible de faire un slider avec Gem. Suffit d'afficher un rectangle représentant le moment de lecture. Comme tu peux analyser la position de la souris, il est possible d'actualiser le point de lecture si celui ci est cliqué/grabé. Sinon tu peux aussi utiliser la GUI tcl/tk car il y a des sliders, définissables, horizontaux qu'on peut actualiser par une valeur donnée (ce qui serait donc ton point de lecture).

Reste qu'il faut que l'objet de lecture vidéo accepte comme argument de démarrer à un point donné et non uniquement depuis le début.

10
Mouais, je commence a etre convaincu que j'ai tous les trucs chiants que j'aurais eu a faire en programmant en C++, finalement. Si ca me simplifie rien au niveau synchro, je suis pas sur de voir l'interet, finalement.

Le truc cooled~ m'apparait assez inutilisable, en fait, c'est super lent ( et j'ai un PIV 3 Ghz avec 800 Mo de ram !).