JP2014194536A - コード検出装置およびコード検出方法を実現するためのプログラム - Google Patents

コード検出装置およびコード検出方法を実現するためのプログラム Download PDF

Info

Publication number
JP2014194536A
JP2014194536A JP2014031883A JP2014031883A JP2014194536A JP 2014194536 A JP2014194536 A JP 2014194536A JP 2014031883 A JP2014031883 A JP 2014031883A JP 2014031883 A JP2014031883 A JP 2014031883A JP 2014194536 A JP2014194536 A JP 2014194536A
Authority
JP
Japan
Prior art keywords
chord
code
performance
information
tendency information
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.)
Pending
Application number
JP2014031883A
Other languages
English (en)
Inventor
Yoshinari Nakamura
吉就 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2014031883A priority Critical patent/JP2014194536A/ja
Publication of JP2014194536A publication Critical patent/JP2014194536A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/38Chord
    • G10H1/383Chord detection and/or recognition, e.g. for correction, or automatic bass generation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/38Chord
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/056Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for extraction or identification of individual instrumental parts, e.g. melody, chords, bass; Identification or separation of instrumental parts by their characteristic voices or timbres
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/066Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for pitch analysis as part of wider processing for musical purposes, e.g. transcription, musical performance evaluation; Pitch recognition, e.g. in polyphonic sounds; Estimation or use of missing fundamental
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/081Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for automatic key or tonality recognition, e.g. using musical rules or a knowledge base
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/571Chords; Chord sequences
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/571Chords; Chord sequences
    • G10H2210/576Chord progression

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】取得した演奏データに対して調和し、さらに演奏曲のイメージに合ったコード検出を行うことが可能となるコード検出装置を提供する。
【解決手段】入力された演奏データから所定のコード検出タイミング内の演奏データが取得され、設定された抽出方法によりコード候補が抽出され、抽出されたコード候補のそれぞれについて、各演奏音の当該コードにおける役割が識別され、識別された役割に基づいて、ディグリーネーム別ポイントテーブルを参照することにより、各演奏音の音楽的なポイントが求められ、前記抽出されたコード候補のそれぞれについて、前記求められた各演奏音のポイントが合計される。そして、現在の演奏曲に対応するコード傾向情報を参照することにより、各コード候補のポイント数が調整される。このポイント数の調整されたコード候補から合計ポイントが一番高いコード候補が選出され、適切なコードとして検出される。
【選択図】図4

Description

本発明は、取得した演奏データに対してリアルタイムでコード(和音)検出を行うコード検出装置およびコード検出方法を実現するためのプログラムに関する。
取得した演奏データに対してリアルタイムでコード検出を行うコード検出装置は、従来から知られている。
このようなコード検出装置として、入力された演奏データから次のようにして適切なコードを検出するものがある(たとえば、特許文献1参照)。
A.入力された演奏データから所定のコード検出タイミング(時間幅)内の演奏データ(ノートイベント)を取得し;
B.取得された演奏データおよび取得された調情報に基づいて、設定された抽出方法によりコード候補を抽出し;
C.抽出されたコード候補のそれぞれについて、各演奏音(ノートイベント)の当該コードにおける役割を識別し;
D.識別された役割に基づいて、ディグリーネーム別ポイントテーブル(後述する図3参照)を参照することにより、各演奏音の音楽的なポイント(重要度)を求め;
E.上記B.で抽出されたコード候補のそれぞれについて、上記D.で求められた各演奏音のポイントを合計し;
F.上記E.の結果、合計ポイントが一番高いコード候補を適切なコードとして検出する。
また、ユーザが演奏したい曲名を選択すると、その曲名の曲を演奏するのに適した演奏設定データを自動的に設定するようにした演奏設定データ選択装置もある(たとえば、特許文献2参照)。この従来の演奏設定データ選択装置では、設定される演奏設定データは、伴奏スタイルデータやメロディ音色、テンポなどであり、曲名に対応した各種演奏設定データが予めテーブルで記憶されている。そして、曲名が選択されると、その曲名に基づいてテーブルを参照することで、設定すべき演奏設定データを取得して設定するようにしている。
特開2012−98480号公報 特許3821094号公報
しかし、上記従来のコード検出装置では、たとえば、上記B.で取得された演奏データ内に、あるコード候補のルートが含まれている場合に、そのルートのポイントが高く設定されたノートポイントテーブル(ディグリーネーム別ポイントテーブルに含まれるテーブル)を使うと、ユーザの意図通りのコードを検出し易くなるが、曲によっては、あるいは両手弾きの演奏では、コード検出タイミングで、ユーザの意図するコードのルートが含まれる演奏データが取得されるとは限らず、この場合には、演奏曲とイメージの異なるコードが検出される可能性がある。
上記従来のコード検出装置が使用するディグリーネーム別ポイントテーブルには、コード自体の優先ポイントを得るための優先ポイントテーブルも含まれているので、この優先ポイントテーブルの値を調整することで、特定のコードを優先的に検出することも不可能ではない。しかし、優先ポイントテーブルの調整は、特定のコード(演奏曲)に合わせて行われるだけなので、高いポイントが優先的に設定された特定のコードが検出され易くなるだけで、演奏曲のイメージに合ったコードが検出されるということにはならない。
また上記従来の演奏設定データ選択装置では、曲名が選択されると、その曲名に応じた演奏設定データが自動的に設定されるが、設定される演奏設定データには、伴奏スタイルデータやメロディ音色やテンポなどは含まれるものの、コード情報は含まれていない。つまり上記従来の演奏設定データ選択装置では、コードは、演奏設定データとしてではなく、演奏データとして扱われるので、選択可能な曲に適した伴奏スタイルデータやメロディ音色やテンポなどは設定できても、その曲をイメージできるコード進行まで設定することはできない。
本発明は、この点に着目してなされたものであり、取得した演奏データに対して調和し、さらに演奏曲のイメージに合ったコード検出を行うことが可能となるコード検出装置およびコード検出方法を実現するためのプログラムを提供することを目的とする。
上記目的を達成するため、請求項1に記載のコード検出装置は、ユーザによる演奏を表す演奏データを取得する演奏データ取得手段と、ユーザによる演奏曲を表す曲情報を取得する曲情報取得手段と、前記演奏曲におけるコードのそれぞれの出現可能性の程度を表すコード傾向情報を取得するコード傾向情報取得手段と、前記演奏データ取得手段によって取得された演奏データおよび前記コード傾向情報取得手段によって取得されたコード傾向情報に基づいて、コードを検出するコード検出手段とを有することを特徴とする。
請求項2に記載のコード検出装置は、請求項1のコード検出装置において、前記演奏データ取得手段によって取得された演奏データに基づいて、1つ以上のコード候補を抽出する抽出手段をさらに有し、前記コード検出手段は、前記抽出手段によって抽出されたコード候補から、前記コード傾向情報取得手段によって取得されたコード傾向情報に基づいて1つのコードを検出することを特徴とする。
請求項3に記載のコード検出装置は、請求項1または2のコード検出装置において、前記コード傾向情報取得手段は、前記演奏曲におけるコード傾向情報を取得できない場合には、当該演奏曲に関する取得可能な他の情報に基づいてコード傾向情報を生成し、生成したコード傾向情報を当該演奏曲に対応するコード傾向情報として取得することを特徴とする。
上記目的を達成するため、請求項4に記載のプログラムは、請求項1と同様の技術的思想によって実現できる。
請求項1または4に記載の発明によれば、ユーザがある演奏曲の演奏を行うと、演奏に応じた演奏データが取得されるとともに、前記演奏曲におけるコード傾向情報が取得され、取得された演奏データおよびコード傾向情報に基づいて当該演奏曲のイメージに合ったコードが検出されるので、ユーザは演奏中に、意図通りのコード検出がなされるような工夫、たとえばコードのルート音を演奏音に確実に含ませるなどの工夫をする必要がなくなる。その結果、ユーザは当該演奏曲そのものの演奏に集中することができる。
また、演奏曲が指定されたとしても、たとえば、当該演奏曲に対応して予め記憶(設定)されたコード進行が順次読み出される等により、コード進行まで固定される訳ではなく、演奏曲のイメージおよび演奏音(演奏データ)に合ったいずれかのコードが検出され易くなるだけであるので、演奏中にユーザが自由にアレンジしても、あるいは繰り返し部分の追加や省略などを自由に行っても、演奏曲のイメージおよび演奏音に合ったコード検出は変わらずになされる。その結果、演奏曲のイメージを保ちつつ、ユーザのアレンジによる幅広い演奏が可能になる。
請求項3に記載の発明によれば、前記演奏曲におけるコード傾向情報がないなどの理由によりコード傾向情報を取得できない場合には、当該演奏曲に関する取得可能な他の情報に基づいてコード傾向情報が生成され、そのコード傾向情報が当該演奏曲に対応するコード傾向情報として取得されるので、取得した演奏データに対して、当該演奏曲のイメージに合ったコード検出を常に行うことができる。
本発明の一実施の形態に係るコード検出装置の概略構成を示すブロック図である。 コード検出タイミングの設定例を示す図である。 ディグリーネーム別ポイントテーブルの一例を示す図である。 演奏設定データ((a))、音楽コンテンツデータ((b))およびコード傾向情報((c))の各一例を示す図である。 図1のコード検出装置、特にCPUが実行する、自動伴奏を使った演奏処理の手順の前半部分を示すフローチャートである。 上記自動伴奏を使った演奏処理の手順の後半部分を示すフローチャートである。 図5A中のコード傾向情報取得処理の詳細な手順を示すフローチャートである。 図5A中のノートイベント処理の詳細な手順を示すフローチャートである。 図5B中のコード検出処理の詳細な手順を示すフローチャートである。 図8中の役割抽出処理の詳細な手順の前半部分を示すフローチャートである。 図8中の役割抽出処理の詳細な手順の後半部分を示すフローチャートである。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本発明の一実施の形態に係るコード検出装置の概略構成を示すブロック図である。
同図に示すように、本実施の形態のコード検出装置は、ユーザの演奏操作に応じて音高情報を含む演奏データを入力する鍵盤を含む演奏操作子1と、各種情報を入力するための複数のスイッチを含む設定操作子2と、演奏操作子1の操作状態を検出する検出回路3と、設定操作子2の操作状態を検出する検出回路4と、装置全体の制御を司るCPU5と、該CPU5が実行する制御プログラムや各種テーブルデータ等を記憶するROM6と、演奏データ、各種入力情報および演算結果等を一時的に記憶するRAM7と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ8と、後述するようにCPU5が供給するコード情報に基づいて演奏データ(伴奏音を発生させるためのもの)を生成する自動伴奏装置9と、各種情報等を表示する、たとえばLCD(liquid crystal display)およびLED(light emitting diode)等を備えた表示装置10と、外部MIDI(musical instrument digital interface)機器等の外部機器100を接続し、この外部機器100とデータの送受信を行う通信インターフェース(I/F)12と、演奏操作子1から入力された演奏データや、前記自動伴奏装置9によって生成された演奏データ等を楽音信号に変換するとともに、その楽音信号に各種効果を付与するための音源・効果回路13と、該音源・効果回路13からの楽音信号を音響に変換する、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等のサウンドシステム14とにより構成されている。
上記構成要素3〜13は、バス15を介して相互に接続され、CPU5および自動伴奏装置9にはタイマ8が接続され、通信I/F12には外部機器100が接続され、音源・効果回路13にはサウンドシステム14が接続されている。
自動伴奏装置9は、たとえば、ROM6に予め記憶されたシーケンサソフトウェアをCPU5に実行させることによって実現され、前述のように、供給されたコード情報に基づいて演奏データを生成し、生成した演奏データを音源・効果回路13に供給することで、伴奏音を発生させる。また、自動伴奏装置9は、たとえば、ROM6に予め記憶された各種伴奏スタイルデータからユーザが選択したいずれかの伴奏スタイルデータを再生して、演奏データを生成する機能も備えている。この機能を営むときに、自動伴奏装置9は、タイマ8から供給される時間情報に基づいて伴奏スタイルデータを再生する。なお、本発明の特徴は、自動伴奏装置9の構成や作用にある訳ではないので、自動伴奏装置9の構成や作用についてのこれ以上の説明は行わない。
記憶装置11は、たとえば、フレキシブルディスク(FD)、ハードディスク(HD)、CD−ROM、DVD(digital versatile disc)、光磁気ディスク(MO)および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は駆動装置から着脱可能であってもよいし、記憶装置11自体が本実施の形態のコード検出装置から着脱可能であってもよい。あるいは、記憶媒体も記憶装置11も着脱不可能であってもよい。なお記憶装置11(の記憶媒体)には、前述のように、CPU5が実行する制御プログラムも記憶でき、ROM6に制御プログラムが記憶されていない場合には、この記憶装置11に制御プログラムを記憶させておき、それをRAM7に読み込むことにより、ROM6に制御プログラムを記憶している場合と同様の動作をCPU5にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
通信I/F12には、図示例では外部機器100が接続されているが、これに限られず、たとえばLAN(local area network)やインターネット、電話回線等の通信ネットワークを介して、サーバコンピュータが接続されるようにしてもよい。この場合、記憶装置11に上記各プログラムや各種パラメータが記憶されていなければ、通信I/F12はサーバコンピュータからプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコード検出装置は、通信I/F12および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介してコード検出装置へと配信し、コード検出装置が通信I/F12を介して、これらプログラムやパラメータを受信して記憶装置11に蓄積することにより、ダウンロードが完了する。
なお、本実施の形態のコード検出装置は、上述の構成から分かるように電子鍵盤楽器上に構築されたものであるが、これに限らず、鍵盤を外部接続した汎用的なパーソナルコンピュータ上に構築してもよい。また、鍵盤を必須の構成とせずに本発明を実現できるので、弦楽器タイプや管楽器タイプ等の形態を採用するようにしてもよい。さらに電子楽器に限らず、カラオケ機器やゲーム機器、通信機器などの電子機器にも本発明を適用することができる。
以上のように構成されたコード検出装置が実行する制御処理を、まず図2〜図4を参照してその概要を説明し、次に図5〜図9を参照して詳細に説明する。
図2は、コード検出タイミングの設定例を示す図である。同図には、演奏曲として4/4拍子の曲が選択され、その1拍目と3拍目がコード検出基準位置に設定され、このコード検出基準位置の250ms前から50ms後までの期間がコード検出タイミングに設定された例が示されている。なお図示例では、コード検出タイミングは、3拍目には描かれているものの、1拍目には描かれていない。これは、コード検出タイミングは、1拍目と3拍目で同じ時間幅のものが用いられているため、どちらか一方の拍位置にコード検出タイミングを描いておけば、他方の拍位置にも同様にコード検出タイミングが設定されていることが容易に分かるからである。また、詳細は後述するが、コード検出タイミングをどの位置にどれくらいの時間幅で、どれくらいの個数(あるいは、どれくらいの頻度で)設定するかは、ユーザが自由に選択できるようになっている。
本実施の形態のコード検出装置は、ユーザが前記鍵盤を用いて演奏することで、リアルタイム入力された演奏データをそのまま前記音源・効果回路13に供給して発音するとともに、リアルタイム入力された演奏データに対して、演奏曲のイメージに合ったコードを検出して前記自動伴奏装置9に供給することにより、伴奏音も発音するようにしている。前記コード検出タイミングの期間(時間幅)は、コードを検出するために参照する演奏データを入力する期間である。つまり、コード検出タイミングの期間内に入力された演奏データのみが、伴奏音を発音するためのコードを検出する際に参照される。
コードの検出は、本実施の形態では、[背景技術]で挙げた特許文献1の従来のコード検出装置によって行われるコード検出処理を改良して行うようにしている。具体的には、[背景技術]で前述したA.〜F.の処理をそのまま用い、このE.の処理とF.の処理の間に、後述するG.の処理を追加することで、行うようにしている。
図3は、前記D.の処理で参照されるディグリーネーム別ポイントテーブルの一例を示し、図4は、コード検出のために使用する演奏設定データ((a))、音楽コンテンツデータ((b))およびコード傾向情報((c))の各一例を示している。
図3は、特許文献1の図3と同じものであるが、図3に示したディグリーネーム別ポイントテーブルについて説明を加えておく。なお、特許文献1に記載の内容は、本実施の形態に組み込まれるものとする。
ディグリーネーム別ポイントテーブルは、候補コードとなり得るすべてのコードに関して、各ノート(ルート、3度、5度、…)のポイントを得るためのノートポイントテーブル(第5〜11列)と、コード自体の優先ポイント(Prior)を得るための優先ポイントテーブル(第4列)が、メジャー調とマイナー調別に1つのテーブルにまとめられ、さらに、コードの機能とダイアトニック・コードかどうかの情報(第3列と第2列)が付加されている点に特徴がある。図3のディグリーネーム別ポイントテーブル(メジャー調)は、メジャー調(長調)で候補コードとなり得るすべてのコードに関するテーブルであり、マイナー調(短調)についても同様のテーブルが用意される(図示せず)。
図3において、第1列は、ディグリーネーム別ポイントテーブルにディグリーネーム情報(コード情報とも言い、以下の説明では、単にディグリーネームと呼ぶ)を示し、図示例以外にも多数のディグリーネームがある。各ディグリーネームは、調の主音(トニック)を基準とした度数(根音の音階度数、例:I,II,III,IV,V,…)とコードタイプ(例:記号なし(メジャー)、m(マイナー)、7,6,Maj7(メジャー7)、m6(マイナー6)、m7(マイナー7)、add9(アド9th)、…)との組み合わせでコードを表している。なお、図中の“♭”は、「フラット」を表し、後述する他の例でも同じである。
ディグリーネーム別ポイントテーブルには、第1列(第1欄)の各ディグリーネームに対応して第2列(第2欄)以下の諸情報が記録されている。第2列のダイアトニック情報は、各ディグリーネームで表されたコードがダイアトニック・コードである(○)か否か(×)を表す。第3列の機能情報は、ディグリーネームの機能がトニック(T)、サブドミナント(S)、ドミナント(D)、サブドミナント・マイナー(SM)のいずれであるかを表す。また、第4列の優先ポイント情報(Prior)は、ディグリーネーム自体の優先度をポイントで表し、コード優先ポイントまたはディグリーネーム優先ポイントとも呼ばれる。これに対して、第5〜11列は、コードを特徴付けるノート(ルート、3度、5度、…)毎に音楽的な重要度を表すノートポイント情報が設定されたノートポイントテーブル部を構成している。
まず、第5〜9列の各欄のポイント情報は、コードを構成するコード構成音の各ノート(役割)に対する音楽的な重要度をポイント値で表している。具体的には、第5列のルートポイント情報は、コード構成音の根音に対応するポイントを表す。第6列の3度ポイント情報は、コード構成音の3度音に対応するポイントを表す。第7列の5度ポイント情報は、コード構成音の5度音に対応するポイントを表す。第8列の4声目ポイント情報は、コード構成音中で根音に対し長6度(6th)、短7度(7th)または長7度(Maj7th)の4声目音に対応するポイントを表す。第9列のオルタード系ポイント情報は、コード構成音中で根音に対し減5度(♭5th)または増5度(♯5th)の5度変化音(オルタード系コードトーン)に対応するポイントを表す。
そして、第10列のテンションノートポイント情報は、コードの基本的な和音構成音の上部に置かれた非和声音で緊張感を与えるテンションノートに対する音楽的な重要度をポイント値で表す。第11列(最右欄)のその他ポイント情報は、コード・サウンドの構成上除外されるアヴォイドノートなど、コード構成音にも、テンションノートにも相当しないその他のノートに対する音楽的な重要度をポイント値で表す。
このノートポイントテーブル部(第5〜11列)では、コード構成音の中でも、特にルートの役割を持つ演奏音(押鍵音、音高情報)には、重要度が高いと評価されて高めのポイントが設定される。また、構成音中でも、コードタイプの決定に大きく関わる3度および7度(4声目)の役割を持つ演奏音も重要とみなされる。一方、コードの中で不協和を生じるような役割(その他)の演奏音に対しては、重要度が低くなり、ポイントも低めに設定される。
本実施の形態のコード検出装置では、前記B.〜E.の処理により、コード候補(後述する「コードリストCList」)毎に総計ポイントが計算される。具体的には、検出対象となる演奏データが入力されたときの調(後述する「調情報Key」)に応じて、候補とすべきコード(コードリストCList)が抽出される(処理B.)。たとえば、予め所定の調で使用可能なコードの種類の組み合わせをいくつか記憶しておき、コード検出時に所望の組み合わせを選び、選ばれた組み合わせに該当するコードを候補コード(コードリストCList)として抽出する。また、図3に示されるタイプのディグリーネーム別ポイントテーブルでは、ポイント情報(第4〜11列)だけでなく、第2,3列に示すように、各コードのディグリーネーム(後述する「ディグリーネームDName」:第1列)についてダイアトニック・コードかどうかを表すダイアトニック情報や、機能は何であるかを表す機能情報が追加されているので、ディグリーネーム別ポイントテーブルを利用して、その追加情報を参照することにより、候補となるコード(コードリストCList)を抽出することができる。
たとえば、そのときのダイアトニック・コード(第2列情報=“○”)に該当するコード(ディグリーネームDName)をすべての候補コードとして抽出するようにしてもよい。あるいは、2回目以降のコード検出の場合には、前回検出されたコードの機能(第3列情報)を調べ、たとえば、ドミナント(D)であれば、次はトニック(T)に進む、というように、前回検出されたコード(後述する「検出コードChord」)から音楽的に次に進むことが可能なコード(ディグリーネームDName)を候補コード(コードリストCList)として抽出するようにしてもよい。なお、このような追加情報については、ディグリーネーム別ポイントテーブルに含ませずに、ディグリーネーム別ポイントテーブルとは別に参照テーブルを用意しておくようにしてもよい。
候補コード(コードリストCList)が抽出されると、対象の演奏データ(後述する「ノートイベントリストNList」)に含まれる各演奏音(押鍵音、後述する「音高情報Note」)が、抽出された各候補コード(コードリストCListに登録された各コード)において、どのような役割を演じているのか(どの構成音が、テンションノートか、またはアヴォイドノートか)が識別される(処理C.)。次に、ディグリーネーム別ポイントテーブルから、識別した役割(各構成音、テンションノート、アヴォイドノート)に対応するポイントが取得される(処理D.)。そして、候補コード毎に、全演奏音(ノートイベントリストNList)に対応するポイント(重要度)が合計される(処理E.)。
このE.の処理の結果、抽出されたコード候補のそれぞれについて、ポイントが算出されると、前記CPU5は、
G.現在の演奏曲(図示例では、演奏曲名“○○○”)に対応するコード傾向情報(図4(c)参照)を参照して、各コード候補のポイント数を調整する。
具体的な調整方法については制御処理の詳細で後述するが、コード候補が「出現し易い」ものに該当する場合には、そのポイント数を増大させる方向に調整する一方、コード候補が「出現し難い」ものに該当する場合には、そのポイント数を減少させる方向に調整する。
そしてCPU5は、このポイント数の調整されたコード候補に対して、前記F.の処理を実行することで、コード検出を行う。具体的には、G.の処理で調整されたポイント数が一番高い候補コードを選出し、これが対象の演奏データに最適なコード(検出コードChord)であると決定する。
コード傾向情報は、図4(a)に示すように、演奏設定データ内の「コード傾向情報」欄に記載された情報(参照パス)によって、その記憶場所が特定される。そして、演奏設定データは、演奏曲毎に設けられているので、コード傾向情報は、演奏曲に対応付けられている。ただし、演奏設定データによっては、つまり演奏曲によっては、「コード傾向情報」欄に参照パスが記載されていないものもあるので、コード傾向情報が演奏曲に対応付けられて常に記憶されている訳ではない。しかし本実施の形態では、前記E.の処理後、前記F.の処理前には、当該演奏曲に対応するコード傾向情報が常に参照されて、各コード候補のポイント数が調整されるので、コード傾向情報がどこにも記憶されていない場合には、CPU5は、当該演奏曲の音楽コンテンツデータ(図4(b)参照)に基づいて、当該演奏曲に対応するコード傾向情報を生成するようにしている。なお、このコード傾向情報の生成については、詳しく後述する。
このように本実施の形態のコード検出装置では、ユーザが演奏したい曲を選択して演奏を行うと、選択された演奏曲に対応するコード傾向情報が取得され、このコード傾向情報に基づいて当該演奏曲のイメージに合ったコードが検出されるので、ユーザは演奏中に、意図通りのコード検出がなされるような工夫、たとえばコードのルート音を演奏音に確実に含ませるなどの工夫をする必要がなくなる。その結果、ユーザは当該演奏曲そのものの演奏に集中することができる。
また、演奏曲が選択されたとしても、たとえば、当該演奏曲に対応して予め記憶(設定)されたコード進行が順次読み出される等により、コード進行まで固定される訳ではなく、選択曲のイメージおよび演奏音(演奏データ)に合ったいずれかのコードが検出され易くなるだけであるので、演奏中にユーザが自由にアレンジしても、あるいは繰り返し部分の追加や省略などを自由に行っても、演奏曲のイメージおよび演奏音に合ったコード検出は変わらずになされる。その結果、演奏曲のイメージを保ちつつ、ユーザのアレンジによる幅広い演奏が可能になる。
次に、この制御処理を詳細に説明する。
図5Aおよび図5Bは、本実施の形態のコード検出装置、特にCPU5が実行する、自動伴奏を使った演奏処理の手順を示すフローチャートである。本実施の形態のコード検出装置では、ユーザが演奏操作子1を用いてリアルタイム演奏する際の演奏モードとして、自動伴奏装置9を作動させずに、演奏操作子1を用いて入力された演奏データに応じた楽音を発音させる第1の演奏モードと、自動伴奏装置9を作動させて、演奏操作子1を用いて入力された演奏データに応じた楽音とともに、自動伴奏装置9によって生成された演奏データに応じた楽音(伴奏音)も発音させる第2の演奏モードの2種類の演奏モードを備えている。通常の演奏モード、つまり、本実施の形態のコード検出装置の電源をオンしたときに最初に選択される演奏モードは、第1の演奏モードであるので、第2の演奏モードに移行するには、ユーザによる所定の移行指示が必要となる。上記「自動伴奏を使った演奏処理」は、この移行指示がなされたときに起動される処理である。なお本実施の形態では、本発明の特徴を「自動伴奏を使った演奏処理」内にすべて盛り込み、この「自動伴奏を使った演奏処理」を用いて本発明の特徴を説明するようにしたので、「自動伴奏を使わない演奏処理」についての説明は行わない。したがって、以下「自動伴奏を使った演奏処理」を「演奏処理」と略して言う。
本演奏処理は、主として、
(1)起動時処理(ステップS1〜S7);
(2)自動伴奏のスタート時処理(ステップS10);
(3)自動伴奏のストップ時処理(ステップS12);
(4)ノートイベント処理(ステップS15);
(5)コードの検出タイミング時処理(図5BのステップS17〜S24);
によって構成されている。
本演奏処理が起動されると、前記(1)の起動時処理が1回実行された後、自動伴奏のスタート指示があるまで待機状態となり(ステップS8→S9→S8)、自動伴奏のスタート指示があると、前記(2)の自動伴奏のスタート時処理が実行され、これに続いて、前記(4)および(5)の各処理が適宜実行される。そして(4)および(5)の各処理は、自動伴奏のストップ指示があるまで(ステップS11)、あるいは第1の演奏モードに戻る指示があるまで(ステップS8)、適宜繰り返し実行される。なお、自動伴奏のストップ指示があると、前記(3)の自動伴奏のストップ時処理が実行された後、演奏曲の変更があったかどうか判定され(ステップS13)、変更があったときには、前記(1)の起動時処理に戻る(ステップS13→S1)一方、変更がなかったときには、前記待機状態に戻る(ステップS13→S8)。また、第1の演奏モードに戻る指示があると、本演奏処理は終了する(ステップS8→終了)。
前記(1)の起動時処理は、
(11)演奏曲の選択および設定処理(ステップS1およびS2);
(12)コード傾向情報取得処理(ステップS3);
(13)コード検出タイミング、各種ルールおよび各種情報の設定処理(ステップS4);
(14)ポイントテーブル読込処理(ステップS5);
(15)初期化処理(ステップS6);
(16)コード検出タイミングの始点および終点の算出設定処理(ステップS7);
によって構成されている。
この(1)起動時処理に処理が進むと、まずCPU5は、前記(11)の演奏曲の選択および設定処理を実行する。この(11)演奏曲の選択および設定処理では、CPU5は、選択可能な演奏曲の、たとえば曲名の一覧を前記表示装置10上に表示する。表示された曲名の一覧から、ユーザがいずれかの演奏曲名を選択すると、CPU5は、選択された演奏曲名に対応する演奏設定データを読み出し(ステップS1)、その演奏設定データに記載された各種設定値を対応するレジスタ等に書き込んで設定する(ステップS2)。演奏曲名として、たとえば“○○○”が選択された場合、演奏曲名“○○○”の演奏設定データは、前記図4(a)に示すように、伴奏スタイルが“pop1”,メロディ音色が“Grand Piano”,…であるので、これらの設定値が対応するレジスタ等に設定される。なお、図示されていない設定項目(パラメータ)としては、たとえば、演奏テンポやボリューム値、拍子などを挙げることができる。
次にCPU5は、処理を前記(12)のコード傾向情報取得処理に進める。
図6は、この(12)コード傾向情報取得処理の詳細な手順を示すフローチャートである。本コード傾向情報取得処理では、前記図4(c)で例示したコード傾向情報を取得する。
コード傾向情報は、本実施の形態では、演奏設定データとは別の場所に記憶され、演奏設定データ内の「コード傾向情報」欄には、コード傾向情報の記憶場所を示す情報(その情報として、本実施の形態では「参照パス」を採用する)が記載される(図4(a)参照)。また、演奏設定データの中には、コード傾向情報の参照パスが記載されていないものもあり、さらに、コード傾向情報の参照パスが記載されていたとしても、記憶場所に有用なコード傾向情報が記憶されていないこともある。したがって、本コード傾向情報取得処理では、
(C1)演奏設定データ内にコード傾向情報の参照パスが記載されておらず、取得対象となるコード傾向情報が存在しないので、取得すべきコード傾向情報を新たに生成しなければならない場合;
(C2)演奏設定データ内にコード傾向情報の参照パスは記載されているものの、その参照パスによって参照されるコード傾向情報は初期状態(具体的には、コード傾向情報の記憶領域だけ確保されており、その領域には有用なコード傾向情報が記憶されていない状態など)であるので、取得すべきコード傾向情報を新たに生成しなければならない場合;
(C3)演奏設定データ内にコード傾向情報の参照パスが記載されており、その参照パスによって参照されるコード傾向情報も、上記(C2)の初期状態ではなく、有用なものであるので、そのコード傾向情報をそのまま取得すればよい場合;
に場合分けし、各場合について異なった方法で、コード傾向情報を取得するようにしている。
上記(C1)の場合に、本コード傾向情報取得処理が起動されたとする。このとき、当該演奏設定データ内にはコード傾向情報の参照パスが記載されていないので、つまり、取得するべきコード傾向情報がないので、まずCPU5は、コード傾向情報を新規に生成して記憶する領域を、たとえば前記記憶装置11内に確保し、その場所を示す情報を参照パスの形式で生成し、当該演奏設定データ内の所定の位置(図4(a)では「コード傾向情報」欄)に記載する(ステップS31→S32)。
次にCPU5は、選択された演奏曲に対応する音楽コンテンツデータを検索する(ステップS34)。検索場所は、検索可能な場所であればどこであってもよいが、本実施の形態のコード検出装置内であれば、ROM6、RAM7および記憶装置11であり、本実施の形態のコード検出装置外であれば、外部機器100内の記憶媒体である。また、通信I/F12を介してインターネットが接続されていれば、インターネット上のサーバコンピュータも検索対象となる。このように検索場所は多いので、同じ演奏曲について複数の音楽コンテンツデータが検索されることもある。前記図4(b)の音楽コンテンツデータは、そのうちの1つである。図示例の演奏曲名“○○○”の音楽コンテンツデータは、コード進行情報、演奏データおよびその他の情報によって構成されるが、コード進行情報がなく、演奏データとその他の情報によって構成されるものや、演奏データがなく、コード進行情報とその他の情報によって構成されるものもある。また、演奏データも、図示例の音楽コンテンツデータでは、MIDI形式で構成されているが、オーディオ形式で構成されていてもよいし、ある一部パートはMIDI形式で構成され、他のパートはオーディオ形式で構成されていてもよい。
次にCPU5は、
(C11)検索された音楽コンテンツデータの中に、参照可能なコード(進行)情報を記憶しているものがある場合;
(C12)検索された音楽コンテンツデータの中に、参照可能なコード(進行)情報を記憶しているものはないが、参照可能な演奏データを記憶しているものがある場合;
(C13)検索された音楽コンテンツデータの中に、参照可能なコード(進行)情報も参照可能な演奏データもない場合;
の3種類の場合に場合分けして、各場合について異なった処理を実行する。
上記(C11)の場合、CPU5は、該当する音楽コンテンツデータの調情報を取得する(ステップS35→S36)。調情報は、当該音楽コンテンツデータ内に記載されていれば、それを読み出して取得すればよいし、調情報が当該音楽コンテンツデータ内に記載されていなければ、当該音楽コンテンツデータ(のコード(進行)情報あるいは演奏データ)を分析し、調情報を抽出して取得すればよい。
次にCPU5は、該当する音楽コンテンツデータからコード(進行)情報を抽出し、上記取得された調情報に基づいて、当該コード(進行)情報に含まれる各コードをディグリーネームに変換する(ステップS37)。ディグリーネームに変換された各コードは、たとえばRAM7内のワークエリアに一時的に保存される。
そしてCPU5は、各ディグリーネームの出現状況を分析して、コード傾向情報を生成し、生成したコード傾向情報を、当該演奏設定データ内の参照パスによって示される記憶領域に記憶する(ステップS40)。コード傾向情報は、本実施の形態では前記図4(c)に示すように、対象曲における1つ以上の“***”(カテゴリ)について「出現し易い/出現し難い」ものを優先順位を付けて示している。ただし“***”は、図示例のコード傾向情報では、「ディグリーネーム」、「コードルートの度数(コードのキー(主音)に対する度数)」、「コードタイプ」および「機能」(ただし、機能とは、トニック(T)、ドミナント(D)、サブドミナント(S)およびサブドミナント・マイナー(SM)を意味する)であるが、これ以外に、コードネームそのものが考えられる。優先順位は、本実施の形態では、「出現し易い」“***”に含まれる要素のそれぞれに対応付けて、その出現割合を“%”で示しているが、これに限らず、ポイント値や確率で示すようにしてもよい。
一方、前記(C12)の場合、CPU5は、該当する音楽コンテンツデータの演奏データを分析して、調情報とコード進行情報を抽出し、抽出された調情報に基づいて、抽出されたコード(進行)情報に含まれる各コードをディグリーネームに変換する(ステップS35→S38→S39)。ディグリーネームに変換された各コードは、前記ステップS37と同様に、RAM7内のワークエリアに一時的に保存される。そしてCPU5は、処理を前記ステップS40に進める。ステップS40の処理についての説明は、繰り返さない。
さらに、前記(C13)の場合、CPU5は、デフォルトのコード傾向情報を生成し、生成したコード傾向情報を、当該演奏設定データ内の参照パスによって示される記憶領域に記憶する(ステップS35→S38→S41)。
次にCPU5は、当該演奏設定データ内に記載されている参照パスによって参照される記憶領域からコード傾向情報を読み出して、コード傾向情報を格納するためにRAM7上に設けられたコード傾向情報格納領域(図示せず)に格納する(ステップS42)。
一方、前記(C2)の場合に、本コード傾向情報取得処理が起動されたとする。このとき、当該演奏設定データ内にはコード傾向情報の参照パスが記載されているものの、その参照パスによって示されるコード傾向情報は初期状態であるので、CPU5は、処理を前記ステップS34に進める。ステップS34以降の処理は、前述したので、ここでは繰り返さないが、ステップS34以降の処理が実行されると、初期状態のコード傾向情報が有用なものに更新され、更新後のコード傾向情報が、コード傾向情報格納領域に格納される。
さらに、前記(C3)の場合に、本コード傾向情報取得処理が起動されたとする。このとき、当該演奏設定データ内には有用なコード傾向情報の参照パスが記載されているので、CPU5は、当該演奏設定データ内に記載されている参照パスによって参照される記憶領域からコード傾向情報を読み出して、コード傾向情報格納領域に格納する(ステップS31→S33→S42)。
図5Aに戻り、CPU5は、処理を前記(13)のコード検出タイミング、各種ルールおよび各種情報の設定処理に進める。この(13)コード検出タイミング、各種ルールおよび各種情報の設定処理では、CPU5は、コード検出タイミングの設定ルールと、それ以外の各種ルールと、各種情報を設定する。
コード検出タイミングの設定ルールとは、具体的には、コードを検出するタイミングとして、時間幅を設けるのか、あるいは時間幅を設けずに時点とするのか、また、時間幅を設けるのであれば、どの時点を基準位置として、その前後にどのくらいの時間幅を設けるのか、あるいは時点とするのであれば、どの時点とするのかということである。時間幅を設ける例としては、前記図2で示したように、2拍毎に(4/4拍子が選択された場合には、たとえば1拍目と3拍目)拍位置をコード検出基準位置として、250ms前から50ms後までの期間とすることが挙げられる。図示例では、時間幅を設定する単位として“ms”を採用したが、もちろんこれに限らず、音符長であってもよい。また、コード検出基準位置は2拍毎の拍位置に限らず、1拍毎の拍位置であってもよいし、テンポが変化したときに、たとえば2拍毎から1拍毎に変動するようにしてもよいし、拍に限らず、小節毎の所定位置(たとえば、先頭位置)であってもよい。さらに、コード検出基準位置をどこに設定するかは、テンポ値や伴奏スタイルによって決まっていてもよい。一方、時点の例としては、時間幅を設ける場合で例示した各種コード検出基準位置、つまり、所定拍毎の拍位置や小節毎の所定位置、あるいは、ユーザが、たとえば前記設定操作子2に含まれる所定の操作子を操作した時点や、所定の拍内で、ユーザが所定の操作子を操作した時点などが考えられる。なお本実施の形態では、コード検出タイミングの設定ルールとして、前記図2の例で示したルールが選択設定されているものとする。
各種ルールとしては、(R1)調情報の検出ルールや(R2)コード候補の抽出ルールなどを挙げることができる。
上記(R1)の調情報の検出ルールとしては、たとえば、
(R1a)演奏前にユーザに調情報を問い合わせ、これに応じてユーザが入力した調情報を検出(取得)するというルール;
(R1b)ユーザの演奏操作に応じて入力された演奏データを解析して、随時調情報を検出するというルール;
などが考えられる。なお本実施の形態では、調情報は、主音名+メジャー/マイナーによって表現したものを入力あるいは検出するものとする。また、演奏データを解析して調情報を検出する方法は、公知のものを用いればよい。そして、調情報を随時検出する方法を採用した場合には、コードが検出される度に(後述する図8のステップS76を参照)、そのとき検出された調情報を当該検出されたコードに対応付けて記憶しておくとよい。
前記(R2)のコード候補の抽出ルールとしては、たとえば、
(R2a)当該調のダイアトニック・コードのみを抽出するというルール;
(R2b)当該調で使用可能なコードをすべて抽出するというルール;
(R2c)当該調で使用可能なコードのうち、構成音が対象演奏データ(後述するノートイベントリストNListに登録されたノートイベント情報)中に1音以上あるコードを抽出するというルール;
などを挙げることができる。
各種情報としては、ディグリーネーム別ポイントテーブルやコード傾向情報などを挙げることができる。そして、ディグリーネーム別ポイントテーブルを設定するとは、ユーザの指示に応じて、複数種類のテーブルからいずれかの種類を選択したり、テーブル中のポイント値を編集したりすることである。また、コード傾向情報を設定するとは、コード傾向情報格納領域に格納されているコード傾向情報を、ユーザの指示に応じて編集することである。
次にCPU5は、処理を前記(14)のポイントテーブル読込処理に進める。この(14)ポイントテーブル読込処理では、上記選択されたディグリーネーム別ポイントテーブルを読み込んで、RAM7上に設けられたポイントテーブル格納領域(図示せず)に格納する。なお、ディグリーネーム別ポイントテーブルは、本実施の形態では前記図3に示すように、コード優先ポイントテーブル(Prior)と一体化されているので、ディグリーネーム別ポイントテーブルを単純に読み込めばよいが、コード優先ポイントテーブルが別設されている場合には、ディグリーネーム別ポイントテーブル(コード優先ポイントテーブルを含まないもの)に加えて、別設されたコード優先ポイントテーブルを読み込む必要がある。
次にCPU5は、処理を前記(15)の初期化処理に進める。この(15)初期化処理では、CPU5は、RAM7上に確保した次の各領域を初期化する。つまり、
ノートイベントリストNList:コード検出タイミングの期間内に入力されたノートオンイベントに対応するノートイベント情報(音高+入力タイミング)を登録するリストである;
コード検出タイミングの始点sTime:コード検出タイミングの始点を記憶しておく領域である;
コード検出タイミングの終点eTime:コード検出タイミングの終点を記憶しておく領域である;
調情報Key:前記設定された調検出ルールに従って検出された調情報を記憶しておく領域である;
コードリストCList:前記設定されたコード候補の抽出ルールに従って抽出されたコード候補を登録するリストである;
検出コードChord:コードリストCListから選出した1つのコードネームを記憶しておく領域である;
の各領域をクリアする。
次にCPU5は、処理を前記(16)のコード検出タイミングの始点および終点の算出設定処理に進める。この(16)コード検出タイミングの始点および終点の算出設定処理では、CPU5は、前記設定されたコード検出タイミングの設定ルールに従って、最初のコード検出タイミングの始点および終点を算出し、算出した始点を前記始点sTimeに記憶(設定)するとともに、算出した終点を前記終点eTimeに記憶(設定)する。ただし本実施の形態では、コード検出タイミングとして、曲の先頭拍の拍位置をコード検出基準位置に取るとともに、その拍位置からさらに250ms前をコード検出タイミングの始点に取るのに対して、曲は先頭拍から開始されるので、曲の開始時に、その開始位置より前の位置を算出して、始点sTimeに設定するのは無意味である。したがって、この場合、始点sTimeには先頭拍の拍位置、つまりコード検出基準位置を設定することが好ましい。しかしこの場合に、原則通り、先頭拍の拍位置より250ms前の位置を算出して、始点sTimeに設定したとしても、設定された始点より後の時刻から制御処理が開始されるだけであって、その後の制御処理に問題が生じることはない。
このようにして(1)起動時処理が1回実行されると、CPU5は、ユーザによる自動伴奏のスタート指示を待ち、自動伴奏のスタート指示がなされると、処理を前記(2)の自動伴奏のスタート時処理に進める(ステップS9→S10)。この(2)自動伴奏のスタート時処理では、CPU5は、前記タイマ8を起動して、タイマ8による計時を開始する。タイマ8の計時時間は、前述のように前記自動伴奏装置9にも供給され、さらに本演奏処理では、前述のように自動伴奏装置9は作動状態であるので、伴奏スタイルデータが選択設定されていれば、自動伴奏装置9は、本演奏処理とは独立して、タイマ8から供給された計時時間(時間情報)に基づいてその伴奏スタイルデータを再生する。
そしてCPU5は、ユーザによって自動伴奏のストップ指示がなされるまで、ノートオンイベントが受け付けられたときには、前記(4)のノートイベント処理を実行し(ステップS11→S14→S15)、タイマ8によって前記コード検出タイミング(の終点eTime)が計時されたときには、前記(5)のコードの検出タイミング時処理を実行する(図5BのステップS16→S17)。
一方、ユーザによって自動伴奏のストップ指示がなされると、CPU5は、処理を前記(3)の自動伴奏のストップ時処理に進める(ステップS11→S12)。この(3)自動伴奏のストップ時処理では、CPU5は、タイマ8を停止する。これにより当然ながら、自動伴奏装置9による前記伴奏スタイルデータの再生は停止する。
図7は、前記(4)のノートイベント処理の詳細な手順を示すフローチャートである。
同図に示すように、本ノートイベント処理は、
(41)タイマ8がコード検出タイミング期間内の時間、つまり前記始点sTimeから前記終点eTimeまでの間の時間を計時しているときに
(41a)ノートオンイベントが受け付けられた場合の処理(ステップS53,S54)
(41b)ノートオフイベントが受け付けられた場合の処理(ステップS55,S56)
(42)タイマ8がコード検出タイミング期間外の時間を計時しているときに
(42a)ノートオンイベントが受け付けられた場合の処理(ステップS58)
(42b)ノートオフイベントが受け付けられた場合の処理(ステップS59)
によって構成されている。
そして、上記(41a)の処理は、上記(42a)の処理、つまり、受け付けられたノートオンイベントを前記音源・効果回路13に出力することでなされる発音処理に、当該ノートオンイベントに対応するノートイベント情報(音高+入力タイミング)を前記ノートイベントリストNListに追加する処理を加えて構成され、上記(41b)の処理は、上記(42b)の処理、つまり、受け付けられたノートオフイベントを音源・効果回路13に出力することでなされる消音処理に、当該ノートオフイベントに対応するノートイベント情報を前記ノートイベントリストNListから削除する処理を加えて構成されている。
ここで、前記ステップS54,S56の処理について詳しい説明を加えておく。コード検出タイミングの始点sTime以降にノートオンイベントが受け付けられると、ステップS54の処理により、そのノートオンイベントに対応するノートイベント情報がノートイベントリストNListに追加される。そして、コード検出タイミングの終点eTime以前にノートオフイベントが受け付けられると、ステップS56の処理により、そのノートオフイベントに対応するノートイベント情報がノートイベントリストNListから削除される。したがって、ノートイベントリストNListには、始点sTimeから終点eTimeまでの期間内に押鍵され、かつ終点eTimeまで押鍵が続いている鍵に関するノートイベント情報のみが記憶されることになる。なお、終点eTime以降まで押鍵されていても、始点sTimeよりも前に押鍵された鍵に関するノートイベント情報は、ノートイベントリストNListには記憶されない。また、始点sTime以降に押鍵されても、終点eTime以前に離鍵された鍵に関するノートイベント情報は、ノートイベントリストNListには記憶されない。そしてこの場合には、始点sTimeから終点eTimeまでの期間を短くすれば、ミスタッチされた鍵(押鍵の直後に離鍵された鍵)に関するノートイベント情報は、ノートイベントリストNListに記憶されないようにすることができる。
なお、このステップS54,S56の処理のうち、ステップS56の処理を省略するようにしてもよい。このステップS56の処理を省略すれば、ノートイベントリストNListには、始点sTimeから終点eTimeまでの期間内に押鍵されたすべての鍵に関するノートイベント情報が記憶されることになる。
前記(5)のコードの検出タイミング時処理では、まずCPU5は、前記(13)のコード検出タイミング、各種ルールおよび各種情報の設定処理によって設定された調検出ルールに従って、調情報を取得し(ステップS17)、取得した調情報を前記調情報Keyに記憶する(ステップS18)。
次にCPU5は、調情報Keyに基づいてコード候補を抽出する(ステップS19)。このコード候補の抽出も、前記(13)のコード検出タイミング、各種ルールおよび各種情報の設定処理によって設定されたコード候補の抽出ルールに従って行われる。
そしてCPU5は、ステップS19で抽出したコード候補を前記コードリストCListに登録する(ステップS20)。
次にCPU5は、ノートイベントリストNListとコードリストCListに基づいて、コードを1つ検出(選出)するコード検出処理を実行する(ステップS21)。
図8は、このコード検出処理の詳細な手順を示すフローチャートである。本コード検出処理は、主として
(21)コードリストCListに登録されたコード候補のうちの1つを対象にして、ノートイベントリストNListおよびディグリーネーム別ポイントテーブルに基づいてポイント数を算出するポイント算出処理(ステップS63〜S71);
(22)このポイント算出処理によって算出されたポイント数をコード傾向情報に基づいて調整するポイント調整処理(ステップS72);
(23)このポイント調整処理によって調整されたポイント数を、コードリストCList中の当該コード候補に対応付けて記憶させる記憶処理(ステップS73);
(24)この記憶処理後のコードリストCListから1つのコード候補を検出する検出処理(ステップS75,S76);
によって構成されている。
本コード検出処理が起動されると、まずCPU5は、ノートイベントリストNListおよびコードリストCListのうち、少なくとも一方が空、つまり登録された情報がないかどうかを判定する。その判定の結果、少なくとも一方が情報を登録していなければ、CPU5は、本コード検出処理を直ちに終了する(ステップS61→リターン、あるいはステップS61→S62→リターン)一方、両方とも情報を登録していれば、CPU5は、処理を前記(21)のポイント算出処理に進める(ステップS62→S63)。
この(21)ポイント算出処理では、まずCPU5は、コードリストCListに登録されたコード候補のうち、先頭のコード候補を対象にして、そのコード候補をディグリーネームに変換する(ステップS63)。そしてCPU5は、変換したディグリーネームを、ディグリーネームを記憶するためにRAM7上に確保されたディグリーネーム格納領域DName(図示せず)に格納する(ステップS64)。以下、ディグリーネーム格納領域DNameに格納されたディグリーネームを「ディグリーネームDName」という。
次にCPU5は、ポイント数を加算するためにRAM7上に確保されたポイント数加算領域point(図示せず)を“0”に初期化する(ステップS65)。以下、ポイント数加算領域pointに格納されたポイント数を「ポイント数point」という。
次にCPU5は、イベントリストNListに登録されたノートイベント情報のうち、先頭のノートイベント情報を対象にして、その音高情報を抽出する(ステップS66)。そしてCPU5は、抽出した音高情報を、音高情報を記憶するためにRAM7上に確保された音高情報格納領域Note(図示せず)に格納する。以下、音高情報格納領域Noteに格納された音高情報を「音高情報Note」という。
次にCPU5は、ディグリーネームDNameの示すコードにおける音高情報Noteの役割を抽出する(ステップS68)。ここで、抽出される「役割」は、前記図3のディグリーネーム別ポイントテーブル中の「ルート」、「3度」、「5度」、「4声目」、「オルタード系」、「テンションノート」および「その他(アヴォイドノートなど)」のうちのいずれかである。なお、この抽出方法に関しては、[先行技術文献]の特許文献1に記載されているが、役割抽出処理として、図9Aおよび図9Bを用いて説明しておく。
図9Aおよび図9Bは、前記ステップS68の役割抽出処理の詳細な手順を示しており、CPU5は、まず図9AのステップS81で、調情報Keyの主音(トニック)およびディグリーネームDNameから、コードのルート、3度および5度(マイナー7フラット5(m7(♭5))およびオーギュメント(aug)以外)に当たる音名を取得し、それぞれRAM7内に設けられた“ルート”レジスタ、“3度”レジスタおよび“5度”レジスタ(いずれも図示せず)に格納する。ここで、ルート、3度および5度の音は、コードタイプに応じて主音から半音距離数が決まっており、たとえば、Key=Cメジャー調、DName=IVMaj7の場合、“ルート”=F,“3度”=A,“5度”=Cとなる。
次のステップS82では、CPU5は、音高情報Noteの音名が“ルート”レジスタの値に等しいか否かを判定し、“ルート”レジスタの値であれば(S82=YES)、ステップS83で、音高情報Noteの役割を「ルート」に決定し、そうでなければ(S82=NO)、ステップS84に進む。ステップS84では、CPU5は、音高情報Noteの音名が“3度”レジスタの値に等しいか否かを判定し、“3度”レジスタの値であれば(S84=YES)、ステップS85で、音高情報Noteの役割を「3度」に決定し、そうでなければ(S84=NO)、ステップS86に進む。ステップS86では、CPU5は、音高情報Noteの音名が“5度”レジスタの値に等しいか否かを判定し、“5度”レジスタの値であれば(S86=YES)、ステップS87で、音高情報Noteの役割を「5度」に決定し、そうでなければ(S86=NO)、ステップS88に進む。また、ステップS83,S85,S87の処理を終えると、CPU5は、本役割抽出処理を終了し、図8のコード検出処理のステップS69にリターンする。
ステップS88では、CPU5は、ディグリーネームDNameのコードタイプが「m7(♭5)」(マイナー7フラット5)であるか否かを判定する。ここで、コードタイプが「m7(♭5)」であれば(S88=YES)、ステップS89に進んで、CPU5は、音高情報Noteの音名が“ルート”レジスタの音名に対して減5度(♭5th)であるか否かを判定し、減5度であれば(S89=YES)、ステップS90で、音高情報Noteの役割を「オルタード系」に決定する。一方、コードタイプが「m7(♭5)」でなければ(S88=NO)、ステップS91に進んで、CPU5は、ディグリーネームDNameのコードタイプが「aug」(オーギュメント)であるか否かを判定する。ここで、コードタイプが「aug」であれば(S91=YES)、ステップS92に進み、CPU5は、音高情報Noteの音名が“ルート”レジスタの音名に対して増5度(♯5th)であるか否かを判定し、増5度であれば(S92=YES)、ステップS90で、音高情報Noteの役割を「オルタード系」に決定する。そして、ステップS90の処理を終えると、CPU5は、本役割抽出処理を終了し、図8のコード検出処理のステップS69にリターンする。
ステップS91で、コードタイプが「aug」でないと判定したときは(S91=NO)、図9BのステップS93に進み、CPU5は、ディグリーネームDNameのコードタイプが「6」、「6sus4」(6サスペンデッド4)または「m6」(マイナー6)であるか否かを判定する。ここで、コードタイプが「6」、「6sus4」および「m6」のうちのいずれかであれば(S93=YES)、ステップS94に進んで、CPU5は、音高情報Noteの音名が“ルート”レジスタの音名に対して長6度(6th)であるか否かを判定し、長6度であれば(S94=YES)、ステップS95で、音高情報Noteの役割を「4声目」に決定する。一方、ステップS93で、コードタイプが「6」、「6sus4」および「m6」のいずれでもないと判定したときは(S93=NO)、ステップS96に進み、CPU5は、ディグリーネームDNameのコードタイプが「IMaj7」(1度・メジャー7)、「IVmMaj7」(4度・マイナーメジャー7)などのMaj7(メジャー7)系であるか否かを判定する。ここで、コードタイプがMaj7系であれば(S96=YES)、ステップS97に進んで、CPU5は、音高情報Noteの音名が“ルート”レジスタの音名に対して長7度(メジャー7th)であるか否かを判定し、長7度であれば(S97=YES)、ステップS95で、音高情報Noteの役割を「4声目」に決定する。一方、ステップS96で、コードタイプがMaj7系でないと判定したときは(S96=NO)、ステップS98に進み、CPU5は、ディグリーネームDNameのコードタイプが「IIm7」(2度・マイナー7)、「V7」(5度・セブン)、VIIsus4(7度・セブンサスペンデッド4)などのm7(マイナー7)系または7th(セブンス)系であるか否かを判定する。ここで、コードタイプがm7系または7th系であれば(S98=YES)、ステップS99に進み、CPU5は、音高情報Noteの音名が“ルート”レジスタの音名に対して短7度(7th)であるか否かを判定し、短7度であれば(S99=YES)、ステップS95で、音高情報Noteの役割を「4声目」に決定する。そして、ステップS95の処理を終えると、CPU5は、本役割抽出処理を終了し、図8のコード検出処理のステップS69にリターンする。
図9AのステップS89で、減5度でないと判定したとき(S89=NO)、ステップS92で、増5度でないと判定したとき(S92=NO)、図9BのステップS94で、長6度でないと判定したとき(S94=NO)、ステップS97で、長7度でないと判定したとき(S97=NO)、ステップS98で、コードタイプがm7系でも7th系でもないと判定したとき(S98=NO)、またはステップS99で、短7度でないと判定したとき(S99=NO)は、ステップS100に進み、CPU5は、音高情報Noteの音名が現在の調情報KeyにおけるディグリーネームDNameのコードに対しテンションノートであるか否かを判定する。ここで、テンションノートは、コードタイプに応じて根音からの半音距離数が決まっており(ルートに対して、♭9th、9th、11th、♯11th、♭13th、13thのいずれか1〜3)、たとえば、Key=Cメジャー調、DName=IVMaj7の場合、G,B,Dの音である。ステップS100で、テンションノートと判定したときは(S100=YES)、ステップS101で、CPU5は、音高情報Noteの役割を「テンションノート」に決定し、テンションノートでないと判定したときは(S100=NO)、ステップS102で、CPU5は、音高情報Noteの役割を「その他」に決定する。そして、ステップS101,S102の処理を終えると、CPU5は、本役割抽出処理を終了し、図8のコード検出処理のステップS69にリターンする。
本役割抽出処理の後、CPU5は、調情報Keyによって示される調のディグリーネーム別ポイントテーブル(調情報Key別のポイントテーブル)を参照し、抽出された役割に該当するポイント値を取得し、ポイント数pointに加算する(ステップS69)。現時点では、ポイント数pointは“0”であるので、ステップS69で取得されたポイント値がそのまま、ポイント数pointとなる。
そしてCPU5は、音高情報NoteがノートイベントリストNList中の最後のノートイベント情報の音高情報になるまで、対象となるノートイベント情報を変更しながら、前記ステップS66〜S69の処理を繰り返し(ステップS70→S66)、音高情報NoteがノートイベントリストNList中の最後のノートイベント情報の音高情報になってから処理がステップS70に進むと、処理を次のステップS71に進める。
ステップS71では、CPU5は、調情報Keyによって示される調のディグリーネーム別ポイントテーブル(調情報Key別のポイントテーブル)を参照し、ディグリーネームDNameの示すコードの優先ポイントを取得し、ポイント数pointに加算する。優先ポイントは、コード優先ポイントテーブル(Prior)に記載されているが、コード優先ポイントテーブル(Prior)は、前述のようにディグリーネーム別ポイントテーブルに含まれているので、ディグリーネーム別ポイントテーブル、つまり調情報Key別のポイントテーブルから取得する。
次にCPU5は、処理を前記(22)のポイント調整処理に進める。この(22)ポイント調整処理では、CPU5は、コード傾向情報に基づいて、次のようにしてポイント数pointを調整する。つまり、
(22a)ディグリーネームDNameの示すコードが
コード傾向情報の「出現し易いディグリーネーム」に登録されている場合:出現し易さに応じた所定値をポイント数pointに反映;
コード傾向情報の「出現し難いディグリーネーム」に登録されている場合:出現し難さに応じた所定値をポイント数pointに反映;
(22b)ディグリーネームDNameの示す度数が
コード傾向情報の「出現し易いコードルート(度数)」に登録されている場合:出現し易さに応じた所定値をポイント数pointに反映;
コード傾向情報の「出現し難いコードルート(度数)」に登録されている場合:出現し難さに応じた所定値をポイント数pointに反映;
(22c)ディグリーネームDNameの示すコードタイプが
コード傾向情報の「出現し易いコードタイプ」に登録されている場合:出現し易さに応じた所定値をポイント数pointに反映;
コード傾向情報の「出現し難いコードタイプ」に登録されている場合:出現し難さに応じた所定値をポイント数pointに反映;
(22d)ディグリーネームDNameの示すコードの機能が
コード傾向情報の「出現し易い機能」に登録されている場合:出現し易さに応じた所定値をポイント数pointに反映;
コード傾向情報の「出現し難い機能」に登録されている場合:出現し難さに応じた所定値をポイント数pointに反映;
のようにして調整する。ここで「反映」とは、「出現し易い」ものについてはポイント数pointを増大させ、「出現し難い」ものについてはポイント数pointを減少させるように調整することをいう。図4(c)のコード傾向情報では、「出現し易い」ものには出現割合が百分率(%)で記載され(ただし、「機能」に属するものは1つのみであるので、出現割合は記載されていないが、100%とすればよい)、「出現し難い」ものには出現割合が記載されていない。ポイント数pointは、このコード傾向情報を用いて、たとえば次のように調整する。すなわち、
「出現し易い」ものに該当する場合:point+Tm×Rmn/100
「出現し難い」ものに該当する場合:point−Km
ただし、
Tm :m番目の項目(「ディグリーネーム」、「コードルート」、「コードタイプ」および「機能」のうちのいずれか)で加算する総ポイント数;
Rmn:m番目の項目に属するn番目の要素であって、ディグリーネームDNameによって示されるものの出現割合(%);
Km :m番目の項目で減算するポイント数;
である。この場合、前記(22a)〜(22d)の「出現し易い」ものにおける「所定値」が“Tm×Rmn/100”であり、「出現し難い」ものにおける「所定値」が“Km”である。その結果、値point+Tm×Rmn/100および値point−Kmは、コードの出現可能性の程度、すなわちコードの出現し易さおよびし難さの程度を表す指標となる。
なお、ディグリーネームDNameの示すコードが項目「ディグリーネーム」に属するものに該当する場合、当該ディグリーネームDNameの示す度数およびコードタイプはそれぞれ、項目「コードルート」および「コードタイプ」に属するものにも該当するが、この場合には、ポイント数pointを重複して調整するようにしてもよいし、1項目だけ調整し、それ以外の項目については省略する(調整しない)ようにしてもよい。また項目「機能」は、図4(c)の例では、単独の機能が示されているが、これに限らず、複数の機能の進行としてもよい。この場合には、検出コードChordと調情報Keyの履歴を記憶しておく必要がある。
さらに「所定値」は、出現割合に基づいて算出する方法に限らず、加算すべきポイント数を各項目に属する要素毎に対応付けておき、要素が決まれば、その要素に対応するポイント数をそのまま加算する方法を採用してもよい。具体的には、ある項目では、「出現し易い」順位が第1位のものは+20ポイント、第2位のものは+10ポイント、…、「出現し難い」ものは一律に−10ポイントと対応付けておく。もちろん、「出現し難い」ものにも順位を付け、その順位に従ってポイント数を変えるようにしてもよい。また「所定値」の反映方法は、加算/減算に限らず、乗算/除算であってもよい。
次にCPU5は、前記(23)の記憶処理に進み、このようにして調整されたポイント数pointを、コードリストCList中のディグリーネームDNameの示すコードに対応付けて記憶する。
そしてCPU5は、ディグリーネームDNameの示すコードがコードリストCList中の最後のコードになるまで、対象となるコードを変更しながら、前記(21)〜(23)の処理を繰り返し(ステップS74→S63)、ディグリーネームDNameの示すコードがコードリストCList中の最後のコードになってから処理がステップS74に進むと、処理を前記(24)の検出処理に進める。
この(24)検出処理では、CPU5は、コードリストCList中の各コード候補に対応付けて記憶されたポイント数pointが最高値のコード候補を1つ検出し(ステップS75)、検出コードChordとした(ステップS76)後、本コード検出処理を終了する。なおステップS75で、ポイント数pointが最高値となるコード候補が複数ある場合にも、1つのコード候補を検出するが、その場合には、たとえば、検出頻度が最も高いものや、コード優先ポイントの最も高いものなどを追加条件として、1つのコード候補を決定すればよい。
図5Bに戻り、CPU5は、検出コードChordを前記自動伴奏装置9に出力する(ステップS22)。
次にCPU5は、コード検出タイミングの設定内容(設定ルール)に基づいて、次のコード検出期間の始点および終点を算出して、それぞれ始点sTimeおよび終点eTimeを更新し(ステップS23)、ノートイベントリストNListおよびコードリストCListを初期化(クリア)する(ステップS24)。
なお本実施の形態では、演奏曲の選択は、本実施の形態のコード検出装置に含まれる表示装置10上に表示された曲名リストからいずれかの曲名を、操作子(設定操作子2または演奏操作子1)を操作したり、タッチ操作したりして選択することで行うようにしたが、コード検出装置本体とは別体で設けた表示装置を有線または無線でコード検出装置本体と接続し、この表示装置によって行うようにしてもよい。また、ダイレクトに演奏曲を選定できるボタンなどの操作子や曲リストが冊子などでユーザの手元にあり、ユーザが、たとえば演奏曲の番号の回数ほど所定の操作子を操作することにより選曲できる構成を採用すれば、表示画面がなくても選曲操作は可能である。つまり、選曲ができれば、表示装置10やこれに相当するものは、本発明にとって必須の構成ではない。
また本実施の形態では、ユーザの演奏によって入力された演奏データに基づいてコード候補を抽出し、抽出したコード候補の中からコードを検出するようにしたが、これに限らず、コード候補を抽出せずに、いきなりコードを検出するようにしてもよい。この場合のコードの検出方法としては、たとえば、コードの構成音に該当する演奏入力音の割合が最も高いコードを検出したり、その時点での調のダイアトニック・コードを優先して検出したりするなどの方法があり、この方法に、本発明のコード傾向情報に基づいたコード検出を適用してもよい。たとえば、ある検出コードがコード傾向情報に適合するかどうか判断し、適合しない場合には別のコードを検出して適合を判定する。あるいは、対象の曲に対応するコード情報(複数)が参照可能であった場合、演奏の調に合わせて対応するコードを検出することも可能である。また、コード検出時に前回検出されたコードからのつながりを考慮するようにしてもよい。
また本実施の形態では、コードの検出のために、予め決めた期間内のユーザの演奏によって入力された演奏データを用いたが、予め決めたタイミングにおける演奏データのみを用いるようにしてもよい。この場合、予め決めたタイミングにおいて、ユーザによって押鍵操作されている鍵に関する演奏データを入力して、入力した演奏データをコードの検出のために用いるようにする。
また本実施の形態では、コード傾向情報として、図4(c)に示すように、「ディグリーネーム」、「コードルートの度数」、「コードタイプ」および「機能」からなる4つのタイプに関して記憶しておき、すべてのタイプのコード傾向情報を利用するようにした。しかし、これに代えて、前記4つのタイプのうちの少なくとも1つのタイプのコード傾向情報のみを記憶しておき、記憶されているタイプのコード傾向情報を用いるようにしてもよい。
さらに本実施の形態では、使用するコード傾向情報は、曲毎に設定されていたが、これに限らず、ユーザがその都度設定できるようにしてもよい。また本実施の形態では、演奏設定データ内には、コード傾向情報の記憶場所が記載されるようにしたが、これに限らず、コード傾向情報そのものが記載(記憶)されるようにしてもよい。コード傾向情報は、本実施の形態では、演奏曲の最初から最後まで適用されるが、曲中の区間毎に種類の異なるものが設定されるようにしてもよい。
各曲に対応する演奏設定データには、本実施の形態では前述のように、伴奏スタイルデータ、メロディ音色、テンポなどが記載されるが、一曲分のコード進行情報も記憶するようにしてもよいし、ユーザ演奏に伴うコード検出の結果を記憶してもよい。その場合、記憶されたコード進行情報に対し、ユーザ演奏の該当箇所のコードが有力候補になるようにコード検出時に制御するとよい。また、伴奏スタイルデータやメロディ音色などの演奏設定データは曲毎に複数組用意されていてもよい。その場合は、どの組の演奏設定データを使用するかユーザが設定できるようになっていてもよいし、たとえば組によってテンポの速さが異なるようなときには、ユーザの演奏レベルを設定もしくは過去の演奏から判定して自動的に演奏設定データの組が選択されるようになっていてもよい。演奏設定データは、コード検出装置本体に記憶されていてもよいし、コード検出装置あるいはコード検出プログラムが動作する装置とは別の記憶媒体に記憶されていてもよい。もしくは、ネットワーク経由で参照することができてもよい。
演奏曲に適したコード進行情報は、演奏設定データの一部として記憶されていない場合は、何らかの方法で取得すればよい。たとえば、装置内の記憶部(記憶装置11やROM6、RAM7)やネットワーク経由でサーバなどから演奏曲で利用可能なコンテンツデータを探しだし、コード進行情報が記憶されていれば参照するようにする。あるいは、演奏曲で利用可能なコンテンツデータのコードパートやベースパートを分析し、コード進行情報を取得することも考えられる。
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
1…演奏操作子(演奏データ取得手段),2…設定操作子(曲情報取得手段),5…CPU(演奏データ取得手段、コード傾向情報取得手段、曲情報取得手段、コード検出手段、抽出手段),10…表示装置(曲情報取得手段)

Claims (4)

  1. ユーザによる演奏を表す演奏データを取得する演奏データ取得手段と、
    ユーザによる演奏曲を表す曲情報を取得する曲情報取得手段と、
    前記演奏曲におけるコードのそれぞれの出現可能性の程度を表すコード傾向情報を取得するコード傾向情報取得手段と、
    前記演奏データ取得手段によって取得された演奏データおよび前記コード傾向情報取得手段によって取得されたコード傾向情報に基づいて、コードを検出するコード検出手段と
    を有することを特徴とするコード検出装置。
  2. 前記演奏データ取得手段によって取得された演奏データに基づいて、1つ以上のコード候補を抽出する抽出手段をさらに有し、
    前記コード検出手段は、前記抽出手段によって抽出されたコード候補から、前記コード傾向情報取得手段によって取得されたコード傾向情報に基づいて1つのコードを検出することを特徴とする請求項1に記載のコード検出装置。
  3. 前記コード傾向情報取得手段は、前記演奏曲におけるコード傾向情報を取得できない場合には、当該演奏曲に関する取得可能な他の情報に基づいてコード傾向情報を生成し、生成したコード傾向情報を当該演奏曲に対応するコード傾向情報として取得することを特徴とする請求項1または2に記載のコード検出装置。
  4. コード検出方法をコンピュータに実行させるためのプログラムであって、
    前記コード検出方法は、
    ユーザによる演奏を表す演奏データを取得する演奏データ取得ステップと、
    ユーザによる演奏曲を表す曲情報を取得する曲情報取得ステップと、
    前記演奏曲におけるコードのそれぞれの出現可能性の程度を表すコード傾向情報を取得するコード傾向情報取得ステップと、
    前記演奏データ取得ステップによって取得された演奏データおよび前記コード傾向情報取得ステップによって取得されたコード傾向情報に基づいて、コードを検出するコード検出ステップと
    を有する
    ことを特徴とするプログラム。
JP2014031883A 2013-02-27 2014-02-21 コード検出装置およびコード検出方法を実現するためのプログラム Pending JP2014194536A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014031883A JP2014194536A (ja) 2013-02-27 2014-02-21 コード検出装置およびコード検出方法を実現するためのプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013036869 2013-02-27
JP2013036869 2013-02-27
JP2014031883A JP2014194536A (ja) 2013-02-27 2014-02-21 コード検出装置およびコード検出方法を実現するためのプログラム

Publications (1)

Publication Number Publication Date
JP2014194536A true JP2014194536A (ja) 2014-10-09

Family

ID=50115754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014031883A Pending JP2014194536A (ja) 2013-02-27 2014-02-21 コード検出装置およびコード検出方法を実現するためのプログラム

Country Status (4)

Country Link
US (1) US9117432B2 (ja)
EP (1) EP2772904B1 (ja)
JP (1) JP2014194536A (ja)
CN (1) CN104008747A (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2772904B1 (en) * 2013-02-27 2017-03-29 Yamaha Corporation Apparatus and method for detecting music chords and generation of accompaniment.
JP6179140B2 (ja) 2013-03-14 2017-08-16 ヤマハ株式会社 音響信号分析装置及び音響信号分析プログラム
JP6040809B2 (ja) * 2013-03-14 2016-12-07 カシオ計算機株式会社 コード選択装置、自動伴奏装置、自動伴奏方法および自動伴奏プログラム
JP6123995B2 (ja) * 2013-03-14 2017-05-10 ヤマハ株式会社 音響信号分析装置及び音響信号分析プログラム
US9672800B2 (en) 2015-09-30 2017-06-06 Apple Inc. Automatic composer
US9852721B2 (en) * 2015-09-30 2017-12-26 Apple Inc. Musical analysis platform
US9824719B2 (en) 2015-09-30 2017-11-21 Apple Inc. Automatic music recording and authoring tool
US9804818B2 (en) 2015-09-30 2017-10-31 Apple Inc. Musical analysis platform
CN105761713B (zh) * 2016-01-29 2020-02-14 北京精奇互动科技有限公司 和弦变换处理方法和装置
CN105845115B (zh) * 2016-03-16 2021-05-07 腾讯科技(深圳)有限公司 歌曲调式确定方法及歌曲调式确定装置
CN107301857A (zh) * 2016-04-15 2017-10-27 青岛海青科创科技发展有限公司 一种给旋律自动配伴奏的方法及系统
JP6500869B2 (ja) * 2016-09-28 2019-04-17 カシオ計算機株式会社 コード解析装置、方法、及びプログラム
JP6708180B2 (ja) * 2017-07-25 2020-06-10 ヤマハ株式会社 演奏解析方法、演奏解析装置およびプログラム
CN107436953B (zh) * 2017-08-15 2020-07-10 中国联合网络通信集团有限公司 一种音乐搜索方法及系统
CN111052220B (zh) * 2017-09-07 2023-06-27 雅马哈株式会社 和弦信息提取装置、和弦信息提取方法及存储装置
JP7230464B2 (ja) * 2018-11-29 2023-03-01 ヤマハ株式会社 音響解析方法、音響解析装置、プログラムおよび機械学習方法
WO2021100679A1 (ja) * 2019-11-20 2021-05-27 ヤマハ株式会社 情報処理システム、鍵盤楽器、情報処理方法およびプログラム
CN110930970B (zh) * 2019-12-03 2023-12-05 上海观池文化传播有限公司 一种基于信号触发的音乐和弦发生装置及方法
JP7409366B2 (ja) * 2021-12-15 2024-01-09 カシオ計算機株式会社 自動演奏装置、自動演奏方法、プログラム、及び電子楽器
CN115132155B (zh) * 2022-05-12 2024-08-09 天津大学 一种基于声调音高空间的预测和弦解释音符的方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852252A (en) * 1996-06-20 1998-12-22 Kawai Musical Instruments Manufacturing Co., Ltd. Chord progression input/modification device
US5850051A (en) * 1996-08-15 1998-12-15 Yamaha Corporation Method and apparatus for creating an automatic accompaniment pattern on the basis of analytic parameters
US5918303A (en) 1996-11-25 1999-06-29 Yamaha Corporation Performance setting data selecting apparatus
JP3821094B2 (ja) * 1996-11-25 2006-09-13 ヤマハ株式会社 演奏設定データ選択装置、演奏設定データ選択方法及び記録媒体
US7470853B2 (en) * 2004-12-10 2008-12-30 Panasonic Corporation Musical composition processing device
WO2007011308A1 (en) * 2005-07-22 2007-01-25 Agency For Science, Technology And Research Automatic creation of thumbnails for music videos
JP4650182B2 (ja) * 2005-09-26 2011-03-16 ヤマハ株式会社 自動伴奏装置及びプログラム
JP4465626B2 (ja) * 2005-11-08 2010-05-19 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP4650270B2 (ja) * 2006-01-06 2011-03-16 ソニー株式会社 情報処理装置および方法、並びにプログラム
TW200727170A (en) * 2006-01-09 2007-07-16 Ulead Systems Inc Method for generating a visualizing map of music
US7705231B2 (en) * 2007-09-07 2010-04-27 Microsoft Corporation Automatic accompaniment for vocal melodies
JP4333700B2 (ja) * 2006-06-13 2009-09-16 ソニー株式会社 和音推定装置及び方法
JP4108719B2 (ja) * 2006-08-30 2008-06-25 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及びゲーム装置
WO2008030197A1 (en) * 2006-09-07 2008-03-13 Agency For Science, Technology And Research Apparatus and methods for music signal analysis
US8168877B1 (en) * 2006-10-02 2012-05-01 Harman International Industries Canada Limited Musical harmony generation from polyphonic audio signals
JP4315180B2 (ja) * 2006-10-20 2009-08-19 ソニー株式会社 信号処理装置および方法、プログラム、並びに記録媒体
JP4214491B2 (ja) * 2006-10-20 2009-01-28 ソニー株式会社 信号処理装置および方法、プログラム、並びに記録媒体
JP5463655B2 (ja) * 2008-11-21 2014-04-09 ソニー株式会社 情報処理装置、音声解析方法、及びプログラム
JP5625235B2 (ja) * 2008-11-21 2014-11-19 ソニー株式会社 情報処理装置、音声解析方法、及びプログラム
JP5282548B2 (ja) * 2008-12-05 2013-09-04 ソニー株式会社 情報処理装置、音素材の切り出し方法、及びプログラム
JP5593608B2 (ja) * 2008-12-05 2014-09-24 ソニー株式会社 情報処理装置、メロディーライン抽出方法、ベースライン抽出方法、及びプログラム
JP5206378B2 (ja) * 2008-12-05 2013-06-12 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US8779268B2 (en) * 2009-06-01 2014-07-15 Music Mastermind, Inc. System and method for producing a more harmonious musical accompaniment
US8785760B2 (en) * 2009-06-01 2014-07-22 Music Mastermind, Inc. System and method for applying a chain of effects to a musical composition
US8492634B2 (en) * 2009-06-01 2013-07-23 Music Mastermind, Inc. System and method for generating a musical compilation track from multiple takes
US9177540B2 (en) * 2009-06-01 2015-11-03 Music Mastermind, Inc. System and method for conforming an audio input to a musical key
US9310959B2 (en) * 2009-06-01 2016-04-12 Zya, Inc. System and method for enhancing audio
US9257053B2 (en) * 2009-06-01 2016-02-09 Zya, Inc. System and method for providing audio for a requested note using a render cache
US9251776B2 (en) * 2009-06-01 2016-02-02 Zya, Inc. System and method creating harmonizing tracks for an audio input
CN101950377A (zh) * 2009-07-10 2011-01-19 索尼公司 新型马尔可夫序列生成器和生成马尔可夫序列的新方法
JP5168297B2 (ja) * 2010-02-04 2013-03-21 カシオ計算機株式会社 自動伴奏装置および自動伴奏プログラム
JP5293710B2 (ja) * 2010-09-27 2013-09-18 カシオ計算機株式会社 調判定装置および調判定プログラム
JP5696435B2 (ja) * 2010-11-01 2015-04-08 ヤマハ株式会社 コード検出装置及びプログラム
US20140330900A1 (en) * 2011-11-23 2014-11-06 Evernote Corporation Encounter-driven personal contact space
US9459768B2 (en) * 2012-12-12 2016-10-04 Smule, Inc. Audiovisual capture and sharing framework with coordinated user-selectable audio and video effects filters
EP2772904B1 (en) * 2013-02-27 2017-03-29 Yamaha Corporation Apparatus and method for detecting music chords and generation of accompaniment.

Also Published As

Publication number Publication date
EP2772904A1 (en) 2014-09-03
EP2772904B1 (en) 2017-03-29
US9117432B2 (en) 2015-08-25
CN104008747A (zh) 2014-08-27
US20140238220A1 (en) 2014-08-28

Similar Documents

Publication Publication Date Title
JP2014194536A (ja) コード検出装置およびコード検出方法を実現するためのプログラム
JP2012103603A (ja) 情報処理装置、楽曲区間抽出方法、及びプログラム
JP3807275B2 (ja) コード提示装置およびコード提示用コンピュータプログラム
JP5659648B2 (ja) コード検出装置およびコード検出方法を実現するためのプログラム
JP6295583B2 (ja) 音楽データ生成装置および音楽データ生成方法を実現するためのプログラム
JP5196550B2 (ja) コード検出装置およびコード検出プログラム
JP6583320B2 (ja) 自動伴奏装置、自動伴奏プログラムおよび伴奏データ生成方法
JP5696435B2 (ja) コード検出装置及びプログラム
JP4232299B2 (ja) 演奏カロリー消費量測定装置
JP6525034B2 (ja) コード進行情報生成装置およびコード進行情報生成方法を実現するためのプログラム
JP3879524B2 (ja) 波形生成方法、演奏データ処理方法および波形選択装置
JP2003099033A (ja) 情報編集装置および楽譜編集装置
JP6554826B2 (ja) 音楽データ検索装置及び音楽データ検索プログラム
JP2016161900A (ja) 音楽データ検索装置及び音楽データ検索プログラム
JP3807333B2 (ja) メロディ検索装置およびメロディ検索プログラム
JP5104414B2 (ja) 自動演奏装置及びプログラム
JP2007163710A (ja) 演奏支援装置及びプログラム
JP3800947B2 (ja) 演奏データ処理装置及び方法並びに記憶媒体
JP5825449B2 (ja) コード検出装置
JP2015075574A (ja) 演奏データ生成装置および演奏データ生成方法を実現するためのプログラム
JP5703693B2 (ja) コード検出装置及びプログラム
JP5822187B2 (ja) コード検出装置およびコード検出をコンピュータに実行させるためのプログラム
JP4148184B2 (ja) 自動伴奏データ生成方法を実現するためのプログラムおよび自動伴奏データ生成装置
JP2018072444A (ja) コード検出装置、コード検出プログラムおよびコード検出方法
JP5387032B2 (ja) 電子音楽装置及びプログラム