資料 - 北原研究室

音楽理論に基づいた鼻歌作曲支援システム
‘‘ハミコン’’
北原研究室 ・木村翔平
・鈴木智文
・鈴木優 研究の背景
・現在、動画サイトなどで自分オリジナルの曲を
公開して楽しむということが確立してきている。
・作曲をするには、音楽理論や楽器も出来ないと
いけないが、初心者でも鼻歌だけで作曲をするこ
とができればいいのではないか。
・「ソング頼太」(*1)・「MAISTAMUSIC」(*2)・
「鼻歌ミュージシャン2」(*3)という鼻歌で作曲
のソフトがある。
ソング頼太とは
研究の目的
・既存のソフトではうまく音が認識されなかった
り、ユーザが意図しない音高になってしまう。
・メロディも思ったのと違ったメロディ、音楽的
に不自然な音高にならないよう音楽的に妥当な曲
が出来るようなシステム。
・作曲の楽しみが味わえるシステム。
提案システムのねらい
・初心者が歌っても音楽的にありうるメロディに
修正される。
・歌唱をMIDI形式に変換して出力するシステムに
する。
※MIDIというのは,計算機上での楽曲表現方
式の1つで,ノートオンメッセージとノートオフ
メッセージの列によってメロディなどを表現す
るものである。
実現するための課題
素人がメロディを歌った場合、2つの点であいま
い性が生じる。
・音高が安定しないために、音と音の切れ目が明
確でなくなる場合がある。
・ユーザが意図する音高を正しく発声できない場
合、そのまま単純にノートナンバーに変換する
と、音楽的に適切でない値になる
課題の解決法
・音と音の切れ目が明確でない点について
→タッピングを使い、1音ごとに音の長さを 区切るようにする。
・音高のあいまい性について
→メロディ修正ルールを作り、音楽的に妥当 なメロディに修正する。
システムの仕様
・入力部分…パソコンの内蔵マイクで行う
・出力部分…MIDIに変換して出力
・前提条件…伴奏は決まっているものを流す
伴奏はヘッドホンで聞くものとする。
システムの構成
伴奏部
マイク入力部
タップ監視部
歌唱分析部
仮MIDIデータ
音高修正部
リズム修正部
MIDI出力部
完成したMIDIファイル
システムの構成
伴奏部
マイク入力部
タップ監視部
歌唱分析部
仮MIDIデータ
音高修正部
リズム修正部
MIDI出力部
完成したMIDIファイル
伴奏部
・あらかじめ決まっている伴奏データを流すこと
にする。
・伴奏データは8小節分である。
・コード進行は既知とする。
システムの構成
伴奏部
マイク入力部
タップ監視部
歌唱分析部
仮MIDIデータ
音高修正部
リズム修正部
MIDI出力部
完成したMIDIファイル
マイク入力部
マイクからユーザの歌唱を取得する。
録音時ノイズが入ると歌った音とは違う音で出力
されてしまうので、対策する必要がある。
起動して最初の0.1秒で周囲のノイズを採り、そ
の中の最大のノイズの3倍以上の声の大きさでな
いと反応しないようにする。
システムの構成
伴奏部
マイク入力部
タップ監視部
歌唱分析部
仮MIDIデータ
音高修正部
リズム修正部
MIDI出力部
完成したMIDIファイル
タッピング監視部
スペースキーをタップすることで、タップから
タップまでの長さを1音にすることができる。
目的
鼻歌だけで1音を判断してしまうとリズムを求める
のが難しいので、タッピングをすることで求めてい
るリズムの正確性が上がる。
鼻歌
タッピング
タップ
タップ
タップ
システムの構成
伴奏部
マイク入力部
タップ監視部
歌唱分析部
仮MIDIデータ
音高修正部
リズム修正部
MIDI出力部
完成したMIDIファイル
歌唱分析部
マイク入力部・タップ監視部を組み合わせ歌唱分
析をする。
出力はMIDIなので、ノートナンバーにする ノートナンバー
ノートナンバー
周波数を計る
鼻歌を歌う
にする
周波数からノートナンバーへの式 音高の求め方
0.01秒ごとに測定された基本周波数をノートナン
バーに変換。
タップからタップまでのノートナンバーの中央値
を採用する。
なぜ中央値を使うか
平均値では、鼻歌を入力しているとき、ノイズ
や、意図しない音が1つでも出てしまうと、ユー
ザが求めたい音と違う音が出てしまうことが多
かったため。
中央値
左の図では
平均値だと
52(ミ)
中央値だと
54(ファ#)
周囲のノイズ
タップ
反応した鼻歌
タップ
求めたい音は
54(ファ#)
の方が
妥当である。
システムの構成
伴奏部
マイク入力部
タップ監視部
歌唱分析部
仮MIDIデータ
音高修正部
リズム修正部
MIDI出力部
完成したMIDIファイル
音高修正部
音楽理論に基づいたルールを作り修正する。
音高の修正について、
・隣り合う音の高さが離れすぎなくする。
・伴奏と不協和にならないメロディにする。
をコンセプトとして考える。
メロディ修正の基本ルール
1、ハ長調の音階に合わない音は、ハ長調の音高
にする。
修正前 修正後
2、そのとき(例ではCコードの時)の和音に合わ
ない音は合う音に修正する。
修正前 修正後
3、前後の音で1オクターブ以上高く離れていた
場合は、次の音を1オクターブ下げる。
修正前 修正後
基本ルール1
・ハ長調とは・・・黒鍵を使わない音階のこと
黒鍵が入る場合
ハ長調化
基本ルール2
・その時の和音に合わない音を合うようにする。
例1 Cコードの時
ハ長調化
和音適用化
例2 Amコードの時
基本ルールの問題点
・ハ長調の音階に合わせるようにすると、和音と
合わない音も出力されてしまう。
・すべて和音の音に合わせてしまうと、単調なメ
ロディになってしまう。
そもそも自然なメロディとは
音楽には和声音・非和声音と呼ばれるものがある。
(コードトーン)
和声音の例
和声音のみのメロディ
非和声音の例
和声音に非和声音を組み合わせたメロディ
非和声音
本研究では、主な非和声音として
倚音
経過音
刺繍音
を作り出すルールを導入する。
これより許容非和声音と呼ぶ。
非和声音
倚音
経過音
刺繍音
倚音
倚音とは…コードの冒頭部分にあらわれる 非和声音のこと。
例) Cコードの時 「 レ - ド -」
というメロディーの時の レの事
非和声音
倚音
経過音
刺繍音
経過音
高さの違うコードトーンの中間におかれ順次的な
ラインをつくる非和声音
例) Cのコードの場合 「ド レ ミ」 「ソ ファ ミ」
非和声音
倚音
経過音
刺繍音
刺繍音
同じ高さのコードトーンの中間におかれ、 上下に2度の動きを示す非和声音
例) Cコードの場合 「ドシドー」 「レミレー」 の赤文字
非和声音
・非和声音のものをどうルール付けするか。
・既存の曲によく使われるような非和声音の傾向
を調べ、新ルール作成の参考にする。
新ルール作成にあたって
J-POPの楽曲69曲分を集計した結果
・倚音
倚音の次の音が一番近いコードトーンに動くのは 全倚音214箇所中179パターン
・経過音について
連続した3つの音が2度の間隔になるのが 全経過音191箇所中188パターン
・刺繍音について
挟まれた音が上下2度の音に動くのは 全刺繍音257箇所中223パターン
提案する新ルール
・倚音
倚音の次の音が高い場合近くの高いコードトーンへ
倚音の次の音が低い場合近くの低いコードトーンへ 修正する。
修正前
修正後
提案する新ルール
・経過音
コードトーンと3度のコードトーンに挟まれている音高
の場合経過音になるようにする。
修正前
修正後
提案する新ルール
・刺繍音
連続する3つの音がコードトーンに挟まれている場合、
挟まれている音が低ければ2度下の音
挟まれている音が高ければ2度上の音 に修正する。
修正前
修正後
ルールのまとめ
基本ルール1
新ルール
ダイアトニックスケール化
(ハ長調音階化)
ルール
許容非和声音ルール
基本ルール2
和声音ルール
基本ルール3
オクターブルール
出力
ルールを実装した結果
以上の提案ルールを踏まえた結果が図のようにな
る。
修正前
修正後
システムの構成
伴奏部
マイク入力部
タップ監視部
歌唱分析部
仮MIDIデータ
音高修正部
リズム修正部
MIDI出力部
完成したMIDIファイル
リズム修正部
リズムを妥当なリズムに修正する。
チック…4分音符を480の精度で分解した単位
(MIDIの設定で数値変更できる。)
480
240
120
リズム対策について
・8分音符より細かいリズムや音の長さになる
と、聞いたときに不自然になる。
・8分音符刻みに補正する。 (クオンタイズという。)
録音時のリズム
修正後のリズム
システムの構成
伴奏部
マイク入力部
タップ監視部
歌唱分析部
仮MIDIデータ
音高修正部
リズム修正部
MIDI出力部
完成したMIDIファイル
ハミコン実装動画
まとめ
今回作ったシステムで、自分たちが目的としてい
た、ユーザが歌った鼻歌が、音楽的にもっともら
しいメロディに修正され、曲らしく出力された。
今後の課題
・提案した各ルールの有効性を、被験者に
よる評価実験で明らかにしていく
・伴奏パターンが固定なので、ユーザ自身が自由
に選べるようにする。
・修正後他のソフトに移さずにメロディが調節出
来るようにする。
参考資料
*1 .ソング頼太((有)ダイナシステム)
http://www.dynasys.co.jp/FreeSoft/Srt/index.htm
*2.MAISTA MUSIC(JOYSOUND)
http://maistamusic.com/
*3.鼻歌ミュージシャン2(株式会社メディアナビ)
http://www.medianavi.co.jp/product/hana2/hana2.