週末のデザイン:シンプルなMIDIアダプター







子供用にヤマハPSR-550シンセサイザーを買ったことがあります。 このツールは最初の若者ではありませんでしたが、使いやすいものでした。 子供たちは熱意を示し、すぐにシンセサイザーに慣れました。彼らはコントロールを理解し、「缶を書く」などを学びました。 シンセサイザーの背面にある「MIDI IN」および「MIDI OUT」コネクターの存在は気になりませんでした。



問題の声明



前世紀では、MIDI経由でコンピューターとシンセサイザーを接続する最も簡単な方法は、 ゲームポートを使用することでした。 インターフェイス信号(ゲームポートのコネクタのMIDIおよびTTLの「現在のループ」)を一致させるために、単純なアダプタが作成されました。その回路は、 MIDIウィキペディアの記事に記載されています







現在、サウンドとマザーボードのゲームポートはクラスとして消滅しています。 最新のOSのゲームポートドライバが見つかりません。



インターフェースの「物理」は、 ウィキペディアの記事から原理的に理解できました。データは、1ストップビットとパリティのない8ビットデータパケットで31250 bpsの速度でスタートストッププロトコルを使用して交換されます。 信号回路の論理ゼロは5 mAの電流フローに対応し、論理ユニットは回路に電流がありません。



原則として、ゲームポートはUSB UARTに置き換えて、Wikipediaの記事で説明されているアダプターを接続できます。



このソリューションの最初の問題は、OSに強制的にUART COMポートをMIDIポートとして定義させることです。 予想外に、問題の解決策はArduinoフォーラムで見つかりました。 そこで、仮想COMポートの「上」にある無料のMIDIポートエミュレーターへのリンクを見つけました。 エミュレートされたポートをMIDIエディターに接続するために、開発者は仮想ループMIDIコードの使用を推奨しました。



2番目の問題:UARTを31,250 bpsで実行する。



これらのデータはすべて、 技術的な提案を策定するのに十分でした:

「コンピューターをMIDI経由でシンセサイザーに接続するには、USB UARTとアダプターを使用して、TTL信号を「電流ループ0 ... 5 mA」信号、loopMIDIソフトウェア、ヘアレスMIDI <->シリアルブリッジ、およびUARTドライバーで一致させることをお勧めします31,250 bpsの速度。」



ハードウェア



ハードウェアソリューションの選択は非常に簡単でした-記事の著者のビンに見つかりました:





その結果、このようなアダプター回路は、サイズが40x15のユニバーサルブレッドボードをトリミングして組み立てられました。







組み立てられた回路の性能は次のように検証されました。



  1. アダプターは、シンセサイザーのMIDIコネクターに接続されました。
  2. シンセサイザーはローカル制御が無効になっています(MIDIローカル=オフ)。
  3. アダプターのRX信号とTX信号の間にジャンパーを設定した後、シンセサイザーはキーストロークに応答し始めました。


回路の動作が説明なく明確であることを願っています。 私はそれだけに注意してください:





ソフトウェア



次に、次のソフトウェアがコンピューターにインストールされました。



  1. CP2102用のVCPドライバー
  2. CP2102を設定するためのユーティリティパッケージ
  3. MIDIポートエミュレーターヘアレスMIDI <-> Angus Grattonによるシリアルブリッジ
  4. トビアス・エリクセンによるバーチャルMIDIコード・ループMIDI
  5. MIDIエディターAnvil Studio。


その後、loopMIDIで2つのコードが作成されました-「Synthesizer」と「Keyboard」:







MIDIエディターをMIDI INシンセサイザージャックに接続するために、シンセサイザーコードがAnvil Studio出力とMIDIポートエミュレーター入力の間に接続されました。



MIDIエディターをMIDI OUTシンセサイザーコネクタに接続するために、MIDIケーブルエミュレーターの出力とAnvil Studio入力の間にキーボードケーブルを接続しました。











ソフトウェアを設定する最後の非常に重要なステップは、CP2102ビットレートを38,400 bpsではなく31,250 bpsに設定することでした。







速度を設定した後、「構成の設定」ボタンをクリックする必要があります。 次に、デバイスマネージャおよびヘアレスMIDI <->シリアルブリッジのUART CP2102 COMポートの通信速度の設定で、38400を選択します。



簡単な要約



その結果、Anvil StudioのMIDIエディターは、ヤマハPSR-550シンセサイザーとの通信チャネルを受け取りました。 子供たちは熱心にMIDIエディターの操作方法を学び始めました。 私は安心を取り戻しました。



PS PL2303の38,400 bpsではなく、31,250 bpsに速度を設定する方法については、 ここで説明しました



PPS CH341の速度を38,400 bpsではなく31,250 bpsに設定する方法はどこにもありません。



All Articles