歌う MML の書き方
歌う SMF の作り方
2007-12-02

Kenzi NOIKE


はじめに

ここでは,MML to MP3 with ぼーか郎 を用いて歌声を生成させるための 歌う MML の書き方について解説します.

ぼーか郎は, 歌うTiMidity の仕掛けに基づく歌声生成システムです.
VOCALOID や VOCALOID2 ほどではありませんが, それなりに歌声を生成できます.

歌わせる MML 部分以外は, mml2mid の MML 仕様に準じていますので, mml2mid の仕様書をご覧ください (→ mml2mid)
ここでは,歌わせる MML 部分についてだけ解説します.

また,SMF を直接作成できる方向けに, SMF to MP3 with ぼーか郎 を用いて歌声を生成させるための 歌う SMF の作り方についても解説します.


歌う MML

基本

通常の MML での音高文字の直前に音節名を書くことによって,その音節で歌わせることができます.
たとえば,

あ,ド,四分音符

上の楽譜にあるように, 「あ」の音節(声)で,「ド」の音高を,「四分音符」の長さで歌わせたい場合は,

♪MP3   ★変換を体験する

と書きます. ★変換を体験する をクリックするか, あc4 をコピーし, MML 送信フォームの [MML を直接書く] に貼り付け,[送信] して生成してみてください.



「かえるのうた」の冒頭を歌わせたい場合は,

かえるのうたがー

という音符列ですので,

♪MP3   ★変換を体験する

と書きます. ★変換を体験する をクリックするか, 上のテキストエリアの MML をコピーし, MML 送信フォームの [MML を直接書く] に貼り付け,[送信] して生成してみてください.

上に挙げた MML 例から推測できた方もいらっしゃると思いますが,
音高 は英小文字で書きます.

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

です.
半音上げるシャープ(#)は +, 半音下げるフラット(b)は -, 元に戻すナチュラルは * を音高文字の直後に書きます.
たとえば,ファのシャープは,f+ と書きます.
オクターブを下げる指定は <, オクターブを上げる指定は >を書きます.

音価(音長) は数字で書きます.

全音符 → 1
二分音符 → 2
四分音符 → 4
八分音符 → 8
十六分音符 → 16
三十二分音符 → 32
六十四分音符 → 64
です.
付点は,音価(音長)を指定する数字の直後に .(ピリオド)を書きます.
たとえば,付点四分音符は,4. と書きます.
タイは,2 個の音価数字の間に ^ を書きます.
たとえば,四分音符と十六分音符のタイは,4^16 と書きます.

音節 は,ほとんどの場合,そのまま書きます.
ただし, 「ぼくは」などの助詞の「は」は,「wa」と発音しますので,「わ」と書きます.
「を」を歌わせる場合は,そのまま「を」と書きます.
「しゃ」なども,1 音節ですので,そのまま「しゃ」と書きます
音節名は,ひらがなで書いてもカタカナで書いてもかまいません.
「ふぁ」と「ファ」は,同じ音節(声)が生成されます. 読みやすいほうを使うとよいでしょう.
使用できる音節の一覧表を ここ に置いておきますので,参考にしてください. (→表2 プログラム番号と音節の対応)

mml2mid には,このほかにも多くのコマンドがあります.
詳しくは mml2mid のサイトを訪れて,仕様書やコマンド早見表をご覧ください. (→ mml2mid)
すばらしい歌声を生成するために,独自の工夫を開発するのもおもしろいと思います.
掲示板 を用意しましたので,ここで披露しあい,切磋琢磨し,お互いに向上していきましょう. (→ 掲示板 )


和音を歌わす

ぼーか郎は,ポリフォニック音源ですので *1,
コードのような単純な和音であれば,
ひとつのトラックの中に書くことができます(ひとつの旋律として書くことができます).
詳しくは, mml2mid の仕様書をご覧いただくことにして,
ここでは,次の楽譜に示す和音を歌わせる MML を示します.

わーおーんーでーすーー

♪MP3   ★変換を体験する

mml2mid の MML では,和音を構成する音高のうち, 最後に指定する音高以外の音価(音長)を 0 と書くことで和音であることを書き表します.
つまり,最後に指定する音高の音価(音長)によって,和音全体の長さを指定します.
「わ」という音節(歌詞)が割り当たっている「ド-ミ-ソ」の「二分音符和音」は,
「ド」と「ミ」を音価(音長)0 の音高として c0 と e0 と書き,
最後に指定する音高「ソ」の音価(音長)を 2(二分音符)として g2 と書き連ねることで, 「ド-ミ-ソ」の「二分音符和音」を書き表します.

和音を構成する音高の長さがすべて同じではない場合は,
複数の旋律に分けて書き表すことになります.
「複数の旋律を歌わせる」を参考にしてみてください.


複数の旋律を歌わせる

ぼーか郎は,マルチ・チャネル音源ですので *1,
MML で複数旋律音楽を書くのと同様の方法で,複数旋律を歌わせることができます.
これを行うためには,
MML でトラックを記述する方法と,
各トラックに MIDI チャネルを設定する方法と,
プログラム・バンク番号を設定する方法おぼえてください.
(→ mml2mid)

ここでは,下の楽譜にある,ごく単純な複数旋律を歌わせる MML を示します.

あしたもるるるー

♪MP3   ★変換を体験する

行頭に 英大文字 を書くことで,トラックを指定します.
この MML では,2 つの旋律を書き表すために,2 つのトラック A,Bを使っています.
C1,C2 は,MIDI チャネル指定です.
MIDI チャネルという言葉がよくわからない方は, トラックごとに C1,C2... と数字を増やしていくとよいでしょう.
H50,0 は,歌わせるための「おまじない(歌声バンク設定,歌声プログラム番号指定)」です.
p96 と p32 は,音の左右定位の指定です.
これにより,複数の旋律が歌われていることがわかりやすくなります.


「ささやき声」で歌わせる

ぼーか郎は,声色を選択することができますので, 「普通の声」のほかに,「ささやき声」で歌わせることができます.
ここでは,上の 「複数の旋律を歌わせる」 と同じ MML を使って,「ささやき声」で歌わせてみます.
★変換を体験する をクリックし, [声色] から [れいしう ささやき声] を選択して [送信] してみてください.
(または,[声色] から [両方を試す] を選択して [送信] してみてください.)

あしたもるるるー

♪MP3   ★変換を体験する



複数の声色を使い分ける

ぼーか郎は,マルチ・ティンバー音源ですので *1,
旋律ごとに異なる声色で歌わせることができます.
詳しくは, mml2mid の仕様書をご覧いただくことにして,
ここでは,上の「複数の旋律を歌わせる」例を 「旋律ごとに異なる声色で歌わせる」ように修正した例を示します.

あしたもるるるー

♪MP3   ★変換を体験する

H??,0 によって,旋律ごとに異なる声色バンクを指定します.
ぼーか郎は,いまのところ,

れいしう 普通の声 → H56,0
れいしう ささやき声 → H55,0

の 2 つの声色を指定できます.
指定できる声色の数は,そのうち増やすかもしれません.
あなたの声や,知人の声も指定できるようにするかもしれません.
気長にお待ちください.


広がりのある歌声にする

ぼーか郎で「使い物になる歌声素材」を作るためには,コツが必要です.
ここでは,比較的簡単なのに効果の大きいコツとして,
「複数トラックを使うことで,広がりのある歌声にする」コツを記しておきます.

あいしてるー

まず,この楽譜をそのまま MML にし,歌声を生成してみます.
#timebase 480 は,あとに出てくるビブラートのための前準備です.
t90 は,テンポの設定です.
♪MP3   ★変換を体験する

どうでしたか?
それなりの歌声素材ではありましたが,広がり感が薄い感じがします.
そこで,この旋律を複数トラックで歌わせることで,広がり感を出させることにします.
単純に同じ内容を複数トラックで歌わせるには,トラック名を続けて書くことでできます.
ここでは,トラック A と同じ内容を トラック B,トラック C でも歌わせるために, ABC と書きます.
単純に複数トラックで歌わせるだけにせずに,トラックごとに異なる設定もします.
3 個の旋律が,中,右,左から聴こえるように, パンポットの設定「p」をし,
中(p64), 右(p96), 左(p32)から歌わせるようにします.
さらに,トラック B,C を,トラック A よりもほんの少しの時間だけずらして歌わせることで, 奥行き感を出させます.
(トラック B は 64分音符分(r64), トラック C は,64分+64分=32分音符分(r64 r64),遅れて歌わせます)
さらに,「M」コマンドを使って,ビブラートをかけます. (M360,80)

♪MP3   ★変換を体験する

修正前と比べて,いかがですか?
「広がり感が出て,イイ!」という人も,
「広がり感は出たものの,エコーがかかってしまったので,前のほうがイイ!」という人もいると思います(^^;).
ほかにも,さまざまなオリジナルのコツがあると思います.
よいものができましたら,ご紹介くださると幸いです. (→ 掲示板 )


楽器音の伴奏を付ける

ぼーか郎は,マルチ・ティンバー音源であり *1,
歌声バンク以外は,通常の楽器音バンクになっていますので,
ぼーか郎単体で歌声とともに楽器音を生成することができます.
バンクの指定の仕方の詳細は, mml2mid の仕様書をご覧いただくことにして,
ここでは,次の楽譜を MML に直した例を示すことで,ごく簡単な説明とさせていただきます.
大まかな理解の仕方としては, H0,0 を書くことで,一般的な GM 音色マップが利用できるようになり,
続けて, @n(n は,0〜127 の 10 進数) を書くことで,GM 音色マップの音色番号 n の音色が使えるようになると理解しておくとよいと思います.

あいしてるー with Inst.

♪MP3   ★変換を体験する


規模の大きな MML を書く

上の「基本」ではフォームに直に書いていましたが,
MML to MP3 with ぼーか郎 では,あらかじめ,ファイルに MML を書いておき,
それを [参照] で指定し,[送信] することもできます.
ファイルに書いて送信するときには,フォームに直に書いて送信するときにはなかった注意点がいくつかあります.
たとえば,上の「基本」のところの最初の例をファイルに書いておく場合は,
♪MP3   ★変換を体験する
のようになります.
フォームに直に書いて送信した場合は,注意点として挙げた加工がサーバ上で行われています.
この加工は,かなり雑に行われているので,まれに,正しく MML を書けているのに変換エラーを起こすことがあります.
そのときは,あらかじめファイルに書いておき,送信するようにしてください
そのときは,加工が行われませんので,「MML to MP3」に与える MML を,ユーザが完全に把握できます.

フォームに直に書いて送信する場合と,ファイルに書いておいて送信する場合のそれぞれの長所・短所を示します.
両者のよいところを使って,効率よく MML を開発しましょう.



便利な小技

ビブラートをかける(コブシを効かせる)

ビブラートなし(コブシなし)
♪MP3   ★変換を体験する

#timebase 480と
M240,80による
ビブラートあり(コブシあり)
♪MP3   ★変換を体験する


広がりをつける(奥行き感をつける)

工夫前
♪MP3   ★変換を体験する

工夫後
♪MP3   ★変換を体験する


歌わせる音域をシフトする(移調する)

歌わせる音域をシフトさせることで,ロボットの声のような歌声の不自然さを軽減させることができます
これには,「__」という MML コマンドを使います.
たとえば,「__-6」とすることで,歌わせる音域を,半音 6 個分,低い音域にシフトさせることができます.
「__+2」であれば,半音 2 個分,高い音域にシフトさせることができます.
♪MP3   ★変換を体験する

♪MP3   ★変換を体験する

♪MP3   ★変換を体験する





歌う SMF の作り方

プログラム・バンクで声色を指定し, プログラム・チェンジで音節を指定します.
「あ」,「い」,「う」などの音節ひとつひとつの指定は,
「ピアノ」,「ギター」,「バイオリン」などの音色をひとつひとつ指定することに対応していると考えてください.

「プログラム・バンク番号と声色の対応」,「プログラム番号と音節の対応」を,下に示します.
表中の数値は,0 からはじまる 10 進数です.

たとえば,「れいしう 普通の声」で,「え」の音節を指定するには,
プログラム・バンク 56,プログラム番号 03 を指定します.
すると,それ以降の音列は「え」の声色で演奏されます.

プログラム番号と音節との対応は,慣れれば数値で直に入力できるように,少し工夫してあります.
基本的な 50 音(清音)は,いわゆる 50 音表のとおりに並べてあります.
「ん」は,「わいうえを」を「わいんえを」と無理矢理読み換えることにすると(^^;),
わ=45,を=49 なので,ん=47 と想像できます.
また,

濁音 = 50
拗音 = 80

とおぼえておくと,

か(05) + 濁音(50) = が(55)
か(05) + 拗音(80) = きゃ(85)

と算出できます.
「ぱ(80)」,「ぴ(81)」,「ぷ(82)」,「ぺ(83)」,「ぽ(84)」と
「ふぁ(70)」,「ふぃ(71)」,「ふぇ(73)」,「ふぉ(74)」は,音素として近そうな
「ば(75)」,「び(76)」,「ぶ(77)」,「べ(78)」,「ぼ(79)」の前後に割り当ててあります.
「んが(50)」,「んぎ(51)」,「んぐ(52)」,「んげ(53)」,「んご(54)」は,音素として近そうな
「が(55)」,「ぎ(55)」,「ぐ(55)」,「げ(55)」,「ご(55)」の前に割り当ててあります.

「ぎゃ」などは,不規則な対応になっていますので,ここの表をみて入力してください.

なお, 「れいしう ささやき声」 には,「れいしう 普通の声」には存在する音素
「ヴぁ(va)」, 「ヴぉ(vo)」, 「てぃ(txi)」, 「てゅ(txu)」, 「ふぁ(fa)」, 「ふぃ(fi)」, 「ふぇ(fe)」, 「ふぉ(fo)」, 「じぇ(je)」, 「ぢゅ(dyu)」
が ありません .ご注意ください.


表1 プログラム・バンク番号と声色の対応
(数値は,0 からはじまる 10 進数)
バンク番号 送信フォームでの声色名
50 [送信フォーム] の [声色] で決まる
56 れいしう 普通の声
55 れいしう ささやき声
61 てつじ
62 てつじ (低)



表2 プログラム番号と音節の対応(数値は,0 からはじまる 10 進数
プログラム番号 音節 プログラム番号 音節 プログラム番号 音節 プログラム番号 音節 プログラム番号 音節
00 あ 01 い 02 う 03 え 04 お
05 か 06 き 07 く 08 け 09 こ
10 さ 11 し 12 す 13 せ 14 そ
15 た 16 ち 17 つ 18 て 19 と
20 な 21 に 22 ぬ 23 ね 24 の
25 は 26 ひ 27 ふ 28 へ 29 ほ
30 ま 31 み 32 む 33 め 34 も
35 や     37 ゆ     39 よ
40 ら 41 り 42 る 43 れ 44 ろ
45 わ     47 ん     49 を
                   
55 が 56 ぎ 57 ぐ 58 げ 59 ご
60 ざ 61 じ 62 ず 63 ぜ 64 ぞ
65 だ 66 ぢ 67 づ 68 で 69 ど
                   
75 ば 76 び 77 ぶ 78 べ 79 ぼ
80 ぱ 81 ぴ 82 ぷ 83 ぺ 84 ぽ
85 きゃ     87 きゅ     89 きょ
90 しゃ     92 しゅ     94 しょ
95 ちゃ     97 ちゅ     99 ちょ
100 にゃ     102 にゅ     104 にょ
105 ひゃ     107 ひゅ     109 ひょ
110 みゃ     112 みゅ     114 みょ
                   
120 りゃ     122 りゅ     124 りょ
                   
    38 てぃ[txi] 46 てゅ[txu]        
70 ふぁ[fa] 71 ふぃ[fi]     73 ふぇ[fe] 74 ふぉ[fo]
50 んが[nga] 51 んぎ[ngi] 52 んぐ[ngu] 53 んげ[nge] 54 んご[ngo]
48 んぎゃ[ngya]     72 んぎゅ[ngyu]     86 んぎょ[ngyo]
88 ぎゃ[gya]     91 ぎゅ[gya]     93 ぎょ[gyo]
96 じゃ[zya]     98 じゅ[zyu]     101 じょ[zyo]
            103 じぇ[je]    
        106 ぢゅ[dyu]        
108 びゃ[bya]     111 びゅ[byu]     113 びょ[byo]
121 ぴゃ[pya]     123 ぴゅ[pyu]     125 ぴょ[pyo]
126 ヴぁ[va]             127 ヴぉ[vo]


空きプログラム番号:
36,
115, 116, 117, 118, 119


歌う MML,歌う SMF のサンプル

歌う MML や歌う SMF のサンプルファイルと,それらから生成した歌声 MP3 を,ここや掲示板に置いていきます. (→ 掲示板 )
参考になれば,幸いです.
また,みなさまが作成された,サンプル(傑作)の投稿もお待ちしています.


何も手を加えずに,「ショパン作曲『別れの曲』を,『普通の声"る"』で歌わせる」

SMF to MP3 with ぼーか郎 の[音源] の選択肢には, があります.
これを使うことによって, 通常の SMF をそのままで,何も手を加えることなく ことができます.
ここでは,ショパン作曲「別れの曲」を "るーるるる" と歌わせた例を示します.





手のひらを太陽に(タチコマ風?)

手のひらを太陽に Page 1 手のひらを太陽に Page 2 クリックすると拡大表示

__-2 によって, 生成される歌声の音高を, 楽譜の音高から半音 2 個分下にシフトさせています.
♪MP3   ★変換を体験する   ♪SMF (歌声になる前の SMF です.SMF to MP3 with ぼーか郎で変換すると歌声になります)




よーろれいっひー(ジングルとして使えるかも?)

よーろれいっひー

♪MP3   ★変換を体験する   ♪SMF (歌声になる前の SMF です.SMF to MP3 with ぼーか郎で変換すると歌声になります)




謎っぽいもの

謎っぽいもの Page 1 謎っぽいもの Page 2 謎っぽいもの Page 3 クリックすると拡大表示

__-1 によって, 生成される歌声の音高を, 楽譜の音高から半音 1 個分下にシフトさせています.
歌詞にカタカナも含んでいますが,ひらがなで書いたときと同じ音節が生成されます.

♪MP3   ★変換を体験する   ♪SMF (歌声になる前の SMF です.SMF to MP3 with ぼーか郎で変換すると歌声になります)




あいしてる(「普通の声」と「ささやき声」の使用例)

H56,0 で「普通の声」,
H55,0 で「ささやき声」を使用できます.

♪MP3   ★変換を体験する   ♪SMF (歌声になる前の SMF です.SMF to MP3 with ぼーか郎で変換すると歌声になります)




願い事ひとつだけ(息継ぎのエミュレート例)

願い事ひとつだけ(息継ぎのエミュレート例 クリックすると拡大表示

「ねがいごーと」の「ね」の直前,
「かーなえーてくーれーるなーらあー」の直後で「息継ぎ」のエミュレーションをしています.
「息継ぎ」の音をエミュレートするために,声色「ささやき声」の音節「は」と「ひ」を使っています.
H55,0 によって音色バンク 55 を設定することで,ひとつの曲の中で [普通の声] とともに [ささやき声]も使用できます.
「息継ぎ」の音には,音節「は」と「ひ」を使ってみました.「ふ」もいいかもしれません.

__-4 によって, 生成される歌声の音高を, 楽譜の音高から半音 1 個分下にシフトさせています.

♪MP3   ★変換を体験する   ♪SMF (歌声になる前の SMF です.SMF to MP3 with ぼーか郎で変換すると歌声になります)



おわりに

VOCALOID や VOCALOID2 ほどの音響信号処理はしていませんが, 無料で使える歌声生成ツールとして活用していただければうれしい限りです.
なお,VOCALOID 系の生成エンジンはモノフォニック音源ですが, ぼーか郎は, ポリフォニック音源 です.
ひとつのトラック内で,いくつでも声を重ねることができます.
もちろん,複数トラックを使うこともできます.
そういった制限のなさは VOCALOID よりも使いやすい場面があると思いますので, うまく使い分けができればよいな,と思っています.



*1 実体は,普通のサンプラーです(^^;).