コンピュータ ウィンドウズ インターネット

atmega用のDIYUSB音楽キーボード。 便利なシンセサイザーを自分の手で作る方法。 Midi キーボード回路 MKC64 v1.54

オレグ・ヤクボフ

サイトに自分のページを公開した後、私が組み立てた MIDI キーボードの図を書くか送ってほしいという手紙を何通か受け取りました。 そしてmidiキーボードについての記事を用意することにしました。

私は、1997 年のラジオ マガジン No. 3、4 から MIDI キーボード回路を選びました。本当に良い楽器を作りたい人は、図書館に行って雑誌を入手することをお勧めしますが、走り回ったりしたくない人には、時間を無駄にしたので、この記事全体に目を通しました(著者に不利益はないと思います)。 MIDIキーボードにはとても満足しています。 一般に、図のいくつかのタイプミス (おそらく記事をレイアウトするときに編集者によって作成されたもの) を除いて、アセンブリに問題はありませんでした。 スキャンする前に修正を加えました。これは、図を注意深く検討するとわかります。 注意してください: ROM をフラッシュするときは、コードの入力を間違えないでください。入力を間違えると、楽器がまったく再生されないか、正しく動作しなくなります。 すべての文字を間違いなく入力するのは難しく、私自身も入力時に 2 か所間違えてしまいました。ROM テーブルのチェック コードを印刷してくださったこの記事の作成者ご本人に特別に感謝します。チェックサムを確認するとすぐにエラーが見つかりました。 また、私がスキャンした表の中で、著者が 2 つの文字を置き換える場合に示した箇所を強調表示しました。 これは、キーボードがファの音符ではなく、ドの音で始まる場合に備えています。 デバイスのすべての部品とコンポーネントを回路基板に実装し、超小型回路のピン間の接続をフッ素樹脂編組の細いワイヤーで半田付けしました。キーボードと基板の間だけをフラットケーブルで半田付けしました。 プロセッサが起動しなかったため、私がやったことはコンデンサ C1 の静電容量を増やすことだけでした。 MIDI キーボードは非常に安定して動作し、これまでのところ何の問題も経験していません。 この回路が非常に複雑だと思われる場合は、同様に 1993 年のラジオ マガジン No.11 に掲載されている別の回路を組み立ててみてください。しかし、この回路には、私が今書いた回路のような可能性はありません。 したがって、少し辛抱して、1997 年のラジオ マガジン第 3 号、第 4 号の図をまとめてみることをお勧めします。スキャンした記事は以下のとおりです。 誰かがまだ組み立てに問題がある場合は、私に連絡してください。何か推奨できるかもしれません。 この方式の唯一の欠点は、楽器を素早く選択するのが不便であることと、「PITCH」効果が発生する可能性が低いことだと思います。 通常、キーボードでは、キーボードの左側にあるホイールの形でこの効果が得られます。

楽しい集会になりますように!

マルチメディアコンピュータおよびMIDIシンセサイザー用MIDIキーボード

S. コノノフ、トゥーラ

この記事の著者が開発した MIDI キーボードは、ますます複雑化した電子楽器に属しており、主にそのような機器の構築に関して一定の知識と経験を持つ読者を対象としています。 したがって、設計の説明は簡単に要約して記載します。 編集者は、この出版物の内容が一般に電子音楽に興味があり、おそらく最新の機器の設計を始めようとしている人々の注目を集めるだろうと信じています。 A. Studnev の記事「MIDI とは?」を理解することは有益です。 1993 年の「Radio」の 1 月号と 11 月号に掲載された「MIDI キーボード」、および K. Bystrushkin による記事「マルチメディアはすべての家庭にやってくる」(「Radio」、1996 年、No. 3)。

推奨される MIDI キーボードは「鈍い」鍵盤楽器であり、その主な目的は、Creative、Sound Blaster、Gravis、YAMA-HA などの MIDI 入力を備えたミュージック カードを搭載したパーソナル コンピューターと連携することです。 さらに、外部のシンセサイザーや音源など、MIDI 入力を備えた機器との連携も可能です MIDI キーボードのサービス機能を開発する際、「模倣」の対象となったのはイタリアの「MASTER STAR」社の製品でした。 。 まず、ボタンアコーディオンとアコーディオン用のユニバーサルMIDIリモコンを設計し、MUSIKMESSE-95展示会(フランクフルト・アム・マイン)で発表しました。 このとき、この複雑な構造のデバイスを、ラジオ誌の読者が繰り返し利用できる、よりシンプルな MIDI キーボードに変えるというアイデアが生まれました。 このツールにはしっかりしたサービスがあります。 特に、各キーで 2 つの MIDI チャンネルを制御し、それぞれに独自のプログラム (音色) を割り当て、各チャンネルの音量レベルとともにデバイスのメモリに記憶することができます。 鍵盤に接続した音源のサンプル音を2つ、任意に組み合わせて重ねることができます。 「クールな」デバイスでは、このモードは「COMBY」と呼ばれます。キーボードでは、楽器のピッチを 1 オクターブ上下に変更したり、最大 127 のプログラムを割り当てたり、多数の MIDI チャンネル (1 ~ 16) を制御したりすることもできます。 )、サウンドエフェクトのPITCH BEND、VOLUME、MODULATION、SUSTAINなどをコントロールします。 演奏される曲のテンポは毎分 20 ~ 240 ビートです。 キーボードを 2 つのマニュアルに分割する境界は任意ですが、ツールである回路は、機能的に完全な 3 つの部分、プロセッサ ブロック (A1)、コントロール パネル (A2)、およびキーボード ブロック (A3) で構成されます。 それらで使用されるマイクロ回路のセットは、Spectrum や Caller ID などのデバイスのコンポーネントに似ているため、EMR を設計したい人は、要素ベースを見つけるのが難しくありません。プロセッサ ブロックは、回路設計において Caller ID プロセッサに似ています。 。 Z80 プロセッサのマスターオシレータ (DD2) は、ロジック エレメント DD1.1 ~ DD1.3 と水晶振動子 ZQ1 を使用して組み立てられます。 水晶振動子の固有振動数は 4 MHz でなければなりません、そうでないと DD6 チップのレジスタ C の上位からバッファ素子 DD1.4 を経由する MIDI 情報の伝送速度が変化してしまいます。電圧が +4.5 V を超えない場合に電源をオン/オフするときに、DD2 チップの RES 入力 (RESET - ピン 26) にリセット信号を提供します。 これにより、電源のオン/オフ時に DD5 チップの不揮発性メモリに情報が保存される信頼性が向上します。 バッテリ GB1 は、コンデンサ C3、抵抗 R8、およびダイオード VD2 とともに、機器の一般電源がオフになっているときの情報の長期保存のために、マイクロ回路 DD4 への電力供給をサポートします。コントロール パネルのマイクロ回路 DD7 および DD8 は、コントロールパネルのボタンSB1〜SB19のポーリング、インジケータHG1、HG2によって形成される4桁の7要素ディスプレイの動的表示、およびデバイスの唯一のアナログ部分であるボリュームコントロールR40「ボリューム」のデジタル化。 ディスプレイには、第4世代と第5世代のHorizo​​n TVに搭載されていた、非常に便利で明るいデュアルインジケーターVQE14(旧名KIPTS09I)を使用しました。 HQ2 インジケーターをオンにすることは、図に示す HG1 インジケーターをオンにすることと似ています。

キーボード ブロックは、音符「F」で始まる 5 オクターブ (61 キー) の音楽キーボード、チップ D09、DD10、および 2 つの外部 MIDI レシーバーと「SUSTAIN」ペダルを楽器に接続するためのコネクタ X1 ~ X3 によって形成されます。 キーボードの各キーには 1 対の常開接点が装備されており、ダイオード (VD14 ~ VD74) 絶縁を備えた 8x8 マトリックスに結合されています。 図中、SA1の記号は一番左のキーを示し、SA61の記号は一番右のキーを示します。 マトリックス ポーリングは、DD9 および DD10 チップによって提供されます。 構築される楽器に使用される音楽キーボードが音「C」で始まる場合、マトリックスのチューニングは 7 キー分シフトする必要があります。 これを行うには、ROM 内でアドレス 025FH と 0268H のセルのコードを 7 単位ずつ増やす必要があります ( KR573RF5 ROMプログラミング表を参照してください。 ) つまり、コード「05」の代わりに「OSN」と書きます。 キーボードの電源は超小型回路電圧安定化装置 KR142EN5V で、その入力には外部電源から 9 V の定電圧が供給されます。このような電源は、負荷を提供する輸入電源を含む任意の小型ネットワーク電源にすることができます。少なくとも500mAの電流。 スタビライザの出力にあるコンデンサ C6 ~ C9 は、超小型回路の電源回路用のブロックコンデンサです。デバイスの部品とコンポーネントは 4 枚のプリント基板に実装されており、フラット ケーブルで相互に接続されており、その下にあります。キーボードハウジングのフロントパネル。 スイッチ SB1 ~ SB19 の押しボタン、インジケータ HG1、HG2、およびパネルの穴を通過する可変抵抗器 R40 のシャフトが MIDI キーボード コントロール パネルを形成します。連絡先。 機器のリアパネルにある X3 ジャックコネクタ (1/4 JACK) を介して機器に接続されます。 MIDI キーボードの外観と、表示コントロール パネル (インジケータ HG1、GH2)、ボリューム コントロール (抵抗 R40 "VOLUME")、およびボタン (SB1 ~ SB19) の配置を図に示します。 これらを使用して、ミュージシャンは音色、チャンネル番号の選択、ボイスの再分配などに必要なすべての MIDI 操作を実行できるだけでなく、外部のリズム コンピューターやシーケンサーを制御することもできます。 ディスプレイの右側にある数字のボタンは、対応するプログラム番号、MIDI チャンネル、テンポを入力し、ディスプレイの左側にあるファンクション ボタンはさまざまなキーボード パラメーターを制御します。 「PROG」(プログラム)ボタンを連続して押すと、ディスプレイに以下のキーボードパラメータが表示されます。 - トラックタイプとこのトラックのサウンドプログラムの番号。 ディスプレイの左側の文字は、A - 左 (下) マニュアル、B - 右 (上) マニュアル、C - 追加の MIDI デバイスを示します。 文字の後には、このトラックに割り当てられたオーディオ プログラムの 3 桁の番号 (000 ~ 127) が続きます。

- リズムジェネレーターのテンポコントロール; 同時に、文字 T と 1 分あたりの拍動 (ダウンビート) の頻度を特徴付ける 3 桁の数字がディスプレイに表示され、ディスプレイ上のカンマは速度を視覚的に制御するための「ランニング ライト」の効果を生み出します。テンポジェネレーター テンポ調整の範囲は 20 から 240 です; - チャンネルモードと楽器自身のプログラムの番号: この場合、ディスプレイの左側にある文字 P は、キーボード全体が「置かれている」ことを意味します。トラック*A*. 文字U - キーボードからの情報はトラック「B」(「COMBY」モード)に同時に送信され、文字Lは左側のマニュアル、つまりトラック「A」です(右側のマニュアルは「B」)文字の後ろに、ディスプレイには DD5 RAM メモリに保存されている独自のプログラムの 2 桁の番号 (00 ~ 99) が表示されます。楽器独自のプログラムは、トラックのサウンド プログラムと MIDI チャンネルの番号、および次の情報を特徴づけます。 : PITCH - 音色チューニング速度、MODULATION - 変調の深さレベル、VOLUME - 音量レベル、SPUT - マニュアルセパレーション境界、MODE チャンネルモード (P.U、L)、Ost A - 左マニュアルの +/- オクターブ、Ost B -右マニュアルの +/- オクターブ。 「-1」および「+1」ボタンは、ディスプレイ上の数値データを減少(増加)させます。 「MIDI」ボタンは各トラックにMIDIチャンネルを割り当てるためのボタンで、押し続けることでトラックが選択されます。 ディスプレイには、Ac トラック (Bc、CC) と MIDI チャンネルの番号 (1 ~ 16) が表示されます。 「START」ボタンを使用すると、外部リズムコンピュータまたはシーケンサーを開始または停止します (2 回押すと)。「Strt」または「Stop」がそれぞれディスプレイに数秒間表示されます。 「WHITE」ボタンには 2 つの機能目的があります。 選択したキーボード パラメータがすべて適切であり、それらを独自のプログラムの現在の番号で記憶する必要がある場合は、このボタンを 2 回押します。 初めて押すと、ディスプレイに 4 つのダッシュが強調表示され、デバイスがプログラミング モードになります。 2 回目に押すと、すべてのモードとパラメータがデバイス自体のプログラムのメモリに保存され、ディスプレイにはデバイス自体のプログラムの現在の番号が表示されます。 「書き込み」ボタンの 2 番目の目的は、デバイスを関数プログラミング モードで操作することです。 このモードは、最初に「WRITE」ボタンを押すとアクティブになります。 ディスプレイに 4 つのダッシュが表示され、プログラミング モードへの招待を表します。 デジタル化されたボタンは、次のモードのプログラマーの機能を実行し始めます: - PITCH - 音のチューニング速度。 ディスプレイには「PITCH BEND」と数字(1~4)が表示されます。 表示「Pb」は最小値「Pb4」、つまりこのパラメータの最大変化率に対応します。 - MODULATION - モジュレーションの深さは 25、50、75、100% です。 文字 LF (LONG FREQUENCY) と数字 1、2、3、4 でそれぞれ示されます。 - VELOCFTY - キーストローク速度 - キーボード全体で固定されています。 ディスプレイに 3 桁の数字 (000 ~ 127) で表示されます。 - VOLUME - 音量レベル (O-15)。 ディスプレイには 2 つの数字が表示されます: 左側 - マニュアル分割モードのキーボードの左側部分 (トラック A)、右側 - 右側の部分 (トラック B): - SPLIT - キーボード分割の境界2 つのマニュアルに分かれています。 ディスプレイには「SP」(SPLIT)とキーボードの左側の最後のキーの 2 桁の番号が表示されます。 - MODE - プログラミングチャンネルモード (P、U、L)。 ディスプレイに「Pr」が点灯します。これはチャンネルモード (P、U、L) に対応する文字です。 - TRANSPORT - 移調。つまり、キーボードのピッチを 12 半音下げるか、同じ数の半音上げて変更します。 下方移調モードは、ディスプレイに「-」記号付きの 01 ~ 12 の 2 桁の数字で示され、下方移調モードは符号なしで示されます。 数字 00 は転置がないことを示します。 - Ost A - 左鍵盤の +/- オクターブ。 これは、トラック A のキーボード スケールを 1 オクターブ下または 1 オクターブ上にシフトできることを意味します。 ディスプレイには「Ao」-1」、「Ao-0」、「Ao-1」が表示されます。これらはそれぞれ、1 オクターブ下へのシフト、シフトなし、1 オクターブへのシフトを意味します。 - Ost B - +/- オクターブ正しいマニュアルのために。 ディスプレイにはそれぞれ「In -1、In 0、In 1」が表示されます - PAUSE - MIDI 送信間の一時停止のサイズ ディスプレイには「PA」とサイズを示す 2 桁の数字 01 ~ 50 が表示されます任意の単位での一時停止の間隔。

残念ながら、マルチメディア コンピュータの一部の音楽カードは、オーディオ プログラムを変更するときに「スリップ」します。つまり、新しいオーディオ プログラムがロードされている間、カードは MIDI メッセージの受信を停止し、受信した情報が失われます。 たとえば、YAMAHA SW20 カードは 0.5 ~ 1 秒でサウンドを変更しますが、GRAV1S ULTRASOUND はハードドライブからサウンド プログラムをロードするため、さらに時間がかかります。 YAMAHA SW20 サウンド カードを明確に操作するには、一時停止サイズは 16 に相当します。SOUNDBLASTER などの安価なカードや MIDI 入力のある楽器の場合、PAUSE=1 です。 「リストされた機能のパラメーターは、「-1」および「+1」ボタンを使用して変更できます。もう一度「WRITE」ボタンを押すと、トラック A (0-127) のサウンド・プログラムとトラックのサウンド・プログラムが変更されます。 B(0~127)は本体のプログラムとしてメモリーされ、トラックCのサウンドプログラム(0~127)、MIDIチャンネル番号A(1~16)、MIDIチャンネル番号B(1~16)、MIDIチャンネルナンバーC(1~16)、トラックAの音量(0~15)、トラックBの音量(0~15)、オクターブA(-1、0、1)、オクターブB(-1、0.1)、動作中マニュアルのモード (P、U、L)、レベル、モジュレーション (1 ~ 4)、スピード PITCH BEND (1 ~ 4)。記載されている楽器のプログラム自体のシリアル番号に関係なく、セクション境界の SPLIT (1 ~ 61)、ピッチシフト TRANSPORT (-12、0、+12)、スピードプレス VELOCITY (0-127)、演奏された作品のテンポ (2&-240)。「VOLUME」ノブと「PITCH-」、「P1TCH」 MlDI キーボード リモコンの +"、"MOD" ボタンは操作制御コントロールです。これらのボタンは外部デバイスの音量を調整します。キーボードが 2 つの MIDI チャンネル (U、L モード) に対応している場合、レギュレーターはこれらのチャンネルにも対応します。しかし順番に。 最後に人の手が鍵盤(マニュアル)のどの部分に触れたか、ボリュームコントロールパラメータがこのMIDIチャンネルを介して送信されます。 これは、機能プログラミングモードに入るとより明確に実行できます。「WRITE」ボタンを押し、「4」ボタンを使用して VOLUME 機能をオンにします。 抵抗器 R40 のノブを時計回りにスムーズに回すと、ディスプレイには 0 から 15 までの 16 段階の階調が表示されます。キーボードの左側で作業すると、レギュレーターはチャンネル「A」の音量と音量レベルにのみ影響します。ディスプレイの左側に表示されます。 キーボードの右側で作業する場合、コントロールは影響を及ぼします 「PITCH-」および「PITCH+」ボタンは、トーンダウン/アップおよびトーンバックのスムーズなシフトによるPITCH BENDコントロールホイールの操作の便利なシミュレーションを提供します。ファンクション プログラミング モードでは、PITCH BEND シミュレーターの動作を速くしたり遅くしたりできます。 4 つのピッチベンド速度から 1 つを選択します。 「MOD」ボタンは、4 つの変調レベル (25、50、75、100%) の制御要素です。 この位置を長押しすると、MIDI トーンモジュレーションが有効になります。 ボタンを放すと、変調は無効になります。 MIDI インターフェイスを備えたサウンド カードを備えたコンピュータの所有者は、楽器の MIDI 入力とコンピュータ サウンド カードの TTL MIDI 入力の間のガルバニック絶縁に必要なアダプタ (MIDI アダプタ) も必要になります。 その図を図に示します。 2.

絶縁はフォトカプラ AOT127A (U1) によって提供されます。 アダプターには、サウンド カード コネクタ (ピン 1.8 と 9 - +5 V、ピン 4 と 5 - 共通) を通じて電力が供給されます。 「MIDI THRU-」および「MIDI OUT」入力は、シンセサイザー、トーンジェネレーター、およびコンピューターに組み込まれていないその他の外部 MIDI レシーバーを接続することを目的としています。MIDI キーボードをセットアップするときは、R38- のセットアップに特別な注意を払う必要があります。ボリューム コントロール レベルのアナログからデジタルへの変換のための R40 ノード。デバッグされ、完全に機能している機器でこの順序でこれを実行します。機器の電源を入れ、リモコンの「WRITE」ボタンを押してから、「4」ボタンを使用します。ボタンを押して、VOLUME 機能をオンにします。抵抗 R40 ノブを時計回りにスムーズに回すと、ディスプレイには 0 から 15 までの 16 段階の階調がすべて表示されます。調整範囲が偏っていたり、狭い場合は、アナログ - アナログ変換機能が正常に動作します。抵抗R38を選択することでデジタル変換します。

MIDI メッセージが利用可能かどうかは、次の手順で確認します。 「MIDI OUT」コネクタの5番ピンにオシロスコープの入力プローブを接続し、「SYS-TAIN」ペダルを踏むか、DD6チップのPCOとPC1入力を共通導体に(一時的に)接続してから、電源を入れます。この接続では、サイクリック MIDI 出力プログラムが機能します。コード 55H。オシロスコープの画面では、5 つのパルスのバーストのシーケンスのように見えます。コード メッセージの各ビットの継続時間は 32 分で、これは 31250 bps に相当します。 MIDIメッセージの送信速度。

  • 子供の頃、私はソビエト製の本物のピアノ、重さ約300キロを持っていて、それをかき鳴らすのが好きで、音楽学校を卒業した後は、何かを演奏したこともありました。 ピアノはクールで本格的ですが、まったく実用的ではありません。 そして、本当に魂にぴったり合うようにするには、ドラムキット、エレキギター用のアクセサリーセット、クラリネット、シタール、サンプルループも必要です...

    もちろん、今では自分のアパートを 6 人の給料が集まるガレージ スタジオに変える必要はなくなり、無料の音楽エディターを PC にインストールするだけで済みます。 しかし、これはすべて不便です。

    PC のキーボードは鍵盤楽器とはまったく異なり、ここではすべてが異なります。 また、これは子供に教えるのにはまったく適していません。 シンセサイザーを購入するしかないようです。 しかし、私にはまだ疑問があります。

    シンセサイザーとは何ですか? 音楽キーボードを備えた大きなデバイスは、どこかに多くのスペースを占めるはずです。 音響機能が内蔵されていますが、スピーカー付きの受信機をすでに持っています。 これには悪い PC が組み込まれていますが、私は良い PC を持っています。

    キーボードを除いて、私はすでに持っている最高品質のものを4万で購入することがわかりました。 これは不合理な支出の上限にすぎません。

    別のキーボードを探していたところ、USB MIDI キーボードのようなデバイスに出会いました。
    私にはいつも、MIDI はプロの音楽活動の分野に属するものだと思っていました。
    しかし、現在ではすべての音楽が PC 上で、どこでも便利な場所で作成されているため、ミュージシャンはバックパックに簡単に収まるモバイル音楽キーボードを必要としています。

    すぐに私の頭の中に計画が浮かびました。 Raspberry Pi 3 ベースのホーム メディア センターに MIDI キーボードを接続し、ソフトウェア シンセサイザーを実行して、誰でもいつでも次の傑作を演奏できるようにします。 これらの MIDI キーボードには通常、さまざまなエフェクトや追加の楽器用にプログラムされた一連のコントロールと追加のボタンが付いています。 見た目も音もとてもクールです!

    より大きなデバイスとより小さなデバイスがあり、より高価なものもあればより安価なものもあります。 私は約5万円のオプションを選びました。 2 オクターブ、通常サイズのキー、ドラマー用のボタン、チューニング ノブなど、初心者の電子ミュージシャンが夢見るものすべてが備わっています。

    私は PC での音楽制作の専門家ではないので、自分のアイデアを実現する方法を探すのは困難でした。 少しずつ情報を収集する必要がありました。 パズルは徐々に形になり始め、なんとか実用的な解決策をまとめることができたので、それを皆さんと共有します。 奇妙なことに、標準の Raspbian/Debian ディストリビューションには必要なものがすべて含まれており、外部リポジトリに接続する必要さえありませんでした。

    Fluidsynth はシーケンサー (MIDI ファイルを再生するアプリケーション) として使用されます。
    MIDI キーボードは ALSA 経由ですぐに検出され、シーケンサーに接続できるようになります。
    さまざまな楽器のサウンドを再現するために、SoundFont2 形式のオープン サンプル データベースが使用されます。 まず、これらすべてをインストールしましょう。

    Sudo -s apt-get update apt-get -y install alsa-utils Fluid-soundfont-gm Fluidsynth
    MIDI キーボードを Raspberry に接続し、サーバー モードでシーケンサーを起動します。

    Fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
    次のコマンドを実行します。

    Aconnect -o
    その結果、利用可能な MIDI クライアントのリストが表示されます。

    クライアント 14: "Midi Through" 0 "Midi Through Port-0" クライアント 20: "VMini" 0 "VMini MIDI 1" 1 "VMini MIDI 2" クライアント 128: "FLUID Synth (1628)" 0 "シンセ入力ポート (1628) ):0)"
    ここで、キーボードとシーケンサーのクライアント番号を覚えておいて、次のコマンドで接続できるようにすることが重要です。

    アコネクト 20:0 128:0
    これで、ヤマハ ピアノ (これがデフォルトの楽器) で演奏する準備が整いました。 Fluidsynth のマニュアルを読むと、楽器をドラムや管楽器に変更したり、リバーブやコーラスの量を設定したりするための興味深いコマンドがたくさんあります。

    ソフトウェアシンセサイザーを便利にしましょう。 キーボードを毎回手動でシーケンサーに接続しないようにするために、起動時にこれを自動的に行う簡単なデーモンを作成します。

    猫 > /etc/init.d/fluidsynth<< EOF #!/bin/bash ### BEGIN INIT INFO # Provides: fluidsynth # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Fluidsynth deamon to play via MIDI-keyboard ### END INIT INFO startDaemon() { sleep 30s && fluidsynth -i -s -a alsa -g 3 --load-config=/home/osmc/midi-router >/var/log/fluidsynth & sleep 60s && aconnect 20:0 128:0 & ) stopDaemon() ( pkill -9 fluidsynth &> /dev/null ) restartDaemon() ( stopDaemon startDaemon ) case "$1" in start) startDaemon ; ; stop) stopDaemon ;; 再起動) 再起動デーモン ;; 状態) ;; *) startDaemon esac exit 0 EOF
    デーモンを自動実行用に登録します。

    Chmod 755 /etc/init.d/fluidsynth update-rc.d Fluidsynth のデフォルト
    起動時に、キーボードを実際のシンセサイザーに変えるコマンドを含む設定ファイル (/home/osmc/midi-router) がシーケンサーに送信されることに注意してください。

    つまりね。 キーボードの各キーとノブは、独自の番号を持つ特定のイベントを送信します。 私の理解では、ここには特別な基準はなく、各メーカーが希望どおりにしていると思います。 たとえば、四角いキーをドラムのように、残りのキーをピアノのように、ノブでボリューム、リバーブ、コーラスをコントロールしたいとします。

    したがって、キーボードからのイベント コードをさまざまな楽器にマッピングし、ノブからのコードをシーケンサーが理解できるコードにマッピングする必要があります。 Fluidsynth では、これはルーターを使用して行われます。 構成ファイルに含まれるのはこれらのコマンドです。

    これは私の構成ファイルの例と、その内容についてのコメントです。

    猫 > /home/osmc/midi-router<< EOF # загружаем стандартные инструменты и ударники, найденные где-то на просторах Сети load /usr/share/sounds/sf2/FluidR3_GM.sf2 load /home/osmc/241-Drums.SF2 # связываем инструмент каждый со своим каналом select 1 2 128 0 select 2 1 0 0 # по умолчанию звук идет на канал 0 # перенаправляем события с квадратных клавиш на канал с ударными router_begin note router_chan 0 0 0 1 router_par1 36 48 1 0 router_end # события с остальных клавиш перенаправляем на канал с пианино router_begin note router_chan 0 0 0 2 router_par1 0 35 1 0 router_end router_begin note router_chan 0 0 0 2 router_par1 49 255 1 0 router_end # события с ручек мэпим на события, которые понимает секвенсер, # полный их список есть в документации на сайте fluidsynth router_begin cc router_chan 0 0 0 2 router_par1 14 14 0 98 router_end router_begin cc router_chan 0 0 0 2 router_par1 15 15 0 11 router_end router_begin cc router_chan 0 0 0 2 router_par1 16 16 0 91 router_end router_begin cc router_chan 0 0 0 2 router_par1 17 17 0 93 router_end # выключаем громкость на канале 0, # иначе при нажатии на клавишу # разные инструменты будут звучать одновременнно cc 0 7 0 EOF
    デバイスがどのようなコードを生成するかを確認するには、次のユーティリティを使用する必要があります。

    Aseqdump -p 20:0
    イベントをリッスンし、MIDI キーボードからコンソールに出力します。 ボタンを押すかノブを回すと、イベントのタイプ、チャンネル、コードが表示されます。 特定のシンセサイザーを設計したエンジニアが考え出した方法ではなく、キーボードを自分の好きなようにプログラムできます。 開発者のfluidsynth、alsa、SoundFont2、Raspberry、V-Miniに感謝します。

    ちなみに、DIY シンセサイザーに関するこのトピックはいくつかの発明に反映されているので、研究することをお勧めします。

    キーボードは、シーケンサー プログラムやライブ パフォーマンスに音楽を録音するために、MIDI プロトコルを使用して外部サウンド モジュールまたはコンピューター (適切なインターフェイスがある場合) に接続できるように設計されています。 提案バージョンではキーの数は 48 ですが、回路を変更することなく 64 まで増やすことができ、キーに加わる衝撃に対する感度が高いことが特徴です。

    デバイスの歴史

    少し前に、アパートの購入に関連して、私にとって MIDI キーボードとして機能する豪華な楽器を手放すことになりました。それは伝説の YAMAHA DX-7 でした。 悲しみが静まると、その深刻さと醜さの中に、何に取り組むべきかという疑問が生じました。 この瞬間、友人の尽力により、KR1816BE39 (敵対者ではこのプロセッサは 8048 と呼ばれています) の組み立て途中の回路が私の手に落ちました。 この回路は組み立てとセットアップが簡単で、最も重要なのは、適切なタイミングで入手できたことです。 KR1533ID7とKR1533KP7を使用してキーボードを8x6マトリクスの形で組み立てました。 軟膏にはハエもありました。この方式の 2 つの欠点は、キーストロークの速度 (スピーカー) と PITCH WEEL ホイールに対する感度の欠如という 2 つの欠点により、すべての利点が台無しになってしまいます。 そうですね、私はかつて Z-80 でプログラミングをしたことがあり (実際に動作するシーケンサーも作りました)、古い日々を振り払うことにしました。 私は Z-80 という CPU は道徳的に時代遅れであるとして、きっぱりと否定しました。 さらに、あまり多くのはんだ付けをしたくなかったので、KR1816BE39 の同じデバイスをベースとして、キーの遮断 (上部) 接点用に別のマルチプレクサを装備することにしました。 私は KR1816BE39 アセンブラのドキュメント (信じられないでしょう - 図書館にある「シングルチップ マイクロプロセッサ上のデジタル デバイスの設計」という本) を見つけて、プログラムを書きました... そして、友人の ROM プログラマがが亡くなり、プログラムをフラッシュするものはまったくありませんでした... 悲しみから私は完全に正気を失い、同じアルゴリズムを PIC 用に書き直すことにしました。 半日で、プログラマ (LUDIPIPO) を半田付けし、ソケット KR1533ID7 と KR1533KP7 のペアからプロトタイプを作成し、インストール全体をスタンプなしで MGTF が行いました。 そしてプロセスが始まりました...

    まず、プログラムの非動的バージョンが起動されました (キーごとに 1 つの接点を持つキーボードをお持ちの方にもそれを提示します)。 その後、動的バージョンが開始されました。 そこで、ボタンとインジケーターを追加するというアイデアが生まれました。 実は、私は WAVEBLASTER (非常に古いサウンド システム用のドーター ウェーブテーブル シンセサイザー) を長い間眠らせたままにしていたのです。 それを私の作品に接続することで、コンピューターなしで (自分の能力と才能を最大限に発揮して) プレイできるものを手に入れました。これは場合によっては非常に便利です。 これにより、ボタンの一連の機能が決まりました。これは、「ライブ」再生中にサウンド モジュールに接続するときに役立ちます。 ボタンの機能は、独自のハンドラーを作成し、ポーリングおよび表示プロシージャを使用することで簡単に変更できます。 どういうわけか、鉄製のケースに組み込まれたキーボードは、ヤマハ PSS よりも便利であることが判明しました(依然としてフルサイズのキー、ペダル、そして最も重要なダイナミクス!)。 創造的なプロセスの最中に、純粋にコンピュータ用の MIDI キーボードのバージョンを作成したいという難しい要望が生じました。インジケーターとボタンはオプションですが、PITCH WEEL と MODULATION ホイールは必要です。 しばらく格闘しましたが、結局諦めて再びはんだごてをオンにしました。 電子機器の組み立ては難しくありませんが、機構はやや難しく、ホイールのデザインに眉間にしわを寄せ始めました。 少し考えた結果、2 番目のホイールを放棄することにしました。とにかく、両方を一度に回すことはありません。通常、最初に音符を書いてピッチを書き、それからモジュレーションを追加します。 最も考慮したのは、私が大好きだった機械作業の量を半減することでした。 それほど怠け者ではない人のために、ほとんど複雑なことをせずに 2 つの車輪を作成する方法を以下に説明します。 引き続きモジュレーションを書き込むことができるように、ホイールの 3 つの操作モードを整理することにしました。2 半音のピッチ、1 半音のピッチ (便利)、およびモジュレーションです。 これらすべてを 1 つのボタンで切り替えることができ、一対の LED でモードを示します。 回路を簡素化するために、残りのボタンとインジケーターを削除しました。これらはすべて、最新のシーケンサー プログラムで動作するために必要ありません。

    もちろん、ホイールはポテンショメータの軸上に配置する必要があります。これは理解できますが、何に接続する必要がありますか? 最初に考えたのは、555 タイマーでワンショットを使用することでした。しかし計算の結果、許容可能なホイール サンプリング レートを提供しようとすると、プロセッサが主に測定に忙しいため、パルス持続時間の測定で精度と安定性を達成するのは困難であることがわかりました。キーボード接点の切り替え時間。 残された唯一の方法は、アナログ - デジタル コンバーター (ADC) を使用することです。 ADC が組み込まれていない Pic16F84 を使用していたので、自分のエンジニアリングの背景 (および母国の工場) を思い出し、コンパレーター (およびプログラム) を備えたいくつかの抵抗から ADC を作成しました。 それはシンプルで、安価で、非常に正確であることがわかりました。

    ボタンとホイールの両方の図と、それらのプログラムを示します。 必要に応じて、外部デバイスのアドレスをわずかに変更することで両方の回路を簡単に組み合わせることができます。CHORUS (STEREO) モードではピッチを使用して離調を取得するため、それを削除するか、離調を伴うピッチの送信について心配する必要があることを覚えておく必要があります。チャネル全体で。

    つまり、実際のキーボード

    デバイス図

    最初に登場したのは、レイアウトの機能をテストするために、キーに加わる衝撃の力に影響されない非動的バージョンでした。

    私がプロセッサとして PIC16F84 を使用した理由はいくつかあります。このチップは入手可能で、安価でプログラムが簡単で、手元にあったものだったからです。 注意: PIC16C84 は適切ではありません。RAM セルが 36 個しかないため、プログラムは動作しません。 ただし、ホイール回路は使用する RAM セルの数が少なく、MIDCH などのセルをさらに数個減らすことで (すべての送信データに一定の MIDI チャンネルを割り当てることで)、そのプログラムを PIC16C84 に詰め込むことができます。

    表示付きのダイナミック キーボードの図を以下に示します。

    この回路は多くの点で伝統的です - ペダルと車輪のない自転車を再発明するのは困難です J ポート B は送信用に機能します - 下位 7 ビットはマトリックスのキー アドレスまたは外部デバイス (インジケーターとホイール DAC) のデータを出力します。 最上位ビットは、MIDI データをシリアル コードで出力するために使用されます。変換と出力はソフトウェアで行われます。 したがって、MIDI バイト出力ルーチンを書き換える場合を除き、クリスタルは 4 MHz である必要があります。 ポート A の 2 つの最下位ビットは受信用に機能します。これらは「離された」および「押された」キー接点のマルチプレクサから信号を受信し、3 つの最上位ビットは (別の KR1533ID7 デコーダを介して) 外部デバイスのアドレスを決定します。 ホイール付きの回路では、回路を簡素化するために外部デバイスのアドレス デコーダを放棄し、コンパレータからのデータ入力用に PA4 ポートの上位ビットを解放したため、キーボードとボタンのアドレスは異なります。 回路を組み合わせる場合、アドレスを復号化し、ポート ビット PA2 および PA3 を使用し、キーボード、ボタン、ダイナミック インディケーション データ レジスタ、およびダイナミック インディケーション ファミリリティ レジスタの 4 つのデバイスにアドレス指定するために、このマイクロ回路を戻す必要があります。 ホイールモード表示を書き換える必要があります。

    PITCH WEEL / MODULATION ホイールを使用した回路は次のようになります。

    デカップリングのために各キーに 1 つのダイオードが取り付けられています。 マルチプレクサの入力の抵抗は 8k を超えてはなりません。そうしないと、実装容量が原因でグリッチが発生する可能性があります。 インジケータ - 3 桁の共通陽極を持つもの。各桁のセグメントの端子が個別に出力される場合、同じ名前のセグメントの端子を組み合わせる必要があります。表示は動的で、桁が順番に点灯します。 すべてのボタンはロックされず、接触バウンスはソフトウェアによって制御されます。 同じ名前のボタンの近くに LED が取り付けられており、対応するモードのアクティブ化を示します。「+」ボタンと「-」ボタンには LED がありません。 インジケーターのトランジスタは、低電力、高周波で逆導通します。 2 つの KR1533IR23 レジスタは、現在のインジケータ桁のアドレスとコードを交互にラッチするために使用されます (LED も 2 つの準桁にグループ化されます)。 私はソビエトの電子オルガンの標準的な 48 鍵キーボードを使用しました (これも「START」ラジオ設計者として別途製作され、非常に普及しています)。 鍵盤の高さと楽器の厚さを減らすために、各鍵盤の下にある 6 つの接点グループのうち 2 つを残し、全体を切断して再接着しました。 一般に、キーごとに 1 つの切り替えグループで十分ですが、この方法で接着した方が便利でした。 「解放」および「押下」接点のバスバーの長さは 8 キーです。 必要に応じて、スイッチング接点グループの代わりに 2 組の閉じ接点を使用するキーボードを使用することもできます。1 組はキーの動きの開始時に閉じ、もう 1 組はキーの動きの終了時に閉じます (ヤマハ楽器の場合と同様)。 この場合、PA0 への信号はマルチプレクサの反転出力 (ピン 6) から供給する必要があります。 回路を変更せずに、64 キー (標準 - 61、つまり 5 オクターブ) のキーボードを使用できます。 必要に応じて、キーの数を少なくとも 127 まで増やすことができます。これを行うには、回路に別の KR1533ID7 デコーダを導入する必要があります。

    機構を適切にセットアップすることが非常に重要です。キーを放したときに上部接点が閉じる必要があります。 これが行われていない場合、プログラムはそのようなキーが押されたとみなして処理しようとするため、これらのキーを再度押しても音は鳴りません。 さらに、同時に演奏できるノートの最大数は 10 であり (手の指が増えた場合、この数は簡単に変更できます)、キーを放さないとこの数が減ります。 同じ理由で、キーボード ポーリング手順で指定されたキーの数は、実際のキーの数と一致しなければなりません。 接点バウンスはソフトウェアにより抑制されます。

    抵抗マトリックス R-2R ADC の場合、1 ~ 2% の精度で抵抗を選択することをお勧めします。絶対値は異なる場合がありますが、比率が重要です。 ただし、公称値を大幅に大きくすると、コンパレータの入力容量により変換時間が増加するため、値を大きくしないでください。 マッチングなしで SMD 抵抗を使用しましたが、測定では 1 つの取り付けストリップで抵抗が通常 1% 以上の精度でマッチングされていることがわかりました。 精度の悪い抵抗でも回路は動作すると思いますが、特性の直線性が悪くなります。 ホイール自体は古いテレビのハンドルから作られており、ポテンショメータの軸には中央の位置に戻すスプリングが付いています。 メカニックセットアップの便宜上、モードボタンを押したまま電源を入れると、ホイールが中間位置にあるときにLEDが点灯するデバッグプログラムが起動し、ゼロ位置の微調整が可能になります。ポテンショメータ軸上のホイールの。 別個の MODULATION ホイールを作成する必要がある場合は、自由なコンパレーター要素 (4 つあります) に接続する必要があり、R-2R マトリックスは両方のホイールに共通です。 コンパレータの出力を切り替えるには、追加のマイクロ回路を使用し、PA2 を制御信号として使用することをお勧めします。

    必要に応じて、回路の未使用部分を組み立てることなく、表示、ボタン、PITCH WEEL / MODULATION ホイールのないダイナミック バージョンのキーボードを組み立てることができます。 電源を入れると、変更可能なパラメータはすべてデフォルトに設定されます。

    これらすべては何からでも電力を供給できます; 消費電流は特定のインジケーターによって異なり、100 mA を超えません。 ヒートシンクなしでボード上に 7805 スタビライザーを取り付けています (写真ではっきりと確認できます)。 9Vを超える電圧が供給される場合は、小さなラジエーターが必要になります。 コンパレータは 9 ~ 12 V の電圧で駆動され、安定化されていることが望ましいです。 はい、私は古い在庫からソビエト製のマイクロ回路を使用しました - 現代の類似物が多数あり、交換が可能であり、さらに望ましい - 現代の類似物は消費量が少ないです。

    プログラム

    押されたキーを処理するアルゴリズムは、雑誌「Microprocessor Tools and Systems」第 5 号 (1986 年) で提案されたものから来ています。 私がアセンブラを勉強するきっかけとなったのは、この出版物 (というより、提案されたプログラムの誤り) でした。 実際、そこから得られた唯一のアイデアは、押された各キーの番号を RAM (CHAN) の特別に割り当てられた領域に記録し、キーボードが再度ポーリングされたときに、すでに処理されたキーを再度処理しないようにすることでした。 押されたキーのそれぞれに 2 つの RAM セルが割り当てられています (合計 10 個以下)。最初のセルには、押されたキーの番号が記録され、2 番目のセルには、その VELOCITY (押す速度) が記録されます。 繰り返しますが、これらのセルは 20 個しかなく、開始アドレスは CHAN という名前で与えられます。 フリー ペアの符号は、最初のセルに設定された最上位ビットです。 2 番目のセルの最上位ビットが設定されているということは、このキーの NOTE ON がすでに送信されており、それ以上の処理が必要ないことを意味します。

    プログラム全体については詳しく説明しませんが、ソース コードにはコメントが豊富にあり、訓練を受けた人であれば十分にアクセスできます。 残りについては、すぐに既製のファームウェアをファイル Dinamic.hex および Pitchmod.hex で提供します。 分かりにくい点のみ説明させていただきます。 まず第一に、ダイナミクスについてです。キーの上部接点が開いた瞬間に、その番号が CHAN 領域の最初の空きペアの最初のセルに書き込まれ、同時に空きペアのサインがリセットされます。 2 番目のセルには初期値 VELOCITY = 127 が書き込まれますが、割り込み処理により、NOTE ON がまだ送信されていないすべてのキーの VELOCITY 値が減少するため、キーボードの感度は割り込み頻度によって決まります。 割り込みは内蔵タイマーによって発生します。 キーの下側接点が閉じた瞬間に、対応する CHAN セルに「転送済み」サインが設定され、現在の VELOCITY でノート オンが送信されます。 感度曲線を改善するには、対数法則に従って VELOCITY 値の減少が発生します。つまり、その部分の 1/16 が 1 減算された現在の VELOCITY 値から減算され、1 減算されます。上の接点が下の接点に向かうにつれて、対応する CHAN セルの VELOCITY 値は対数の法則に従って減少し、キーが速く動くほど、キーの下の接点が閉じて NOTE ON が送信される瞬間の VELOCITY は大きくなります。 。 割り込みは動的表示も制御します。これはインジケーターのちらつきをなくすために行われます。
    ボタン機能: TRANSPOSE - すべてのキーが好みのイ短調に縮小されます: 範囲 +/- 15 半音。 PRG は特定のプリセット (UP1 ~ UP5) に音色 (楽器) を割り当て、VOL はその音量を割り当てます。 現在のパラメーターはインジケーターに表示され、「+」および「-」ボタンを使用して変更できます。TWIN は、プリセット (UP1 ~ UP5) の 1 つと、同時に LOWER プリセットの「ダブル」音色を表示します。同時に鳴ります。 STEREO は、現在のプリセットのサウンドを左右のステレオチャンネルにわずかな「デチューニング」(「コーラス」効果)を加えて出力します。 SPLIT ボタンは有効になっていません。 SUSTAIN ペダルはボタンの 1 つとして回路的に設計されており、そのワイヤーの静電容量はそれほど大きくないはずです。 ボタン ハンドラーのアドレスはプログラムの先頭のテーブルにまとめられているため、ボタンの機能を変更する場合は、独自のアドレスに置き換えることができます。

    ホイールの ADC は半分ソフトウェアであり、逐次比較アルゴリズムを使用して動作し、R-2R マトリックスがデジタルからアナログへの変換を実行します。 まず、R-2R マトリックスに最上位桁の 1 が適用され、コンパレータがそれが多いか少ないかを判断します。 少ない場合は最上位ビットに 1 が残り、多い場合は 0 になります。その後、後続の下位ビットごとに同じことが起こり (合計 6 ステップ)、次のビットに対応する 6 ビットの数値が得られます。車輪の回転角度。 この精度でも十分だと思いますが、マトリックスと変換プログラムを増やすことでさらに 1 ビット追加することもできます。

    デザイン

    実際のキーボードとして、私はソビエト製の「スタート」コンストラクターを使用しましたが、今ではおそらく、古くて動作しないヤマハやカシオを見つける方が簡単で、これにより、ケースを作成する問題も解決されます - もちろん、古い楽器は比較的無傷です。

    プリント基板は開発されていませんでした。デバイスの単一コピーを作成するために配線と基板の作成に時間を費やすのは適切ではないと考え、レイアウトは MGTF ジャンパを使用して基板上に作成されました。 キーボードへのコネクタとケーブルとして、両側に対応するコネクタを備えたコンピュータからのフロッピー ドライブからのケーブルを使用しました。これにより、完成したデバイスの組み立て/分解が簡単になります。

    私の場合、ボディは薄い鋼板(手元にあったもの)から曲げられ、側面は木製でした(古いソ連の楽器のような)。

    まあ、要するにそれだけです。 クリエイティブな成功!

    放射性元素のリスト

    指定 タイプ 宗派 注記私のメモ帳
    スキームその1。
    マイクロコントローラーPIC16F841 メモ帳へ
    チップKR1533ID71 メモ帳へ
    チップKR1533KP71 メモ帳へ
    リニアレギュレータ

    LM7805

    1 メモ帳へ
    ダイオード

    KD522A

    64 メモ帳へ
    コンデンサ22pF2 メモ帳へ
    コンデンサ0.1μF2 メモ帳へ
    100μF2 メモ帳へ
    抵抗器

    220オーム

    2 メモ帳へ
    抵抗器

    6.8キロオーム

    8 メモ帳へ
    水晶振動子4MHz1 メモ帳へ
    キーボードボタン 64 メモ帳へ
    スキームその2。
    マイクロコントローラーPIC16F841 メモ帳へ
    チップKR1533ID72 メモ帳へ
    チップKR1533KP72 メモ帳へ
    チップKR1533IR232 メモ帳へ
    リニアレギュレータ

    LM7805

    1 メモ帳へ
    バイポーラトランジスタ

    KT315A

    5 メモ帳へ
    ダイオード

    KD522A

    80 メモ帳へ
    コンデンサ22pF2 メモ帳へ
    コンデンサ0.1μF2 メモ帳へ
    電解コンデンサ100μF2 メモ帳へ
    抵抗器

    180オーム

    7 メモ帳へ
    抵抗器

    220オーム

    2 メモ帳へ
    抵抗器

    6.8キロオーム

    16 メモ帳へ
    抵抗器

    8キロオーム

    1 メモ帳へ
    水晶振動子4MHz1 メモ帳へ
    3桁のLEDデジタルインジケータ、コモンアノード付き。 1 メモ帳へ
    発光ダイオード12 メモ帳へ
    キースイッチ 64 メモ帳へ
    ボタン 16 メモ帳へ
    スキームその3。
    マイクロコントローラーPIC16F841 メモ帳へ
    チップKR1533ID71 メモ帳へ
    チップKR1533KP72 メモ帳へ
    コンパレータ

    私は長い間、自分の中の作曲家を目覚めさせ、独自の電子音楽を作り始めたいと思っていました。 しかし、MIDI コントローラーの価格の高さに (控えめに言っても) 落胆しました。 しかし、インターネットを調べた結果、Arduino Uno と導電性塗料を使用して独自のコントローラーを作成するというアイデアを思いつきました。

    はじめましょう)

    ステップ 1: 部品の選択

    提示された内容からわずかに逸脱しても、組み立てた MIDI コントローラーは引き続き機能します (「わずかに逸脱する」とは、わずかに異なる値の抵抗を取り付けたり、ピンの 1 つを切断したままにしたりできることを意味します)。

    エレクトロニクスからは次のものが必要です。

    • 1 Arduino Uno (USB ケーブル付き);

    • 導電性塗料の瓶 1 個。

    • 5x7 cm の取り付けプレート 1 枚。

    • 3つのボタン。

    • 抵抗値が 2.2 kΩ の抵抗器。

    • 1 LED;

    • 抵抗値が10kΩの抵抗器。

    • LDR センサー 1 個;

    • 抵抗値が 4.7 kΩ の抵抗器。

    • ジャンパー1個。

    • 2.7 MΩ 抵抗器 12 個;

    • ストレートピン30本。

    • 曲がったピン12本。

    • アダプター12個。

    • ペーパークリップ12個。

    電子機器に加えて、次のツールも必要です。

    • はんだごてとはんだ;
    • ワイヤーカッター;
    • 部品をはんだ付けするためのスタンド(サードハンド)。
    • マルチメーター;
    • 数本のワイヤーおよび/または細い金属ワイヤー。

    ステップ 2: ピンをはんだ付けする

    ピンをはんだ付けして基板の作成を始めましょう。 投稿しましょう 曲がったピンボードの最初の列の中央にあります。 これらはその後、キーボードが接続される「敏感な」ピンとして機能します。

    ピンを取り付けた後、短いピンが基板から突き出ていることに注意してください。 すべてが均一になるようにそれらを押します。 次に、それらをはんだ付けし、すぐに接続に短絡がないか確認します。

    注: ピンを長時間はんだ付けしないでください。そうしないと、ピンが熱くなり、プラスチックが溶けてしまいます。

    次のステップでは、ストレートコームをスロットに置きます。 Arduino。 Arduinoに差し込んだピンの上にボードを取り付けてみましょう。 ピンが基板上の穴と完全に位置合わせされていないため、この操作には少し力が必要でした。

    ボードをピンに正常に取り付けたら、ピンがボードの上端と同じ高さになっていることを確認してください。 その後、はんだ付けすることができます。

    ステップ 3: ジャンパーをはんだ付けする

    次に、Arduino からボードを取り外し、裏側に返します。 後でコンポーネントを取り付けるジャンパーをはんだ付けしましょう。 これを行うには 2 つの方法があります。

    • 必要な穴をすべてはんだで埋めてから、相互に接続します。
    • 細いワイヤーを使用します。

    2 番目の方法の方が簡単で速いため、使用することをお勧めします。 この方法を選択した場合は、図に示すようにワイヤを基板上に配置します。

    • 赤い点は、ワイヤーを穴にはんだ付けすることを意味します。
    • 黄色の点 - 細いワイヤをボードの反対側のピンに接続します (3 番目の画像のように)。

    ご覧のとおり、はんだを付けすぎて左下の角が少し汚くなってしまったので注意してください。

    ヒント: 細いワイヤがない場合は、使用している抵抗器のリード線の切れ端を使用します。

    ステップ 4: タッチ容量性抵抗器をはんだ付けする

    コンポーネントをインストールします。 2.7 モーム抵抗器、感覚容量性機能を実行します。

    注: タッチ静電容量センサーの理論的基礎と実際の応用について詳しく知りたい場合は、次のリンクをチェックすることをお勧めします。

    一つ置いてみよう 2.7 モーム抵抗器右端の曲がったピンの下から脚を穴に押し込みます (最初の画像のように)。 次に、基板を裏返し、1 つの抵抗リード線を次の穴に押し戻します (2 番目の画像を参照)。 抵抗器の下側の足を穴に、抵抗器の上側の足をピン端子にはんだ付けします。 それでは添付させていただきます 7 cmワイヤーこのピンに接続します (3 番目の画像を参照)。

    すべての抵抗器とワイヤを使用してこのプロセスを繰り返し、所定の位置にはんだ付けしてみましょう。 抵抗器の下側の脚は 1 つの長い接続を形成する必要があります。

    アドバイス: ワイヤの色を交互に選択します。これにより、後のステップでの接続が簡単になります。

    ステップ 5: ボタンをはんだ付けする

    最初と 2 番目の画像のように、ボード上にボタンと抵抗を配置することから始めましょう。 私の場合は使用しました 2.2 kΩ抵抗, ただし、2kオームから10Kオームまでの値の任意の抵抗を使用できます。

    基板を裏返して、すべてを所定の位置にはんだ付けしましょう。 画像 3 は、作成する必要があるさまざまな接続を説明しています。

    • 青い点 - 基板にはんだ付けする必要があるボタンの脚を示します。
    • ピンクの点 – 抵抗器の足を示します。これは基板にはんだ付けする必要があります。
    • 赤い線は、2 つの点を 1 つの接続にはんだ付けする必要があることを意味します。
    • 黒い線は、ボタンの一方の脚から基板の穴を通って反対側のピンに接続されるワイヤを示します。

    すべてが正しくはんだ付けされていれば、左端の 2 つのボタンでオクターブを変更できます。、右端のボタンは有効になりますLDRセンサー。

    ステップ 6: LDR と LED をはんだ付けする

    ボタンをはんだ付けした後、LDR、LED、および対応する抵抗器の取り付けを続けます。 これを行う前に、LED に接続される抵抗の値を試してみることをお勧めします。 おそらく私の評価が高すぎるため、LED をオンにすることはできません。 少し実験して正しい抵抗値を見つけてください。

    ヒント: 330 の間の任意の抵抗オームと55にとっては良い解決策でしょうんん導かれた。

    LED、LDR、抵抗を配置していきます( 4.7 KのLDR) 適切な場所に。 基板を裏返して、すべてをはんだ付けしましょう。 3 番目の画像では、作成する必要があるさまざまな接続について説明します。

    • 茶色の点は、ボードにはんだ付けする必要がある LDR ピンです。
    • ピンクの点は、基板にはんだ付けする必要がある抵抗の足です。
    • オレンジ色の点は、基板にはんだ付けする必要がある LED ピンです。
    • 赤いストライプ - 2 つのポイントを 1 つの接続にはんだ付けする必要があります。
    • 黒いストライプは、抵抗出力から基板の穴を通ってピンに接続されるワイヤです。

    注: LED をはんだ付けする前に、LED の極性が正しいことを確認してください。 LED のプラス端子は抵抗に接続し、マイナス端子はアースに接続する必要があります。

    ステップ 7: すべての接続をテストする

    ボタン、LDR、LED の接続が正常にはんだ付けされているかどうかをテストする良い機会です。 これはエラーを修正する最後の機会です。添付されたコードをダウンロードしてプログラムを実行することをお勧めします。 そしてダウンロード Arduino_Test_Fixture_Code Arduinoボードに。

    すべてが成功し、テストが完了したら、次のステップに進むことができます。 そうでない場合は、ボード上のはんだ付け接続を再確認してください。 私自身の苦い経験からこれを言います。

    ステップ 8: ボードの仕上げ

    最初の画像にあるように、穴にワイヤーを取り付けることから始めましょう。 このステップでは、異なる色の 2 本のワイヤを使用すると便利です。

    基板を裏返し、必要な長さにワイヤーをカットしましょう。 それらをArduinoコネクタに差し込むピンにはんだ付けします。 使用を開始する前に MIDI コントローラーの場合、まずテスト スケッチを使用して接続をテストする必要があります。 スケッチをアップロードし、シリアル ポートを開き、ボード上の「敏感な」ピンに触れます。 各ピンに触れたときに「Note x is active」というテキストが表示される場合は、すべてのピンが正しく機能しています。

    ステップ9: ArduinoをMIDIデバイスに変換する

    ボードの準備ができたら、Arduino を Ableton や Fl Studio などの音楽プログラム、さらには他の MIDI デバイスによって認識される MIDI コントローラーに変換します。 このプロセスは次の 2 つのステップで構成されます。

    1. Arduino Uno の現在のファームウェアを MIDI 互換プログラムに変更します。
    2. MIDIスケッチをArduinoにアップロードします。

    最初のポイントから始めましょう。 条件によってArduinoにロードされる ファームウェアUSBシリアルポートこれにより、Arduino が PC および Arduino IDE とメッセージを交換できるようになります。 新しいプログラムで デュアルモコ、2番目のモードが追加され、Arduinoが次のように動作できるようになります。 MIDIデバイス.

    FLIP プログラムを使用し、指示に従って Arduino ファームウェアを変更します。 ファームウェア フォルダー内のアーカイブに作業ファイル、DualMoco.hex ファイルがあります。

    新しいファームウェアをダウンロードした後、Arduino を PC に再接続します。 すべてがうまくいけば、新しいプログラムは ( ミディモード)。 MIDI を録音できる音楽プログラムを開き、Arduino の名前が付けられていることを確認します。 ミディ/ モコのためにルファ 1 番目の画像にあるように、MIDI 設定の上に が表示されました。

    ステップ 10: 最終準備をする

    特殊性 デュアルモコそれは2番目のモードがあるということです - USBシリアルポートを使用すると、通常のファームウェアと同様に、Arduino IDE からスケッチをアップロードできます。 Arduino を 2 番目のモードにするには、画像 1 と 2 に示すように 2 つの ISCP ピンを接続します。 写真に示すように、ワイヤーまたは小さなジャンパー ワイヤーを使用できます。 ここで、USB ケーブルを Arduino から外して数秒間再接続すると、Arduino が Arduino IDE に表示されるはずです。

    注:モードから切り替えたい場合USB-シリアルポートVMIDI モードでは、ジャンパを取り外します。3 番目の画像に示すように ISCP ピンを接続し、再接続しますArduinoからPCへ。

    現在のスケッチを Arduino にアップロードします。 Arduino_最後の_コード。 それをダウンロードし、Arduinoを次のように変換します USBシリアルポートモードを選択してコードをダウンロードします。 しきい値を微調整する必要がある場合は、値を試してください。 しきい値そして レス。 すべてが期待どおりに動作したら、現在の行 17 を次のように変更します。

    ブール値midiMode = false; // midiMode = false の場合、Arduino は USB-to-serial デバイスとして機能します

    ブール値midiMode = true;// midiMode = true の場合、Arduino はネイティブ MIDI デバイスとして機能します。

    コードに最終的な変更を加えたら、MIDI デバイスをサポートできる音楽プログラムをテストします。 まず、Arduino を MIDI モードに切り替えてみましょう。

    1. 最終的なコードをArduinoにアップロードしましょう。
    2. ArduinoからUSBケーブルを外してみましょう。
    3. ISCP ピンからジャンパを取り外して、Arduino を MIDI モードに切り替えます。
    4. ArduinoにUSBケーブルを取り付けてみましょう。

    すべてがうまくいった場合は、音楽プログラムを開いてピンに触れ始めます。 魔法の音が響くはずだ…

    ステップ 11: ペーパークリップをジャンパーにはんだ付けする

    Arduino ボードが完全に完成したら、次はキーボードとそれをボードに接続する方法に焦点を当てます。 これを行う方法は無数にありますが、私はペイントした紙に固定するクリップを選択しました (固定が簡単で再利用できます)。

    ペーパークリップをワイヤーにはんだ付けするプロセスは非常に簡単です。

    1. ワイヤーの片側のプラグを切り取ります。
    2. ワイヤーの絶縁体を5 mm剥がします。
    3. 剥がしたワイヤーをペーパークリップにはんだ付けします。
    4. 12 個のペーパー クリップすべてに対して繰り返します。

    注: ステープルにはコーティング (ペイントまたはプラスチック) をコーティングしてはなりません。

    ステップ 12: テンプレートをペイントする

    Arduino MIDI キーボードはクリップをタッチするだけで演奏することもできますが、自分でステンシルを作成して使用するとさらに楽しいです。 印刷したテンプレートに色を付けます。 テンプレートはプロジェクト アーカイブにあります。

    テンプレートの色付けは非常に簡単です。行間にスペースを空け、適切な色を使用するようにしてください。そうしないと機能しません。 絵の具が乾いたら、クリップを「キー」に取り付ければ、音楽制作を始めることができます。

    ご清聴ありがとうございました!)