超便利な音楽系Webアプリを作ったので、紹介します!\(^o^)/
追記:動画での解説を作りました。
どんなアプリ?
一言で言えば、「コード/スケールの逆引き検索アプリ」です。
MIDIキーボードを弾いたらコードネームが(スケール名も)分かるアプリ作りました~!https://t.co/bL7VDNFrOB pic.twitter.com/FQG2QFaC1L
— キムラ ヨシト(KHUFRUDAMO NOTES) (@k1mu0419) June 22, 2022
…とは言え、ただの逆引き検索アプリではありません!
自分が「あったらいいな!」と思う機能をたくさん盛り込んだ
超 便 利 ツ ー ル(自己評価)
です!
では、詳しく機能と使い方を説明していきます!!!(๑˃̵ᴗ˂̵)و
基本的な使い方
ページへアクセス!
Webアプリなので、まずページへアクセスしてください。笑
※PC推奨です。
※ブラウザは、Google ChromeやMicrosoft Edgeを使ってください。
(現時点では、Web MIDI APIに非対応のSafariやFirefoxでは使えません。)
※ちなみに、お手元にPCやMIDIデバイスが無い方は、こちら↓をお使いください。(MIDI入力以外は、ほぼ同じことができます。)
①ブラウザがMIDIデバイスの使用許可を求めてきたら許可します。
このWebアプリは、ブラウザにMIDIデバイスの使用を許可する必要があります。
許可を求められたら「許可」してください。
②「使用を開始する」ボタンを押します。
次に、ページを多少スクロールして青い「使用を開始する」ボタンを押します。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F6e0c2ffc-dc60-6193-c3c5-c7354195f8c6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1cf05ac3a46cbfa441f8ac2e0eb17805)
※Web Audio APIを使用しているので、ユーザーにどこかクリックしてもらう必要があった + 「説明文を見つけやすい方が良いかな」と思い、この仕様にしました。
③【接続中のMIDIデバイス】に、お使いのMIDIデバイスが表示されているのを確認します。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2Ff7378bf1-ac86-08b2-3232-2d8531ae90e3.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=21ab6df0e5caade23b3a5e4fafe6e592)
ここにお使いのMIDIデバイスの名前が出ていれば、OKです。
※MIDIデバイスの設定や、ドライバーのインストールなどは各自やっておいてください。
④必要に応じて音量を調整します。
このWebアプリはWeb Audio APIも使用しているので、別途鳴らす音源がなくてもブラウザから直接音を鳴らせます。
最初のヴォリュームは0に設定してあるので、必要に応じてヴォリューム調整を行ってください。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F9bde3f68-9a7f-0c04-cf98-858b2e6d3374.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c28f473d1104b0830dbd8bc7f1709d44)
鳴らす音は、「音色の選択」のドロップダウンメニューから4種類の音を選択できます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F0703bc7c-1250-aa0e-f858-acda0c30ebe7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=9d4d791225f8075da4d57fe8d728871f)
⑤MIDIキーボードを弾きます。(MIDIを入力します。)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2Fa8967b7f-5d8e-4cc9-46ae-4669373c0a29.jpeg?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=dd220edc0338c12396e9f7c95dd5298d)
弾きます。
⑥各種情報が判定されます。
コードが判定されます。
今弾いているコードが何なのか判定されます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F070ecc50-f7e8-0448-9088-a6b215c67004.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=672943daa0b356affc16a0fee14ade5e)
読み方や、詳細情報も表示されます。
スラッシュコードにも対応!
転回形はもちろん、ハイブリッド・コードや、UST(アッパー・ストラクチャー・トライアド)にも対応しました!
ちなみに、ハイブリッド・コードは赤系の色、
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F9223549a-3d59-6055-f4bc-b34241605afa.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=9657291232cff1ee9b3c88611a1dc494)
UST(アッパー・ストラクチャー・トライアド)は青系の色で表示されます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2Fcf711c02-c9fb-959f-c228-5366ace24cb0.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=011d42068170d81c6ddfe347c8583ea7)
今弾いている音を含む主なスケールが判定されます。
また、70種類以上のスケールの中から、今弾いているコードの最低音から始まる構成音を含むスケールが判定されます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F8854e369-f27b-4271-7eb2-ea6f04c6b532.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5d4c3866e8ee855953ef71e71e470335)
さらに、「構成音を含む全てのスケールを表示する」ボタンを押せば、構成音を含む全てのスケールも表示できます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F291b34ff-8078-6c41-6624-11aad234ceab.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d1d39645bfc88a702a5362d61af915e6)
冷静に眺めると、なかなか膨大な情報量です。笑
ネガティヴ・ハーモニーも分かります。
それから、指定したキーにおける、ネガティヴ・ハーモニー理論に基づく代理コードも判定されます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F4f4fdb17-af4f-6c6a-91f5-621d070bab5b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=213a1be1df19400a6faefb2b25bcc046)
(ここは後述の「入力をキープ」しながら使うとよいと思います。)
ギター指板のポジションも分かります。
その上で、ギター指板のポジションビューで、鍵盤で弾いたポジションがギター指板のどこに相当するのかも分かります!
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F0f2b1304-c053-3800-9b36-f3b45fcdb789.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=82f0b85b4d1cb33aad473fb4a37f8f35)
「鍵盤で弾いたフレーズを、ギターでも弾きたい!」みたいなときに便利です。
ちなみに、初期状態の指板は、「スタンダード・チューニングのギター」です。
ただし、「チューニングの種類」から別のチューニングや多弦ギター、ベースやウクレレ指板などにも変更できます!
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F47e08caf-91a4-59ab-0f8e-84f548daf3ff.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=56e351e43e6d1c4698e5da82e9032eec)
ついでに「右利き」と「左利き」の切り替えもできます!
「コード履歴」
判定機能だけだとその瞬間しかコードネームを確認出来ないので履歴機能をつけました。
フレーズのコード進行を確かめたり、即興で弾いたコードを確認できます!
まず、ページ上部には演奏したコードの履歴がを最大8個まで表示されます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F525e2e79-c72b-e44b-9cdd-6dbf137a7cc6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1700df36acc5636f30d99c4ff30de197)
そして、ページ下部には、全ての履歴が表示されます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F1110c794-2c54-ce63-5b6a-f88ed7db3c06.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=51b3330ab0d6fbd0ded54c7406d69d7c)
この履歴機能は、後述の仮想MIDIドライバーとの組み合わせでさらなる威力を発揮します。笑
発展的な使い方
「入力をキープ」を活用する。
デフォルト状態では、押さえている鍵盤に対応するコードやスケール情報が表示されます。
ただ、判定される情報が多いので、全ての情報を確認するにはページをスクロールする必要があります。
しかし、鍵盤を弾きながらページをスクロールするのは厳しいですよね。笑
そんな時は、「入力をキープ」ボタンを押してください。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2Fe8ebc5fe-dc60-f353-9802-b788c429ffc4.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1ce9abcf44773a9c60cb0c4ce82aaac1)
入力をキープ状態では、押した鍵盤を離してもその鍵盤は選択されたままになります。
これで、ゆっくりコードやスケール情報が確認できるはずです。
反対に、選択を解除するためには、再び同じ鍵盤を押してください。
(一括で選択を解除したい場合は、「入力をキープ」を一度解除すればOKです。)
「仮想MIDIドライバー」を使ってDAWと連携させる。
個人的に特に便利で強力なのがこの使い方です。
①仮想MIDIドライバーの導入
仮想MIDIドライバーとは、PC内でのMIDIをやり取りを可能にするドライバーです。
Macの方は、「IAC Driver」という仮想MIDIドライバーが標準搭載されているようです。
Windowsの方は、別途インストールする必要があります。
僕はWindowsなので、「LoopMIDI」という仮想MIDIドライバーをインストールして使用します。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2Fb80c4d96-add0-0a1b-bf78-6dc915ac232f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=91bf76ccd0dc4e1f2fc5b3363d25863e)
「LoopMIDI」の使用方法は、こちら↓のページの解説が分かりやすいと思います。
②DAWのMIDIのアウトプットを仮想MIDIドライバーに割り当てる。
Cubaseの場合は、MIDIトラックのインプットを「未接続」、アウトプットを仮想MIDIドライバーのポートへ割り当てます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2Fb5a08318-2947-46f8-66d8-4325c876bda7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3c9ec828f59e519abd29ba47c04257ec)
※インプットを「未接続」にしておかないと、多分MIDI信号が無限ループしてブラウザが落ちます。 笑
③MIDIを再生させるとコード履歴にたまっていく。
あとは、このままDAW側でMIDIデータを再生すると…
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F15daede0-cc5b-2ac6-2704-adfaeadaba3f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=fdff6d831b8a865a96edccb4e6a7ea1f)
MIDIファイルのコードを文字起こしできます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F486558%2F1110c794-2c54-ce63-5b6a-f88ed7db3c06.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=51b3330ab0d6fbd0ded54c7406d69d7c)
もちろん、MIDIの中身によっては、細かく判定されすぎてコードメモにそのまま使うにはコードの取捨選択は必要かと思います。
しかし、MIDIファイルを再生するだけでコードをどんどん拾ってくれるのはかなり便利です!
超!便利!!
「こんなものがあれば良いな」を詰め込んだこのアプリ。
個人的にはとても重宝しています。
よければ使ってみてください!(๑˃̵ᴗ˂̵)و
感想や、シェアをいただけると喜びます!