(57)【要約】【課題】自然なハーモニー音を生成できるハーモニー生成装置およびそのプログラムを提供すること。【解決手段】ハーモニー生成装置１は、マイクロフォンＭから入力された音声と、入力装置３４から入力された電気ギターＧの演奏情報から判定されたコードとに基づいて算出された第１及び第２シフト量によって、マイクロフォンＭから入力された音声がピッチシフトされた第１及び第２ハーモニー音が生成される。即ち、第１及び第２ハーモニー音は、時々刻々と変化する電気ギターＧのコードに基づいた音とできるので、かかる第１及び第２ハーモニー音と、マイクロフォンＭから入力された音声とを混ぜ合わせたハーモニー音は、電気ギターＧのコードに応じて変化の富んだ自然なハーモニー音とできる。【選択図】図５
2020034627.tif 000002
【特許請求の範囲】
【請求項１】
音声を入力する音声入力手段と、
楽器の演奏情報を入力する演奏入力手段と、
その演奏入力手段へ入力された演奏情報のコードを判定するコード判定手段と、
そのコード判定手段により判定されたコードに基づいて、前記音声入力手段へ入力された音声のピッチをシフトするピッチシフト手段と、
そのピッチシフト手段によりシフトされたピッチ音と、前記音声入力手段へ入力された音声とを出力する出力手段とを備えていることを特徴とするハーモニー生成装置。
【請求項２】
前記ピッチシフト手段は、前記コード判定手段により判定されたコードの構成音のうち、前記音声入力手段へ入力された音声のピッチに近い音名の音以外の１又は２以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトすることを特徴とする請求項１記載のハーモニー生成装置。
【請求項３】
演奏楽曲のキーを記憶するキー記憶手段を備え、
前記ピッチシフト手段は、前記コード判定手段により判定されたコードと前記キー記憶手段に記憶されたキーとに基づいて、前記音声入力手段へ入力された音声のピッチをシフトすることを特徴とする請求項１記載のハーモニー生成装置。
【請求項４】
前記ピッチシフト手段は、
前記音声入力手段へ入力された音声のピッチに近い音名の音が前記コード判定手段により判定されたコードの構成音の中にある場合、その構成音以外の１又は２以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトし、
前記音声入力手段へ入力された音声のピッチに近い音名の音が前記コード判定手段により判定されたコードの構成音の中にない場合、前記キー記憶手段に記憶されたキーに基づくスケールの構成音のうち、前記音声入力手段へ入力された音声のピッチに近い音名の音からピッチ差のある１又は２以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトすることを特徴とする請求項３記載のハーモニー生成装置。
【請求項５】
前記ピッチシフト手段は、
前記音声入力手段へ入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にある場合、その構成音からピッチ差のある１又は２以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトし、
前記音声入力手段へ入力された音声のピッチに近い音名の音が前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にない場合、前記コード判定手段により判定されたコードの構成音のうち、前記音声入力手段へ入力された音声のピッチに近い音名の音以外の１又は２以上の構成音と同じ音名で発音されるように、前記音声入力手段へ入力された音声のピッチをシフトすることを特徴とする請求項３記載のハーモニー生成装置。
【請求項６】
前記コード判定手段により判定されたコードに優先して前記キー記憶手段に記憶されたキーに基づいて前記音声入力手段へ入力された音声のピッチをシフトするか、前記キー記憶手段に記憶されたキーに優先して前記コード判定手段により判定されたコードに基づいて前記音声入力手段へ入力された音声のピッチをシフトするかを切り替える切替手段を備えていることを特徴とする請求項３記載のハーモニー生成装置。
【請求項７】
前記コード判定手段により判定されたコードに基づいて、演奏楽曲のキーを推定するキー推定手段を備え、
前記キー記憶手段は、そのキー推定手段により推定されたキーを記憶することを特徴とする請求項３から６のいずれかに記載のハーモニー生成装置。
【請求項８】
前記コード判定手段は、前記音声入力手段へ入力された音声のピッチに近い音名の音を有するコードであって、そのコードの構成音のすべてが前記キー記憶手段に記憶されたキーに基づくスケールの構成音の中にあるコードを、演奏中のコードとして判定することを特徴とする請求項３から７のいずれかに記載のハーモニー生成装置。
【請求項９】
コンピューターに、入力音声に応じたハーモニーを生成させるプログラムにおいて、
利用者の音声を入力する音声入力ステップと、
楽器の演奏情報を入力する演奏入力ステップと、
その演奏入力ステップにより入力された演奏情報のコードを判定するコード判定ステップと、
そのコード判定ステップにより判定されたコードに基づいて、前記音声入力ステップにより入力された音声のピッチをシフトするピッチシフトステップと、
そのピッチシフトステップによりシフトされたピッチ音と、前記音声入力ステップにより入力された音声とを出力する出力ステップとを備え、入力音声に応じたハーモニーを生成することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハーモニー生成装置およびそのプログラムに関するものである。
【背景技術】
【０００２】
特許文献１には、カラオケ装置に用いられるハーモニー生成装置が開示されている。該ハーモニー生成装置は、歌唱者のボーカル音を入力し、そのボーカル音のピッチを演奏楽曲のキー及びスケールに沿って３度上または５度上にピッチシフトする。このピッチシフトしたハーモニー音とボーカル音とを合成して出力することにより、調和したハーモニーを実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２３４７８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、該ハーモニー生成装置が生成するハーモニー音は、常にボーカル音から３度上または５度上の音なので、ボーカル音とハーモニー音との音高差が常に固定されることとなり、ハーモニーが機械的で不自然なものとなるという問題点があった。
【０００５】
本発明は、上記問題点を解決するためになされたものであり、自然なハーモニー音を生成できるハーモニー生成装置およびそのプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
この目的を達成するために本発明のハーモニー生成装置は、音声を入力する音声入力手段と、楽器の演奏情報を入力する演奏入力手段と、その演奏入力手段へ入力された演奏情報のコードを判定するコード判定手段と、そのコード判定手段により判定されたコードに基づいて、前記音声入力手段へ入力された音声のピッチをシフトするピッチシフト手段と、そのピッチシフト手段によりシフトされたピッチ音と、前記音声入力手段へ入力された音声とを出力する出力手段とを備えている。なお、出力手段は、音声入力手段へ入力された音声にリバーブやピッチシフトなどのエフェクト効果処理を別途施して出力するようにしても良い。
【０００７】
また本発明のプログラムは、コンピューターに、入力音声に応じたハーモニーを生成させるものであり、利用者の音声を入力する音声入力ステップと、楽器の演奏情報を入力する演奏入力ステップと、その演奏入力ステップにより入力された演奏情報のコードを判定するコード判定ステップと、そのコード判定ステップにより判定されたコードに基づいて、前記音声入力ステップにより入力された音声のピッチをシフトするピッチシフトステップと、そのピッチシフトステップによりシフトされたピッチ音と、前記音声入力ステップにより入力された音声とを出力する出力ステップとを備え、入力音声に応じたハーモニーを生成するものである。なお、出力ステップは、音声入力ステップにより入力された音声にリバーブやピッチシフトなどのエフェクト効果処理を別途施して出力するようにしても良い。
【図面の簡単な説明】
【０００８】
【図１】一実施形態であるハーモニー生成装置の機能ブロック図である。
【図２】ハーモニー生成装置の電気的構成を示すブロック図である。
【図３】（ａ）は、スケールテーブルを模式的に示した図であり、（ｂ）は、コードテーブルを模式的に示した図である。
【図４】メイン処理のフローチャートである。
【図５】ハーモニー生成処理のフローチャートである。
【図６】（ａ）は、コード→シフト量算出処理のフローチャートであり、（ｂ）は、その処理内容を説明するための模式図である。
【図７】コード種別処理のフローチャートである。
【図８】（ａ）は、スケール→シフト量算出処理のフローチャートであり、（ｂ）は、その処理内容を説明するための模式図である。
【発明を実施するための形態】
【０００９】
以下、好ましい実施例について、添付図面を参照して説明する。本実施形態のハーモニー生成装置１は、入力された音声と楽器で演奏されるコードとに基づいて入力された音声をシフトさせたピッチ音である、第１ハーモニー音および第２ハーモニー音（以下「第１及び第２ハーモニー音」と略す）を生成し、その第１及び第２ハーモニー音と入力された音声とを混ぜ合わせてハーモニー音として出力する装置である。まず、図１を参照してハーモニー生成装置１の機能を説明する。
【００１０】
図１は、一実施形態であるハーモニー生成装置１の機能ブロック図である。図１に示す通り、ハーモニー生成装置１は、音声を入力する音声入力手段１０と、電気ギターや電子ピアノ等の楽器の生演奏（即ち、楽器への演奏者によるその時々の演奏）に基づいた演奏情報を入力する演奏入力手段１１と、コード判定手段１２と、キー推定手段１３と、キー記憶手段１４と、切替手段１５と、ピッチシフト手段１６と、出力手段２１とを有している。
【００１１】
コード判定手段１２は、演奏入力手段１１からの演奏情報に基づいてコード（和音）を判定する機能であり、図２で後述のＣＰＵ３０によって実現される。キー推定手段１３は、そのコード判定手段１２で判定されたコードに基づいて、演奏楽曲のスケール（音階）のキー（主音）を推定する機能であり、ＣＰＵ３０によって実現される。キー記憶手段１４は、そのキー推定手段１３で推定されたキーを記憶する機能であり、図２で後述の推定キーメモリ３２ｃによって実現される。切替手段１５は、コード判定手段１２で判定されたコードに優先してキー記憶手段１４に記憶されたキーに基づいて第１及び第２ハーモニー音を生成するか、キー記憶手段１４に記憶されたキーに優先してコード判定手段１２で判定されたコードに基づいて第１及び第２ハーモニー音を生成するか、を切り替える機能であり、図２の設定ボタン３３によって実現される。
【００１２】
ピッチシフト手段１６は、音声入力手段１０から入力された音声、コード判定手段１２で判定されたコード、キー記憶手段１４に記憶されたキー及び切替手段１５からの演算モードに基づいて、音声入力手段１０で入力された音声のピッチをシフトしたピッチ音である、第１及び第２ハーモニー音を生成する機能であり、ＣＰＵ３０及びＤＳＰ３５（図２）によって実現される。ピッチシフト手段１６は、更に、ピッチ検出１７と、シフト量演算１８と、第１ピッチシフト１９と、第２ピッチシフト２０とを有する。
【００１３】
ピッチ検出１７は、音声入力手段１０から入力された音声のピッチを検出する機能であり、シフト量演算１８は、そのピッチ検出１７からのピッチ、コード判定手段１２で判定されたコード、キー記憶手段１４に記憶されたキー及び切替手段１５からの演算モードに基づき、第１及び第２ハーモニー音を生成するためのシフト量である第１シフト量および第２シフト量（以下「第１及び第２シフト量」と略す）を演算する機能である。第１ピッチシフト１９は、音声入力手段１０から入力された音声のピッチを第１シフト量に基づいてシフトすることで、第１ハーモニー音を生成する機能であり、第２ピッチシフト２０は、音声入力手段１０から入力された音声のピッチを第２シフト量に基づいてシフトすることで、第２ハーモニー音を生成する機能である。
【００１４】
ピッチシフト手段１６は、まず、シフト量演算１８によって、ピッチ検出１７からのピッチ、コード判定手段１２で判定されたコード及びキー記憶手段１４に記憶されたキーに基づいた第１及び第２シフト量が算出される。そして、第１及び第２ピッチシフト１９，２０によって、音声入力手段１０から入力された音声から第１及び第２シフト量に基づいて第１及び第２ハーモニー音が生成される。
【００１５】
出力手段２１は、音声入力手段１０から入力された音声と、ピッチシフト手段１６からの第１及び第２ハーモニー音とを混ぜ合わせたハーモニー音を出力する機能であり、ＣＰＵ３０及びＤＳＰ３５によって実現される。
【００１６】
以上よりハーモニー生成装置１は、ピッチシフト手段１６によって、音声入力手段１０から入力された音声、コード判定手段１２で判定されたコード、キー記憶手段１に記憶されたキー及び切替手段１５からの演算モードに基づいて第１及び第２ハーモニー音が生成される。ここで、楽器の生演奏によってコードは時々刻々と変化するため、ハーモニー生成装置１は楽器で演奏されるコードを先読みできない。そこで、コード判定手段１２によって、演奏入力手段１１から入力される楽器の演奏情報に基づいてコードが判定され、そのコードに基づいて第１及び第２ハーモニー音が生成される。これにより、第１及び第２ハーモニー音は、時々刻々と変化するコードに基づいて時々刻々と変化するので、該第１及び第２ハーモニー音と音声入力手段１０によって入力された音声とを混ぜ合わせて出力されたハーモニー音は、機械的ではない、変化の富んだ自然なハーモニー音とできる。
【００１７】
また、切替手段１５からの演算モードに応じて、コード判定手段１２で判定されたコードに優先してキー記憶手段１４に記憶されたキーに基づいて第１及び第２ハーモニー音を生成するか、キー記憶手段１４に記憶されたキーに優先してコード判定手段１２で判定されたコードに基づいて第１及び第２ハーモニー音を生成するかが切り替えられる。これにより、楽器で演奏している曲の曲調等に合致したハーモニー音を出力できる。加えて、演奏中の曲の進行（転調や楽器の無演奏等）に応じて適宜演算モードを変更することで、曲の進行に対して柔軟で表現豊かなハーモニー音を出力できる。
【００１８】
次に図３，図４を参照して、ハーモニー生成装置１の電気的構成を説明する。図３は、ハーモニー生成装置１の電気的構成を示すブロック図である。ハーモニー生成装置１は、ＣＰＵ３０と、フラッシュＲＯＭ３１と、ＲＡＭ３２と、ハーモニー生成装置１の各種の設定をするための操作子である設定ボタン３３（図１の切替手段１５の一例）と、音声を入力するマイクロフォンＭと、入力装置３４と、Digital Signal Processor３５（以下「ＤＳＰ３５」と称す）とを有し、それぞれバスライン３６を介して接続される。また、ＤＳＰ３５にはデジタルアナログコンバータ（ＤＡＣ）３７が接続され、そのＤＡＣ３７にはアンプ３８が接続され、アンプ３８にはスピーカ３９が接続される。
【００１９】
ＣＰＵ３０は、バスライン３６により接続された各部を制御する演算装置である。フラッシュＲＯＭ３１は書き換え可能な不揮発性のメモリであり、制御プログラム３１ａと、スケールテーブル３１ｂと、コードテーブル３１ｃとが設けられる。ＣＰＵ３０によって制御プログラム３１ａが実行されると、図４のメイン処理が実行される。スケールテーブル３１ｂは、各メジャースケールに含まれる音名が記憶されるデータテーブルである。図３（ａ）を参照して、スケールテーブル３１ｂを説明する。
【００２０】
図３（ａ）は、スケールテーブル３１ｂを模式的に示した図である。スケールテーブル３１ｂには、各メジャースケールに含まれる音名が記憶される。例えば、Ｃメジャースケールには、ド、レ、ミ、ファ、ソ、ラ、シ、ドが含まれる。従って、スケールテーブル３１ｂにおけるＣメジャースケールに該当する領域（図３（ａ）では「Ｃ」と表現）であって、これらの音名に該当する領域に対して、Ｃメジャースケールに含まれることを示す「○」が記憶される。一方で、＃ド（ドの半音上の音を表す、他の音名も同様）、＃レ、＃ファ、＃レ、＃ソ、＃ラは、Ｃメジャースケールに含まれない。従って、スケールテーブル３１ｂにおけるＣメジャースケールに該当する領域であって、これらの音名に該当する領域に対してＣメジャースケールに含まれないことを示す「×」がそれぞれ記憶される。
【００２１】
スケールテーブル３１ｂには、Ｃメジャースケールと同様にＣ＃、Ｄ、Ｄ＃、Ｅ等の他のメジャースケールに対しても、それぞれのメジャースケールに含まれる音名には「○」が、含まれない音名には「×」がそれぞれ記憶される。
【００２２】
図２に戻る。コードテーブル３１ｃは、各コード（和音）に含まれる音名が記憶されるデータテーブルである。図３（ｂ）を参照して、スケールテーブル３１ｂを説明する。
【００２３】
図３（ｂ）は、コードテーブル３１ｃを模式的に示した図である。コードテーブル３１ｃには、各コードに含まれる音名が記憶される。例えば、Ｃメジャーコード（Ｃ）には、ド、ミ、ソが含まれる。従って、コードテーブル３１ｃにおけるＣメジャーコードに該当する領域（図３（ｂ）では「Ｃ」と表現）であって、これらの音名に該当する領域に対して、Ｃメジャーコードに含まれることを示す「○」がそれぞれ記憶される。一方で、＃ド、レ、＃レ、ファ、＃ファ、＃ソ、ラ、＃ラ、シは、Ｃメジャーコードに含まれない。従って、コードテーブル３１ｃにおけるＣメジャーコードに該当する領域であって、これらの音名に該当する領域に対して、Ｃメジャーコードに含まれないことを示す「×」が記憶される。
【００２４】
コードテーブル３１ｃには、Ｃメジャーコードの他に、Ｃセブンスコード（Ｃ７）、Ｃメジャーセブンスコード（ＣＭ７）、Ｃオーギュメントコード（Ｃａｕｇ）、Ｃマイナーコード（Ｃｍ）、Ｃマイナーセブンスコード（Ｃｍ７）、Ｃディミニッシュコード（Ｃｄｉｍ）、Ｃマイナーセブンス・フラットファイブコード（Ｃｍ７♭５）等に該当する領域に対して、それぞれのスケールに含まれる音名には「○」が、含まれない音名には「×」がそれぞれ記憶される。また、ＤやＥ等によるコードも、Ｃと同様に記憶される。
【００２５】
更にコードテーブル３１ｃに記憶されるコードは、聴感上の印象においてメジャーコードに類似している「メジャー系」と、聴感上の印象においてマイナーコードに類似している「マイナー系」との、２つのコード種別に分類される。本実施形態では、メジャーコード、セブンスコード、メジャーセブンスコード及びオーギュメントコード等が、メジャー系のコード種別に分類され、マイナーコード、マイナーセブンスコード、ディミニッシュコード及びマイナーセブンス・フラットファイブコード等が、マイナー系のコード種別に分類される。
【００２６】
図２に戻る。ＲＡＭ３２は、ＣＰＵ３０が制御プログラム３１ａ等のプログラム実行時に各種のワークデータやフラグ等を書き換え可能に記憶するメモリであり、マイクロフォンＭから入力された音声のピッチが記憶されるピッチメモリ３２ａと、スケールのキーが記憶されるキーメモリ３２ｂと、後述の入力装置３４から入力された演奏情報に基づいて推定されたキーである、推定キーが記憶される推定キーメモリ３２ｃ（図１のキー記憶手段１４の一例）と、後述の入力装置３４から入力された演奏情報から判定されたコードが記憶されるコードメモリ３２ｄと、マイクロフォンＭから入力された音声に対するピッチシフト量が記憶される第１シフト量メモリ３２ｅ及び第２シフト量メモリ３２ｆと、コードメモリ３２ｄに記憶されるコードのコード種別（メジャー系、マイナー系）が記憶されるコード種別メモリ３２ｇとを有している。
【００２７】
入力装置３４は、電子楽器や電気楽器等の楽器からの演奏情報を入力する装置である。本実施形態では、入力装置３４には電気ギターＧが接続され、電気ギターＧの生演奏に基づく演奏情報が、入力装置３４を介してハーモニー生成装置１へ入力される。なお、入力装置３４に接続される楽器は電気ギターＧに限られるものではなく、電気ベースや電子ピアノ、電子オルガン等の他の楽器を接続しても良い。
【００２８】
ＤＳＰ３５は、第１及び第２ハーモニー音を生成し、該第１及び第２ハーモニー音とマイクロフォンＭから入力された音声とを合成するための演算装置である。ＤＡＣ３７は、ＤＳＰ３５から入力された波形データを、アナログ波形データに変換する変換装置である。アンプ３８は、該ＤＡＣ３７から出力されたアナログ波形データを、所定の利得で増幅する増幅装置であり、スピーカ３９は、アンプ３８で増幅されたアナログ波形データを楽音として放音（出力）する出力装置である。
【００２９】
次に、図４〜図８を参照して、ＣＰＵ３０で実行されるメイン処理について説明する。図４は、メイン処理のフローチャートである。メイン処理は、ハーモニー生成装置１の電源投入後に実行される。メイン処理はまず、マイクロフォンＭから取得された音声のピッチを取得し、ピッチメモリ３２ａに保存する（Ｓ１）。かかるＳ１の処理を実行するＣＰＵ３０が、図１におけるピッチシフト手段１６のピッチ検出１７の一例である。
【００３０】
Ｓ１の処理の後、入力装置３４から入力された電気ギターＧの演奏情報から、コードを判定し、コードメモリ３２ｄへ保存する（Ｓ２）。かかるＳ２の処理を実行するＣＰＵ３０が、図１におけるコード判定手段１２の一例である。
【００３１】
Ｓ２の処理の後、コードメモリ３２ｄのコードに基づき、電気ギターＧで演奏されている曲のスケールにおけるキーを推定する（Ｓ３）。具体的には、所定時間（例えば３０秒間）に取得されるコードメモリ３２ｄのコードで用いられる音を、コードテーブル３１ｃで参照して収集する。そして、所定時間内で収集された音で構成される、最も類似する音階のスケールをスケールテーブル３１ｂから推定し、そのスケールのキーを取得する。
【００３２】
Ｓ３の処理の後、Ｓ３の処理でキーが推定できたかを確認し（Ｓ４）、Ｓ３の処理でキーが推定できた場合は（Ｓ４：Ｙｅｓ）、そのキーを推定キーメモリ３２ｃへ保存する（Ｓ５）。このようにして、電気ギターＧで演奏されているコードに基づいたキー、即ち推定キーが推定キーメモリ３２ｃに記憶される。一方で、Ｓ３の処理でキーが推定できていない場合は（Ｓ４：Ｎｏ）、Ｓ５の処理をスキップする。これらＳ３〜Ｓ５の処理を実行するＣＰＵ３０が、図１におけるキー推定手段１３の一例である。
【００３３】
Ｓ４，Ｓ５の処理の後、設定ボタン３３で設定されているキー選択モードが「キー自動選択モード」であるかを確認する（Ｓ６）。設定ボタン３３で設定されるキー選択モードとは、図５で後述のハーモニー生成処理における、マイクロフォンＭから入力された音声をシフトする際のシフト量である第１シフト量および第２シフト量（以下「第１及び第２シフト量」と略す）の算出において、どのキーを用いるかを切り替えるためのモードである。本実施形態では、設定ボタン３３で予め設定されているキー、即ち設定キーに基づいて第１及び第２シフト量が算出される「設定キーモード」と、推定キーメモリ３２ｃに記憶されている推定キーの状態によって、設定キーと推定キーメモリ３２ｃの推定キーとのいずれかに基づいて第１及び第２シフト量の算出する「キー自動選択モード」とが設けられる。
【００３４】
Ｓ６の処理において、設定ボタン３３で設定されているキー選択モードが「キー自動選択モード」である場合は（Ｓ６：Ｙｅｓ）、まず、推定キーメモリ３２ｃにキーが記憶されているかを確認する（Ｓ７）。Ｓ７の処理では、ハーモニー生成装置１の電源投入直後や、ハーモニー生成装置１の電源投入後から電気ギターＧが演奏されていない場合等、Ｓ３の処理によって推定キーが推定キーメモリ３２ｃに保存されていない場合があるので、推定キーメモリ３２ｃの記憶状態（推定キーが記憶されているか、否か）を確認する。
【００３５】
Ｓ７の処理において、推定キーメモリ３２ｃにキーが記憶されている場合は（Ｓ７：Ｙｅｓ）、推定キーメモリ３２ｃの推定キーをキーメモリ３２ｂへ保存する（Ｓ８）。一方で、推定キーメモリ３２ｃにキーが記憶されていない場合は（Ｓ７：Ｙｅｓ）、設定ボタン３３で設定されている、設定キーをキーメモリ３２ｂへ保存する（Ｓ９）。これらＳ８，Ｓ９の処理で設定されたキーメモリ３２ｂのキーがハーモニー生成処理における第１及び第２シフト量の算出に用いられる。
【００３６】
即ち、キー選択モードがキー自動選択モードである場合は、ハーモニー生成装置１の電源投入後から、Ｓ３〜Ｓ５の処理によって推定キーが推定されるまでは、設定ボタン３３で予め設定されている設定キーに基づいて第１及び第２シフト量が算出される。従って、推定キーが推定されていないことで、第１及び第２シフト量が算出されない事態を抑制できる。そして、推定キーが推定された後は、推定キーに基づいて第１及び第２シフト量が算出される。よって、推定キーが推定された後は、電気ギターＧで演奏されているコードに基づいた、より自然なハーモニー音を出力できる。
【００３７】
また、Ｓ３〜Ｓ５の処理によって推定キーの推定は繰り返し実行されるので、電気ギターＧの演奏している曲の調が転調し、メジャースケールが変化した場合でも、Ｓ３の処理によって転調後の曲のメジャースケールのキーが推定される。従って、電気ギターＧの演奏している曲が転調したとしても、その転調後のキーに基づいたハーモニー音が出力されるので、電気ギターＧの演奏している曲との調和したハーモニー音とできる。
【００３８】
Ｓ８，Ｓ９の処理の後、ハーモニー生成処理を実行する（Ｓ１０）。ここで、図５〜図８を参照して、ハーモニー生成処理を説明する。
【００３９】
図５は、ハーモニー生成処理のフローチャートである。ハーモニー生成処理は、ピッチメモリ３２ａのピッチと、コードメモリ３２ｄのコードと、キーメモリ３２ｂのキーによるメジャースケールとに基づいて、第１及び第２シフト量を算出し、それら第１及び第２シフト量によって、マイクロフォンＭから入力された音声のピッチをシフトしたものを入力された音声と混ぜ合わせて、ハーモニー音として出力する処理である。
【００４０】
ハーモニー生成処理はまず、設定ボタン３３に設定されている演算モードを確認する（Ｓ２０）。本実施形態において演算モードは、モード１〜モード４が設けられ、コードメモリ３２ｄのコードに基づいて第１及び第２シフト量を算出するモード１と、コードメモリ３２ｄのコードのコード種別（メジャー系、マイナー系）に基づいて第１及び第２シフト量を算出するモード２と、コードメモリ３２ｄのコードと、キーメモリ３２ｂに記憶されるキーのスケールとに基づいて第１及び第２シフト量を算出するモード３，４とが設けられる。
【００４１】
モード３，４のうち、モード３においては、キーメモリ３２ｂのキーのスケールよりもコードメモリ３２ｄのコードを優先して第１及び第２シフト量が算出され、モード４においては、コードメモリ３２ｄのコードよりもキーメモリ３２ｂのキーのスケールを優先して第１及び第２シフト量が算出される。
【００４２】
設定ボタン３３に設定された演算モードが、モード１である場合は（Ｓ２０：モード１）、コード→シフト量算出処理を実行する（Ｓ２１）。図６を参照してコード→シフト量算出処理を説明する。
【００４３】
図６（ａ）は、コード→シフト量算出処理のフローチャートであり、図６（ｂ）は、その処理内容を説明するための模式図である。コード→シフト量算出処理は、コードメモリ３２ｄのコードに基づいて第１及び第２シフト量を算出する処理である。コード→シフト量算出処理はまず、コードテーブル３１ｃから、コードメモリ３２ｄに記憶されているコードの構成音、即ち図３（ｂ）のコードテーブル３１ｃにおいて「○」である音名の音を取得する（Ｓ３０）。図６（ｂ）においては、コードメモリ３２ｄにＦコードが記憶されている例を示している。Ｆコードの構成音はファ、ラ、ドであるので、図６（ｂ）においては、ファ、ラ、ドの上にＦコードの構成音であることを示す「○」が表記されている。
【００４４】
Ｓ３０の処理の後、コードテーブル３１ｃから取得した構成音のうち、ピッチメモリ３２ａのピッチに最も近い音名の音を第１音とする（Ｓ３１）。図６（ｂ）の例においては、ピッチメモリ３２ａのピッチがαＨｚ（α＞０）である場合、コードテーブル３１ｃから取得した構成音の中で、αＨｚに最も近いピッチを取る「ファ」がＳ３１の処理によって「第１音」とされる。この第１音を基準として、コードテーブル３１ｃから取得した構成音であって、第１及び第２シフト量を算出するための第２音、第３音が以下のＳ３２の処理によって取得される。
【００４５】
具体的にＳ３１の処理の後、コードテーブル３１ｃから取得した構成音のうち、Ｓ３１の処理で取得された第１音よりも上の音階に該当する音を、それぞれ順に第２音、第３音とする（Ｓ３２）。図６（ｂ）において、Ｓ３１の処理によって「ファ」が「第１音」に決定されたので、コードテーブル３１ｃから取得した構成音において、「ファ」よりも１つ上の音階の音である「ラ」が第２音とされ、更に「ラ」よりも１つ上の音階の音である「ド」が第３音とされる。マイクロフォンＭから入力された音声の音高を、このように取得された第２音および第３音と同等になるようにピッチシフトするための第１及び第２シフト量が、以下のＳ３３，Ｓ３４の処理によって算出される。
【００４６】
Ｓ３２の処理の後、第２音と第１音とのピッチ差である第１シフト量を算出して、第１シフト量メモリ３２ｅに保存し（Ｓ３３）、更に第３音と第１音とのピッチ差である第２シフト量を算出して、第２シフト量メモリ３２ｆに保存して（Ｓ３４）、コード→シフト量算出処理を終了する。かかるＳ２１のコード→シフト量算出処理が、図１におけるピッチシフト手段１６のシフト量演算１８の一例である。
【００４７】
詳細は図５のＳ２６の処理で後述するが、マイクロフォンＭから入力された音声のピッチを、第１及び第２シフト量によってシフトすることで、第１及び第２ハーモニー音が生成され、これらが入力された音声と混ぜ合わされて出力される。
【００４８】
以上より、演奏モードがモード１である場合は、コード→シフト量算出処理によって、コードメモリ３２ｄのコード、即ち電気ギターＧで演奏されているコードに基づいて、第１及び第２シフト量が算出される。よって、第１及び第２ハーモニー音はコードメモリ３２ｄのコードの構成音の一部（具体的には、第２音および第３音）に基づいた音高となるので、ハーモニー生成装置１から出力されるハーモニー音は、電気ギターＧで演奏されるコードに調和したハーモニー音とできる。
【００４９】
更に、電気ギターＧで演奏されるコードは、曲の進行に伴って時々刻々と変化するため、ハーモニー生成装置１は電気ギターＧで演奏されるコードを先読みできない。そこで、図４のＳ２の処理によって、入力装置３４から入力される演奏情報に基づいてコードが判定され、そのコードに基づいて第１及び第２シフト量が算出される。かかる第１及び第２シフト量によって生成される第１及び第２ハーモニー音は、電気ギターＧで演奏されるコードの変化に基づいた、時々刻々と変化するものとできる。従って、ハーモニー生成装置１からは、時々刻々と変化するコードに調和しつつも、そのコードに応じて変化の富んだ自然なハーモニー音を出力できる。
【００５０】
また、第１シフト量は、第２音と第１音とのピッチ差であり、第２シフト量は、第３音と第１音とのピッチ差であるので、マイクロフォンＭから入力された音声と第１ハーモニー音との音高差は、第１音と第２音との音高差と同等とされ、該音声と第２ハーモニー音との音高差は、第１音と第３音との音高差と同等とされる。
【００５１】
図５に戻る。Ｓ２０の処理において、設定ボタン３３に設定された演算モードが、モード２である場合は（Ｓ２０：モード２）、まずコード種別処理を実行する（Ｓ２２）。図７を参照して、コード種別処理を説明する。
【００５２】
図７は、コード種別処理のフローチャートである。コード種別処理は、コードメモリ３２ｄのコードに基づいて、メジャー系かマイナー系かのコード種別を判定し、そのコード種別とキーメモリ３２ｂのキーとに応じたコードをコードメモリ３２ｄに保存する処理である。
【００５３】
コード種別処理はまず、コードメモリ３２ｄのコードをコードテーブル３１ｃで参照し、コードメモリ３２ｄのコードと一致するコードテーブル３１ｃのコードのコード種別が、メジャー系かマイナー系かを確認する（Ｓ４０）。Ｓ４０の処理において、コードメモリ３２ｄのコードがメジャー系である場合は（Ｓ４０：Ｙｅｓ）、コード種別メモリ３２ｇに「メジャー系」を保存し（Ｓ４１）、コードメモリ３２ｄのコードがメジャー系ではない、即ちマイナー系ある場合は（Ｓ４０：Ｎｏ）、コード種別メモリ３２ｇに「マイナー系」を保存する（Ｓ４２）。
【００５４】
Ｓ４１，Ｓ４２の処理の後、コードテーブル３１ｃから、コード種別メモリ３２ｇのコード種別において、先頭に記憶されるコードの構成音を取得する（Ｓ４３）。図３（ｂ）のコードテーブル３１ｃにおいて、コード種別メモリ３２ｇのコード種別がメジャー系である場合は、Ｓ４３の処理によってＣコードのコード構成音が取得され、コード種別メモリ３２ｇのコード種別がマイナー系である場合は、Ｓ４３の処理によってＣｍコードのコード構成音が取得される。
【００５５】
Ｓ４３の処理の後、Ｓ４３又は後述のＳ４７の処理で取得したコードの構成音が、キーメモリ３２ｂのキーに基づくメジャースケールで構成されているかを確認する（Ｓ４４）。具体的には、キーメモリ３２ｂのキーに基づくメジャースケールの構成音をスケールテーブル３１ｂ（図３（ａ））から取得し、Ｓ４３又はＳ４７の処理で取得したコードの構成音が、取得したスケールの構成音に全て含まれているかを確認する。
【００５６】
Ｓ４４の処理において、Ｓ４３又はＳ４７の処理で取得したコードの構成音が、キーメモリ３２ｂのキーに基づくメジャースケールで構成されている場合は（Ｓ４４：Ｙｅｓ）、更に、ピッチメモリ３２ａのピッチに最も近い音名の音が、Ｓ４３又はＳ４７の処理で取得したコードの構成音に含まれているかを確認する（Ｓ４５）。ピッチメモリ３２ａのピッチに最も近い音名の音が、Ｓ４３又はＳ４７の処理で取得したコードの構成音に含まれている場合は（Ｓ４５：Ｙｅｓ）、Ｓ４３又はＳ４７の処理で取得したコードを、コードメモリ３２ｄに保存する（Ｓ４６）。
【００５７】
Ｓ４４の処理で、Ｓ４３又はＳ４７の処理で取得したコードの構成音がキーメモリ３２ｂのキーに基づくメジャースケールで構成されていない場合（Ｓ４４：Ｎｏ）、若しくはＳ４５の処理で、ピッチメモリ３２ａのピッチに最も近い音名の音がＳ４３又はＳ４７の処理で取得したコードの構成音に含まれていない場合は（Ｓ４５：Ｎｏ）、それぞれのコード種別における他のコードの構成音と比較するため、直前のＳ４３又はＳ４７の処理でコードテーブル３１ｃから取得したコードの次のコードの構成音を取得し（Ｓ４７）、Ｓ４３の処理を繰り返す。そして、Ｓ４６の処理の後、コード種別処理を終了して、図６のハーモニー生成処理へ戻る。
【００５８】
図５に戻る。Ｓ２２のコード種別処理の後、図６（ａ）のコード→シフト量算出処理（Ｓ２１）を実行する。
【００５９】
以上より、演算モードがモード２である場合は、Ｓ２２のコード種別処理によって、予め記憶されているコードメモリ３２ｄのコードからコード種別が取得され、取得されたコード種別におけるコードの構成音が、キーメモリ３２ｂのキーに基づくメジャースケールに全て含まれているコードがコードメモリ３２ｄに記憶される。そして、Ｓ２１のコード→シフト量算出処理によって、そのコードメモリ３２ｄのコードに基づいて第１及び第２シフト量が算出される。
【００６０】
電気ギターＧによって演奏されるコードの構成音は、必ずしもキーメモリ３２ｂのキーに基づくメジャースケールの構成音に含まれない。従って、電気ギターＧによって演奏されるコードに基づいて第１及び第２シフト量を算出すると、キーメモリ３２ｂのキーに基づくメジャースケールの構成音から外れた第１及び第２ハーモニー音が生成されるので、演奏されている曲調から離れた音となる虞がある。
【００６１】
そこで、電気ギターＧによって演奏されるコードの構成音の全てが、キーメモリ３２ｂのキーに基づくメジャースケールの構成音に含まれていない場合に、同一のコード種別の他のコードであって、ピッチメモリ３２ａのピッチに最も近い音名の構成音が含まれるコードによって第１及び第２シフト量が算出される。これら第１及び第２シフトに基づいて生成される第１及び第２ハーモニー音は、いずれもキーメモリ３２ｂのキーに基づくメジャースケールに基づく音なので、ハーモニー生成装置１からは、演奏されている曲調との調和が取れたハーモニー音が出力できる。
【００６２】
更に、第１及び第２ハーモニー音は、電気ギターＧによって演奏されるコードと同一のコード種別のコードに基づく音であり、これらは聴感上の印象が類似した音である。従って、第１及び第２ハーモニー音と、電気ギターＧによって演奏されるコードとを混ぜ合わせた場合の、聴感上の違和感を最小限に抑制できる。
【００６３】
Ｓ２０の処理において、設定ボタン３３に設定された演算モードが、モード３である場合は（Ｓ２０：モード３）、ピッチメモリ３２ａのピッチに最も近い音名の音が、コードメモリ３２ｄのコードの構成音に含まれるかを確認する（Ｓ２３）。具体的には、コードメモリ３２ｄのコードの構成音の中で、ピッチメモリ３２ａのピッチに最も近い音名と同一の構成音が含まれているかが判断される。
【００６４】
Ｓ２３の処理において、ピッチメモリ３２ａのピッチに最も近い音名の音が、コードメモリ３２ｄのコードの構成音に含まれる場合は（Ｓ２３：Ｙｅｓ）、図６（ａ）のコード→シフト量算出処理（Ｓ２１）を実行し、コードメモリ３２ｄのコードの構成音に含まれない場合は（Ｓ２３：Ｎｏ）、スケール→シフト量算出処理を実行する（Ｓ２４）。ここで、図８を参照して、Ｓ２４のスケール→シフト量算出処理を説明する。
【００６５】
図８（ａ）は、スケール→シフト量算出処理のフローチャートであり、図８（ｂ）は、その処理内容を説明するための模式図である。スケール→シフト量算出処理は、キーメモリ３２ｂのキーに基づくメジャースケールに基づいて、第１及び第２シフト量を算出する処理である。
【００６６】
スケール→シフト量算出処理はまず、キーメモリ３２ｂのキーに基づくメジャースケールの構成音、即ち図３（ａ）のスケールテーブル３１ｂにおいて「○」である音名の音を取得する（Ｓ５０）。図８（ｂ）においては、キーメモリ３２ｂのキーに「Ｃ（Ｃメジャー）」が記憶されている例を示している。Ｃメジャースケールの構成音はド、レ、ミ、ファ、ソ、ラ、シであるので、図８（ｂ）においても、これらの音名の上にＣメジャースケールの構成音であることを示す「○」が表記されている。
【００６７】
Ｓ５０の処理の後、スケールテーブル３１ｂから取得した構成音のうち、ピッチメモリ３２ａのピッチに最も近い音名の音を第１音とする（Ｓ５１）。図８（ｂ）の例において、ピッチメモリ３２ａのピッチがβＨｚ（β＞０）である場合、スケールテーブル３１ｂから取得した構成音の中で、βＨｚに最も近いピッチを取る「レ」がＳ５１の処理によって「第１音」とされる。この第１音を１度とて、スケールテーブル３１ｂから取得した構成音であって、第１及び第２シフト量を算出するための第２音、第３音が以下のＳ５２の処理によって取得される。
【００６８】
具体的にＳ５１の処理の後、スケールテーブル３１ｂから取得した構成音のうち、Ｓ３１の処理で取得された第１音よりも３度、６度上の音を、それぞれ順に第２音、第３音とする（Ｓ５２）。図８（ｂ）において、Ｓ５１の処理によって「レ」が「第１音」に決定されたので、スケールテーブル３１ｂから取得した構成音において、「レ」よりも３度上の音である「ファ」が第２音とされ、「レ」よりも６度上の音である「シ」が第３音とされる。マイクロフォンＭから入力された音声の音高を、このように取得された第２音および第３音と同等になるようにピッチシフトするための第１及び第２シフト量が、以下のＳ５３，Ｓ５４の処理によって算出される。
【００６９】
なお、第２音、第３音は、スケールテーブル３１ｂから取得した構成音のうち第１音よりも３度、６度上の音に限られるものではなく、第２音を第１音よりも２度または４度以上差のある音としても良いし、第３音を４度、５度または７度以上差のある音としても良い。
【００７０】
Ｓ５２の処理の後、第２音と第１音とのピッチ差である第１シフト量を算出して、第１シフト量メモリ３２ｅに保存し（Ｓ５３）、更に第３音と第１音とのピッチ差である第２シフト量を算出して、第２シフト量メモリ３２ｆに保存して（Ｓ５４）、スケール→シフト量算出処理を終了する。かかるＳ２４のスケール→シフト量算出処理が、図１におけるピッチシフト手段１６のシフト量演算１８の一例である。
【００７１】
スケール→シフト量算出処理によって算出された、第１及び第２シフト量に基づく第１及び第２ハーモニー音は、キーメモリ３２ｂのキーに基づくメジャースケールの構成音の一部（具体的には、Ｓ５２の処理で決定された第２音および第３音）に基づいた音高となる。従って、第１及び第２ハーモニー音によって、演奏されている曲調に調和したハーモニー音を出力できる。また、コード→シフト量算出処理で算出された第１及び第２シフト量とは異なり、スケール→シフト量算出処理によって算出された第１及び第２シフト量は、コードの変化に応じて変化しないので、第１及び第２ハーモニー音の変化を安定させることができる。
【００７２】
また、図６（ａ）のコード→シフト量算出処理と同様に、スケール→シフト量算出処理においても第１シフト量は、第２音と第１音とのピッチ差であり、第２シフト量は、第３音と第１音とのピッチ差であるので、マイクロフォンＭから入力された音声と第１ハーモニー音との音高差は、第１音と第２音との音高差と同等とされ、該音声と第２ハーモニー音との音高差は、第１音と第３音との音高差と同等とされる。
【００７３】
以上より、演奏モードがモード３である場合は、まず、ピッチメモリ３２ａのピッチに最も近い音名の音が、コードメモリ３２ｄのコードの構成音に含まれるかが確認される。ピッチメモリ３２ａのピッチに最も近い音名の音が、コードメモリ３２ｄのコードの構成音に含まれる場合は、コード→シフト量算出処理によって、コードメモリ３２ｄのコードに基づいて第１及び第２シフト量が算出される。即ち、コードメモリ３２ｄのコードに基づいた第１及び第２シフト量の算出が、キーメモリ３２ｂのキーに基づくメジャースケールに基づいた第１及び第２シフト量の算出よりも優先されるので、コードメモリ３２ｄのコードの変化に応じた、変化に富んだ第１及び第２ハーモニー音を優先して生成できる。
【００７４】
一方で、ピッチメモリ３２ａのピッチに最も近い音名の音が、コードメモリ３２ｄのコードの構成音に含まれない場合は、スケール→シフト量算出処理によって、キーメモリ３２ｂのキーに基づくメジャースケールから第１及び第２シフト量が算出される。従って、コードメモリ３２ｄのコードの構成音から第１及び第２シフト量が算出できない場合でも、キーメモリ３２ｂのキーに基づくメジャースケールに応じた、即ち演奏されている曲調に調和した第１及び第２ハーモニー音を生成できるので、出力されるハーモニー音に対する聴感上の違和感を最小限に抑制できる。
【００７５】
図５に戻る。Ｓ２０の処理において、演算モードがモード４である場合は、ピッチメモリ３２ａに最も近い音名の音が、キーメモリ３２ｂに基づくメジャースケールの構成音に含まれるかを確認する（Ｓ２５）。具体的には、キーメモリ３２ｂに基づくメジャースケールの構成音の中で、ピッチメモリ３２ａの最も近い音名と同一の構成音が含まれているかが判断される。
【００７６】
Ｓ２５の処理において、ピッチメモリ３２ａに最も近い音名の音が、キーメモリ３２ｂに基づくメジャースケールの構成音に含まれる場合は（Ｓ２５：Ｙｅｓ）、図８（ａ）のスケール→シフト量算出処理（Ｓ２４）を実行して、キーメモリ３２ｂに基づくメジャースケールの構成音から第１及び第２シフト量を算出する。一方で、ピッチメモリ３２ａに最も近い音名の音が、キーメモリ３２ｂに基づくメジャースケールの構成音に含まれない場合は（Ｓ２５：Ｎｏ）、図６（ａ）のスケール→シフト量算出処理（Ｓ２４）を実行する。
【００７７】
以上より、演奏モードがモード４である場合は、まず、ピッチメモリ３２ａのピッチに最も近い音名の音が、キーメモリ３２ｂのキーに基づくメジャースケールの構成音に含まれるかが確認される。ピッチメモリ３２ａのピッチに最も近い音名の音が、該メジャースケールの構成音に含まれる場合は、スケール→シフト量算出処理によって、該メジャースケールに基づいて第１及び第２シフト量が算出される。即ち、該メジャースケールに基づいた第１及び第２シフト量の算出が、コードメモリ３２ｄのコードに基づいた第１及び第２シフト量の算出よりも優先されるので、演奏されている曲調に調和した第１及び第２ハーモニー音を、優先して出力できる。
【００７８】
一方で、ピッチメモリ３２ａのピッチに最も近い音名の音がキーメモリ３２ｂのキーに基づくメジャースケールの構成音に含まれない場合は、コード→シフト量算出処理によって、コードメモリ３２ｄのコードから第１及び第２シフト量が算出される。即ち、該メジャースケールの構成音から第１及び第２シフト量が算出できない場合でも、少なくともコードメモリ３２ｄのコードに調和した第１及び第２ハーモニー音を生成できるので、出力されるハーモニー音に対する聴感上の違和感を最小限に抑制できる。
【００７９】
Ｓ２１，Ｓ２４の処理の後、マイクロフォンＭから入力された音声と、マイクロフォンＭから入力された音声を第１シフト量メモリ３２ｅの値だけピッチシフトした第１ハーモニー音と、マイクロフォンＭから入力された音声を第２シフト量メモリ３２ｆの値だけピッチシフトした第２ハーモニー音とを、混ぜ合わせて出力する（Ｓ２６）。Ｓ２６の処理が、図１におけるピッチシフト手段１６の第１ピッチシフト１９と第２ピッチシフト２０、及び出力手段２１の一例である。Ｓ２６の処理の後、ハーモニー生成処理を終了し、図４のメイン処理へ戻る。
【００８０】
このようにハーモニー生成処理では、設定ボタン３３に設定されている演算モード（モード１〜モード４）に応じて、それぞれ異なった態様の第１及び第２ハーモニー音が生成される。よって、演奏する曲の曲調等に合わせて演算モードを設定することで、その曲調に合致した態様のハーモニー音を出力できる。また、演奏中の曲の進行、例えば、転調や電気ギターＧの無演奏等に応じて適宜演算モードを変更することで、曲の進行に対して柔軟で表現豊かなハーモニー音を出力できる。
【００８１】
図４に戻る。Ｓ１０のハーモニー生成処理の実行後は、Ｓ１以下の処理を繰り返す。
【００８２】
以上、上記実施形態に基づき説明したが、種々の改良変更が可能であることは容易に推察できるものである。
【００８３】
上記実施形態では、制御プログラム３１ａが組み込まれたハーモニー生成装置１を例示した。しかし、必ずしもこれに限られるものではなく、電子ピアノやシンセサイザー等の他の電子楽器や、パーソナルコンピュータやスマートフォン、タブレット端末等の情報処理装置に制御プログラム３１ａを組み込みことで、これらの装置からハーモニー音を出力する構成としても良い。
【００８４】
上記実施形態では、ハーモニー生成装置１に入力装置３４（図２）を接続し、該入力装置３４に接続された電気ギターＧ等の楽器の演奏情報を入力する構成とした。しかし、必ずしもこれに限られるものではなく、入力装置３４の代わりにＭＩＤＩデータから演奏情報を入力するＭＩＤＩインターフェースを接続し、該ＭＩＤＩインターフェースから入力されたＭＩＤＩデータによる演奏情報に基づいて、ハーモニー音を生成する構成としても良い。このように構成することで、該ＭＩＤＩインターフェースから入力されたＭＩＤＩデータによっても、楽器を演奏している場合と同様のハーモニー音を生成することができる。また、例えばカラオケの伴奏音に対するＭＩＤＩファイルからのＭＩＤＩデータを該ＭＩＤＩインターフェースを介して入力すれば、カラオケの伴奏音のコード進行に基づいた自然なハーモニー音を、カラオケの歌唱と混ぜ合わせて出力できる。
【００８５】
上記実施形態では、スケールテーブル３１ｂに各メジャースケールに含まれる音名を記憶する構成とした。しかし、スケールテーブル３１ｂに記憶されるスケールはメジャースケールに限られるものではなく、ハーモニックマイナースケール等のスケールを、メジャースケールと合わせて記憶する構成としても良いし、ハーモニックマイナースケール等の他のスケールのみを記憶する構成としても良い。
【００８６】
上記実施形態では、Ｓ２１のコード→シフト量算出処理（図６（ａ））およびＳ２４のスケール→シフト量算出処理（図８（ａ））によって、第１及び第２シフト量の２のシフト量を算出して、第１及び第２ハーモニー音の２のハーモニー音を生成する構成とした。しかし、必ずしもこれに限られるものではなく、コード→シフト量算出処理およびスケール→シフト量算出処理によって１のシフト量を算出し、そのシフト量によって１のハーモニー音を生成しても良い。
【００８７】
その場合、コード→シフト量算出処理においては、Ｓ３０の処理でコードテーブル３１ｃから取得した構成音であって、Ｓ３１で取得した第１音よりも、上の音階の音に基づいてシフト量を算出しても良いし、第１音よりも下の音階の音に基づいてシフト量を算出しても良い。また、スケール→シフト量算出処理においては、Ｓ５０の処理でスケールテーブル３１ｂから取得した構成音であって、Ｓ５１で取得した第１音よりも、３度または６度上の音に基づいてシフト量を算出しても良いし、第１音よりも３度または６度下の音に基づいてシフト量を算出しても良い。
【００８８】
また、コード→シフト量算出処理およびスケール→シフト量算出処理によって、３以上のシフト量を算出し、それらシフト量によって３以上のハーモニー音を生成しても良い。
【００８９】
上記実施形態では、Ｓ２１のコード→シフト量算出処理によって、Ｓ３０の処理でコードテーブル３１ｃから取得したコードの構成音であって、Ｓ３１で取得した第１音よりも、上の音階の２音に基づいて、第１及び第２シフト量を算出する構成とした。しかし、必ずしもこれに限られるものではなく、コードの構成音であって第１音よりも下の音階の２音をそれぞれ第２音、第３音として、第１及び第２シフト量を算出しても良いし、コードの構成音であって第１音よりも下の音階の音を第２音とし、第１音よりも上の音階の音を第３音として、第１及び第２シフト量を算出しても良い。
【００９０】
上記実施形態では、Ｓ２４のスケール→シフト量算出処理によって、Ｓ５０の処理でスケールテーブル３１ｂから取得した構成音であって、Ｓ５１で取得した第１音よりも、３度、６度上の第２音、第３音に基づいて、第１及び第２シフト量を算出する構成とした。しかし、必ずしもこれに限られるものではなく、第１音よりも６度、３度下の音をそれぞれ第２音、第３音として第１及び第２シフト量を算出しても良い。また、第１音よりも３度下の音を第２音をとし、第１音よりも６度上の音を第３音として第１及び第２シフト量を算出しても良いし、第１音よりも６度下の音を第２音をとし、第１音よりも３度上の音を第３音として第１及び第２シフト量を算出しても良い。即ち、第１音との差が３度である音を第２音または第３音のいずれか一方とし、第１音との差が６度である音を第２音または第３音の残りの他方とすれば良い。
【００９１】
上記実施形態では、図５のハーモニー生成処理において、演奏モードがモード２の場合に限って、Ｓ２１のコード→シフト量算出処理を実行する前に、Ｓ２２のコード種別処理を実行する構成とした。しかし、必ずしもこれに限られるものではなく、演奏モードが他のモード（特にモード３，モード４）の場合においてもＳ２１のコード→シフト量算出処理を実行する前に、Ｓ２２のコード種別処理を実行する構成としても良い。このように構成することで、他のモードにおいてコード→シフト量算出処理で第１及び第２シフト量を算出する場合でも、モード２の場合と同様に、演奏されている曲調との調和が取れ、なおかつ電気ギターＧによって演奏されるコードとを混ぜ合わせた場合の、聴感上の違和感が最小限に抑制されたハーモニー音を出力できる。
【００９２】
上記実施形態では、図５のＳ２６の処理において、マイクロフォンＭから入力された音声を、そのまま第１及び第２ハーモニー音とを混ぜ合わせて出力した。しかし、必ずしもこれに限られるものではなく、例えば、マイクロフォンＭから入力された音声に対して、リバーブや第１及び第２シフト量に依らない別途のピッチシフト等のエフェクト効果処理を適用し、かかる音と第１及び第２ハーモニー音とを混ぜ合わせて出力しても良い。
【００９３】
上記実施形態では、図６（ａ），図８（ａ）のコード→シフト量算出処理およびスケール→シフト量算出処理において、それぞれ第１及び第２シフト量を、第２音および第３音と、第１音とのそれぞれのピッチ差とした。しかし、必ずしもこれに限られるものではなく、第１及び第２シフト量を、第２音および第３音と、ピッチメモリ３２ａのピッチとのそれぞれのピッチ差としても良い。
【００９４】
上記実施形態に挙げた数値は一例であり、他の数値を採用することは当然可能である。
【符号の説明】
【００９５】
１                            ハーモニー生成装置
１０                          音声入力手段
１１                          演奏入力手段
１２，Ｓ２                    コード判定手段、コード判定ステップ
１３，Ｓ３〜Ｓ５              キー推定手段、キー推定ステップ
１４                          キー記憶手段
３３                          設定ボタン（切替手段）
３５                          ＤＳＰ（ピッチシフト手段、出力手段）
１５                          切替手段
１６，Ｓ２１，Ｓ２４，Ｓ２６  ピッチシフト手段、ピッチシフトステップ
２１，Ｓ２６                  出力手段
Ｇ                            電気ギター（楽器）
Ｍ                            マイクロフォン（音声入力手段）
３１ａ                        制御プログラム（プログラム）
３２ｃ                        推定キーメモリ（キー記憶手段）
３４                          入力装置（演奏入力手段）
【図１】
2020034627.tif 000003
【図２】
2020034627.tif 000004
【図３】
2020034627.tif 000005
【図４】
2020034627.tif 000006
【図５】
2020034627.tif 000007
【図６】
2020034627.tif 000008
【図７】
2020034627.tif 000009
【図８】
2020034627.tif 000010