夏休みの自由研究 - MIDI 楽器を作ろう (プログラミングと音楽と) - 後編
Author : 清水 崇之
こんにちは、ソリューションアーキテクト/AWS 芸人しみず(@shimy_net)です。前回に引き続き、夏休みの自由研究として MIDI 楽器を制作しました。まずは完成した MIDI 楽器と演奏をご覧ください。
Marble Track を作成する
前回記事では Arduino からソレノイドコイルを制御するプログラムと基板を作成しました。このソレノイドを使ってボール (鉄球) の発射装置を作ります。まずは直径 1.6 ミリの針金と直径 12 ミリの鉄球を用意します。まっすぐに伸ばした 2 本の針金を 10 ミリほどの間隔をあけてハンダ付けしてレールを作成します。
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_02.457e3a8f5f2f0aff528187f9da2b4a58cf84c650.jpg)
つぎにアルミ薄板を加工してソレノイドコイルをレール下部に格納するパーツを作成します。ソレノイドコイルに電流を流すとストッパー (鉄心) が下がるので、レールに留めている鉄球を 1 個だけ発射することができます。前回記事で作成した Arduino とつなげることでソレノイドコイルを MIDI から制御できます。
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_03.b40cc7596f1d5b3ff9a6e3603503efa4f64be5a7.jpg)
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_04.55217ffc8faa69a7220fd655539410f0fb842f94.png)
本体を作る
楽器本体は厚さ 5 ミリのMDFや 10 ミリ角のアルミパイプなどを加工して作成します。また音を奏でるグロッケン (鉄琴) をゼロから作成するのは骨が折れるので、アマゾンにて 2,000 円ほどで購入したオモチャ楽器を分解したパーツを流用します。鉄球を当てやすいように角度をつけて設置できるように加工します。
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_05.f1ec91ddb0defa3f29cc7a53f04b14a90aecc732.jpg)
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_06.b3d109cb0d35f3703d8cc05bef89f5005f2bbf71.jpg)
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_07.518c4f706782c96d09d0ae604c207e7183ce7c47.jpg)
発射装置から発射された鉄球をグロッケン (鉄琴) に当てるために、発射装置とグロッケンの間をレールでつなげます。ここからは、ひたすら針金の加工とハンダ付けの作業です・・・。角瓶の高さがちょうど良くて、角瓶でレールを固定しながらハンダ付けしました。角瓶の中身の減りようが作業の辛さを物語っています。
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_08.de5885dcaec171b0dbb16418ac40a597302280d4.jpg)
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_09.e78b08458e82be6b1cabbab55cf039f823275417.jpg)
塗装する
エアブラシで綺麗に塗装しようと小一時間かけてコンプレッサーなど機材を準備したのですが、塗装面積が広すぎて開始 5 分で諦めました。結局、缶スプレーで塗装しました。缶スプレー最&高\(^o^)/
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_10.6b1d829bcaf46f473ea96611d1b095ef31d2c87b.jpg)
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_11.75f87b4240addb96efa0965d483c82cce9f91889.jpg)
Marble Track のサウンドトラックをつくる (まさに Marble Track)
せっかく 1 オクターブ分 (8 個) の発射装置とレールを作成したのでの全ての音 (ドレミファソラシド) を使うような楽曲にします。また、鉄球がレールを転がるという特性から 16 分音符や 32 分音符のような短い音符の演奏が難しいので、4 分音符や 8 分音符でメロディを構成します。さらに発射装置に保持できる球数は 8 個までなので、同じ音程は 8 回までしか発音できません。今回も Cubase や Massive などで楽曲を構成しました。
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_12.3f68c2d232f79e45cff9f46fdc1a3de78b8c2506.jpg)
MIDI は非同期シリアル通信なので、Arduino プログラムにて Serial.write() などで送信すれば原理的には動作します。しかし、MIDI メッセージを規格どおりに生成するプログラムをゼロから開発するのは非常に大変です。そこで活躍するのが Arduino MIDI Library です。#inclide <MIDI> と記述してヘッダーファイルを読み込めば利用できます。MIDI による演奏データのひとつにノートオン (鍵盤を押した) というメッセージがありますが、以下の例では打鍵した音程によって処理を切り替えるプログラムです。
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_13.0bf9085326c20dd7266720551bb0c172f5193cab.jpg)
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/2020/img_create-midi-instrument-2_14.54496bf567eedcd1028703611281cac043cd70c8.jpg)
最後に改めて出来上がった楽器を見てみましょう。
まとめ
いかがでしたでしょうか ? かなり大掛かりな装置を組み立てることになりましたが、なんとか完成まで漕ぎ着けました。改善すべき部分 (発射装置の安定性、レールの安定性、鉄球のリロード、発音遅延の改善、和音の実現、などなど) も多く見つかり、ライフワーク的に作り続けねばならないなと思う次第であります。では、また !
筆者プロフィール
![](https://d1.awsstatic.com/Developer%20Marketing/jp/magazine/profile/photo_shimizu.565778ed00589fbac340e2ab446baf9424bc9c72.jpg)
清水 崇之 (しみず たかゆき) (@shimy_net)
アマゾン ウェブ サービス ジャパン合同会社
技術統括本部 西日本ソリューション部 ソリューションアーキテクト / 部長
最先端技術を追いながら世界を爆笑の渦に巻き込みたい、そんな AWS 芸人になりたいと思って AWS に入社して早 6 年。今年からは AWS DJ として頑張ります。
AWS を無料でお試しいただけます