Salut à tous, je cherche à synchroniser un enregistrement audio dans Pd avec un enregistrement vidéo dans VVVV.
Mon premier problème, ne connaissant Pd que très peu, est d'envoyer le nom de fichier depuis VVVV vers Pd via netsend. L'envoi se fait bien mais je n'arrive pas à relier l'objet unpack avec le message set (qui détermine le chemin d'enregistrement), puis je ne sais pas comment relier l'objet makefilename avec le message open (lui-même lié à writesf~).
Voilà le patch parce que moi-même je peine à tout comprendre.
Et bonne année!
Hors ligne
Bonjour...soir, Ars Robota,
Un petit schéma:
[netreceive 3000]
|
|
[makefilename %d.wav]
|
|
[open G:/rec/$1(
|
| [start( [stop(
|/
[writesf~ 2]
Tu peux ainsi numéroter tes fichiers audio : "1.wav" ,"2.wav",...etc. Le chemin de l'enregistrement
est par contre déjà déterminé, mais est-ce un problème? Pour déclencher l'enregistrement :
un message [start( et pour l'arrêter [stop(...Le moteur audio de PD doit être actif au moment
de la création du fichier "[open G:/rec/$1(", faute de quoi, ça ne fonctionnera pas. Pour les
messages de déclenchement et d'arrêt de l'enregistrement, penses-tu les commander depuis
VVVV? Il serait peut-être alors plus intéressant d'utiliser l'OSC (open sound control).
solipse.
Hors ligne
Salut solipse, merci de ta réponse.
Le chemin d'enregistrement doit rester le même tout du long, donc pas de soucis.
Effectivement, je dois déclencher l'enregistrement depuis vvvv sur un autre pc. Concernant l'OSC je ne connais pas peux-tu m'en dire un peu plus?
Merci beaucoup,
aR
Hors ligne
Bonjour Ars Robota,
Voici un patch, avec l'objet [route], pour te permettre de diriger tes commandes
(open, start, stop...) vers les messages correspondants.
Pour l'OSC, il s'agit d'un protocole, comme le MIDI, mais plus souple. Il nécessite
l'ajout d'une librairie, que tu peux trouver ici.
Mais ce que tu cherches à obtenir est réalisable avec [netreceive], et si tes premiers essais
sont concluants, peut-être mieux vaut continuer sur ta lancée.
Je joins le patch.
Et ça, sur le site de VVVV, qui devrait t'aider.
solipse.
Dernière modification par solipse (2009-01-05 12:26:00)
Hors ligne
Merci pour le patch solipse,
Par contre [route] ne redirige rien... la connection netreceive se fait pourtant bien. J'ai essayé avec [unpack] mais Pd ne sépare pas les 3 commandes (quand je modifie le numéro de fichier dans v4, route] sort également un bang start et un bang stop...
EDIT: Oups, mille excuses, en fait unpack sépare bien les 3 commandes! Par contre je me demandais s'il était possible d'activer [open] depuis v4. Peut-être avec un [bang]?
Dernière modification par Ars Robota (2009-01-05 17:50:34)
Hors ligne
(re)Bonjour Ars Robota,
Le message [open ...( est activé quand tu lui envoies une valeur, 1, 2, etc.
numérotant les fichiers audio. Un message [bang( n'est pas nécessaire.
Ne pas oublier d'activer l'audio dans PD en premier...et vu que tu le fais d'une
machine distante, ça signifie un message de plus:
[; pd dsp $1(
Quand la variable "$1" vaut 1, l'audio est activé. 0, pour désactiver.
Ne pas oublier le ";" au début du message il fait parti de la syntaxe.
Dans [route ....] "nbfile", "start" sont des variables. Donc à partir de VVVV,
tu dois utiliser les mêmes noms de variables pour qu'elles soient correctement
routées.
Jettes un œil à l'exemple proposé sur le site de VVVV --> Interfacing with vvvv.
Voir le lien du post précédent. Je pense que cela correspond à ce que tu veux
obtenir.
Bon, j'essaie de te faire un patch complet (VVVV/PD), dès que possible.
solipse.
Hors ligne
solipse a écrit:
Dans [route ....] "nbfile", "start" sont des variables. Donc à partir de VVVV,
tu dois utiliser les mêmes noms de variables pour qu'elles soient correctement
routées. solipse.
Ca veut dire que je dois envoyer des strings au lieu de values? Dans ce cas ca pose un problème de type de données vu que, dans v4, je ne peux pas mélanger string et value.
Hors ligne
Bonjour,
A dire vrai, je ne sais pas s'il est possible d'employer des variables dans VVVV.
Les essais que j'ai réalisés étaient de PD à PD, en localhost.
D'un autre côté, j'ai commencé un patch, comme je te le proposais. Mais ne
connaissant pas assez VVVV je rencontre 2 problèmes/questions que tu peux
peut-être résoudre.
1/ Existe-il un objet similaire à [pack] dans VVVV?
Pour pouvoir connecter les 4 messages nécessaires.
2/ Pour obtenir des valeurs entières, comment configurer IOBOx...?
Pour la numérotation des fichiers audio créés. Il est possible de convertir
la valeur flottante envoyée par VVVV dans PD, mais si la conversion
était évitable...
Dès que j'y vois plus clair, je t'envoie l'ébauche du patch commencé.
Bon, nous devrions avancé...
solipse.
Hors ligne
1) oui Vector (4d) ou Cons (spreads) si tu veux envoyer des values ou Cons (string) pour des strings
2) C'est un grand problème de v4, tu ne peux pas obtenir d'int avec des iobox. A part si tu converti ta value en string (avec AsString): là tu a la possibilité de choisir de représenter une float ou une int.
Ceci dit, je ne vois rien dans v4 qui corresponde à une variable, l'ordre des values que tu envoies est garanti par les indices.
Hors ligne
solipse a écrit:
2/ Pour obtenir des valeurs entières, comment configurer IOBOx...?
Pour convertir en valeurs entières il y a cette méthode, mise au point par Kalle : http://vvvv.org/tiki-index.php?page=kalle.Modules.Value
Pour formater une chaine à partir de valeurs numériques :
Sinon, il y a quelque temps, j'avais proposé un canevas pour faire communiquer processing et pure-data par osc, à toutes fins utiles!
En mélangeant ça et oscencoder ça doit être possible de formater une chaine pour pd ?
Extrait de l'aide vvvv :
Hors ligne
Salut emoc, merci de ta contribution
emoc a écrit:
Pour convertir en valeurs entières il y a cette méthode, mise au point par Kalle : http://vvvv.org/tiki-index.php?page=kalle.Modules.Value
Il y a même plus simple, lier une iobox avec frac
Je n'avais pas pensé à l'osc mais ça semble pouvoir simplifier le problème, qu'en penses-tu solipse?
Mais je penses que la solution se trouve du côté de [unpack], comme suggéré sur vvvv.org
Dernière modification par Ars Robota (2009-01-06 18:57:27)
Hors ligne
Bonjour Ars Robota,
Voilà où j'en suis, une solution pas très élégante...mais qui fonctionne.
Et du côté PD:
Bon, quatre NetSend...et autant de netreceive dans PD, sur des ports séparés,
il faudrait tout de même trouver mieux. La solution est peut-être du côté de l'OSC,
mais cela doit être réalisable avec NetSend, tout aussi bien. Ce qui fait défaut,
c'est un équivalent à [pack], Vector et Cons ne semblent pas avoir le même
comportement et être destinés au même usage.
Sinon, pour la création du fichier audio et sa numérotation avec un entier, la combinaison
TogEdge / Counter semble efficace.
solipse.
Dernière modification par solipse (2009-01-07 13:54:28)
Hors ligne
Super! Merci solipse, ça marche. Il reste juste un petit soucis, pd me dit toujours "error: writesf: start requested with no prior 'open'" lorsque je veux lancer [start(
Je me suis permis de modifier un peu ton patch v4...
Dernière modification par Ars Robota (2009-01-07 21:13:45)
Hors ligne
Content que cela fonctionne!
Pour le message d'erreur: il faut penser à activer l'audio en premier.
Puis créer le fichier audio, et seulement ensuite lancer l'enregistrement
avec le message [start(.
Merci à toi de m'avoir donner l'occasion de me plonger un peu plus
dans VVVV.
Je récupère ta version du patch...feedback dès que j'y aurais jeter
un œil.
solipse.
Hors ligne