(58)【調査した分野】(Int.Cl.,DB名)
前記選択手段は、共通のコード情報に対応する複数の基準音のうち、当該コード情報の取得時点から順に取得された予め定められた数の基準音に対して、前記第1の対応情報を選択する、請求項1記載のハーモニー情報生成装置。
前記判定手段は、共通のコード情報に対応する複数の基準音のうち、当該コード情報の取得時点から順に取得された予め定められた数の基準音に対して、前記特定音を付加可能でないと判定する、請求項3記載のハーモニー情報生成装置。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態に係るハーモニー情報生成装置、ハーモニー情報生成プログラムおよびハーモニー情報生成方法について図面を用いて詳細に説明する。
【0020】
[1]第1の実施の形態
(1)電子音楽装置の構成
図1は本発明の第1の実施の形態に係るハーモニー情報生成装置を含む電子音楽装置の構成を示すブロック図である。
図1の電子音楽装置1によれば、ユーザは演奏および曲の制作等を行うことができる。また、電子音楽装置1は、ハーモニー情報を生成するハーモニー情報生成装置100を含む。ハーモニー情報は、ユーザの演奏に付加すべき1以上のハーモニー音の音高情報を含む。
【0021】
電子音楽装置1は、演奏操作子2、入力I/F(インタフェース)3、設定操作子4、検出回路5、表示部6および表示回路8を備える。演奏操作子2は、入力I/F3を介してバス19に接続される。演奏操作子2は例えば鍵盤である。ユーザは、演奏操作子2を操作することにより、演奏データとしてコード情報および基準音の音高情報を入力することができる。コード情報は、コードネームで表されてもよく、キー(調)とディグリーネームとで表されてもよい。基準音は、ハーモニーの基準となる音であり、例えば曲の主たるメロディを構成する音である。音高情報は、例えばノートナンバーまたは音名で表される。
【0022】
演奏操作子2として鍵盤が用いられる場合、例えば、特定の境界位置を基準に鍵盤がコード鍵域とメロディ鍵域とに分割される。コード鍵域は境界位置よりも低音側(左側)の領域であり、メロディ鍵域は境界位置よりも高音側(右側)の領域である。ユーザは、左手でコード鍵域を操作してコード情報を入力することができ、右手でメロディ鍵域を操作することにより基準音の音高情報を入力することができる。
【0023】
設定操作子4は、オンオフ操作されるスイッチ、回転操作されるロータリエンコーダ、またはスライド操作されるリニアエンコーダ等を含み、検出回路5を介してバス19に接続される。設定操作子4は、音量の調整、電源のオンオフおよび各種設定を行うために用いられる。また、本実施の形態では、設定操作子4の操作により、ハーモニー機能のオンオフが切り替えられる。ハーモニー機能がオンされると、演奏操作子2により入力される基準音にハーモニー音が付加される。表示部6は、例えば液晶ディスプレイを含み、表示回路8を介してバス19に接続される。表示部6により、演奏または設定等に関する各種情報が表示される。表示部6がタッチパネルディスプレイにより構成されてもよい。
【0024】
電子音楽装置1は、RAM(ランダムアクセスメモリ)9、ROM(リードオンリメモリ)10、CPU(中央演算処理装置)11、タイマ12および記憶装置13をさらに備える。RAM9、ROM10、CPU11および記憶装置13はバス19に接続され、タイマ12はCPU11に接続される。外部記憶装置15等の外部機器が通信I/F(インタフェース)14を介してバス19に接続されてもよい。RAM9、ROM10、CPU11およびタイマ12がコンピュータを構成する。
【0025】
RAM9は、例えば揮発性メモリからなり、CPU11の作業領域として用いられるとともに、各種データを一時的に記憶する。ROM10は、例えば不揮発性メモリからなり、システムプログラム、ハーモニー情報生成プログラム等のコンピュータプログラムを記憶する。CPU11は、ROM10に記憶されたハーモニー情報生成プログラムをRAM9上で実行することにより後述するハーモニー情報生成処理を行い、ハーモニー情報を生成する。タイマ12は、現在時刻等の時間情報をCPU11に与える。
【0026】
記憶装置13は、ハードディスク、光学ディスク、磁気ディスクまたはメモリカード等の記憶媒体を含み、第1および第2の対応情報を記憶する。上記のハーモニー情報生成プログラムが記憶装置13に記憶されてもよい。第1および第2の対応情報は、コード毎に基準音の音高と付加すべきハーモニー音の音高との対応関係をそれぞれ示す。本例では、第1および第2の対応情報として、第1および第2のハーモニーテーブルが用いられる。第1および第2のハーモニーテーブルを参照して、基準音に付加すべきハーモニー音が特定される。第1および第2のハーモニーテーブルの具体例については後述する。なお、第1および第2の対応情報として、ハーモニーテーブルの代わりに、基準音の音高とハーモニー音の音高との対応関係を表す関数等が用いられてもよい。
【0027】
外部記憶装置15は、記憶装置13と同様に、ハードディスク、光学ディスク、磁気ディスクまたはメモリカード等の記憶媒体を含み、ハーモニー情報生成プログラムを記憶してもよい。
【0028】
本実施の形態におけるハーモニー情報生成プログラムは、コンピュータが読み取り可能な記録媒体に格納された形態で提供され、ROM10または記憶装置13にインストールされてもよい。また、通信I/F14が通信網に接続されている場合、通信網に接続されたサーバから配信されたハーモニー情報生成プログラムがROM10または記憶装置13にインストールされてもよい。
【0029】
電子音楽装置1は、音源16、効果回路17およびサウンドシステム18をさらに備える。音源16および効果回路17はバス19に接続され、サウンドシステム18は効果回路17に接続される。音源16は、演奏操作子2により入力される演奏データまたはCPU11により生成されるハーモニー情報等に基づいて楽音信号を生成する。効果回路17は、音源16により生成される楽音信号に音響効果を付与する。
【0030】
サウンドシステム18は、デジタルアナログ(D/A)変換回路、増幅器およびスピーカを含む。このサウンドシステム18は、音源16から効果回路17を通して与えられる楽音信号をアナログ音信号に変換し、アナログ音信号に基づく音を発生する。それにより、楽音信号が再生される。電子音楽装置1において、主として演奏操作子2、RAM9、ROM10、CPU11および記憶装置13がハーモニー情報生成装置100を構成する。
【0031】
(2)ハーモニーテーブル
本例では、コード毎に第1および第2のハーモニーテーブルが用意される。第1のハーモニーテーブルに基づいて特定されるハーモニー音は、第2のハーモニーテーブルに基づいて特定されるハーモニー音に比べて、対象のコードに対して高い協和性を有する。コードに対するハーモニー音の協和性とは、コードの構成音とハーモニー音とが同時に鳴らされた場合の聴感的な安定性を意味する。
【0032】
図2は、第1および第2のハーモニーテーブルの具体例について説明するための図である。
図2(a)は、第1のハーモニーテーブルの例を示し、
図2(b)は、第2のハーモニーテーブルの例を示す。
図2(a)および
図2(b)のハーモニーテーブルは、Cメジャーコードに対応しており、Cメジャーコードを示すコード情報が取得されている場合に用いられる。
【0033】
以下の説明では、コードのルート音に対して、3度、5度、7度、9度・・・の音程をなす音をそれぞれ3rd、5th、7th、9th・・・と呼び、各音より半音高い音に♯を付し、各音より半音低い音に♭を付す。テンション音は、コードの構成音(例えば、ルート音、3rdおよび5th)との協和性が比較的低い音であり、代表的には9th、11thおよび13thであり、これらより半音高い音(♯9th等)、ならびにこれらより半音低い音(♭9th等)であってもよい。6thまたは7thがテンション音とされてもよい。本例では、コード毎にテンション音が予め定められている。
【0034】
本例において、第1および第2のハーモニーテーブルは、基準音の音高毎に、付加されるべきハーモニー音の音高を定めている。各音高は、音名で示される。本例では、1つの基準音に対して、異なる音高の3つのハーモニー音が付加される。ハーモニー音の音高が基準音の音高と異なるオクターブ領域に属する場合、ハーモニー音の音高として、オクターブ領域の高低が正符号または負符号により示される。本例では、ルート音である「C」から「B」までの長7度の範囲を1つのオクターブ領域とする。「−1」は、基準音が属するオクターブ領域よりも1つ低いオクターブ領域を表し、「+1」は、基準音が属するオクターブ領域よりも1つ高いオクターブ領域を表す。なお、
図2の例では「+」は用いられていない。例えば、
図2(a)において、基準音の「C」に対するハーモニー音の「E−1」は、基準音の「C」よりも6度低い「E」を意味し、基準音の「B」に対するハーモニー音の「E」は、基準音の「B」よりも5度低い「E」を意味する。
【0035】
図2(a)の第1のハーモニーテーブルは、ハーモニー音として、対象のコードの構成音(本例では、Cメジャーコードの構成音である「C」、「E」および「G」)のみを含み、テンション音を含まない。一方、
図2(b)の第2のハーモニーテーブルは、対象のコードの構成音に加えて、対象のコードのテンション音(本例では、Cメジャーコードの9thに相当する「D」)を含む。
【0036】
Cメジャーコード以外の各コードについても、
図2(a)および
図2(b)の例と同様に、ハーモニー音としてテンション音を含まない第1のハーモニーテーブル、およびハーモニー音としてテンション音を含む第2のハーモニーテーブルが予め用意される。なお、第2のハーモニーテーブルに含まれるテンション音は9thに限らず、コード毎に1または複数のテンション音が適宜定められる。
【0037】
基準音の音高が高いほど、付加されるハーモニー音の音高が高いことが好ましい。この場合、基準音の音高の変化の方向とハーモニー音の音高の変化の方向とが同じになるので、自然な流れのハーモニーが形成される。また、各コードに対して、異なる雰囲気のハーモニーを形成するための複数組の第1および第2のハーモニーテーブルが用意されてもよい。この場合、使用される第1および第2のハーモニーテーブルによって付加されるハーモニー音が異なる。ユーザは、複数組のうち1組の第1および第2のハーモニーテーブルを選択することにより、ハーモニーの雰囲気を切り替えることができる。
【0038】
(3)ハーモニー情報の具体例
本実施の形態では、各コード情報の取得時点と各基準音の音高情報の取得時点との時間的な関係に基づいて、第1および第2のハーモニーテーブルのうちの一方が選択される。時間的な関係とは、順序および経過時間等を含む。
【0039】
図3は、基準音に対するハーモニー音の付加の具体例について説明するための図である。
図3の上部には、区間T1,T2におけるコード情報および基準音の音高情報の取得例、基準音を表す音符、ならびに選択されるハーモニーテーブルが示される。なお、第1および第2のハーモニーテーブルは、それぞれ「1」および「2」で示される。
図3の下部には、基準音および付加されたハーモニー音を表す音符、ならびに付加されたテンション音が示される。本例において、拍子は4分の4であり、キー(調)は「Cメジャー」である。
【0040】
区間T1の開始時点で、コード情報として、Cメジャーコードが取得される。その後、区間T1における基準音の音高情報として、「C」、「D」、「F」および「E」が順に入力される。区間T2の開始時点で、コード情報として、Aマイナーコードが取得される。その後、区間T2における基準音の音高情報として、「E」、「A」および「E」が順に入力される。
【0041】
本例では、共通のコード情報に対応する複数の基準音のうち、当該コード情報の取得時点から順に取得された予め定められた数の基準音に対して、第1のハーモニーテーブルが選択される。すなわち、コード情報の取得後、1〜n番目(nは、予め定められた数)に取得される基準音には、第1のハーモニーテーブルが選択される。
【0042】
図3の例では、nが1である。そのため、コード情報の取得後、1番目に取得される基準音に対して、第1のハーモニーテーブルが選択される。具体的には、区間T1において、コード情報としてCメジャーコードが取得されてから1番目に取得される「C」に対して、第1のハーモニーテーブルが選択される。また、区間T2において、コード情報としてAマイナーコードが取得されてから1番目に取得される「E」に対して、第1のハーモニーテーブルが選択される。
【0043】
また、コード情報の取得時点から(n+1)番目以降に取得される基準音に対して、第2のハーモニーテーブルが選択される。
図3の例では、区間T1において、コード情報としてCメジャーコードが取得されてから2番目以降に取得される「D」、「F」および「E」に対して、第2のハーモニーテーブルが選択される。また、区間T2において、コード情報としてAマイナーコードが取得されてから2番目以降に取得される「A」および「E」に対して、第2のハーモニーテーブルが選択される。
【0044】
第1のハーモニーテーブルが選択されると、第1のハーモニーテーブルを参照して付加すべきハーモニー音が特定され、特定されたハーモニー音の音高情報を含むハーモニー情報が生成される。この場合、生成されるハーモニー情報は、テンション音の音高情報を含まない。一方、第2のハーモニーテーブルが選択されると、第2のハーモニーテーブルを参照して付加すべきハーモニー音が特定され、特定されたハーモニー音の音高情報を含むハーモニー情報が生成される。この場合、生成されるハーモニー情報は、テンション音の音高情報を含む。
【0045】
具体的には、区間T1において1番目に取得される基準音「C」に付加すべきハーモニー音の音高として、
図2(a)の第1のハーモニーテーブルを参照して、「G−1」、「E−1」および「C−1」が特定され、これらの基準音およびハーモニー音の音高情報を含むハーモニー情報が生成される。
【0046】
区間T1において2番目に取得される基準音「D」に付加すべきハーモニー音の音高として、
図2(b)の第2のハーモニーテーブルを参照して、「G−1」、「E−1」および「D−1」が特定され、これらの基準音およびハーモニー音の音高情報を含むハーモニー情報が生成される。続く基準音「F」および「E」についても同様に、
図2(b)の第2のハーモニーテーブルを参照して、ハーモニー情報が生成される。
【0047】
区間T2においては、1番目に取得される基準音「E」に付加すべきハーモニー音の音高として、Aマイナーコードに対応する第1のハーモニーテーブル(図示せず)を参照して、「C」、「A」および「E−1」が特定され、これらの基準音およびハーモニー音の音高情報を含むハーモニー情報が生成される。2番目に取得される基準音「A」、および3番目に入力される「E」については、Aマイナーコードに対応する第2のハーモニーテーブルを参照して、ハーモニー情報が生成される。
【0048】
なお、
図3の例では、コード情報の取得時点と基準音の音高情報の取得時点との時間的な関係として、コード情報の取得後における各基準音の音高情報の取得順に基づいて、第1および第2のハーモニーテーブルのうち一方のハーモニーテーブルが選択されるが、他の条件でハーモニーテーブルの選択が行われてもよい。例えば、コード情報の取得時点から予め定められた実時間内でまたは予め定められた拍数内で取得された基準音に対しては、第1のハーモニーテーブルが選択されてもよい。
【0049】
(4)機能的な構成
図4は第1の実施の形態に係るハーモニー情報生成装置100の機能的な構成を示すブロック図である。
図4に示すように、ハーモニー情報生成装置100は、コード取得部21、基準音取得部22、対応情報取得部23、選択部24、生成部25および出力制御部26を含む。
図1のCPU11がROM10または記憶装置13に記憶されたハーモニー情報生成プログラムを実行することにより、
図4の各機能部が実現される。これらの機能部は、電子回路等のハードウエアにより実現されてもよい。
【0050】
コード取得部21は、コード情報を順次取得し、基準音取得部22は、取得されるコード情報と対応するように、基準音の音高情報を順次取得する。例えば、ユーザが
図1の演奏操作子2を操作することにより、MIDI(Musical Instrument Digital Interface)信号としてノートオン信号が発生される。コード取得部21は、演奏操作子2のコード鍵域の操作を示すノートオン信号に基づいて、コード情報を取得する。基準音取得部22は、演奏操作子2のメロディ鍵域の操作を示すノートオン信号に基づいて、基準音の音高情報を取得する。
【0051】
対応情報取得部23は、
図1の記憶装置13に記憶された第1および第2のハーモニーテーブルを取得する。選択部24は、各コード情報の取得時点と各基準音の音高情報の取得時点との時間的な関係に基づいて、各基準音に対して、第1および第2のハーモニーテーブルのうち一方を選択する。本例において、選択部24は、共通のコード情報に対応する複数の基準音のうち、当該コード情報の取得時点から順に取得された予め定められた数の基準音に対して、第1のハーモニーテーブルを選択し、それ以降に取得される基準音に対して、第2のハーモニーテーブルを選択する。
【0052】
生成部25は、選択されたハーモニーテーブルに基づいて、各基準音に対して付加すべきハーモニー音を特定し、特定されたハーモニー音の音高情報を含むハーモニー情報を生成する。本例において、生成部25は、第1のハーモニーテーブルが選択された場合に、テンション音の音高情報を含むハーモニー情報を生成し、第2のハーモニーテーブルが選択された場合に、テンション音の音高情報を含まないハーモニー情報を生成する。出力制御部26は、生成されたハーモニー情報に基づいて、基準音およびハーモニー音が出力されるように
図1の音源16を制御する。また、出力制御部26は、取得されたコード情報に基づいて、コード音が出力されるように
図1の音源16を制御する。なお、コード音の代わりに、またはコード音に加えて、取得されたコード情報に基づく自動伴奏音が出力されてもよい。
【0053】
(5)ハーモニー情報生成処理
図5および
図6は、
図4の各機能部によるハーモニー情報生成処理の一例を示すフローチャートである。
図5および
図6のハーモニー情報生成処理は、
図1のCPU11がROM10または記憶装置13に記憶されたハーモニー情報生成プログラムを実行することにより行われる。また、本例では、
図1の記憶装置13に、取得されているコード情報を表す「現在のコード」、ならびに取得されているコード情報に対応する第1および第2のハーモニーテーブルを表す「対応テーブル」が記憶される。
【0054】
まず、コード取得部21は、コード情報の入力を検出したか否かを判定する(ステップS1)。例えば、演奏操作子2のコード鍵域の押鍵を示すノートオン信号が発生されると、コード取得部21は、コード情報の入力を検出する。コード情報の入力が検出された場合、コード取得部21は、入力されたコード情報を取得し(ステップS2)、記憶装置13に記憶される「現在のコード」を取得されたコード情報が示すコードに更新する(ステップS3)。また、対応情報取得部23が、取得されたコード情報に対応する第1および第2のハーモニーテーブルを取得し、記憶装置13に記憶される「対応テーブル」を更新する(ステップS4)。また、選択部24が、カウンタ値を表す“COUNT”を0にリセットする(ステップS5)。ステップS1でコード情報の入力が検出されていない場合、ステップS2〜S5がスキップされる。
【0055】
次に、出力制御部26が、「現在のコード」に対応するコード音がサウンドシステム18から出力されるように音源16を制御する(ステップS6)。これにより、
図1のサウンドシステム18が、コード音を出力する。なお、コード音の出力は、例えば、演奏操作子2のコード鍵域の押鍵が解除された時点(ノートオフ信号が発生された場合)、あるいは次のコード情報が取得された時点で停止される。
【0056】
次に、基準音取得部22は、基準音の消音が指示されたか否かを判定する(ステップS7)。例えば、演奏操作子2のメロディ鍵域における押鍵の解除を示すノートオフ信号が発生されると、基準音取得部22は、基準音の消音が指示されたと判定する。基準音の消音が指示されると、出力制御部26は、その時点で出力されている基準音およびハーモニー音が消音されるように音源16を制御する(ステップS8)。
【0057】
次に、基準音取得部22は、基準音の音高情報の入力を検出したか否かを判定する(ステップS9)。例えば、演奏操作子2のメロディ鍵域の押鍵を示すノートオン信号が発生されると、基準音取得部22は、基準音の音高情報の入力を検出する。基準音の音高情報の入力が検出されていない場合、コード取得部21がステップS1に戻る。基準音の音高情報の入力が検出された場合、基準音取得部22が基準音の音高情報を取得するとともに(ステップS10)、選択部24が“COUNT”に1を加算する(ステップS11)。
【0058】
次に、選択部24は、“COUNT”が2以上であるか否かを判定する(
図6のステップS12)。ステップS2でコード情報が取得された後、基準音の音高情報が1つだけ入力されている場合には、“COUNT”が1となり、基準音の音高情報が2つ以上入力されている場合には、“COUNT”が2以上となる。
【0059】
“COUNT”が2より小さい場合(1である場合)、選択部24は、「対応テーブル」として記憶される第1および第2のハーモニーテーブルのうち第1のハーモニーテーブルを選択し(ステップS13)、“COUNT”が2以上である場合、選択部24は、「対応テーブル」として記憶される第1および第2のハーモニーテーブルのうち第2のハーモニーテーブルを選択する(ステップS14)。
【0060】
続いて、生成部25が、選択されたハーモニーテーブルを参照して、直前のステップS10で取得された基準音に付加すべき1以上のハーモニー音を特定し、ハーモニー情報を生成する(ステップS15)。ステップS13で第1のハーモニーテーブルが選択された場合、ステップS15で生成されるハーモニー情報は、テンション音の音高情報を含まない。ステップS14で第2のハーモニーテーブルがされた場合、ステップS15で生成されるハーモニー情報は、テンション音の音高情報を含む。次に、出力制御部26は、生成されたハーモニー情報に基づいて、基準音およびハーモニー音が出力されるように音源16を制御する(ステップS16)。その後、ステップS1〜S16が繰り返される。
【0061】
(6)第1の実施の形態の効果
第1の実施の形態に係るハーモニー情報生成装置100においては、第1および第2のハーモニーテーブルが選択的に用いられることにより、対象のコードに対して異なる協和性を有するハーモニー音が基準音に付加される。そのため、ハーモニーが単調となることが防止される。また、各コード情報の取得時点と各基準音の音高情報の取得時点との時間的な関係に基づいて、各基準音に対して、第1および第2のハーモニーテーブルのうち一方が選択される。それにより、ハーモニーが不安定となりやすいタイミングで、協和性の低いハーモニー音が付加されることを防止し、聴感的に不自然とならないようにハーモニー音を付加することが可能となる。また、ユーザの演奏動作によってリアルタイムで基準音が取得される場合でも、異なる協和性のハーモニー音を付加するためにユーザが特定の演奏動作を行う必要がないので、ユーザの演奏の自由度が確保される。
【0062】
また、コードが切り替わった直後には、協和性の低いハーモニー音が付加されることによってハーモニーが不安定となりやすい。そこで、本実施の形態では、コード情報の取得時点から1〜n番目に取得される基準音には、第1のハーモニーテーブルが選択され、コード情報の取得時点から(n+1)番目以降に取得される基準音には、第2のハーモニーテーブルが選択される。これにより、コードが切り替わった直後には、協和性の低いハーモニー音が付加されないので、ハーモニーが聴感的に不自然となることが防止される。また、コードが切り替わってから一定数の基準音が取得されると、比較的協和性の低いハーモニー音が付加され得る。これにより、ハーモニーに変化が加わり、ハーモニーが単調となることが防止される。
【0063】
[2]第2の実施の形態
本発明の第2の実施の形態に係るハーモニー情報生成装置100について、上記第1の実施の形態に係るハーモニー情報生成装置100と異なる点を説明する。
【0064】
(1)特定音
図7は、第2の実施の形態で用いられる第1および第2のハーモニーテーブルについて説明するための図である。
図7(a)は、第1のハーモニーテーブルの例を示し、
図7(b)は、第2のハーモニーテーブルの例を示す。
図7(a)および
図7(b)の第1および第2のハーモニーテーブルは、Cシックス(C
6)コードに対応しており、Cシックスコードを示すコード情報が取得されている場合に用いられる。
【0065】
本実施の形態において、第1のハーモニーテーブルは、ハーモニー音として、対応するコードに対して使用可能な複数のスケールにそれぞれ含まれる共通の音(以下、スケール共通音と呼ぶ。)のみを含む。一方、第2のハーモニーテーブルは、ハーモニー音として、スケール共通音に加えて、少なくとも1つの使用可能なスケールに含まれかつ他の少なくとも1つの使用可能なスケールに含まれない音(以下、特定音と呼ぶ。)を含む。
【0066】
各コードに対して使用可能なスケールは、例えば、コードのルート音から始まり、かつコードの全ての構成音を含むスケールである。Cシックスコードに対して使用可能なスケールの例として、Cメジャースケール、CリディアンスケールおよびCミクソリディアンスケールがある。これらのスケールは、コードのルート音である「C」から始まり、かつコードの構成音である「C」、「E」、「G」および「A」を含む。Cメジャースケール、CリディアンスケールおよびCミクソリディアンスケールのスケール共通音は、「C」、「D」、「E」、「G」および「A」であり、特定音は、「F」、「F♯」、「B」および「B♭」である。
【0067】
図7(a)の第1のハーモニーテーブルは、ハーモニー音として、スケール共通音である「C」、「D」、「E」、「G」および「A」を含む。また、
図7(a)の例では、基準音がコードの構成音である場合、付加されるハーモニー音はコードの構成音(「C」、「E」、「G」または「A」)である。基準音の音高がコードの構成音でない場合、付加されるハーモニー音は、スケール共通音(「C」、「D」、「E」、「G」または「A」)である。
【0068】
図7(b)の第2のハーモニーテーブルは、ハーモニー音として、上記のスケール共通音に加えて、特定音である「F」、「F♯」、「B」および「B♭」を含む。また、
図7(b)の例では、基準音がコードの構成音である場合、付加されるハーモニー音は、コードの構成音である。基準音がコードの構成音でない場合、付加されるハーモニー音は、スケール共通音または特定音である。より詳細には、基準音が、コードの構成音以外のスケール共通音である「D」である場合、または特定音である「F」、「F♯」、「B」もしくは「B♭(A♯)」である場合、付加されるハーモニー音は、スケール共通音である。基準音がスケール共通音および特定音のいずれでもない「C♯」、「D♯」または「G♯」である場合、付加されるハーモニー音は、特定音を含む。
【0069】
図7(b)の例では、基準音の「C♯」、「D♯」および「G♯」に付加されるハーモニー音として特定音が含まれることにより、これらの基準音とハーモニー音とによりディミニッシュコードが構成される。「C♯」、「D♯」および「G♯」は、コードの構成音ではなく、スケール共通音および特定音のいずれでもないので、持続音ではなく、他の基準音に移行するための経過音として使用される可能性が高い。ディミニッシュコードは、経過的に使用されることにより、聴感的に自然でありつつ独特の響きを生む。したがって、「C♯」、「D♯」および「G♯」に対して、ディミニッシュコードを構成するハーモニー音が付加されることにより、ハーモニーが単調となることが効果的に防止される。
【0070】
なお、ハーモニーの前後のつながりが滑らかで聴感的に自然となるのであれば、上記の例と異なるハーモニー音が付加されてもよい。例えば、基準音がコードの構成音である場合に、コードの構成音以外のスケール共通音または特定音がハーモニー音として付加されてもよい。
【0071】
(2)機能的な構成
図8は、第2の実施の形態に係るハーモニー情報生成装置100の機能的な構成を示すブロック図である。
図8の例について、
図4の例と異なる点を説明する。
図8のハーモニー情報生成装置100は、
図4の選択部24および生成部25に代えて、判定部24Aおよび生成部25Aを含む。
【0072】
判定部24Aは、各コード情報の取得時点と各基準音の音高情報の取得時点との時間的な関係に基づいて、各基準音に対して、特定音をハーモニー音として付加可能であるか否かを判定する。本例において、判定部24Aは、共通のコード情報に対応する複数の基準音のうち、当該コード情報の取得時点から順に取得された予め定められた数の基準音に対して、特定音を付加可能でないと判定する。
【0073】
生成部25Aは、特定音を付加可能であると判定された場合に、特定音の音高情報を含むハーモニー情報を生成し、特定音を付加可能でないと判定された場合に、特定音の音高情報を含まないハーモニー情報を生成する。
【0074】
図8の各機能部は、
図4の各機能部と同様に、
図5および
図6のハーモニー情報生成処理を行う。この場合、ステップS5,S11〜S14の処理は、選択部24の代わりに判定部24Aが行い、ステップS15の処理は、生成部25の代わりに生成部25Aが行う。
【0075】
(3)第2の実施の形態の効果
第2の実施の形態に係るハーモニー情報生成装置100においては、ハーモニー音として特定音を付加可能であると判定された場合に、特定音の音高情報を含むハーモニー情報が生成される。ハーモニー音として特定音が付加されることにより、ハーモニーが単調となることが防止される。また、各コード情報の取得時点と各基準音の音高情報の取得時点との時間的な関係に基づいて、ハーモニー音として特定音を付加可能であるか否かが判定される。それにより、ハーモニーが不安定となりやすいタイミングで、特定音が付加されることを防止し、聴感的に不自然とならないようにハーモニー音を付加することが可能となる。また、ユーザの演奏動作によってリアルタイムで基準音が取得される場合でも、特定音のハーモニー音を付加するためにユーザが特定の演奏動作を行う必要がないので、ユーザの演奏の自由度が確保される。
【0076】
(4)変形例
判定部24Aは、上記時間的な関係に加えて、対応するコード情報がテンション音を含むコードを表すか否かに基づいて、特定音を付加可能であるか否かを判定してもよい。さらに、判定部24Aは、上記時間的な関係に加えて、対応するコード情報がテンション音を含むコードに変換可能なコードを表すか否かに基づいて、テンション音を付加可能であるか否かを判定してもよい。テンション音を含むコードに変換可能であるか否かは、コードの変換によって音楽的な破綻が生じるか否かによる。変換の可否の判定は、キーおよび前の区間のコード等に基づいて行われてもよく、あるいはコード毎に変換パターンを定めた変換テーブルに基づいて行われてもよい。
【0077】
また、本実施の形態では、第1および第2のハーモニーテーブルを参照してハーモニー音が特定されるが、他の方法でハーモニー音が特定されてもよい。例えば、基準音の音高とハーモニー音の音高との関係を表す関数が定められ、その関数を用いてハーモニー音が特定されてもよい。あるいは、コード音または特定音から無作為にハーモニー音が特定されてもよい。いずれの場合においても、特定音を付加可能であると判定された場合には、特定音を含むようにハーモニー音が特定され、特定音を付加可能でないと判定された場合には、特定音を含まないようにハーモニー音が特定される。
【0078】
また、第1の実施の形態に係るハーモニー情報生成装置100において、第1および第2の対応情報として、
図7の例と同様の特徴を有する第1および第2のハーモニーテーブルが用いられてもよい。
【0079】
[3]ハーモニーテーブルの他の例
第1および第2の対応情報として用いられる第1および第2のハーモニーテーブルは、上記の例に限定されない。第1および第2の対応情報として、以下のようなハーモニーテーブルが用いられてもよい。
【0080】
図9および
図10は、ハーモニーテーブルの他の例を示す図である。
図9(a)および
図10(a)には、第1のハーモニーテーブルが示され、
図9(b)および
図10(b)には、第2のハーモニーテーブルが示される。
【0081】
図9(a)および
図9(b)のハーモニーテーブルは、Cシックスコードに対応しており、Cシックスコードを示すコード情報が取得されている場合に用いられる。
図9(a)の第1のハーモニーテーブルは、ハーモニー音として、「C」、「D」、「E」、「G」および「A」を含む。これらのハーモニー音は、
図7(a)の例に含まれるハーモニー音と同じであり、対応するコードに対して使用可能な複数のスケール(Cメジャースケール等)に含まれる共通の音である。
【0082】
図9(b)の第2のハーモニーテーブルは、ハーモニー音として、
図9(a)の第1のハーモニーテーブルに含まれるハーモニー音に加えて、「F」および「G♯」を含む。これらのハーモニー音は、Cメジャービバップスケールの構成音に相当する。また、
図9(b)の例では、基準音の「D」、「F」、「G♯」および「B」に対して、ディミニッシュコードを構成するハーモニー音が付加される。
【0083】
図10(a)および
図10(b)のハーモニーテーブルは、Cドミナントセブンスコードに対応しており、Cドミナントセブンスコードを示すコード情報が取得されている場合に用いられる。
図10(a)の第1のハーモニーテーブルは、ハーモニー音として、「C」、「D」、「E」、「G」および「A♯」を含む。これらのハーモニー音は、対応するコードに対して使用可能なコードの1つであるCミクソリディアンスケールの構成音である。
【0084】
図10(b)の第2のハーモニーテーブルは、ハーモニー音として、
図10(a)の第1のハーモニーテーブルに含まれるハーモニー音に加えて、「D♯」、「F」、「F♯」、「G♯」および「B」を含む。これらのハーモニー音は、対応するコードに対して使用可能な複数のスケール(例えば、CブルーノートスケールおよびCホールトーンスケール)の構成音の組み合わせからなる。また、
図10(b)の例では、基準音の「D」、「F」、「A」および「B」に対して、ディミニッシュコードを構成するハーモニー音が付加される。
【0085】
このように、第1および第2の対応情報として、種々の特徴を有する第1および第2のハーモニーテーブルを用いることが可能である。いずれの例においても、第1および第2のハーモニーテーブルに含まれるハーモニー音は、対応するコードに対して使用可能な音の組み合わせからなる。
【0086】
また、対象のコードとの間でスムーズな移行が可能なコードの構成音をハーモニー音として使用してもよい。上記の例では、ディミニッシュコードが、対象のコードとの間でスムーズな移行が可能なコードに相当する。例えば、
図9の例において、対象のコードであるC
6からDdimへの移行およびDdimからC
6への移行はスムーズに行うことができる。そのため、経過的にこのようなコードを構成するハーモニー音が用いられることにより、聴感的に自然であり、かつハーモニーが単調とならない。
【0087】
図9および
図10の例においても、第1のハーモニーテーブルに基づいて特定されるハーモニー音は、第2のハーモニーテーブルに基づいて特定されるハーモニー音に比べて、対象のコードに対して高い協和性を有する。そのため、第1および第2のハーモニーテーブルが選択的に用いられることにより、ハーモニーが単調となることが防止される。また、各コード情報の取得時点と各基準音の音高情報の取得時点との時間的な関係に基づいてハーモニーテーブルが選択されることにより、ハーモニーが不安定となりやすいタイミングで協和性の低いハーモニー音が付加されることを防止し、聴感的に不自然とならないようにハーモニー音を付加することが可能となる。
【0088】
具体的には、左手によりコード音が入力されるタイミングで、そのコード音に対して協和性が低いハーモニー音が付加されることを防止することができる。あるいは、他の演奏者とアンサンブルを行う場合に、他の演奏者がコード音を奏するタイミングで、そのコード音に対して協和性の低いハーモニー音が付加されることを防止することができる。このように、種々の状況において、単調でなくかつ聴感的に自然なハーモニーを生成することができる。
【0089】
[4]他の実施の形態
上記実施の形態では、ユーザの演奏時にリアルタイムでハーモニー情報が生成されるが、演奏データの取得後に非リアルタイムでハーモニー情報が生成されてもよい。
【0090】
ハーモニー情報の生成の際に、上記の条件に加えて他の条件が考慮されてもよい。例えば、基準音の音高情報の取得時点が強拍および弱拍のいずれであるかが判定され、弱拍である場合にのみに、第2のハーモニーテーブルが選択されてもよい。また、非リアルタイムでハーモニー情報が生成される場合には、入力された基準音の音価を考慮してハーモニー情報が生成されてもよい。例えば、基準音が8分音符以下の長さである場合にのみ、第2のハーモニーテーブルが選択されてもよい。
【0091】
ユーザが実際に演奏を行う場合、ユーザの弾き方等によっては、同じタイミングで弾かれるべきコードとメロディとがわずかにずれて弾かれることがある。そのため、基準音の音高情報が入力された後に、その基準音に対応するコード情報が入力され、ハーモニー情報が適切に生成されないことがある。このような入力タイミングのずれによる不具合を避けるため、基準音の音高情報が入力されてからハーモニー情報が生成されるまでの間に一定の遅延時間(例えば数ms〜数十ms)が設定され、遅延時間内にコード情報が入力された場合には、そのコード情報に基づいて、先に入力された基準音に対応するハーモニー情報が生成されてもよい。これにより、入力タイミングがずれた場合でも、適正にハーモニー情報を生成することが可能となる。
【0092】
ユーザがコード鍵域の操作によってコード情報を直接的に入力する代わりに、ユーザの演奏から公知の技術によってコード情報が検出されてもよい。また、曲の各区間で取得すべきコード情報が記憶装置13等に予め記憶されていてもよい。あるいは、記憶媒体等から読み取られた曲データからコード情報が検出されてもよい。同様に、基準音の音高情報が、記憶装置13等に予め記憶されていてもよく、記憶媒体等から読み取られた曲データから検出されてもよい。
【0093】
ハーモニー情報生成装置100は、電子音楽装置1に限らず、パーソナルコンピュータまたはスマートデバイス(smart device)等の他の電子機器に適用されてもよい。
【0094】
[5]請求項の各構成要素と実施の形態の各部との対応
以下、請求項の各構成要素と実施の形態の各部との対応の例について説明するが、本発明は下記の例に限定されない。請求項の各構成要素として、請求項に記載されている構成または機能を有する他の種々の要素を用いることができる。
【0095】
上記実施の形態では、ハーモニー情報生成装置100がハーモニー情報生成装置の例であり、コード取得部21がコード取得手段の例であり、基準音取得部22が基準音取得手段の例であり、対応情報取得部23が対応情報取得手段の例であり、選択部24が選択手段の例であり、判定部24Aが判定手段の例であり、生成部25,25Aが生成手段の例である。