Durante los últimos meses he estado buscando desarrollar una interfaz multitáctil basada en Kinect para una variedad de sintetizadores de música por software.Consideraciones generales para NUI/interfaz táctil
La estrategia general que he encontrado es crear objetos, ya sea programáticamente o (si es posible) algorítmicamente para representar varios controles del sintetizador suave. Esto debería tener;
- posición X posición
- Y
- Altura
- Anchura
- MIDI canal de salida
- MIDI escalador de datos (convertir coords XY para valores MIDI)
2 estrategias I He considerado para la creación agorítmica son descripción XML y de alguna manera sacar cosas de th th e pantalla (es decir, dado un programa en ejecución, encuentre xycoords de todos los controles). No tengo idea de cómo hacerlo con el segundo, por eso lo expreso en un lenguaje técnico tan específico;). Podría hacer una solución intermedia, como usar clics del mouse en las esquinas de los controles para generar un archivo xml. Otra cosa que podría hacer, que he visto con frecuencia en las aplicaciones flash, es poner el tamaño de la pantalla en una variable y usar las matemáticas para construir todos los objetos de la interfaz en términos de tamaño de la pantalla. Tenga en cuenta que no es estrictamente necesario hacer que los objetos tengan el mismo tamaño que los controles en pantalla, o que representen todos los objetos en pantalla (algunos son solo indicadores, no controles interactivos)
Otras consideraciones;
Dado (por ahora) dos conjuntos de coordenadas X/Y como entrada (manos izquierda y derecha), ¿cuál es mi mejor opción para usarlos? Mi primer instinto es/era crear algún tipo de prueba de enfoque, donde si las coordenadas x/y caen dentro de los límites del objeto de la interfaz ese objeto se activa y luego se vuelve inactivo si quedan fuera de otros límites más pequeños durante un período de tiempo. La solución barata que encontré fue usar la mano izquierda como puntero/selector y la derecha como controlador, pero parece que puedo hacer más. Tengo algunas soluciones de gestos (cadenas de markov ocultas) con las que podría jugar. No es que sea fácil llegar al trabajo, exactamente, pero es algo que podría verme haciendo incentivos suficientes.
tanto, para resumir, el problema es
- representan la interfaz (necesario porque la interfaz por defecto siempre espera la entrada del ratón)
- seleccionar un control
- manipularla usando dos conjuntos de x/y coords (controlador rotativo/continuo) o, en el caso de los interruptores, use preferiblemente un gesto para cambiarlo sin dar/tomar el foco.
Todos los comentarios, especialmente de personas que han trabajado/están trabajando en multitouch io/NUI, son muy apreciados. Los enlaces a proyectos existentes y/o algunos buenos materiales de lectura (libros, sitios, etc.) serían de gran ayuda.
Meta-discusión sobre esta pregunta está sucediendo/ha sucedido: http://meta.stackexchange.com/q/106720/146495 –