音楽用サーバ 設計日記 2016.9.17
世の中インターネットのおかげでいろいろ大変便利になりました。
RaspberryPi の技術情報やら部品調達も簡単にできます。
今は、個人でも開発がスムーズにできる時代です。
でも、AIがどんどん発達して人間の能力を超える時代なっていく時代で
いまさらMIDIを扱う装置、ソフトウエアが本当に必要か?
という疑問があるかとおもいます。
AIが発達して、AIが作った音楽を本当に聞きたいか?
音楽ソフトもAIを取り入れてどんどん進化していくのかと思われます。
たとえば、最初にモチーフが浮かんで入力したらあとはAIが全てをこなして
曲が完成となったら、「さびしい」ですね、
どうおもいますか?
MIDIを扱うということは音符、音符の組み合わせで音楽を作る作業です。
メロディもコードもリズムも全てMIDIデータで扱い曲(楽譜)を作成し、
人間の感性で演奏される音楽はAIが発達した時代でも
生き残れると思います。
こんなわけで音楽用サーバ、音楽ソフトウエアは、
MIDIデータの作成をできるだけ手間をかけずに人間の感性を
極力発揮できる装置の開発を目指しました。
人がAIより感性が勝るならこの装置は今後も有用です。
実は今回の開発の前にMIDI演奏装置の試作を試みていたのですが、
LPC2388のCPUボードへのデータ転送問題のクリアが出来ないまま
製作を放置していました。
今回は、RaspberryPI を使って再挑戦です。
まず、ブレッド・ボードを使って接続、動作試験をおこないます。
下記の動作試験はそれぞれ単独では確認済みですので、
全てを組み合わせて問題なく動作ができるかを確認します。
1. Webサーバの性能試験と動作確認
2. 外部とのインターフェイスでI2C、またはSPIは使えるか?
データ転送のため
3. GPIOのランプテスト
4. UART通信
特に、UART通信はRaspberryPi と LPC2388間のデータ通信をおこなうので
重要になります。LPC2388は、メモリが音楽データに対して十分ではないので
XON/XOFFによるフロー制御でデータ受信をしながら演奏をします。
また、GPIOを使ってPlay、Stop などの割り込み制御を行います。
Webブラウザからは、Play、Stop をマウスでクリックをしてGPIOの
ON/OFFを行うためのサーバプログラムを作ります。
上記の環境ができれば実際に基盤を作って、箱に実装して完成となります。
以上、
おおまかな設計方針と開発手順を記載しました。