私は RSI の問題を抱えていて、30種類のコンピューターのキーボードを試してみましたが、どれも私を苦しめました。ピアノを弾いても痛みはありません。私は20年ほどピアノを弾いていますが、何の問題もありません。 MIDIキーボードからMIDIをキャプチャしてキーボードストロークを出力する方法があるかどうかを知りたいです。 MIDIについては何も知りませんが、この信号をキーストロークに変換する方法に関するガイダンスが欲しいのですが。
フルMIDIサポート(BASS)を備えた.NETの優れたライブラリー、 http://www.un4seen.com にアクセスしてください。
そして他の部分では、キーボードのMIDIノートをキーなどに変換するために、AutoItX、ActiveX/COM、DLLインタフェースをautoItに変換します。情報とダウンロード、 http://www.autoitscript.com/site/autoit/ にアクセスしてください。
キーボードドライバを書く必要はありません。
私は何年もMIDIプログラミングをしたことがありませんが、あなたの基本的な考え方は非常に健全です(駄目ではありません)。
MIDIは "イベント"(または "メッセージ")のストリームです。最も基本的な2つは "ノートオン"と "ノートオフ"で、これらにはノート番号(0 = Cから中央Cの5オクターブ下、127 =まで)が付いています。半音で、中央のCの上のGの上にG 5オクターブ。これらのイベントは、キーボード上ではベロシティセンシティブ(「タッチセンシティブ」)で、0から127の間の(あなたが推測した)力を持つ「ベロシティ」番号を持っています。
ベロシティ、コード化、そしてペダルの間で、私はあなたがピアノキーボードのためにかなり良い「タイプする」インターフェースを思い付くことができたと思います。特にコード化は非常に強力なテクニックかもしれません - 私がコメントで述べたように、それはランク付けファイルの速記者が保持するために stenotype machine を使うことができる理由ですトップフライトのタイピストでさえも、通常のタイプライタースタイルのキーボードでは何の時間もできないであろうときに、何時間も続けて話をする人々と交流してください。機械速記と同様に、コードの意味とコードのシーケンスの「辞書」が必要です。 (私はかつては機械速記術のソフトウェア面で働いていたと言うことができますか?)
これを行うための基本的な要素は次のとおりです。
ソフトウェアと最も広く互換性があるためには、これをキーボードデバイスドライバとして書く必要があります。これはキーボードイベントのソースとして機能するオペレーティングシステムへのプラグインで、基盤となるハードウェア(あなたの場合はピアノキーボード)と通信します。 WindowsとLinuxでは、おそらくそのためにCを使いたくなるでしょう。
しかし、あなたがたはgenerationキーストローク(私は何年も前にやろうとしていたのですが、それらを傍受しようとしていません)システムは人工的なキーストロークを送信するために持っています。 Windowsにはそれを行うためのインターフェースがあります(おそらくいくつか、私が考えているものは SendInput
ですが、何かを行う「ジャーナル」インターフェースがあることを私は知っています他のオペレーティングシステムでも同じように動作します。それはあなたの目的には十分かもしれません - それは私が始めるところです、なぜならデバイスドライバのルートはぎこちなくなるでしょうし、あなたはおそらくJavaとは異なる言語を使わなければならないでしょうから。 (私はJavaの大ファンですが、オペレーティングシステムがデバイスドライバと通信するために使用するインタフェースは、Cなどを介してより簡単に利用される傾向があります。)
更新:キーストロークに対する和音の「辞書」についてもっと詳しく:
基本的に、辞書は トライ です(ありがとう、@ Adam)。これは最長プレフィックスマッチングで検索します。詳細:
機械の速記術では、速記者は、型タイプの機械の複数のキーを同時に押してからそれらをすべて解放することによって書き込みます。彼らはこれをキーボードの「ストローク」と呼びます。ピアノで和音を弾くようなものです。ストロークは頻繁に(しかし必ずしもそうとは限らないが)話し言葉の音節に対応する。音節のように、1つのストローク(和音)がすべて独自の意味を持つ場合もあれば、後続のストロークと組み合わされた意味しかない場合もあります。 ( "良い"対 "良い"に続いて "バイ"と考えてください)。彼らは彼らが勉強した学校に大きく影響されるでしょうが、それぞれの速記者は彼らが何を意味するのに使うかの彼ら自身の「辞書」を持ちます。辞書には、速記部分(「steno」、略して)が1ストローク、または複数ストロークの項目があります。多くの場合、同じ開始ストロークでそれらの長さと後続のストロークによって区別されるいくつかのエントリがあります。例えば(そして私はここでは本当のstenoを使わない、ただプレースホルダーを使う)、これらのエントリーがあるかもしれない:
A =アルファ A/B =アルファベット A/B/C =アルファベット A/C =エアコン B =蜂 B/C =という理由で C =海 D =犬 D/D =ディーディー
(これらの文字は音符ではなく、単なる抽象的なマーカーです。)
A
は複数のエントリを開始することに注意してください。また、C
ストロークをどのように変換するかは、以前にA
、B
を見たことがあるか、新しく始めたかによって異なります。
また、(上記の非常に小さなサンプルには示されていませんが)同じWordやフレーズを「再生する」には、1つだけではなく複数の方法があります。速記者は、手の位置によっては、前の言葉から次の言葉への流れを簡単にするためにそうしています。そこには音楽との明らかな類似性があります。それが、ピアノの演奏に悪影響を与えないようにするためと、実際にRSIに役立つ可能性を最大限にするために、タイピングの流れを音楽の演奏に近いものにするためです。
Stenoを標準テキストに翻訳するときには、やはり「最長プレフィックスマッチ」検索を使用します。翻訳アルゴリズムは、これまでに書かれた最初のストロークで始まり、そのストロークで始まるエントリを探します。 1つのエントリしかなく、1ストロークの長さであれば、「これは使用するエントリです」と確実に言って対応するテキストを出力してから、次のストロークで新たに始めることができます。しかし、おそらくそのストロークはさまざまな長さの複数のエントリを開始します。それで、次のストロークを見て、それら2つのストロークから順番に始まるエントリーがあるかどうかを確かめます。我々が試合を始めるまで、以下同様です。
それで、上の辞書で、このシーケンスを見たとしましょう:
A C B B C A B C A B D
翻訳する方法は次のとおりです。
A
は、さまざまな長さの3つのエントリの始まりです。次のストロークを見てください:C
A/C
は1つのエントリのみに一致します。 "エアコン"を出力し、次のストロークで新たに始めましょう:B
B
は2つのエントリを開始します。次のストロークを見てください:B
B/B
は何も始めません。最も長い前の一致(B
)を取り、それを出力する( "bee")B
= "bee"を出力しても、バッファにはB
のストロークが残っています。それは2つのエントリーを始めます、それで次のストロークを見てください:C
B/C
は1つのエントリに一致します。 「から」を出力し、次のストロークで新たに始めます。A
A
は3つのエントリを開始します。次のストロークを見てください:B
A/B
は2つのエントリを開始します。次のストロークを見てください:C
A/B/C
は1つのエントリにのみ一致します。 "alphabetic"を出力し、次のストロークで新たに始めます。A
A
は3つのエントリを開始します。次のストロークを見てください:B
A/B
は2つのエントリを開始します。次のストロークを見てください:D
A/B/D
は何にも一致しないので、最も長い前の一致(A/B
)を取り、それを使用して "alphabet"を出力します。それで、まだバッファにD
が残っています。D
は2つのエントリを開始するので、通常次のストロークを見ます - しかし、すべてのストロークを処理したので、個別に検討します。単独では、それは "犬"として翻訳されるのでそれを出力します。注意すべき上記の側面:
A/B
は、 "alpha"や "bee"ではなく、 "alphabet"として翻訳されるべきです。E
は「未翻訳」となります。)USB(またはps/2?)キーボードをエミュレートするハードウェアで何かをすることを検討してください。あなたはもはや特定のOSや特定のOS APIに依存することはありません。ハードウェアソリューションは時の試練に耐えるでしょう。他の人がWindows 11を実行しているときに、Windows 7で古いAPIを使用して動けなくなってはいけません。 Arduino は習得が非常に簡単です。
Arduinoのためにたくさんの情報と手助けがあります。これは初心者向けに構築されたハードウェアハッキングプラットフォームです。 グーグルがArduinoを推し進めているのは、今や大きくなるでしょう。
自分でこれを作る方法についてのアドバイスや、欲しいものを達成するためにすでにどのリソースが存在しているかを尋ねることについて、あなたはあまり探していないようです。あなたのOSに依存して、最初からあなた自身のプログラムを書く必要なしにこれを達成する多くの方法があります:
無料です。 Mac OS X 10.3以降の場合。これは具体的には「本格的なコンピュータキーボードの代替品として、任意の MIDI キーボードを使用する機能」が付属しています。
フリー/ポストカードウェア(ちょっと変です) Windows 2000以降、およびMac OS Xの場合。最初は AutoHotkey タイプの使用に向けて調整されているように見えますが、さらに見ていくとあなたが望むことをうまくやれると思います。
無料です。 Mac OS Xの場合。 「すぐに使える」ソリューションではありませんが、基本的なデバイス構成に慣れていれば、それほど悪くないはずです。
MIDI DotNetにある.NETのソースコードサンプルを使用してハードウェアにアクセスできます。
MIDI notesデータストリームを作成するためのソースコードとしての完全なワーキングサンプルはVB 5/6-Tipp 0521にあります。MIDI -Tone erzeugen(Visual Basic 6.0、どこかで.NETバージョンもあります)
キーボードストロークをシミュレートする方法はVB 5/6-Tipp 0155:Tastaturereignisse simulierenにあります(Visual Basic 6.0、どこかで.NET版もあります)
キーストロークの認識についてはTipp-Upload:VB.NET 0266:Globaler KeyHookに説明があります。
それなら、ピアノ奏者のために良いワーキングマトリックスを使うだけです。
ピアノで、そしてあなたが良いプレーヤーであるとき、あなたはキーボードの上に10本の指を持つことができます、そしてマトリックスが使用可能であるならあなたははるかに速くあなたが思うどんなコンピュータキーボードユーザーでもありえます。 :-)
その場合、私があなたの質問を正しく理解していれば、それは大きなことではないはずです。
私は大学でピアノの演奏を学び、それからインタラクションデザイン、プログラミング、そして Vim の使い方を学んだので、実際にこのようなものをプロトタイピングするのに多くの時間を費やしました。
Linuxでは、マルチメディアアーティスト向けのグラフィカルプログラミング言語「 Pure Data 」と外部のx11key を使用することで、この作業をかなり簡単に行えます。アンドレ 。
Macでは、 MidiStroke を使用できます。私は、Windows上のメソッドが MidiOx と AutoHotKey ツールを含んでいたと思います。別の時に、私は Max/MSP のためにJavaプラグインを使うバージョンを持っていました。私は Patrice Colet がPure Data用の外部ウィンドウを同様に機能させたと信じていますが、私はもうそれを見つけることができないようです。また、 MaxMSP の外部にWindowsでこれを実行できるものがあります。最後に、フリーではないが素晴らしい Osculator はあなたが望むことをすることができます - 機能のページを見てください。
私はそれがうまくいったとき、私はそれで立ち往生することはありませんでした、私はレイアウトでツーリングを止めることができなかったので。私のモニターをエレキキーボードで操作しているだけでかっこよかったです。がんばろう。
あなたは「MIDIについて何も知らない」と述べました。 MIDIテクノロジーは、一度理解すれば簡単ですが、最初は混乱する可能性があります。 MIDIの基礎(MIDIの相互作用をプログラムする場合に必ず必要)の理解に非常に役立ったリソースの1つは、 MIDI for the Technophobe 。これは読みやすい本であり、非常に役立ちます。
インタラクティブマルチメディアを開発した私の経験では、どのデバイスからの信号/入力の接続とマッピングを容易にする、非常によく似た2つのプログラムがありました。
これらは、Mac環境では Max 、PC環境では Pure Data です。両方ともオンラインドキュメントとYouTubeチュートリアルが豊富にあります。ビデオMax/MSPチュートリアル1-コンピューターのキーボードをmidikeyboard(abletonスタイル)として使用は、コンピューターのキーボードをMIDIキーボードの入力(基本的に、あなたがやろうとしていることの正反対です)。同じパターンを使用することで目的の結果を得ることができますが、シグナル/マッピングを逆にします。
AutoHotKey は、デバイスのキーとボタンをマクロに再マッピングできるWindows用の無料のオープンソースユーティリティです。 QWERTYキーボード、ジョイスティック、およびマウスマクロをネイティブでサポートします。
ただし、探している特定のマッピングをサポートする実装を見つけることができました。これらの2つのスレッドはプロセスを説明します:
AutoHotkeyでのMIDI INサポート、ユースケースの説明。著者は、MIDI IN入力を検出し、それをキー押下に変換できるプログラムを探していました。
MIDI入力ライブラリ、作成者の問題に対する解決策、および意図した結果を実際に実装するAutoHotKeyへのコード/パッチの投稿。
基本的に、AutoHotKeyとこのユーザーのカスタムパッチは、MIDIキーボードからQWERTYキーボードの入力信号へのマッピングを作成するために必要なものを提供します。マッピングをインストール、構成、定義するだけです。
他の回答のいくつかは、一般的にMIDIおよびMIDIプログラミングに関するはるかに広範な情報を提供しましたが、あなたの投稿として、それはあなたが探しているものではないようです。可能であればもっとお手伝いしたいと思いますが、探している情報の種類をもっと具体的にできれば簡単です。たとえば、 MIDIキーボードの入力信号を QWERTY キーボードの信号に変換する方法に興味がありますか。 特定の問題に対してすぐに使える解決策を見つけるまだ対処されていないものを探していますか?
Teenysマイクロコントローラを使えば、あなた自身のUSBキーボードをすぐにハックすることができます。
実際、彼らはUSBキーボードを作る 方法のコード例を持っています 。
これには2つの方法があります。
古いピアノを手に入れて、10代の若者に直接スイッチをつなぐ
MIDIポートに接続するための追加のロジックと必要なデコードを追加します。
BomeのMIDIトランスレータ を試してください。
クロスプラットフォームで動作し、任意の MIDI 入力を簡単に、簡単にセットアップおよび設定でき、さらに個人用には無料です。
チュートリアルがあります、クイックヒント:MIDI翻訳 - MIDIからキーストロークへ、簡単に設定する方法
基本的に、あなたができることには無限の可能性があります、コードと修飾キーを含みます。私は私のピアノを使用して私の DAW を制御するために私のライブオーディオリグのためにそれを使用し、問題を抱えたことは一度もありません。
Javaでは、JMF(Java Media framework)を使用してMIDIシグナルを変換できます。キーボードデザインの基本は使いやすい、つまりユーザーインターフェイスです。頻繁に使用する文字/記号を便利な場所に置きます。
サンプルコードとJava Sound Resources:サンプル:Digital Signal Processing(DSP)のヘルプ信号を処理する方法を理解しています。
さらにいくつかの参照:
ケーシーが最善の答えを持っています。私はそれにコメントを加えてそれを支持しました。この種のソフトウェアは、デバイスドライバまたは組み込みシステムに属します。デバイスドライバははるかに複雑で、他のOSに移植することはできません。参考のために、Linux上のWinmodemsに関する問題を参照してください。
コードを組み込みシステムに入れることで、USBポートを持つすべてのMIDIデバイス、およびUSBキーボードを使用できるすべてのコンピュータに移植可能になります。
あなたの側のすべての議論から明らかです。技術的な観点からは、車輪を作り直す必要はありません。しかし、いったんつながって(この質問が何を求めているのか)、そしてうまく働いても、あなたはまだあなたの前に仕事の大部分を持っています:あなたはあなたの脳を訓練しなければなりません。あなたは また これを行うための最も賢い、最も効率的な方法を考案しなければなりません - 設計技術の問題は完全にコンピュータ技術の問題からです。あなたや私たちの誰かが足りないでしょう。
幸いなことに、この問題は何世紀にもわたって成熟してきましたが、解決され磨かれてきました...
速記を学ぶ!
はい、これでジャックが戻ってきます。しかし、結局のところ、それほど有利ではない結果となる、あなた自身の時間の何百時間もの価値はありますか?そのうえ、 速記Wikipediaの記事 は、「ピアノキーボードのように見えます」と言っています。
もちろん、サイドショー効果を出したくないのであれば。私は認めざるを得ないでしょう、私はこの可能性について決して考えませんでした、それが誰かがピアノのキーボードからテキストを破裂させるのを見るのは 本当に 面白いでしょう!
タッチパッド付きの USBキーボード から始めることもできます(または ポインティングスティック はもっと人間工学的に使いますか?)、 Plover を使用します。それを翻訳するために(私はそれがプログラミングにとって重要であるので非文字キーがそれらの機能性を保持するように構成することができると確信している)、またはスレッドに従うRe:Plover keyboardあなた自身のUSB速記キーボードを転がすために、または stenotype を購入する。
がんばろう!
実際にはプログラムには関係ありませんが、管理方法 RSI についてのアドバイスを提供できます。
頻繁にマイクロブレイクを導入して一日中あなたの仕事をペースで進めるタイマーがあります。 RSIを研究したことがあれば、マイクロブレイクについて聞いたことがあるはずです。それらは再発の管理と防止に不可欠です。無料のプログラムは Workrave です。
ブートをQWERTYして、 Dvorak を試してください。これが プログラマーのDvorakキーボードレイアウトです 。 Dvorakはホーム行で最もよく使われる文字を持っていますが、QWERTYは持っていません。そのため、Dvorakを使用すると、文字が届かなくても済むことで生じる負担を軽減できます。
まだ使用していない場合は、クローゼットからその「自然な」キーボードをつかみます。非常に軽く入力してください。キーストロークを登録するための最低限のことはするでしょう。
コーヒーを1日1〜2杯に制限してみてください。過度のカフェインはあなたが疲れを感じさせないようにし、あなたがRSIを持っているのを忘れやすくするでしょう。
過剰なアルコールはあなたの体がそれ自身を直すことを可能にするのに必要とされる睡眠を混乱させます。おやすみなさいの休息はRSIを調教するために重要です。
アクティブ孤立ステッチを使用したストレッチ良いルーチンは手首、手と指のストレッチルーチン - アクティブな孤立したストレッチで説明されています。
マウスを使って両親媒性を保つ方法を学びます。マウスが両手で使用できるように設計されていて、クリックしやすいボタンが付いていることを確認してください。
メインの入力デバイスとしてペンタブレットを使用してください。 Wacomはまともな安価なタブレットを作ります 。
がんばろう!
これを解決するには、いくつか必要なことがあります。
キーボードからMIDIデータをキャプチャする方法。インタフェースに応じて、MIDI interface(classic)または USB MIDI interface(modern)最も可能性の高いインタフェースは、コンピュータに対するものです。 USBホストマイクロコントローラは、単にコンピュータを使うほど単純ではありません。
MIDIデータをキーストロークに変換するためのスキーム。あるユーザーが指摘したように、コードの数はピアノのキーの数に左右されないので、和音を使う方法があります。
オペレーティングシステムにキーを挿入する方法。これは正確であるために低レベルのドライバを必要とします。私はキーボードとマウスのデータをWindows 7のアプリケーションに注入するアプリケーションで遊んできましたが、それは不安定であり、アプリケーションが現在フォーカスされているかどうかに依存します。これはインターフェースの最も難しい部分です。うまくいく可能性があるのは、シリアルインタフェースも持っている HID USBキーボードマイクロコントローラです。
シリアルインタフェースは仮想シリアルポートを作成します。 MIDIデータを読み取ってキーストロークを生成するソフトウェアは、シリアルメッセージを仮想シリアルポートに送信できます。マイクロコントローラはキーストロークを送信するため、標準のキーボード入力のように見えます。これにより、MIDIポートとUSB MIDIキーボードの両方を接続できます。
うーん、このタイプのインターフェースを使えば、マウスをシミュレートしたり、マウスの軸やボタンにピアノキーを設定することもできます。マウスポインタの速度を決定するために圧力を使用することができます。だからあなたもマウスを排除することができます。この方法のもう1つの利点は、接続するあらゆる種類の入力デバイスが仮想シリアルポートと通信してキーボードとマウスのイベントを生成できることです。あなたがドラムペダルやジョイスティックのような他のハードウェアを追加したいのであればそれはそれはシリアルインタフェースに話すプログラムを調整することの問題でしょう。
上の別の見方はArduinoを使うために上で投稿されたもののようなものですが、またUSBベースの音楽キーボードを扱うためにSparkfunからの USBホストシールド を含みます。これはArduinoがブートローダチップ内のキーボードまたはキーボードマウスコンボとしてプログラムされることを可能にし、デバイスが USB のホストとして動作することを可能にしますUSBベースの音楽キーボード。それから、あなたは両方のタイプのためにカバーされます。とはいえ、仮想シリアルポート方式のほうがより柔軟で、長期的にはプログラミングが容易であると私は思います。 Arduinoのデバイスはデスクトップのプログラムやサービスよりも変更が難しいでしょう。
もう一つの可能性があります:コーデッド片手キーボードがすでに存在しています。私はそれらの上でビデオを見ました、しかし、あなたはそれらがあなたの手を傷つけるかどうか決定しなければならないでしょう。
外部のMIDIを再生することで、どのオペレーティングシステムや DAW programを使用するかにかかわらず、より良い結果を得ることができます。サウンドカードを介してコントローラとしてのキーボード。それをあなたのGBソフトウェア(あるいは何でも)にルーティングすれば、リアルタイムでそれらがあなたに供給した多くのサウンドをトーンが生成します。
あなたのサウンドカードがMIDI I/O(ins/outs/thrus)をサポートしていないなら、それは問題ではありません。あなたは外部のMIDIテーブルトップコンバーターの研究と投資を検討することができます。多くのものはMIDI outをUSB 2.0にさらに変換する機能を備えています(既存のサウンドカードを完全にバイパスすることによって)。
たとえば、コンピュータのキーボードと鉛筆ツールを使用してZとXのキーを変更することで、「人間のような」グレースノートの結果を得るのは非常に困難です。その代わりに、あなた自身の指がそれ自身の物理的なオクターブレジスタ範囲からMIDIキーボードでただそれを演奏することができるとき - すぐに!
私は予算上の制約があることを実感しています。しかし、Radio Shackで100.00米ドル以下(*以下)で販売されているこれら一見安い "Casio"タイプ5オクターブキーボードのいくつかはあなたが必要とするすべてです(さらに、それらの内蔵サウンドパッチとシーケンサーモジュールのサウンドとハンドル他のことにも驚くほどよく合います)。
既存のサウンドカード用の外部MIDIコンバーターに関しては、私は いくつかのGoogle検索 をあなたのために特に念頭に置いてMacプラットフォームで実行します:
この外部MIDI変換情報の多くは、最初は厄介かもしれませんので、検討事項と予算の観点から、「ユーザーフレンドリー」として詳細に説明しています。
DAW を使用する場合は、 VST のように仮想キーボードを使用しても問題ありません。彼らは彼らの場所を持っています。
しかし、あなたは熟練したキーボード奏者のように聞こえます。それで、私が今あなた自身のために言及した外部のMIDI変換/キーボードオプションを考えてみませんか?
幸運を祈ります。これがあなたに役立つ可能性のあるアイデアをお届けしてくれることを願っています!
.NET DirectSoundインタフェースのようなものを使用してMIDIデバイスに接続するのは、かなり簡単なはずです。ターゲットのMIDIデバイスを識別してから、着信メッセージをリッスンするコードを取得する必要があります(これをGoogle経由で行うことに関する記事があります)。
キーボードとしてMIDIを使用しているので、検出する必要があるのは基本的に2つのMIDIメッセージのみです。つまり、ノートオンとノートオフです。 MIDIメッセージは、コマンド、ノート、ベロシティを指定する3データバイトです。ノートオフは単なるノート番号です(時には 'bad' MIDI stackがゼロベロシティでノートを送ります。
メッセージを翻訳したら、キーボード出力は.NETからかなり簡単になるはずです。
技術に関する他の回答にはたくさんのアドバイスがあります。実際のMIDIメッセージのアイデアをお伝えしたいと思います。がんばろう!
単純な AutoIt スクリプトを使用してMIDIイベントを読み取ることができます。MIDI入力を参照してください。
MIDI UDFおよび キー操作をシミュレート も必要です。
MIDIイベントの読み取りは簡単なはずですが、MIDIコントローラ(機器)ごとに機能が異なります。あなたのMIDIピアノが最初に何をすることができるかを調べてみて、それからこれらの機能をシミュレートされた QWERTY - キーボードプレスにどのようにマッピングできるかを見てください。
必要に応じて、画面上またはトレイに何かを表示して、自分が何をしているのかを確認できます(つまり、 Shift、 Ctrl そして Alt シミュレーション)。
自分でプログラミングをするのではなく、問題を解決したいだけであれば、USB-MIDIキーボードを購入すれば、キーボードの代わりにQWERTYキーボード出力信号を送ることができます。 MIDI出力、例えば M-Audio Axiom Pro
MIDIキーボードは自分自身を標準のQWERTYキーボードとして識別するため、このメソッドは標準のUSBキーボードをサポートするすべてのOSおよびコンピュータで機能します。
コード付きキーボード を見てください。それらはあなたがそれらを使うことができる前にあなたが彼らのためにドライバを書く必要がないという利点を持ち、そしていくつかはピアノキーボードのレイアウトに似ています。
Javaでのコーディングを知っていれば、この方法を使用することができます。
最初に、 'Note on'イベントをあなたが望むようなキーストロークにマッピングしているsend(..)
メソッドでjavax.sound.midi.Receiver
を実装します。
MidiMessageのコンテンツをgetMessage
メソッドで取得し、それを自分のやり方で解釈する必要があります。メッセージバイトの意味は、MIDIメッセージにあります。
特定のキーボードのキーに対して 'note on'または 'note off'を受け取った後、それをKeyEventクラスの定数に割り当てることでそれを好きなキーにマッピングできます。 。このキーコードは、Java.awt.Robot
のkeyPressおよびkeyReleaseメソッドで実際にキーストロークをOSに、したがって他のアプリケーションに送信するために使用できます。
私はBrian O'Dellの答えに同意します - これが私のプロジェクトであれば、私はハードウェアでそれをやるでしょう。プラットフォームとハードウェアに依存しないという利点があります - あなたの箱は、MIDI-USBインターフェースとPC APIの必要性を置き換えます。
mbed は非常に簡単に習得でき、Arduino IMHO(オンラインコンパイラ、512 KBフラッシュ、96 MHz、 C++言語)それは USBキーボードインターフェース と USB Midiインターフェース を事前に作成しています。あなたのために。
コミュニティはとても親切で手助けをする気があり、MIDIとUSB隠しエミュレーションの両方を使用している多くの既存のプロジェクトがあります - "mbed MIDI"または類似のYoutubeを検索してください。
Linuxをお使いの場合は、Footwareをご覧ください。
MIDIピッチを好みのキーマッピングに調整すれば、それはまさにあなたが探しているものであるはずです。
私はこれが私以外の誰にとっても役に立つとは思わなかった; o)
速くタイプするには、左手に子音を、右手に母音を(またはその逆に)「弾く」ことをお勧めします。次のように組み合わせることができるので、すべての子音にキーは必要ありません。
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 ...
2つのクローズキーを省くことができます(のように) c# + d、これは簡単にはプレイできません。あなたも黒い鍵を省くことができます。
母音の場合は簡単です。
あなたは
c d e f g a
ただし、複数のキーストロークを使用することも検討してください。 c# = aa、 d# = eeなど.
子音についても同じことができます(st、spなどのキーの組み合わせ)。
子音と母音を同時に演奏したり、交互にまたは優先して結び付けることができます(子音、次に母音など)。
あなたはおそらく再びタイプすることを学ぶ必要があるでしょう、しかし私はあなたが普通のタイピングする人ができるよりはるかに速くすることができると確信しています。
数字と特殊文字には別のオクターブを使い、シフトにはスイッチを使い、スペースには簡単に組み合わせたキーの組み合わせを使います(左右2つのcを持つように、(a)文字を意味しないことを確認します) ))。
0-127の値を持つことができるペダルの使用についても考えてください。あなたはそれをシフトやスペースとしても使うことができます...あるいはバックスペース/エンター。
私はこれがあなたのプロジェクトにいくつかの新しいアイデアと幸運を与えることを願っています。
私はあなたの気持ちを正確に知っています。一日中クレイジーなキーボードコーディングコマンドを実行すると私の手が痛くなります。
ピアノはその仕事をしないでしょう( Dorvakキーボード を手に入れたほうがいいです)。最善の解決策は、精神的なテレパシーまたは現時点では音声制御です。
私はArthro-Aid Directクリームが良くて、Wild Blendでも問題ないと思います。
私が気づいた他のことはマウスも主に非難することである、ほとんどが非人間工学的でクリックしているのでそんなに多くの原因 RSI そして CTS 。これを克服するために、私は時折自動マウスクリッカー、例えば 自動マウスクリッカー を使います。
私はマウスの特許をあなたが握っているグリップとして持っていることを知っています、私は買うことに熱心です。
シモンズ:あなたがあなたの手について医者に会う前にあなたの所得保護保険に加入してください!
そして週末にはプログラムしないでください:)
あなたの質問に対する答えはすでにこのページにありますが、私はいくつかの追加の入力をしたいのですが。
第一に、私はピアノのキーボードでタイプすることで痛みが止まるとは思わない。この点に関して、私はあなたがあなたのタイピングのために Nuance Dragon - 自然に話す のような何かを調べることをお勧めします。
第二に、あなたがこれを先に進めることを主張するなら、あなたはおそらく Nasebnbaar's (私はそれがもっと速くなるとは思わないが)と Brian's の提案に従う必要があるでしょう。おそらくこれはエンジニアに連絡してきちんとやるべきことですが、自分でやらなければならない場合は、 Electrical Engineering - Stack Echange。 の指示を求めることをお勧めします。
第3に、単に _ MIDIファイルの機能 、 プログラムによる読み取り 、および キーボードストロークのシミュレート方法 を理解するだけの場合、そして頑張ってください;)
最後に、あなたが最終的に2番目のオプションを使用することにした場合も、私はコピーを取得したいと思います:)
Arduino のように、マイクロコントローラベースのシステムを使ってみてください。
たくさんの答えがあります、私はちょっとしたアイデアがあります。どのMIDI-to-keyboardプログラムがそれをサポートしているかどうかはわかりませんが、MIDIではsustainおよびを使用できます。/expressionpedal。
実際には、私はエクスプレッションペダルを見たことがない。期間。
しかし、すべてのMIDIキーボードにはサスティン入力スロットがあります。サステインペダルは単なるスイッチです。お金をかけたくない場合は、タトゥー(!)ペダルを使用できますが、注意してください。一部の中国のタトゥーペダルでは音質が良くありません。購入する前に試してみてください。驚いたことに、 "電子機器"は同じです:オン/オフスイッチに接続された(大きな)モノラルジャック。あなたが「快適な」スイッチ、ジャックオスプラグといくつかのワイヤーを持っているならば、あなたもあなた自身のものを作ることができます。
シフトとして使うことをお勧めします。 Commodore 16 では、ジョイスティック-2の発射ボタンはshiftと同等で、私は数日間それを使っていました。唯一の問題は、私の喜びがそれにとって不快であることでした。あなたがピアノ奏者であれば、おなじみでしょう。
これはそれほど難しいことではありません。
私はあなたが Windows にいると思っていますが、それについてはよくわかりません。私は MIDI sequencer、 http://pianocheetah.com 、を普通の C++で書いた。 、ピアノキーボードを使ってコマンドを実行できます。キーボード入力ストリームにキーをプッシュするのと同じことができない理由はありません。
しかし今来なさい。そもそもキーボードを最初から覚えるのにどれぐらいの時間がかかったか覚えているでしょう?あなたは再びそれを通過しても構わないと思っていますか?そして、あなたはあなたの祝福されたキーボードを、それをくまなく見ている愚かな外観の鍵のシンボルで汚染しても構わないと思いますか?
少なくとも26個の英字、10個の数字、11個の句読点、および少なくとも12個のファンクションキーとそれらのシフトされた状態を使用する必要があります。 60キーとシフト状態です。これで5オクターブの鍵が燃え尽きます。あなたはピアノを弾くことになるでしょう "ホップ" =すべて=時間。タイピングに触れるためにさよならを言いなさい。
あなたは RSI からあなた自身を救うかもしれませんが、あなたはあなた自身のために別のタイプの悪夢を作成しました。
そして、上司に職場でMIDIキーボードを購入させてください。
あなたが本当にピアノを弾くことを学んだならば、あなたはストレスフリーで弾く方法を学びました。それを QWERTY キーボードで行います。緊張はありません。ゆっくり始めてください。