JP4006301B2 - Code detection device for electronic musical instrument, code detection method and program - Google Patents
Code detection device for electronic musical instrument, code detection method and program Download PDFInfo
- Publication number
- JP4006301B2 JP4006301B2 JP2002255238A JP2002255238A JP4006301B2 JP 4006301 B2 JP4006301 B2 JP 4006301B2 JP 2002255238 A JP2002255238 A JP 2002255238A JP 2002255238 A JP2002255238 A JP 2002255238A JP 4006301 B2 JP4006301 B2 JP 4006301B2
- Authority
- JP
- Japan
- Prior art keywords
- chord
- code
- type
- detected
- route
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、電子楽器のコード検出技術に関し、特に鍵盤操作に応じてコード検出する技術に関する。
【0002】
【従来の技術】
電子楽器には、手操作用の手鍵盤と足操作用の足鍵盤とを有するものがある。手鍵盤は、2段鍵盤になっており、上鍵盤でメロディラインを演奏し、下鍵盤でコードラインを演奏する。自動伴奏機能を有する電子楽器では、下鍵盤及び足鍵盤の操作に応じてコード検出を行い、検出されたコードに応じた自動伴奏が行われる。コード検出方法の一例は、特公平5−84920に記載されている。
【0003】
コード検出されるコードには、分数コード(例えばC/B)と分数コードではない通常のコードとがある。分数コードは、分子のコードが楽譜の上パート(手鍵盤に相当)であるコードパートのコードであり、分母のコードが楽譜の下パート(足鍵盤に相当)であるベースパートのベースルートである。
【0004】
電子楽器では、コードルート及びコードタイプを検出する。検出されたコードルートと足鍵盤で押された鍵との音名が同じときには、分数コードではない通常のコードとして検出される。逆に、検出されたコードルートと足鍵盤で押された鍵との音名が異なるときには、分数コード(例えばC/B)として検出される。しかし、この方法により検出されたコードは完全ではなく、結果的に不適切なコードとして検出されてしまうことがある。この問題を解決する技術として、本発明者の発明による特開2002−196755号公報が開示されている。
【0005】
【発明が解決しようとする課題】
オーギュメント又はディミニッシュ等の転回コードは、同じ音高の間隔でコード構成音が構成されているため、コードルートを特定することができない。例えば、Cdimのコードの場合、ドミ♭ファ♯ラで構成される。この場合、4つの構成音がすべてコードルートになりえて、演奏者の意思に応じてコードルートが決定する。電子楽器では、コード構成音中の最低音をコードルートとしたり、足鍵盤の音をコードルートとして機械的に決定する。そのため、演奏者の意図とは異なるコードルートが決定されてしまうことがある。
【0006】
例えば、C→Caug→Fの順番でコード演奏を行う場合、特にオルガン等の場合、実際はドミソ→ドミソ♯→ドファラよりも、ソドミ→ソ♯ドミ→ラドファのような転回形で演奏することが多い(本明細書ではコード構成音中の最低音を最左に記す)。この場合、電子楽器でコード検出を行うと、C→G♯aug→Fと検出されてしまい、演奏者の望んだ演奏を行うことができない。
【0007】
また、足鍵盤を交えた検出を行う場合も、コードがC→Caug→Fの場合、ベースルートは、C→E→Fと演奏することが一般的である。本来ならば、C→Caug/E→Fとして検出するのが適切であるが、C→Eaug→Fと誤って検出されてしまい、好ましいコード検出ができない。
【0008】
また、このコード進行に対応するためにソ♯ドミの転回形もCaugと検出するようにすると、G♯augが検出できなくなり、今度は曲のキーが変わったときに、対応できなくなるという問題がある。
【0009】
また、オーギュメント及びディミニッシュ以外でも、B♭及びDm♯5は同じ構成音のコードであるため、いずれのコードであるのか特定できず、使用頻度で特定するしかないという問題がある。例えば、ファシ♭レと弾くと、一般的にはB♭であるが、Dm(ファラレ)からファシ♭(ラ♯)レと移動するクリシェの場合は、B♭よりもDm♯5の方が適しているという問題がある。
【0010】
手鍵盤でラドミを押鍵し、足鍵盤でファ♯を押鍵すると、一般的にはF♯m7♭5と検出するのが適している。しかし、手鍵盤でAm(ラドミ)を押さえたまま、足鍵盤でA→G♯→G→F♯と弾くベースによるクリシェの場合も、Am→Am/G♯→Am/G→F♯m7♭5となり、この場合に限っては、F♯m7♭5よりもAm/F♯と検出される方が好ましい。
【0011】
本発明の目的は、演奏の流れに応じて、演奏者が意図するコードを検出することである。
本発明の他の目的は、オーギュメントにおいて最も適したコードルートを選択することである。
本発明のさらに他の目的は、ディミニッシュにおいて最も適したコードルートを選択することである。
本発明のさらに他の目的は、クリシェにおいて最も適したコードを選択することである。
【0012】
【課題を解決するための手段】
本発明の一観点によれば、手操作用の手鍵盤と足操作用の足鍵盤とを有する演奏操作用の演奏鍵盤と、前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出部と、前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出部と、前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出部と、前記第2のコードタイプ及び前記第3のコードタイプの両方がオーギュメントであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定部とを有する電子楽器のコード検出装置が提供される。
本発明の他の観点によれば、手操作用の手鍵盤と足操作用の足鍵盤とを有する演奏操作用の演奏鍵盤と、前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出部と、前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出部と、前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出部と、前記第2のコードタイプ及び前記第3のコードタイプの両方がディミニッシュであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定部とを有する電子楽器のコード検出装置が提供される。
本発明のさらに他の観点によれば、手操作用の手鍵盤と足操作用の足鍵盤とを有する演奏操作用の演奏鍵盤を有する電子楽器のコード検出方法であって、前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出ステップと、前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出ステップと、前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出ステップと、前記第2のコードタイプ及び前記第3のコードタイプの両方がオーギュメントであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定ステップとを有する電子楽器のコード検出方法が提供される。
本発明のさらに他の観点によれば、手操作用の手鍵盤と足操作用の足鍵盤とを有する演奏操作用の演奏鍵盤を有する電子楽器のコード検出方法であって、前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出ステップと、前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出ステップと、前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出ステップと、前記第2のコードタイプ及び前記第3のコードタイプの両方がディミニッシュであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定ステップとを有する電子楽器のコード検出方法が提供される。
本発明のさらに他の観点によれば、手操作用の手鍵盤と足操作用の足鍵盤とを有する演奏操作用の演奏鍵盤を有する電子楽器のコード検出プログラムであって、前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出ステップと、前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出ステップと、前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出ステップと、前記第2のコードタイプ及び前記第3のコードタイプの両方がオーギュメントであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定ステップとをコンピュータに実行させるためのプログラムが提供される。
本発明のさらに他の観点によれば、手操作用の手鍵盤と足操作用の足鍵盤とを有する演奏操作用の演奏鍵盤を有する電子楽器のコード検出プログラムであって、前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出ステップと、前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出ステップと、前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出ステップと、前記第2のコードタイプ及び前記第3のコードタイプの両方がディミニッシュであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定ステップとをコンピュータに実行させるためのプログラムが提供される。
【0013】
本発明によれば、演奏鍵盤の操作のみならず前回検出されたコードに応じて、今回のコードを検出するので、演奏の流れに応じた演奏者が意図するコードを検出することができる。
【0014】
【発明の実施の形態】
図1は、本発明の実施形態による電子楽器の概略構成例を示す。電子楽器は、手操作用の手鍵盤と足操作用の足鍵盤2とを有する。手鍵盤は、2段鍵盤であり、メロディラインを演奏するための上鍵盤とコードラインを演奏するための下鍵盤1を有する。
【0015】
下鍵盤1で押鍵操作がされると下鍵盤1はキーオンイベントを出力し、下鍵盤1で離鍵操作がされると下鍵盤1はキーオフイベントを出力する。コード決定処理手段4は、下鍵盤1のキーオン/オフイベントに応じて、仮の下鍵盤コードルート及び仮の下鍵盤コードタイプを検出する。
【0016】
足鍵盤2で押鍵操作がされると足鍵盤2はキーオンイベントを出力し、足鍵盤2で離鍵操作がされると足鍵盤2はキーオフイベントを出力する。コード決定処理手段4は、足鍵盤2のキーオン/オフイベントに応じて、仮の足鍵盤ベースルートを検出する。
【0017】
次に、コード決定処理手段4は、上記の仮の下鍵盤コードルート、下鍵盤コードタイプ、足鍵盤ベースルート及び前回検出されたコードに応じて、真のコードルート及び真のコードタイプを決定すると共に、ベースルートの有無を決定する。具体的には、オーギュメント、ディミニッシュ及びクリシェの場合に、前回検出されたコードに応じてコード検出を行う。ベースルートが有るときには、上記の仮の足鍵盤ベースルートが真のベースルートとして決定され、分数コードとなる。分数コードの分母がベースルートになり、分子が上記の真のコードルートになる。ベースルートが無しと決定されると、分数コードではない通常のコードとなる。
【0018】
スタイル番号スイッチ3は、例えばロックやジャズ等の自動伴奏のスタイルを選択するためのスイッチであり、そのスイッチ操作に応じてスタイル番号を出力する。
【0019】
自動伴奏発音処理手段5は、上記のスタイル番号に応じた自動伴奏パターンを読み出し、上記の真のコードルート、真のコードタイプ及びベースルートに応じて自動伴奏を発音する。自動伴奏は、例えばドラム、コード(ピアノ音やギター音等)、ベースの所定パターンを繰り返し発音することにより行う。コード伴奏は上記の真のコードルート及びコードタイプに応じて発音され、ベース伴奏は上記のベースルートに応じて発音される。
【0020】
図2は、図1のコード決定処理手段4の具体的構成を示す。ここでは、オーギュメント、ディミニッシュ及びクリシェ以外の一般のコードのコード検出方法を説明する。下鍵盤で3音以上が同時に押鍵されると、その押鍵に基づくコードルート及びコードタイプを検出することが可能である。しかし、下鍵盤で1音又は2音のみの押鍵がされると、その押鍵に基づくコードルート及びコードタイプを検出することが困難であるので、下鍵盤と足鍵盤の操作に応じてコード検出を行う。
【0021】
まず、下鍵盤で3音以上が同時に押鍵された場合を説明する。第1のキーオンビットマップ作成手段11は、下鍵盤のキーオン/オフイベントを入力すると、下鍵盤で押鍵されてキーオンになっているすべてのキーナンバ(音高)を第1のキーオンビットマップとして作成する。その際、キーオンになっているキーナンバのビットを1にし、キーオフになっているキーナンバのビットを0にする。
【0022】
第2のキーオンビットマップ作成手段12は、上記の第1のキーオンビットマップのうちのコード検出範囲にあるキーナンバのみを検出して、第2のキーオンビットマップを作成する。
【0023】
仮コードルート作成手段20は、上記の第2のキーオンビットマップのうちの最低音を仮のコードルートとして検出する。一方、第3のキーオンビットマップ作成手段13は、上記の第2のキーオンビットマップを基に1オクターブの範囲内に圧縮された第3のキーオンビットマップを作成する。すなわち、上記の仮のコードルートとなる最低音から始まる1オクターブ内の音名として表現する。その際、仮のコードルートとなる最低音は必ずビットが1になることがわかっているので、その最低音のビットを省略して11ビットで第3のキーオンビットマップを作成することができる。
【0024】
アドレス作成手段14は、上記の第3のキーオンビットマップを基に、テーブルを参照するために必要なアドレスを作成する。テーブル15は、図3に示すように、上記のオクターブマップアドレス101に応じて、コードルートシフト値102及び下鍵盤コードタイプ103を出力する。決定手段16は、仮コードルート作成手段20から仮のコードルートを入力し、テーブル15からコードルートシフト値102及び下鍵盤コードタイプ103を入力する。そして、決定手段16は、仮のコードルートにコードルートシフト値102を加算して修正し、下鍵盤コードルートを記憶手段21に記録し、下鍵盤コードタイプ103を記憶手段22に記録する。
【0025】
図3は、テーブル15の一部の内容例を示す。アドレスパターン111は、例えば、構成音がシドミであり、仮のコードルートが最低音のBになる。この仮のコードルートにシフト値102として「1」を加算することにより、下鍵盤コードルートはCになる。コードタイプ103はM7になる。また、下鍵盤でドミソ♯を押鍵するとCaugが検出され、下鍵盤でソ♯ドミを押鍵するとG♯augが検出される。
【0026】
図2において、コードルート記憶手段21は、上記の修正された下鍵盤のコードルートを記憶する。コードタイプ記憶手段22は、上記の下鍵盤コードタイプを記憶する。ベースオフセット値作成手段23は、足鍵盤のキーオン/オフイベントを入力し、足鍵盤のキーオンイベント内のキーナンバ(ベースルート)からコードルート記憶手段21内の下鍵盤コードルートを減算(差分)し、ベースオフセット値を作成する。このベースオフセット値は、図4のテーブル内のベースオフセット値202に相当する。
【0027】
テーブル24は、図4に示すように、コードタイプ記憶手段22内の下鍵盤コードタイプ201、及びベースオフセット値作成手段23が作成したベースオフセット値202を入力し、ベースルートのオン/オフ203、コードルートシフト値204及びコードタイプ205を出力する。なお、図4は、テーブル24の一部の内容例を示す。
【0028】
決定手段25は、テーブル24に応じて、真のコードルート及び真のコードタイプを決定すると共に、ベースルートのオン/オフ(有無)を決定する。真のコードルートは、コードルート記憶手段21内の下鍵盤コードルートに図4のコードルートシフト値204を加算したものである。真のコードタイプは、図4のコードタイプ205になる。ベースルートのオン/オフは、図4のベースルートのオン/オフ203になる。ベースルートがオン(有り)のときには、足鍵盤のキーナンバ(ベースルート)を真のベースルートにする。
【0029】
記憶手段26には、真のコードルート、真のコードタイプ及びベースルートのオン/オフが記憶され、ベースルートがオンのときにはベースルートも記憶される。
【0030】
以上のように、第1のコード検出部(決定手段16)は、変換テーブル15を用いて、手鍵盤(下鍵盤)の操作に応じて、第1のコードルート及び第1のコードタイプを検出する。第2のコード検出部(変換テーブル24)は、上記の検出された第1のコードルート、第1のコードタイプ及び足鍵盤の操作に応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する。以下、図4の具体例を説明する。
【0031】
(1)パターン211は、第1のコードタイプ201がメジャー(Major)であり、ベースオフセット値202が0のときであり、例えば下鍵盤で「C」のコードが検出され、足鍵盤で「C」が押鍵された場合には、第2のコードルートが「C」になり、第2のコードタイプ205がメジャーになる。ベースルートがオフになる。
【0032】
(2)パターン212は、第1のコードタイプ201がメジャー(Major)であり、ベースオフセット値202が11のときであり、例えば下鍵盤で「C」のコードが検出され、足鍵盤で「B」が押鍵された場合には、第2のコードルートが「C」になり、第2のコードタイプ205がメジャーになり、ベースルートがBになる。
【0033】
(3)パターン213は、第1のコードタイプ201がaugであり、ベースオフセット値202が4のときであり、例えば下鍵盤で「Caug」のコードが検出され、足鍵盤で「E」が押鍵された場合には、第2のコードルートが「E」になり、第2のコードタイプ205がaugになり、ベースルートがオフになる。この場合、単純処理では、「Caug/E」になってしまうが、それでは適切ではないためコードルートを修正している。さらに、下鍵盤コードルートと足鍵盤ベースルートとが異なる場合であっても、ベースルートをオフにしている。
【0034】
(4)パターン214は、第1のコードタイプ201がaugであり、ベースオフセット値202が8のときであり、例えば下鍵盤で「Caug」のコードが検出され、足鍵盤で「A♭」が押鍵された場合には、第2のコードルートが「A♭」になり、第2のコードタイプ205がaugになり、ベースルートがオフになる。この場合も、コードルートを修正し、ベースルートをオフにしている。また、例えば下鍵盤で「G♯aug」のコードが検出され、足鍵盤で「E」が押鍵された場合には、第2のコードルートが「E」になり、第2のコードタイプ205がaugになり、ベースルートがオフになる。
【0035】
(5)パターン215は、第1のコードタイプ201がaugであり、ベースオフセット値202が9のときであり、例えば下鍵盤で「Caug」のコードが検出され、足鍵盤で「A」が押鍵された場合には、第2のコードルートが「A」になり、第2のコードタイプ205がmM7になり、ベースルートがオフになる。この場合も、コードルート及びコードタイプを修正し、ベースルートをオフにしている。
【0036】
(6)パターン216は、第1のコードタイプ201がaugであり、ベースオフセット値202が11のときであり、例えば下鍵盤で「Caug」のコードが検出され、足鍵盤で「B」が押鍵された場合には、第2のコードルートが「C」になり、第2のコードタイプ205がaugになり、ベースルートがBになる。
【0037】
(7)パターン217は、第1のコードタイプ201がm♯5であり、ベースオフセット値202が8のときであり、例えば下鍵盤で「Cm♯5」のコードが検出され、足鍵盤で「A♭」が押鍵された場合には、第2のコードルートが「A♭」になり、第2のコードタイプ205がΔ7になり、ベースルートがオフになる。この場合、コードルート及びコードタイプを修正し、ベースルートをオフにしている。
【0038】
(8)パターン218は、第1のコードタイプ201がm♯5であり、ベースオフセット値202が11のときであり、例えば下鍵盤で「Cm♯5」のコードが検出され、足鍵盤で「B」が押鍵された場合には、第2のコードルートが「C」になり、第2のコードタイプ205がm♯5になり、ベースルートがBになる。
【0039】
以上のように、テーブル24は、仮の手鍵盤コードルートと仮の足鍵盤ベースルートとが同じか否かにかかわらずにベースルートの有無を決定し、仮の手鍵盤コードルートと仮の足鍵盤ベースルートとが異なるときでもベースルートが無しであると決定することがある。また、テーブル24は、仮のコードタイプ及びベースオフセット値に応じて、仮のコードルート及びコードタイプとは異なる真のコードルート及びコードタイプを出力することがある。
【0040】
次に、図2において、下鍵盤で1音又は2音のみの押鍵がされた場合に、下鍵盤と足鍵盤の操作に応じてコード検出を行う方法を説明する。第4のキーオンビットマップ作成手段18は、第2のキーオンビットマップ作成手段12が作成した第2のキーオンビットマップ及び足鍵盤のキーオン/オフイベントを基に、下鍵盤及び足鍵盤のコード検出範囲にあるキーナンバのみを検出して、第4のキーオンビットマップを作成する。
【0041】
仮コードルート作成手段20は、足鍵盤の1鍵(例えば最低音)を仮のコードルートとして検出する。一方、第5のキーオンビットマップ作成手段19は、上記の第4のキーオンビットマップを基に1オクターブの範囲内に圧縮された第5のキーオンビットマップを作成する。その際、仮のコードルートとなる最低音は必ずビットが1になることがわかっているので、その最低音のビットを省略して11ビットで第5のキーオンビットマップを作成することができる。
【0042】
アドレス作成手段14は、上記の第5のキーオンビットマップを基に、テーブルを参照するために必要なアドレスを作成する。テーブル15は、上記のアドレスに応じて、下鍵盤コードタイプ103及びコードシフト値102を出力する。決定手段16は、仮コードルート作成手段20から仮のコードルートを入力し、テーブル15から下鍵盤コードタイプ103及びコードルートシフト値102を入力する。そして、決定手段16は、仮のコードルートにシフト値102を加算して修正し、下鍵盤コードルート及び下鍵盤コードタイプを記憶手段17に記憶させる。この場合、ベースルートはオフになる。
【0043】
図5は、図2の決定手段16がコードタイプとしてオーギュメント又はディミニッシュを決定した場合に、その後に行うコードルートの変換を説明する。コードタイプ301は、前回決定された真のコードタイプであり、任意のタイプでよい。コード302は、今回決定手段16で決定された仮のコードであり、コードルート311、コードタイプ312及びベースルート313を含む。コードルート311は、今回の仮のコードルートから前回の真のコードルートを引いた半音単位の値を示す。コード303は、今回変換により決定される真のコードであり、コードルート321、コードタイプ322及びベースルート323を含む。コードルート321は、前回の真のコードルートに加算する半音単位の値を示す。
【0044】
まず、オーギュメントの場合を説明する。今回検出された仮のコードタイプ312がオーギュメントであり、今回検出された仮のコードルート311が前回検出された真のコードルートと同じか、4半音又は8半音高いときには、今回の真のコードルート321を前回の真のコードルートと同じにし、今回の真のコードタイプ322をオーギュメントにする。ベースルート323は、足鍵盤の音と前回の真のコードルートとが異なれば、ベースルート有りにし、足鍵盤の音を採用する。
【0045】
次に、ディミニッシュの場合を説明する。今回検出された仮のコードタイプ312がディミニッシュであり、今回検出された仮のコードルート311が前回検出された真のコードルートより1半音、4半音、7半音又は10半音高いときには、今回の真のコードルート321を前回の真のコードルートに半音加算したコードルートにし、今回の真のコードタイプ322をディミニッシュにする。ベースルート323は、足鍵盤の音と前回の真のコードルートより半音高い音とが異なれば、ベースルート有りにし、足鍵盤の音を採用する。以下、より詳細な処理方法を説明する。
【0046】
図6〜図8は、ほぼ同時期に押された鍵を1つのコードとして検出するために、検出されたコードをテンポラリコードとして一時記憶し、一定時間経過後にそのテンポラリコードを真のコードとして記憶する。以下、その詳細な説明を行う。
【0047】
図6は、初期化処理を示すフローチャートである。ステップS401では、コードCCHD(コードルート、コードタイプ及びベースルートの有無を含む)を0xffに初期化する。ステップS402では、テンポラリコードTCHD(コードルート、コードタイプ及びベースルートの有無を含む)を0xffに初期化する。ステップS403では、カウンタを0に初期化する。以上で、処理を終了する。
【0048】
図7は、コード検出後に行う処理を示すフローチャートである。ステップS501では、後に説明する図9及び図10等により検出されたコードをテンポラリコードTCHDにセットする。ステップS502では、カウンタに例えば400msの値をセットする。以上で、処理を終了する。
【0049】
図8は、タイマ割り込み処理を示すフローチャートであり、一定時間間隔で定期的に行われる処理である。ステップS601では、ステップS502でカウンタがセットされているか否かをチェックする。セットされていればステップS602へ進み、セットされていなければ処理を終了する。ステップS602では、カウンタの値をディクリメントする。次に、ステップS603では、カウンタ値が0か否かをチェックする。0であればステップS604へ進み、0でなければ処理を終了する。ステップS604では、テンポラリコードTCHDを真のコードCCHDとして記憶する。すなわち、例えば400ms経過後にテンポラリコードTCHDが真のコードCCHDとして記憶される。以上で、処理を終了する。
【0050】
図9及び図10は、図2の決定手段16で決定されたコードタイプがオーギュメント又はディミニッシュのときの処理であり、決定手段16での決定後の処理を示すフローチャートである。まず、ステップS701では、コードルートchk_root、コードタイプchk_type及びベースルートchk_bs_rootを0xffに初期化する。
【0051】
次に、ステップS702では、決定手段16が決定したコードタイプd_typeがオーギュメントか否かをチェックする。オーギュメントであればステップS703へ進み、オーギュメントでなければステップS711へ進む。ステップ703では、決定手段16が決定した仮のコードルートd_rootが前回検出された真のコードルートc_rootと同じか否かをチェックする。同じであればステップS706へ進み、同じでなければステップS704へ進む。ステップ704では、決定手段16が決定した仮のコードルートd_rootが前回検出された真のコードルートc_rootより4半音高いルートと同じか否かをチェックする。同じであればステップS706へ進み、同じでなければステップS705へ進む。ステップ705では、決定手段16が決定した仮のコードルートd_rootが前回検出された真のコードルートc_rootより8半音高いルートと同じか否かをチェックする。同じであればステップS706へ進み、同じでなければステップS711へ進む。
【0052】
ステップS706では、足鍵盤を押鍵することにより発生するペダルキーオンイベントがあるか否かをチェックする。ペダルキーオンイベントがあればステップS708へ進み、なければステップS707へ進む。ステップS707では、前回検出された真のコードルートc_rootを真のコードルートo_rootにセットする。そして、真のコードタイプo_typeにオーギュメントをセットする。そして、真のベースルートo_bs_rootにベースルート無しをセットする。その後、処理を終了する。
【0053】
ステップS708では、上記のペダルキーオンイベントに対応するキーナンバ(音高)を取得し、このキーナンバを12で割った余りをキーナンバとする。すなわち、キーナンバを1オクターブの0〜11の値の音名として記憶し、ベースルートp_rootとする。次に、ステップS709では、ベースルートp_rootと前回検出された真のコードルートc_rootとが同じか否かをチェックする。同じであればステップS711へ進み、同じでなければステップS710へ進む。ステップS710では、前回検出された真のコードルートc_rootをコードルートchk_rootにセットする。そして、コードタイプchk_typeにオーギュメントをセットする。そして、今回押鍵されたベースルートp_rootをベースルートchk_bs_rootにセットする。その後、ステップS721へ進む。
【0054】
ステップS711では、決定手段16が決定したコードタイプd_typeがディミニッシュか否かをチェックする。ディミニッシュであればステップS712へ進み、ディミニッシュでなければステップS721へ進む。ステップS712では、決定手段16が決定した仮のコードルートd_rootが前回検出された真のコードルートc_rootより半音高いルートと同じか否かをチェックする。同じであればステップS716へ進み、同じでなければステップS713へ進む。ステップS713では、決定手段16が決定した仮のコードルートd_rootが前回検出された真のコードルートc_rootより4半音高いルートと同じか否かをチェックする。同じであればステップS716へ進み、同じでなければステップS714へ進む。ステップS714では、決定手段16が決定した仮のコードルートd_rootが前回検出された真のコードルートc_rootより7半音高いルートと同じか否かをチェックする。同じであればステップS716へ進み、同じでなければステップS715へ進む。ステップS715では、決定手段16が決定した仮のコードルートd_rootが前回検出された真のコードルートc_rootより10半音高いルートと同じか否かをチェックする。同じであればステップS716へ進み、同じでなければステップS721へ進む。
【0055】
ステップS716では、足鍵盤を押鍵することにより発生するペダルキーオンイベントがあるか否かをチェックする。ペダルキーオンイベントがあればステップS718へ進み、なければステップS717へ進む。ステップS717では、前回検出された真のコードルートc_rootより半音高いルートを真のコードルートo_rootにセットする。そして、真のコードタイプo_typeにディミニッシュをセットする。そして、真のベースルートo_bs_rootにベースルート無しをセットする。その後、処理を終了する。
【0056】
ステップS718では、上記のペダルキーオンイベントに対応するキーナンバ(音高)を取得し、このキーナンバを12で割った余りをキーナンバとする。すなわち、キーナンバを1オクターブの0〜11の値の音名として記憶し、ベースルートp_rootとする。次に、ステップS719では、ベースルートp_rootと前回検出された真のコードルートc_rootより半音高いルートとが同じか否かをチェックする。同じであればステップS721へ進み、同じでなければステップS720へ進む。ステップS720では、前回検出された真のコードルートc_rootより半音高いルートをコードルートchk_rootにセットする。そして、コードタイプchk_typeにディミニッシュをセットする。そして、今回押鍵されたベースルートp_rootをベースルートchk_bs_rootにセットする。その後、ステップS721へ進む。
【0057】
ステップS721では、図2の決定手段25により変換テーブル24を用いた変換を行い、コードルートt_root、コードタイプt_type及びベースルートの有無を決定する。この変換は、図2に示したように、決定手段25は、決定手段16が決定したコードに応じて変換を行い、上記のコードルートchk_root、コードタイプchk_type及びベースルートchk_bs_rootを用いない。
【0058】
ステップS722では、コードルートchk_rootが初期値(0xff)か否かをチェックする。初期値であればステップS726へ進み、初期値でなければステップS723へ進む。ステップS723では、コードタイプt_type及びchk_typeの両方がオーギュメントか否かをチェックする。両方がオーギュメントであればステップS725へ進み、そうでなければステップS724へ進む。ステップS724では、コードタイプt_type及びchk_typeの両方がディミニッシュか否かをチェックする。両方がディミニッシュであればステップS725へ進み、そうでなければステップS726へ進む。ステップS725では、コードルートchk_rootを真のコードルートo_rootにセットする。そして、コードタイプchk_type(オーギュメント又はディミニッシュ)を真のコードタイプo_typeにセットする。そして、ベースルートchk_bs_rootを真のベースルートo_bs_rootにセットする。その後、処理を終了する。
【0059】
ステップS726では、コードルートt_rootを真のコードルートo_rootにセットし、コードタイプt_typeを真のコードタイプo_typeにセットする。次に、ステップS727では、ステップS721の変換によりベースルートが有りと決定されたか否かをチェックする。ベースルート有りであればステップS729へ進み、ベースルート無しであればステップS728へ進む。ステップS728では、真のベースルートo_bs_rootにベースルート無しを設定する。ステップS729では、真のベースルートo_bs_rootに押鍵によるベースルートp_rootを設定する。以上で、処理を終了する。
【0060】
以上により、図5の変換テーブルに従い、真のコードルートo_root、真のコードタイプo_type及び真のベースルートo_bs_rootが決定する。このコードは、図6〜図8の処理に従い、例えば400ms経過後にコードCCHDにセットされる。次のコード検出の際には、このコードCCHDが前回検出された真のコードとして処理される。以下、具体例を説明する。
【0061】
(1)前回検出されたコードがCであり、今回下鍵盤でソ♯ドミを押鍵した場合を説明する。ソ♯ドミは、Caug、Eaug及びG♯augのいずれにもなりえる。図2の決定手段16は、ソ♯ドミの最低音がG♯であることからG♯augを決定する。ステップS702では、コードタイプd_typeがオーギュメントであると判断される。ステップS705では、コートルートd_root(=G♯)と前回のコードルートc_root(=C)より8半音高いルートと同じであると判断される。ステップS707では、真のコードとしてCaugが決定される。これにより、C→Caugの適切なコード進行が検出される。
【0062】
(2)前回検出されたコードがFであり、今回下鍵盤でドミ♭ファ♯ラを押鍵した場合を説明する。ドミ♭ファ♯ラは、Cdim、E♭dim、F♯dim及びAdimのいずれにもなりえる。図2の決定手段16は、ドミ♭ファ♯ラの最低音がCであることからCdimを決定する。ステップS711では、コードタイプd_typeがディミニッシュであると判断される。ステップS714では、コートルートd_root(=C)と前回のコードルートc_root(=F)より7半音高いルートと同じであると判断される。ステップS717では、真のコードとしてF♯dimが決定される。これにより、F→F♯dimの適切なコード進行が検出される。
【0063】
(3)前回検出されたコードがCであり、今回下鍵盤でソ♯ドミを押鍵して足鍵盤でミを押鍵した場合を説明する。ソ♯ドミは、Caug、Eaug及びG♯augのいずれにもなりえる。図2の決定手段16は、ソ♯ドミの最低音がG♯であることからG♯augを決定する。ステップS702では、コードタイプd_typeがオーギュメントであると判断される。ステップS705では、コートルートd_root(=G♯)と前回のコードルートc_root(=C)より8半音高いルートと同じであると判断される。ステップS710では、コードとしてCaug/Eが決定される。次に、ステップS721では、図2の決定手段25がG♯aug/Eを基にEaug(図4のパターン214)を決定する。ステップS723では、両方のコードタイプがオーギュメントであると判断される。ステップS725では、真のコードとしてCaug/Eが決定される。これにより、C→Caug/Eの適切なコード進行が検出される。ステップS710及びステップS721の両方の変換において、オーギュメントが検出されたときには、オーギュメントに決定してよいので、ステップS710による変換結果を優先採用する。
【0064】
(4)前回検出されたコードがCであり、今回下鍵盤でドミソ♯を押鍵して足鍵盤でラを押鍵した場合を説明する。ドミソ♯は、Caug、Eaug及びG♯augのいずれにもなりえる。図2の決定手段16は、ドミソ♯の最低音がCであることからCaugを決定する。ステップS702では、コードタイプd_typeがオーギュメントであると判断される。ステップS703では、コートルートd_root(=C)と前回のコードルートc_root(=C)とが同じであると判断される。ステップS710では、コードとしてCaug/Aが決定される。次に、ステップS721では、図2の決定手段25がCaug/Aを基にAmM7(図4のパターン215)を決定する。ステップS723では、両方のコードタイプが共にオーギュメントではないと判断される。ステップS726〜S728では、真のコードとしてAmM7が決定される。これにより、AmM7の適切なコード検出が行われる。ステップS710でオーギュメントと検出され、ステップS721でオーギュメントでないと検出された場合、オーギュメントは不適切であることを意味するので、ステップS721による変換結果を採用する。
【0065】
図11は、演奏者の奏法がクリシェである場合のコード変換を説明する。クリシェは、同一のコードが連続している部分に装飾的に加えられる慣用的なラインを指し、作・編曲上の技法の一つであり、コード自体を変化させるものではなく、同じコードの中で半音又は全音によるスムーズなラインを設定し、それによって同一コードの連続による退屈さからの脱出を図るものである。
【0066】
コードタイプ801は、前回決定された真のコードタイプである。コード802は、今回決定手段16で決定された仮のコードであり、コードルート811、コードタイプ812及びベースルート813を含む。コードルート811は、今回の仮のコードルートから前回の真のコードルートを引いた半音単位の値を示す。コード803は、今回変換により決定される真のコードであり、コードルート821、コードタイプ822及びベースルート823を含む。コードルート821は、前回の真のコードルートに加算する半音単位の値を示す。
【0067】
まず、クリシェパターン831の場合を説明する。前回決定された真のコードタイプがm♯5の場合の処理である。今回検出された仮のコードタイプ812がディミニッシュであり、今回検出された仮のコードルート811が前回検出された真のコードルートより9半音高く、今回検出されたベースルート813が前回検出された真のコードルートと同じであるときには、今回の真のコードルート821を前回の真のコードルートと同じにし、今回の真のコードタイプ822をm6にし、今回のベースルート823をベースルート無しにする。例えば、Dm♯5→Dm6の適切なクリシェを検出することができ、Dm♯5→Ddimの不適切なコード検出をなくすことができる。ただし、クリシェ以外の場合は、Ddimと検出するのが適切である。Dm6及びDdimは、構成音が同じであるが、前回のコードを参照することにより、適切なコードを選択できる。
【0068】
次に、クリシェパターン832の場合を説明する。前回決定された真のコードタイプがマイナーの場合の処理である。今回検出された仮のコードタイプ812がメジャーであり、今回検出された仮のコードルート811が前回検出された真のコードルートより8半音高く、今回検出されたベースルート813が前回検出された真のコードルートと同じであるときには、今回の真のコードルート821を前回の真のコードルートと同じにし、今回の真のコードタイプ822をm♯5にし、今回のベースルート823をベースルート無しにする。例えば、Dm→Dm♯5の適切なクリシェを検出することができ、Dm→B♭/Dの不適切なコード検出をなくすことができる。ただし、クリシェ以外の場合は、B♭/Dと検出するのが適切である。Dm♯5及びB♭/Dは、構成音が同じであるが、前回のコードを参照することにより、適切なコードを選択できる。
【0069】
次に、クリシェパターン833の場合を説明する。前回決定された真のコードタイプがマイナーの場合の処理である。今回検出された仮のコードタイプ812がマイナーであり、今回検出された仮のコードルート811が前回検出された真のコードルートと同じであり、今回検出されたベースルート813が前回検出された真のベースルートと同じか半音高いときには、今回の真のコードルート821を前回の真のコードルートと同じにし、今回の真のコードタイプ822をマイナーにし、今回のベースルート823をベースルート有り(今回の足鍵盤の音をベースルートにする)にする。例えば、Am/G→Am/F♯の適切なクリシェを検出することができ、Am/G→F♯m7♭5の不適切なコード検出をなくすことができる。ただし、クリシェ以外の場合は、F♯m7♭5と検出するのが適切である。Am/F♯及びF♯m7♭5は、構成音が同じであるが、前回のコードを参照することにより、適切なコードを選択できる。
【0070】
クリシェの場合も、上記の図6〜図8の処理を行う。クリシェのコード検出処理手順を、以下説明する。図12及び図13は、図2の決定手段16でコード決定された後のクリシェコード検出処理を示すフローチャートである。
【0071】
まず、ステップS901では、足鍵盤の押鍵操作により発生するペダルキーオンイベントがあるか否かをチェックする。ペダルキーオンイベントがあればステップS902へ進み、なければステップS918へ進む。ステップS902では、図2の決定手段16で決定された仮のコードタイプd_typeがメジャーか否かをチェックする。メジャーであればステップS903へ進み、メジャーでなければステップS907へ進む。ステップS903では、図2の決定手段16で決定された仮のコードルートd_rootが前回検出された真のコードルートc_rootより8半音高いルートと同じか否かをチェックする。同じであればステップS904へ進み、異なればステップS907へ進む。ステップS904では、前回検出された真のコードタイプc_typeがマイナーか否かをチェックする。マイナーであればステップS905へ進み、マイナーでなければステップS907へ進む。ステップS905では、上記のペダルキーオンイベント(ステップS901)内のキーナンバであるベースルートd_bassが前回の真のコードルートc_rootと同じか否かをチェックする。同じであればステップS906へ進み、異なればステップS907へ進む。ステップS906では、前回の真のコードルートc_rootを今回の真のコードルートo_rootにセットする。そして、今回の真のコードタイプo_typeにm♯5をセットする。そして、今回の真のベースルートo_bs_rootにベースルート無しをセットする。この処理は、図11のクリシェパターン832の処理である。その後、処理を終了する。
【0072】
ステップS907では、図2の決定手段16で決定された仮のコードタイプd_typeがディミニッシュか否かをチェックする。ディミニッシュであればステップS908へ進み、ディミニッシュでなければステップS912へ進む。ステップS908では、図2の決定手段16で決定された仮のコードルートd_rootが前回検出された真のコードルートc_rootより9半音高いルートと同じか否かをチェックする。同じであればステップS909へ進み、異なればステップS912へ進む。ステップS909では、前回検出された真のコードタイプc_typeがm♯5か否かをチェックする。m♯5であればステップS910へ進み、m♯5でなければステップS912へ進む。ステップS910では、上記のペダルキーオンイベント(ステップS901)内のキーナンバであるベースルートd_bassが前回の真のコードルートc_rootと同じか否かをチェックする。同じであればステップS911へ進み、異なればステップS912へ進む。ステップS911では、前回の真のコードルートc_rootを今回の真のコードルートo_rootにセットする。そして、今回の真のコードタイプo_typeにm6をセットする。そして、今回の真のベースルートo_bs_rootにベースルート無しをセットする。この処理は、図11のクリシェパターン831の処理である。その後、処理を終了する。
【0073】
ステップS912では、図2の決定手段16で決定された仮のコードタイプd_typeがマイナーか否かをチェックする。マイナーであればステップS913へ進み、マイナーでなければステップS918へ進む。ステップS913では、図2の決定手段16で決定された仮のコードルートd_rootが前回検出された真のコードルートc_rootと同じか否かをチェックする。同じであればステップS914へ進み、異なればステップS918へ進む。ステップS914では、前回検出された真のコードタイプc_typeがマイナーか否かをチェックする。マイナーであればステップS915へ進み、マイナーでなければステップS918へ進む。ステップS915では、上記のペダルキーオンイベント(ステップS901)内のキーナンバであるベースルートd_bassが前回の真のベースルートc_bassと同じか否かをチェックする。同じであればステップS917へ進み、異なればステップS916へ進む。ステップS916では、上記のペダルキーオンイベント(ステップS901)内のキーナンバであるベースルートd_bassが前回の真のベースルートc_bassより半音高いルートと同じか否かをチェックする。同じであればステップS917へ進み、異なればステップS918へ進む。ステップS917では、前回の真のコードルートc_rootを今回の真のコードルートo_rootにセットする。そして、今回の真のコードタイプo_typeにマイナーをセットする。そして、今回の押鍵のベースルートd_bassを今回の真のベースルートo_bs_rootにセットする。この処理は、図11のクリシェパターン833の処理である。その後、処理を終了する。
【0074】
ステップS918〜S922の処理は、クリシェ、オーギュメント及びディミニッシュ以外の一般のコード検出処理であり、図2の処理と同じである。ステップS918では、図2の決定手段25が変換テーブル24を用いた変換を行い、コードルートt_root、コードタイプt_type及びベースルートの有無を決定する。ステップS919では、コードルートt_rootを真のコードルートo_rootにセットし、コードタイプt_typeを真のコードタイプo_typeにセットする。次に、ステップS920では、ステップS918の変換によりベースルートが有りと決定されたか否かをチェックする。ベースルート有りであればステップS922へ進み、ベースルート無しであればステップS921へ進む。ステップS921では、真のベースルートo_bs_rootにベースルート無しを設定する。ステップS922では、真のベースルートo_bs_rootに押鍵によるベースルートd_bassを設定する。以上で、処理を終了する。
【0075】
以上により、図11の変換テーブルに従い、真のコードルートo_root、真のコードタイプo_type及び真のベースルートo_bs_rootが決定する。このコードは、図6〜図8の処理に従い、例えば400ms経過後にコードCCHDにセットされる。次のコード検出の際には、このコードCCHDが前回検出された真のコードとして処理される。
【0076】
本実施形態によれば、前回検出されたコードに応じてコード検出することにより、適切なクリシェのコード検出を行うことができる。上記のコード検出処理は、ハードウエアで構成してもよいし、ソフトウエアで構成してもよい。コード検出プログラムのソフトウエアを用いる例を、以下説明する。
【0077】
図14は、本実施形態による電子楽器のハードウエア構成例を示すブロック図である。バス31には、音源(TG)32、CPU33、パネルスイッチ34、鍵盤35、ROM36、RAM37、及びD/A変換器38が接続されている。CPU33は、タイマ30から時間情報を得て、タイマ割り込み処理(図8)を行うことができる。
【0078】
CPU33は、種々の演算又は処理を行い、ROM36又はRAM37に記憶されているコンピュータプログラムに応じて上記のコード検出処理を実行する。RAM37は、CPU33のワーキングエリアとして使用される。パネルスイッチ34は、自動伴奏スタイル番号を決定するスタイル番号スイッチ3(図1)等の操作子を有する。
【0079】
鍵盤35は、上鍵盤35aと下鍵盤35bとからなる手鍵盤及び足鍵盤35cを有し、押鍵及び離鍵が可能な複数の鍵を有する。鍵盤35が押鍵されるとベロシティ(押鍵速度)及びキーナンバ(音高)を含むキーオンイベントをCPU33に伝え、鍵盤35が離鍵されるとキーオフイベントをCPU33に伝える。
【0080】
音源32は、鍵盤35の操作又はROM36内の自動伴奏データに応じて、楽音信号を生成する。D/A変換器38は、音源32で生成されたデジタル形式の楽音信号をアナログ形式に変換し、アンプ39に出力する。アンプ39は、楽音信号の増幅を行い、スピーカ40にて楽音が発音される。
【0081】
本実施形態によれば、第1のコード検出部(決定手段16)が、手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する。第2のコード検出部(図5又は図11)が、検出された第1のコードルート、第1のコードタイプ、足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する。
【0082】
鍵盤の操作のみならず前回検出されたコードに応じて、今回のコードを検出するので、演奏の流れに応じた演奏者が意図するコードを検出することができる。具体的には、オーギュメント及びディミニッシュにおいて演奏者が意図するコードルートを選択することができ、クリシェにおいて演奏者が意図するコードを選択することができる。
【0083】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0084】
上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0085】
【発明の効果】
以上説明したように、演奏鍵盤の操作のみならず前回検出されたコードに応じて、今回のコードを検出するので、演奏の流れに応じた演奏者が意図するコードを検出することができる。
【図面の簡単な説明】
【図1】本発明の実施形態による電子楽器の概略構成例を示す図である。
【図2】コード決定処理手段の構成を示すブロック図である。
【図3】第1の変換テーブルの一部の内容例を示す図である。
【図4】第2の変換テーブルの一部の内容例を示す図である。
【図5】オーギュメント及びディミニッシュのコードルート変換を示す図である。
【図6】初期化処理を示すフローチャートである。
【図7】コード検出後に行う処理を示すフローチャートである。
【図8】タイマ割り込み処理を示すフローチャートである。
【図9】オーギュメント及びディミニッシュのコード検出処理を示すフローチャートである。
【図10】オーギュメント及びディミニッシュのコード検出処理を示すフローチャートである。
【図11】クリシェのコード変換を示す図である。
【図12】クリシェのコード検出処理を示すフローチャートである。
【図13】クリシェのコード検出処理を示すフローチャートである。
【図14】電子楽器のハードウエア構成例を示す図である。
【符号の説明】
1 下鍵盤
2 足鍵盤
3 スタイル番号スイッチ
4 コード決定処理手段
5 自動伴奏発音処理手段
30 タイマ
31 バス
32 音源
33 CPU
34 パネルスイッチ
35 鍵盤
35a 上鍵盤
35b 下鍵盤
35c 足鍵盤
36 ROM
37 RAM
38 D/A変換器
39 アンプ
40 スピーカ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a chord detection technique for an electronic musical instrument, and more particularly to a technique for chord detection according to a keyboard operation.
[0002]
[Prior art]
Some electronic musical instruments have a hand keyboard for manual operation and a foot keyboard for foot operation. The hand keyboard is a two-stage keyboard, and the upper keyboard plays the melody line and the lower keyboard plays the chord line. In an electronic musical instrument having an automatic accompaniment function, chord detection is performed according to the operation of the lower keyboard and the foot keyboard, and automatic accompaniment is performed according to the detected chord. An example of a code detection method is described in Japanese Patent Publication No. 5-84920.
[0003]
Codes that are detected include a fraction code (for example, C / B) and a normal code that is not a fraction code. The fractional chord is the chord part code where the numerator chord is the upper part of the score (corresponding to the hand keyboard), and the base part of the base part where the denominator chord is the lower part of the score (corresponding to the foot key) .
[0004]
An electronic musical instrument detects chord root and chord type. If the pitch name of the detected chord root and the key pressed on the foot keyboard are the same, it is detected as a normal chord that is not a fraction chord. On the contrary, when the pitch name of the detected chord root and the key pressed on the foot keyboard are different, it is detected as a fractional chord (for example, C / B). However, the code detected by this method is not perfect, and as a result, it may be detected as an inappropriate code. As a technique for solving this problem, Japanese Patent Laid-Open No. 2002-196755 by the inventor's invention is disclosed.
[0005]
[Problems to be solved by the invention]
In the turning chords such as augment or diminished, chord constituent sounds are formed at the same pitch intervals, and therefore the chord root cannot be specified. For example, in the case of the Cdim code, it is composed of a dummy file #r. In this case, all four constituent sounds can be chord roots, and the chord root is determined according to the intention of the performer. In an electronic musical instrument, the lowest tone of chord constituent sounds is used as a chord root, or the sound of a foot keyboard is mechanically determined as a chord root. Therefore, a chord root different from the player's intention may be determined.
[0006]
For example, when performing chords in the order of C → Caug → F, especially in the case of an organ or the like, in practice, in many cases, it is performed in a reversed form such as Sodomi → So # Domi → Radopha rather than Domiso → Domiso # → Dofara. (In this specification, the lowest note in the chord constituent sounds is indicated on the leftmost side). In this case, when chord detection is performed with an electronic musical instrument, C → G # auug → F is detected, and the player cannot perform the performance desired.
[0007]
Also, when performing detection using a foot keyboard, if the chord is C → Caug → F, the bass route is generally played as C → E → F. Originally, it is appropriate to detect as C → Caug / E → F, but it is erroneously detected as C → Eaug → F, and a preferable code cannot be detected.
[0008]
In addition, if the turning form of So # Domi is also detected as Caug in order to cope with this chord progression, G # auug cannot be detected, and this time, it becomes impossible to respond when the key of the song changes. is there.
[0009]
In addition to the augment and the diminished, since B ♭ and
[0010]
In general, it is suitable to detect F # m7、5 by pressing Radomi on the hand keyboard and pressing F # on the foot keyboard. However, in the case of cliché with a bass that is played with A → G # → G → F # while holding Am (Radomi) on the hand keyboard, Am → Am / G # → Am / G → F # m7 ♭ In this case, it is more preferable to detect Am / F # than F # m7 ♭ 5.
[0011]
An object of the present invention is to detect a chord intended by a performer in accordance with the performance flow.
Another object of the present invention is to select the most suitable chord root in the augment.
Yet another object of the present invention is to select the most suitable code root in the diminished.
Yet another object of the present invention is to select the most suitable code in cliché.
[0012]
[Means for Solving the Problems]
According to one aspect of the present invention, a performance keyboard for performance operation having a hand keyboard for manual operation and a foot keyboard for foot operation, and a first chord root and a first chord according to the operation of the hand keyboard. A first chord detection unit for detecting the chord type of the second chord, and a second chord according to the detected first chord root, the first chord type, the operation of the foot keyboard, and the chord detected last time. A second code detection unit for detecting the presence of a route, a second code type, and a base route;, A third chord for detecting the presence or absence of a third chord root, a third chord type, and a base root in accordance with the detected first chord root, first chord type, and operation of the foot keyboard When both the detection unit and the second code type and the third code type are augments, the second code route and the second code type are adopted, and otherwise, the third code type is adopted. A decision unit employing a code route and the third code type;An electronic musical instrument chord detection apparatus is provided.
According to another aspect of the present invention, a performance keyboard for performance operation having a hand keyboard for manual operation and a foot keyboard for foot operation, and a first chord root and a first chord according to the operation of the hand keyboard. A first chord detection unit that detects a chord type of the first chord, a first chord root that has been detected, a first chord type, an operation of the foot keyboard, and a chord that has been detected last time; According to the operation of the second chord detector, the second chord type, the base chord route, the detected first chord root, the first chord type, and the foot keyboard, A third code detecting unit for detecting presence / absence of a third code route, a third code type and a base route; and when the second code type and the third code type are both diminished, Code Over preparative and employing the second code type, code detecting device for an electronic musical instrument having a determination unit to adopt the third chord root and said third code type of the provided otherwise.
Of the present inventionfurtherAccording to another aspect, there is a chord detection method for an electronic musical instrument having a performance keyboard for performance operation having a hand keyboard for manual operation and a foot keyboard for foot operation, and according to the operation of the hand keyboard, A first chord detection step for detecting a first chord root and a first chord type; the first chord root detected; the first chord type; the operation of the foot keyboard; and the chord previously detected And a second code detection step for detecting the presence or absence of a second code route, a second code type and a base route,, A third chord for detecting the presence or absence of a third chord root, a third chord type, and a base root in accordance with the detected first chord root, first chord type, and operation of the foot keyboard When the detection step and both the second code type and the third code type are augments, the second code route and the second code type are adopted, and otherwise, the third code type is adopted. A decision step adopting a code route and said third code type;An electronic musical instrument chord detection method is provided.
According to still another aspect of the present invention, there is provided a chord detection method for an electronic musical instrument having a performance keyboard for performance operation having a hand keyboard for manual operation and a foot keyboard for foot operation, the operation of the hand keyboard According to the first chord root and the first chord type, a first chord detection step, the detected first chord root, the first chord type, the operation of the foot keyboard, and the previous time A second code detecting step for detecting presence / absence of a second code route, a second code type and a base route according to the detected code; and the detected first code route and first code type. And a third chord detection step for detecting the presence / absence of a third chord root, a third chord type, and a base root in response to the operation of the foot keyboard, and the second chord type and the third chord. Determining whether to adopt the second chord root and the second chord type when both types are diminished, and adopt the third chord root and the third chord type otherwise. An electronic musical instrument chord detection method is provided.
According to still another aspect of the present invention, there is provided a code detection program for an electronic musical instrument having a performance keyboard for performance operation including a hand keyboard for manual operation and a foot keyboard for foot operation, the operation of the hand keyboard According to the first chord root and the first chord type, a first chord detection step, the detected first chord root, the first chord type, the operation of the foot keyboard, and the previous time A second code detecting step for detecting the presence or absence of a second code route, a second code type and a base route according to the detected code;, A third chord for detecting the presence or absence of a third chord root, a third chord type, and a base root in accordance with the detected first chord root, first chord type, and operation of the foot keyboard When the detection step and both the second code type and the third code type are augments, the second code route and the second code type are adopted, and otherwise, the third code type is adopted. A decision step adopting a code route and said third code type;A program for causing a computer to execute is provided.
According to still another aspect of the present invention, there is provided a code detection program for an electronic musical instrument having a performance keyboard for performance operation including a hand keyboard for manual operation and a foot keyboard for foot operation, the operation of the hand keyboard According to the first chord root and the first chord type, a first chord detection step, the detected first chord root, the first chord type, the operation of the foot keyboard, and the previous time A second code detecting step for detecting presence / absence of a second code route, a second code type and a base route according to the detected code; and the detected first code route and first code type. And a third chord detection step for detecting the presence or absence of a third chord root, a third chord type and a base root in response to an operation of the foot keyboard, the second chord type and the second chord A decision step of adopting the second code route and the second code type when both of the code types are diminished, and adopting the third code route and the third code type otherwise; A program for causing a computer to execute is provided.
[0013]
According to the present invention, since the current chord is detected not only according to the operation of the performance keyboard but also according to the chord detected last time, the chord intended by the performer according to the performance flow can be detected.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 shows a schematic configuration example of an electronic musical instrument according to an embodiment of the present invention. The electronic musical instrument has a hand keyboard for manual operation and a
[0015]
When a key depression operation is performed on the
[0016]
When a key depression operation is performed on the
[0017]
Next, the chord determination processing means 4 determines the true chord root and the true chord type according to the temporary lower chord chord root, the lower chord chord type, the foot keyboard base root and the chord detected last time. At the same time, the presence / absence of a base route is determined. Specifically, in the case of augment, diminished, and cliché, code detection is performed according to the code detected last time. When there is a base route, the provisional foot keyboard base route is determined as a true base route and becomes a fraction code. The denominator of the fraction code is the base route, and the numerator is the true code route. If it is determined that there is no base route, it becomes a normal code that is not a fraction code.
[0018]
The
[0019]
The automatic accompaniment sound processing means 5 reads out an automatic accompaniment pattern corresponding to the style number, and generates an automatic accompaniment according to the true chord root, true chord type, and bass route. Automatic accompaniment is performed, for example, by repeatedly generating a predetermined pattern of drums, chords (piano sound, guitar sound, etc.) and bass. The chord accompaniment is pronounced according to the true chord root and chord type, and the bass accompaniment is pronounced according to the bass root.
[0020]
FIG. 2 shows a specific configuration of the code determination processing means 4 of FIG. Here, a code detection method for general codes other than augment, diminished, and cliché will be described. When three or more sounds are simultaneously pressed on the lower keyboard, it is possible to detect the chord root and chord type based on the key depression. However, if only one or two keys are pressed on the lower keyboard, it is difficult to detect the chord root and chord type based on the key pressed. Perform detection.
[0021]
First, a case where three or more sounds are simultaneously pressed on the lower keyboard will be described. When the key-on / off event of the lower keyboard is input, the first key-on
[0022]
The second key-on
[0023]
The temporary chord route creating means 20 detects the lowest tone in the second key-on bitmap as a temporary chord route. On the other hand, the third key-on
[0024]
The
[0025]
FIG. 3 shows an example of the contents of a part of the table 15. In the
[0026]
In FIG. 2, the chord route storage means 21 stores the chord route of the modified lower keyboard. The chord type storage means 22 stores the lower keyboard chord type described above. The base offset value creating means 23 inputs a key-on / off event of the foot keyboard, subtracts (differs) the lower keyboard chord root in the chord root storage means 21 from the key number (base root) in the key-on event of the foot keyboard, Create a base offset value. This base offset value corresponds to the base offset
[0027]
As shown in FIG. 4, the table 24 inputs the lower
[0028]
The determination unit 25 determines the true code route and the true code type according to the table 24 and also determines whether the base route is on / off (presence / absence). The true chord root is obtained by adding the chord
[0029]
The storage means 26 stores the true code route, the true code type, and on / off of the base route, and also stores the base route when the base route is on.
[0030]
As described above, the first chord detector (determination unit 16) uses the conversion table 15 to detect the first chord root and the first chord type according to the operation of the hand keyboard (lower keyboard). To do. The second chord detection unit (conversion table 24) has the second chord root, the second chord type, and the chord keyboard in response to the detected first chord root, the first chord type, and the keyboard operation. Detect presence of base route. Hereinafter, a specific example of FIG. 4 will be described.
[0031]
(1) The
[0032]
(2) The
[0033]
(3) The
[0034]
(4) The
[0035]
(5) The
[0036]
(6) The
[0037]
(7) The
[0038]
(8) The
[0039]
As described above, the table 24 determines the presence / absence of the base route regardless of whether or not the temporary hand keyboard chord route and the temporary foot keyboard base route are the same. Even when the keyboard base route is different, it may be determined that there is no base route. The table 24 may output a true code route and code type different from the temporary code route and code type according to the temporary code type and base offset value.
[0040]
Next, in FIG. 2, a method for detecting chords according to the operation of the lower keyboard and the foot keyboard when only one or two keys are pressed on the lower keyboard will be described. The fourth key-on bitmap creation means 18 is based on the second key-on bitmap created by the second key-on bitmap creation means 12 and the key-on / off event of the foot keyboard, and the chord detection ranges of the lower keyboard and the foot keyboard. Only the key number at is detected and a fourth key-on bitmap is created.
[0041]
The temporary chord route creating means 20 detects one key (for example, the lowest note) of the foot keyboard as a temporary chord route. On the other hand, the fifth key-on
[0042]
The
[0043]
FIG. 5 illustrates a code route conversion performed after the determination unit 16 of FIG. 2 determines an augment or a diminished code type. The
[0044]
First, the case of augment will be described. If the
[0045]
Next, the case of diminished will be described. If the
[0046]
FIGS. 6 to 8 temporarily store the detected code as a temporary code and detect the temporary code as a true code after a certain period of time in order to detect a key pressed almost simultaneously as a single code. To do. The detailed description will be given below.
[0047]
FIG. 6 is a flowchart showing the initialization process. In step S401, the code CCHD (including the presence / absence of the code route, code type, and base route) is initialized to 0xff. In step S402, the temporary code TCHD (including the presence / absence of the code route, code type, and base route) is initialized to 0xff. In step S403, the counter is initialized to zero. Thus, the process ends.
[0048]
FIG. 7 is a flowchart showing processing performed after code detection. In step S501, the code detected in FIGS. 9 and 10 described later is set in the temporary code TCHD. In step S502, for example, a value of 400 ms is set in the counter. Thus, the process ends.
[0049]
FIG. 8 is a flowchart showing the timer interrupt process, which is a process periodically performed at regular time intervals. In step S601, it is checked whether a counter is set in step S502. If it has been set, the process proceeds to step S602. If it has not been set, the process ends. In step S602, the counter value is decremented. In step S603, it is checked whether the counter value is zero. If it is 0, the process proceeds to step S604, and if it is not 0, the process is terminated. In step S604, temporary code TCHD is stored as true code CCHD. That is, for example, after 400 ms, the temporary code TCHD is stored as the true code CCHD. Thus, the process ends.
[0050]
FIGS. 9 and 10 are processes when the code type determined by the determining means 16 of FIG. 2 is augment or diminished, and is a flowchart showing the processes after the determination by the determining means 16. First, in step S701, the code root chk_root, the code type chk_type, and the base root chk_bs_root are initialized to 0xff.
[0051]
Next, in step S702, it is checked whether or not the code type d_type determined by the determination unit 16 is an augment. If it is an augment, the process proceeds to step S703, and if it is not an augment, the process proceeds to step S711. In step 703, it is checked whether or not the temporary code route d_root determined by the determining means 16 is the same as the true code route c_root detected last time. If they are the same, the process proceeds to step S706, and if they are not the same, the process proceeds to step S704. In step 704, it is checked whether or not the temporary chord route d_root determined by the determining means 16 is the same as a route that is four semitones higher than the true chord route c_root detected last time. If they are the same, the process proceeds to step S706, and if not, the process proceeds to step S705. In step 705, it is checked whether or not the temporary chord route d_root determined by the determining means 16 is the same as a route that is eight semitones higher than the true chord route c_root detected last time. If they are the same, the process proceeds to step S706, and if they are not the same, the process proceeds to step S711.
[0052]
In step S706, it is checked whether or not there is a pedal key-on event generated by pressing the foot keyboard. If there is a pedal key-on event, the process proceeds to step S708, and if not, the process proceeds to step S707. In step S707, the true code root c_root detected last time is set to the true code root o_root. Then, the augment is set to the true code type o_type. Then, the true base route o_bs_root is set to no base route. Thereafter, the process ends.
[0053]
In step S708, the key number (pitch) corresponding to the pedal key-on event is acquired, and the remainder obtained by dividing the key number by 12 is used as the key number. That is, the key number is stored as a pitch name having a value of 0 to 11 in one octave, and is set as the base route p_root. Next, in step S709, it is checked whether or not the base route p_root is the same as the true code route c_root detected last time. If they are the same, the process proceeds to step S711, and if they are not the same, the process proceeds to step S710. In step S710, the true code root c_root detected last time is set to the code root chk_root. Then, an augment is set in the code type chk_type. Then, the base route p_root pressed this time is set to the base route chk_bs_root. Thereafter, the process proceeds to step S721.
[0054]
In step S711, it is checked whether or not the code type d_type determined by the determining unit 16 is diminished. If diminished, the process proceeds to step S712, and if not diminished, the process proceeds to step S721. In step S712, it is checked whether or not the temporary chord route d_root determined by the determining unit 16 is the same as a route that is semitone higher than the true chord route c_root detected last time. If they are the same, the process proceeds to step S716, and if not, the process proceeds to step S713. In step S713, it is checked whether or not the temporary chord route d_root determined by the determining unit 16 is the same as a route that is four semitones higher than the true chord route c_root detected last time. If they are the same, the process proceeds to step S716, and if not, the process proceeds to step S714. In step S714, it is checked whether or not the temporary chord route d_root determined by the determining unit 16 is the same as a route that is 7 semitones higher than the true chord route c_root detected last time. If they are the same, the process proceeds to step S716, and if not, the process proceeds to step S715. In step S715, it is checked whether or not the temporary chord route d_root determined by the determining unit 16 is the same as a route that is 10 semitones higher than the true chord route c_root detected last time. If they are the same, the process proceeds to step S716, and if not, the process proceeds to step S721.
[0055]
In step S716, it is checked whether or not there is a pedal key-on event generated by pressing the foot keyboard. If there is a pedal key-on event, the process proceeds to step S718, and if not, the process proceeds to step S717. In step S717, a route that is a semitone higher than the true chord route c_root detected last time is set as the true chord route o_root. Then, diminished is set to the true code type o_type. Then, the true base route o_bs_root is set to no base route. Thereafter, the process ends.
[0056]
In step S718, a key number (pitch) corresponding to the pedal key-on event is acquired, and a remainder obtained by dividing the key number by 12 is set as a key number. That is, the key number is stored as a pitch name having a value of 0 to 11 in one octave, and is set as the base route p_root. Next, in step S719, it is checked whether or not the base route p_root is the same as the route that is semitone higher than the true chord route c_root detected last time. If they are the same, the process proceeds to step S721, and if not, the process proceeds to step S720. In step S720, a route that is a semitone higher than the true chord route c_root detected last time is set as the chord route chk_root. Then, the code type chk_type is set to diminished. Then, the base route p_root pressed this time is set to the base route chk_bs_root. Thereafter, the process proceeds to step S721.
[0057]
In step S721, the determination unit 25 of FIG. 2 performs conversion using the conversion table 24, and determines the presence / absence of the code route t_root, the code type t_type, and the base route. As shown in FIG. 2, the determining unit 25 performs the conversion according to the code determined by the determining unit 16, and does not use the code root chk_root, the code type chk_type, and the base root chk_bs_root.
[0058]
In step S722, it is checked whether or not the code root chk_root is an initial value (0xff). If it is the initial value, the process proceeds to step S726, and if it is not the initial value, the process proceeds to step S723. In step S723, it is checked whether both code types t_type and chk_type are augments. If both are augments, the process proceeds to step S725; otherwise, the process proceeds to step S724. In step S724, it is checked whether both code types t_type and chk_type are diminished. If both are diminished, the process proceeds to step S725; otherwise, the process proceeds to step S726. In step S725, the code root chk_root is set to the true code root o_root. Then, the code type chk_type (augment or diminished) is set to the true code type o_type. Then, the base route chk_bs_root is set to the true base route o_bs_root. Thereafter, the process ends.
[0059]
In step S726, the code root t_root is set to the true code root o_root, and the code type t_type is set to the true code type o_type. Next, in step S727, it is checked whether or not it is determined that there is a base route by the conversion in step S721. If there is a base route, the process proceeds to step S729, and if there is no base route, the process proceeds to step S728. In step S728, the true base route o_bs_root is set to no base route. In step S729, the base route p_root by key depression is set to the true base route o_bs_root. Thus, the process ends.
[0060]
As described above, the true code root o_root, the true code type o_type, and the true base root o_bs_root are determined according to the conversion table of FIG. This code is set to the code CCHD after 400 ms, for example, according to the processing of FIGS. When the next code is detected, this code CCHD is processed as a true code detected last time. Specific examples will be described below.
[0061]
(1) A case where the previously detected code is C and this time the key is pressed on the lower keyboard will be described. So # Domi can be any of Caug, Eaug and G # aug. The determining means 16 in FIG. 2 determines G # aug because the lowest sound of the sound #Domi is G #. In step S702, it is determined that the code type d_type is an augment. In step S705, it is determined that the court route d_root (= G #) is the same as the route that is eight semitones higher than the previous chord route c_root (= C). In step S707, Caug is determined as the true code. Thereby, an appropriate chord progression of C → Caug is detected.
[0062]
(2) The case where the code detected last time is F and the key is pressed on the lower keyboard this time will be described. The dome file #ra can be any of Cdim, E ♭ dim, F # dim, and Adim. The determining means 16 in FIG. 2 determines Cdim from the lowest sound of the dome fan #ra. In step S711, it is determined that the code type d_type is diminished. In step S714, it is determined that the route is the same as the route that is seven semitones higher than the court route d_root (= C) and the previous chord route c_root (= F). In step S717, F # dim is determined as the true code. Thereby, an appropriate chord progression of F → F # dim is detected.
[0063]
(3) The case where the previously detected code is C, and the current key is pressed on the lower keyboard and the key is pressed on the foot keyboard will be described. So # Domi can be any of Caug, Eaug and G # aug. The determining means 16 in FIG. 2 determines G # aug because the lowest sound of the sound #Domi is G #. In step S702, it is determined that the code type d_type is an augment. In step S705, it is determined that the court route d_root (= G #) is the same as the route that is eight semitones higher than the previous chord route c_root (= C). In step S710, Caug / E is determined as the code. Next, in step S721, the determination unit 25 in FIG. 2 determines Eaug (
[0064]
(4) A case where the previously detected code is C, and this time the domino key is pressed with the lower keyboard and the key is pressed with the foot keyboard will be described. Domiso # can be any of Caug, Eaug, and G # aug. The determining means 16 in FIG. 2 determines Caug because the lowest tone of Domiso # is C. In step S702, it is determined that the code type d_type is an augment. In step S703, it is determined that the court route d_root (= C) and the previous code route c_root (= C) are the same. In step S710, Caug / A is determined as the code. Next, in step S721, the determination unit 25 in FIG. 2 determines AmM7 (
[0065]
FIG. 11 illustrates chord conversion when the performer's performance is cliche. Cliche refers to an idiomatic line where the same chord is added decoratively to a continuous part, and is one of the techniques for composition / arrangement, and does not change the chord itself. A smooth line with semitones or full sounds is set in order to escape from boredom due to the continuation of the same chord.
[0066]
The
[0067]
First, the case of the
[0068]
Next, the case of the
[0069]
Next, the case of the
[0070]
Also in the case of cliché, the above-described processes of FIGS. 6 to 8 are performed. The cliché code detection processing procedure will be described below. 12 and 13 are flowcharts showing cliché code detection processing after the code is determined by the determination means 16 of FIG.
[0071]
First, in step S901, it is checked whether or not there is a pedal key on event generated by a key depression operation on the foot keyboard. If there is a pedal key-on event, the process proceeds to step S902, and if not, the process proceeds to step S918. In step S902, it is checked whether or not the temporary code type d_type determined by the determination unit 16 in FIG. 2 is major. If it is major, the process proceeds to step S903, and if it is not major, the process proceeds to step S907. In step S903, it is checked whether or not the temporary chord route d_root determined by the determining means 16 in FIG. 2 is the same as a route that is eight semitones higher than the true chord route c_root detected last time. If they are the same, the process proceeds to step S904, and if they are different, the process proceeds to step S907. In step S904, it is checked whether or not the last detected true code type c_type is minor. If it is minor, the process proceeds to step S905, and if it is not minor, the process proceeds to step S907. In step S905, it is checked whether the base route d_bass, which is the key number in the pedal key-on event (step S901), is the same as the previous true chord route c_root. If they are the same, the process proceeds to step S906, and if they are different, the process proceeds to step S907. In step S906, the previous true code root c_root is set to the current true code root o_root. Then,
[0072]
In step S907, it is checked whether or not the temporary code type d_type determined by the determining unit 16 in FIG. 2 is diminished. If diminished, the process proceeds to step S908, and if not diminished, the process proceeds to step S912. In step S908, it is checked whether or not the temporary chord route d_root determined by the determining unit 16 in FIG. 2 is the same as a
[0073]
In step S912, it is checked whether or not the temporary code type d_type determined by the determining unit 16 in FIG. 2 is minor. If it is minor, the process proceeds to step S913. If it is not minor, the process proceeds to step S918. In step S913, it is checked whether or not the temporary code route d_root determined by the determination unit 16 in FIG. 2 is the same as the true code route c_root detected last time. If they are the same, the process proceeds to step S914, and if they are different, the process proceeds to step S918. In step S914, it is checked whether or not the last detected true code type c_type is minor. If it is minor, the process proceeds to step S915. If it is not minor, the process proceeds to step S918. In step S915, it is checked whether the base route d_bass, which is the key number in the pedal key-on event (step S901), is the same as the previous true base route c_bass. If they are the same, the process proceeds to step S917, and if they are different, the process proceeds to step S916. In step S916, it is checked whether or not the base route d_bass, which is the key number in the pedal key-on event (step S901), is the same as a route that is a semitone higher than the previous true base route c_bass. If they are the same, the process proceeds to step S917, and if they are different, the process proceeds to step S918. In step S917, the previous true code root c_root is set to the current true code root o_root. Then, a minor is set to the true code type o_type of this time. Then, the base route d_bass for the current key depression is set to the current true base route o_bs_root. This process is the process of the
[0074]
The processes in steps S918 to S922 are general code detection processes other than cliches, augments, and diminisheds, and are the same as the processes in FIG. In step S918, the determination unit 25 of FIG. 2 performs conversion using the conversion table 24, and determines the presence / absence of the code route t_root, the code type t_type, and the base route. In step S919, the code root t_root is set to the true code root o_root, and the code type t_type is set to the true code type o_type. Next, in step S920, it is checked whether or not it is determined that there is a base route by the conversion in step S918. If there is a base route, the process proceeds to step S922, and if there is no base route, the process proceeds to step S921. In step S921, no base route is set for the true base route o_bs_root. In step S922, the key route base route d_bass is set to the true base route o_bs_root. Thus, the process ends.
[0075]
As described above, the true code root o_root, the true code type o_type, and the true base root o_bs_root are determined according to the conversion table of FIG. This code is set to the code CCHD after 400 ms, for example, according to the processing of FIGS. When the next code is detected, this code CCHD is processed as a true code detected last time.
[0076]
According to this embodiment, by detecting a code according to the code detected last time, an appropriate cliché code can be detected. The code detection process described above may be configured by hardware or software. An example using the code detection program software will be described below.
[0077]
FIG. 14 is a block diagram illustrating a hardware configuration example of the electronic musical instrument according to the present embodiment. A sound source (TG) 32,
[0078]
The
[0079]
The
[0080]
The
[0081]
According to the present embodiment, the first chord detector (determination means 16) detects the first chord root and the first chord type in accordance with the operation of the hand keyboard. The second chord detection unit (FIG. 5 or FIG. 11) determines the second chord root according to the detected first chord root, the first chord type, the operation of the foot keyboard, and the chord detected last time. The second code type and the presence / absence of the base route are detected.
[0082]
Since the current chord is detected according to the chord detected last time as well as the operation of the keyboard, the chord intended by the performer according to the performance flow can be detected. Specifically, the chord root intended by the performer can be selected in the augment and diminished, and the chord intended by the performer can be selected in the cliché.
[0083]
This embodiment can be realized by a computer executing a program. Also, means for supplying a program to a computer, for example, a computer-readable recording medium such as a CD-ROM recording such a program, or a transmission medium such as the Internet for transmitting such a program is also applied as an embodiment of the present invention. Can do. A program product such as a computer-readable recording medium in which the above program is recorded can also be applied as an embodiment of the present invention. The above program, recording medium, transmission medium, and program product are included in the scope of the present invention. As the recording medium, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.
[0084]
Each of the above-described embodiments is merely an example of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed in a limited manner. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
[0085]
【The invention's effect】
As described above, since the current chord is detected not only according to the operation of the performance keyboard but also according to the chord detected last time, the chord intended by the performer according to the performance flow can be detected.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a schematic configuration example of an electronic musical instrument according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of code determination processing means.
FIG. 3 is a diagram showing an example of the contents of a part of a first conversion table.
FIG. 4 is a diagram showing an example of the contents of a part of a second conversion table.
FIG. 5 is a diagram showing an augmentation and diminished chord root conversion;
FIG. 6 is a flowchart showing an initialization process.
FIG. 7 is a flowchart showing processing performed after code detection.
FIG. 8 is a flowchart showing timer interrupt processing.
FIG. 9 is a flowchart showing an augment and diminished code detection process;
FIG. 10 is a flowchart showing an augment and diminished code detection process;
FIG. 11 is a diagram showing cliché code conversion;
FIG. 12 is a flowchart showing cliché code detection processing;
FIG. 13 is a flowchart showing cliché code detection processing;
FIG. 14 is a diagram illustrating a hardware configuration example of an electronic musical instrument.
[Explanation of symbols]
1 Lower keyboard
2 foot keyboard
3 Style number switch
4 Code decision processing means
5 Automatic accompaniment pronunciation processing means
30 timer
31 bus
32 sound sources
33 CPU
34 Panel switch
35 keyboard
35a Upper keyboard
35b Lower keyboard
35c foot keyboard
36 ROM
37 RAM
38 D / A converter
39 amplifier
40 Speaker
Claims (20)
前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出部と、
前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出部と、
前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出部と、
前記第2のコードタイプ及び前記第3のコードタイプの両方がオーギュメントであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定部と
を有する電子楽器のコード検出装置。A performance keyboard for performance operation having a hand keyboard for manual operation and a foot keyboard for foot operation;
A first chord detector for detecting a first chord root and a first chord type in response to an operation of the hand keyboard;
The presence or absence of the second chord root, the second chord type and the base root is detected according to the detected first chord root, the first chord type, the operation of the foot keyboard, and the chord detected last time. A second code detector that
Third chord detection for detecting presence / absence of a third chord root, a third chord type, and a base route according to the detected first chord root, first chord type, and operation of the foot keyboard And
When both the second code type and the third code type are augments, the second code route and the second code type are adopted, and otherwise, the third code route and the third code type are adopted. An apparatus for detecting a chord of an electronic musical instrument, comprising: a determination unit adopting a third chord type ;
前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出部と、A first chord detector for detecting a first chord root and a first chord type in response to an operation of the hand keyboard;
前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出部と、The presence or absence of the second chord root, the second chord type and the base root is detected according to the detected first chord root, the first chord type, the operation of the foot keyboard, and the chord detected last time. A second code detector that
前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出部と、Third chord detection for detecting presence / absence of a third chord root, a third chord type, and a base route according to the detected first chord root, first chord type, and operation of the foot keyboard And
前記第2のコードタイプ及び前記第3のコードタイプの両方がディミニッシュであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定部とWhen both the second code type and the third code type are diminished, the second code route and the second code type are adopted, and otherwise, the third code route and the third code type are adopted. A decision unit adopting the code type 3
を有する電子楽器のコード検出装置。A code detection device for an electronic musical instrument.
前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出ステップと、
前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出ステップと、
前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出ステップと、
前記第2のコードタイプ及び前記第3のコードタイプの両方がオーギュメントであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定ステップと
を有する電子楽器のコード検出方法。A method of detecting a chord of an electronic musical instrument having a performance keyboard for performance operation having a hand keyboard for manual operation and a foot keyboard for foot operation,
A first chord detection step for detecting a first chord root and a first chord type in response to an operation of the hand keyboard;
The presence or absence of the second chord root, the second chord type and the base root is detected according to the detected first chord root, the first chord type, the operation of the foot keyboard, and the chord detected last time. A second code detection step to :
Third chord detection for detecting presence / absence of a third chord root, a third chord type, and a base route according to the detected first chord root, first chord type, and operation of the foot keyboard Steps,
When both the second code type and the third code type are augments, the second code route and the second code type are adopted, and otherwise, the third code route and the third code type are adopted. A method for detecting a chord of an electronic musical instrument, comprising: a determination step adopting a third chord type .
前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出ステップと、A first chord detection step for detecting a first chord root and a first chord type in response to an operation of the hand keyboard;
前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出ステップと、The presence or absence of the second chord root, the second chord type and the base root is detected according to the detected first chord root, the first chord type, the operation of the foot keyboard, and the chord detected last time. A second code detection step to:
前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出ステップと、Third chord detection for detecting presence / absence of a third chord root, a third chord type, and a base route according to the detected first chord root, first chord type, and operation of the foot keyboard Steps,
前記第2のコードタイプ及び前記第3のコードタイプの両方がディミニッシュであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定ステップとWhen both the second code type and the third code type are diminished, the second code route and the second code type are adopted, and otherwise, the third code route and the third code type are adopted. A decision step to adopt the code type 3;
を有する電子楽器のコード検出方法。A method for detecting a chord of an electronic musical instrument.
前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出ステップと、
前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出ステップと、
前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出ステップと、
前記第2のコードタイプ及び前記第3のコードタイプの両方がオーギュメントであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定ステップと
をコンピュータに実行させるためのプログラム。A code detection program for an electronic musical instrument having a performance keyboard for performance operation having a hand keyboard for manual operation and a foot keyboard for foot operation,
A first chord detection step for detecting a first chord root and a first chord type in response to an operation of the hand keyboard;
The presence or absence of the second chord root, the second chord type and the base root is detected according to the detected first chord root, the first chord type, the operation of the foot keyboard, and the chord detected last time. A second code detection step to :
Third chord detection for detecting presence / absence of a third chord root, a third chord type, and a base route according to the detected first chord root, first chord type, and operation of the foot keyboard Steps,
When both the second code type and the third code type are augments, the second code route and the second code type are adopted, and otherwise, the third code route and the third code type are adopted. A program for causing a computer to execute the determination step adopting the third code type .
前記手鍵盤の操作に応じて、第1のコードルート及び第1のコードタイプを検出する第1のコード検出ステップと、A first chord detection step for detecting a first chord root and a first chord type in response to an operation of the hand keyboard;
前記検出された第1のコードルート、第1のコードタイプ、前記足鍵盤の操作、及び前The detected first chord root, the first chord type, the operation of the foot keyboard, and the front 回検出されたコードに応じて、第2のコードルート、第2のコードタイプ及びベースルートの有無を検出する第2のコード検出ステップと、A second code detection step for detecting the presence or absence of a second code route, a second code type and a base route according to the code detected once;
前記検出された第1のコードルート、第1のコードタイプ、及び前記足鍵盤の操作に応じて、第3のコードルート、第3のコードタイプ及びベースルートの有無を検出する第3のコード検出ステップと、Third chord detection for detecting presence / absence of a third chord root, a third chord type, and a base route according to the detected first chord root, first chord type, and operation of the foot keyboard Steps,
前記第2のコードタイプ及び前記第3のコードタイプの両方がディミニッシュであるときには前記第2のコードルート及び前記第2のコードタイプを採用し、それ以外のときには前記第3のコードルート及び前記第3のコードタイプを採用する決定ステップとWhen both the second code type and the third code type are diminished, the second code route and the second code type are adopted, and otherwise, the third code route and the third code type are adopted. A decision step to adopt the code type 3;
をコンピュータに実行させるためのプログラム。A program that causes a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002255238A JP4006301B2 (en) | 2002-08-30 | 2002-08-30 | Code detection device for electronic musical instrument, code detection method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002255238A JP4006301B2 (en) | 2002-08-30 | 2002-08-30 | Code detection device for electronic musical instrument, code detection method and program |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004093927A JP2004093927A (en) | 2004-03-25 |
JP2004093927A5 JP2004093927A5 (en) | 2005-10-20 |
JP4006301B2 true JP4006301B2 (en) | 2007-11-14 |
Family
ID=32060803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002255238A Expired - Fee Related JP4006301B2 (en) | 2002-08-30 | 2002-08-30 | Code detection device for electronic musical instrument, code detection method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4006301B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014235328A (en) * | 2013-06-03 | 2014-12-15 | 株式会社河合楽器製作所 | Code estimation detection device and code estimation detection program |
-
2002
- 2002-08-30 JP JP2002255238A patent/JP4006301B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004093927A (en) | 2004-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011158855A (en) | Automatic accompanying apparatus and automatic accompanying program | |
JP5293710B2 (en) | Key judgment device and key judgment program | |
JPH0535273A (en) | Automatic accompaniment device | |
JP6860077B2 (en) | Musical tone data playback device and musical tone data playback method | |
JP4006301B2 (en) | Code detection device for electronic musical instrument, code detection method and program | |
JP4237386B2 (en) | Code detection device for electronic musical instrument, code detection method, and recording medium | |
JP4670686B2 (en) | Code display device and program | |
JP6597553B2 (en) | Harmony information generation apparatus, harmony information generation program, and harmony information generation method | |
JP2640992B2 (en) | Pronunciation instruction device and pronunciation instruction method for electronic musical instrument | |
JP2004240254A (en) | Electronic musical instrument | |
JP4090823B2 (en) | Code detection device for electronic musical instrument, code detection method and program | |
JP2023043297A (en) | Information processing unit, electronic musical instrument, tone row generation method and program | |
JP4174961B2 (en) | Performance device, performance method and information recording medium | |
JP2580950B2 (en) | Automatic scale generator | |
JP5066965B2 (en) | Automatic accompaniment device and automatic accompaniment processing program | |
JP3265266B2 (en) | Electronic musical instruments and their controls | |
JP4900233B2 (en) | Automatic performance device | |
JP3434403B2 (en) | Automatic accompaniment device for electronic musical instruments | |
JPH056170A (en) | Electronic musical instrument | |
JP3565107B2 (en) | Melody generation device, chord progression data generation device, and recording medium | |
JP2000172253A (en) | Electronic musical instrument | |
JP3556997B2 (en) | Electronic music generator | |
JP4470895B2 (en) | Code display device and program | |
JP5347289B2 (en) | Performance device and performance processing program | |
JP5104293B2 (en) | Automatic performance device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050620 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070403 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070601 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070807 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070827 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4006301 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100831 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110831 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120831 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120831 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130831 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |