teclado precio musical juego electronico completo keyboard midi

keyboard - precio - Usando un teclado de piano como un teclado de computadora



piano virtual pc (30)

¡Apenas aprenda la estenografía!

Está claro de toda la discusión de su parte. No desea reinventar ninguna rueda, desde un punto de vista técnico. Pero una vez que se ha establecido una conexión (lo que esta pregunta es) y está funcionando, todavía tiene la mayor parte del trabajo por delante: tiene que entrenar su cerebro. También tiene que inventar la forma más inteligente y eficiente de hacerlo: un problema de diseño totalmente ajeno a la tecnología de la informática. Usted o cualquiera de nosotros se quedaría corto.

Afortunadamente, el problema ha sido resuelto y resuelto a través de siglos de maduración ...

¡Aprende la estenografía!

Sí, esto te hará retroceder un poco. Pero, ¿cuánto valen cientos de horas de su propio tiempo, al final, un resultado menos favorable? Además, el artículo de Wikipedia de la estenografía dice, ''se parece más a un teclado de piano''.

A menos que, por supuesto, quieras tener un efecto de espectáculo secundario. Tendría que admitir que nunca pensé en esta posibilidad, ¡sería realmente entretenido ver a alguien sacar un texto de un teclado de piano!

Puede comenzar con un teclado USB con touchpad (¿o un dispositivo de puntero sería más ergonómico?), Plover para traducirlo (estoy seguro de que puede configurarse para que las teclas que no tienen letras conserven su funcionalidad, ya que son fundamentales para programación), o siga el hilo del teclado Re: Plover para rodar su propio teclado USB de estenografía o compre un estenotipo .

¡Buena suerte!

Tengo problemas de RSI y he probado 30 teclados de computadora diferentes que me causaron dolor. Tocar el piano no me causa dolor. He tocado el piano durante unos 20 años sin problemas de dolor. Me gustaría saber si hay una forma de capturar MIDI desde un teclado MIDI y generar golpes de teclado. No sé nada sobre MIDI, pero me gustaría recibir orientación sobre cómo convertir esta señal en una pulsación de tecla.


Acerca de MIDI

Usted declaró que "no sabe nada sobre MIDI". La tecnología MIDI es bastante sencilla una vez que la captas, pero puede ser confusa al principio. Uno de los recursos que me ha sido de gran ayuda para comprender los fundamentos de MIDI (que ciertamente son necesarios si desea programar interacciones MIDI), es un libro llamado MIDI para el Technophobe . Es un libro fácil de leer y es muy útil.


Pure Data & Max

En mi experiencia en el desarrollo de multimedia interactiva, he encontrado dos programas muy similares que facilitan la conexión y el mapeo de señales / entradas desde cualquier dispositivo.

Estos son Max para un entorno de Mac y Pure Data para un entorno de PC. Ambos tienen una gran cantidad de documentación en línea y tutoriales de YouTube. El video Max / MSP Tutorial 1 - usando el teclado de su computadora como midikeyboard (estilo ableton) muestra un programa integrado en Max que asigna un teclado de computadora a las entradas de un teclado MIDI (que es básicamente lo contrario de lo que está tratando de hacer). Podría obtener los resultados deseados utilizando el mismo patrón, pero invirtiendo las señales / asignaciones.


AutoHotKey

AutoHotKey es una utilidad gratuita de código abierto para Windows que le permite reasignar teclas y botones en sus dispositivos a macros. Es compatible de forma nativa con teclados QWERTY, joysticks y macros de mouse.

Sin embargo, pude encontrar una implementación que admite el mapeo específico que está buscando. Estos dos hilos explican el proceso:

  1. Soporte MIDI IN en AutoHotkey , la discusión del caso de uso. El autor estaba buscando un programa que pudiera detectar la entrada MIDI IN y traducirla a pulsaciones de teclas .

  2. La biblioteca de entrada MIDI , la solución al problema del autor y el código / parche publicado en AutoHotKey, que implementa el resultado deseado.

Básicamente, parece que AutoHotKey, junto con el parche personalizado de este usuario, proporcionará exactamente lo que necesita para crear una asignación desde un teclado MIDI a una señal de entrada del teclado QWERTY. Todo lo que tendría que hacer es instalar, configurar y definir sus asignaciones.


¿Algo más?

Algunas de las otras respuestas le han brindado información mucho más extensa sobre la programación MIDI y MIDI, en general, pero como dice su publicación, eso no parece ser exactamente lo que está buscando. Me gustaría ayudarlo más si es posible, pero sería más fácil si pudiera ser más específico sobre el tipo de información que está buscando. Por ejemplo, ¿está más interesado en cómo convertir las señales de entrada de un QWERTY MIDI a las señales de un teclado QWERTY , o su principal interés es encontrar una solución inmediata para su problema específico? ¿Qué buscas que aún no se ha abordado?


Casey tiene la mejor respuesta. Le he añadido un comentario y lo he votado. Este tipo de software pertenece a un controlador de dispositivo o a un sistema integrado. Los controladores de dispositivos son mucho más complejos y no son portátiles a otros sistemas operativos. Para referencia, vea los problemas con Winmodems en Linux.

Al colocar su código en un sistema integrado, lo hace portátil a cualquier dispositivo MIDI con un puerto USB y cualquier computadora que acepte teclados USB.


Considere hacer algo en hardware que emule un teclado usb (o ps / 2?). Ya no dependerás de un sistema operativo específico o de una API de sistema operativo específica. Una solución de hardware resistirá la prueba del tiempo. ¡No se quede atascado usando una API antigua en Windows 7 cuando todos los demás están ejecutando Windows 11! Arduino es bastante fácil de aprender.

Hay un montón de información y ayuda para Arduino. Es una plataforma de hacking de hardware construida para novatos. Solo se hará más grande ahora que Google está presionando a Arduino.

EDITAR: software y hardware teclado USB virtual


Echa un vistazo a los juegos de arcade MAME . Han construido dispositivos de hardware para permitir la entrada de cualquier número de elementos diferentes. El iPac , por ejemplo, convierte señales de dispositivos de entrada a USB que la computadora puede usar para emular claves. Puede usar cualquier combinación de dispositivos de entrada organizada de cualquier manera que parezca cómoda sin que se requiera una lógica de programación loca, porque el software para interpretar la entrada ya está hecho y bien probado.

He visto las entradas de la cabina del simulador de vuelo, los quioscos personalizados y los sistemas de votación integrados en este método ... ¡y el precio es correcto!



En realidad, trabajé en esto hace un tiempo, tratando de capturar entradas de batería de Rock Band en mi computadora (haciendo un pequeño emulador de batería hecho en casa en Java) De todos modos, hice una pregunta aquí sobre el problema del retraso de tiempo (hay un código de sondeo allí , junto con lo que estaba intentando hacer). Y si puedo encontrar mi programa, puedo darle el código, utiliza una API de terceros ( JInput ).

Buena suerte de cualquier manera.


Estudié piano en la universidad y luego me dediqué al diseño de interacción, la programación y el uso de Vim , por lo que he pasado mucho tiempo haciendo prototipos de cosas como esta.

Puede hacer que esto funcione bastante rápido en Linux usando el lenguaje de programación gráfico para artistas multimedia, " Pure Data ", junto con la x11key externa de Alex Andre .

En Mac, puedes usar MidiStroke . Creo que un método en Windows involucraba las herramientas MidiOx y AutoHotKey . En otro momento tuve una versión utilizando el complemento Java para Max/MSP . Creo que Patrice Colet hizo una ventana externa para Pure Data que también funcionó, pero parece que ya no puedo ubicarlo. Además, hay un externo para MaxMSP que puede hacer esto en Windows. Por último, el Osculator no libre pero impresionante puede hacer lo que quieras: consulta la página de características.

Cuando lo puse en funcionamiento, nunca me quedé con él, porque no podía dejar de trabajar con el diseño. ¡Fue genial tener mi monitor en mi teclado eléctrico! Buena suerte.


Hay un programa llamado GlovePIE . Puede programarlo en un lenguaje de script simple, y creo que es compatible con MIDI. No estoy seguro de si esto encaja en la categoría "Java", pero aún así, es un gran programa. Lo he usado para controlar robots usando controladores de PS3 . Es muy poderoso.


Me parece que estás buscando menos consejos sobre cómo construir esto tú mismo y más preguntas sobre qué recursos ya existen para lograr lo que deseas. Dependiendo de su sistema operativo, hay muchas maneras de lograr esto sin tener que escribir su propio programa desde cero:

Trazo MIDI

Gratis. Para Mac OS X 10.3 y superior . Este viene específicamente con "la capacidad de usar cualquier teclado MIDI como un reemplazo completo del teclado de una computadora".

Traductor MIDI de Bome

Gratis / Postcardware (es un poco extraño). Para Windows 2000 en adelante, y Mac OS X. Inicialmente, parece estar más orientado hacia el uso del tipo AutoHotkey , pero en una AutoHotkey profunda, creo que podría hacer lo que quieras muy bien.

Max y aka.keyboard

Gratis. Para Mac OS X. No es exactamente una solución lista para usar, pero si se siente cómodo con la configuración básica del dispositivo, no debería ser tan malo.


Muchos teclados tienen un conector de puerto serie ( RS-232 ) para enviar señales MIDI a la computadora. Utilizo un programa llamado Girder para convertir la comunicación del puerto serie en golpes de teclado.

Girder tiene una función de "mapeo" que le permite mapear cada tecla, una por una, a la pulsación correspondiente.

¡Esta podría ser la solución simple que estás buscando!


No he hecho ninguna programación MIDI en años, pero tu idea fundamental es muy sólida (no hay juego de palabras).

MIDI es un flujo de "eventos" (o "mensajes"), dos de los más fundamentales son "note on" y "note off" que llevan consigo el número de nota (0 = C cinco octavas por debajo de la mitad C, hasta 127 = G cinco octavas por encima de la G por encima de la C media, en semitonos). Estos eventos llevan un número de "velocidad" en los teclados que son sensibles a la velocidad ("sensible al tacto"), con una fuerza de (usted lo adivinó) entre 0 y 127.

Entre la velocidad, el sonido y los pedales, creo que podrías tener una buena interfaz de "escritura" para el teclado del piano. La grabación en particular podría ser una técnica muy poderosa, como mencioné en los comentarios, es por eso que los taquígrafos de rango y archivo pueden usar una stenographers para mantenerse al día con las personas que hablan durante horas seguidas, cuando incluso los mecanógrafos de primera categoría Puede ser capaz durante un período de tiempo prolongado a través de teclados normales de máquina de escribir. Al igual que con la estenografía de la máquina, necesitarías un "diccionario" de los significados de los acordes y las secuencias de acordes. (¿Puede decir que solía trabajar en el lado del software de la estenografía de la máquina?)

Para ello, las piezas fundamentales son:

  • Recibiendo entrada MIDI. No trates de hacer esto por ti mismo, usa una biblioteca. Edición : al parecer, la API de Java Sound es compatible con MIDI , incluida la recepción de eventos de los controladores MIDI. Guay. Esta página también puede ser útil.
  • Convertir esos datos en las pulsaciones de teclado que desea enviar, por ejemplo, a través del diccionario que mencioné anteriormente.
  • Salida de las pulsaciones al ordenador.

Para ser más ampliamente compatible con el software, tendría que escribir esto como un controlador de dispositivo de teclado. Este es un complemento para el sistema operativo que sirve como fuente para eventos de teclado, hablando con el hardware subyacente (en su caso, el teclado de piano). Para Windows y Linux, probablemente querrá usar C para eso.

Sin embargo, dado que solo está generando pulsaciones de teclas (sin intentar interceptarlas, lo que intentaba hacer hace años), es posible que pueda usar las funciones que tiene el sistema operativo para enviar pulsaciones de teclas artificiales. Windows tiene una interfaz para hacer eso (probablemente varias, la que estoy pensando es en SendInput pero sé que hay una interfaz "de diario" que hace algo similar), y estoy seguro de que otros sistemas operativos también lo hacen. Eso podría ser suficiente para sus propósitos, es donde empezaría, porque la ruta del controlador del dispositivo será incómoda y probablemente tendría que usar un idioma diferente al de Java. (Soy un gran fan de Java, pero las interfaces que usan los sistemas operativos para comunicarse con los controladores de dispositivos tienden a ser más fáciles de consumir a través de C y similares).

Actualización : Más sobre el "diccionario" de acordes para pulsaciones de teclas:

Básicamente, el diccionario es un trie (gracias, @Adam) que buscamos con la coincidencia con el prefijo más largo. Detalles:

En la estenografía de la máquina, el taquígrafo escribe al presionar varias teclas en la máquina de estenotipia al mismo tiempo y luego las libera todas. Llaman a esto un "golpe" del teclado; Es como tocar un acorde en el piano. Los trazos con frecuencia (pero no siempre) corresponden a una sílaba de lenguaje hablado. Al igual que las sílabas, a veces un golpe (acorde) tiene un significado por sí solo, otras veces solo tiene un significado combinado con los siguientes movimientos. (Piensa "bueno" contra "bueno" seguido de "adiós"). A pesar de que estarán muy influenciados por la escuela en la que estudiaron, cada taquígrafo tendrá su propio "diccionario" de los trazos que usan para significar qué, un diccionario que continuarán perfeccionando a lo largo de su vida laboral. El diccionario tendrá entradas donde la parte estenográfica ("steno", para abreviar) tiene un trazo de longitud o varios trazos. Con frecuencia, habrá varias entradas con el mismo trazo de inicio que se diferencian por su longitud y por los trazos posteriores. Por ejemplo (y no usaré steno real aquí, solo marcadores de posición), puede haber estas entradas:

A = alpha A/B = alphabet A/B/C = alphabetic A/C = air conditioning B = bee B/C = because C = sea D = dog D/D = Dee Dee

(Esas letras no están destinadas a ser notas musicales, solo marcadores abstractos).

Tenga en cuenta que A inicia varias entradas y también que la forma en que se traduce un trazo de C depende de si ha visto anteriormente una A , una B o si está comenzando de nuevo.

También tenga en cuenta que (aunque no se muestra en la muestra muy pequeña de arriba), puede haber varias formas de "reproducir" la misma palabra o frase, en lugar de solo una. Los taquígrafos lo hacen para que sea más fácil pasar de una palabra anterior a la siguiente, dependiendo de la posición de la mano. Hay una analogía obvia con la música allí, y puedes usarla para hacer que tu escritura fluya más como para tocar música, para evitar que esto afecte negativamente a tu interpretación en el piano y para maximizar la probabilidad de que esto realmente ayude con el RSI.

Al traducir steno a texto estándar, nuevamente utilizamos una búsqueda de "coincidencia con el prefijo más largo": el algoritmo de traducción comienza con el primer golpe escrito, y busca entradas que comiencen con ese golpe. Si solo hay una entrada, y tiene un trazo largo, entonces podemos decir de manera confiable "esa es la entrada que se debe usar", generar el texto correspondiente y luego comenzar de nuevo con el siguiente trazo. Pero lo más probable es que ese golpe inicie múltiples entradas de diferentes longitudes. Así que miramos el siguiente golpe y vemos si hay entradas que comiencen con esos dos golpes en orden; Y así sucesivamente hasta que tengamos un partido.

Así que con el diccionario de arriba, supongamos que vimos esta secuencia:

A C B B C A B C A B D

Así es como lo traduciríamos:

  1. A es el inicio de tres entradas de longitudes variables; mira el siguiente golpe: C
  2. A/C coincide con una sola entrada; Salida "aire acondicionado" y empezar de nuevo con el siguiente golpe: B
  3. B inicia dos entradas; mira el siguiente golpe: B
  4. B/B no comienza nada; tomar la partida anterior más larga ( B ) y generar que ("abeja")
  5. Teniendo salida B = "abeja", todavía tenemos un golpe B en nuestro búfer. Comienza dos entradas, así que mira el siguiente golpe: C
  6. B/C coincide con una entrada; Muestra "porque" y comienza de nuevo con el siguiente golpe: A
  7. A comienza tres entradas; mira el siguiente golpe: B
  8. A/B inicia dos entradas; mira el siguiente golpe: C
  9. A/B/C solo coincide con una entrada; la salida es "alfabética" y comienza de nuevo con el siguiente trazo: A
  10. A comienza tres entradas; mira el siguiente golpe: B
  11. A/B inicia dos entradas; mira el siguiente golpe: D
  12. A/B/D no coincide con nada, así que tome la coincidencia anterior más larga ( A/B ) y utilícela para generar "alfabeto". Eso nos deja con D todavía en el búfer.
  13. D inicia dos entradas, por lo que normalmente veríamos el siguiente trazo, pero hemos procesado todos los trazos, así que considérelo en forma aislada. En el aislamiento, se traduce como "perro", por lo que la salida.

Aspectos de lo anterior a tener en cuenta:

  • Tienes un búfer de trazos que has leído pero aún no has traducido.
  • Siempre desea hacer coincidir la mayoría de los trazos con una sola entrada que pueda. A/B debe traducirse como "alfabeto", no "alfa" y "abeja".
  • (No se muestra arriba) Es posible que tenga secuencias de trazos que no puede traducir, porque no coinciden con nada en el diccionario. (La gente de Steno usa el sustantivo "sin traducir"; por ejemplo, con nuestro diccionario, los trazos E serían "sin traducir".)
  • (No se muestra arriba) Algunas teorías de steno permiten que el mismo conjunto de trazos signifique más de una cosa, basado en un contexto más amplio. Steno la gente llama a estos "conflictos". Probablemente quiera rechazarlos en su proyecto y, de hecho, cuando el taquígrafo solía traducir manualmente steno, los conflictos estaban bien porque sabrían exactamente en qué parte de la oración estaban, cuál era la elección correcta, pero con el aumento. De la traducción automática, surgieron teorías de steno libres de conflicto específicamente para evitar tener que pasar por el texto traducido resultante y los conflictos de "arreglo".
  • Traducir en tiempo real (lo que estarías haciendo) significa que si recibes una coincidencia parcial, querrás mantenerla mientras esperas el siguiente acorde, pero probablemente solo hasta un tiempo de espera, momento en el que traduce lo que tienes en el búfer lo mejor que puedas. (O tal vez no quieres un tiempo de espera; es tu decisión).
  • Probablemente sea mejor tener un derrame cerebral que diga "ignorar el golpe anterior"
  • Probablemente sea mejor tener un golpe que diga "borrar completamente el búfer sin generar nada"

Para resolver esto necesitarás algunas cosas:

  1. Una forma de capturar datos MIDI desde tu teclado. Dependiendo de la interfaz: la interfaz MIDI (clásica) o la USB MIDI USB (moderna) la interfaz más probable es una computadora, ya que proporciona la mayoría de las opciones. Los microcontroladores de host USB no son tan simples como usar una computadora.

  2. Un esquema para convertir datos MIDI en pulsaciones de teclas. Como señaló un usuario, los acordes son el camino a seguir ya que el número de teclas no dependerá del número de teclas del piano.

  3. Una forma de inyectar una llave en el sistema operativo. Esto requerirá un controlador de bajo nivel para ser preciso. He jugado con aplicaciones que inyectan datos de teclado y mouse en aplicaciones en Windows 7, y puede ser inestable y depender de si una aplicación está actualmente enfocada. Esta es la parte más difícil de la interfaz. Lo que puede funcionar es crear un microcontrolador de teclado USB HID que también tenga una interfaz en serie.

La interfaz serial crearía un puerto serial virtual. El software que lee los datos MIDI y produce las pulsaciones de tecla podría enviar un mensaje serie al puerto serie virtual. El microcontrolador enviaría una pulsación de tecla para que pareciera una entrada de teclado estándar. Esto permitiría interconectar puertos MIDI y teclados MIDI USB.

Hmmm, con este tipo de interfaz también podría simular un mouse y usar algunas teclas de configuración de piano para el eje y los botones del mouse. La presión podría usarse para determinar la velocidad del puntero del ratón. Así que podrías eliminar el ratón también. Otro beneficio de este enfoque es que cualquier tipo de dispositivo de entrada que se conecte puede comunicarse con el puerto serie virtual para producir eventos de teclado y mouse. Entonces, si desea agregar otro hardware, como pedales de batería o un joystick, sería cuestión de ajustar el programa que habla a la interfaz serial.

Otra versión de lo anterior es como algunos publicados anteriormente para usar un Arduino, pero también incluyen USB Host Shield de Sparkfun para manejar teclados de música basados ​​en USB. Esto permite que el Arduino se programe como un teclado o una combinación de mouse de teclado en el chip del cargador de arranque y permite que el dispositivo actúe como un host USB para el teclado de música basado en USB. Entonces estás cubierto para ambos tipos. Aunque sigo pensando que el método del puerto serie virtual es más flexible y sería más fácil de programar a largo plazo. El dispositivo Arduino será más difícil de cambiar que un programa o servicio de escritorio.

Hay otra posibilidad: los teclados acordeados de una mano ya existen. He visto videos en ellos, pero tendrías que determinar si te duelen las manos o no.


Podrías hackear tu propio teclado USB bastante rápido usando un microcontrolador Teenys.

De hecho, tienen código de ejemplo para hacer un teclado USB .

Podrías acercarte a esto de dos maneras:

  1. Consigue un piano viejo y cablea los interruptores directamente a la adolescencia.

  2. Agregue la lógica adicional para conectarse al puerto MIDI y la decodificación necesaria.


Prueba el traductor MIDI de Bome .

Funciona multiplataforma, puede convertir cualquier entrada MIDI en una combinación de teclas fácilmente, rápida de configurar y configurar, además de que es gratuita para uso personal.

Hay un tutorial, Consejo rápido: Traducción MIDI - MIDI a pulsaciones de teclas , de cómo configurarla fácilmente:

Básicamente, hay infinitas posibilidades de lo que puedes hacer, incluidas las teclas de modificación y modulación. Lo uso para mi equipo de audio en vivo para controlar mi DAW usando mi piano y nunca he tenido un problema.


Puede acceder al hardware con ejemplos de código fuente en .NET en MIDI DotNet .

Una muestra de trabajo completa como código fuente para crear un flujo de datos de notas MIDI está en VB 5/6-Tipp 0521: MIDI-Töne erzeugen (Visual Basic 6.0, en algún lugar también está la versión .NET)

Una forma de simular golpes de teclado es en VB 5/6-Tipp 0155: Tastaturereereignisse simulieren (Visual Basic 6.0, en algún lugar también está la versión .NET)

Y reconocer las pulsaciones se describe en Tipp-Upload: VB.NET 0266: Globaler KeyHook .

Entonces, solo usa una buena matriz de trabajo para un pianista

En el piano y cuando eres un buen jugador, puedes tener 10 dedos en el teclado y si la matriz es utilizable, puedes ser mucho más rápido que cualquier usuario de teclado de computadora, creo. :-)

En ese caso, si entiendo bien tu pregunta, no debería ser una gran cosa.


Realmente no está relacionado con el programa, pero puedo ofrecer algunos consejos sobre cómo administrar RSI .

Hay cronómetros que aceleran su trabajo a lo largo del día introduciendo micro-descansos frecuentes. Si has investigado el RSI, estoy seguro de que has oído hablar de los micro descansos. Son cruciales para gestionar y prevenir las reincidencias. Un programa gratuito es Workrave

Dale a QWERTY el arranque y prueba Dvorak . Aquí hay un teclado para programador Dvorak . Dvorak tiene los caracteres más utilizados en la fila de inicio, mientras que QWERTY no lo hace. Por lo tanto, usar Dvorak reducirá la tensión causada por no tener que "alcanzar" las letras.

Saca ese teclado "natural" del armario si aún no lo estás utilizando. Escriba muy a la ligera. Lo mínimo para registrar una pulsación de teclas será suficiente.

Intente limitar el café a una o dos tazas por día. El exceso de cafeína hará que no se sienta cansado y le será fácil olvidar que tiene RSI.

El exceso de alcohol interrumpe el sueño necesario para permitir que su cuerpo se cure. Una buena noche de descanso es crucial para domar el RSI.

Estirar utilizando estiramiento aislado activo. Una buena rutina se describe en Rutina de estiramiento de muñeca, mano y dedo - Estiramiento aislado activo .

Aprende a ser ambidiestro con el ratón. Asegúrese de que el mouse esté diseñado para que lo utilicen ambas manos y que tenga botones fáciles de hacer clic.

Utilice una tableta de lápiz como su dispositivo de entrada principal. Wacom hace algunas tabletas decentes de bajo costo .

¡Buena suerte!


Tus síntomas de dolor bien podrían ser psicosomáticos .

Una vez pensé que tenía RSI en mi muñeca durante muchos meses después de una larga noche de juegos de computadora. La terapia física no ayudó. Después de leer un artículo escrito por un médico que explica que el RSI, el túnel carpiano, el dolor de espalda y el IBS menudo pueden ser psicosomáticos, especialmente en personas que están bajo estrés, el dolor prácticamente desapareció (me ayudó a visualizar mi muñeca relajada y la sangre fluyendo hacia ella). , ya que el artículo dice que la constricción de los vasos sanguíneos autónomos es la causa inmediata del dolor). De hecho, estaba sufriendo mucho estrés en ese momento.


Una buena biblioteca en .NET con soporte completo de midi (BASS), vaya a http://www.un4seen.com .

Y, por otra parte, al traducir las notas midi del teclado a teclas y más, me gustaría utilizar AutoItX, la interfaz ActiveX / COM y DLL para autoit. Información y descarga, vaya a http://www.autoitscript.com/site/autoit/

No hay necesidad de escribir el controlador del teclado.


Sé exactamente cómo te sientes. Hacer locos comandos de codificación del teclado todo el día hace que me duelen las manos.

Un piano no hace el trabajo (es mejor conseguir un Dvorak ). La mejor solución sería la telepatía mental o, en este momento, el control de voz.

Creo que la crema Arthro-Aid Direct es buena y Wild Blend también funciona bien.

La otra cosa que he notado es que el mouse también es mayormente culpable, la mayoría no son ergonómicos y hacen tanto clic en el RSI y el CTS . Para superar esto, ocasionalmente uso clickers automáticos del mouse, por ejemplo Auto Clicker del mouse .

Sé de patentes con el ratón como agarres que aprietas, estoy dispuesto a comprar.

PD: ¡Obtenga su seguro de protección de ingresos antes de ver a un médico sobre sus manos!

Y no programes los fines de semana :)


Las respuestas a su pregunta ya están en esta página, pero me gustaría hacer algunos comentarios adicionales.

Primero, no estoy convencido de que teclear en un teclado de piano en lugar de eso detendrá el dolor. En este sentido, te sugeriré que busques en algo como Nuance Dragon - Hablando naturalmente para tu tipeo.

En segundo lugar, si insistes en seguir adelante con esto, es probable que tengas que ir con Nasebnbaar''s (aunque no estoy de acuerdo con que sea más rápido) y Brian''s sugerencia Brian''s . Es probable que esto sea algo con lo que debe comunicarse con un ingeniero para que lo haga correctamente, pero si tiene que hacerlo usted mismo, le recomendamos que solicite instrucciones sobre Ingeniería Eléctrica - Stack Echange.

En tercer lugar, si simplemente desea comprender cómo funcionan los archivos MIDI , cómo leerlos mediante programación y cómo simular un golpe de teclado , buena suerte;)

Por último, también me gustaría obtener una copia si finalmente decide optar por la segunda opción :)


Si conoces la codificación en Java, puedes usar de esta manera:

Primero, implemente un javax.sound.midi.Receivercon un send(..)método que esté mapeando los eventos ''Note on'' a las pulsaciones de teclado que desee.

Necesitarías obtener el contenido de MidiMessage con su getMessagemétodo e interpretarlo a tu manera. El significado de los bytes de mensaje se puede encontrar en Mensajes MIDI .

Después de recibir una ''nota activada'' o ''nota desactivada'' para una determinada tecla, puede asignarla a una tecla que desee asignándole una constante de la clase KeyEvent, algo como C # 4 -> KeyEvent.VK_A, etc. . Este código de clave puede luego ser utilizado por java.awt.Robotlos métodos keyPress y keyRelease para enviar la pulsación de tecla al sistema operativo y, por lo tanto, a otras aplicaciones.


Debería ser bastante fácil usar algo como la interfaz .NET DirectSound para conectarse a un dispositivo MIDI. Necesitará identificar su dispositivo MIDI de destino y luego obtener el código para escuchar los mensajes entrantes (hay artículos sobre cómo hacerlo a través de Google).

Dado que está utilizando el MIDI in como un teclado, básicamente hay dos mensajes MIDI que necesita detectar, es decir, note on y note off. El mensaje MIDI es de tres bytes de datos que especifican el comando, la nota y la velocidad. La nota desactivada es solo el número de la nota (a veces las pilas MIDI "malas" envían una nota con velocidad cero que también debe esperar).

Una vez que tenga los mensajes traduciéndolos, la salida del teclado debería ser bastante simple desde .NET.

Hay un montón de consejos en las otras respuestas sobre los tecnicismos; Solo quería darte una idea de los mensajes MIDI reales. ¡Buena suerte!


Estoy de acuerdo con la respuesta de Brian O''Dell: si este fuera mi proyecto, lo haría en hardware. Tiene la ventaja de ser independiente de la plataforma y el hardware: su caja reemplaza la necesidad de una interfaz MIDI-USB y una API de PC.

mbed es una plataforma de creación rápida de prototipos que es muy fácil de aprender y tiene múltiples ventajas sobre Arduino IMHO (compilador en línea, 512 KB flash, 96 MHz, lenguaje C ++). Tiene una interfaz de teclado USB y una interfaz USB Midi pre-escrita para usted.

La comunidad es muy amigable y está dispuesta a ayudar, y hay muchos proyectos existentes que utilizan emulación de ocultación MIDI y USB: busque en "mbed MIDI" en Youtube o similar.


Obtendrá resultados mejores y más felices (independientemente del sistema operativo y / o programa DAW que quiera usar) al tocar cualquier teclado MIDI externo como controlador a través de su tarjeta de sonido. Luego diríjalo a su software de GB (o lo que sea) y el tono generará los muchos sonidos que le han proporcionado de esa manera en tiempo real.

Si su tarjeta de sonido no es compatible con las E / S MIDI (entradas / salidas / thrus), eso no es un problema. Puede considerar investigar e invertir en un convertidor de sobremesa MIDI externo. Muchos están equipados para convertir más salidas MIDI a USB 2.0 (pasando por alto una tarjeta de sonido existente en total).

Por ejemplo: es bastante difícil obtener resultados de notas de gracia "humanas" a través de una opción de cambio de Z y X usando un teclado de computadora y una herramienta de lápiz. Cuando, en cambio, sus propios dedos pueden tocar eso con un teclado MIDI desde sus propios rangos de registro de octava físicos, ¡de inmediato!

Me doy cuenta de que las restricciones presupuestarias pueden estar involucradas. Sin embargo, algunos de estos teclados de 5 octavas tipo "Casio" aparentemente baratos que se venden en Radio Shack por menos de $ 100.00 dólares estadounidenses (* o menos) es todo lo que necesita (además, algunos de sus parches de sonido y módulos de secuenciador incorporados suenan y manejan increíblemente bien para otras cosas también).

Opciones del teclado MIDI RadioShack .

En cuanto a los convertidores MIDI externos para tarjetas de sonido existentes, he realizado algunas búsquedas en Google de la siguiente manera, teniendo en cuenta específicamente las plataformas Mac:

Mucha de esta información de conversión MIDI externa puede ser complicada para usted al principio, por lo que he analizado las cosas más como "fáciles de usar" para sus consideraciones y presupuesto:

No hay nada de malo en facilitar los teclados virtuales como los de VST cuando se usa DAW . Ellos tienen su lugar.

Pero, suenas como un teclista consumado. Entonces, ¿por qué no considerar las opciones de teclado / conversión MIDI externa que acabo de mencionar?

¡Buena suerte y espero que esto te haya dado algunas ideas que puedan funcionar y funcionarán para ti!


Para escribir más rápido, tal vez sea una idea "tocar" las consonantes de la mano izquierda y las vocales de la derecha (o viceversa). No necesitas una clave para cada consonante, porque podrías combinarlas como:

B C D G H J K L M N P Q R S T W X Y Z c c# d d# e f f# g c+d ...

Puede dejar dos teclas cerradas (como c#+ d, esto no se reproduce fácilmente). Incluso puedes dejar las llaves negras fuera.

Para las vocales es fácil:

AEIOUY

cdefga

Sin embargo, también piense en utilizar varias pulsaciones de tecla: como c#= aa, d#= ee, etc.

Puedes hacer el mismo truco con las consonantes (tener una combinación de teclas para st, sp, etc.)

Puedes tocar consonantes y vocales al mismo tiempo, unirlas alternativamente o con prioridad (consonantes, luego vocales, etc.)

Probablemente tendrás que aprender a escribir de nuevo, pero estoy seguro de que puedes hacerlo mucho más rápido de lo que lo puede hacer una persona que escribe normalmente.

Use otra octava para dígitos y caracteres especiales, use un interruptor para cambiar, use una combinación fácil de teclas para el espacio (como dos cs con la mano izquierda y derecha, asegúrese de que no signifique (a) caracteres (s) )).

También piense en usar un pedal que pueda tener valores de 0-127. Podría usarlo como turno o espacio también ... o retroceder / ingresar.

Espero que esto te dé nuevas ideas y buena suerte con tu proyecto.


Podrías echar un vistazo a los teclados acordeados . Tienen la ventaja de que no necesita escribir un controlador para ellos antes de poder usarlos, y algunos son similares al diseño de un teclado de piano.


Puede usar un sencillo script de AutoIt para leer eventos MIDI, vea Entrada MIDI .

También necesitará MIDI UDF y simular pulsaciones de teclas .

La lectura de eventos MIDI debería ser fácil, pero diferentes controladores MIDI (instrumentos) tienen diferentes características. Trate de averiguar qué puede hacer primero su piano MIDI, luego vea cómo puede mapear mejor esas características a las pulsaciones de QWERTY simuladas.

Si lo desea, puede tener algo en la pantalla o en la bandeja para ayudarlo a ver lo que está haciendo (es decir, para Shift, Ctrly Altsimulación).


Si no desea realizar ninguna programación por sí mismo, pero solo quiere resolver el problema, puede comprar un teclado MIDI USB donde puede reasignar cualquier tecla para enviar una señal de salida de teclado QWERTY en lugar de una salida MIDI, para ejemplo M-Audio Axiom Pro

Este método funcionará con cualquier sistema operativo y cualquier computadora que admita teclados USB estándar ya que el teclado MIDI se identificará como un teclado QWERTY estándar.


Si usas Linux ten una toma en Footware .

Debería ser exactamente lo que está buscando: si ajusta los tonos MIDI a un mapa de teclas de su gusto ...

Nunca pensé que esto podría ser útil para nadie más que para mí; o)