×
ソフトウェア

1曲弾けばプログラムが組める、ピアノの鍵盤を叩いてプログラミングができるソフトウェア登場

By Martijn de Valk

電子ピアノのMIDI端子から出力されるデータをコンピューター上のキーやコマンドに変換することで、ピアノを弾きながらプログラミングができるソフトウェアを、とある開発者が発明しました。

Programming on a Keyboard... a Piano Keyboard | ELEKS Labs
http://elekslabs.com/2014/06/programming-on-a-keyboard-a-piano-keyboard.html


1950年代初頭、世界で初めてコンピューターで音楽を奏でることに成功します。それ以降、音楽業界でもコンピューターは徐々に役立つツールとして進化してきました。現在では、音そのものを作り出すプラグインのVSTiや、デジタル・シンセサイザーなどのおかげで、いつでもどこでもテープの存在など気にすることなく音を生み出すことが可能で、家庭でもスタジオで録音したかのような音を収録することができるようになってきています。

音楽産業におけるデジタル機器の進歩は、MIDIの発明によるところが大きいそうです。このMIDIというのは、日本のMIDI規格協議会と国際団体MIDI Manufacturers Associationによって策定された規格で、電子楽器の演奏データを機器間でデジタル転送するためものとして知られています。

By William's Photos

MIDI規格では、演奏(音)データのやり取りをMIDIメッセージと呼ばれる複数のバイト(8ビット)で構成されたデータで行います。そして、このMIDIメッセージには「ステータスバイト」と「データバイト」と呼ばれる2種類のバイトが使用されており、例えばピアノの中央ハの鍵盤を押した場合は、以下のようにステータスバイトとデータバイトが決められるわけです。そして電子ピアノから他端末にMIDIメッセージが送られることで、電子ピアノで出した中央ハの音を他端末でも再現できるようになる、というわけ。


コンピューターのキーボードも、「このキーを押すとこのコマンドを実行」といった具合にMIDIメッセージと似た方法で動作しています。そこで、ウクライナのリヴィウを拠点に活動するソフトウェア開発企業ELEKSの開発者であるYuriy Gutsさんは、ピアノをプログラミング用のツールにするべく、MIDI端子から出てくるMIDIメッセージを翻訳するソフトウェアを開発しました。

Yuriyさんの開発したソフトウェアの名前は「Midichlorian」。Visual Studio用のエクステンションで、プログラミング言語のC#を使ったプログラミングが可能になります。

Midichlorian 拡張機能
http://visualstudiogallery.msdn.microsoft.com/bdca1405-565a-472d-9ad4-af03b6df8961


このMidichlorianを使えば電子ピアノの鍵盤を叩くと出力されるMIDIメッセージを、コンピューターのコマンドに変換してくれます。これは、円周率の歌(Song from π!)にインスパイアされて作成したとのことで、どの鍵盤を押すとどんなコマンドが出力されるのかは以下の画像の通り。


Midichlorianと電子ピアノを使って世界一有名なプログラムである「Hello world」を、実現すると以下のようになります。

Hello World: A Suite For Visual Studio in C# Minor - YouTube


最初は特に何も書かれていないテキストエディタが開かれています。


電子ピアノの鍵盤を叩くと、画面の赤枠部分に文字が打ち込まれました。


曲を弾くようにコードを入力していき……


ついに赤枠部分に「Hello World」の文字が登場。


約1分程度の演奏でプログラムが完成し……


プログラムが画面上に「Hello World」を出力しました。


「Hello world」を組むための楽譜も公開中。

Hello World: a Suite for Visual Studio in C# Minor


なお、MIDIメッセージをコードに変換するための「Midichlorian」は、オープンソースなのでGitHubにて公開されています。

YuriyGuts/midichlorian · GitHub
https://github.com/YuriyGuts/midichlorian

・関連記事
プログラミングなどコンピューターサイエンスを必修科目に取り入れた高校が登場 - GIGAZINE

プログラミング言語同士がどう影響を与え合っているのかを示した相関図 - GIGAZINE

「サセン…アア…エット…」と書けば本当に実行できる「コミュ障プログラミング言語」 - GIGAZINE

プログラミング経験ゼロだが180日で180個のウェブサイトを作るプロジェクトがゴールまであとわずかに - GIGAZINE

「マンガで分かる JavaScriptプログラミング講座」第2版公開中 - GIGAZINE

in ソフトウェア,   ネットサービス, Posted by logu_ii