A Music Notepad: A handwriting music score input system

手書きで楽譜がかける、とても簡単なシステムを作成してみました。

The Music Notepad とは?

The Music Notepad は、Brown University で開発された、手書きで楽譜を書く事の出来るシステムです。

今回、大学でこれに似たシステムを作ってみるということをやってみました。結構面白いと個人的には思っているので、公開してみます。

お断りしておかなければならないこととして、私は音楽に関しては本当に素人であり、学校で習った程度の知識しかありません。日常的に楽器を弾いたり、歌を歌っている訳ではありません。楽譜の書き方も誤りがかなりあると思われます。そんなときは……笑って許して下さい。或いは、メールでお知らせ下さい。

出来ること・出来ない事

まず、出来ることと出来ないことを明らかにしておきます。私の実装では、出来る事はほんの一握りで、とても基本的なことしか出来ません。Java のキホンすら忘れていましたし、instanceof を初めて知ったとか、そういうとても駄目駄目な状態から、実質 50 時間程度で Java を覚えながらの実装です。今から考えると異常に時間がかかってますね。本当に基本的なことしか出来ません。

まず、出来ることは次の通りです。

  • 音符・休符の入力 (全音符から三十二分音符まで)
  • beam (音符をつなげること)
  • シャープ・ナチュラル・フラットを付ける、符点を付ける
  • 消去

出来てもよさそうですが、次のことは出来ません。(そんなに難しいことではないので、時間があれば出来る様になったでしょうが)

  • 小節線をひくこと
  • 連符
  • 一度 beam したあと、部分的に音の長さを変えること
  • 楽譜のフォーマット・保存
  • 音符の移動・コピー・ペースト

ジェスチャー一覧

以下にジェスチャーの一覧を示します。それぞれについて説明をします。

実際に動かして遊んでみる

動かして遊んでみたい人は、ダウンロードへ。applet にしようと思ったのですが、何故か上手く動かなかったもので。appletviewer でなら動いたのに。

尚、Play はおまけで、まともな演奏が出来るわけではありません。かなりヨタヨタした演奏になります。三十分程度でおまけ的につけたものなので、あんまり期待しないで下さい。Java の version は 1.4 以降がオススメです。古いと javax.sound.* が使えなくて落ちるので。また、Play 中は他の動作をしないで下さい。これは仕様です (?) (考慮してないという意味では仕様なのだろうが。)

また、なんか表示されないなー、というときは repaint ボタンを何回か押してみるのが大人の対応です。Java の初期化順を考慮してなかったので、しばしば最初が表示されません。つーか、知らなかったのな、初期化順序なんか。

ダウンロード

もうちょっとまともにして動かしたいという人には、ソースコード (Java) を提供します。テキトーに製作しているので、ライセンスは NYSL とします。3000 行に満たないくらいの小さなものですが、相当読みにくいと思います。万が一読むのなら、Score.java から読む事をオススメします。

  • ソース及びバイナリのダウンロード (104KB)
2003-01-01