Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

【WebAudioAPI】MMLプレイヤー制作中【なにかがおかしい】

 どうも!LSSです!!

 

【WebAudioAPI】超簡易MML(作り始めw)

に続き、MMLプレイヤーを作っていました。

 

オクターブ変更・半音階対応・音長指定・3チャンネルまでの同時再生、に対応できました!!

…が、どうも最後の「同時再生」が微妙にズレるような…??

 

f:id:little_strange:20210403224848p:plain

 

MMLプレイヤー

 

 

まずは「鳴らす」をクリック

まずは「鳴らす」ボタンを押してみてください。

音楽が演奏されます。

 

3つの入力欄がありますが、そこに入っている文字列を消して違う内容を入力すると、入力に応じた曲に変わります。

 

 

MML文法について

音階

cdefgab が「ドレミファソラシ」に対応しています。

例えば「cde」と入力すると、「ドレミ」と鳴ります^^

 

音の後に#をつけると、半音上がります。

 

 

音長

音の後に数値をつけると、音の長さが変わります。

デフォルトでは8分音符の長さですが、c4のように書く事で4分音符になります。

※「c4de」と書くと「ドーレミ」と鳴ります。

 

また「l8」(小文字のL)のように書くと、デフォルトの音長を変更する事になります。

例えば「l4cd8e8fg」のように書くと「ドーレミファーソー」と鳴ります。

 

更に、数値の後に「.」をつけると付点になります。

例えば「e4.」だと「付点4分音符(8分音符3つ分の長さ)」のミの音になります。

 

休符

r が休符です。

cdefgabの音と同様に長さを指定できます。

 

オクターブ

デフォルトのオクターブは「4」ですが、「o3」のように書く事で違うオクターブを指定できます。

また「<」で1オクターブ上がり、「>」で1オクターブ下がる、という指定もできます。

 

その他 

スペースや改行など、上記以外の記述は無視されます。

読みやすいように適度にスペースを入れて区切りにするといいですね^^
(前述の音階と#の間や数値との間は不可)

 

 

同時再生については(仮)って事で^^;

うまくできたように思いましたが、どうも、複数の音を同時に演奏していると、微妙にズレが生じるような…^^;;;

 

そもそもの音長の指定に問題がある可能性もありますね^^;

原因不明ですが、いったんあげてしまいます!

 

色々入力して遊んでみてくださいね^^

 

 

 

ってなとこで、今回はこのへんで!

次回もまた、よろしくお願いします^^