ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
BrainModularBrainModular Users Forum2011-04-01T12:41:14+02:00https://brainmodular.com/forums/app.php/feed/topic/27862011-04-01T12:41:14+02:002011-04-01T12:41:14+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18894#p18894Autre soucis : Si je passe les entrées en array, j'ai des doutes quant à la compatibilité entre les deux types de modules. (on va très certainement avoir des conflits violents sur les accès à l'interface si les deux modules sont chargés dans un même patch). A voir... (mais quoiqu'il en soit, ce ne sera pas pour tout de suite...)
Statistics: Posted by LevraiBernardo — 01 Apr 2011, 12:41
]]>2011-04-01T09:56:43+02:002011-04-01T09:56:43+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18892#p18892Est ce compliqué pour toi de faire une entrée array sur ton module ? Eventuellement pourquoi pas y intégrer de base un shift array qui décalerait les valeurs d'un pas de l'index pour démarrer de 1 et non de 0 ?
Statistics: Posted by joffo78 — 01 Apr 2011, 09:56
]]>2011-04-01T09:19:16+02:002011-04-01T09:19:16+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18890#p18890L'intérêt du patch polyphonique, c'est que si tu changes ton patch initial, cela modifie automatiquement le patch pour toutes les entrées/sorties. En général, pour le DMX, on utilise pas mal de fois le même type de traitement pour plusieurs circuits (ce qui ne signifie pas les mêmes valeurs pour tous les circuits...). La polyphonie étanty limitée à 32 instances, tu crées ainsi un patch unique pour 32 circuits DMX.. Après, ça se gère de la même manière qu'un patch monophonique. (je t'encourage vivement à jeter un oeil au manuel pour éclaircir ce point).
Statistics: Posted by LevraiBernardo — 01 Apr 2011, 09:19
]]>2011-03-31T23:09:14+02:002011-03-31T23:09:14+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18885#p18885Comment ton module peut savoir à quel canal je parle ? Est ce que le contenu d'un array est perçu comme les numéros de circuits ?
Statistics: Posted by joffo78 — 31 Mar 2011, 23:09
]]>2011-03-31T08:59:51+02:002011-03-31T08:59:51+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18874#p18874Pour répondre à ta question, non, ne patche pas le 1 en 512 (ni 120) dans le module. Si tu laisses ton patch à plat, le module n'enverra du message DMX que sur les canaux sollicités.
Statistics: Posted by LevraiBernardo — 31 Mar 2011, 08:59
]]>2011-03-29T19:07:25+02:002011-03-29T19:07:25+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18858#p18858J'ai essayé le mode poly avec ton module et ça à planté du coup je n'ai pas insisté. Je n'est pas bien saisi le principe: je mets la sortie de ma matrix (cells out) sur l'entrée value de ton module et je patch le 1 en 512 (ou 120) et le module se charge du reste ?
Statistics: Posted by joffo78 — 29 Mar 2011, 19:07
]]>2011-03-29T18:53:45+02:002011-03-29T18:53:45+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18857#p18857bon, je tombe un peu par hasard sur le thread. Pour répondre rapidement, oui je suis un peu débordé mais ça va encore. Pour le reste, le nombre de canaux utilisés est géré par le module : Il regarde quel est le plus grand canal sélectionné dans Usine, et il n'envoie du message DMX que du canal 1 à ce canal. (on est obligé de commencer au 1). Mais attention, c'est le plus grand utilisé après passage par le patch. C'est à dire que si vous ne mettez qu'un module sur le canal1, à priori, du message DMX ne sera envoyé que sur ce canal. Mais si ce canal est envoyé en 512 par le patch, alors tous les messages DMX seront envoyés. Mais ça ne devrait de toute façon pas avoir une incidence énorme sur la consommation CPU. En ce qui concerne un patch de 8 à répliquer, oui c'est effectivement ce que je faisais aussi. Mais vous avez essayé avec la piolyphonie ? Ca devrait marcher, non ?
Statistics: Posted by LevraiBernardo — 29 Mar 2011, 18:53
OSC, DMX, même combat, t'auras quelques adaptations a faire, mais c'est kif kif.
pour la video dans usine, autant le moteur d'usine pourrai à priori le faire, autant c'est un domaine à par entière. Je sais pas si c'est réaliste de vouloir traiter le son et la vidéo sur la même machine, et puis faut coder tout ça, c'est une montagne de taf roll ya déjà des très bon soft pour ça qui demande qu'a manger du osc (comme vvvv ou isadora)
Je suis d'accord sur le principe mais cela nécessite l'apprentissage global d'un nouveau soft modulaire et ça je n'y tiens pas trop compte tenu du taf que j'ai déjà à faire avec usine.
Je sais pas si c'est réaliste de vouloir traiter le son et la vidéo sur la même machine
Et alors, qu'est ce qui m'empêche d'acquérir une seconde license d'usine et de la faire tourner sur un autre ordi ?
c'est du double buffering en gros alors ?
C'est quoi le double buffering ?
faudra une page wiki ou une video car avec ton premier patch, je suis pas arriver à capter le fonctionnement de tout ces buffer, mais je pense que pour un gars du metier, ca doit être évident.
En effet c'est bien ce qu'il me semblait. Du coup si je veux gérer 120 circuits dmx il me faudra 120 instances du module ! ma matrix de sortie contient 120 cellules. elle est configurée en mode fade. J'ai rajouté un multiplicateur *256 pour les valeurs dmx.
c'est clair que ca va être fastidieux...fait un subpatch de 8 avec tout ce qu'il faut pour assigner les channels, puis duplique, ça te feras 15 banques de 8. Ca sera peut être un peu lourd aussi, 120 instances du module dmx, je sais pas.
C'est peu être l'occaz de demander a LeVraiBernardo un update de son module (bien qu'il doive être débordé ) Qu'on puisse choisir le nombre de canaux à gérer quand on pose le module (faisable avec le query system du SDK), l'entrée Value deviendrai une array et hop plus de tringlerie fastidieuse
Pour le moment j'ai testé le système sans utiliser les module enttec mais en envoyant directement la sortie de la matrix via un send byte en udp à un logiciel tierce (schwartzpeter). Celui ci récupère mes 120 valeurs et assure l'interfaçage avec le dmx. Mais c'est un peu idiot car j'utilise un logiciel de jeu d'orgue pour faire fonctionner mon logiciel de jeu d'orgue !
Yep, mais t'as pu te concentrer sur ton système sans te prendre la tête avec le dmx, donc bien joué. Maintenand, faut tordre le coup au dmx
Pour dresser un petit bilan de mon travail (je ne suis pas sur mon ordi perso et ne peux donc pas vous transmettre ni patch ni screenshots) je suis parvenu à créer un registre qui contient les mémoires. un registre x2 dans lequel est stockée la mémoire en préparation et d'un registre x1 qui restitue un etat (composé d'un ensemble de valeurs). Je peux basculer d'un état à un autre (x1 à x2) de manière automatisés (via de curves with points, un pour la montée de x2 et l'autre pour la descente de x1). quand la courbe dont la durée est la plus longue est arrivée à la fin x1 revient avec le contenu de la mémoire précédemment chargé en x2 et x2 retourne à 0 et le contenu de la mémoire suivante est chargé.
c'est du double buffering en gros alors ? faudra une page wiki ou une video car avec ton premier patch, je suis pas arriver à capter le fonctionnement de tout ces buffer, mais je pense que pour un gars du metier, ca doit être évident. En tout cas, ca m'a l'air pas mal du tout cette affaire.
il me reste à trouver une solution pour pouvoir faire un retour à la mémoire précédente (go back), une pause en cours de transfert et en enchainement de la mémoire suivante en cours de transfert (hum pas simple).
ben ca va, t'es presque rendu mais sans avoir capté le fonctionnement général et sans le patch sous les yeux, peu pas t'aider là
à terme je souhaiterais utiliser une partie des valeurs de la gille non pas pour contrôler seulement de la lumière mais aussi pour piloter un logiciel de diffusion vidéo (via osc) puisque il n'existe pour le moment quasiment pas d'objet gèrent la vidéo dans usine (et ça c'est bien dommage).
OSC, DMX, même combat, t'auras quelques adaptations a faire, mais c'est kif kif.
pour la video dans usine, autant le moteur d'usine pourrai à priori le faire, autant c'est un domaine à par entière. Je sais pas si c'est réaliste de vouloir traiter le son et la vidéo sur la même machine, et puis faut coder tout ça, c'est une montagne de taf :rolleyes: ya déjà des très bon soft pour ça qui demande qu'a manger du osc (comme vvvv ou isadora)
Statistics: Posted by martignasse — 29 Mar 2011, 10:33
]]>2011-03-29T05:56:19+02:002011-03-29T05:56:19+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18841#p18841ma matrix de sortie contient 120 cellules. elle est configurée en mode fade. J'ai rajouté un multiplicateur *256 pour les valeurs dmx. Pour le moment j'ai testé le système sans utiliser les module enttec mais en envoyant directement la sortie de la matrix via un send byte en udp à un logiciel tierce (schwartzpeter). Celui ci récupère mes 120 valeurs et assure l'interfaçage avec le dmx. Mais c'est un peu idiot car j'utilise un logiciel de jeu d'orgue pour faire fonctionner mon logiciel de jeu d'orgue ! Pour dresser un petit bilan de mon travail (je ne suis pas sur mon ordi perso et ne peux donc pas vous transmettre ni patch ni screenshots) je suis parvenu à créer un registre qui contient les mémoires. un registre x2 dans lequel est stockée la mémoire en préparation et d'un registre x1 qui restitue un etat (composé d'un ensemble de valeurs). Je peux basculer d'un état à un autre (x1 à x2) de manière automatisés (via de curves with points, un pour la montée de x2 et l'autre pour la descente de x1). quand la courbe dont la durée est la plus longue est arrivée à la fin x1 revient avec le contenu de la mémoire précédemment chargé en x2 et x2 retourne à 0 et le contenu de la mémoire suivante est chargé. il me reste à trouver une solution pour pouvoir faire un retour à la mémoire précédente (go back), une pause en cours de transfert et en enchainement de la mémoire suivante en cours de transfert (hum pas simple). à terme je souhaiterais utiliser une partie des valeurs de la gille non pas pour contrôler seulement de la lumière mais aussi pour piloter un logiciel de diffusion vidéo (via osc) puisque il n'existe pour le moment quasiment pas d'objet gèrent la vidéo dans usine (et ça c'est bien dommage).
Statistics: Posted by joffo78 — 29 Mar 2011, 05:56
Effectivement, un module = un canal. Par contre tu peux avoir plusieurs instances du module pour gérer plusieurs canaux DMX. D'après ce que j'ai compris de ton patch, une cellule de la matrix correspond à un canal DMX, non ?
Croyez vous qu'il est possible grâce au script unpack array d'envoyer les valeurs les unes après les autres sachant qu'elles sont susceptibles de bouger toutes en même temps ?
Les 'valeurs qui bougent toutes en même temps' sont censé aller vers des canaux DMX différents, non ?
Comment est organisé ton mappage DMX par rapport à ta matrix de sortie ?
A priori, il faudra que tu split les données de ta matrix en fonction des différents canaux DMX vers lesquels tu veux les envoyer, ensuite tu injecte chaque valeur dans un module DMX.
Statistics: Posted by martignasse — 28 Mar 2011, 23:47
]]>2011-03-28T18:36:22+02:002011-03-28T18:36:22+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18835#p18835 teste tel quel de tt facons, ça peut marcher direct.
]]>2011-03-28T17:25:06+02:002011-03-28T17:25:06+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18833#p18833je souhaite envoyer l'ensemble des valeurs de mon tableau au magnifique module de levraibernardo qui permet de communiquer des valeurs dmx via le module enttec. A priori le module de gère qu'un canal à la fois. Croyez vous qu'il est possible grâce au script unpack array d'envoyer les valeurs les unes après les autres sachant qu'elles sont susceptibles de bouger toutes en même temps ?
Statistics: Posted by joffo78 — 28 Mar 2011, 17:25
]]>2011-03-28T17:08:32+02:002011-03-28T17:08:32+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18832#p18832Statistics: Posted by joffo78 — 28 Mar 2011, 17:08
Bonjour et merci pour cette correction de script. A présent comment puis je rajouter 1 à mon numero de cellule pour aller de 1à 120 au lieu de 0 à 119 ? Merci
Statistics: Posted by joffo78 — 28 Mar 2011, 09:51
]]>2011-03-16T12:19:03+02:002011-03-16T12:19:03+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18700#p18700l'ideal serait de pouvoir manipuler plusieurs cellules. Dans mon cas de figure le mode draw ne me servira pas. En tout cas merci de votre aide j'essaie d'avancer un peu et je reviens à la charge.
Statistics: Posted by joffo78 — 16 Mar 2011, 11:19
]]>2011-03-16T11:51:38+02:002011-03-16T11:51:38+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18699#p18699 bien vu martin.
c'est une bonne methode que martin decrit; decomposer les procedés voulus, sorte de synopsis, puis essayer de les convertir en langage script.
au pire si tu as un probleme avec le draw, (mais qui je pense est resolu par le cablage de martin), tu peu rajouter un stop, qui va stoper ce qui arrive en IN de matrix, commandé par le mouse down de matrix, comme ça ca fighte pas quand t'essaye de mettre les valeurs. Teste cela mais ca me parait vachement plus rapide que taper au clavier..
]]>2011-03-16T11:15:56+02:002011-03-16T11:15:56+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18698#p18698 bon, j'ai jeté un premier coup d'œil vite fait (pas trop le temps là), ca a l'air ambitieux comme projet, mais bon, t'as déjà une bonne base
première série, pour aller à l'essentiel :
1°)
Not enough actual parameters Line 30 : SL1.Strings:= 'cell_nb:' + IntToStr + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i)))
petite erreur de la part de 23fx23 (il l'a fait de tête je suis sur ) ca devrait être :
note les parenthèses au lieu des crochets pour 'cell_nb:' + IntToStr(i).
ensuite, y a moyen de mettre les infos que tu veux, c'est pas vraiment le problème, normal que tu capte pas au début, mais on va t'aider et ca viendrat
Mais la vrai limitation de ce système, c'est que tu ne pourras pas afficher le texte sur plusieurs lignes dans la cellule, faudrait que je vois si je peux rajouter ca au niveau du module matrix.
Je n'arrive pas à comprendre encore comment cela peut être plus efficace que le patch
ben pour simplifier, disons que c'est plus efficace parce que c'est pré-compilé (pré-digéré si tu préfère) et que usine a plus qu'a faire le boulot, alors que pour les patch, il doit les réinterpréter constamment et ca prend du temps. en plus, c'est beaucoup plus simple et puissant de traiter des séries, liste, array par script, par patch, on est vite limité.
dans un premier temps, pour t'aider a aborder la logique des script, essai de décomposer ce que tu veux faire en langage parlé et étapes simple, sans tenir compte du langage script. pour reprendre l'équivalent de la ligne de code au dessus, ca donne :
CODE:
cell caption est un text composé de : -le terme 'cell_nb:' -suivi de l'index de la cellule -suivi du terme 'val:' -suivi de la valeur de la céllule
toi, tu voudrais plutôt un truc comme ca ?
CODE:
cell caption est un text composé de : -le numero de colonne -suivi d'un point -suivi du numéro de ligne -suivi d'un deux points -suivi de la valeur de la céllule
déja, ca te permet d'avancer au niveau logique de se que tu veux faire sans être embrouillé pas la syntaxe du script, et puis si tu nous donne un truc comme ca, c'est royal, on le code en deux secondes et toi tu peux comprendre l'équivalent en script.
a noter que ca marche pour tout, pas seulement pour décrire une chaine de caractère. et ca marche aussi pour faire des patch, subpatch, ca aide a garder un patch logique et cohérent (voir juste en dessous )
2°)
la fonction draw value fonctionne mal sur mon patch
normal, car ta matrice est complètement commandé par l''array in' connecté sur 'cell in' (y a pas de 'pass if change'). de plus, le fait d'avoir deux trucs branché sur 'cell in' est pas logique et un nid a embrouilles, il faut que tu traite le 'array in' a un autre niveau, comme ca : c'est plus 'lisible' non et en plus, ca résout ton soucis
3°) sinon, deux questions à se poser concernant la saisie clavier : -tu est obliger de selectionner un champ text pour saisir dedans, donc des manips à la souris en plus du clavier. -plus le fait d'avoir à interpréter la ligne de commande que tu tape, ca peux devenir vite compliquer.
donc si le 'draw cell value' te convient et est assé ergonomique, je te conseil de partir la dessus dans un premier temps, la fonction saisie pourras toujours être rajouté plus tard (pour te conformer au usages du métier) mais devient moins prioritaire.
sinon, quoi d'autre...ha oui, en testant ton patch, je suis pas trop arrivé a enchainer de nouvelles memoires que j'ai sauvegardé, je les vois bien defiler dans buffer, mais x1, x2 et output n'évolu pas ?
bon, j'arrête là, je pense que tu a du grain à moudre pour l'instant
a+
Statistics: Posted by martignasse — 16 Mar 2011, 10:15
]]>2011-03-16T08:12:22+02:002011-03-16T08:12:22+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18694#p18694quand je remplace les ligne et que je re compile le script il me dit cela : Not enough actual parameters Line 30 : SL1.Strings:= 'cell_nb:' + IntToStr + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i)))
Statistics: Posted by joffo78 — 16 Mar 2011, 07:12
]]>2011-03-16T08:09:38+02:002011-03-16T08:09:38+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18693#p18693(placer la matrice en draw mode,mettre en fade et essayer de changer la valeur des cellules avec cette methode).
Statistics: Posted by joffo78 — 16 Mar 2011, 07:09
]]>2011-03-16T08:05:56+02:002011-03-16T08:05:56+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18692#p18692Merci pour tes conseils. Effectivement le script m'intéresse de plus en plus . J'ai essayé de suivre la page wiki et je comprends le système, le principe mais je bloc un peu pour commencer à en élaborer (ta proposition de remplacer SL1.strings:= IntToStr(trunc(getDataArrayValue(ArrayIn,i))) par SL1.Strings:= 'cell_nb:' + IntToStr + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i))); ne me parle pas). Je n'arrive pas à comprendre encore comment cela peut être plus efficace que le patch. A vrai dire j'attends avec impatience un workshop qui aborderait ce sujet. Etant donné mon emploi du temps j'espère que je pourrais y assister. Pour la saisi des valeurs il s'agit d'une vraie saisie au clavier. Je suis parti de la logique des jeux d'orgues traditionnels. la syntaxe est rédigé sur le clavier et il me semble que c'est la plus rapide. si par exemple je veux mettre 5 cellules à 0.23 je n'ai qu'à écrire par exemple 1+12+16+24+25+23/. Sur les jeux d'orgue ont dispose aussi d'un "trhu" qui permet de saisir la valeur de cellules qui se suivent du genre 1+45t(thru) sélectionne les 45 premières cellules , 23/ placent leur valeur à 0.23. Mais bon je vai tester ta méthode draw elle m'intéresse bien
Statistics: Posted by joffo78 — 16 Mar 2011, 07:05
]]>2011-03-16T03:35:56+02:002011-03-16T03:35:56+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18690#p18690faut que tu te mettes au script, tout ce qui est relatif a matrix est souvent beaucoup plus compliqué/ impossible par patch. c'est souvent lié a des fonctions répetitives, d' operations de texte,. genre voir le N° de telle cellule + sa valeur en patch c chaud, en langage script c tout con une fois que ta les bases. Au debut ca parait chinois, mais c assez simple une fois que t'as capté. genre sur celui que tu as deja tu peu facilement modifier:
au lieu de SL1.strings:= IntToStr(trunc(getDataArrayValue(ArrayIn,i))); tu mets SL1.Strings:= 'cell_nb:' + IntToStr + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i)));
sinon g pas capté pour le reglage des valeurs, tu veux taper ça au clavier physique ou clavier virtuel sur la matrice? Perso pour allez vite et sans se prendre la tete, je basculerai la matrice en mode draw, avec un big fader pour controler la draw value. comme ca tu regle le big fader sur une valeur et bam ta juste a cliquer sur les cellules une a une, tu peux meme dessiner une ligne pour faire des purs effets de rampes progressives, tout ca super vite fait. si ya que 127 valeurs, un big fader c rapide et precis.
]]>2011-03-16T01:24:29+02:002011-03-16T01:24:29+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18689#p18689du coup vous devriez mieux comprendre de quoi je parle: testez en faisant go: les mémoires de matrice s'enchainent. modifiez le contenu de x1 et "storez" votre mémoire corrigées....
Statistics: Posted by joffo78 — 16 Mar 2011, 00:24
]]>2011-03-16T00:43:11+02:002011-03-16T00:43:11+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18686#p18686Statistics: Posted by joffo78 — 15 Mar 2011, 23:43
]]>BrainModularBrainModular Users Forum2011-04-01T12:41:14+02:00https://brainmodular.com/forums/app.php/feed/topic/27862011-04-01T12:41:14+02:002011-04-01T12:41:14+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18894#p18894Autre soucis : Si je passe les entrées en array, j'ai des doutes quant à la compatibilité entre les deux types de modules. (on va très certainement avoir des conflits violents sur les accès à l'interface si les deux modules sont chargés dans un même patch). A voir... (mais quoiqu'il en soit, ce ne sera pas pour tout de suite...)
Statistics: Posted by LevraiBernardo — 01 Apr 2011, 12:41
]]>2011-04-01T09:56:43+02:002011-04-01T09:56:43+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18892#p18892Est ce compliqué pour toi de faire une entrée array sur ton module ? Eventuellement pourquoi pas y intégrer de base un shift array qui décalerait les valeurs d'un pas de l'index pour démarrer de 1 et non de 0 ?
Statistics: Posted by joffo78 — 01 Apr 2011, 09:56
]]>2011-04-01T09:19:16+02:002011-04-01T09:19:16+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18890#p18890L'intérêt du patch polyphonique, c'est que si tu changes ton patch initial, cela modifie automatiquement le patch pour toutes les entrées/sorties. En général, pour le DMX, on utilise pas mal de fois le même type de traitement pour plusieurs circuits (ce qui ne signifie pas les mêmes valeurs pour tous les circuits...). La polyphonie étanty limitée à 32 instances, tu crées ainsi un patch unique pour 32 circuits DMX.. Après, ça se gère de la même manière qu'un patch monophonique. (je t'encourage vivement à jeter un oeil au manuel pour éclaircir ce point).
Statistics: Posted by LevraiBernardo — 01 Apr 2011, 09:19
]]>2011-03-31T23:09:14+02:002011-03-31T23:09:14+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18885#p18885Comment ton module peut savoir à quel canal je parle ? Est ce que le contenu d'un array est perçu comme les numéros de circuits ?
Statistics: Posted by joffo78 — 31 Mar 2011, 23:09
]]>2011-03-31T08:59:51+02:002011-03-31T08:59:51+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18874#p18874Pour répondre à ta question, non, ne patche pas le 1 en 512 (ni 120) dans le module. Si tu laisses ton patch à plat, le module n'enverra du message DMX que sur les canaux sollicités.
Statistics: Posted by LevraiBernardo — 31 Mar 2011, 08:59
]]>2011-03-29T19:07:25+02:002011-03-29T19:07:25+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18858#p18858J'ai essayé le mode poly avec ton module et ça à planté du coup je n'ai pas insisté. Je n'est pas bien saisi le principe: je mets la sortie de ma matrix (cells out) sur l'entrée value de ton module et je patch le 1 en 512 (ou 120) et le module se charge du reste ?
Statistics: Posted by joffo78 — 29 Mar 2011, 19:07
]]>2011-03-29T18:53:45+02:002011-03-29T18:53:45+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18857#p18857bon, je tombe un peu par hasard sur le thread. Pour répondre rapidement, oui je suis un peu débordé mais ça va encore. Pour le reste, le nombre de canaux utilisés est géré par le module : Il regarde quel est le plus grand canal sélectionné dans Usine, et il n'envoie du message DMX que du canal 1 à ce canal. (on est obligé de commencer au 1). Mais attention, c'est le plus grand utilisé après passage par le patch. C'est à dire que si vous ne mettez qu'un module sur le canal1, à priori, du message DMX ne sera envoyé que sur ce canal. Mais si ce canal est envoyé en 512 par le patch, alors tous les messages DMX seront envoyés. Mais ça ne devrait de toute façon pas avoir une incidence énorme sur la consommation CPU. En ce qui concerne un patch de 8 à répliquer, oui c'est effectivement ce que je faisais aussi. Mais vous avez essayé avec la piolyphonie ? Ca devrait marcher, non ?
Statistics: Posted by LevraiBernardo — 29 Mar 2011, 18:53
OSC, DMX, même combat, t'auras quelques adaptations a faire, mais c'est kif kif.
pour la video dans usine, autant le moteur d'usine pourrai à priori le faire, autant c'est un domaine à par entière. Je sais pas si c'est réaliste de vouloir traiter le son et la vidéo sur la même machine, et puis faut coder tout ça, c'est une montagne de taf roll ya déjà des très bon soft pour ça qui demande qu'a manger du osc (comme vvvv ou isadora)
Je suis d'accord sur le principe mais cela nécessite l'apprentissage global d'un nouveau soft modulaire et ça je n'y tiens pas trop compte tenu du taf que j'ai déjà à faire avec usine.
Je sais pas si c'est réaliste de vouloir traiter le son et la vidéo sur la même machine
Et alors, qu'est ce qui m'empêche d'acquérir une seconde license d'usine et de la faire tourner sur un autre ordi ?
c'est du double buffering en gros alors ?
C'est quoi le double buffering ?
faudra une page wiki ou une video car avec ton premier patch, je suis pas arriver à capter le fonctionnement de tout ces buffer, mais je pense que pour un gars du metier, ca doit être évident.
En effet c'est bien ce qu'il me semblait. Du coup si je veux gérer 120 circuits dmx il me faudra 120 instances du module ! ma matrix de sortie contient 120 cellules. elle est configurée en mode fade. J'ai rajouté un multiplicateur *256 pour les valeurs dmx.
c'est clair que ca va être fastidieux...fait un subpatch de 8 avec tout ce qu'il faut pour assigner les channels, puis duplique, ça te feras 15 banques de 8. Ca sera peut être un peu lourd aussi, 120 instances du module dmx, je sais pas.
C'est peu être l'occaz de demander a LeVraiBernardo un update de son module (bien qu'il doive être débordé ) Qu'on puisse choisir le nombre de canaux à gérer quand on pose le module (faisable avec le query system du SDK), l'entrée Value deviendrai une array et hop plus de tringlerie fastidieuse
Pour le moment j'ai testé le système sans utiliser les module enttec mais en envoyant directement la sortie de la matrix via un send byte en udp à un logiciel tierce (schwartzpeter). Celui ci récupère mes 120 valeurs et assure l'interfaçage avec le dmx. Mais c'est un peu idiot car j'utilise un logiciel de jeu d'orgue pour faire fonctionner mon logiciel de jeu d'orgue !
Yep, mais t'as pu te concentrer sur ton système sans te prendre la tête avec le dmx, donc bien joué. Maintenand, faut tordre le coup au dmx
Pour dresser un petit bilan de mon travail (je ne suis pas sur mon ordi perso et ne peux donc pas vous transmettre ni patch ni screenshots) je suis parvenu à créer un registre qui contient les mémoires. un registre x2 dans lequel est stockée la mémoire en préparation et d'un registre x1 qui restitue un etat (composé d'un ensemble de valeurs). Je peux basculer d'un état à un autre (x1 à x2) de manière automatisés (via de curves with points, un pour la montée de x2 et l'autre pour la descente de x1). quand la courbe dont la durée est la plus longue est arrivée à la fin x1 revient avec le contenu de la mémoire précédemment chargé en x2 et x2 retourne à 0 et le contenu de la mémoire suivante est chargé.
c'est du double buffering en gros alors ? faudra une page wiki ou une video car avec ton premier patch, je suis pas arriver à capter le fonctionnement de tout ces buffer, mais je pense que pour un gars du metier, ca doit être évident. En tout cas, ca m'a l'air pas mal du tout cette affaire.
il me reste à trouver une solution pour pouvoir faire un retour à la mémoire précédente (go back), une pause en cours de transfert et en enchainement de la mémoire suivante en cours de transfert (hum pas simple).
ben ca va, t'es presque rendu mais sans avoir capté le fonctionnement général et sans le patch sous les yeux, peu pas t'aider là
à terme je souhaiterais utiliser une partie des valeurs de la gille non pas pour contrôler seulement de la lumière mais aussi pour piloter un logiciel de diffusion vidéo (via osc) puisque il n'existe pour le moment quasiment pas d'objet gèrent la vidéo dans usine (et ça c'est bien dommage).
OSC, DMX, même combat, t'auras quelques adaptations a faire, mais c'est kif kif.
pour la video dans usine, autant le moteur d'usine pourrai à priori le faire, autant c'est un domaine à par entière. Je sais pas si c'est réaliste de vouloir traiter le son et la vidéo sur la même machine, et puis faut coder tout ça, c'est une montagne de taf :rolleyes: ya déjà des très bon soft pour ça qui demande qu'a manger du osc (comme vvvv ou isadora)
Statistics: Posted by martignasse — 29 Mar 2011, 10:33
]]>2011-03-29T05:56:19+02:002011-03-29T05:56:19+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18841#p18841ma matrix de sortie contient 120 cellules. elle est configurée en mode fade. J'ai rajouté un multiplicateur *256 pour les valeurs dmx. Pour le moment j'ai testé le système sans utiliser les module enttec mais en envoyant directement la sortie de la matrix via un send byte en udp à un logiciel tierce (schwartzpeter). Celui ci récupère mes 120 valeurs et assure l'interfaçage avec le dmx. Mais c'est un peu idiot car j'utilise un logiciel de jeu d'orgue pour faire fonctionner mon logiciel de jeu d'orgue ! Pour dresser un petit bilan de mon travail (je ne suis pas sur mon ordi perso et ne peux donc pas vous transmettre ni patch ni screenshots) je suis parvenu à créer un registre qui contient les mémoires. un registre x2 dans lequel est stockée la mémoire en préparation et d'un registre x1 qui restitue un etat (composé d'un ensemble de valeurs). Je peux basculer d'un état à un autre (x1 à x2) de manière automatisés (via de curves with points, un pour la montée de x2 et l'autre pour la descente de x1). quand la courbe dont la durée est la plus longue est arrivée à la fin x1 revient avec le contenu de la mémoire précédemment chargé en x2 et x2 retourne à 0 et le contenu de la mémoire suivante est chargé. il me reste à trouver une solution pour pouvoir faire un retour à la mémoire précédente (go back), une pause en cours de transfert et en enchainement de la mémoire suivante en cours de transfert (hum pas simple). à terme je souhaiterais utiliser une partie des valeurs de la gille non pas pour contrôler seulement de la lumière mais aussi pour piloter un logiciel de diffusion vidéo (via osc) puisque il n'existe pour le moment quasiment pas d'objet gèrent la vidéo dans usine (et ça c'est bien dommage).
Statistics: Posted by joffo78 — 29 Mar 2011, 05:56
Effectivement, un module = un canal. Par contre tu peux avoir plusieurs instances du module pour gérer plusieurs canaux DMX. D'après ce que j'ai compris de ton patch, une cellule de la matrix correspond à un canal DMX, non ?
Croyez vous qu'il est possible grâce au script unpack array d'envoyer les valeurs les unes après les autres sachant qu'elles sont susceptibles de bouger toutes en même temps ?
Les 'valeurs qui bougent toutes en même temps' sont censé aller vers des canaux DMX différents, non ?
Comment est organisé ton mappage DMX par rapport à ta matrix de sortie ?
A priori, il faudra que tu split les données de ta matrix en fonction des différents canaux DMX vers lesquels tu veux les envoyer, ensuite tu injecte chaque valeur dans un module DMX.
Statistics: Posted by martignasse — 28 Mar 2011, 23:47
]]>2011-03-28T18:36:22+02:002011-03-28T18:36:22+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18835#p18835 teste tel quel de tt facons, ça peut marcher direct.
]]>2011-03-28T17:25:06+02:002011-03-28T17:25:06+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18833#p18833je souhaite envoyer l'ensemble des valeurs de mon tableau au magnifique module de levraibernardo qui permet de communiquer des valeurs dmx via le module enttec. A priori le module de gère qu'un canal à la fois. Croyez vous qu'il est possible grâce au script unpack array d'envoyer les valeurs les unes après les autres sachant qu'elles sont susceptibles de bouger toutes en même temps ?
Statistics: Posted by joffo78 — 28 Mar 2011, 17:25
]]>2011-03-28T17:08:32+02:002011-03-28T17:08:32+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18832#p18832Statistics: Posted by joffo78 — 28 Mar 2011, 17:08
]]>2011-03-28T12:24:21+02:002011-03-28T12:24:21+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18831#p18831:= 'cell_nb:' + IntToStr(i+1) + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i)));
Bonjour et merci pour cette correction de script. A présent comment puis je rajouter 1 à mon numero de cellule pour aller de 1à 120 au lieu de 0 à 119 ? Merci
Statistics: Posted by joffo78 — 28 Mar 2011, 09:51
]]>2011-03-16T12:19:03+02:002011-03-16T12:19:03+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18700#p18700l'ideal serait de pouvoir manipuler plusieurs cellules. Dans mon cas de figure le mode draw ne me servira pas. En tout cas merci de votre aide j'essaie d'avancer un peu et je reviens à la charge.
Statistics: Posted by joffo78 — 16 Mar 2011, 11:19
]]>2011-03-16T11:51:38+02:002011-03-16T11:51:38+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18699#p18699 bien vu martin.
c'est une bonne methode que martin decrit; decomposer les procedés voulus, sorte de synopsis, puis essayer de les convertir en langage script.
au pire si tu as un probleme avec le draw, (mais qui je pense est resolu par le cablage de martin), tu peu rajouter un stop, qui va stoper ce qui arrive en IN de matrix, commandé par le mouse down de matrix, comme ça ca fighte pas quand t'essaye de mettre les valeurs. Teste cela mais ca me parait vachement plus rapide que taper au clavier..
]]>2011-03-16T11:15:56+02:002011-03-16T11:15:56+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18698#p18698 bon, j'ai jeté un premier coup d'œil vite fait (pas trop le temps là), ca a l'air ambitieux comme projet, mais bon, t'as déjà une bonne base
première série, pour aller à l'essentiel :
1°)
Not enough actual parameters Line 30 : SL1.Strings:= 'cell_nb:' + IntToStr + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i)))
petite erreur de la part de 23fx23 (il l'a fait de tête je suis sur ) ca devrait être :
note les parenthèses au lieu des crochets pour 'cell_nb:' + IntToStr(i).
ensuite, y a moyen de mettre les infos que tu veux, c'est pas vraiment le problème, normal que tu capte pas au début, mais on va t'aider et ca viendrat
Mais la vrai limitation de ce système, c'est que tu ne pourras pas afficher le texte sur plusieurs lignes dans la cellule, faudrait que je vois si je peux rajouter ca au niveau du module matrix.
Je n'arrive pas à comprendre encore comment cela peut être plus efficace que le patch
ben pour simplifier, disons que c'est plus efficace parce que c'est pré-compilé (pré-digéré si tu préfère) et que usine a plus qu'a faire le boulot, alors que pour les patch, il doit les réinterpréter constamment et ca prend du temps. en plus, c'est beaucoup plus simple et puissant de traiter des séries, liste, array par script, par patch, on est vite limité.
dans un premier temps, pour t'aider a aborder la logique des script, essai de décomposer ce que tu veux faire en langage parlé et étapes simple, sans tenir compte du langage script. pour reprendre l'équivalent de la ligne de code au dessus, ca donne :
CODE:
cell caption est un text composé de : -le terme 'cell_nb:' -suivi de l'index de la cellule -suivi du terme 'val:' -suivi de la valeur de la céllule
toi, tu voudrais plutôt un truc comme ca ?
CODE:
cell caption est un text composé de : -le numero de colonne -suivi d'un point -suivi du numéro de ligne -suivi d'un deux points -suivi de la valeur de la céllule
déja, ca te permet d'avancer au niveau logique de se que tu veux faire sans être embrouillé pas la syntaxe du script, et puis si tu nous donne un truc comme ca, c'est royal, on le code en deux secondes et toi tu peux comprendre l'équivalent en script.
a noter que ca marche pour tout, pas seulement pour décrire une chaine de caractère. et ca marche aussi pour faire des patch, subpatch, ca aide a garder un patch logique et cohérent (voir juste en dessous )
2°)
la fonction draw value fonctionne mal sur mon patch
normal, car ta matrice est complètement commandé par l''array in' connecté sur 'cell in' (y a pas de 'pass if change'). de plus, le fait d'avoir deux trucs branché sur 'cell in' est pas logique et un nid a embrouilles, il faut que tu traite le 'array in' a un autre niveau, comme ca : c'est plus 'lisible' non et en plus, ca résout ton soucis
3°) sinon, deux questions à se poser concernant la saisie clavier : -tu est obliger de selectionner un champ text pour saisir dedans, donc des manips à la souris en plus du clavier. -plus le fait d'avoir à interpréter la ligne de commande que tu tape, ca peux devenir vite compliquer.
donc si le 'draw cell value' te convient et est assé ergonomique, je te conseil de partir la dessus dans un premier temps, la fonction saisie pourras toujours être rajouté plus tard (pour te conformer au usages du métier) mais devient moins prioritaire.
sinon, quoi d'autre...ha oui, en testant ton patch, je suis pas trop arrivé a enchainer de nouvelles memoires que j'ai sauvegardé, je les vois bien defiler dans buffer, mais x1, x2 et output n'évolu pas ?
bon, j'arrête là, je pense que tu a du grain à moudre pour l'instant
a+
Statistics: Posted by martignasse — 16 Mar 2011, 10:15
]]>2011-03-16T08:12:22+02:002011-03-16T08:12:22+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18694#p18694quand je remplace les ligne et que je re compile le script il me dit cela : Not enough actual parameters Line 30 : SL1.Strings:= 'cell_nb:' + IntToStr + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i)))
Statistics: Posted by joffo78 — 16 Mar 2011, 07:12
]]>2011-03-16T08:09:38+02:002011-03-16T08:09:38+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18693#p18693(placer la matrice en draw mode,mettre en fade et essayer de changer la valeur des cellules avec cette methode).
Statistics: Posted by joffo78 — 16 Mar 2011, 07:09
]]>2011-03-16T08:05:56+02:002011-03-16T08:05:56+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18692#p18692Merci pour tes conseils. Effectivement le script m'intéresse de plus en plus . J'ai essayé de suivre la page wiki et je comprends le système, le principe mais je bloc un peu pour commencer à en élaborer (ta proposition de remplacer SL1.strings:= IntToStr(trunc(getDataArrayValue(ArrayIn,i))) par SL1.Strings:= 'cell_nb:' + IntToStr + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i))); ne me parle pas). Je n'arrive pas à comprendre encore comment cela peut être plus efficace que le patch. A vrai dire j'attends avec impatience un workshop qui aborderait ce sujet. Etant donné mon emploi du temps j'espère que je pourrais y assister. Pour la saisi des valeurs il s'agit d'une vraie saisie au clavier. Je suis parti de la logique des jeux d'orgues traditionnels. la syntaxe est rédigé sur le clavier et il me semble que c'est la plus rapide. si par exemple je veux mettre 5 cellules à 0.23 je n'ai qu'à écrire par exemple 1+12+16+24+25+23/. Sur les jeux d'orgue ont dispose aussi d'un "trhu" qui permet de saisir la valeur de cellules qui se suivent du genre 1+45t(thru) sélectionne les 45 premières cellules , 23/ placent leur valeur à 0.23. Mais bon je vai tester ta méthode draw elle m'intéresse bien
Statistics: Posted by joffo78 — 16 Mar 2011, 07:05
]]>2011-03-16T03:35:56+02:002011-03-16T03:35:56+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18690#p18690faut que tu te mettes au script, tout ce qui est relatif a matrix est souvent beaucoup plus compliqué/ impossible par patch. c'est souvent lié a des fonctions répetitives, d' operations de texte,. genre voir le N° de telle cellule + sa valeur en patch c chaud, en langage script c tout con une fois que ta les bases. Au debut ca parait chinois, mais c assez simple une fois que t'as capté. genre sur celui que tu as deja tu peu facilement modifier:
au lieu de SL1.strings:= IntToStr(trunc(getDataArrayValue(ArrayIn,i))); tu mets SL1.Strings:= 'cell_nb:' + IntToStr + 'val:' + IntToStr(trunc(getDataArrayValue(ArrayIn,i)));
sinon g pas capté pour le reglage des valeurs, tu veux taper ça au clavier physique ou clavier virtuel sur la matrice? Perso pour allez vite et sans se prendre la tete, je basculerai la matrice en mode draw, avec un big fader pour controler la draw value. comme ca tu regle le big fader sur une valeur et bam ta juste a cliquer sur les cellules une a une, tu peux meme dessiner une ligne pour faire des purs effets de rampes progressives, tout ca super vite fait. si ya que 127 valeurs, un big fader c rapide et precis.
]]>2011-03-16T01:24:29+02:002011-03-16T01:24:29+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18689#p18689du coup vous devriez mieux comprendre de quoi je parle: testez en faisant go: les mémoires de matrice s'enchainent. modifiez le contenu de x1 et "storez" votre mémoire corrigées....
Statistics: Posted by joffo78 — 16 Mar 2011, 00:24
]]>2011-03-16T00:43:11+02:002011-03-16T00:43:11+02:00https://brainmodular.com/forums/viewtopic.php?t=2786&p=18686#p18686Statistics: Posted by joffo78 — 15 Mar 2011, 23:43
]]>