Giter Site home page Giter Site logo

n.imp's People

Contributors

brinoausrino avatar miligaricoits avatar nperi avatar werkstattdd avatar

Watchers

 avatar  avatar

n.imp's Issues

Des-selección de parámetros controlados por audio

No encontré ninguna opción para des-seleccionar un parámetro que ya está reaccionando a audio.

Tal vez una buena opción sería listar los parámetros que responden a audio dentro del nodo del audio con posibilidad de eliminarlos.

Límite a scale de nodos

Me ha pasado varias veces que un nodo me queda demasiado grande o demasiado pequeño y desaparece de la interfaz.

Habría que poner un límite al scale que puede hacer el usuario al arrastrar un vértice del nodo.

Encapsulamiento de nodos acepta conexión entrante.

Hice la prueba de encapsular varios nodos, y noté que si los encapsulo puedo hacer una conexión de entrada al nodo encapsulado. Esto creo que no debería poder hacerse.

Van imágenes de antes de encapsular y después de encapsular y conectar una entrada.

screen shot 2016-03-19 at 6 42 38 pm
screen shot 2016-03-19 at 6 43 08 pm
screen shot 2016-03-19 at 6 43 21 pm

Sensibilidad en scale de nodos

El hacer scale de nodos noto que el tamaño del nodo no sigue el puntero.

En cambio, crece mucho más rápido de lo que el puntero se mueve.

Recomiendo que vean el código de ofxComposer para ver cómo mueve los nodos siempre siguiendo el puntero del mouse sin importar el zoom.

Va video.
NIMP_GUISensibilidadScaleNodos.mov.zip

Nodo Video e Imágenes

En la versión anterior de NIMP había un tipo de nodo llamado ImageInputList (ImageInputList.h y .cpp).

Si bien en un principio se había implementado un nodo exclusivo para video (el VideoPlayerMac), éste se dejó de usar porque usaba un player por nodo y generaba un consumo excesivo de CPU.

Entonces, para controlar mejor la cantidad de players simultáneos, se creó la entidad VideoPool. VideoPool es un pool de videoplayers a donde los nodos de NIMP solicitan una instacia de un playe cuando lo necesitan.

El nodo ImageInputList sustituyó a VideoPlayerMac porque además de reproducir imágenes (una lista de imágenes) puede también reproducir video.

Si se fijan n el código el nodo ImageInputList soporta reproducir ImageTypes, y entre los ImageTypes está ImageTypeMovie (que termina siendo una imagen).

El nodo ImageInputList soporta reproducir una lista de ImageTypes, qu pueden ser fotos o videos.

Es importante que se use ese nodo y no el VideoPlayerMac, por lo tanto propongo que eliminen el nodo video actual, y dejen sólo el imageinputlist (tal vez cambiándole el nombre a Image and Video en la GUI).

La GUI del nodo ImageInputList tendría que soportar que el usuario cree la lista de elementos a reproducir, y que la pueda editar.

Utilización de flechas teclado en creación de nodo

Sería útil poder utilizar las teclas UP y DOWN durante la creación de un nodo.

Cuando estoy creando un nodo siempre apreto N y las primeras letras del nodo, luego instintivamente Down para ir a seleccionarlo.

Selección de control de parámetros

Esto lo comprobé con los nodos de audio, peor puede extrapolarse a cualquier nodo de control donde la interfaz permita seleccionar los parametros que se desea controlar.

Lo que sucede es que si creo dos nodos de audio puedo editar los parámetros que controlan ambos al mismo tiempo (prendiendo el Edit de ambos nodos).

Esto no debería permitirse, esto implica que si algún nodo está editando sus parámetros, los demás nodos no deben dejar establecer su edición.

Comportamiento de parámetro Sound Saturation

El parámetro Sound Saturation tiene unn par comportamientos extraños:

1- Ví que a medida que aumento el parámetro se apaga la onda. Esto es contra intuitivo, porque el usuario esperaría que al aumentarlo la onda aumente.

2- No pude lograr que la onda se apagara completamente. Me refiero a hacerlo completamente insensible al audio. En el esquema actual, si pongo el nodo al máximo no debería ver que la onda se mueve (sin embargo, sería mejor contemplar lo que dice el punto 1 y hacer que la onda se apague cuando el parámetro está en cero).

Saturación de AudioAnalizer y Audio Input

Es muy probable que NIMP se use en un lugar con música o ruido muy altos.

Actualmente si uno está en un ambiente con mucho ruido, los nodos de audio de NIMP se saturan rápidamente.

En la implementación anterior, NIMP tenía un parámetro para reducir o aumentar en nivel de volumen de la entrada de audio.

Creo que es importante tener lo mismo en la interfaz. Esto podría ponerse en cada nodo.

Zoom sigue activo cuando se presiona el mouse.

Por lo que vi el comportamiento es el siguiente:

  1. Si se hace click y luego se arrastra entonces el comportamiento es el esperado y el zoom no acciona.
  2. Pero si tengo el dedo apoyado en el trackpad, y luego con otro dedo hago click para arrastrar un parámetro o un nodo, entonces ahí el zoom sigue activo.

NIMP abortó ejecución al borrar un nodo y luego intentar unir dos nodos

El error ocurrió al borrar un nodo de Glitch 1, y luego intentar unir un nodo Image Processor con un Simple Mix.

Subo stack trace.
#0 0x0086eadd in ofNode::getGlobalTransformMatrix() const at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworks/3d/ofNode.cpp:304
#1 0x0086eaf6 in ofNode::getGlobalTransformMatrix() const at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworks/3d/ofNode.cpp:304
#2 0x001a8856 in ofxTitleBar::_mousePressed(ofMouseEventArgs&) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/addons/ofxComposer_nimp/src/ofxTitleBar.cpp:98
#3 0x001aa6c9 in ofDelegate<ofxTitleBar, ofMouseEventArgs, false>::notify(void const*, ofMouseEventArgs&) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/apps/NIMPgit/farq2014/../../../libs/openFrameworks/events/ofDelegate.h:124
#4 0x0086bc34 in Poco::PriorityStrategy<ofMouseEventArgs, Poco::AbstractPriorityDelegate >::notify(void const*, ofMouseEventArgs&) [inlined] at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworksCompiled/project/osx/../../../../libs/poco/include/Poco/PriorityStrategy.h:81
#5 0x0086bc0a in Poco::AbstractEvent<ofMouseEventArgs, Poco::PriorityStrategy<ofMouseEventArgs, Poco::AbstractPriorityDelegate >, Poco::AbstractPriorityDelegate, Poco::FastMutex>::notify(void const*, ofMouseEventArgs&) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworksCompiled/project/osx/../../../../libs/poco/include/Poco/AbstractEvent.h:241
#6 0x00867105 in void ofNotifyEvent<ofEvent, ofMouseEventArgs>(ofEvent&, ofMouseEventArgs&) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworksCompiled/project/osx/../../../../libs/openFrameworks/events/ofEventUtils.h:172
#7 0x00866eb9 in ofNotifyMousePressed(int, int, int) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworks/events/ofEvents.cpp:312
#8 0x001438a6 in ofxMultiGLFWWindow::mouse_cb(GLFWwindow*, int, int, int) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/addons/ofxMultiGLFWWindow_nimp/src/ofxMultiGLFWWindow.cpp:1049

screen shot 2016-03-20 at 1 10 38 pm

Edit mode on y off

Si estoy en edit mode OFF (cuando no debería poder modificar nodos) sucede que puedo crear nodos, y que puedo modificar los nodos que creé.

Consulta sobre diseño

Noté que la forma de incluir addons en NIMP a veces implica entrar al addon y modificarlo.

Veo que lo han hecho en casi todos los addons usados.

¿Por qué optaron por hacer esto y no por heredar de las clases que debían modificar?

Problema al al borrar un nodo de audio cuando se está editando sus parámetros controlados

Si se crea un nodo de audio y se comienza a editar los parámetros de otros nodos que controla, y luego con el "editar" prendido el usuario borra el nodo audio, se da una situación extraña en la que los parámetros que uno clickea siguen pintándose de amarillo (como si estuvieran siendo seleccionados para que sean controlados por el nodo audio que dejó de existir).

Es difícil borrar conexiones entre nodos

Un nodo origen puede estar conectado a muchos nodos destin, y actualmente las conexiones entre nodos sólo pueden borrarse todas juntas dando click en el pequeño círculo de salida o llegada de la conexión.

Eso hace que a veces cuando se quiere borrar una sola conexión uno termine borrando muchas que no desea borrar.

Habría que elegir otra dinámica de eliminación de conexiones, tal vez seleccionándolas o atravesándolas con el mouse a modo de "corte".

NIMP abortó ejecución al acceder a la interfaz del nodo Image Video

Lo que hice fue:

1- Arrastrar 2 videos :
NIMP_GUISensibilidadScaleNodos.mov y NIMP_GUIVideoPlayerDesapareceConSwitchH264.mov
Esto creó un nodo Image Video.
2- Hice click en la "i" de ese nuevo nodo.

Va stack trace:
#0 0x0087029d in ofNode::getGlobalTransformMatrix() const at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworks/3d/ofNode.cpp:304
#1 0x008702b6 in ofNode::getGlobalTransformMatrix() const at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworks/3d/ofNode.cpp:304
#2 0x008702b6 in ofNode::getGlobalTransformMatrix() const at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworks/3d/ofNode.cpp:304
#3 0x008702b6 in ofNode::getGlobalTransformMatrix() const at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworks/3d/ofNode.cpp:304
#4 0x001a8d26 in ofxTitleBar::_mousePressed(ofMouseEventArgs&) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/addons/ofxComposer_nimp/src/ofxTitleBar.cpp:98
#5 0x001aab99 in ofDelegate<ofxTitleBar, ofMouseEventArgs, false>::notify(void const*, ofMouseEventArgs&) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/apps/NIMPgit/farq2014/../../../libs/openFrameworks/events/ofDelegate.h:124
#6 0x0086d3f4 in Poco::PriorityStrategy<ofMouseEventArgs, Poco::AbstractPriorityDelegate >::notify(void const*, ofMouseEventArgs&) [inlined] at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/libs/openFrameworksCompiled/project/osx/../../../../libs/poco/include/Poco/PriorityStrategy.h:81

screen shot 2016-03-20 at 4 50 18 pm

Error al conectar un simple mix como entrada de otro simple mix.

Estaba haciendo un patcher que era algo así:

CAM ---> IMG Proc ---> Simple MIx --------> Simple MIX
^ ^
IMG ----> IMGP Proc ------| |
|
VIDEO -----------------------------------------------------|

Y nimp abortó ejecución tirando el siguiente stack trace:

Thread 1Queue : com.apple.main-thread (serial)
#0 0x000d13e9 in MixSimpleBlend::resetSizeBasedOnInput(ofxPatch*) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/apps/NIMPgit/farq2014/src/Mixer/MixSimpleBlend.cpp:230
#1 0x001f6efe in ImageOutput::addInput(ofxPatch*) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/apps/NIMPgit/farq2014/src/ImageOutput.cpp:54
#2 0x001e72be in ofxComposer::connect(int, int, int, bool) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/addons/ofxComposer_nimp/src/ofxComposer.cpp:652
#3 0x001e436b in ofxComposer::_mouseReleased(ofMouseEventArgs&) at /Users/cclark/Documents/Devel/cpp/of_v0.8.4_osx_releaseNIMP/addons/ofxComposer_nimp/src/ofxComposer.cpp:394

screen shot 2016-03-14 at 10 49 41 am

Salir de la creación de un nodo

Cuando se presiona la tecla N para comenzar a crear un nodo no encuentro forma de salir de ese menú si me arrepiento de la creación.

Error al presionar New Patcher

NIMP abortó ejecución una vez que presioné New Patcher.

Lo que hice fue crear un nodo cámara, luego un image processor, luego un audio in, y luego asignar algunos parámetros a audio.

Luego salvé el patcher.

Y por último presioné New Patcher y ahí se disparó el error. Estoy intentando reproducirlo, pero por ahora no pude.

HAP y versión de OpenGL

Estuve revisando el tema de HAP, y no le he encontrado la vuelta aún.

Deberíamos empezar a debatir entre los beneficios de trabajar con esta versión de OpenGL para decidir si vamos a la versión estándar y así poder usar el HAP Player.

Según lo que tengo entendido, esta versión de OpenGL sólo se usa porque necesitamos una nueva ventana para la consola. ¿Esto es correcto?

Si es sólo eso, entonces propongo incorporar la consola a la ventana principal de NIMP, se podría hace una sección de consola colapsable a modo de franja vertical en la parte derecha de la pantalla donde se muestran los mensajes. Y se desplegaría y ocultaría con un botón en la barra de opciones superior o en la lateral. Algo en esta zona:
zona consola

Nodo de VideoPlayer desaparece cuando se acciona un nodo switch

Cuando un camino de procesamiento se apaga, se está apagando el nodo video.

Esto puede no ser un error, pero es inconsistente con lo que pasa con los demás nodos (el resto de los nodos que vi no se apagan).

Acá tenemos que tomar una decisión:
1- Por un lado, está bueno que los nodos se "apaguen", porque aliviana el procesamiento de la máquina y ayuda a mantener el framerate.

2- Por otro lado, si apagamos los nodos no podemos ver cómo se está procesando la imagen resultante de ese camino.

Creo que la mejor solución es un mix de las dos, o sea, darle al usuario la posibilidad de prender o apagar un camino de procesamiento que está switcheado off.

¿Qué les parece?

Es difícil identificar nodos con interfaz cerrada

Si bien en la interfaz de los nodos es posible ponerles un nombre (lo que está bueno), si se cierra la interfaz no es posible identificarlos.

Propongo que muestren el nombre del nodo en el cabezal del nodo aún cuando está cerrado. Justo al lado del texto xrmvi.

F para fullscreen interfiere con la creación de nodo

Si estoy creando un nodo y mientras escribo el nombre del nodo presiono la tecla F, NIMP se vuelve fullscreen.

Se debería apagar la funcionalidad Fullscreen cuando se está editando algo, o mejor aún, hacer que la funcionalidad fullscreen se dispare con F + una tecla modificadora como Control o Command.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.