×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

音符を再生


Documentation ReferenceのSoundページに、「Sound.PlayMusic(notes)」というものがあります。
説明には簡単に「再生される音符の集合です。書式は、QBasic でサポートされている ミュージック メイクアップ 言語のサブセットです。」って書いてありますね。
……どういうことなんだ。

とりあえず、「QBasic」でググってみます。
どうやらQBasicというプログラミング言語では、文字を打って実行すると音を再生する機能があるらしい。
midiみたいなもんですかね。
で、どの文字で何の音が出るかが重要なのですが、調べたところこういうことらしいです。

ド:c
レ:d
ミ:e
ファ:f
ソ:g
ラ:a
シ:b

ただ、だからといって

Sound.PlayMusic("cdefgab")

としても、「ドレミファソラシド」と聞こえはしますが、やたら低い音しか聞こえません。
音の高さ(オクターブ)を指定しないと、一番低い音を出すようになっているようです。
オクターブの指定方法ですが、

Sound.PlayMusic("o5 cdefgab")

音の前に「o(0〜6の数字)」を書きます。
数字はオクターブの高低を示しており、小さいほど低い音、大きいほど高い音です。

その他、ルールをまとめると以下の通りです。

a, b, c, d, e, f, g:
順に「ラシドレミファソ」

o(0〜6の数字):
オクターブの高低、数字が小さいほど低い音

<:
現在のオクターブから、1オクターブ下げる

>:
現在のオクターブから、1オクターブ上げる

p(0〜64の数字):
休符。数字が小さいほど長い休符。

数字:
音の長さ。音の後に付ける。
数字が小さいほど音が長くなる。何も付けないと、自動的に4分音符になる模様。
4分音符なら「4」、2分音符なら「2」、全音符なら「4」、16分音符なら「16」……

+または#:
半音上げる。音の後に付ける。

-:
半音下げる。音の後に付ける。

ということで簡単な例を。
ちなみに、空白(スペース)を開けても音が鳴ったり音が切れたりということは起こらないため、わかりやすくするためスペースで区切っていくのが良さそうです。

GraphicsWindow.Title = "Sound"
GraphicsWindow.Width = 80
GraphicsWindow.Height = 60

botan = Controls.AddButton("Play", 10, 10)
Controls.ButtonClicked = OnClick

Sub OnClick
  Sound.PlayMusic("o5 c4 d4 e2 c4 d4 e2 g4 e4 d4 c4 d4 e4 d2")
EndSub

「Play」をクリックすると、音楽が再生されます。
童謡のアレです。w

さて、ここまで遊んでみてピンと来た方もいらっしゃるかと思いますが、この機能を使えば、マウスクリックで音が出るピアノ(いわゆる、「ソフトウェアMIDIキーボード」)を作れそうな気がしますね。
ということで、次回、ピアノを作ります。

次:ピアノ(ソフトウェアMIDIキーボード)


▲TOPへ戻る