私はRSIの問題を抱えており、30種類のコンピューターのキーボードを試してみましたが、すべてが私に苦痛を与えました。ピアノを弾いても痛みはありません。私は約20年間ピアノを演奏しましたが、痛みはありませんでした。MIDIキーボードからMIDIをキャプチャしてキーボードストロークを出力する方法があるかどうか知りたいのですが。MIDIについてはまったく知りませんが、この信号をキーストロークに変換する方法についてのガイダンスをお願いします。
私はRSIの問題を抱えており、30種類のコンピューターのキーボードを試してみましたが、すべてが私に苦痛を与えました。ピアノを弾いても痛みはありません。私は約20年間ピアノを演奏しましたが、痛みはありませんでした。MIDIキーボードからMIDIをキャプチャしてキーボードストロークを出力する方法があるかどうか知りたいのですが。MIDIについてはまったく知りませんが、この信号をキーストロークに変換する方法についてのガイダンスをお願いします。
回答:
完全なMIDIサポート(BASS)を備えた.NETの優れたライブラリは、http://www.un4seen.comにアクセスしてください。。
もう1つは、キーボードのMIDIノートをキーなどに変換するために、AutoItX、つまりActiveX / COMとDLLのインターフェイスであるautoItです。情報とダウンロード、移動 http://www.autoitscript.com/site/autoit/にアクセスください
キーボードドライバを書く必要はありません。
私は何年もMIDIプログラミングを行っていませんが、基本的な考え方は非常に健全です(駄洒落ではありません)。
MIDIは「イベント」(または「メッセージ」)のストリームであり、最も基本的なものは「ノートオン」と「ノートオフ」の2つであり、ノート番号を持ちます(0 = C中央のCから5オクターブ下、127 = G中央のCの上のGの5オクターブ、半音)。これらのイベントは、速度に敏感な(「タッチセンシティブ」)キーボードの「速度」番号を持ち、0から127の間の力(あなたが推測した)を持っています。
ベロシティ、コード、ペダルの間で、ピアノキーボードの非常に優れた「タイピング」インターフェイスを思いつくと思います。特に和音は非常に強力なテクニックかもしれません—コメントで述べたように、ランクとファイルの速記者が速記型のマシンを使用できるのはそのためです一流のタイピストでさえ、何時間も続けて人々が話し続けているをです。通常のタイプライタースタイルのキーボードを使用して、いつでも使用できる。機械速記と同様に、和音と和音のシーケンスの意味の「辞書」が必要です。(私は機械速記のソフトウェア側で働いていたと言えますか?)
これを行うには、基本的な部分は次のとおりです。
ソフトウェアと最も広く互換性を持たせるには、これをキーボードデバイスドライバーとして作成する必要があります。これは、基盤となるハードウェア(この場合はピアノのキーボード)と通信する、キーボードイベントのソースとして機能するオペレーティングシステムへのプラグインです。WindowsとLinuxの場合、おそらくCを使用したいと思うでしょう。
ただし、キーストロークを生成しているだけなので(何年も前に試みていたキーストロークを傍受しようとはしていません)、人工的なキーストロークを送信するためにオペレーティングシステムが持つ機能をすべて使用できる場合があります。Windowsはそれを行うためのインターフェイスを持っています(おそらくいくつかは、私が考えているものですがSendInput
、同様のことを行う「ジャーナル」インターフェイスがあることは知っています)。他のオペレーティングシステムでも同様に機能するはずです。これで十分でしょう。デバイスドライバーのルートが扱いにくくなり、Javaとは異なる言語を使用する必要があるためです。(私はJavaの大ファンですが、オペレーティングシステムがデバイスドライバーと通信するために使用するインターフェイスは、Cなどを介してより簡単に使用される傾向があります。)
更新:コード入力からキーストロークへの「辞書」の詳細:
基本的に、辞書は最長のプレフィックスマッチングで検索するトライです(ありがとう、@ Adam)。詳細:
機械速記法では、速記者は、速記タイプの機械で同時に複数のキーを押してから、それらをすべて離して書き込みます。彼らはこれをキーボードの「ストローク」と呼んでいます。ピアノで和音を弾くようなものです。ストロークは頻繁に(常にではない)話し言葉の音節に対応します。音節と同様に、1つのストローク(和音)が単独で意味を持つ場合もあれば、後続のストロークと組み合わせるだけの意味を持つ場合もあります。(「良い」と「良い」の後に「さようなら」を考える)。学習した学校の影響を大きく受けますが、速記者はそれぞれ、どのストロークを使って何を意味しているのかという独自の「辞書」を持ちます。辞書には、速記部分(「steno」、略して)が1ストロークまたは複数ストロークのエントリがあります。多くの場合、同じ開始ストロークを持ついくつかのエントリがあり、それらは長さと後続のストロークによって区別されます。たとえば(ここでは実際のステノは使用せず、プレースホルダーのみを使用します)、次のエントリがある可能性があります。
A =アルファ A / B =アルファベット A / B / C =アルファベット A / C =エアコン B =ミツバチ B / C =の理由 C =海 D =犬 D / D =ディーディー
(これらの文字は音符ではなく、単なる抽象的なマーカーです。)
注A
複数のエントリを開始し、また、どのように翻訳していることに注意C
ストロークすると、以前に見てきたかどうかに依存してA
、B
またはあなたが新鮮を開始しています。
また、(上記の非常に小さなサンプルには示されていませんが)同じ単語またはフレーズを1つではなく「再生」する方法が複数ある場合があることに注意してください。速記者は、手の位置に応じて、前の単語から次の単語に流れやすくするためにそれを行います。そこには明らかに音楽のアナロジーがあり、これを使用してタイピングの流れを音楽の演奏に近づけることで、これがピアノの演奏に悪影響を与えないようにし、これがRSIに実際に役立つ可能性を最大にすることができます。
ステノを標準テキストに翻訳するときも、「最長プレフィックス一致」検索を使用します。翻訳アルゴリズムは、これまでに書かれた最初のストロークから始まり、そのストロークで始まるエントリを探します。エントリが1つしかなく、それが1ストロークの長さである場合、「それが使用するエントリです」と確実に言って、対応するテキストを出力し、次のストロークから始めます。しかし、より可能性が高いのは、そのストロークがさまざまな長さの複数のエントリを開始することです。したがって、次のストロークを調べて、これら2つのストロークで順番に始まるエントリがあるかどうかを確認します。マッチができるまで続きます。
上記の辞書で、このシーケンスを見たとしましょう:
ACBBCABCABD
これを翻訳する方法は次のとおりです。
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つのエントリのみに一致します。「アルファベット順」を出力し、次のストロークで新たに開始します。A
A
3つのエントリを開始します。次のストロークを見てください:B
A/B
2つのエントリを開始します。次のストロークを見てください:D
A/B/D
何も一致しないため、以前の最長一致(A/B
)を使用し、それを使用して「アルファベット」を出力します。それはD
まだバッファに残っています。D
は2つのエントリを開始するため、通常は次のストロークを調べますが、すべてのストロークを処理したので、それを個別に検討します。単独では「犬」と解釈されるため、出力します。注意すべき上記の側面:
A/B
「alpha」や「bee」ではなく、「alphabet」に翻訳する必要があります。E
は「untranslate」になります。)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ノートデータストリームを作成するためのソースコードとして完全に機能するサンプルはVB 5 / 6-Tipp 0521にあります:MIDI-Töneerzeugen(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を使用するようになったので、実際にこのようなもののプロトタイピングに多くの時間を費やしました。
これは、マルチメディアアーティスト向けのグラフィカルプログラミング言語「Pure Data」と、Alex Andreによる外部x11key を使用することで、Linuxでかなり迅速に機能します。
Macでは、MidiStrokeを使用できます。Windowsでの方法にはMidiOxツールとAutoHotKeyツールが関係していると思います。別のときに、Max / MSPの Javaプラグインを使用するバージョンがありました。私は信じていパトリスコレは同様に働いていた純粋データの外部窓を作ったが、私はもうそれを見つけるように見えることはできません。また、Windowsでこれを行うことができるMaxMSPの外部があります。最後に、フリーではないが素晴らしいOsculatorはあなたがやりたいことを実行できます-機能ページを参照してください。
私はそれを機能させたとき、レイアウトでツールを止めることができなかったので、私はそれにこだわることはありませんでした。でも、私の電子キーボードにモニターを置いているだけでクールでした!幸運を。
あなたは「MIDIについて何も知らない」と述べました。MIDIテクノロジーは、理解すればかなり簡単ですが、最初は混乱する可能性があります。MIDIの基礎(MIDIインタラクションをプログラムしたい場合は確かに必要です)を理解する上で非常に役立つリソースの1つは、Technophobe用MIDIと呼ばれる本です。それは読みやすい本であり、非常に役立ちます。
インタラクティブマルチメディアの開発経験で、どのデバイスからの信号/入力の接続とマッピングを容易にする2つの非常によく似たプログラムがあります。
これらは、Mac環境ではMax、PC環境ではPure Dataです。どちらにも大量のオンラインドキュメントとYouTubeチュートリアルがあります。ビデオMax / MSPチュートリアル1-コンピューターのキーボードをmidikeyboard(アブルトンスタイル)として使用すると、コンピューターのキーボードをMIDIキーボードの入力にマップするMaxに組み込まれたプログラムを示します(これは基本的に、実行しようとしていることと正反対です)。同じパターンを使用して目的の結果を得ることができますが、信号/マッピングを逆にします。
AutoHotKeyは、デバイスのキーとボタンをマクロに再マッピングできる、Windows用の無料のオープンソースユーティリティです。QWERTYキーボード、ジョイスティック、マウスマクロをネイティブでサポートしています。
しかし、私はあなたが探している特定のマッピングをサポートする実装を見つけることができました。これらの2つのスレッドはプロセスを説明します。
AutoHotkeyでの MIDI INサポート、使用例の説明。著者は、 MIDI IN入力を検出し、それをキープレスに変換できるプログラムを探していました。
MIDI入力ライブラリ、作成者の問題の解決策、および実際に目的の結果を実装するAutoHotKeyへのポストされたコード/パッチ。
基本的に、AutoHotKeyは、このユーザーのカスタムパッチと共に、MIDIキーボードからQWERTYキーボードの入力信号へのマッピングを作成するために必要なものを提供します。マッピングをインストール、構成、定義するだけで済みます。
他の回答のいくつかは、一般に、MIDIとMIDIプログラミングに関するはるかに広範な情報を提供していますが、あなたの投稿によると、それはあなたが探しているものとはかなり思えません。できればもっとお役に立てればと思いますが、探している情報の種類を具体的に教えていただけると助かります。たとえば、MIDIキーボードの入力信号をQWERTYキーボードの信号に変換する方法にもっと興味がありますか。それとも、特定の問題に対する標準の解決策を見つけることに主な関心がありますか。まだ対処されていないことを何を探していますか?
Teenysマイクロコントローラーを使用すると、独自のUSBキーボードをすぐにハッキングできます。
実際、彼らはUSBキーボードの作り方のサンプルコードを持っています。
この2つの方法にアプローチできます。
古いピアノを手に入れて、ティーンエイジャーに直接スイッチを接続してください
追加のロジックを追加して、MIDIポートに接続し、必要なデコードを行います。
BomeのMIDIトランスレータをお試しください。
クロスプラットフォームで動作し、MIDI入力をキーストロークに簡単に変換でき、セットアップと構成が迅速であり、個人での使用は無料です。
チュートリアルがあります、クイックヒント:MIDI変換– MIDIからキーストローク簡単な設定方法の。
基本的に、コードや修飾キーなど、実行できることには無限の可能性があります。ピアノを使ってDAWを制御するライブオーディオリグとして使用していますが、問題が発生したことはありません。
Javaでは、JMF(Java Mediaフレームワーク)を使用してMIDI信号を変換できます。キーボード設計の基本、つまりユーザーインターフェイスは使いやすいです。頻繁に使用する文字/記号を手元に置いておきます。
JavaサウンドリソースのサンプルコードとAPI :例:デジタル信号処理(DSP)は、信号の処理方法を理解するのに役立ちます。
さらにいくつかの参照:
あなたの側のすべての議論から明らかです。技術的な観点から、ホイールを再発明する必要はありません。しかし、接続が確立されて(この質問が何を求めているか)作動し始めても、作業の大部分はまだ先に進んでいます。脳を訓練する必要があります。また、そのための賢くて効率的な方法を考案する必要もあります。設計上の問題は、コンピュータ技術者の慣習から生まれたものです。あなたまたは私たちのいずれかが不足します。
幸い、何世紀にもわたって成熟してきましたが、問題は解決され、磨かれてきました...
速記を学ぶ!
はい、これでジャックが戻ります。しかし、何百時間ものあなたの時間の価値は何ですか、そして結局、あまり好ましくない結果ですか?さらに、速記ウィキペディアの記事には、「ピアノのキーボードのように見える」と書かれています。
もちろん、余興効果を出したいのでなければ。私は認めざるを得ません、私はこの可能性について決して考えませんでした、誰かがピアノの鍵盤からテキストをバストアウトするのを見るのは本当に面白いでしょう!
あなたは、で始まる可能性がタッチパッドとUSBキーボード(またはポインティングスティックより人間工学的でしょうか?)、使用チドリをそれを翻訳するために、彼らはのために不可欠であるとして、(私は必ずそれが非文字キーは、その機能を保持できるように構成することができますよプログラミング)、または、スレッドRe:Ploverキーボードに従って、独自のUSB速記キーボードを転がすか、またはstenotypeを購入します。
幸運を!
pthread
ますか?
これを解決するには、いくつかのものが必要です。
キーボードからMIDIデータをキャプチャする方法。インターフェースに応じて:MIDIインターフェース(クラシック)またはUSB MIDIインターフェース(モダン)は、ほとんどのオプションを提供するコンピューターへのインターフェースである可能性が最も高くなります。USBホストマイクロコントローラーは、コンピューターを使用するほど単純ではありません。
MIDIデータをキーストロークに変換するスキーム。一人のユーザーが指摘したように、鍵の数はピアノの鍵の数に依存しないので、コードは進むべき道です。
オペレーティングシステムにキーを挿入する方法。これには、低レベルのドライバーを正確にする必要があります。私は、キーボードとマウスのデータをWindows 7のアプリケーションに挿入するアプリケーションをいじってみましたが、不安定で、アプリケーションが現在フォーカスされているかどうかによって異なります。これはインターフェースの最も難しい部分です。機能するのは、シリアルインターフェイスも備えたHID USBキーボードマイクロコントローラーを作成することです。
シリアルインターフェイスは仮想シリアルポートを作成します。MIDIデータを読み取り、キーストロークを生成するソフトウェアは、仮想シリアルポートにシリアルメッセージを送信できます。マイクロコントローラはキーストロークを送信するため、標準のキーボード入力のように見えます。これにより、MIDIポートとUSB MIDIキーボードの両方を接続できます。
うーん、このタイプのインターフェースでは、マウスをシミュレートして、マウスの軸とボタンにピアノのキー設定を使用することもできます。圧力は、マウスポインターの速度を決定するために使用できます。したがって、マウスを排除することもできます。このアプローチのもう1つの利点は、接続する任意のタイプの入力デバイスが仮想シリアルポートと通信して、キーボードとマウスのイベントを生成できることです。したがって、ドラムペダルやジョイスティックなどの他のハードウェアを追加する場合は、シリアルインターフェイスと通信するプログラムを調整するだけで済みます。
上記の別の見方は、Arduinoを使用するための上記の投稿のようなものですが、USBベースの音楽キーボードを処理するためにSparkfunのUSBホストシールドも含まれています。これにより、Arduinoをブートローダーチップのキーボードまたはキーボードマウスコンボとしてプログラムでき、デバイスはUSBベースの音楽キーボードのUSBホストとして機能できます。次に、両方のタイプについて説明します。ただし、仮想シリアルポート方式の方が柔軟性があり、長期的にはプログラミングが容易になると思います。Arduinoデバイスは、デスクトッププログラムやサービスよりも変更が困難です。
別の可能性もあります:コード付き片手キーボードはすでに存在しています。私はそれらのビデオを見たことがありますが、それらがあなたの手を傷つけるかどうかを判断する必要があります。
.NET DirectSoundインターフェイスのようなものを使用して、MIDIデバイスに接続するのはかなり簡単です。ターゲットMIDIデバイスを識別し、着信メッセージをリッスンするコードを取得する必要があります(Google経由でこれを行う方法に関する記事があります)。
MIDIをキーボードとして使用しているので、基本的に、検出する必要があるMIDIメッセージは2つしかありません。つまり、ノートオンとノートオフです。MIDIメッセージは、コマンド、ノート、ベロシティを指定する3つのデータバイトです。ノートオフはノート番号のみです(「悪い」MIDIスタックはゼロベロシティでノートを送信することもあります)。
メッセージを翻訳したら、キーボード出力は.NETからかなりシンプルになるはずです。
他の回答には専門性に関する多くのアドバイスがあります。私はあなたに実際のMIDIメッセージのアイデアを与えたかっただけです。幸運を!
サウンドカードを介して外部MIDIキーボードをコントローラーとして再生すると、(使用するオペレーティングシステムやDAWプログラムに関係なく)より良い、より良い結果が得られます。次に、それをGBソフトウェア(または何でも)にルーティングし、トーンがリアルタイムでその方法で提供した多くのサウンドを生成します。
サウンドカードがMIDI I / O(ins / outs / thrus)をサポートしていない場合は、問題ありません。外部MIDIテーブルトップコンバーターの調査と投資を検討できます。多くは、MIDI出力をUSB 2.0にさらに変換するために装備されています(既存のサウンドカードを完全にバイパスします)。
たとえば、コンピュータキーボードと鉛筆ツールを使用して、ZキーとXキーのキーを変更するオプションを使用して、「人間のような」グレースノートの結果を取得するのはかなり困難です。代わりに、自分の指でMIDIキーボードを使用して、自分の物理的なオクターブレジスター範囲から演奏することができます—すぐに!
予算の制約が関係しているのではないかと思います。しかし、Radio Shackで100.00米ドル(*以下)で販売されている、これらの安っぽく見える「カシオ」タイプ5オクターブキーボードのいくつかは、必要なものすべてです(さらに、オンボードサウンドパッチとシーケンサーモジュールのサウンドとハンドルの一部)他のものについても驚くほど良いです)。
既存のサウンドカード用の外部MIDIコンバーターについては、特にMacプラットフォームを念頭に置いて、次のようにいくつかのGoogle検索を実行しました。
この外部MIDI変換情報の多くは、最初は扱いにくいかもしれません。そのため、考慮事項と予算を考慮して、「ユーザーフレンドリー」なものとして分類しました。
DAWを使用する場合、仮想キーボードをVSTとして容易にすることには何の問題もありません。彼らは彼らの場所を持っています。
しかし、あなたは熟練したキーボード奏者のように聞こえます。それでは、先ほど触れた外部MIDI変換/キーボードオプションを検討してみませんか?
幸運と私はこれがあなたのために働くことができ、あなたのために働くいくつかのアイデアを与えたことを願っています!
自分でプログラミングしたくないが、問題を解決したいだけの場合は、USB-MIDIキーボードを購入するだけで、MIDI出力ではなくQWERTYキーボード出力信号を送信するためのキーを再割り当てできます。M-Audio Axiom Proの例
MIDIキーボードは標準のQWERTYキーボードとして識別されるため、この方法は、標準のUSBキーボードをサポートするすべてのOSおよびすべてのコンピュータで機能します。
シンプルなAutoItスクリプトを使用して、MIDIイベントを読み取ることができます。MIDI 入力を参照してください。
また、MIDI UDFが必要で、キープレスをシミュレートします。
MIDIイベントの読み取りは簡単ですが、MIDIコントローラー(楽器)によって機能が異なります。まずMIDIピアノで何ができるかを調べてから、これらの機能をシミュレートされたQWERTYキーボードプレスにどのように最適にマッピングできるかを確認してください。
必要であれば、あなたはあなたが(のために、である何をしているかを見るのを助けるために、画面上やトレイに何かを持つことができShift、CtrlおよびAltシミュレーション)。
あなたはコード付きキーボードを見るかもしれません。それらには、使用する前にドライバーを作成する必要がないという利点があり、ピアノキーボードのレイアウトに似ているものもあります。
Javaでのコーディングを知っている場合は、次の方法を使用できます。
まず、実装するjavax.sound.midi.Receiver
としsend(..)
「Note on」イベントを必要なキーストロークにマッピングメソッドを使用ます。
MidiMessageのコンテンツをそのgetMessage
メソッドで取得し、自分のやり方で解釈する必要があります。メッセージバイトの意味はMIDIメッセージにありますます。
特定のキーボードキーの「ノートオン」または「ノートオフ」を受け取った後、C#4-> KeyEvent.VK_Aなどのように、KeyEventクラスの定数を割り当てることにより、それを好きなキーにマップできます。 。次に、このキーコードをjava.awt.Robot
のkeyPressおよびkeyReleaseメソッドで使用して、キーストロークを実際にOSに、したがって他のアプリケーションに送信できます。
私はブライアンオデルの回答に同意します。これが私のプロジェクトである場合、ハードウェアで実行します。それはプラットフォームとハードウェアに依存しないという利点があります-あなたのボックスはMIDI-USBインターフェースとPC APIの必要性を置き換えます。
mbedは、習得が非常に簡単な高速プロトタイピングプラットフォームであり、Arduino IMHO(オンラインコンパイラ、512 KBフラッシュ、96 MHz、C ++言語)よりも優れています。それは持っているUSBキーボードインタフェースとAを USB MIDIインターフェイスを、あなたのために事前に書かれています。
コミュニティは非常に友好的であり、喜んで助けてくれます。MIDIとUSBの両方の隠しエミュレーションを使用する既存のプロジェクトはたくさんあります。YouTubeで「mbed MIDI」などを検索してください。
Linuxを使用している場合はFootwareをお試しください。
それはまさにあなたが探しているものでなければなりません-もしあなたがあなたの好みのキーマッピングにMIDIピッチを調整するなら...
これが私以外の誰かに役立つとは思いませんでした; o)
Arduinoなどのマイクロコントローラーベースのシステムを使用してみてください。
これはそれほど難しくありません。
私はあなたがWindowsを使用していると仮定していますが、それについてはわかりません。私はMIDIシーケンサーhttp://pianocheetah.comを昔ながらのC ++で作成しました。これにより、ピアノのキーボードを使用してコマンドを実行できます。キーをキーボード入力ストリームにプッシュするために同じことを実行できなかった理由はありません。
しかし、今来てください。そもそもキーボードを習得するのにどれくらいの時間がかかったか覚えていますか?もう一度やり直しますか?そして、あなたは祝福されたキーボードをあちこちにある愚かな見た目の主要なシンボルの束で汚染しても構わないでしょうか?
少なくとも26の英字、10の数字、11の句読点、および少なくとも12のファンクションキーとそれらのシフトされた状態を使用する必要があります。つまり、60個のキーとシフトされた状態になります。これで5オクターブのキーが完全に燃焼します。あなたはピアノの「ホップ」=すべて=の時間をします。タッチタイピングに別れを告げます。
RSIから身を守ることができますませんが、あなたは自分のために別のタイプの悪夢を作り出しました。
そして、上司に職場でMIDIキーボードを買ってもらえれば幸いです。
本当にピアノを弾くことを学んだなら、ストレスのない演奏法を学んだことでしょう。QWERTYキーボードでそれを行います。緊張はありません。ゆっくり始めて。