J'ai des problèmes RSI et j'ai essayé 30 claviers d'ordinateur différents qui m'ont tous fait mal. Jouer du piano ne me fait pas mal. Je joue du piano depuis environ 20 ans sans aucun problème de douleur. Je voudrais savoir s'il existe un moyen de capturer du MIDI à partir d'un clavier MIDI et de générer des traits de clavier. Je ne connais rien du tout au MIDI, mais j'aimerais avoir des conseils sur la façon de convertir ce signal en une frappe.
727
Réponses:
Une bonne bibliothèque en .NET avec un support midi complet (BASS), allez sur http://www.un4seen.com .
Et pour l'autre partie, la traduction des notes midi du clavier en touches et plus, j'irais pour AutoItX, l'interface ActiveX / COM et DLL pour autoIt. Infos et téléchargement, rendez-vous sur http://www.autoitscript.com/site/autoit/
Pas besoin d'écrire le pilote du clavier.
la source
Je n'ai pas fait de programmation MIDI depuis des années, mais votre idée fondamentale est très saine (sans jeu de mots).
Le MIDI est un flux d '"événements" (ou "messages"), deux des plus fondamentaux étant "note on" et "note off" qui portent avec eux le numéro de note (0 = C cinq octaves en dessous du do moyen, jusqu'à 127 = G cinq octaves au-dessus du G au-dessus du do moyen, en demi-tons). Ces événements portent un numéro de "vélocité" sur les claviers sensibles à la vélocité ("tactile"), avec une force (vous l'avez deviné) comprise entre 0 et 127.
Entre la vélocité, les accords et les pédales, je pense que vous pourriez trouver une assez bonne interface de "frappe" pour le clavier de piano. Les accords en particulier pourraient être une technique très puissante - comme je l'ai mentionné dans les commentaires, c'est pourquoi les sténographes de rang peuvent utiliser une machine à sténotypes pour suivre les gens qui parlent pendant des heures d'affilée, alors que même les dactylographes de haut niveau ne le feraient pas '' t être en mesure de n'importe quelle durée via des claviers de style machine à écrire normaux. Comme pour la sténographie machine, vous auriez besoin d'un "dictionnaire" des significations des accords et des séquences d'accords. (Pouvez-vous dire que je travaillais dans le domaine logiciel de la sténographie de la machine?)
Pour ce faire, les pièces fondamentales sont:
Pour être le plus largement compatible avec les logiciels, vous devez l'écrire en tant que pilote de périphérique clavier. Il s'agit d'un plug-in pour le système d'exploitation qui sert de source pour les événements de clavier, parlant au matériel sous-jacent (dans votre cas, le clavier de piano). Pour Windows et Linux, vous voudrez probablement utiliser C pour cela.
Cependant, comme vous ne faites que générer des frappes (sans essayer de les intercepter, ce que j'essayais de faire il y a des années), vous pouvez peut-être utiliser toutes les fonctionnalités du système d'exploitation pour envoyer des frappes artificielles. Windows a une interface pour le faire (probablement plusieurs, celle à laquelle je pense,
SendInput
mais je sais qu'il existe une interface "journal" qui fait quelque chose de similaire), et je suis sûr que d'autres systèmes d'exploitation font de même. Cela pourrait bien être suffisant pour vos besoins - c'est là que je commencerais, car la route du pilote de périphérique va être maladroite et vous devrez probablement utiliser un langage différent pour Java que Java. (Je suis un grand fan de Java, mais les interfaces que les systèmes d'exploitation utilisent pour parler aux pilotes de périphériques ont tendance à être plus facilement consommées via C et similaires.)Mise à jour : En savoir plus sur le "dictionnaire" des accords aux frappes:
Fondamentalement, le dictionnaire est un trie (merci, @Adam) que nous recherchons avec la correspondance du préfixe le plus long. Détails:
Dans la sténographie machine, le sténographe écrit en appuyant simultanément sur plusieurs touches de la machine sténotype, puis en les relâchant toutes. Ils appellent cela un "coup" du clavier; c'est comme jouer un accord au piano. Les coups correspondent souvent (mais pas toujours) à une syllabe de la langue parlée. Comme les syllabes, parfois un trait (accord) a un sens à lui tout seul, d'autres fois il n'a qu'un sens combiné avec les traits suivants. (Pensez "bien" vs "bien" suivi de "au revoir"). Bien qu'ils soient fortement influencés par l'école dans laquelle ils ont étudié, chaque sténographe aura son propre "dictionnaire" des coups qu'ils utilisent pour signifier quoi, un dictionnaire qu'ils perfectionneront continuellement au cours de leur vie professionnelle. Le dictionnaire aura des entrées où la partie sténographique ("sténo", pour faire court) est longue d'un trait ou longue. Fréquemment, il y aura plusieurs entrées avec le même coup de départ qui sont différenciées par leur longueur et par les coups suivants. Par exemple (et je n'utiliserai pas de véritable sténo ici, juste des espaces réservés), il peut y avoir ces entrées:
(Ces lettres ne sont pas censées être des notes de musique, juste des marqueurs abstraits.)
Notez que
A
démarre plusieurs entrées, et notez également que la façon dont vous traduisez unC
trait dépend de si vous avez déjà vu unA
, unB
ou un nouveau départ.Notez également que (bien que cela ne soit pas illustré dans le très petit exemple ci-dessus), il peut y avoir plusieurs façons de "jouer" le même mot ou la même phrase, plutôt qu'une seule. Les sténographes font cela pour faciliter le passage d'un mot précédent au suivant selon la position de la main. Il y a une analogie évidente avec la musique, et vous pouvez l'utiliser pour rendre votre flux de frappe plus proche de la lecture de musique, afin à la fois d'éviter que cela n'affecte négativement votre jeu de piano et de maximiser la probabilité que cela aide réellement avec le RSI.
Lors de la traduction de sténo en texte standard, nous utilisons à nouveau une recherche de «correspondance du préfixe le plus long»: l'algorithme de traduction commence par le premier trait jamais écrit et recherche les entrées commençant par ce trait. S'il n'y a qu'une seule entrée et qu'elle est longue d'un trait, alors nous pouvons dire de manière fiable "c'est l'entrée à utiliser", sortir le texte correspondant, puis recommencer à zéro avec le trait suivant. Mais plus probablement, ce trait démarre plusieurs entrées de longueurs variables. Nous regardons donc le coup suivant et voyons s'il y a des entrées qui commencent par ces deux coups dans l'ordre; et ainsi de suite jusqu'à ce que nous obtenions un match.
Donc, avec le dictionnaire ci-dessus, supposons que nous ayons vu cette séquence:
Voici comment nous le traduirions:
A
est le début de trois entrées de longueurs variables; regardez le coup suivant:C
A/C
correspond à une seule entrée; sortie "climatisation" et recommencez à zéro avec le coup suivant:B
B
démarre deux entrées; regardez le coup suivant:B
B/B
ne démarre rien; prendre la correspondance précédente (B
) la plus longue et la sortie ("abeille")B
= "bee", nous avons encore unB
trait dans notre tampon. Il démarre deux entrées, alors regardez le coup suivant:C
B/C
correspond à une entrée; sortir "parce que" et recommencer à zéro avec le coup suivant:A
A
commence trois entrées; regardez le coup suivant:B
A/B
démarre deux entrées; regardez le coup suivant:C
A/B/C
ne correspond qu'à une entrée; sortie "alphabétique" et recommencez avec le coup suivant:A
A
commence trois entrées; regardez le coup suivant:B
A/B
démarre deux entrées; regardez le coup suivant:D
A/B/D
ne correspond à rien, alors prenez la plus longue correspondance précédente (A/B
) et utilisez-la pour sortir "alphabet". Cela nous laisseD
encore dans le tampon.D
commence deux entrées, donc nous devrions normalement regarder le coup suivant - mais nous avons traité tous les coups, alors considérez-le isolément. Isolément, cela se traduit par "chien", donc sortez cela.Aspects de ce qui précède à noter:
A/B
devrait être traduit par "alphabet", pas "alpha" et "abeille".E
seraient un "non traduit".)la source
Pensez à faire quelque chose dans le matériel qui émule un clavier USB (ou PS / 2?). Vous ne serez plus dépendant d'un système d'exploitation spécifique ou d'une API de système d'exploitation spécifique. Une solution matérielle résistera à l'épreuve du temps. Ne soyez pas bloqué en utilisant une ancienne API dans Windows 7 lorsque tout le monde exécute Windows 11! Arduino est assez facile à apprendre.
Il y a une tonne d'informations et d'aide pour Arduino. Il s'agit d'une plate-forme de piratage de matériel conçue pour les débutants. Il ne fera que s'agrandir maintenant que Google pousse Arduino.
EDIT: logiciel et matériel du clavier USB virtuel
la source
Il me semble que vous cherchez moins à obtenir des conseils sur la façon de construire vous-même et plus à demander quelles ressources sont déjà disponibles pour accomplir ce que vous voulez. Selon votre système d'exploitation, il existe de nombreuses façons d'accomplir cela sans avoir à écrire votre propre programme à partir de zéro:
Course MIDI
Gratuit. Pour Mac OS X 10.3 et supérieur . Celui-ci est spécifiquement livré avec "la possibilité d'utiliser n'importe quel clavier MIDI comme un remplacement complet du clavier de l'ordinateur."
Traducteur MIDI de Bome
Gratuit / Postcardware (c'est un peu étrange). Pour Windows 2000 et, et Mac OS X . Il semble au départ être davantage axé sur l' utilisation du type AutoHotkey , mais à plus long terme, je pense qu'il pourrait faire ce que vous voulez bien.
Max et aka.keyboard
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, cela ne devrait pas être trop mauvais.
la source
Vous pouvez accéder au matériel avec des exemples de code source dans .NET dans MIDI DotNet .
Un exemple de travail complet en tant que code source pour créer un flux de données de notes MIDI se trouve dans VB 5/6-Tipp 0521: MIDI-Töne erzeugen (Visual Basic 6.0, quelque part est également la version .NET)
Un moyen de simuler les coups de clavier est dans VB 5/6-Tipp 0155: Tastaturereignisse simulieren (Visual Basic 6.0, quelque part est la version .NET aussi)
Et reconnaître les frappes est décrit dans Tipp-Upload: VB.NET 0266: Globaler KeyHook .
Ensuite, utilisez simplement une bonne matrice de travail pour un joueur de piano
Au piano et lorsque vous êtes un bon joueur, vous pouvez avoir 10 doigts sur le clavier et si la matrice est utilisable, vous pouvez être beaucoup plus rapidement que tout utilisateur de clavier d'ordinateur, je pense. :-)
Dans ce cas, si je comprends bien votre question, cela ne devrait pas être une grosse chose.
la source
J'ai étudié la performance de piano à l'université, puis je me suis lancée dans la conception d'interactions, la programmation et l'utilisation de Vim , j'ai donc passé beaucoup de temps à prototyper des choses comme ça.
Vous pouvez obtenir ce travail assez rapidement sous Linux en utilisant le langage de programmation graphique pour artistes multimédias, " Pure Data ", ainsi que le x11key external par Alex Andre .
Sur Mac, vous pouvez utiliser MidiStroke . Je crois qu'une méthode sur Windows impliquait les outils MidiOx et AutoHotKey . À un autre moment, j'avais une version utilisant le plugin Java pour Max / MSP . Je crois que Patrice Colet a fait une fenêtre externe pour Pure Data qui fonctionnait aussi bien, mais je n'arrive plus à la localiser. En outre, il existe un externe pour MaxMSP qui peut le faire sous Windows. Enfin, l' Osculator non gratuit mais génial peut faire ce que vous voulez - voir la page des fonctionnalités.
Quand je l'ai fait fonctionner, je ne l'ai jamais collé, car je ne pouvais pas arrêter l'outillage avec la mise en page. C'était cool d'avoir mon moniteur sur mon clavier électrique! Bonne chance.
la source
À propos du MIDI
Vous avez déclaré que vous "ne connaissiez rien du MIDI". La technologie MIDI est assez simple une fois que vous la comprenez, mais elle peut être déroutante au départ. L'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 des interactions MIDI), est un livre intitulé MIDI for the Technophobe . C'est un livre facile à lire et très utile.
Données pures et max
Dans mon expérience de développement de multimédia interactif, j'ai rencontré deux programmes très similaires qui facilitent la connexion et le mappage des signaux / entrées de n'importe quel appareil.
Ce sont Max pour un environnement Mac et Pure Data pour un environnement PC. Les deux ont une pléthore de documentation en ligne et de didacticiels YouTube. Le didacticiel vidéo Max / MSP 1 - Utilisation de votre clavier d'ordinateur comme midikeyboard (style ableton) montre un programme intégré à Max qui mappe un clavier d'ordinateur aux entrées d'un clavier MIDI (ce qui est fondamentalement l'opposé de ce que vous essayez de faire). Vous pouvez obtenir les résultats escomptés en utilisant le même modèle, mais en inversant les signaux / mappages.
AutoHotKey
AutoHotKey est un utilitaire open source gratuit pour Windows qui vous permet de remapper les clés et les boutons de vos appareils en macros. Il prend en charge nativement les claviers QWERTY, les joysticks et les macros de souris.
Cependant, j'ai pu trouver une implémentation prenant en charge la cartographie spécifique que vous recherchez. Ces deux fils expliquent le processus:
Prise en charge MIDI IN dans AutoHotkey , la discussion du cas d'utilisation. L'auteur cherchait un programme capable de détecter l'entrée MIDI IN et de le traduire en touches .
Bibliothèque d'entrée MIDI , la solution au problème de l'auteur et le code / patch publié sur AutoHotKey qui implémente réellement le résultat souhaité.
Fondamentalement, il semble que AutoHotKey, avec le patch personnalisé de cet utilisateur, fournira exactement ce dont vous avez besoin pour créer un mappage d'un clavier MIDI au signal d'entrée d'un clavier QWERTY. Il vous suffit d'installer, de configurer et de définir vos mappages.
Rien d'autre?
Certaines des autres réponses vous ont donné des informations beaucoup plus complètes sur la programmation MIDI et MIDI, en général, mais comme l'indique votre message, cela ne semble pas être tout à fait ce que vous recherchez. Je voudrais vous aider davantage si possible, mais il serait plus facile si vous pouviez être plus précis sur le type d'informations que vous recherchez. Par exemple, êtes - vous plus intéressé par la façon de convertir un des signaux d'entrée du clavier MIDI à un QWERTY signaux de clavier , ou est votre principal intérêt de trouver une solution hors de la boîte à votre problème spécifique? Que recherchez-vous qui n'a pas encore été résolu?
la source
Vous pouvez pirater votre propre clavier USB assez rapidement en utilisant un micro contrôleur Teenys.
En fait, ils ont un exemple de code pour savoir comment fabriquer un clavier USB .
Vous pouvez aborder ces deux façons:
Obtenez un vieux piano et connectez des commutateurs directement à l'adolescent
Ajoutez la logique supplémentaire pour vous connecter au port MIDI et le décodage nécessaire.
la source
En fait, je travaillais sur ce il y a un moment, en essayant de capturer Rock Band entrées de batterie dans mon ordinateur (faire un petit émulateur de tambour Java maison) Quoi qu'il en soit, j'ai posé une question ici à ce sujet, problème de temporisation (il y a un code de vote là - dedans , ainsi que ce que j'essayais de faire.). Et si je peux trouver mon programme, je peux vous donner le code, il utilise une API tierce ( JInput ).
Bonne chance de toute façon.
la source
Essayez le traducteur MIDI de Bome .
Il fonctionne sur plusieurs plates-formes, peut convertir n'importe quelle entrée MIDI en une frappe facile, rapide à installer et à configurer, plus il est gratuit pour un usage personnel.
Il existe un didacticiel, Astuce rapide: Traduction MIDI - MIDI to Keystrokes , sur la façon de le configurer facilement:
Fondamentalement, il existe des possibilités infinies de ce que vous pouvez faire, y compris les accords et les touches de modification. Je l'utilise pour ma plate-forme audio en direct pour contrôler ma DAW à l' aide de mon piano et je n'ai jamais eu de problème.
la source
En Java, vous pouvez utiliser JMF (framework Java Media) pour convertir des signaux MIDI. La conception de base du clavier est facile à utiliser, c'est-à-dire l'interface utilisateur; et placez les caractères / symboles fréquemment utilisés à portée de main.
L'exemple de code et l'API dans Java Sound Resources: Exemples: Digital Signal Processing (DSP) aident à comprendre comment traiter le signal.
Quelques références supplémentaires:
la source
Il existe un programme appelé GlovePIE . Vous pouvez le programmer dans un langage de script simple, et je crois qu'il prend en charge le MIDI. Je ne sais pas si cela rentre dans la catégorie "Java", mais quand même, c'est un excellent programme. Je l'ai utilisé pour contrôler des robots à l'aide de contrôleurs PS3 . C'est très puissant.
la source
De nombreux claviers ont un connecteur de port série ( RS-232 ) pour envoyer des signaux MIDI à l'ordinateur. J'utilise un programme appelé Girder pour convertir la communication du port série en touches de clavier.
Girder possède une fonction de «mappage» qui vous permet de mapper chaque touche, une par une, sur la séquence de touches correspondante.
Cela pourrait être la solution simple que vous recherchez!
la source
Apprenez simplement la sténographie!
Cela ressort clairement de toute la discussion de votre part. Vous ne voulez pas réinventer des roues, d'un point de vue technique. Mais une fois que vous avez établi une connexion (ce que cette question demande) et que vous êtes prêt à travailler, vous avez encore la plupart du travail devant vous: vous devez entraîner votre cerveau. Vous devez également inventer le moyen le plus intelligent et le plus efficace de le faire - un problème de conception totalement hors du domaine des techniciens informatiques. Vous ou n'importe lequel d'entre nous ne répondriez pas.
Heureusement, le problème a été résolu et affiné malgré des siècles de maturation ...
Apprenez la sténographie!
Oui, cela vous fera reculer. Mais que valent des centaines d'heures de votre temps, avec au final un résultat moins favorable? En outre, l'article de Wikipedia sur la sténographie dit: «ça ressemble plus à un clavier de piano».
À moins, bien sûr, que vous ne vouliez avoir un effet secondaire. Je dois l'admettre, je n'ai jamais pensé à cette possibilité, ce serait vraiment amusant de voir quelqu'un sortir un texte d'un clavier de piano!
Vous pouvez commencer avec un clavier USB avec pavé tactile (ou un bâton de pointage serait-il plus ergonomique?), Utilisez Plover pour le traduire (je suis sûr qu'il peut être configuré pour laisser les touches non alphabétiques conserver leur fonctionnalité car elles sont essentielles pour programmation), ou, suivez le fil Re: Plover clavier pour rouler votre propre clavier de sténographie USB, ou, achetez un sténotype .
Bonne chance!
la source
pthread
?Jetez un œil au jeu d'arcade MAME . Ils ont construit des périphériques matériels pour permettre l'entrée de n'importe quel nombre d'éléments différents. L' iPac , par exemple, convertit les signaux des périphériques d'entrée en USB que l'ordinateur peut ensuite utiliser pour émuler les touches. Vous pouvez utiliser n'importe quelle combinaison de périphériques d'entrée disposés de n'importe quelle manière qui semble confortable sans logique de programmation folle requise - parce que le logiciel pour interpréter l'entrée est déjà fait et bien testé.
J'ai vu des entrées de cockpit de simulateur de vol, des kiosques personnalisés et des systèmes de vote construits dans cette méthode ..... et le prix est correct!
la source
Pour résoudre ce problème, vous aurez besoin de quelques éléments:
Un moyen de capturer des données MIDI à partir de votre clavier. Selon l'interface: interface MIDI (classique) ou interface USB MIDI (moderne), l'interface la plus probable est celle d'un ordinateur car elle offre le plus d'options. Les microcontrôleurs hôtes USB ne sont pas aussi simples que l'utilisation d'un ordinateur.
Un schéma pour convertir les données MIDI en frappes. Comme l'a souligné un utilisateur, les accords sont la voie à suivre car le nombre de touches ne dépendra pas du nombre de touches de piano.
Un moyen d'injecter 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 de clavier et de souris dans des applications dans Windows 7, et cela peut être irrégulier et dépendre si une application est actuellement au point. C'est la partie la plus difficile de l'interface. Ce qui peut fonctionner est de créer un microcontrôleur à clavier USB HID qui possède é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 frappe afin de ressembler à une entrée clavier standard. Cela permettrait d'interfacer les ports MIDI et les claviers MIDI USB.
Hmmm, avec ce type d'interface, vous pouvez également simuler une souris et utiliser une configuration de touches de piano pour l'axe et les boutons de la souris. La pression pourrait être utilisée pour déterminer la vitesse du pointeur de la souris. Vous pouvez donc également éliminer la souris. Un autre avantage de cette approche est que tout type de périphérique d'entrée que vous connectez pourrait communiquer avec le port série virtuel pour produire des événements de clavier et de souris. Donc, si vous souhaitez ajouter d'autres matériels tels que des pédales de batterie ou un joystick, il s'agira d'ajuster le programme qui communique avec l'interface série.
Un autre point de vue sur ce qui précède est comme certains postés ci-dessus pour utiliser un Arduino, mais inclut également le bouclier hôte USB de Sparkfun pour gérer les claviers de musique basés sur USB. Cela permet à l'Arduino d'être programmé comme un clavier ou une combinaison clavier / souris dans la puce du chargeur de démarrage et permet à l'appareil d'agir comme hôte USB pour le clavier musical basé sur USB. Ensuite, vous êtes couvert pour les deux types. Cependant, je pense toujours que la méthode du port série virtuel est plus flexible et serait plus facile à programmer à long terme. Le périphérique Arduino sera plus difficile à changer qu'un programme ou un service de bureau.
Il existe une autre possibilité: des claviers accordés à une main existent déjà. J'ai vu des vidéos sur eux, mais vous devrez déterminer si ceux-ci vous blessent aux mains ou non.
la source
Il devrait être assez facile d'utiliser quelque chose comme l'interface .NET DirectSound pour se connecter à un périphérique MIDI. Vous devrez identifier votre appareil MIDI cible, puis obtenir le code pour écouter les messages entrants (il y a des articles à ce sujet via Google).
Puisque vous utilisez le MIDI in comme clavier, il n'y a essentiellement que deux messages MIDI que vous devez détecter, à savoir note on et note off. Le message MIDI est composé de trois octets de données spécifiant la commande, la note et la vélocité. La note désactivée n'est que le numéro de la note (parfois les «mauvaises» piles MIDI envoient une note avec une vélocité nulle à laquelle vous devez également vous attendre).
Une fois les messages traduits, la sortie du clavier devrait être assez simple à partir de .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 réels. Bonne chance!
la source
Vous obtiendrez des résultats meilleurs et plus heureux (quel que soit le système d'exploitation et / ou le programme DAW que vous souhaitez utiliser) en jouant à n'importe quel clavier MIDI externe en tant que contrôleur via votre carte son. Ensuite, acheminez cela dans votre logiciel GB (ou autre) et la tonalité génère les nombreux sons qu'ils vous ont fournis de cette façon en temps réel.
Si votre carte son ne prend pas en charge les E / S MIDI (entrées / sorties / thrus), ce n'est pas un problème. Vous pouvez envisager de rechercher et d'investir dans un convertisseur de table MIDI externe. Beaucoup sont équipés pour convertir davantage les sorties MIDI en USB 2.0 (en contournant complètement une carte son existante).
Par exemple: il est assez difficile d'obtenir des résultats de note de grâce "comme un humain" via une option de changement de clé Z et X en utilisant un outil de clavier et de crayon d'ordinateur. Quand, au lieu de cela, vos propres doigts peuvent simplement jouer cela avec un clavier MIDI à partir de ses propres plages de registres d'octave physiques - immédiatement!
Je me rends compte que des contraintes budgétaires peuvent être impliquées. Mais, certains de ces claviers à 5 octaves de type Casio apparemment bon marché vendus chez Radio Shack pour moins de 100 $ US (* ou moins) sont tout ce dont vous auriez besoin (en plus, certains de leurs correctifs sonores et modules de séquenceur intégrés incroyablement bien pour d'autres choses aussi).
Options du clavier MIDI RadioShack .
En ce qui concerne les convertisseurs MIDI externes pour les cartes son existantes, j'ai effectué quelques recherches Google comme suit avec les plates-formes Mac spécifiquement à l'esprit:
Beaucoup de ces informations de conversion MIDI externes peuvent être lourdes pour vous au début, donc j'ai décomposé les choses plus comme "conviviales" pour vos considérations et votre budget:
Il n'y a rien de mal à faciliter les claviers virtuels comme VST lors de l'utilisation de DAW . Ils ont leur place.
Mais vous parlez comme un claviériste accompli. Alors, pourquoi ne pas considérer les options de conversion / clavier MIDI externe que je viens de mentionner par vous-même?
Bonne chance et j'espère que cela vous a donné quelques idées qui peuvent et vont fonctionner pour vous!
la source
Si vous ne voulez pas faire de programmation vous-même mais voulez juste que le problème soit résolu, vous pouvez simplement acheter un clavier USB-MIDI où vous pouvez réaffecter n'importe quelle touche pour envoyer un signal de sortie de clavier QWERTY au lieu d'une sortie MIDI, pour exemple M-Audio Axiom Pro
Cette méthode fonctionnera avec tout système d'exploitation et tout ordinateur prenant en charge les claviers USB standard, car le clavier MIDI s'identifiera comme un clavier QWERTY standard.
la source
Vous pouvez utiliser un simple script AutoIt pour lire les événements MIDI, voir Entrée MIDI .
Vous aurez également besoin de MIDI UDF et simulez les pressions de touches .
La lecture des événements MIDI devrait être facile, mais différents contrôleurs MIDI (instruments) ont des fonctionnalités différentes. Essayez d'abord de découvrir ce que votre piano MIDI peut faire, puis voyez comment vous pouvez mieux mapper ces fonctionnalités avec des presses à clavier QWERTY simulées.
Si vous voulez, vous pourriez avoir quelque chose à l' écran ou dans le plateau pour vous aider à voir ce que vous faites (qui est, pour Shift, Ctrlet la Altsimulation).
la source
Vous pourriez jeter un œil aux claviers accordés . Ils ont l'avantage que vous n'avez pas besoin d'écrire un pilote pour eux avant de pouvoir les utiliser, et certains sont similaires à la disposition d'un clavier de piano.
la source
Si vous connaissez le codage en Java, vous pouvez utiliser cette méthode:
Tout d'abord, implémentez un
javax.sound.midi.Receiver
avec unesend(..)
méthode qui mappe les événements «Note sur» aux frappes comme vous le souhaitez.Vous auriez besoin d'obtenir le contenu du MidiMessage avec sa
getMessage
méthode et de l'interpréter à votre façon. La signification des octets de message peut être trouvée dans les messages MIDI .Après avoir reçu une `` note activée '' ou une `` note désactivée '' pour une certaine touche du clavier, vous pouvez la mapper à une touche que vous aimez en lui affectant 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
java.awt.Robot
les méthodes keyPress et keyRelease pour envoyer réellement la frappe au système d'exploitation et donc à d'autres applications.la source
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 très facile à apprendre et qui présente de multiples avantages par rapport à Arduino IMHO (compilateur en ligne, 512 Ko flash, 96 MHz, langage C ++). Il dispose d'une interface clavier USB et d'une interface USB Midi pré-écrite pour vous.
La communauté est très sympathique et prête à aider, et il existe de nombreux projets existants utilisant à la fois l'émulation MIDI et USB cachée - recherchez Youtube pour "mbed MIDI" ou similaire.
la source
Si vous utilisez Linux, essayez Footware .
Cela devrait être exactement ce que vous cherchez - si vous ajustez les hauteurs MIDI à un mappage de touches à votre goût ...
Je n'ai jamais pensé que cela pourrait être utile à quelqu'un d'autre que moi; o)
la source
Essayez d'utiliser un système basé sur un microcontrôleur, comme Arduino .
la source
Ce ne serait pas trop difficile.
Je suppose que vous êtes sous Windows , mais je n'en suis pas sûr. J'ai écrit un séquenceur MIDI , http://pianocheetah.com , en simple vieux C ++ , et il vous permet d'utiliser le clavier du piano pour exécuter des commandes. Il n'y a aucune raison pour laquelle vous ne pourriez pas faire la même chose pour pousser les touches dans le flux d'entrée du clavier.
Mais viens maintenant. Vous vous souvenez du temps qu'il vous a fallu pour apprendre le clavier en premier lieu, non? Êtes-vous prêt à recommencer? Et êtes-vous prêt à polluer votre clavier béni avec un tas de symboles clés à l'air stupide partout?
Vous devrez utiliser au moins 26 caractères alpha, 10 numériques, 11 signes de ponctuation et au moins 12 touches de fonction ET leurs états décalés. Cela représente donc 60 touches et des états décalés. Cela brûlera 5 octaves complètes de clés. Vous ferez du piano "houblon" = tout = le temps. Dites adieu à la saisie tactile.
Vous pouvez vous sauver de RSI , mais vous avez créé un autre type de cauchemar pour vous-même.
Et bonne chance pour que votre patron vous achète un clavier MIDI au travail.
Si vous avez vraiment appris à jouer du piano, vous avez appris à jouer sans stress. Faites cela sur le clavier QWERTY . Pas de tension. Commencez lentement.
la source