Utilisation d'un clavier de piano comme clavier d'ordinateur [fermé]
j'ai RSI problèmes et ont essayé 30 claviers informatiques différents qui tous m'ont causé de la douleur. Jouer du piano ne me fait pas mal. J'ai joué du piano pendant environ 20 ans, sans problèmes de douleur. Je voudrais savoir s'il y a un moyen de capturer le MIDI à partir d'un clavier MIDI et d'extraire des touches de clavier. Je ne sais rien du tout sur le MIDI mais je voudrais des conseils sur la façon de convertir ce signal en une frappe.
30 réponses
une bonne bibliothèque en .NET avec un support midi complet (BASS), passez à http://www.un4seen.com .
et pour l'autre partie, traduire des notes midi clavier à des touches et plus, je dirais AutoItX, L'ActiveX/COM et l'interface DLL à autoIt. Info et téléchargement, allez à http://www.autoitscript.com/site/autoit/
Pas besoin de l'écrire pilote de clavier.
Je n'ai pas fait de programmation MIDI depuis des années, mais votre idée fondamentale est très sonore (pas de jeu de mots).
MIDI est un flux d ' "événements" (ou "messages"), deux des plus fondamentaux étant "note sur" et "note off" qui portent avec eux le numéro de note (0 = C cinq octaves en dessous du milieu C, à travers 127 = G cinq octaves au-dessus du G Au-dessus du milieu C, en demi-tons). Ces événements portent un numéro de "vitesse" sur les claviers qui sont sensibles à la vitesse ("sensibles au toucher"), avec une force de (vous l'aurez deviné) entre 0 et 127.
entre la vitesse, le chordage, et les pédales, je pense que vous pourriez venir avec tout à fait une bonne interface "Dactylo" pour le clavier de piano. Comme je l'ai mentionné dans les commentaires, c'est pourquoi les sténographes de base peuvent utiliser un sténotype machine pour suivre les gens qui parlent pendant des heures d'affilée, alors que même les dactylos de haut niveau ne seraient pas en mesure de n'importe quelle longueur de temps via des claviers de type machine à écrire. Comme pour la sténographie mécanique, il faudrait un "dictionnaire" des significations des accords et des séquences d'accords. (Pouvez-vous dire que j'ai travaillé dans l'aspect logiciel de la sténographie?)
pour ce faire, les pièces fondamentales sont:
- réception de l'entrée MIDI. Ne pas essayer de le faire vous-même, utilisez une bibliothèque. Edit : apparement, the Java Sound API prend en charge le MIDI , y compris la réception d'événements à partir de contrôleurs MIDI. Cool. cette page peut également être utile.
- conversion de ces données dans les frappes que vous voulez envoyer, par exemple via le dictionnaire que j'ai mentionné ci-dessus.
- qui envoie les touches à l'ordinateur.
pour être le plus largement compatible avec un logiciel, vous devez écrire ceci comme pilote de clavier. C'est un plug-in du système d'exploitation qui sert de source pour les évènements clavier, en parlant au matériel sous-jacent (dans votre cas, le clavier piano). Pour Windows et Linux, vous allez probablement vouloir UTILISER C pour cela.
cependant, puisque vous êtes juste générant des frappes (ne pas essayer de les intercepter, ce que j'ai essayé de faire il y a des années), vous pouvez être en mesure d'utiliser toutes les caractéristiques du système d'exploitation a pour envoyer des frappes artificielles. Windows a une interface pour faire cela (probablement plusieurs, celle à laquelle je pense est SendInput
mais je sais qu'il y a une interface "journal" qui fait quelque chose de similaire), et je suis sûr que d'autres systèmes d'exploitation font aussi bien. Cela pourrait être suffisant pour vos besoins - c'est là que je commencerais, parce que la route du pilote de périphérique va être maladroite et vous devrez probablement utiliser un langage différent pour cela que Java. (Je suis un grand fan de Java, mais les interfaces utilisation des systèmes d'exploitation pour parler aux pilotes de périphérique ont tendance à être plus facilement consommées via C et similaires.)
mise à jour : en savoir plus sur le "dictionnaire" des accords aux frappes:
en gros, le dictionnaire est un trie (merci, @Adam) que nous cherchons avec le plus long préfixe correspondant. Details:
en sténographie mécanique, le sténographe écrit en pressant plusieurs touches sur la machine sténotype en même temps, puis les libérer toutes. Ils appellent cela un "coup" du clavier; c'est comme jouer un accord de piano. Les traits correspondent souvent (mais pas toujours) à une syllabe de langue parlée. Comme les syllabes, parfois un trait (accord) a un sens tout seul, d'autres fois il a seulement un sens combiné avec les traits suivants. (Pensez " bon " vs. " bon "suivi de"bye"). Bien qu'ils seront fortement influencés par l'école à laquelle ils étudié, chaque sténographe aura son propre "dictionnaire" des traits qu'ils utilisent pour signifier quoi, un dictionnaire qu'ils continueront à aiguiser au cours de leur vie professionnelle. Le dictionnaire aura des entrées où la partie sténographique ("steno", pour faire court) est un trait de long, ou plusieurs traits de long. Souvent, il y aura plusieurs entrées avec la même course de départ qui sont différenciées par leur longueur et par les courses suivantes. Par exemple (et je n'utiliserai pas de vrai steno ici), just placeholders), il peut y avoir ces entrées:
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
(ces lettres ne sont pas des notes de musique, mais des marqueurs abstraits.)
notez que A
commence plusieurs entrées, et notez également que la façon dont vous traduisez un C
course dépend de si vous avez déjà vu un A
, un B
, ou vous commencez frais.
noter également que (bien que non indiqué dans le très petit échantillon ci-dessus), il peut y avoir plusieurs façons de "jouer" le même mot ou de la phrase, plutôt qu'une seule. Les sténographes le font pour faciliter le passage d'un mot à l'autre selon la position de la main. Il y a une analogie évidente avec la musique là-bas, et vous pourriez l'utiliser pour rendre votre flux de Dactylographie plus semblable à jouer de la musique, afin à la fois d'empêcher cela d'affecter négativement votre jeu de piano et de maximiser la probabilité que cela réellement aider avec le RSI.
Lors de la traduction de steno en texte standard, Nous utilisons encore une fois une recherche "longest-prefix match": L'algorithme de traduction commence avec la première touche jamais écrite, et cherche des entrées commençant avec cette touche. S'il n'y a qu'une entrée, et qu'elle est longue d'un seul coup, alors nous pouvons dire de manière fiable "c'est l'entrée à utiliser", afficher le texte correspondant, puis recommencer à nouveau avec la prochaine entrée. Mais plus probablement, cette course commence plusieurs entrées de longueurs variables. Donc on regarde la prochaine attaque et on voit si il y a des entrées qui commencent par ces deux traits, et ainsi de suite jusqu'à ce que nous obtenir une correspondance.
donc avec le dictionnaire ci-dessus, supposons que nous avons vu cette séquence:
A C B B C A B C A B D
Voici comment nous le traduirions:
-
A
est le début de trois entrées de longueurs variables; regardez la course suivante:C
-
A/C
correspond à une seule entrée; sortie "air conditioning" et nouveau départ:B
-
B
commence deux entrées; regardez la course suivante:B
-
B/B
n'est pas le début de quelque chose; le plus long match précédent (B
) et de sortie ("abeille") - ayant la sortie
B
= "bee", nous avons encore une courseB
dans notre tampon. Il commence deux entrées, alors regardez la prochaine course:C
-
B/C
correspond à une entrée; sortie "parce que" et recommencer à zéro avec la touche suivante:A
-
A
commence trois entrées; regardez la course suivante:B
-
A/B
commence deux entrées; regardez la course suivante:C
-
A/B/C
correspond à une seule entrée; sortie "alphabétique" et recommencer à zéro avec la touche suivante:A
-
A
commence trois entrées; regardez la course suivante:B
-
A/B
commence deux entrées; regardez la course suivante:D
-
A/B/D
ne correspond à rien, donc prenez la plus longue correspondance précédente (A/B
) et utilisez-la pour sortir "alphabet". Cela nous laisse avecD
toujours dans le tampon. -
D
commence deux entrées, de sorte que nous devrions normalement regarder la prochaine course - mais nous avons traité tous les coups, et c'est dans l'isolement. Dans l'isolement, il se traduit par "chien" de sorte sortie que.
Aspects de la note ci-dessus:
- vous avez un tampon de traits que vous avez lu mais n'avez pas encore traduit.
- vous voulez toujours faire correspondre le plus de coups contre une seule entrée que vous pouvez.
A/B
doit être traduit par" alphabet", pas" alpha "et"bee". - (non indiqué) ci-dessus) vous pouvez bien avoir des séquences de traits que vous ne pouvez pas traduire, parce qu'ils ne correspondent à rien dans le dictionnaire. (Les gens de Steno utilisent le nom "untranslate" -- par exemple, avec notre dictionnaire, les traits
E
seraient un"untranslate".) - (Non montré ci-dessus) certaines théories de steno permettent le même ensemble de coups de signifier plus d'une chose, basée sur un contexte plus large. Les gens de Steno appellent ces"conflits". Vous voulez probablement les rejeter dans votre projet, et en fait, quand steno était traduit manuellement par le sténographe, les conflits étaient bien parce qu'ils savaient juste par où dans la phrase ils étaient ce que le bon choix était, mais avec la montée de la traduction automatique, les théories sans conflit de steno surgit spécifiquement pour éviter d'avoir à passer par le texte traduit résultant et "corriger" les conflits.
- traduire en temps réel (ce que vous feriez) signifie que si vous recevez une correspondance partielle, vous voudrez tenir sur lui en attendant l'accord suivant - mais probablement seulement jusqu'à un temps d'arrêt, à quel point vous traduiriez ce que vous avez dans le tampon du mieux que vous pouvez. (Ou peut-être que tu ne veux pas de temps mort, c'est ton choix.)
- probablement mieux d'avoir un AVC qui dit "ne pas tenir compte de l'AVC précédent"
- probablement mieux d'avoir une touche qui dit "complètement effacer le tampon sans rien sortir"
envisager de faire quelque chose dans le matériel qui émule une usb (ou ps/2?) clavier. Vous ne serez plus dépendant d'un OS spécifique, ou D'une API OS spécifique. Une solution matérielle résistera à l'épreuve du temps. Ne vous coincez pas avec une ancienne API de Windows 7 alors que tout le monde exécute Windows 11! Arduino est assez facile à apprendre.
- Arduino MIDI le matériel est disponible du plateau
- Arduinos ont été utilisés pour émuler les dispositifs de clavier
Il ya une tonne d'informations et d'aide là-bas pour Arduino. C'est une plate-forme de piratage matériel construit pour les débutants. Il ne fera que grossir maintenant que Google pousse Arduino.
il me semble que vous êtes moins à la recherche de conseils sur la façon de construire vous-même et plus de demander quelles ressources sont déjà là pour accomplir ce que vous voulez. Selon votre système D'exploitation, il y a plusieurs façons d'accomplir ceci sans avoir à écrire votre propre programme à partir de zéro:
gratuit. Pour Mac OS X 10.3 et plus . Celui-ci est spécifiquement livré avec "la capacité d'utiliser tout clavier MIDI comme un remplacement complet de clavier d'ordinateur."
Libre/Postcardware (c'est un peu bizarre). Pour Windows 2000 et plus, et Mac OS X . Il semble d'abord être plus orienté vers AutoHotkey - l'utilisation de type, mais sur la recherche plus loin je pense qu'il pourrait faire ce que vous voulez bien.
gratuit. Pour Mac OS X . Pas exactement une solution "prête à l'emploi", mais si vous êtes à l'aise avec la configuration de base de l'appareil, ce ne devrait pas être trop mal.
vous pouvez accéder au matériel avec des échantillons de code source dans .NET dans MIDI DotNet .
un exemple de travail complet comme code source pour créer le flux de données de notes MIDI est dans VB 5/6-Tipp 0521: MIDI-Töne erzeugen (Visual Basic 6.0, somewhere is. net version too)
une façon de simuler des touches de clavier est dans VB 5/6-Tipp 0155: Tastaturereignisse simulieren (Visual Basic 6.0, somewhere is .net version too)
and recognize keystrokes is described in Tipp-Upload: VB.NET 0266: Globaler KeyHook .
alors, il suffit d'utiliser une bonne matrice de travail pour un pianiste
au piano et quand on est bon joueur, vous pouvez avoir 10 doigts sur le clavier et si la matrice est utilisable Vous pouvez être beaucoup plus rapidement que n'importe quel utilisateur de clavier d'ordinateur je pense. :- )
dans ce cas, si je comprends bien votre question, ça ne devrait pas être grand chose.
j'ai étudié la performance de piano à l'université, puis j'ai commencé à concevoir des interactions, programmer , et utiliser Vim , donc j'ai passé beaucoup de temps à prototyper des choses comme ça.
vous pouvez obtenir ce travail assez rapide dans Linux en utilisant le langage de programmation graphique pour les artistes multimédia, " données pures , "avec le x11key externe par Alex Andre .
On Mac, vous pouvez utiliser MidiStroke . Je crois qu'une méthode sur Windows impliquait les outils MidiOx et AutoHotKey . À un autre moment, j'ai eu une version allant en utilisant le plugin Java pour Max/MSP . Je crois que Patrice Colet a fait un windows externe pour des données pures qui ont fonctionné aussi bien, mais je ne semble pas pouvoir le localiser plus. Aussi, il ya un externe pour MaxMSP qui peut faire ça sur les fenêtres. Enfin, le non-libre mais impressionnant Osculator peut faire ce que vous voulez - voir la page de fonctionnalités.
quand je l'ai fait marcher, Je ne l'ai jamais gardé, parce que je ne pouvais pas arrêter de m'occuper de la mise en page. C'était cool d'avoir mon écran sur mon clavier électrique, si! Bonne chance.
à propos de MIDI
vous avez déclaré que vous"ne savez rien du tout sur le MIDI". La technologie MIDI est assez simple une fois qu'on la saisit, mais elle peut être confuse au départ. Une des ressources qui m'a été extrêmement utile pour comprendre les fondements du MIDI (qui sont certainement nécessaires si vous voulez programmer les interactions MIDI), est un livre intitulé MIDI for the Technophobe . C'est un livre facile à lire et est très utile.
Pure Data & Max
d'après mon expérience du développement du multimédia interactif, j'ai rencontré deux programmes très semblables qui facilitent la connexion et la cartographie des signaux/entrées de n'importe quel appareil.
ce sont Max pour un environnement Mac et données pures pour un environnement PC. Tous les deux ont une pléthore de documentation et tutoriels YouTube. La vidéo Max/MSP Tutorial 1 - using your computer keyboard as midikeyboard (ableton style) démontre un programme construit en Max qui établit une correspondance entre un clavier D'ordinateur et les entrées D'un clavier MIDI (ce qui est essentiellement le contraire de ce que vous essayez de faire). Vous pouvez obtenir vos résultats prévus en utilisant le même modèle, mais en inversant les signaux/mappages.
AutoHotKey
AutoHotKey est un utilitaire libre open source pour Windows qui vous permet de remap les clés et les boutons sur vos appareils aux macros. Il supporte nativement les claviers QWERTY, les joysticks et les macros souris.
cependant, j'ai pu trouver une implémentation supportant la cartographie spécifique que vous recherchez. Ces deux fils expliquent le processus:
-
MIDI EN AutoHotkey , la discussion du cas d'utilisation. L'auteur était à la recherche d'un programme qui pourrait détecter MIDI en entrée et traduire cela en touches .
-
bibliothèque D'entrée MIDI , la solution au problème de l'auteur et le code posté/patch à AutoHotKey qui en fait implémente le résultat recherché.
fondamentalement, il semble que AutoHotKey, avec le patch personnalisé de cet utilisateur, fournira exactement ce dont vous avez besoin pour créer une correspondance à partir d'un clavier MIDI vers le signal d'entrée D'un clavier QWERTY. Tout ce que vous avez à faire est d'installer, configurer et définir vos correspondances.
autre chose?
Certaines autres réponses vous ont donné beaucoup plus d'informations sur la programmation MIDI et MIDI, en général, mais comme votre post indique que cela ne semble pas être tout à fait ce que vous recherchez. Je tiens à vous aider plus si possible, mais ce serait plus facile si vous pouviez être plus précis sur le type d'information que vous recherchez. Par exemple, Êtes-vous plus intéressé par comment convertir les signaux D'entrée D'un clavier MIDI à un QWERTY signaux du clavier , ou est-ce que votre principal intérêt trouver une solution à votre problème spécifique? Que cherchez-vous qui n'a pas encore été abordé?
vous pourriez Hacker votre propre clavier USB assez rapidement en utilisant un Teenys micro controller.
en fait, ils ont exemple de code pour la façon de faire un clavier USB .
vous pouvez vous approcher de ces deux façons:
-
obtenez un vieux piano et branchez les commutateurs directement à la teensy
-
ajouter la logique supplémentaire pour se connecter au port MIDI et décodage requis.
en fait, j'ai travaillé là-dessus il y a un moment, essayant de capturer groupe de Rock entrées de batterie dans mon ordinateur (faisant un émulateur de batterie maison Java) de toute façon, j'ai posé une question ici à ce sujet, problème de retard de temps (il y a un code de sondage là-dedans, avec ce que je tentais de faire.). Et si je peux trouver mon programme, je peux vous donner le code, il utilise une API tiers ( JInput ).
Bonne chance de toute façon.
Try Bome's MIDI translator .
il fonctionne plate-forme croisée, peut convertir n'importe quelle MIDI entrée à une clé facilement, rapide à configurer et à configurer, plus il est gratuit pour un usage personnel.
il y a un tutoriel, astuce: traduction MIDI à frappes , sur la façon de le configurer facilement:
fondamentalement, il ya infinie possibilités de ce que vous pouvez faire, y compris les touches de chorage et de modification. Je l'utilise pour ma plate-forme audio live pour contrôler mon DAW en utilisant mon piano et n'ai jamais eu de problème.
en Java, vous pouvez utiliser JMF (Java Media framework) pour convertir les signaux MIDI. Basic of keyboard design est facile à utiliser, c'est-à-dire, l'interface utilisateur; et place souvent utilisé charcter/symbole à portée de main.
l'exemple de code et D'API dans Java Sound Resources: Examples: Digital Signal Processing (DSP)" aide à comprendre comment traiter le signal.
quelques autres références:
Casey a la meilleure réponse. J'ai ajouté un commentaire et upvoted. Ce type de logiciel appartient à un pilote de périphérique ou un système embarqué. Les pilotes de périphériques sont beaucoup plus complexes et ils ne sont pas portables pour d'autres OS. Pour référence voir les problèmes avec Winmodems sur Linux.
en mettant votre code dans un système embarqué, vous le rendez portable sur n'importe quel périphérique MIDI avec un port USB, et sur n'importe quel ordinateur qui accepte les claviers USB.
il y a un programme appelé GlovePIE . Vous pouvez le programmer dans un langage de script simple, et je crois qu'il supporte le MIDI. Je ne suis pas sûr que cela rentre dans la catégorie "Java", mais c'est quand même un bon programme. Je l'ai utilisé pour contrôler des robots utilisant des contrôleurs PS3 . C'est très puissant.
beaucoup de claviers ont un port série ( RS-232 ) connecteur pour envoyer des signaux MIDI à l'ordinateur. J'utilise un programme appelé Poutre pour convertir la communication de port série en touches de clavier.
La poutrea une fonction" mapping " qui vous permet de mapper chaque touche, une par une, à la touche correspondante.
C'est peut-être la solution la plus simple que vous recherchez!
apprenez la sténographie!
il est clair de toute la discussion de votre part. Vous ne voulez pas réinventer les roues, d'un point de vue technique. Mais une fois que vous avez établi une connexion (ce que cette question pose) et que vous êtes en haut et que vous travaillez, vous avez encore la plupart du travail devant vous: vous devez former votre cerveau. Vous aussi doivent inventer le moyen le plus intelligent et le plus efficace de le faire - un problème de conception totalement hors du rhealm de l'ordinateur les techniciens. Toi ou n'importe lequel d'entre nous tomberait à court.
heureusement, le problème a été résolu et affiné à travers des siècles de maturation...
Apprenez la sténographie!
oui, ça va te coûter un peu de jack. Mais que valent des centaines d'heures de votre temps, avec à la fin un résultat moins favorable? En outre, la sténographie article Wikipédia dit, "il ressemble plus à un clavier de piano".
sauf si, bien sûr, vous voulez avoir un effet de sideshow. Je dois admettre, je n'ai jamais pensé à cette possibilité, il serait vraiment divertissant de voir quelqu'un sortir d'un texte à partir d'un clavier de piano!
vous pourriez commencer avec un clavier USB avec touchpad (ou un bâton de pointage serait plus ergonomique?), utilisez Plover pour le traduire (je suis sûr qu'il peut être configuré pour laisser les touches non-lettre conserver leur fonctionnalité car elles sont critiques pour la programmation), ou, suivre le fil re: Plover keyboard pour lancer votre propre clavier de sténographie USB, ou, acheter un sténotype .
bonne chance!
regardez MAME arcade gaming. Ils ont construit des dispositifs matériels pour permettre l'entrée de n'importe quel nombre d'éléments différents. Le iPac , par exemple, convertit les signaux des périphériques d'entrée en USB que l'ordinateur peut ensuite utiliser pour émuler les clés. Vous pouvez utiliser n'importe quelle combinaison de périphériques d'entrée disposés de n'importe quelle façon qui semble confortable avec aucune logique de programmation folle nécessaire--parce que le logiciel pour interpréter l'entrée est déjà fait et bien testé.
j'ai vu des entrées de simulateur de vol, des kiosques personnalisés et des systèmes de vote construits selon cette méthode.....et le prix est bon!
pas vraiment lié au programme, mais je peux offrir quelques conseils sur la façon de gérer RSI .
il y a des minuteries qui rythment votre travail tout au long de la journée en introduisant des micro-pauses fréquentes. Si vous avez fait des recherches sur RSI, je suis sûr que vous avez entendu parler de micro-breaks. Ils sont essentiels à la gestion et à la prévention des récidives. Un programme gratuit est Workrave
donnez la botte à QWERTY et essayez Dvorak . Voici un programmeur Dvorak clavier disposition . Dvorak a les caractères les plus souvent utilisés sur la ligne principale, contrairement à QWERTY. Ainsi, L'utilisation de Dvorak réduira la tension causée par le fait de ne pas avoir à "atteindre" les lettres.
saisissez ce clavier "naturel" si vous ne l'utilisez pas déjà. Tapez très légèrement. Le strict minimum pour enregistrer une frappe suffira.
essayez de limiter le café à une ou deux tasses par jour. La caféine Excessive vous fera ne pas vous sentir fatigué et le rend facile d'oublier que vous avez RSI.
l'alcool excessif perturbe le sommeil nécessaire pour permettre à votre corps de se guérir. Une bonne nuit de repos est cruciale pour dompter les RSI.
Étirer à l'aide d'active isolé stetching. Une bonne routine est décrite dans étirement du poignet, de la main et du doigt Routine - étirement actif isolé .
Apprendre à être ambidextre avec la souris. Assurez-vous que la souris est conçue pour être utilisée par les deux mains et a des boutons qui sont faciles à cliquer.
utilisez une tablette de stylo comme principal périphérique d'entrée. Wacom fait quelques comprimés décents bon marché .
bonne chance!
pour résoudre ce que vous aurez besoin de quelques choses:
-
une façon de capturer des données MIDI à partir de votre clavier. En fonction de l'interface: interface MIDI (classique) ou USB interface MIDI (moderne) l'interface la plus probable est à un ordinateur car il fournit le plus d'options. Les microcontrôleurs USB host ne sont pas aussi simples qu'un simple ordinateur.
-
un schéma pour convertir des données MIDI dans les frappes. Comme un utilisateur l'a souligné, les accords sont la voie à suivre car le nombre de touches ne dépendra pas du nombre de touches de piano.
-
Un moyen d'insérer une clé dans le système d'exploitation. Cela nécessitera un pilote de bas niveau pour être précis. J'ai joué avec des applications qui injectent des données clavier et souris dans des applications de Windows 7, et il peut être flasque et dépend de si une application est actuellement en cours de mise au point. C'est la partie la plus dure de l'interface. Ce qui peut fonctionner est de créer un HID microcontrôleur de clavier USB qui a également une interface série.
l'interface série créerait un port série virtuel. Le logiciel qui lit les données MIDI et produit les frappes peut envoyer un message série au port série virtuel. Le microcontrôleur enverrait une touche pour qu'elle ressemble à une entrée standard du clavier. Cela permettrait interfacer les ports MIDI et les claviers USB MIDI.
Hmmm, avec ce type d'interface, vous pouvez également simuler une souris et utiliser quelques touches piano configuration pour l'axe de la souris et les boutons. La pression peut être utilisée pour déterminer la vitesse du pointeur de la souris. Si vous pouviez éliminer les souris. Un autre avantage de cette approche est tout type de périphérique d'entrée que vous connectez pourrait parler au port série virtuel pour produire des évènements clavier et souris. Donc, si vous souhaitez ajouter d'autres matériel tel que des pédales de batterie ou un joystick il serait question d'ajuster le programme qui parle à l'interface série.
une autre prise sur le ci-dessus est comme certains affichés ci-dessus pour utiliser un Arduino, mais aussi inclure USB Host Shield de Sparkfun pour manipuler des claviers de musique basés USB. Cela permet à L'Arduino d'être programmé comme un clavier ou un combo de souris de clavier dans le chargeur de boot et permet à l'appareil d'agir un USB hôte pour le clavier de musique USB. Alors vous êtes couvert pour les deux types. Bien que, je pense toujours que la méthode du port série virtuel est plus flexible et serait plus facile à programmer à long terme. L'appareil Arduino sera plus difficile à changer qu'un programme ou un service de bureau.
il y a une autre possibilité: Il existe déjà des claviers à une main. J'ai vu des vidéos dessus, mais vous devez déterminer si elles vous blessent ou non.
Vos symptômes de la douleur pourrait très bien psychosomatique .
j'ai pensé un jour que j'avais RSI dans mon poignet pendant de nombreux mois après une longue nuit de jeux informatiques. La thérapie physique n'a pas aidé. Après que j'ai lu un article écrit par un médecin expliquant que RSI, canal carpien, maux de dos et IBS peut souvent être psychosomatique, en particulier chez les personnes qui sont sous pression, la douleur pratiquement disparu (il a aidé à visualiser mon poignet relaxant et le sang qui coule à elle, depuis l'article dit que la constriction des vaisseaux sanguins autonomes est la cause immédiate de la douleur). J'étais en fait la souffrance de beaucoup de stress à l'époque.
il devrait être assez facile d'utiliser quelque chose comme l'interface .net DirectSound pour se connecter à un périphérique MIDI. Vous aurez besoin d'identifier votre périphérique MIDI cible et d'obtenir le code pour écouter les messages entrants (il y a des articles à ce sujet via Google).
puisque vous utilisez le MIDI comme un clavier, il n'y a en principe que deux messages MIDI que vous devez détecter, à savoir noter sur et noter hors tension. Le message MIDI est composé de trois octets de données la commande, la note et la vitesse. La note off n'est que le numéro de la note (parfois les piles MIDI 'bad' envoient une note avec une vitesse zéro à laquelle il faut s'attendre).
une fois les messages traduits, la sortie du clavier devrait être assez simple .NET.
il y a beaucoup de conseils dans les autres réponses sur les détails techniques; je voulais juste vous donner une idée des messages MIDI actuels. Bonne chance!
vous obtiendrez des résultats meilleurs et plus heureux (quel que soit le système d'exploitation et/ou DAW programme que vous aimez utiliser) en jouant n'importe quel clavier MIDI externe comme un contrôleur à travers votre carte son. Ensuite, l'acheminer dans votre logiciel de GB (ou autre) et le ton générer les nombreux sons qu'ils vous ont fourni de cette façon en temps réel.
si votre carte son ne supporte pas les entrées/sorties MIDI (ins / outs /thrus), ce n'est pas un problème. Vous pouvez considérer recherche et investissement dans un convertisseur externe de table MIDI. Beaucoup sont équipés pour convertir davantage midi outs USB 2.0 (by - passing une carte son existante tout à fait).
par exemple: il est assez difficile d'obtenir des résultats" humains comme " grace note via une option de touche de changement Z et X en utilisant un clavier d'ordinateur et un outil de crayon. Quand, à la place, vos propres doigts peuvent simplement jouer avec un clavier MIDI à partir de ses propres gammes physiques de registre d'octave-immédiatement!
je me rends compte que des contraintes budgétaires peuvent être impliquées. Mais, certains de ces claviers" Casio " de type 5 octave apparemment bon marché vendus à Radio Shack pour moins de 100,00 $ US (*ou moins) est tout ce dont vous auriez besoin (en plus, certains de leurs correctifs de son bord et les modules de séquenceur sonnent et manipulent étonnamment bien pour d'autres choses aussi).
RadioShack clavier MIDI options .
comme pour les convertisseurs MIDI externes pour cartes son, j'ai lancé quelques recherches Google pour vous comme suit avec les plates-formes Mac spécifiquement à l'esprit:
beaucoup de ces informations de conversion MIDI externes peuvent être encombrantes pour vous au début, donc j'ai décomposé les choses plus comme" facile à utiliser "pour vos considérations et le budget:
il y a rien de mal à faciliter les claviers virtuels comme VST 's en utilisant DAW . Ils ont leur place.
mais, vous parlez comme un claviériste accompli. Alors, pourquoi ne pas considérer les options externes de conversion MIDI / clavier que je viens de mentionner pour vous-même?
Bonne chance et j'espère que cela vous a donné quelques idées qui peuvent et vont travailler pour vous!
si vous ne voulez pas faire de programmation vous-même, mais que vous voulez juste le problème résolu, vous pouvez acheter un clavier USB-MIDI où vous pouvez réattribuer n'importe quelle clé pour envoyer un signal de sortie de clavier QWERTY au lieu d'une sortie MIDI, par exemple M-Audio Axiom Pro
cette méthode fonctionnera avec n'importe quel OS et n'importe quel ordinateur qui supporte les claviers USB standard puisque le clavier MIDI s'identifiera comme un clavier QWERTY standard.
vous pouvez utiliser un simple AutoIt script pour les deux lire les événements MIDI, voir MIDI Input .
vous aurez également besoin de MIDI UDF et simuler des presses à clés .
lire les événements MIDI devrait être facile, mais différents contrôleurs MIDI (instruments) ont des caractéristiques différentes. Essayez de découvrir ce que votre Piano MIDI peut faire d'abord, puis voir comment vous pouvez mieux mapper ces fonctionnalités à simulé QWERTY - clavier presses.
si vous voulez, vous pouvez avoir quelque chose sur l'écran ou dans le plateau pour vous aider à voir ce que vous faites (c'est-à-dire, pour Maj , Ctrl et Alt simulation).
vous pourriez jeter un coup d'oeil à claviers codifiés . Ils ont l'avantage que vous n'avez pas besoin d'écrire un pilote pour eux avant de les utiliser, et certains sont similaires à la disposition d'un clavier de piano.
si vous connaissez le codage en Java, vous pouvez utiliser cette façon:
tout d'abord, implémentez un javax.sound.midi.Receiver
avec une méthode send(..)
qui établit la correspondance entre les événements 'Note on' et les frappes comme vous le souhaitez.
vous devez obtenir le contenu du MidiMessage avec sa méthode getMessage
et l'intégrer à votre façon. La signification des octets de message peut être trouvée dans messages MIDI .
après avoir reçu une "note sur" ou une "note off" pour une certaine touche de clavier, vous pouvez l'affecter à une touche que vous aimez en lui assignant une constante de la classe KeyEvent, quelque chose comme C#4 -> KeyEvent.VK_A et ainsi de suite. Ce code clé peut ensuite être utilisé par les méthodes java.awt.Robot
keyPress et keyRelease pour réellement envoyer la frappe à L'OS et donc à d'autres applications.
je sais exactement ce que vous ressentez. faire des commandes de codage de clavier folles toute la journée me fait mal aux mains.
Un piano ne sera pas faire le travail (de votre mieux avoir un Dorvak clavier ). La meilleure solution serait la télépathie mentale ou, à ce moment précis, le contrôle de la voix.
je trouve que la crème directe Arthro-Aid est bonne et Wild Blend fonctionne aussi bien.
l'autre chose que j'ai remarqué est que la souris est aussi principalement à blâmer, la plupart ne sont pas ergonomiques et en cliquant tellement cause RSI et CTS . Pour surmonter cela, j'utilise occasionnellement des cliqueurs de souris automatiques, par exemple cliqueur de souris automatique .
je connais des brevets avec des souris comme poignées que vous serrez, je suis impatient d'acheter.
PS: obtenez votre protection du revenu assurance avant de consulter un médecin à propos de vos mains!
Et ne programme le week-end:)
Je suis D'accord avec la réponse de Brian O'Dell - si c'était mon projet, je le ferais en matériel. Il a l'avantage d'être indépendant de la plate - forme et du matériel-votre boîtier remplace le besoin d'une interface MIDI-USB et D'une API PC.
mbed est une plate-forme de prototypage rapide qui est très facile à apprendre, et a de multiples avantages par rapport à Arduino IMHO (compilateur en ligne, 512 KB flash, 96 MHz, langage C++). Il dispose d'une interface clavier USB et une" 15197092020 "interface USB Midi pré-écrite pour vous.
la communauté est très amicale et prête à aider, et il ya beaucoup de projets existants en utilisant à la fois MIDI et USB HID émulation - recherche Youtube pour" mbed MIDI " ou similaire.
si vous utilisez Linux ont une prise à Footware .
il devrait être exactement ce que vous recherchez - si vous ajustez les pitches MIDI à un keymapping de votre goût...
Je n'ai jamais pensé que cela pourrait être utile pour quelqu'un d'autre que moi ;o)
pour taper plus vite c'est peut-être une idée de "jouer" les consonnes de la main gauche et les voyelles de la main droite (ou vice versa). Vous n'avez pas besoin d'une clé pour chaque consonne, parce que vous pourriez les combiner comme:
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 ...
vous pouvez laisser deux touches de fermeture (comme c# + d , cela ne fonctionne pas facilement). Vous pouvez même laisser les clés noires.
pour les voyelles il est facile:
A E I O U Y
c d e F G a
cependant, pensez aussi à utiliser des touches multiples: comme c# = aa , d# = ee , etc.
vous pouvez faire le même truc avec les consonnes (ayant combinaison de touches pour st, sp, etc.)
vous pouvez jouer consonnes et voyelles en même temps, les lier ensemble alternativement ou avec priorité (consonnes, puis voyelles, etc.)
vous devrez probablement apprendre à taper à nouveau, mais je suis sûr que vous pouvez faire beaucoup plus rapide qu'une personne normale de Dactylographie peut.
utilisez une autre octave pour les chiffres et les caractères spéciaux, utilisez un commutateur pour Maj, utilisez une combinaison facile à jouer une combinaison de touches pour l'espace (comme deux c-S avec à la fois la main gauche et la main droite, assurez-vous qu'il ne signifie pas (a) caractère(s)).
pense aussi à en utilisant une pédale qui peut avoir des valeurs de 0-127. Vous pourriez l'utiliser comme décalage ou de l'espace aussi ... ou retour arrière/entrée.
j'espère que cela donnera des idées nouvelles et bonne chance avec votre projet.
les réponses à votre question sont déjà sur cette page, mais je voudrais faire quelques entrées supplémentaires.
D'abord, je ne suis pas convaincu que taper sur un clavier de piano puisse arrêter les douleurs. À cet égard, je vous suggère d'examiner quelque chose comme Nuance Dragon - naturellement parler pour votre dactylographie.
deuxièmement, si vous insistez pour aller de l'avant avec ceci, vous aurez probablement besoin d'aller avec Nasebnbaar (même si Je ne suis pas d'accord que ce sera plus rapide) et Brian suggestion. C'est probablement quelque chose que vous devriez contacter un ingénieur pour le faire correctement, mais si vous devez le faire vous - même, vous feriez mieux de demander des instructions sur Génie Électrique-Echange de pile.
troisièmement , si vous voulez simplement comprendre comment les fichiers MIDI fonctionnent , comment les lire programmatiquement , et comment faire pour simuler un clavier course , alors bonne chance ;)
enfin, j'aimerais en obtenir une copie si vous décidez éventuellement d'opter pour la deuxième option :)