(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-07
(45)【発行日】2022-12-15
(54)【発明の名称】ハーモニー生成装置およびそのプログラム
(51)【国際特許分類】
G10L 21/013 20130101AFI20221208BHJP
G10H 1/10 20060101ALI20221208BHJP
G10K 15/04 20060101ALI20221208BHJP
【FI】
G10L21/013
G10H1/10 A
G10K15/04 302D
(21)【出願番号】P 2018158824
(22)【出願日】2018-08-28
【審査請求日】2021-08-04
(73)【特許権者】
【識別番号】000116068
【氏名又は名称】ローランド株式会社
(74)【代理人】
【識別番号】110000534
【氏名又は名称】弁理士法人真明センチュリー
(72)【発明者】
【氏名】間森 秀行
(72)【発明者】
【氏名】中山 昌之
(72)【発明者】
【氏名】白石 英明
【審査官】菊池 智紀
(56)【参考文献】
【文献】特開平11-133990(JP,A)
【文献】特開平10-143172(JP,A)
【文献】特開2018-072443(JP,A)
【文献】特開2012-063502(JP,A)
【文献】特開2018-072444(JP,A)
【文献】特開2004-279786(JP,A)
【文献】特開平04-042297(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10H 1/00-7/12
G10K 15/04
G10L 13/00-13/10,21/003-21/013
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
音声を入力する音声入力手段と、
楽器の演奏情報を入力する演奏入力手段と、
その演奏入力手段へ入力された演奏情報のコードを判定するコード判定手段と、
演奏楽曲のキーを記憶するキー記憶手段と、
前記音声入力手段へ入力された音声のピッチに近い音名の音が前記コード判定手段により判定されたコードの構成音の中にある場合、その構成音以外の1又は2以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトし、前記音声入力手段へ入力された音声のピッチに近い音名の音が前記コード判定手段により判定されたコードの構成音の中にない場合、前記キー記憶手段に記憶されたキーに基づくスケールの構成音のうち、前記音声入力手段へ入力された音声のピッチに近い音名の音からピッチ差のある1又は2以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトするピッチシフト手段と、
そのピッチシフト手段によりシフトされたピッチ音と、前記音声入力手段へ入力された音声とを出力する出力手段とを備えていることを特徴とするハーモニー生成装置。
【請求項2】
音声を入力する音声入力手段と、
楽器の演奏情報を入力する演奏入力手段と、
その演奏入力手段へ入力された演奏情報のコードを判定するコード判定手段と、
演奏楽曲のキーを記憶するキー記憶手段と、
前記音声入力手段へ入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にある場合、その構成音からピッチ差のある1又は2以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトし、前記音声入力手段へ入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にない場合、前記コード判定手段により判定されたコードの構成音のうち、前記音声入力手段へ入力された音声のピッチに近い音名の音以外の1又は2以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトするピッチシフト手段と、
そのピッチシフト手段によりシフトされたピッチ音と、前記音声入力手段へ入力された音声とを出力する出力手段とを備えていることを特徴とするハーモニー生成装置。
【請求項3】
音声を入力する音声入力手段と、
楽器の演奏情報を入力する演奏入力手段と、
その演奏入力手段へ入力された演奏情報のコードを判定するコード判定手段と、
演奏楽曲のキーを記憶するキー記憶手段と、
前記コード判定手段により判定されたコードと前記キー記憶手段に記憶されたキーとに基づいて、前記音声入力手段へ入力された音声のピッチをシフトするピッチシフト手段と、
前記コード判定手段により判定されたコードに優先して前記キー記憶手段に記憶されたキーに基づいて前記音声入力手段へ入力された音声のピッチを前記ピッチシフト手段によってシフトするか、前記キー記憶手段に記憶されたキーに優先して前記コード判定手段により判定されたコードに基づいて前記音声入力手段へ入力された音声のピッチを前記ピッチシフト手段によってシフトするかを切り替える切替手段と、
前記ピッチシフト手段によりシフトされたピッチ音と、前記音声入力手段へ入力された音声とを出力する出力手段とを備えていることを特徴とするハーモニー生成装置。
【請求項4】
前記コード判定手段により判定されたコードに基づいて、演奏楽曲のキーを推定するキー推定手段を備え、
前記キー記憶手段は、そのキー推定手段により推定されたキーを記憶することを特徴とする請求項
1から
3のいずれかに記載のハーモニー生成装置。
【請求項5】
前記コード判定手段は、前記音声入力手段へ入力された音声のピッチに近い音名の音を有するコードであって、そのコードの構成音のすべてが前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にあるコードを、演奏中のコードとして判定することを特徴とする請求項
1から
4のいずれかに記載のハーモニー生成装置。
【請求項6】
記憶部を備えたコンピューターに、入力音声に応じたハーモニーを生成させるプログラムにおいて、
前記記憶部を演奏楽曲のキーを記憶するキー記憶手段として機能させ、
利用者の音声を入力する音声入力ステップと、
楽器の演奏情報を入力する演奏入力ステップと、
その演奏入力ステップにより入力された演奏情報のコードを判定するコード判定ステップと、
前記音声入力ステップにより入力された音声のピッチに近い音名の音が前記コード判定ステップにより判定されたコードの構成音の中にある場合、その構成音以外の1又は2以上の構成音と同じ音名で発音されるように、前記音声入力ステップにより入力された音声のピッチをシフトし、前記音声入力ステップにより入力された音声のピッチに近い音名の音が前記コード判定ステップにより判定されたコードの構成音の中にない場合、前記キー記憶手段に記憶されたキーに基づくスケールの構成音のうち、前記音声入力ステップにより入力された音声のピッチに近い音名の音からピッチ差のある1又は2以上の構成音と同じ音名で発音されるように、前記音声入力ステップにより入力された音声のピッチをシフトするピッチシフトステップと、
そのピッチシフトステップによりシフトされたピッチ音と、前記音声入力ステップにより入力された音声とを出力する出力ステップとを備え、入力音声に応じたハーモニーを生成することを特徴とするプログラム。
【請求項7】
記憶部を備えたコンピューターに、入力音声に応じたハーモニーを生成させるプログラムにおいて、
前記記憶部を演奏楽曲のキーを記憶するキー記憶手段として機能させ、
利用者の音声を入力する音声入力ステップと、
楽器の演奏情報を入力する演奏入力ステップと、
その演奏入力ステップにより入力された演奏情報のコードを判定するコード判定ステップと、
前記音声入力ステップにより入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にある場合、その構成音からピッチ差のある1又は2以上の構成音と同じ音名で発音されるように、前記音声入力ステップにより入力された音声のピッチをシフトし、前記音声入力ステップにより入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にない場合、前記コード判定ステップにより判定されたコードの構成音のうち、前記音声入力ステップにより入力された音声のピッチに近い音名の音以外の1又は2以上の構成音と同じ音名で発音されるように、前記音声入力ステップにより入力された音声のピッチをシフトするピッチシフトステップと、
そのピッチシフトステップによりシフトされたピッチ音と、前記音声入力ステップにより入力された音声とを出力する出力ステップとを備え、入力音声に応じたハーモニーを生成することを特徴とするプログラム。
【請求項8】
記憶部を備えたコンピューターに、入力音声に応じたハーモニーを生成させるプログラムにおいて、
前記記憶部を演奏楽曲のキーを記憶するキー記憶手段として機能させ、
利用者の音声を入力する音声入力ステップと、
楽器の演奏情報を入力する演奏入力ステップと、
その演奏入力ステップにより入力された演奏情報のコードを判定するコード判定ステップと、
前記コード判定ステップにより判定されたコードと前記キー記憶手段に記憶されたキーとに基づいて、前記音声入力ステップにより入力された音声のピッチをシフトするピッチシフトステップと、
前記コード判定ステップにより判定されたコードに優先して前記キー記憶手段に記憶されたキーに基づいて前記音声入力ステップにより入力された音声のピッチを前記ピッチシフトステップによってシフトするか、前記キー記憶手段に記憶されたキーに優先して前記コード判定ステップにより判定されたコードに基づいて前記音声入力ステップにより入力された音声のピッチを前記ピッチシフトステップによってシフトするかを切り替える切替ステップと、
前記ピッチシフトステップによりシフトされたピッチ音と、前記音声入力ステップにより入力された音声とを出力する出力ステップとを備え、入力音声に応じたハーモニーを生成することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ハーモニー生成装置およびそのプログラムに関するものである。
【背景技術】
【0002】
特許文献1には、カラオケ装置に用いられるハーモニー生成装置が開示されている。該ハーモニー生成装置は、歌唱者のボーカル音を入力し、そのボーカル音のピッチを演奏楽曲のキー及びスケールに沿って3度上または5度上にピッチシフトする。このピッチシフトしたハーモニー音とボーカル音とを合成して出力することにより、調和したハーモニーを実現している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、該ハーモニー生成装置が生成するハーモニー音は、常にボーカル音から3度上または5度上の音なので、ボーカル音とハーモニー音との音高差が常に固定されることとなり、ハーモニーが機械的で不自然なものとなるという問題点があった。
【0005】
本発明は、上記問題点を解決するためになされたものであり、自然なハーモニー音を生成できるハーモニー生成装置およびそのプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
この目的を達成するために本発明のハーモニー生成装置は、音声を入力する音声入力手段と、楽器の演奏情報を入力する演奏入力手段と、その演奏入力手段へ入力された演奏情報のコードを判定するコード判定手段と、演奏楽曲のキーを記憶するキー記憶手段と、前記音声入力手段へ入力された音声のピッチに近い音名の音が前記コード判定手段により判定されたコードの構成音の中にある場合、その構成音以外の1又は2以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトし、前記音声入力手段へ入力された音声のピッチに近い音名の音が前記コード判定手段により判定されたコードの構成音の中にない場合、前記キー記憶手段に記憶されたキーに基づくスケールの構成音のうち、前記音声入力手段へ入力された音声のピッチに近い音名の音からピッチ差のある1又は2以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトするピッチシフト手段と、そのピッチシフト手段によりシフトされたピッチ音と、前記音声入力手段へ入力された音声とを出力する出力手段とを備えている。
本発明の別のハーモニー生成装置は、音声を入力する音声入力手段と、楽器の演奏情報を入力する演奏入力手段と、その演奏入力手段へ入力された演奏情報のコードを判定するコード判定手段と、演奏楽曲のキーを記憶するキー記憶手段と、前記音声入力手段へ入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にある場合、その構成音からピッチ差のある1又は2以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトし、前記音声入力手段へ入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にない場合、前記コード判定手段により判定されたコードの構成音のうち、前記音声入力手段へ入力された音声のピッチに近い音名の音以外の1又は2以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトするピッチシフト手段と、そのピッチシフト手段によりシフトされたピッチ音と、前記音声入力手段へ入力された音声とを出力する出力手段とを備えている。
本発明の更に別のハーモニー生成装置は、音声を入力する音声入力手段と、楽器の演奏情報を入力する演奏入力手段と、その演奏入力手段へ入力された演奏情報のコードを判定するコード判定手段と、演奏楽曲のキーを記憶するキー記憶手段と、前記コード判定手段により判定されたコードと前記キー記憶手段に記憶されたキーとに基づいて、前記音声入力手段へ入力された音声のピッチをシフトするピッチシフト手段と、前記コード判定手段により判定されたコードに優先して前記キー記憶手段に記憶されたキーに基づいて前記音声入力手段へ入力された音声のピッチを前記ピッチシフト手段によってシフトするか、前記キー記憶手段に記憶されたキーに優先して前記コード判定手段により判定されたコードに基づいて前記音声入力手段へ入力された音声のピッチを前記ピッチシフト手段によってシフトするかを切り替える切替手段と、前記ピッチシフト手段によりシフトされたピッチ音と、前記音声入力手段へ入力された音声とを出力する出力手段とを備えている。
なお、出力手段は、音声入力手段へ入力された音声にリバーブやピッチシフトなどのエフェクト効果処理を別途施して出力するようにしても良い。
【0007】
また本発明のプログラムは、記憶部を備えたコンピューターに、入力音声に応じたハーモニーを生成させるものであり、前記記憶部を演奏楽曲のキーを記憶するキー記憶手段として機能させ、利用者の音声を入力する音声入力ステップと、楽器の演奏情報を入力する演奏入力ステップと、その演奏入力ステップにより入力された演奏情報のコードを判定するコード判定ステップと、前記音声入力ステップにより入力された音声のピッチに近い音名の音が前記コード判定ステップにより判定されたコードの構成音の中にある場合、その構成音以外の1又は2以上の構成音と同じ音名で発音されるように、前記音声入力ステップにより入力された音声のピッチをシフトし、前記音声入力ステップにより入力された音声のピッチに近い音名の音が前記コード判定ステップにより判定されたコードの構成音の中にない場合、前記キー記憶手段に記憶されたキーに基づくスケールの構成音のうち、前記音声入力ステップにより入力された音声のピッチに近い音名の音からピッチ差のある1又は2以上の構成音と同じ音名で発音されるように、前記音声入力ステップにより入力された音声のピッチをシフトするピッチシフトステップと、そのピッチシフトステップによりシフトされたピッチ音と、前記音声入力ステップにより入力された音声とを出力する出力ステップとを備え、入力音声に応じたハーモニーを生成するものである。
本発明の別のプログラムは、記憶部を備えたコンピューターに、入力音声に応じたハーモニーを生成させるものであり、前記記憶部を演奏楽曲のキーを記憶するキー記憶手段として機能させ、利用者の音声を入力する音声入力ステップと、楽器の演奏情報を入力する演奏入力ステップと、その演奏入力ステップにより入力された演奏情報のコードを判定するコード判定ステップと、前記音声入力ステップにより入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にある場合、その構成音からピッチ差のある1又は2以上の構成音と同じ音名で発音されるように、前記音声入力ステップにより入力された音声のピッチをシフトし、前記音声入力ステップにより入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にない場合、前記コード判定ステップにより判定されたコードの構成音のうち、前記音声入力ステップにより入力された音声のピッチに近い音名の音以外の1又は2以上の構成音と同じ音名で発音されるように、前記音声入力ステップにより入力された音声のピッチをシフトするピッチシフトステップと、そのピッチシフトステップによりシフトされたピッチ音と、前記音声入力ステップにより入力された音声とを出力する出力ステップとを備え、入力音声に応じたハーモニーを生成するものである。
本発明の更に別のプログラムは、記憶部を備えたコンピューターに、入力音声に応じたハーモニーを生成させるものであり、前記記憶部を演奏楽曲のキーを記憶するキー記憶手段として機能させ、利用者の音声を入力する音声入力ステップと、楽器の演奏情報を入力する演奏入力ステップと、その演奏入力ステップにより入力された演奏情報のコードを判定するコード判定ステップと、前記コード判定ステップにより判定されたコードと前記キー記憶手段に記憶されたキーとに基づいて、前記音声入力ステップにより入力された音声のピッチをシフトするピッチシフトステップと、前記コード判定ステップにより判定されたコードに優先して前記キー記憶手段に記憶されたキーに基づいて前記音声入力ステップにより入力された音声のピッチを前記ピッチシフトステップによってシフトするか、前記キー記憶手段に記憶されたキーに優先して前記コード判定ステップにより判定されたコードに基づいて前記音声入力ステップにより入力された音声のピッチを前記ピッチシフトステップによってシフトするかを切り替える切替ステップと、前記ピッチシフトステップによりシフトされたピッチ音と、前記音声入力ステップにより入力された音声とを出力する出力ステップとを備え、入力音声に応じたハーモニーを生成するものである。
なお、出力ステップは、音声入力ステップにより入力された音声にリバーブやピッチシフトなどのエフェクト効果処理を別途施して出力するようにしても良い。
【図面の簡単な説明】
【0008】
【
図1】一実施形態であるハーモニー生成装置の機能ブロック図である。
【
図2】ハーモニー生成装置の電気的構成を示すブロック図である。
【
図3】(a)は、スケールテーブルを模式的に示した図であり、(b)は、コードテーブルを模式的に示した図である。
【
図5】ハーモニー生成処理のフローチャートである。
【
図6】(a)は、コード→シフト量算出処理のフローチャートであり、(b)は、その処理内容を説明するための模式図である。
【
図8】(a)は、スケール→シフト量算出処理のフローチャートであり、(b)は、その処理内容を説明するための模式図である。
【発明を実施するための形態】
【0009】
以下、好ましい実施例について、添付図面を参照して説明する。本実施形態のハーモニー生成装置1は、入力された音声と楽器で演奏されるコードとに基づいて入力された音声をシフトさせたピッチ音である、第1ハーモニー音および第2ハーモニー音(以下「第1及び第2ハーモニー音」と略す)を生成し、その第1及び第2ハーモニー音と入力された音声とを混ぜ合わせてハーモニー音として出力する装置である。まず、
図1を参照してハーモニー生成装置1の機能を説明する。
【0010】
図1は、一実施形態であるハーモニー生成装置1の機能ブロック図である。
図1に示す通り、ハーモニー生成装置1は、音声を入力する音声入力手段10と、電気ギターや電子ピアノ等の楽器の生演奏(即ち、楽器への演奏者によるその時々の演奏)に基づいた演奏情報を入力する演奏入力手段11と、コード判定手段12と、キー推定手段13と、キー記憶手段14と、切替手段15と、ピッチシフト手段16と、出力手段21とを有している。
【0011】
コード判定手段12は、演奏入力手段11からの演奏情報に基づいてコード(和音)を判定する機能であり、
図2で後述のCPU30によって実現される。キー推定手段13は、そのコード判定手段12で判定されたコードに基づいて、演奏楽曲のスケール(音階)のキー(主音)を推定する機能であり、CPU30によって実現される。キー記憶手段14は、そのキー推定手段13で推定されたキーを記憶する機能であり、
図2で後述の推定キーメモリ32cによって実現される。切替手段15は、コード判定手段12で判定されたコードに優先してキー記憶手段14に記憶されたキーに基づいて第1及び第2ハーモニー音を生成するか、キー記憶手段14に記憶されたキーに優先してコード判定手段12で判定されたコードに基づいて第1及び第2ハーモニー音を生成するか、を切り替える機能であり、
図2の設定ボタン33によって実現される。
【0012】
ピッチシフト手段16は、音声入力手段10から入力された音声、コード判定手段12で判定されたコード、キー記憶手段14に記憶されたキー及び切替手段15からの演算モードに基づいて、音声入力手段10で入力された音声のピッチをシフトしたピッチ音である、第1及び第2ハーモニー音を生成する機能であり、CPU30及びDSP35(
図2)によって実現される。ピッチシフト手段16は、更に、ピッチ検出17と、シフト量演算18と、第1ピッチシフト19と、第2ピッチシフト20とを有する。
【0013】
ピッチ検出17は、音声入力手段10から入力された音声のピッチを検出する機能であり、シフト量演算18は、そのピッチ検出17からのピッチ、コード判定手段12で判定されたコード、キー記憶手段14に記憶されたキー及び切替手段15からの演算モードに基づき、第1及び第2ハーモニー音を生成するためのシフト量である第1シフト量および第2シフト量(以下「第1及び第2シフト量」と略す)を演算する機能である。第1ピッチシフト19は、音声入力手段10から入力された音声のピッチを第1シフト量に基づいてシフトすることで、第1ハーモニー音を生成する機能であり、第2ピッチシフト20は、音声入力手段10から入力された音声のピッチを第2シフト量に基づいてシフトすることで、第2ハーモニー音を生成する機能である。
【0014】
ピッチシフト手段16は、まず、シフト量演算18によって、ピッチ検出17からのピッチ、コード判定手段12で判定されたコード及びキー記憶手段14に記憶されたキーに基づいた第1及び第2シフト量が算出される。そして、第1及び第2ピッチシフト19,20によって、音声入力手段10から入力された音声から第1及び第2シフト量に基づいて第1及び第2ハーモニー音が生成される。
【0015】
出力手段21は、音声入力手段10から入力された音声と、ピッチシフト手段16からの第1及び第2ハーモニー音とを混ぜ合わせたハーモニー音を出力する機能であり、CPU30及びDSP35によって実現される。
【0016】
以上よりハーモニー生成装置1は、ピッチシフト手段16によって、音声入力手段10から入力された音声、コード判定手段12で判定されたコード、キー記憶手段1に記憶されたキー及び切替手段15からの演算モードに基づいて第1及び第2ハーモニー音が生成される。ここで、楽器の生演奏によってコードは時々刻々と変化するため、ハーモニー生成装置1は楽器で演奏されるコードを先読みできない。そこで、コード判定手段12によって、演奏入力手段11から入力される楽器の演奏情報に基づいてコードが判定され、そのコードに基づいて第1及び第2ハーモニー音が生成される。これにより、第1及び第2ハーモニー音は、時々刻々と変化するコードに基づいて時々刻々と変化するので、該第1及び第2ハーモニー音と音声入力手段10によって入力された音声とを混ぜ合わせて出力されたハーモニー音は、機械的ではない、変化の富んだ自然なハーモニー音とできる。
【0017】
また、切替手段15からの演算モードに応じて、コード判定手段12で判定されたコードに優先してキー記憶手段14に記憶されたキーに基づいて第1及び第2ハーモニー音を生成するか、キー記憶手段14に記憶されたキーに優先してコード判定手段12で判定されたコードに基づいて第1及び第2ハーモニー音を生成するかが切り替えられる。これにより、楽器で演奏している曲の曲調等に合致したハーモニー音を出力できる。加えて、演奏中の曲の進行(転調や楽器の無演奏等)に応じて適宜演算モードを変更することで、曲の進行に対して柔軟で表現豊かなハーモニー音を出力できる。
【0018】
次に
図3,
図4を参照して、ハーモニー生成装置1の電気的構成を説明する。
図3は、ハーモニー生成装置1の電気的構成を示すブロック図である。ハーモニー生成装置1は、CPU30と、フラッシュROM31と、RAM32と、ハーモニー生成装置1の各種の設定をするための操作子である設定ボタン33(
図1の切替手段15の一例)と、音声を入力するマイクロフォンMと、入力装置34と、Digital Signal Processor35(以下「DSP35」と称す)とを有し、それぞれバスライン36を介して接続される。また、DSP35にはデジタルアナログコンバータ(DAC)37が接続され、そのDAC37にはアンプ38が接続され、アンプ38にはスピーカ39が接続される。
【0019】
CPU30は、バスライン36により接続された各部を制御する演算装置である。フラッシュROM31は書き換え可能な不揮発性のメモリであり、制御プログラム31aと、スケールテーブル31bと、コードテーブル31cとが設けられる。CPU30によって制御プログラム31aが実行されると、
図4のメイン処理が実行される。スケールテーブル31bは、各メジャースケールに含まれる音名が記憶されるデータテーブルである。
図3(a)を参照して、スケールテーブル31bを説明する。
【0020】
図3(a)は、スケールテーブル31bを模式的に示した図である。スケールテーブル31bには、各メジャースケールに含まれる音名が記憶される。例えば、Cメジャースケールには、ド、レ、ミ、ファ、ソ、ラ、シ、ドが含まれる。従って、スケールテーブル31bにおけるCメジャースケールに該当する領域(
図3(a)では「C」と表現)であって、これらの音名に該当する領域に対して、Cメジャースケールに含まれることを示す「○」が記憶される。一方で、#ド(ドの半音上の音を表す、他の音名も同様)、#レ、#ファ、#レ、#ソ、#ラは、Cメジャースケールに含まれない。従って、スケールテーブル31bにおけるCメジャースケールに該当する領域であって、これらの音名に該当する領域に対してCメジャースケールに含まれないことを示す「×」がそれぞれ記憶される。
【0021】
スケールテーブル31bには、Cメジャースケールと同様にC#、D、D#、E等の他のメジャースケールに対しても、それぞれのメジャースケールに含まれる音名には「○」が、含まれない音名には「×」がそれぞれ記憶される。
【0022】
図2に戻る。コードテーブル31cは、各コード(和音)に含まれる音名が記憶されるデータテーブルである。
図3(b)を参照して、スケールテーブル31bを説明する。
【0023】
図3(b)は、コードテーブル31cを模式的に示した図である。コードテーブル31cには、各コードに含まれる音名が記憶される。例えば、Cメジャーコード(C)には、ド、ミ、ソが含まれる。従って、コードテーブル31cにおけるCメジャーコードに該当する領域(
図3(b)では「C」と表現)であって、これらの音名に該当する領域に対して、Cメジャーコードに含まれることを示す「○」がそれぞれ記憶される。一方で、#ド、レ、#レ、ファ、#ファ、#ソ、ラ、#ラ、シは、Cメジャーコードに含まれない。従って、コードテーブル31cにおけるCメジャーコードに該当する領域であって、これらの音名に該当する領域に対して、Cメジャーコードに含まれないことを示す「×」が記憶される。
【0024】
コードテーブル31cには、Cメジャーコードの他に、Cセブンスコード(C7)、Cメジャーセブンスコード(CM7)、Cオーギュメントコード(Caug)、Cマイナーコード(Cm)、Cマイナーセブンスコード(Cm7)、Cディミニッシュコード(Cdim)、Cマイナーセブンス・フラットファイブコード(Cm7♭5)等に該当する領域に対して、それぞれのスケールに含まれる音名には「○」が、含まれない音名には「×」がそれぞれ記憶される。また、DやE等によるコードも、Cと同様に記憶される。
【0025】
更にコードテーブル31cに記憶されるコードは、聴感上の印象においてメジャーコードに類似している「メジャー系」と、聴感上の印象においてマイナーコードに類似している「マイナー系」との、2つのコード種別に分類される。本実施形態では、メジャーコード、セブンスコード、メジャーセブンスコード及びオーギュメントコード等が、メジャー系のコード種別に分類され、マイナーコード、マイナーセブンスコード、ディミニッシュコード及びマイナーセブンス・フラットファイブコード等が、マイナー系のコード種別に分類される。
【0026】
図2に戻る。RAM32は、CPU30が制御プログラム31a等のプログラム実行時に各種のワークデータやフラグ等を書き換え可能に記憶するメモリであり、マイクロフォンMから入力された音声のピッチが記憶されるピッチメモリ32aと、スケールのキーが記憶されるキーメモリ32bと、後述の入力装置34から入力された演奏情報に基づいて推定されたキーである、推定キーが記憶される推定キーメモリ32c(
図1のキー記憶手段14の一例)と、後述の入力装置34から入力された演奏情報から判定されたコードが記憶されるコードメモリ32dと、マイクロフォンMから入力された音声に対するピッチシフト量が記憶される第1シフト量メモリ32e及び第2シフト量メモリ32fと、コードメモリ32dに記憶されるコードのコード種別(メジャー系、マイナー系)が記憶されるコード種別メモリ32gとを有している。
【0027】
入力装置34は、電子楽器や電気楽器等の楽器からの演奏情報を入力する装置である。本実施形態では、入力装置34には電気ギターGが接続され、電気ギターGの生演奏に基づく演奏情報が、入力装置34を介してハーモニー生成装置1へ入力される。なお、入力装置34に接続される楽器は電気ギターGに限られるものではなく、電気ベースや電子ピアノ、電子オルガン等の他の楽器を接続しても良い。
【0028】
DSP35は、第1及び第2ハーモニー音を生成し、該第1及び第2ハーモニー音とマイクロフォンMから入力された音声とを合成するための演算装置である。DAC37は、DSP35から入力された波形データを、アナログ波形データに変換する変換装置である。アンプ38は、該DAC37から出力されたアナログ波形データを、所定の利得で増幅する増幅装置であり、スピーカ39は、アンプ38で増幅されたアナログ波形データを楽音として放音(出力)する出力装置である。
【0029】
次に、
図4~
図8を参照して、CPU30で実行されるメイン処理について説明する。
図4は、メイン処理のフローチャートである。メイン処理は、ハーモニー生成装置1の電源投入後に実行される。メイン処理はまず、マイクロフォンMから取得された音声のピッチを取得し、ピッチメモリ32aに保存する(S1)。かかるS1の処理を実行するCPU30が、
図1におけるピッチシフト手段16のピッチ検出17の一例である。
【0030】
S1の処理の後、入力装置34から入力された電気ギターGの演奏情報から、コードを判定し、コードメモリ32dへ保存する(S2)。かかるS2の処理を実行するCPU30が、
図1におけるコード判定手段12の一例である。
【0031】
S2の処理の後、コードメモリ32dのコードに基づき、電気ギターGで演奏されている曲のスケールにおけるキーを推定する(S3)。具体的には、所定時間(例えば30秒間)に取得されるコードメモリ32dのコードで用いられる音を、コードテーブル31cで参照して収集する。そして、所定時間内で収集された音で構成される、最も類似する音階のスケールをスケールテーブル31bから推定し、そのスケールのキーを取得する。
【0032】
S3の処理の後、S3の処理でキーが推定できたかを確認し(S4)、S3の処理でキーが推定できた場合は(S4:Yes)、そのキーを推定キーメモリ32cへ保存する(S5)。このようにして、電気ギターGで演奏されているコードに基づいたキー、即ち推定キーが推定キーメモリ32cに記憶される。一方で、S3の処理でキーが推定できていない場合は(S4:No)、S5の処理をスキップする。これらS3~S5の処理を実行するCPU30が、
図1におけるキー推定手段13の一例である。
【0033】
S4,S5の処理の後、設定ボタン33で設定されているキー選択モードが「キー自動選択モード」であるかを確認する(S6)。設定ボタン33で設定されるキー選択モードとは、
図5で後述のハーモニー生成処理における、マイクロフォンMから入力された音声をシフトする際のシフト量である第1シフト量および第2シフト量(以下「第1及び第2シフト量」と略す)の算出において、どのキーを用いるかを切り替えるためのモードである。本実施形態では、設定ボタン33で予め設定されているキー、即ち設定キーに基づいて第1及び第2シフト量が算出される「設定キーモード」と、推定キーメモリ32cに記憶されている推定キーの状態によって、設定キーと推定キーメモリ32cの推定キーとのいずれかに基づいて第1及び第2シフト量の算出する「キー自動選択モード」とが設けられる。
【0034】
S6の処理において、設定ボタン33で設定されているキー選択モードが「キー自動選択モード」である場合は(S6:Yes)、まず、推定キーメモリ32cにキーが記憶されているかを確認する(S7)。S7の処理では、ハーモニー生成装置1の電源投入直後や、ハーモニー生成装置1の電源投入後から電気ギターGが演奏されていない場合等、S3の処理によって推定キーが推定キーメモリ32cに保存されていない場合があるので、推定キーメモリ32cの記憶状態(推定キーが記憶されているか、否か)を確認する。
【0035】
S7の処理において、推定キーメモリ32cにキーが記憶されている場合は(S7:Yes)、推定キーメモリ32cの推定キーをキーメモリ32bへ保存する(S8)。一方で、推定キーメモリ32cにキーが記憶されていない場合は(S7:Yes)、設定ボタン33で設定されている、設定キーをキーメモリ32bへ保存する(S9)。これらS8,S9の処理で設定されたキーメモリ32bのキーがハーモニー生成処理における第1及び第2シフト量の算出に用いられる。
【0036】
即ち、キー選択モードがキー自動選択モードである場合は、ハーモニー生成装置1の電源投入後から、S3~S5の処理によって推定キーが推定されるまでは、設定ボタン33で予め設定されている設定キーに基づいて第1及び第2シフト量が算出される。従って、推定キーが推定されていないことで、第1及び第2シフト量が算出されない事態を抑制できる。そして、推定キーが推定された後は、推定キーに基づいて第1及び第2シフト量が算出される。よって、推定キーが推定された後は、電気ギターGで演奏されているコードに基づいた、より自然なハーモニー音を出力できる。
【0037】
また、S3~S5の処理によって推定キーの推定は繰り返し実行されるので、電気ギターGの演奏している曲の調が転調し、メジャースケールが変化した場合でも、S3の処理によって転調後の曲のメジャースケールのキーが推定される。従って、電気ギターGの演奏している曲が転調したとしても、その転調後のキーに基づいたハーモニー音が出力されるので、電気ギターGの演奏している曲との調和したハーモニー音とできる。
【0038】
S8,S9の処理の後、ハーモニー生成処理を実行する(S10)。ここで、
図5~
図8を参照して、ハーモニー生成処理を説明する。
【0039】
図5は、ハーモニー生成処理のフローチャートである。ハーモニー生成処理は、ピッチメモリ32aのピッチと、コードメモリ32dのコードと、キーメモリ32bのキーによるメジャースケールとに基づいて、第1及び第2シフト量を算出し、それら第1及び第2シフト量によって、マイクロフォンMから入力された音声のピッチをシフトしたものを入力された音声と混ぜ合わせて、ハーモニー音として出力する処理である。
【0040】
ハーモニー生成処理はまず、設定ボタン33に設定されている演算モードを確認する(S20)。本実施形態において演算モードは、モード1~モード4が設けられ、コードメモリ32dのコードに基づいて第1及び第2シフト量を算出するモード1と、コードメモリ32dのコードのコード種別(メジャー系、マイナー系)に基づいて第1及び第2シフト量を算出するモード2と、コードメモリ32dのコードと、キーメモリ32bに記憶されるキーのスケールとに基づいて第1及び第2シフト量を算出するモード3,4とが設けられる。
【0041】
モード3,4のうち、モード3においては、キーメモリ32bのキーのスケールよりもコードメモリ32dのコードを優先して第1及び第2シフト量が算出され、モード4においては、コードメモリ32dのコードよりもキーメモリ32bのキーのスケールを優先して第1及び第2シフト量が算出される。
【0042】
設定ボタン33に設定された演算モードが、モード1である場合は(S20:モード1)、コード→シフト量算出処理を実行する(S21)。
図6を参照してコード→シフト量算出処理を説明する。
【0043】
図6(a)は、コード→シフト量算出処理のフローチャートであり、
図6(b)は、その処理内容を説明するための模式図である。コード→シフト量算出処理は、コードメモリ32dのコードに基づいて第1及び第2シフト量を算出する処理である。コード→シフト量算出処理はまず、コードテーブル31cから、コードメモリ32dに記憶されているコードの構成音、即ち
図3(b)のコードテーブル31cにおいて「○」である音名の音を取得する(S30)。
図6(b)においては、コードメモリ32dにFコードが記憶されている例を示している。Fコードの構成音はファ、ラ、ドであるので、
図6(b)においては、ファ、ラ、ドの上にFコードの構成音であることを示す「○」が表記されている。
【0044】
S30の処理の後、コードテーブル31cから取得した構成音のうち、ピッチメモリ32aのピッチに最も近い音名の音を第1音とする(S31)。
図6(b)の例においては、ピッチメモリ32aのピッチがαHz(α>0)である場合、コードテーブル31cから取得した構成音の中で、αHzに最も近いピッチを取る「ファ」がS31の処理によって「第1音」とされる。この第1音を基準として、コードテーブル31cから取得した構成音であって、第1及び第2シフト量を算出するための第2音、第3音が以下のS32の処理によって取得される。
【0045】
具体的にS31の処理の後、コードテーブル31cから取得した構成音のうち、S31の処理で取得された第1音よりも上の音階に該当する音を、それぞれ順に第2音、第3音とする(S32)。
図6(b)において、S31の処理によって「ファ」が「第1音」に決定されたので、コードテーブル31cから取得した構成音において、「ファ」よりも1つ上の音階の音である「ラ」が第2音とされ、更に「ラ」よりも1つ上の音階の音である「ド」が第3音とされる。マイクロフォンMから入力された音声の音高を、このように取得された第2音および第3音と同等になるようにピッチシフトするための第1及び第2シフト量が、以下のS33,S34の処理によって算出される。
【0046】
S32の処理の後、第2音と第1音とのピッチ差である第1シフト量を算出して、第1シフト量メモリ32eに保存し(S33)、更に第3音と第1音とのピッチ差である第2シフト量を算出して、第2シフト量メモリ32fに保存して(S34)、コード→シフト量算出処理を終了する。かかるS21のコード→シフト量算出処理が、
図1におけるピッチシフト手段16のシフト量演算18の一例である。
【0047】
詳細は
図5のS26の処理で後述するが、マイクロフォンMから入力された音声のピッチを、第1及び第2シフト量によってシフトすることで、第1及び第2ハーモニー音が生成され、これらが入力された音声と混ぜ合わされて出力される。
【0048】
以上より、演奏モードがモード1である場合は、コード→シフト量算出処理によって、コードメモリ32dのコード、即ち電気ギターGで演奏されているコードに基づいて、第1及び第2シフト量が算出される。よって、第1及び第2ハーモニー音はコードメモリ32dのコードの構成音の一部(具体的には、第2音および第3音)に基づいた音高となるので、ハーモニー生成装置1から出力されるハーモニー音は、電気ギターGで演奏されるコードに調和したハーモニー音とできる。
【0049】
更に、電気ギターGで演奏されるコードは、曲の進行に伴って時々刻々と変化するため、ハーモニー生成装置1は電気ギターGで演奏されるコードを先読みできない。そこで、
図4のS2の処理によって、入力装置34から入力される演奏情報に基づいてコードが判定され、そのコードに基づいて第1及び第2シフト量が算出される。かかる第1及び第2シフト量によって生成される第1及び第2ハーモニー音は、電気ギターGで演奏されるコードの変化に基づいた、時々刻々と変化するものとできる。従って、ハーモニー生成装置1からは、時々刻々と変化するコードに調和しつつも、そのコードに応じて変化の富んだ自然なハーモニー音を出力できる。
【0050】
また、第1シフト量は、第2音と第1音とのピッチ差であり、第2シフト量は、第3音と第1音とのピッチ差であるので、マイクロフォンMから入力された音声と第1ハーモニー音との音高差は、第1音と第2音との音高差と同等とされ、該音声と第2ハーモニー音との音高差は、第1音と第3音との音高差と同等とされる。
【0051】
図5に戻る。S20の処理において、設定ボタン33に設定された演算モードが、モード2である場合は(S20:モード2)、まずコード種別処理を実行する(S22)。
図7を参照して、コード種別処理を説明する。
【0052】
図7は、コード種別処理のフローチャートである。コード種別処理は、コードメモリ32dのコードに基づいて、メジャー系かマイナー系かのコード種別を判定し、そのコード種別とキーメモリ32bのキーとに応じたコードをコードメモリ32dに保存する処理である。
【0053】
コード種別処理はまず、コードメモリ32dのコードをコードテーブル31cで参照し、コードメモリ32dのコードと一致するコードテーブル31cのコードのコード種別が、メジャー系かマイナー系かを確認する(S40)。S40の処理において、コードメモリ32dのコードがメジャー系である場合は(S40:Yes)、コード種別メモリ32gに「メジャー系」を保存し(S41)、コードメモリ32dのコードがメジャー系ではない、即ちマイナー系ある場合は(S40:No)、コード種別メモリ32gに「マイナー系」を保存する(S42)。
【0054】
S41,S42の処理の後、コードテーブル31cから、コード種別メモリ32gのコード種別において、先頭に記憶されるコードの構成音を取得する(S43)。
図3(b)のコードテーブル31cにおいて、コード種別メモリ32gのコード種別がメジャー系である場合は、S43の処理によってCコードのコード構成音が取得され、コード種別メモリ32gのコード種別がマイナー系である場合は、S43の処理によってCmコードのコード構成音が取得される。
【0055】
S43の処理の後、S43又は後述のS47の処理で取得したコードの構成音が、キーメモリ32bのキーに基づくメジャースケールで構成されているかを確認する(S44)。具体的には、キーメモリ32bのキーに基づくメジャースケールの構成音をスケールテーブル31b(
図3(a))から取得し、S43又はS47の処理で取得したコードの構成音が、取得したスケールの構成音に全て含まれているかを確認する。
【0056】
S44の処理において、S43又はS47の処理で取得したコードの構成音が、キーメモリ32bのキーに基づくメジャースケールで構成されている場合は(S44:Yes)、更に、ピッチメモリ32aのピッチに最も近い音名の音が、S43又はS47の処理で取得したコードの構成音に含まれているかを確認する(S45)。ピッチメモリ32aのピッチに最も近い音名の音が、S43又はS47の処理で取得したコードの構成音に含まれている場合は(S45:Yes)、S43又はS47の処理で取得したコードを、コードメモリ32dに保存する(S46)。
【0057】
S44の処理で、S43又はS47の処理で取得したコードの構成音がキーメモリ32bのキーに基づくメジャースケールで構成されていない場合(S44:No)、若しくはS45の処理で、ピッチメモリ32aのピッチに最も近い音名の音がS43又はS47の処理で取得したコードの構成音に含まれていない場合は(S45:No)、それぞれのコード種別における他のコードの構成音と比較するため、直前のS43又はS47の処理でコードテーブル31cから取得したコードの次のコードの構成音を取得し(S47)、S43の処理を繰り返す。そして、S46の処理の後、コード種別処理を終了して、
図6のハーモニー生成処理へ戻る。
【0058】
図5に戻る。S22のコード種別処理の後、
図6(a)のコード→シフト量算出処理(S21)を実行する。
【0059】
以上より、演算モードがモード2である場合は、S22のコード種別処理によって、予め記憶されているコードメモリ32dのコードからコード種別が取得され、取得されたコード種別におけるコードの構成音が、キーメモリ32bのキーに基づくメジャースケールに全て含まれているコードがコードメモリ32dに記憶される。そして、S21のコード→シフト量算出処理によって、そのコードメモリ32dのコードに基づいて第1及び第2シフト量が算出される。
【0060】
電気ギターGによって演奏されるコードの構成音は、必ずしもキーメモリ32bのキーに基づくメジャースケールの構成音に含まれない。従って、電気ギターGによって演奏されるコードに基づいて第1及び第2シフト量を算出すると、キーメモリ32bのキーに基づくメジャースケールの構成音から外れた第1及び第2ハーモニー音が生成されるので、演奏されている曲調から離れた音となる虞がある。
【0061】
そこで、電気ギターGによって演奏されるコードの構成音の全てが、キーメモリ32bのキーに基づくメジャースケールの構成音に含まれていない場合に、同一のコード種別の他のコードであって、ピッチメモリ32aのピッチに最も近い音名の構成音が含まれるコードによって第1及び第2シフト量が算出される。これら第1及び第2シフトに基づいて生成される第1及び第2ハーモニー音は、いずれもキーメモリ32bのキーに基づくメジャースケールに基づく音なので、ハーモニー生成装置1からは、演奏されている曲調との調和が取れたハーモニー音が出力できる。
【0062】
更に、第1及び第2ハーモニー音は、電気ギターGによって演奏されるコードと同一のコード種別のコードに基づく音であり、これらは聴感上の印象が類似した音である。従って、第1及び第2ハーモニー音と、電気ギターGによって演奏されるコードとを混ぜ合わせた場合の、聴感上の違和感を最小限に抑制できる。
【0063】
S20の処理において、設定ボタン33に設定された演算モードが、モード3である場合は(S20:モード3)、ピッチメモリ32aのピッチに最も近い音名の音が、コードメモリ32dのコードの構成音に含まれるかを確認する(S23)。具体的には、コードメモリ32dのコードの構成音の中で、ピッチメモリ32aのピッチに最も近い音名と同一の構成音が含まれているかが判断される。
【0064】
S23の処理において、ピッチメモリ32aのピッチに最も近い音名の音が、コードメモリ32dのコードの構成音に含まれる場合は(S23:Yes)、
図6(a)のコード→シフト量算出処理(S21)を実行し、コードメモリ32dのコードの構成音に含まれない場合は(S23:No)、スケール→シフト量算出処理を実行する(S24)。ここで、
図8を参照して、S24のスケール→シフト量算出処理を説明する。
【0065】
図8(a)は、スケール→シフト量算出処理のフローチャートであり、
図8(b)は、その処理内容を説明するための模式図である。スケール→シフト量算出処理は、キーメモリ32bのキーに基づくメジャースケールに基づいて、第1及び第2シフト量を算出する処理である。
【0066】
スケール→シフト量算出処理はまず、キーメモリ32bのキーに基づくメジャースケールの構成音、即ち
図3(a)のスケールテーブル31bにおいて「○」である音名の音を取得する(S50)。
図8(b)においては、キーメモリ32bのキーに「C(Cメジャー)」が記憶されている例を示している。Cメジャースケールの構成音はド、レ、ミ、ファ、ソ、ラ、シであるので、
図8(b)においても、これらの音名の上にCメジャースケールの構成音であることを示す「○」が表記されている。
【0067】
S50の処理の後、スケールテーブル31bから取得した構成音のうち、ピッチメモリ32aのピッチに最も近い音名の音を第1音とする(S51)。
図8(b)の例において、ピッチメモリ32aのピッチがβHz(β>0)である場合、スケールテーブル31bから取得した構成音の中で、βHzに最も近いピッチを取る「レ」がS51の処理によって「第1音」とされる。この第1音を1度とて、スケールテーブル31bから取得した構成音であって、第1及び第2シフト量を算出するための第2音、第3音が以下のS52の処理によって取得される。
【0068】
具体的にS51の処理の後、スケールテーブル31bから取得した構成音のうち、S31の処理で取得された第1音よりも3度、6度上の音を、それぞれ順に第2音、第3音とする(S52)。
図8(b)において、S51の処理によって「レ」が「第1音」に決定されたので、スケールテーブル31bから取得した構成音において、「レ」よりも3度上の音である「ファ」が第2音とされ、「レ」よりも6度上の音である「シ」が第3音とされる。マイクロフォンMから入力された音声の音高を、このように取得された第2音および第3音と同等になるようにピッチシフトするための第1及び第2シフト量が、以下のS53,S54の処理によって算出される。
【0069】
なお、第2音、第3音は、スケールテーブル31bから取得した構成音のうち第1音よりも3度、6度上の音に限られるものではなく、第2音を第1音よりも2度または4度以上差のある音としても良いし、第3音を4度、5度または7度以上差のある音としても良い。
【0070】
S52の処理の後、第2音と第1音とのピッチ差である第1シフト量を算出して、第1シフト量メモリ32eに保存し(S53)、更に第3音と第1音とのピッチ差である第2シフト量を算出して、第2シフト量メモリ32fに保存して(S54)、スケール→シフト量算出処理を終了する。かかるS24のスケール→シフト量算出処理が、
図1におけるピッチシフト手段16のシフト量演算18の一例である。
【0071】
スケール→シフト量算出処理によって算出された、第1及び第2シフト量に基づく第1及び第2ハーモニー音は、キーメモリ32bのキーに基づくメジャースケールの構成音の一部(具体的には、S52の処理で決定された第2音および第3音)に基づいた音高となる。従って、第1及び第2ハーモニー音によって、演奏されている曲調に調和したハーモニー音を出力できる。また、コード→シフト量算出処理で算出された第1及び第2シフト量とは異なり、スケール→シフト量算出処理によって算出された第1及び第2シフト量は、コードの変化に応じて変化しないので、第1及び第2ハーモニー音の変化を安定させることができる。
【0072】
また、
図6(a)のコード→シフト量算出処理と同様に、スケール→シフト量算出処理においても第1シフト量は、第2音と第1音とのピッチ差であり、第2シフト量は、第3音と第1音とのピッチ差であるので、マイクロフォンMから入力された音声と第1ハーモニー音との音高差は、第1音と第2音との音高差と同等とされ、該音声と第2ハーモニー音との音高差は、第1音と第3音との音高差と同等とされる。
【0073】
以上より、演奏モードがモード3である場合は、まず、ピッチメモリ32aのピッチに最も近い音名の音が、コードメモリ32dのコードの構成音に含まれるかが確認される。ピッチメモリ32aのピッチに最も近い音名の音が、コードメモリ32dのコードの構成音に含まれる場合は、コード→シフト量算出処理によって、コードメモリ32dのコードに基づいて第1及び第2シフト量が算出される。即ち、コードメモリ32dのコードに基づいた第1及び第2シフト量の算出が、キーメモリ32bのキーに基づくメジャースケールに基づいた第1及び第2シフト量の算出よりも優先されるので、コードメモリ32dのコードの変化に応じた、変化に富んだ第1及び第2ハーモニー音を優先して生成できる。
【0074】
一方で、ピッチメモリ32aのピッチに最も近い音名の音が、コードメモリ32dのコードの構成音に含まれない場合は、スケール→シフト量算出処理によって、キーメモリ32bのキーに基づくメジャースケールから第1及び第2シフト量が算出される。従って、コードメモリ32dのコードの構成音から第1及び第2シフト量が算出できない場合でも、キーメモリ32bのキーに基づくメジャースケールに応じた、即ち演奏されている曲調に調和した第1及び第2ハーモニー音を生成できるので、出力されるハーモニー音に対する聴感上の違和感を最小限に抑制できる。
【0075】
図5に戻る。S20の処理において、演算モードがモード4である場合は、ピッチメモリ32aに最も近い音名の音が、キーメモリ32bに基づくメジャースケールの構成音に含まれるかを確認する(S25)。具体的には、キーメモリ32bに基づくメジャースケールの構成音の中で、ピッチメモリ32aの最も近い音名と同一の構成音が含まれているかが判断される。
【0076】
S25の処理において、ピッチメモリ32aに最も近い音名の音が、キーメモリ32bに基づくメジャースケールの構成音に含まれる場合は(S25:Yes)、
図8(a)のスケール→シフト量算出処理(S24)を実行して、キーメモリ32bに基づくメジャースケールの構成音から第1及び第2シフト量を算出する。一方で、ピッチメモリ32aに最も近い音名の音が、キーメモリ32bに基づくメジャースケールの構成音に含まれない場合は(S25:No)、
図6(a)のスケール→シフト量算出処理(S24)を実行する。
【0077】
以上より、演奏モードがモード4である場合は、まず、ピッチメモリ32aのピッチに最も近い音名の音が、キーメモリ32bのキーに基づくメジャースケールの構成音に含まれるかが確認される。ピッチメモリ32aのピッチに最も近い音名の音が、該メジャースケールの構成音に含まれる場合は、スケール→シフト量算出処理によって、該メジャースケールに基づいて第1及び第2シフト量が算出される。即ち、該メジャースケールに基づいた第1及び第2シフト量の算出が、コードメモリ32dのコードに基づいた第1及び第2シフト量の算出よりも優先されるので、演奏されている曲調に調和した第1及び第2ハーモニー音を、優先して出力できる。
【0078】
一方で、ピッチメモリ32aのピッチに最も近い音名の音がキーメモリ32bのキーに基づくメジャースケールの構成音に含まれない場合は、コード→シフト量算出処理によって、コードメモリ32dのコードから第1及び第2シフト量が算出される。即ち、該メジャースケールの構成音から第1及び第2シフト量が算出できない場合でも、少なくともコードメモリ32dのコードに調和した第1及び第2ハーモニー音を生成できるので、出力されるハーモニー音に対する聴感上の違和感を最小限に抑制できる。
【0079】
S21,S24の処理の後、マイクロフォンMから入力された音声と、マイクロフォンMから入力された音声を第1シフト量メモリ32eの値だけピッチシフトした第1ハーモニー音と、マイクロフォンMから入力された音声を第2シフト量メモリ32fの値だけピッチシフトした第2ハーモニー音とを、混ぜ合わせて出力する(S26)。S26の処理が、
図1におけるピッチシフト手段16の第1ピッチシフト19と第2ピッチシフト20、及び出力手段21の一例である。S26の処理の後、ハーモニー生成処理を終了し、
図4のメイン処理へ戻る。
【0080】
このようにハーモニー生成処理では、設定ボタン33に設定されている演算モード(モード1~モード4)に応じて、それぞれ異なった態様の第1及び第2ハーモニー音が生成される。よって、演奏する曲の曲調等に合わせて演算モードを設定することで、その曲調に合致した態様のハーモニー音を出力できる。また、演奏中の曲の進行、例えば、転調や電気ギターGの無演奏等に応じて適宜演算モードを変更することで、曲の進行に対して柔軟で表現豊かなハーモニー音を出力できる。
【0081】
図4に戻る。S10のハーモニー生成処理の実行後は、S1以下の処理を繰り返す。
【0082】
以上、上記実施形態に基づき説明したが、種々の改良変更が可能であることは容易に推察できるものである。
【0083】
上記実施形態では、制御プログラム31aが組み込まれたハーモニー生成装置1を例示した。しかし、必ずしもこれに限られるものではなく、電子ピアノやシンセサイザー等の他の電子楽器や、パーソナルコンピュータやスマートフォン、タブレット端末等の情報処理装置に制御プログラム31aを組み込みことで、これらの装置からハーモニー音を出力する構成としても良い。
【0084】
上記実施形態では、ハーモニー生成装置1に入力装置34(
図2)を接続し、該入力装置34に接続された電気ギターG等の楽器の演奏情報を入力する構成とした。しかし、必ずしもこれに限られるものではなく、入力装置34の代わりにMIDIデータから演奏情報を入力するMIDIインターフェースを接続し、該MIDIインターフェースから入力されたMIDIデータによる演奏情報に基づいて、ハーモニー音を生成する構成としても良い。このように構成することで、該MIDIインターフェースから入力されたMIDIデータによっても、楽器を演奏している場合と同様のハーモニー音を生成することができる。また、例えばカラオケの伴奏音に対するMIDIファイルからのMIDIデータを該MIDIインターフェースを介して入力すれば、カラオケの伴奏音のコード進行に基づいた自然なハーモニー音を、カラオケの歌唱と混ぜ合わせて出力できる。
【0085】
上記実施形態では、スケールテーブル31bに各メジャースケールに含まれる音名を記憶する構成とした。しかし、スケールテーブル31bに記憶されるスケールはメジャースケールに限られるものではなく、ハーモニックマイナースケール等のスケールを、メジャースケールと合わせて記憶する構成としても良いし、ハーモニックマイナースケール等の他のスケールのみを記憶する構成としても良い。
【0086】
上記実施形態では、S21のコード→シフト量算出処理(
図6(a))およびS24のスケール→シフト量算出処理(
図8(a))によって、第1及び第2シフト量の2のシフト量を算出して、第1及び第2ハーモニー音の2のハーモニー音を生成する構成とした。しかし、必ずしもこれに限られるものではなく、コード→シフト量算出処理およびスケール→シフト量算出処理によって1のシフト量を算出し、そのシフト量によって1のハーモニー音を生成しても良い。
【0087】
その場合、コード→シフト量算出処理においては、S30の処理でコードテーブル31cから取得した構成音であって、S31で取得した第1音よりも、上の音階の音に基づいてシフト量を算出しても良いし、第1音よりも下の音階の音に基づいてシフト量を算出しても良い。また、スケール→シフト量算出処理においては、S50の処理でスケールテーブル31bから取得した構成音であって、S51で取得した第1音よりも、3度または6度上の音に基づいてシフト量を算出しても良いし、第1音よりも3度または6度下の音に基づいてシフト量を算出しても良い。
【0088】
また、コード→シフト量算出処理およびスケール→シフト量算出処理によって、3以上のシフト量を算出し、それらシフト量によって3以上のハーモニー音を生成しても良い。
【0089】
上記実施形態では、S21のコード→シフト量算出処理によって、S30の処理でコードテーブル31cから取得したコードの構成音であって、S31で取得した第1音よりも、上の音階の2音に基づいて、第1及び第2シフト量を算出する構成とした。しかし、必ずしもこれに限られるものではなく、コードの構成音であって第1音よりも下の音階の2音をそれぞれ第2音、第3音として、第1及び第2シフト量を算出しても良いし、コードの構成音であって第1音よりも下の音階の音を第2音とし、第1音よりも上の音階の音を第3音として、第1及び第2シフト量を算出しても良い。
【0090】
上記実施形態では、S24のスケール→シフト量算出処理によって、S50の処理でスケールテーブル31bから取得した構成音であって、S51で取得した第1音よりも、3度、6度上の第2音、第3音に基づいて、第1及び第2シフト量を算出する構成とした。しかし、必ずしもこれに限られるものではなく、第1音よりも6度、3度下の音をそれぞれ第2音、第3音として第1及び第2シフト量を算出しても良い。また、第1音よりも3度下の音を第2音をとし、第1音よりも6度上の音を第3音として第1及び第2シフト量を算出しても良いし、第1音よりも6度下の音を第2音をとし、第1音よりも3度上の音を第3音として第1及び第2シフト量を算出しても良い。即ち、第1音との差が3度である音を第2音または第3音のいずれか一方とし、第1音との差が6度である音を第2音または第3音の残りの他方とすれば良い。
【0091】
上記実施形態では、
図5のハーモニー生成処理において、演奏モードがモード2の場合に限って、S21のコード→シフト量算出処理を実行する前に、S22のコード種別処理を実行する構成とした。しかし、必ずしもこれに限られるものではなく、演奏モードが他のモード(特にモード3,モード4)の場合においてもS21のコード→シフト量算出処理を実行する前に、S22のコード種別処理を実行する構成としても良い。このように構成することで、他のモードにおいてコード→シフト量算出処理で第1及び第2シフト量を算出する場合でも、モード2の場合と同様に、演奏されている曲調との調和が取れ、なおかつ電気ギターGによって演奏されるコードとを混ぜ合わせた場合の、聴感上の違和感が最小限に抑制されたハーモニー音を出力できる。
【0092】
上記実施形態では、
図5のS26の処理において、マイクロフォンMから入力された音声を、そのまま第1及び第2ハーモニー音とを混ぜ合わせて出力した。しかし、必ずしもこれに限られるものではなく、例えば、マイクロフォンMから入力された音声に対して、リバーブや第1及び第2シフト量に依らない別途のピッチシフト等のエフェクト効果処理を適用し、かかる音と第1及び第2ハーモニー音とを混ぜ合わせて出力しても良い。
【0093】
上記実施形態では、
図6(a),
図8(a)のコード→シフト量算出処理およびスケール→シフト量算出処理において、それぞれ第1及び第2シフト量を、第2音および第3音と、第1音とのそれぞれのピッチ差とした。しかし、必ずしもこれに限られるものではなく、第1及び第2シフト量を、第2音および第3音と、ピッチメモリ32aのピッチとのそれぞれのピッチ差としても良い。
【0094】
上記実施形態に挙げた数値は一例であり、他の数値を採用することは当然可能である。
【符号の説明】
【0095】
1 ハーモニー生成装置
10 音声入力手段
11 演奏入力手段
12,S2 コード判定手段、コード判定ステップ
13,S3~S5 キー推定手段、キー推定ステップ
14 キー記憶手段
33 設定ボタン(切替手段)
35 DSP(ピッチシフト手段、出力手段)
15 切替手段
16,S21,S24,S26 ピッチシフト手段、ピッチシフトステップ
21,S26 出力手段
G 電気ギター(楽器)
M マイクロフォン(音声入力手段)
31a 制御プログラム(プログラム)
32c 推定キーメモリ(キー記憶手段)
34 入力装置(演奏入力手段)