it-swarm.com.de

Verwenden einer Klaviertastatur als Computertastatur

Ich habe RSI Probleme und habe 30 verschiedene Computertastaturen ausprobiert, die mir alle Schmerzen bereiteten. Klavierspielen schmerzt mich nicht. Ich spiele seit ungefähr 20 Jahren Klavier ohne Schmerzen. Ich würde gerne wissen, ob es eine Möglichkeit gibt, MIDI von einem MIDI Tastatur- und Ausgangstastaturanschlag zu erfassen. Ich weiß überhaupt nichts über MIDI aber ich hätte gerne eine Anleitung, wie man dieses Signal in einen Tastenanschlag umwandelt.

Eine gute Bibliothek in .NET mit voller Midi-Unterstützung (BASS) finden Sie unter http://www.un4seen.com .

Und für den anderen Teil, der die MIDI-Noten der Tastatur in Tasten und mehr übersetzt, würde ich AutoItX, ActiveX/COM und DLL Schnittstelle zu autoIt. Info und Download, gehe zu http://www.autoitscript.com/site/autoit/

Sie müssen keinen Tastaturtreiber schreiben.

16
eln

Ich habe seit Jahren keine MIDI programmiert, aber Ihre Grundidee ist sehr solide (kein Wortspiel).

MIDI ist ein Strom von "Events" (oder "Messages"), von denen zwei die "Note on" und "Note off" sind, die die Notennummer (0 = C, fünf Oktaven unter dem mittleren C, bis 127 =) mit sich führen G fünf Oktaven über dem G über dem mittleren C, in Halbtönen). Diese Ereignisse tragen eine "Anschlagstärke" auf Tastaturen, die anschlagdynamisch ("berührungsempfindlich") sind, mit einer Kraft von (Sie haben es erraten) zwischen 0 und 127.

Zwischen Velocity, Chording und den Pedalen könnte man sich eine recht gute "Tipp" -Schnittstelle für die Klaviertastatur einfallen lassen. Insbesondere das Aufzeichnen von Texten könnte eine sehr leistungsfähige Technik sein - wie ich in den Kommentaren erwähnt habe, können Stenografen daher ein Stenotyp-Maschine verwenden, um stundenlang hintereinander mit den Leuten zu sprechen, wenn Selbst hochkarätige Schreibkräfte wären über normale Tastaturen im Schreibmaschinenstil nicht für längere Zeit in der Lage. Wie bei der Maschinenstenographie benötigen Sie ein "Wörterbuch" der Bedeutung von Akkorden und Akkordfolgen. (Kannst du sagen, dass ich früher auf der Softwareseite der Maschinenstenographie gearbeitet habe?)

Zu diesem Zweck sind die grundlegenden Teile:

  • Empfangen von MIDI Eingang. Versuchen Sie nicht, dies selbst zu tun, sondern verwenden Sie eine Bibliothek. Bearbeiten : Anscheinend ist das = Java Sound API nterstützt MIDI , einschließlich des Empfangs von Events von MIDI Controllern. Cool. Diese Seite kann auch nützlich sein.
  • Konvertieren dieser Daten in die Tastenanschläge, die Sie senden möchten, z. über das oben erwähnte Wörterbuch.
  • Ausgabe der Tastenanschläge an den Computer.

Um mit Software weitgehend kompatibel zu sein, müssen Sie diese als Tastatur-Gerätetreiber schreiben. Dies ist ein Plug-In für das Betriebssystem, das als Quelle für Tastaturereignisse dient und mit der zugrunde liegenden Hardware (in Ihrem Fall der Klaviertastatur) kommuniziert. Für Windows und Linux werden Sie wahrscheinlich C dafür verwenden wollen.

Da Sie jedoch nur generieren Tastenanschläge ausführen (ohne diese abzufangen, wie ich es vor Jahren versucht habe), können Sie möglicherweise alle Funktionen des Betriebssystems zum Senden künstlicher Daten verwenden Tastenanschläge. Windows hat eine Schnittstelle, um das zu tun (wahrscheinlich mehrere, die, an die ich denke, ist SendInput aber ich weiß, dass es eine "Journal" -Schnittstelle gibt, die etwas Ähnliches tut), und ich Ich bin sicher, dass auch andere Betriebssysteme dies tun. Das könnte für Ihre Zwecke durchaus ausreichen - ich würde hier anfangen, da die Route des Gerätetreibers schwierig wird und Sie wahrscheinlich eine andere Sprache als Java verwenden müssen. (Ich bin ein großer Fan von Java, aber die Schnittstellen, über die Betriebssysteme mit Gerätetreibern kommunizieren, lassen sich in der Regel leichter über C und ähnliches nutzen.)


Update : Mehr über das "Wörterbuch" von Akkorden zu Tastenanschlägen:

Grundsätzlich ist das Wörterbuch ein trie (danke, @Adam), nach dem wir mit dem längsten Präfix suchen. Einzelheiten:

In der Maschinenstenographie schreibt der Stenograf, indem er mehrere Tasten gleichzeitig auf der Stenotypmaschine drückt und dann alle freigibt. Sie nennen dies einen "Anschlag" der Tastatur; Es ist, als würde man einen Akkord auf dem Klavier spielen. Striche entsprechen häufig (aber nicht immer) einer Silbe der gesprochenen Sprache. Wie Silben hat ein Strich (Akkord) manchmal eine eigene Bedeutung, ein anderes Mal nur eine Bedeutung in Kombination mit folgenden Strichen. (Denken Sie "gut" gegen "gut", gefolgt von "tschüss"). Obwohl sie stark von der Schule beeinflusst werden, in der sie studiert haben, hat jeder Stenograf ein eigenes "Wörterbuch", in dem aufgeführt ist, was mit Strichen gemeint ist. Ein Wörterbuch, das sie im Laufe ihres Berufslebens kontinuierlich verbessern. Das Wörterbuch enthält Einträge, bei denen der stenografische Teil (kurz "steno") einen Strich lang oder mehrere Striche lang ist. Häufig gibt es mehrere Einträge mit demselben Starthub, die sich durch ihre Länge und die nachfolgenden Hübe unterscheiden. Zum Beispiel (und ich verwende hier kein echtes Steno, nur Platzhalter), kann es folgende Einträge geben:

A = Alpha 
 A/B = Alphabet 
 A/B/C = Alphabet 
 A/C = Klimaanlage 
 B = Biene 
 B/C = weil 
 C = Meer 
 D = Hund 
 D/D = Dee Dee

(Diese Buchstaben sind nicht als Noten gedacht, sondern nur als abstrakte Markierungen.)

Beachten Sie, dass A mehrere Einträge startet, und dass die Übersetzung eines C-Strichs davon abhängt, ob Sie zuvor einen A, einen B gesehen haben. , oder du fängst neu an.

Beachten Sie auch, dass es mehrere Möglichkeiten geben kann, dasselbe Wort oder dieselbe Phrase zu "spielen", anstatt nur eine. Stenographen tun dies, um es je nach Handposition einfacher zu machen, von einem vorhergehenden Wort zum nächsten zu wechseln. Dort gibt es eine offensichtliche Analogie zur Musik, und Sie könnten diese verwenden, um Ihren Tippfluss dem Spielen von Musik ähnlicher zu machen, um zu verhindern, dass sich dies negativ auf Ihr Klavierspiel auswirkt, und um die Wahrscheinlichkeit zu maximieren, dass dies tatsächlich beim RSI hilft.

Bei der Übersetzung von Steno in Standardtext verwenden wir erneut eine Suche nach "Übereinstimmungen mit dem längsten Präfix": Der Übersetzungsalgorithmus beginnt mit dem ersten jemals geschriebenen Strich und sucht nach Einträgen, die mit diesem Strich beginnen. Wenn es nur einen Eintrag gibt und dieser einen Strich lang ist, können wir zuverlässig sagen, dass dies der zu verwendende Eintrag ist, den entsprechenden Text ausgeben und dann mit dem nächsten Strich neu beginnen. Wahrscheinlicher ist jedoch, dass dieser Strich mehrere Einträge unterschiedlicher Länge startet. Wir schauen uns also den nächsten Strich an und prüfen, ob Einträge vorhanden sind, die mit diesen beiden Strichen in der richtigen Reihenfolge beginnen. und so weiter, bis wir ein Streichholz bekommen.

Angenommen, wir haben im obigen Wörterbuch die folgende Sequenz gesehen:

A C B B C A B C A B D

So würden wir es übersetzen:

  1. A ist der Anfang von drei Einträgen unterschiedlicher Länge; Schauen Sie sich den nächsten Strich an: C
  2. A/C stimmt nur mit einem Eintrag überein; "Klimaanlage" ausgeben und mit dem nächsten Schlag neu starten: B
  3. B startet zwei Einträge; Schauen Sie sich den nächsten Strich an: B
  4. B/B startet nichts; Nimm die längste vorherige Übereinstimmung (B) und gib diese aus ("bee")
  5. Nachdem B = "bee" ausgegeben wurde, befindet sich noch ein B -Zugriff in unserem Puffer. Es werden zwei Einträge gestartet, schauen Sie sich also den nächsten Strich an: C
  6. B/C entspricht einem Eintrag; Gib "weil" aus und beginne neu mit dem nächsten Strich: A
  7. A startet drei Einträge; schau dir den nächsten Strich an: B
  8. A/B startet zwei Einträge; schau dir den nächsten Strich an: C
  9. A/B/C stimmt nur mit einem Eintrag überein; gib "alphabetisch" aus und beginne neu mit dem nächsten Strich: A
  10. A startet drei Einträge; Schauen Sie sich den nächsten Strich an: B
  11. A/B startet zwei Einträge; Schauen Sie sich den nächsten Strich an: D
  12. A/B/D passt zu nichts, also nimm die längste vorherige Übereinstimmung (A/B) und verwenden Sie es, um "Alphabet" auszugeben. Das lässt uns mit D noch im Puffer.
  13. D startet zwei Einträge, sodass wir normalerweise den nächsten Strich betrachten - aber wir haben alle Striche verarbeitet, betrachten Sie es also isoliert. Für sich genommen bedeutet es "Hund", also geben Sie das aus.

Aspekte der oben genannten zu beachten:

  • Sie haben eine Reihe von Strichen, die Sie gelesen, aber noch nicht übersetzt haben.
  • Sie möchten immer die meisten Striche mit einem einzigen Eintrag vergleichen, den Sie können. A/B sollte als "Alphabet" übersetzt werden, nicht als "Alpha" und "Biene".
  • (Oben nicht gezeigt) Möglicherweise haben Sie Abfolgen von Strichen, die Sie nicht übersetzen können, weil sie mit nichts im Wörterbuch übereinstimmen. (Steno-Leute verwenden das Substantiv "untranslate" (unübersetzen) - beispielsweise wären bei unserem Wörterbuch die Striche E ein "untranslate".)
  • (Oben nicht gezeigt) Einige Theorien von Steno lassen zu, dass ein Satz von Strichen mehr als eine Sache bedeutet, basierend auf einem breiteren Kontext. Steno Leute nennen diese "Konflikte". Sie möchten sie wahrscheinlich in Ihrem Projekt nicht zulassen, und tatsächlich waren Konflikte in Ordnung, als Steno vom Stenographen manuell übersetzt wurde, weil sie genau wussten, wo im Satz sie sich befanden, was die richtige Wahl war, aber mit dem Anstieg Bei der maschinellen Übersetzung wurden konfliktfreie Steno-Theorien entwickelt, um zu vermeiden, dass der übersetzte Text durchgearbeitet und Konflikte "behoben" werden müssen.
  • Übersetzen in Echtzeit (was Sie tun würden) bedeutet, dass Sie, wenn Sie eine Teilübereinstimmung erhalten, diese beibehalten möchten, während Sie auf den nächsten Akkord warten - aber wahrscheinlich nur bis zu einer Zeitüberschreitung, zu welcher Zeit Sie dies tun würden Übersetzen Sie das, was Sie im Puffer haben, so gut Sie können. (Oder vielleicht möchten Sie keine Auszeit, es ist Ihr Anruf.)
  • Wahrscheinlich am besten einen Schlaganfall mit der Aufschrift "Ignoriere den vorherigen Schlaganfall".
  • Am besten einen Strich haben, der besagt, dass der Puffer vollständig gelöscht werden muss, ohne dass etwas ausgegeben wird.
430
T.J. Crowder
184
Brian O'Dell

Es klingt für mich so, als würden Sie weniger nach Rat suchen, wie Sie dies selbst aufbauen können, als vielmehr danach, welche Ressourcen bereits vorhanden sind, um das zu erreichen, was Sie wollen. Abhängig von Ihrem Betriebssystem gibt es viele Möglichkeiten, dies zu erreichen, ohne dass Sie Ihr eigenes Programm von Grund auf neu schreiben müssen:

MIDI Stroke

Kostenlos. Für Mac OS X 10.3 und höher . Dieser kommt speziell mit "der Fähigkeit, jede MIDI Tastatur als vollwertigen Computer-Tastaturersatz zu verwenden."

Bome's MIDI Übersetzer

Free/Postcardware (es ist ein bisschen seltsam). Für Windows 2000 und höher und Mac OS X . Es scheint anfangs eher auf AutoHotkey - ausgerichtet zu sein, aber bei näherer Betrachtung denke ich, dass es das kann, was Sie wollen.

Max und aka.keyboard

Kostenlos. Für Mac OS X . Dies ist keine sofort einsatzbereite Lösung, aber wenn Sie mit der grundlegenden Gerätekonfiguration vertraut sind, sollte dies nicht allzu schlimm sein.

111
kathryn

Sie können auf die Hardware mit Quellcode-Beispielen in .NET unter MIDI DotNet zugreifen.

Ein komplettes Arbeitsbeispiel als Quellcode zum Erstellen von MIDI Noten-Datenstrom ist in VB 5/6-Tipp 0521: MIDI-Töne erzeugen = (Visual Basic 6.0, irgendwo ist auch die .NET-Version)

Eine Möglichkeit, Tastaturanschläge zu simulieren, gibt es in VB 5/6-Tipp 0155: Tastaturereignisse simulieren (irgendwo in Visual Basic 6.0 .NET Version auch)

Und Tastatureingaben erkennen ist in Tipp-Upload: VB.NET 0266: Globaler KeyHook beschrieben.

Enter image description here

Verwenden Sie dann einfach eine gute Arbeitsmatrix für einen Klavierspieler Timo Boehme www.goldengel.ch

Auf dem Klavier und wenn Sie ein guter Spieler sind, können Sie 10 Finger auf der Tastatur haben, und wenn die Matrix verwendbar ist, können Sie viel schneller als jeder Computer-Tastaturbenutzer sein, den ich denke. :-)

In diesem Fall sollte es keine große Sache sein, wenn ich Ihre Frage richtig verstehe.

49
Nasenbaer

Ich habe am College Klavierperformance studiert und mich dann mit Interaktionsdesign, Programmierung und der Verwendung von Vim befasst. Daher habe ich viel Zeit damit verbracht, solche Prototypen zu entwickeln.

Unter Linux funktioniert dies recht schnell, wenn Sie die grafische Programmiersprache für Multimedia-Interpreten " Pure Data " zusammen mit x11key external von Alex Andre verwenden.

Auf dem Mac können Sie MidiStroke verwenden. Ich glaube, eine Methode unter Windows beinhaltete die Tools MidiOx und AutoHotKey . Zu einer anderen Zeit hatte ich eine Version, die das Java Plugin für Max/MSP verwendete. Ich glaube Patrice Colet machte ein externes Windows für Pure Daten, die auch funktionierten, aber ich kann sie anscheinend nicht mehr finden. Außerdem gibt es ein externes für MaxMSP , das dies unter Windows tun kann. Schließlich ist das nicht-freie, aber großartige Osculator kann machen, was Sie wollen - siehe die Features-Seite.

Als ich es zum Laufen brachte, blieb ich nie dabei, weil ich nicht aufhören konnte, mit dem Layout zu arbeiten. Es war cool, nur meinen Monitor auf meiner elektrischen Tastatur zu haben! Viel Glück.

41
P. Myer Nore

Über MIDI

Sie sagten, dass Sie "überhaupt nichts über MIDI wissen". MIDI Technologie ist ziemlich einfach, wenn Sie sie erst einmal verstanden haben, aber sie kann zu Beginn verwirrend sein. Eine der Quellen, die mir beim Verständnis der Grundlagen für MIDI (die sicherlich für das Programmieren von MIDI - Interaktionen erforderlich sind) sehr hilfreich waren, ist das Buch MIDI für die Technophobe . Es ist leicht zu lesen und sehr hilfreich.


Reine Daten & max

Nach meiner Erfahrung mit der Entwicklung interaktiver Multimedia-Anwendungen habe ich zwei sehr ähnliche Programme kennengelernt, die das Anschließen und Zuordnen von Signalen/Eingängen von jedem Gerät aus ermöglichen.

Dies sind Max für eine Mac-Umgebung und Pure Data für eine PC-Umgebung. Beide haben eine Fülle von Online-Dokumentation und YouTube-Tutorials. Das Video Max/MSP Tutorial 1 - Verwenden Ihrer Computertastatur als Midikeyboard (Ableton-Stil) zeigt ein in Max integriertes Programm, das eine Computertastatur einem MIDI Tastatureingaben (was im Grunde das genaue Gegenteil von dem ist, was Sie versuchen, zu tun). Sie können die gewünschten Ergebnisse erzielen, indem Sie dasselbe Muster verwenden, aber die Signale/Zuordnungen umkehren.


AutoHotKey

AutoHotKey ist ein kostenloses Open Source-Dienstprogramm für Windows, mit dem Sie Tasten und Knöpfe auf Ihren Geräten Makros zuordnen können. Es unterstützt von Haus aus QWERTY Tastaturen, Joysticks und Mausmakros.

Es konnte jedoch eine Implementierung gefunden werden, die die gesuchte Zuordnung unterstützt. Diese beiden Themen erklären den Vorgang:

  1. MIDI IN-Unterstützung in AutoHotkey, die Diskussion über den Anwendungsfall. Der Autor suchte nach einem Programm, das die Eingabe von MIDI IN erkennen und in Tastendrucke übersetzen konnte.

  2. MIDI input library, die Lösung für das Problem des Autors und der auf AutoHotKey veröffentlichte Code/Patch, der das von Ihnen beabsichtigte Ergebnis tatsächlich umsetzt.

Grundsätzlich sieht es so aus, als würde AutoHotKey zusammen mit dem benutzerdefinierten Patch dieses Benutzers genau das liefern, was Sie benötigen, um eine Zuordnung von einer MIDI Tastatur zum Eingangssignal einer QWERTY Tastatur zu erstellen. Sie müssen lediglich Ihre Zuordnungen installieren, konfigurieren und definieren.


Noch etwas?

Einige der anderen Antworten haben Ihnen viel umfangreichere Informationen zur MIDI- und MIDI -Programmierung im Allgemeinen gegeben, aber wie in Ihrem Post angegeben, scheint dies nicht ganz das zu sein, wonach Sie suchen zum. Ich würde Ihnen gerne weiterhelfen, aber es wäre einfacher, wenn Sie die Art der gesuchten Informationen genauer beschreiben könnten. Interessieren Sie sich zum Beispiel mehr für Wie konvertiert man die Eingangssignale eines MIDI Keyboards in ein QWERTY Keyboardsignale, oder ist Ihr primäres Interesse eine sofort einsatzbereite Lösung zu finden an Ihrem spezifischen Problem? Was suchen Sie, das noch nicht angesprochen wurde?

37
smartcaveman

Sie könnten Ihre eigene USB-Tastatur mit einem Teenys-Mikrocontroller ziemlich schnell hacken.

In der Tat haben sie Beispielcode für machen Sie eine USB-Tastatur .

Sie können auf zwei Arten vorgehen:

  1. Besorgen Sie sich ein altes Klavier und schließen Sie die Schalter direkt an den Teenager an

  2. Fügen Sie die zusätzliche Logik hinzu, um eine Verbindung zum MIDI Port und die erforderliche Decodierung herzustellen.

27
cmcginty

Tatsächlich habe ich vor einiger Zeit daran gearbeitet und versucht, Rock Band Drum-Eingänge in meinen Computer einzuspielen (Java hausgemachter Drum-Emulator)) Frage hierüber, Zeitverzögerungsproblem (dort ist Code für die Abfrage, zusammen mit dem, was ich versucht habe, zu tun .). Und wenn ich mein Programm finden kann, kann ich Ihnen den Code geben, es verwendet eine Drittanbieter-API ( JInput ).

Viel Glück so oder so.

24
Brendan

Versuchen Sie Bomes MIDI Übersetzer .

Es funktioniert plattformübergreifend, kann jede MIDI Eingabe einfach in einen Tastendruck umwandeln, ist schnell einzurichten und zu konfigurieren und ist für den persönlichen Gebrauch kostenlos.

Es gibt ein Tutorial, Quick Tip: MIDI Translation - MIDI to Keystrokes, wie man es einfach einrichtet:

Grundsätzlich gibt es unendlich viele Möglichkeiten, einschließlich der Chording- und Modifier-Tasten. Ich benutze es für meine Live-Audio-Anlage, um meine DAW mit meinem Klavier zu steuern, und hatte noch nie ein Problem.

23
stepheninohio

In Java können Sie mit JMF (Java Media Framework) MIDI) - Signale konvertieren. Grundlegend für das Tastaturdesign ist die einfache Verwendung, dh die Benutzeroberfläche, und häufig verwendete Zeichen/Symbole sind praktisch .

Der Beispielcode und die API in Java Sound Resources: Beispiele: Digitale Signalverarbeitung (DSP) helfen zu verstehen, wie das verarbeitet wird Signal.

Einige weitere Referenzen:

18
Kamahire

Casey hat die beste Antwort. Ich habe einen Kommentar hinzugefügt und ihn bewertet. Diese Art von Software gehört entweder in einen Gerätetreiber oder in ein eingebettetes System. Gerätetreiber sind viel komplexer und können nicht auf andere Betriebssysteme übertragen werden. Informationen hierzu finden Sie in den Problemen mit Winmodems unter Linux.

Indem Sie Ihren Code in ein eingebettetes System einfügen, können Sie ihn auf jedes MIDI Gerät mit USB-Anschluss und auf jeden Computer übertragen, der USB-Tastaturen akzeptiert.

15
Michael Dillon

Es gibt ein Programm namens GlovePIE . Sie können es in einer einfachen Skriptsprache programmieren, und ich glaube, es unterstützt MIDI. Ich bin nicht sicher, ob dies in die Kategorie "Java" passt, aber es ist trotzdem ein großartiges Programm. Ich habe es verwendet, um Roboter mit PS Controllern zu steuern. Es ist sehr mächtig.

15
Fox Wilson

Viele Keyboards haben einen seriellen Anschluss ( RS-232 ), um MIDI Signale an den Computer zu senden. Ich verwende ein Programm mit dem Namen Girder Wandeln Sie die Kommunikation über die serielle Schnittstelle in Tastaturanschläge um.

Girder verfügt über eine "Zuordnungs" -Funktion, mit der Sie jede Taste einzeln dem entsprechenden Tastenanschlag zuordnen können.

Dies könnte die einfache Lösung sein, die Sie suchen!

15
Scott Rippey

Lerne einfach Stenographie!

Das geht aus all den Diskussionen auf Ihrer Seite hervor. Sie möchten technisch gesehen keine Räder neu erfinden. Aber sobald Sie eine Verbindung hergestellt haben (was diese Frage stellt) und arbeiten, haben Sie immer noch den größten Teil der Arbeit vor sich: Sie müssen Ihr Gehirn trainieren. Sie müssen auch den cleversten und effizientesten Weg finden, um dies zu erreichen - ein Designproblem, das völlig aus dem Rhythmus der Computertechnologie stammt. Sie oder einer von uns würde zu kurz kommen.

Glücklicherweise wurde das Problem durch Jahrhunderte der Reifung gelöst und geschliffen ...

Lerne Stenographie!

Ja, das bringt Sie wieder in Verlegenheit. Aber was sind Hunderte von Stunden Ihrer eigenen Zeit wert, mit am Ende einem ungünstigeren Ergebnis? Außerdem sagt der Wikipedia-Artikel über Stenografie , 'es sieht eher aus wie eine Klaviertastatur'.

Es sei denn, Sie möchten natürlich einen Sideshow-Effekt haben. Ich müsste zugeben, ich hätte nie an diese Möglichkeit gedacht, es wäre wirklich unterhaltsam zu sehen, wie jemand einen Text von einer Klaviertastatur herausbricht!

Sie könnten mit einer USB-Tastatur mit Touchpad beginnen (oder einem Pointing Stick wäre ergonomischer?), Verwenden Sie Plover Um es zu übersetzen (ich bin sicher, dass es so konfiguriert werden kann, dass die Nicht-Buchstaben-Tasten ihre Funktionalität behalten, da sie für die Programmierung entscheidend sind), oder folgen Sie dem Thread Re: Plover-Tastatur, um Ihre eigene USB-Stenografietastatur zu rollen, oder kaufen Sie einen Stenotyp .

Viel Glück!

12
FastAl

Schauen Sie sich MAME arcade gaming an. Sie haben Hardware-Geräte gebaut, um die Eingabe von einer beliebigen Anzahl verschiedener Elemente zu ermöglichen. Das iPac konvertiert beispielsweise Signale von Eingabegeräten in USB, die der Computer dann zum Emulieren von Schlüsseln verwenden kann. Sie können eine beliebige Kombination von Eingabegeräten verwenden, die so angeordnet ist, wie es Ihnen angenehm erscheint, ohne dass eine verrückte Programmierlogik erforderlich ist.

Ich habe Flugsimulator-Cockpiteingänge, benutzerdefinierte Kioske und Abstimmungssysteme gesehen, die nach dieser Methode gebaut wurden ... und der Preis stimmt!

11
bpeterson76

Nicht wirklich programmbezogen, aber ich kann einige Ratschläge zum Verwalten von RSI geben.

Es gibt Timer, die Ihre Arbeit den ganzen Tag über beschleunigen und häufige Mikropausen einführen. Wenn Sie über RSI recherchiert haben, haben Sie sicher schon von Mikrorissen gehört. Sie sind entscheidend für das Management und die Vermeidung von Wiederholungen. Ein kostenloses Programm ist Workrave

Geben Sie QWERTY das Booten und versuchen Sie Dvorak . Hier ist ein Programmierer Dvorak Tastaturlayout . Dvorak hat die am häufigsten verwendeten Zeichen in der Startzeile wohingegen QWERTY nicht. Wenn Sie also Dvorak verwenden, wird die Belastung verringert, die entsteht, wenn Sie nicht nach Buchstaben greifen müssen.

Nehmen Sie diese "natürliche" Tastatur aus dem Schrank, wenn Sie sie nicht bereits verwenden. Tippe sehr leicht. Das Nötigste, um einen Tastendruck zu registrieren, ist ausreichend.

Versuchen Sie, den Kaffee auf ein oder zwei Tassen pro Tag zu beschränken. Übermäßiges Koffein führt dazu, dass Sie sich nicht müde fühlen und vergessen, dass Sie an RSI leiden.

Übermäßiger Alkohol stört den Schlaf, der benötigt wird, damit Ihr Körper sich selbst heilen kann. Eine gute Nachtruhe ist entscheidend für die Zähmung von RSI.

Dehnen mit aktivem Einzeldehnen. Eine gute Routine wird in Handgelenk-, Hand- und Fingerdehnungsroutine - Aktive isolierte Dehnung beschrieben.

Erfahren Sie, wie Sie mit der Maus beidhändig sind. Stellen Sie sicher, dass die Maus mit beiden Händen bedient werden kann und über leicht zu klickende Tasten verfügt.

Verwenden Sie ein Stifttablett als Haupteingabegerät. Wacom macht einige anständige billige Tabletten .

Viel Glück!

10
shaunsantacruz

Um dies zu lösen, benötigen Sie ein paar Dinge:

  1. Eine Möglichkeit, MIDI Daten von Ihrem Keyboard zu erfassen. Abhängig von der Schnittstelle: MIDI Schnittstelle (klassisch) oder USB MIDI Schnittstelle (modern) Die wahrscheinlichste Schnittstelle ist eine Schnittstelle zu einem Computer, da sie die meisten Optionen bietet. USB-Host-Mikrocontroller sind nicht so einfach wie die Verwendung eines Computers.

  2. Ein Schema, um MIDI Daten in Tastenanschläge umzuwandeln. Wie ein Benutzer betonte, sind Akkorde der richtige Weg, da die Anzahl der Tasten nicht von der Anzahl der Klaviertasten abhängt.

  3. Eine Möglichkeit, einen Schlüssel in das Betriebssystem einzufügen. Dies erfordert einen Low-Level-Treiber, um genau zu sein. Ich habe mit Anwendungen herumgespielt, die Tastatur- und Mausdaten in Anwendungen in Windows 7 einspeisen, und es kann schuppig sein und davon abhängen, ob eine Anwendung gerade im Fokus steht. Dies ist der schwierigste Teil der Benutzeroberfläche. Möglicherweise können Sie einen VERSTECKTEN USB-Tastatur-Mikrocontroller erstellen, der auch über eine serielle Schnittstelle verfügt.

Die serielle Schnittstelle würde eine virtuelle serielle Schnittstelle erstellen. Die Software, die die MIDI) - Daten liest und die Tastenanschläge erzeugt, könnte eine serielle Nachricht an den virtuellen seriellen Port senden. Der Mikrocontroller würde einen Tastenanschlag senden, damit er wie eine Standardtastatureingabe aussieht. Dies würde ermöglichen Anschluss von beiden MIDI Ports und USB MIDI Keyboards.

Hmmm, mit dieser Art von Schnittstelle können Sie auch eine Maus simulieren und einige Klaviertasten für die Mausachse und die Tasten einrichten. Der Druck könnte verwendet werden, um die Mauszeigergeschwindigkeit zu bestimmen. Sie könnten also auch die Maus eliminieren. Ein weiterer Vorteil dieses Ansatzes ist, dass alle Arten von Eingabegeräten, die Sie anschließen, mit dem virtuellen seriellen Anschluss kommunizieren können, um Tastatur- und Mausereignisse zu erzeugen. Wenn Sie also andere Hardware wie Drum-Pedale oder einen Joystick hinzufügen möchten, müssen Sie das Programm anpassen, das mit der seriellen Schnittstelle kommuniziert.

Ein weiteres Beispiel für die Verwendung eines Arduino ist das oben beschriebene, aber es enthält auch SB Host Shield von Sparkfun, um USB-basierte Musiktastaturen zu handhaben. Dadurch kann der Arduino als Tastatur- oder Tastatur-Maus-Kombination im Bootloader-Chip programmiert werden und das Gerät kann als USB Host für die USB-basierte Musik fungieren Tastatur. Dann sind Sie für beide Arten abgesichert. Obwohl ich immer noch denke, dass die Methode der virtuellen seriellen Schnittstelle flexibler ist und auf lange Sicht einfacher zu programmieren wäre. Das Arduino-Gerät ist schwerer zu ändern als ein Desktop-Programm oder -Dienst.

Es gibt noch eine andere Möglichkeit: Akkordierte Einhandtastaturen sind bereits vorhanden. Ich habe Videos auf ihnen gesehen, aber Sie müssten feststellen, ob diese Ihre Hände verletzen oder nicht.

10
Demolishun

Ihre Schmerzsymptome könnten sehr gut psychosomatisch sein .

Ich dachte einmal, ich hätte RSI für viele Monate in meinem Handgelenk, nachdem ich eine lange Nacht mit Computerspielen verbracht hatte. Physiotherapie hat nicht geholfen. Nachdem ich einen Artikel eines Arztes gelesen habe, der erklärt, dass RSI, Karpaltunnel, Rückenschmerzen und IBS häufig psychosomatisch sein können, insbesondere bei Menschen, die unter Stress stehen, Der Schmerz verschwand praktisch (es half mir, mir vorzustellen, wie sich mein Handgelenk entspannte und Blut zu ihm floss, da der Artikel besagte, dass die autonome Verengung der Blutgefäße die unmittelbare Ursache des Schmerzes ist). Tatsächlich litt ich damals unter viel Stress.

8
ta23232

Sie erhalten bessere und glücklichere Ergebnisse (unabhängig davon, welches Betriebssystem und/oder DAW Programm Sie verwenden möchten), indem Sie ein externes MIDIabspielen _ Tastatur als Controller über Ihre Soundkarte. Leiten Sie das dann in Ihre GB-Software (oder was auch immer) und erzeugen Sie in Echtzeit die vielen Sounds, die sie Ihnen auf diese Weise geliefert haben.

Wenn Ihre Soundkarte MIDI E/A (Ein-/Ausgänge/Thrus) nicht unterstützt, ist dies kein Problem. Sie können überlegen, ob Sie einen externen MIDI Table-Top-Konverter suchen und in diesen investieren möchten. Viele sind so ausgestattet, dass sie die MIDI - Ausgänge weiter auf USB 2.0 konvertieren können (indem sie eine vorhandene Soundkarte komplett umgehen).

Zum Beispiel: Es ist ziemlich schwierig, mit einer Z- und X-Änderungstastenoption unter Verwendung einer Computertastatur und eines Bleistiftwerkzeugs "menschlich" anmutige Notenergebnisse zu erzielen. Wenn stattdessen Ihre eigenen Finger das einfach mit einem MIDI Keyboard aus den eigenen physischen Oktavregistern spielen können - sofort!

Mir ist klar, dass Budgetbeschränkungen auftreten können. Einige dieser scheinbar billigen "Casio" -Typ-5-Oktav-Keyboards, die bei Radio Shack für unter 100,00 US-Dollar (* oder weniger) verkauft werden, sind jedoch alles, was Sie benötigen (und einige der integrierten Sound-Patches und Sequenzer-Module klingen und funktionieren erstaunlich gut auch für andere dinge).

RadioShack MIDI Tastaturoptionen .

Was externe MIDI Konverter für vorhandene Soundkarten anbelangt, habe ich einige Google-Suchanfragen für Sie wie folgt ausgeführt, wobei ich speziell die Mac-Plattformen im Auge hatte:

Viele dieser externen MIDI Konvertierungsinformationen sind für Sie anfangs möglicherweise umständlich. Daher habe ich die Dinge für Ihre Überlegungen und Ihr Budget als "benutzerfreundlich" eingestuft:

Es ist nichts Falsches daran, virtuelle Tastaturen zu ermöglichen, wie VST bei Verwendung von DAW . Sie haben ihren Platz.

Aber Sie klingen wie ein versierter Keyboarder. Warum also nicht die externen MIDI Konvertierungs-/Tastaturoptionen in Betracht ziehen, die ich gerade selbst erwähnt habe?

Viel Glück und ich hoffe, dies gab Ihnen einige Ideen, die für Sie arbeiten können und werden!

Es sollte ziemlich einfach sein, mit so etwas wie der .NET DirectSound-Schnittstelle ein MIDI Gerät anzuschließen. Sie müssen Ihr Ziel MIDI Gerät identifizieren und dann abrufen den Code zum Abhören der eingehenden Nachrichten (es gibt Artikel dazu über Google).

Da Sie das MIDI als Tastatur verwenden, gibt es im Grunde genommen nur zwei MIDI - Meldungen, die Sie erkennen müssen, nämlich Note On und Note Off MIDI message besteht aus drei Datenbytes, die den Befehl, die Note und die Velocity angeben. Die Note off ist nur die Notennummer (manchmal 'bad' MIDI stacks send a beachten Sie mit der Geschwindigkeit Null, die Sie auch erwarten müssen).

Sobald Sie die Nachrichten übersetzt haben, sollte die Tastaturausgabe in .NET recht einfach sein.

In den anderen Antworten gibt es viele Ratschläge zu den technischen Details. Ich wollte Ihnen nur eine Vorstellung von den tatsächlichen MIDI Nachrichten geben. Viel Glück!

7
Simon Inns

Sie können ein einfaches AutoIt Skript verwenden, um MIDI Ereignisse zu lesen, siehe MIDI Input.

Sie benötigen außerdem MIDI UDF und simulieren Sie Tastendrücke .

Das Lesen von MIDI Events sollte einfach sein, aber verschiedene MIDI Controller (Instrumente) haben unterschiedliche Funktionen. Versuchen Sie zunächst herauszufinden, was Ihr MIDI Piano kann, und dann, wie Sie diese Funktionen am besten simulieren können [~ # ~] qwerty [~ # ~] - Tastatur drückt.

Wenn Sie möchten, können Sie etwas auf dem Bildschirm oder in der Taskleiste sehen, was Sie gerade tun (z ShiftCtrl und Alt Simulation).

6
Martijn

Wenn Sie nicht selbst programmieren möchten, sondern nur das Problem lösen möchten, können Sie ein USB-MIDI-Keyboard kaufen, auf dem Sie eine beliebige Taste neu zuweisen können, um stattdessen ein QWERTY Tastatur-Ausgangssignal zu senden ein MIDI-Ausgang, zum Beispiel M-Audio Axiom Pro

Diese Methode funktioniert mit jedem Betriebssystem und jedem Computer, der Standard-USB-Keyboards unterstützt, da sich das MIDI-Keyboard als Standard-QWERTY -Tastatur identifiziert.

6
Martin Odhelius

Schauen Sie sich vielleicht Tastaturen mit Akkorden an. Sie haben den Vorteil, dass Sie keinen Treiber für sie schreiben müssen, bevor Sie sie verwenden können, und einige ähneln dem Layout einer Klaviertastatur.

5
Perkins

Wenn Sie mit Java-Codierung vertraut sind, können Sie Folgendes verwenden:

Implementieren Sie zuerst ein javax.sound.midi.Receiver Mit einer send(..) -Methode, die die 'Note on'-Ereignisse den gewünschten Tastenanschlägen zuordnet.

Sie müssten den Inhalt der MidiMessage mit der getMessage -Methode abrufen und auf Ihre Weise interpretieren. Die Bedeutung der Nachrichtenbytes finden Sie in MIDI Messages.

Nachdem Sie eine Note On oder Note Off für eine bestimmte Tastaturtaste erhalten haben, können Sie diese einer beliebigen Taste zuordnen, indem Sie ihr eine Konstante der KeyEvent-Klasse zuweisen, z. B. C # 4 -> KeyEvent.VK_A und so weiter . Dieser Schlüsselcode kann dann von den keyPress- und keyRelease-Methoden von Java.awt.Robot Verwendet werden, um den Tastenanschlag tatsächlich an das Betriebssystem und damit an andere Anwendungen zu senden.

5
dronus

Ich stimme der Antwort von Brian O'Dell zu - wenn dies mein Projekt wäre, würde ich es in Hardware tun. Es hat den Vorteil, dass es plattform- und hardwareunabhängig ist - Ihre Box ersetzt eine MIDI-USB-Schnittstelle und eine PC-API.

mbed ist eine schnelle Prototyping-Plattform, die sehr einfach zu erlernen ist und mehrere Vorteile gegenüber Arduino IMHO bietet (Online-Compiler, 512 KB Flash, 96 MHz, C++ Sprache). Es verfügt über eine SB-Tastaturschnittstelle und eine SB-Midi-Schnittstelle , die für Sie vorab geschrieben wurden.

Die Community ist sehr freundlich und hilfsbereit, und es gibt eine Menge bestehender Projekte, die sowohl MIDI als auch USB Hid Emulation verwenden - suchen Sie in Youtube nach "mbed MIDI" oder ähnlichem.

4
Alex L

Wenn Sie Linux verwenden, nehmen Sie Footware.

Es sollte genau das sein, wonach Sie suchen - wenn Sie die Tonhöhen von MIDI nach Ihren Wünschen anpassen ...

Ich hätte nie gedacht, dass dies für jemanden nützlich sein könnte, außer für mich; o)

4
FlashKorten

Um schneller zu tippen, ist es vielleicht eine Idee, die Konsonanten auf der linken Hand und die Vokale auf der rechten Hand zu "spielen" (oder umgekehrt). Sie brauchen nicht für jeden Konsonanten einen Schlüssel, da Sie diese wie folgt kombinieren können:

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 ...

Sie können zwei Schlüssel weglassen (wie c# + dDies ist nicht einfach zu spielen. Sie können sogar die schwarzen Tasten weglassen.

Für Vokale ist es einfach:

A E I O U Y

c d e f g a

Denken Sie jedoch auch an die Verwendung mehrerer Tastenanschläge: wie c# = aad# = ee, usw.

Sie können den gleichen Trick mit den Konsonanten machen (mit einer Tastenkombination für st, sp usw.)

Sie können Konsonanten und Vokale gleichzeitig spielen, abwechselnd oder vorrangig miteinander verbinden (Konsonanten, dann Vokale usw.).

Wahrscheinlich müssen Sie das Tippen wieder lernen, aber ich bin mir sicher, dass Sie viel schneller als ein normaler Tipper arbeiten können.

Verwenden Sie eine andere Oktave für Ziffern und Sonderzeichen, verwenden Sie einen Schalter für die Umschalttaste, verwenden Sie eine einfach zu spielende Tastenkombination für Leerzeichen (z. B. zwei cs mit der linken und rechten Hand), und vergewissern Sie sich, dass dies nicht (ein) Zeichen bedeutet )).

Denken Sie auch an ein Pedal, das Werte von 0-127 haben kann. Sie können es auch als Shift oder Space verwenden ... oder als Backspace/Enter.

Ich hoffe, dass dies einige neue Ideen und viel Glück mit Ihrem Projekt geben wird.

4
Michel Keijzers

Ich weiß genau, wie Sie sich fühlen. Wenn ich den ganzen Tag verrückte Tastaturkodierungsbefehle tue, tun mir die Hände weh.

Ein Klavier reicht nicht aus (es ist besser, ein Dorvak-Keyboard zu bekommen). Die beste Lösung wäre mentale Telepathie oder zu diesem Zeitpunkt Sprachsteuerung.

Ich finde Arthro-Aid Direct Creme ist gut und Wild Blend funktioniert auch in Ordnung.

Die andere Sache, die mir aufgefallen ist, ist, dass die Maus ebenfalls die Hauptschuld trägt, die meisten sind unergonomisch und verursachen so viele Klicks. [~ # ~] rsi [~ # ~] und [~ # ~] cts [~ # ~] . Um dies zu überwinden, verwende ich gelegentlich Auto-Mausklicker, zum Beispiel Auto-Mausklicker .

Ich kenne Patente mit Mäusen als Griff, die Sie drücken. Ich bin sehr daran interessiert, sie zu kaufen.

PS: Schließen Sie Ihre Einkommensschutzversicherung ab, bevor Sie einen Arzt aufsuchen!

Und nicht am Wochenende programmieren :)

4
Jeremy Thompson

Die Antworten auf Ihre Frage befinden sich bereits auf dieser Seite, ich möchte jedoch einige zusätzliche Eingaben vornehmen.

Erstens bin ich nicht davon überzeugt, dass das Tippen auf einer Klaviertastatur die Schmerzen lindert. In diesem Zusammenhang schlage ich vor, dass Sie sich für Ihre Eingabe etwas wie Nuance Dragon - Natürlich sprechend ansehen.

Zweitens, wenn Sie darauf bestehen, müssen Sie wahrscheinlich Nasebnbaars befolgen (obwohl ich nicht einverstanden bin, dass es welche geben wird) schneller) und Brians Vorschlag. Wenden Sie sich an einen Techniker, um dies ordnungsgemäß zu tun. Wenn Sie dies jedoch selbst tun müssen, fragen Sie am besten bei Elektrotechnik - Stapelwechsel nach.

Drittens, wenn Sie einfach verstehen möchten , wie MIDI Dateien funktionieren , wie man sie liest programmatisch und wie man einen Tastaturanschlag simuliert , dann viel Glück;)

Zuletzt möchte ich auch eine Kopie erhalten, wenn Sie sich irgendwann für die zweite Option entscheiden :)

3
Chibueze Opata

Versuchen Sie es mit einem Mikrocontroller-basierten System wie Arduino .

2
user1327203

Es gibt viele Antworten, ich habe nur eine kleine Idee. Ich weiß nicht, ob eines der MIDI-to-Keyboard-Programme es unterstützt, aber in MIDI können Sie Sustain und Expression Pedal.

Eigentlich habe ich noch nie ein Expression-Pedal gesehen. Zeitraum.

Aber jedes MIDI Keyboard hat einen Sustain-Eingang. Ein Sustain-Pedal ist nur ein Schalter. Wenn Sie kein Geld dafür ausgeben möchten, können Sie ein Tattoo-Pedal (!) Verwenden, aber Vorsicht, einige chinesische Tattoo-Pedale haben eine schlechte Qualität. Probieren Sie es aus, bevor Sie es kaufen. Überraschenderweise ist die "Elektronik" dieselbe: (große) Mono-Buchse, die mit dem Ein-/Ausschalter verbunden ist. Wenn Sie einen "komfortablen" Schalter haben, eine Buchse Stecker und einige Drähte, auch Sie können Ihre eigene machen.

Ich empfehle es als Schicht zu verwenden. Am Commodore 16 entsprach der Feuerknopf von Joystick-2 der Umschalttaste, und ich habe ihn einige Tage lang verwendet. Das einzige Problem war, dass meine Freude dafür so unangenehm war. Wenn Sie ein Klavierspieler sind, können Sie es vertraut finden.

1
ern0

Das wäre nicht zu schwierig.

Ich gehe davon aus, dass Sie eingeschaltet sind Windows , da bin ich mir allerdings nicht sicher. Ich habe einen MIDI Sequenzer geschrieben, http://pianocheetah.com , in einfachem altem C++ =, und Sie können die Klaviertastatur verwenden, um Befehle auszuführen. Es gibt keinen Grund, warum Sie nicht das Gleiche tun könnten, um Tasten in den Tastatureingabestrom zu drücken.

Aber jetzt komm schon. Du erinnerst dich, wie lange du überhaupt gebraucht hast, um die Tastatur zu erlernen, oder? Bist du bereit, das noch einmal durchzumachen? Und sind Sie bereit, Ihre gesegnete Tastatur mit ein paar blöden Schlüsselsymbolen zu beschmutzen?

Sie müssen mindestens 26 alphanumerische Zeichen, 10 numerische Zeichen, 11 Interpunktionszeichen und mindestens 12 Funktionstasten und ihre verschobenen Zustände verwenden. Das sind also 60 Tasten plus verschobene Zustände. Das wird volle 5 Oktaven an Tasten verbrennen. Sie werden Klavier spielen "Hopfen" = alle = die ganze Zeit. Verabschieden Sie sich vom Tippen.

Sie können sich vor RSI retten, aber Sie haben sich eine andere Art von Albtraum geschaffen.

Und viel Glück, dass Ihr Chef Ihnen bei der Arbeit ein MIDI Keyboard kauft.

Wenn Sie gelernt haben, wirklich Klavier zu spielen, haben Sie gelernt, stressfrei zu spielen. Tun Sie dies auf der Tastatur QWERTY . Keine Spannung. Fange langsam an.

1
Stephen Hazel