JP4186797B2 - ベース音列生成用コンピュータプログラムおよびベース音列生成装置 - Google Patents

ベース音列生成用コンピュータプログラムおよびベース音列生成装置 Download PDF

Info

Publication number
JP4186797B2
JP4186797B2 JP2003379480A JP2003379480A JP4186797B2 JP 4186797 B2 JP4186797 B2 JP 4186797B2 JP 2003379480 A JP2003379480 A JP 2003379480A JP 2003379480 A JP2003379480 A JP 2003379480A JP 4186797 B2 JP4186797 B2 JP 4186797B2
Authority
JP
Japan
Prior art keywords
bass
string
pitch
sound
chord
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
Application number
JP2003379480A
Other languages
English (en)
Other versions
JP2005141124A (ja
Inventor
知之 船木
佳奈美 星加
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 JP2003379480A priority Critical patent/JP4186797B2/ja
Publication of JP2005141124A publication Critical patent/JP2005141124A/ja
Application granted granted Critical
Publication of JP4186797B2 publication Critical patent/JP4186797B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、一連のコードを表すコードデータ列に基づいてベース音列を生成するベース音列生成用コンピュータプログラムおよびベース音列生成装置に関する。
従来から、例えば下記特許文献1に示されているように、一連のコードを表すコードデータ列と、音高および音符長を表す伴奏パターンとを用いて、伴奏音列を自動的に生成する伴奏音列生成装置は知られている。
特開2002−268638号公報
コードは、楽曲の流れに対応するとともに、所定のコード進行区間ごとに滑らかな一連の流れをもって進行するものである。しかし、上記従来の装置においては、コード進行の状況が考慮されておらず、すなわちコード進行区間が何ら考慮されておらず、一連のコードデータ列に従って一律に伴奏音列が生成されるので、生成される伴奏音列が聴感上不自然なものとなることがある。
本発明は、上記問題に対処するためになされたもので、その目的は、一連のコードデータ列に基づいて聴感上自然な流れを有するベース音列を生成するベース音列生成用コンピュータプログラムおよびベース音列生成装置を提供することにある。
上記目的を達成するために、本発明の特徴は、一連のコードを表すコードデータ列を供給するコードデータ供給手順と、前記供給されたコードデータごとにコードに関係した所定の基準音高を抽出する基準音高抽出手順と、前記抽出された一連の基準音高を、各基準音高が1つのコード進行区間内で前の基準音高からの音高差を所定値以内とした状態で進行する複数のコード進行区間に区切って一連のコード進行区間を生成する区間生成手順と、前記コード進行区間ごとに基準音高に基づいて、基準音高の音名を有するとともにベース音域に入る音高列からなるベース音列を表すベース音列データを生成するベース音列生成手順とをコンピュータに実行させるベース音列生成用コンピュータプログラムにある。
この場合、基準音高抽出手順は、例えばコード構成音を基準音高としてコンピュータに抽出させる。特に、コード構成音のうちで、根音(またはオンベースコードの場合にはベース音)をコンピュータに抽出させるようにするとよい
前記のように構成した本発明の特徴においては、抽出された一連の基準音高は、各基準音高が1つのコード進行区間内で前の基準音高からの音高差を所定値以内とした状態で進行する複数のコード進行区間に区切られ、同区切られたコード進行区間ごとに基準音高に基づいて、基準音高の音名を有するとともにベース音域に入る音高列からなるベース音列が生成される。これにより、コード進行の状況が考慮され、聴感上自然に変化するベース音列が生成される。
また、本発明の他の特徴は、伴奏音列生成手順が、基準音高列に基づいて生成されるベース音列の中の所定音域に入らないベース音の音高をシフトして所定音域に入るように修正する音高修正手順を含むようにしたことにある。この場合、所定の音域から外れたベース音に関しては、例えば、オクターブシフトして所定の音域に納まるようにするとよい。これによれば、全てのベース音が必ず所定音域に入るようになるので、他の演奏音との重なりを簡単に回避できるようになる。
また、本発明の他の特徴は、ベース音列生成手順が、複数のベース音列候補を生成するベース音列候補生成手順と、複数のベース音列候補を構成するベース音が所定音域に入るかに応じまたはコードデータ列に対応したメロディ音列との重なりに応じて、複数のベース音列候補の中から1つのベース音列を選択するベース音列選択手順とを含むようにしたことにある。
この場合、ベース音列選択手順は、例えば、所定音域から外れるベース音が最も遅く現れるベース音列候補または所定の音域から外れるベース音が最も少ないベース音列候補を選択したりするとよい。また、前記所定音域よりも狭くかつベース音列にとって最適な音域を設定し、この最適な音域に属するベース音の頻度が高いベース音列候補を選択するようにしてもよい。さらに、メロディ音列に重ならないベース音列候補が複数存在する場合にはメロディ音列に近いベース音列候補を選択したりするとよい。
このような本発明の他の特徴によれば、ベース音として適したベース音列が選択され、またはメロディ音列に適合したベース音列が選択されるので、聴感上より自然に変化するベース音列が生成される。
本発明は、コンピュータプログラムの発明として構成しかつ実施することができるのみならず、装置および方法の発明として構成しかつ実施することもできる。
以下、本発明の一実施形態に係る伴奏音列生成プログラムおよび伴奏音列生成装置の適用される電子音楽装置について説明する。図1は、この電子音楽装置を概略的に示すブロック図である。この電子音楽装置としては、鍵盤型電子楽器、非鍵盤型電子楽器(タッチプレート、押しボタン、弦などを演奏操作子として有する電子楽器)、自動演奏装置(シーケンサ装置)、自動演奏機能を有するパーソナルコンピュータなどが考えられる。
この電子音楽装置は、入力操作子群11、表示器12および楽音信号発生回路13を有する。入力操作子群11は、この電子音楽装置の動作を指示するための複数の操作子からなり、これらの複数の操作子の操作はバス20に接続された検出回路14によって検出される。なお、これらの複数の操作子は、スイッチ操作子、ボリューム操作子、マウスなどを含んでおり、鍵盤型電子楽器においては白鍵および黒鍵も含む。表示器12は、液晶ディスプレイ、CRTなどで構成され、文字、数字、図形などを表示する。この表示器12の表示態様は、バス20に接続された表示制御回路15によって制御される。
楽音信号発生回路13は、バス20に接続されていて後述するCPU31の制御のもとに供給される演奏データに基づいて楽音信号を形成するとともに、同形成された楽音信号に効果を付与してサウンドシステム16に出力する。サウンドシステム16は、スピーカ、アンプなどを含んでいて、楽音信号発生回路13からの楽音信号に対応した楽音を発音する。
また、この電子音楽装置は、バス20にそれぞれ接続されていてマイクロコンピュータ本体部を構成するCPU31、タイマ32、ROM33、RAM34を備えているとともに、外部記憶装置35および通信インターフェース回路36も備えている。外部記憶装置35は、この電子音楽装置に予め組み込まれているハードディスクHD、同電子音楽装置に装着可能なコンパクトディスクCD、フレキシブルディスクFDなどの種々の記録媒体と、同各記録媒体に対するドライブユニットを含むものであり、大量のデータ及びプログラムを記憶及び読み出し可能にしている。本実施形態の場合、ハードディスクHDには、図2の伴奏データ生成プログラム(図3のコード進行区間処理ルーチンを含む)を含む各種プログラムに加え、複数の曲データが記憶されている。これらのプログラムおよび複数の曲データは、予めハードディスクHDに記憶されていたり、コンパクトディスクCD、フレキシブルディスクFDなどからハードディスクHDに供給されたり、後述する外部機器41又は通信ネットワーク42を介した外部からハードディスクHDに供給されるものである。
複数の曲データは、楽曲をそれぞれ自動演奏させることできるものであり、各曲データは、楽曲の曲名と共に、少なくともメロディデータ列およびコードデータ列を含む。メロディデータ列は、メロディ音の音高および符長をそれぞれ表す複数の音符データを楽曲の進行(すなわち、時間経過)に従って配列したものである。コードデータ列は、一連のコードを表すコードデータを楽曲の進行(すなわち、時間経過)に従って、すなわちメロディデータ列に対応させて配列したものである。コードデータ列は、例えばF#,E,F#/Eのようなコード名およびコード長(符長)を表している。なお、F#/Eは、E音をベース音とするオンベースコードを表している。
次に、上記のように構成した実施形態の動作を説明する。まず、ユーザは、入力操作子群11を操作して図2の伴奏データ生成プログラムをCPU31に実行させる。このプログラムの実行は、図2のステップS10にて開始され、ステップS12にてユーザ設定処理を実行する。ユーザ設定処理においては、曲データをユーザに選択させるとともに、必要に応じてベース音域、ベース音列選択条件などをユーザに設定させる。曲データの選択においては、ユーザは、表示器12に表示される複数の曲名からなる曲名リストを見ながら入力操作子群11を操作して、外部記憶装置35内に記憶されている複数組の曲データの中から1つの曲データを指定する。これにより、指定された1つの曲データは、外部記憶装置35から読み出されて、RAM34に書き込まれる。
また、ユーザが所望とする曲データが外部記憶装置35に記憶されていない場合には、通信インターフェース回路36を介して他の曲データを記憶した外部機器41から所望の曲データを読み込み、または通信インターフェース回路36および通信ネットワーク42を介して外部から所望の曲データを読み込んで、RAM34に書き込んでもよい。また、入力操作子群11または外部機器41から実際の演奏による演奏データを曲データとしてRAM34に書き込むようにしてもよい。
また、ベース音域の設定においては、ユーザは、入力操作子群11を用いて最終的に決定されるベース音列の許容音域の下限音高および上限音高を入力する。また、ベース音列選択条件の設定においては、ユーザは、入力操作子群11を用いて詳しくは後述する最適なベース音域の上限音高および下限音高を入力する。この場合、ベース音域としては、例えば、下限音高A#0および上限音高A2により規定される2オクターブの範囲程度が妥当である。また、最適ベース音域としては、下限音高F1および上限音高E2により規定される1オクターブの範囲程度が妥当である。なお、ユーザがこれらのベース音域およびベース音列選択条件を入力しなかった場合には、予め決められたデフォルト値を採用するようにしてもよい。さらに、このベース音域およびベース音列選択条件の入力処理を省略して、予め決められたデフォルト値が常に採用されるようにしてもよい。
前記ステップS12の処理後、ステップS14にて、前記RAM34に書き込んだ一連のコードを表すコードデータ列を用いて、各コードの根音からそれぞれなる基準音高列を表す基準音高列データを生成する。ただし、オンベース音が指定されているオンベースコード(例えば、F#/E)においては、オンベース音が基準音高(例えば、F#/Eの場合にはE音)となる。具体例をあげて説明すると、コード進行が、例えば、F#6,E,F#/E,D#m7,G#m7,C#m7,D#sus4,D#・・であったとすると、基準音高列は、F#,E,E,D#,G#,C#,D#,D#・・となる。ここでは、簡素化のためにオクターブ情報を省略して示している。
次に、ステップS16にて、基準音高データ列を用いて基準音高が滑らかに推移している区間をコード進行区間として定義して、コード区間ごとのコードデータ列を生成する。この場合、まず、基準音高列において、前の音符との音高差を半音間隔で表す音高差を計算する。ただし、前の基準音高からの音高差を1オクターブ以内とするとともに、上下2方向のうちで小さい方を採用し、上方向を正で表すとともに下方向を負で表す。ただし、先頭の基準音高に関する音高差は計算しない。この場合、例えば、基準音高列がF#,E,E,D#,G#,C#,D#,D#・・であれば、各基準音に関する音高差を括弧内に表すと、F#,E(−2),E(0),D#(−1),G#(5),C#(−7),D#(2),D#(0)・・となる。次に、滑らかに変化している範囲をコード進行区間とするために、音高差が所定値以内(本実施形態では、絶対値で「2」以下)である基準音高列をコード進行区間とすると、前記例では、次の第1〜3コード進行区間が定義される。第1コード進行区間のコードデータ列は、F#,E(−2),E(0),D#(−1)となり、第2コード進行区間のコードデータ列はG#となり、第3コード進行区間のコードデータ列はC#,D#(2),D#(0)・・となる。ただし、各コード進行区間においては、先頭の基準音高に関しては前の基準音高とは音高差に関して無関係であるので、音高差の表示を無くして示している。
次に、ベース音列を決定するためのステップS18のコード進行区間処理ルーチンを実行する。このコード進行区間処理ルーチンは各コード進行区間ごとに実行されるもので、図3に詳細に示されているように、その実行がステップS30にて開始される。このコード進行区間処理ルーチンの実行開始後、ステップS32にて、1つのコード進行区間に対し、同コード進行区間に含まれる基準音高データ列を用いて複数のベース音列候補を生成する。このベース音列候補の生成においては、ベース音域(本実施形態では、A#0〜A2)内に属し、かつ前記コード進行区間の基準音高列の先頭の音名音を先頭ベース音として定め、その後に前記ステップS14で生成したコードデータ列中の音高差ずつ変化する音高を順次後続のベース音とすることにより、複数のベース音列候補を生成する。この場合、ベース音域は2オクターブ分であるので、2つの先頭ベース音が定められ、2つのベース音列が生成される。このことを前記第1コード進行区間のコードデータ列F#,E(−2),E(0),D#(−1)を上げて説明すると、第1のベース音列はF#1,E1,E1,D#1となり、第2ベース音列はF#2,E2,E2,D#2となる。
次に、ステップS34にて前記生成された第1および第2ベース音列中の全てのベース音がベース音域(本実施形態では、A#0〜A2)に入るかを調べるとともに、ステップS36にて前記調べた結果に基づいてベース音域に入るベース音列の数を判定する。この場合、全てのベース音がベース音域に入るベース音列が1つのみである場合、全てのベース音がベース音域に入るベース音列が無い場合、および全てのベース音がベース音域に入るベース音列が複数存在する場合の3ケースがある。これらの場合に関する説明に関し、上述したベース音列の例では特徴が現れないので、他のベース音列の例を上げながら説明する。
まず、全てのベース音がベース音域に入るベース音列が1つのみである場合について説明する。この場合、ステップS36の判定処理によってステップS38に進み、ステップS38にて全てのベース音がベース音域に入るベース音列が決定ベース音列とする。具体的には、1つのコード進行区間の基準音列がE,F#(2),G#(2),A#(2),G#(−2)であると、第1ベース音列はE1,F#1,G#1,A#1,G#1となり、第2ベース列はE2,F#2,G#2,A#2,G#2となる。この場合、第1ベース音列の全てのベース音はベース音域に入るが、第2ベース音列中のベース音A#2はベース音域を越える。したがって、ステップS36,S38の処理により、第1のベース音列を最終的なベース音列する。
次に、全てのベース音がベース音域に入るベース音列が無い場合について説明する。この場合、ステップS36の判定処理により、ステップS40,S42の処理を実行する。ステップS40においては、ベース音域から外れるベース音が先頭から最も遅く現れるベース音列を選択する。なお、このステップS40の処理に代えて、ベース音域を外れたベース音の数が最も少ないベース音列を選択するようにしてもよい。そして、ステップS42において、ベース音域から外れたベース音をオクターブシフトして、全てのベース音がベース音域に入るようにして、このオクターブシフトしたベース音を含むベース音列を最終的な決定ベース音列とする。
具体的には、1つのコード進行区間の基準音列がG,A(2),B(2),A(−2),G(−2),F(−2),E(−1),D(−2),C(−2),B(11),A(−2),G(−2)であると、第1ベース音列はG1,A1,B1,A1,G1,F1,E1,D1,C1,B0,A0,G0となり、第2ベース音列は、G2,A2,B2,A2,G2,F2,E2,D2,C2,B1,A1,G1となる。この場合、第1ベース音列中のベース音A0,G0はベース音域を越え、また第2ベース音列中のベース音B2もベース音域を越える。第1ベース音列中のベース音A0は11番目のベース音であり、また第2ベース音列中のベース音B2は3番目のベース音であるので、ステップS40の処理により、第1ベース音列が最終的なベース音列として決定される。そして、ステップS42の処理により、この決定された第1ベース音列中、ベース音域を超えるベース音(前記例では、ベース音A0,G0)がオクターブシフトされて、最終的な決定ベース音列は、G1,A1,B1,A1,G1,F1,E1,D1,C1,B0,A1,G1となる。
次に、全てのベース音がベース音域に入るベース音列が複数存在する場合について説明する。この場合、ステップS36の判定処理により、ステップS44以降の処理を実行してメロディ音列と適合するベース音列を決定ベース音列とする。具体例を上げて説明すると、1つのコード進行区間の基準音列が、F#,G#(2),A(1),B(2),C#(2),B(−2),A(−2),G#(−1),F#(−2),G#(2),A(1) ,B(2)であると、第1ベース音列はF#1,G#1,A1,B1,C#2,B1,A1,G#1,F#1,G#1,A1 ,B1となり、第2ベース音列はF#2,G#2,A2,B2,C#3,B2,A2,G#2,F#2,G#2,A2 ,B2となる。この場合、両ベース音列の全てのベース音はベース音域に入るので、前記ステップS36の判定処理により、ステップS44以降の処理が実行される。
ステップS44においては、前記RAM34に転送記憶したメロディデータ列を用い、1つのコードの長さ(符長)に対応したメロディ音列中の最低音をコードごとに検出する。次に、ステップS46にて、メロディ音列の最低音を越えるベース音を含むベース音列の数、すなわちメロディ音列と重ならないベース音列の数を調べる。この場合、メロディ音列と重ならないベース音列が1つのみである場合、メロディ音列と重ならないベース音列が無い場合、およびメロディ音列と重ならないベース音列が複数存在する場合の3ケースがある。
まず、メロディ音列と重ならないベース音列が1つのみである場合について説明する。この場合、ステップS48の処理により、ステップS50にてメロディ音列と重ならない前記1つのベース音列を最終的な決定ベース音列とする。
次に、メロディ音列と重ならないベース音列が無い場合について説明する。この場合、ステップS48の判定処理により、ステップS52,S54の処理を実行する。ステップS52においては、各ベース音列について、ベース音が最適ベース音域に入るベース音の数を調べる。ステップS54においては、最適ベース音域に入るベース音の数が最大であるベース音列を最終的な決定ベース音列とする。この具体例を、最適ベース音域をF1〜E2とした場合を例にして説明する。例えば、1つのコード進行区間の基準音列が、C#,D#(2),E(1),F#(2),G#(2),F#(−2),E(−2),D#(−1),C#(−2),D#(2),E(1) ,F#(2)であると、第1ベース音列はC#1,D#1,E1,F#1,G#1,F#1,E1,D#1,C#1,D#1,E1,F#1となり、第2ベース音列はC#2,D#2,E2,F#2,G#2,F#2,E2,D#2,C#2,D#2,E2,F#2となる。ここで、第1ベース音列中で最適ベース音域に属するベース音はF#1,E1,D#1,F#1の4つであり、また第2ベース音列中で最適ベース音域に属するベース音はC#2,D#2,E2,E2,D#2,C#2,D#2,E2の8つである。したがって、この場合には、第2ベース音列が最終的なベース音列として決定される。
なお、これに限らず、各ベース音(各コード)の長さ(符長)をも考慮して、最適ベース音域に属するベース音の長さの合計が最大であるベース音列を最終的なベース音列として決定してもよい。1つのコード進行区間に属するベース音の数をも考慮し、同1つのコード進行区間に属する全てのベース音の数または合計長さに対する最適ベース音に属するベース音の数または合計長さの比率が最も大きなベース音列を最終的なベース音列として決定するようにしてもよい。
次に、メロディ音列と重ならないベース音列が複数存在する場合について説明する。この場合、ステップS48の処理により、ステップS56にて高い側のベース音列を決定ベース音列とする。そして、前記ステップS38,S42,S50,S54,S56によるベース音列の決定後、ステップS58にてこのコード進行区間処理ルーチンの実行を終了する。そして、全てのコード進行区間に関する処理が終了して時点で、図2の伴奏データ生成プログラムに実行に移り、ステップS20の処理を実行した後、ステップS22にて伴奏データ生成プログラムの実行を終了する。
ステップS20においては、前記コード進行区間処理ルーチンの繰り返し実行により生成されたコード進行区間ごとのベース音列を用いて、ベース音の発生タイミングを含むとともに実際に発音されるベース音を表す伴奏音データをコード進行区間ごとに生成する。そして、コード進行区間ごとに生成された伴奏音データを繋げて、1曲分の伴奏音データを生成する。この場合、ベース音列を生成するために用いたコードデータ列を参照することにより、各ベース音に対応したコードの符長を参照して、符長が長い場合には同じベース音を所定のタイミング(例えば、4分音符タイミング)で発生させるための伴奏データを生成する。具体的には、図4(A)に示すように、ベース音に対応したコードの符長が全音符分あれば、同じベース音を4分音符タイミングごとに発音させるための伴奏データが作成される。また、図4(B)に示すように、ベース音に対応したコードの符長が4分音符分あれば、決定されたベース音をそのまま発音させる伴奏データが作成される。
なお、この伴奏音データの生成においては、ベース音の発音タイミングだけを指定する伴奏パターンデータを選択されている楽曲に対応させて用意しておき、同伴奏パターンデータの発音タイミングに前記決定されたベース音列を適合させて、伴奏データを作成するようにしてもよい。また、基準音高とは異なるコード構成音をベース音または伴奏音として生成するようにしてもよい。この場合、コードタイプごとに発音されるコード構成音と根音との音程と、同コード構成音の発音タイミングとを指定するデータを記憶しておき、指定タイミングに基準音高を前記根音との音程だけ音高変換してベース音または伴奏音を表す伴奏音データを生成するようにしてもよい。この場合、発音タイミングを指定するデータを省略して所定タイミング(例えば、4分音符)ごとに発音されるベース音または伴奏音を表す伴奏音データを生成するようにしてもよい。また、一度に発音される伴奏音の数も1つだけではなく複数のコード構成音を同時に発音させる伴奏音データを生成してもよい。たとえば、ベース音と同時にまたはタイミングを異ならせて、複数のコード構成音(例えば、ベース音とコード音)を発音させるための伴奏音データを生成してもよい。
そして、前記のように生成された伴奏データは、メロディデータと共にまたはメロディデータとは独立して楽曲の進行に従って楽音信号発生回路13に供給されて自動演奏される。また、この伴奏データを用いて、伴奏音列(ベース音列)をメロディ音列と共にまたはメロディ音列とは独立して表示器12にて楽譜の形式で表示したり、別途設けた印刷装置によりメロディ音列と共にまたはメロディ音列とは独立して楽譜の形式で印刷したりするようにしてもよい。さらに、伴奏音に対応して押鍵すべき鍵をランプの点灯によりユーザに対して指示する演奏ガイドのために、前記生成した伴奏データを利用してもよい。
上記作動説明から理解できるように、上記実施形態によれば、ステップS14,S16の処理によってコードデータ列に基づいて基準音高列が抽出され、抽出された一連の基準音高は、各基準音高が一連の流れをもって順次進行する複数のコード進行区間に区切られる。そして、ステップS18のコード進行区間処理ルーチンの実行により、コード進行区間ごとに基準音高に基づいてベース音列が決定されて、ステップS20の処理によりこのベース音列に基づいて伴奏音データが生成される。その結果、上記実施形態によれば、コード進行の状況が考慮され、聴感上自然に変化する伴奏音列が生成される。
また、前記コード進行区間処理ルーチンにおいては、ステップS32の処理によって複数のベース音列候補が生成されるとともに、ステップS34〜S42処理によって複数のベース音列候補を構成するベース音の音高が考慮されて所定のベース音域に入るベース音列が最終的なベース音列とされる。また、ステップS42の処理により、ベース音域から外れるベース音に関しては、その音高がオクターブシフトされて、ベース音域に納められる。その結果、これによれば、全てのベース音が必ずベース音域に入るようになるので、他の演奏音との重なりを簡単に回避できるようになるとともに、伴奏音としても適したベース音列が選択されることになる。
また、ステップS36,S44〜S56の処理により、全てのベース音がベース音域に入るベース音列候補が複数存在する場合には、メロディ音列との適合性が考慮されてベース音列が決定される。特に、メロディ音列と重ならないベース音列が決定され、またメロディ音列に近い伴奏音列候補が選択される。さらに、最適ベース音列に入るベース音の頻度によりベース音列が決定される。これにより、伴奏音として適した伴奏音列が選択され、またはメロディ音列に適合した伴奏音列が選択されるので、聴感上より自然に変化する伴奏音列が生成される。
さらに、本発明の実施にあたっては、上記実施形態及びその変形例に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
上記実施形態においては、メロディ音列も考慮してベース音列を決定するようにしたが、コードデータ列のみを用いてベース音列を決定するようにしてもよい。この場合、図3のコード進行区間処理ルーチンにおいて、ステップS44〜S54の処理を省略して、全てのベース音がベース音域に入るベース音列が複数存在する場合には、ステップS36の判定処理によりステップS56のベース音決定処理が実行されるようにすればよい。
また、上記実施形態においては、ステップS32の処理により2つのベース音列を生成するようにしたが、1つのベース音列のみを生成するようにしてもよい。この場合、ステップS36にて前記生成した1つのベース音列に属する全てのベース音がベース音域に入るか否かを調べ、全てのベース音がベース音域に入る場合にはステップS38の処理によりベース音列を決定すればよい。また、ベース音域に入らないベース音が存在する場合には、ステップS42の処理によりベース音域に入らないベース音をベース音域に入るように修正して、同修正したベース音列を最終的なベース音列として決定すればよい。また、3つ以上のベース音列を設定するようにしてもよい。この場合、ベース音域を広げるか、根音(またはオンベースコードの場合にはベース音)以外のコード構成音をもベース音列を構成するためのベース音として選択されるようにする。
また、上記実施形態においては、生成されたベース音列候補中のいずれかのベース音がベース音域から外れている場合には、該当するベース音の音高をオクターブシフトしてベース音域に入るようにした。しかし、これに代えて、所定の音程だけ音高シフトすることにより、該当するベース音がベース音域に入るようにしてもよい。また、ベース音域に入っていないベース音をそのままにしておいてもよい。さらに、これらのベース音の音高シフトおよびベース音の音高をそのままに保つことを、上記実施形態のステップS12にて、ユーザが選択できるようにすればよい。
さらに、上記実施形態においては、全てのベース音がベース音域に属するベース音列候補が複数存在しているとき、ステップS44〜S56の処理によって1つのベース音列を決定するようにした。しかし、メロディ音列に含まれるメロディ音の音名と一致する音名のベース音を多く含むベース音列を最終的にベース音列として決定したり、他の伴奏音列が存在する場合には同伴奏音列との適合性を考慮してベース音列を決定したりするなど、前記ステップS44〜S56の処理に変わるベース音列の決定方法を採用することもできる。
本発明の一実施形態に係る電子音楽装置の全体ブロック図である。 前記電子音楽装置にて実行される伴奏データ生成プログラムを示すフローチャートである。 図2のコード進行区間処理ルーチンの詳細を示すフローチャートである。 (A)(B)は、生成された伴奏データによるベース音を例を示す図である。
符号の説明
11…入力操作子群、12…表示器、13…楽音信号発生回路、31…CPU,33…ROM,34…RAM、35…外部記憶装置、36…通信インターフェース回路

Claims (4)

  1. 一連のコードを表すコードデータ列を供給するコードデータ供給手順と、
    前記供給されたコードデータごとにコードに関係した所定の基準音高を抽出する基準音高抽出手順と、
    前記抽出された一連の基準音高を、各基準音高が1つのコード進行区間内で前の基準音高からの音高差を所定値以内とした状態で進行する複数のコード進行区間に区切って一連のコード進行区間を生成する区間生成手順と、
    前記コード進行区間ごとに基準音高に基づいて、基準音高の音名を有するとともにベース音域に入る音高列からなるベース音列を表すベース音列データを生成するベース音列生成手順
    コンピュータに実行させることを特徴とするベース音列生成用コンピュータプログラム。
  2. 前記ベース音列生成手順は、
    前記基準音高列に基づいて生成されるベース音列の中の所定音域に入らないベース音の音高をシフトして同所定音域に入るように修正する音高修正手順を含むことを特徴とする請求項1に記載したベース音列生成用コンピュータプログラム。
  3. 前記ベース音列生成手順は、
    複数のベース音列候補を生成するベース音列候補生成手順と、
    前記複数のベース音列候補を構成するベース音が所定音域に入るかに応じまたは前記コードデータ列に対応したメロディ音列との重なりに応じて、前記複数のベース音列候補の中から1つのベース音列を選択するベース音列選択手順とを含むことを特徴とする請求項1に記載したベース音列生成用コンピュータプログラム。
  4. 一連のコードを表すコードデータ列を供給するコードデータ供給手段と、
    前記供給されたコードデータごとにコードに関係した所定の基準音高を抽出する基準音高抽出手段と、
    前記抽出された一連の基準音高を、各基準音高が1つのコード進行区間内で前の基準音高からの音高差を所定値以内とした状態で進行する複数のコード進行区間に区切って一連のコード進行区間を生成する区間生成手段と、
    前記コード進行区間ごとに基準音高に基づいて、基準音高の音名を有するとともにベース音域に入る音高列からなるベース音列を表すベース音列データを生成するベース音列生成手段と
    を備えたことを特徴とするベース音列生成装置。
JP2003379480A 2003-11-10 2003-11-10 ベース音列生成用コンピュータプログラムおよびベース音列生成装置 Expired - Fee Related JP4186797B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003379480A JP4186797B2 (ja) 2003-11-10 2003-11-10 ベース音列生成用コンピュータプログラムおよびベース音列生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003379480A JP4186797B2 (ja) 2003-11-10 2003-11-10 ベース音列生成用コンピュータプログラムおよびベース音列生成装置

Publications (2)

Publication Number Publication Date
JP2005141124A JP2005141124A (ja) 2005-06-02
JP4186797B2 true JP4186797B2 (ja) 2008-11-26

Family

ID=34689526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003379480A Expired - Fee Related JP4186797B2 (ja) 2003-11-10 2003-11-10 ベース音列生成用コンピュータプログラムおよびベース音列生成装置

Country Status (1)

Country Link
JP (1) JP4186797B2 (ja)

Also Published As

Publication number Publication date
JP2005141124A (ja) 2005-06-02

Similar Documents

Publication Publication Date Title
JP3666577B2 (ja) コード進行修正装置、コード進行修正方法及び同装置に適用されるプログラムを記録したコンピュータ読取り可能な記録媒体
US8324493B2 (en) Electronic musical instrument and recording medium
JPH11126074A (ja) アルペジオ発音装置およびアルペジオ発音を制御するためのプログラムを記録した媒体
JP5472261B2 (ja) 自動調判定装置、自動調判定方法及びそのプログラム
JP2722141B2 (ja) 自動伴奏装置
JP2006195043A (ja) 電子音楽装置および同装置に適用されるコンピュータ読み取り可能なプログラム
JP4186797B2 (ja) ベース音列生成用コンピュータプログラムおよびベース音列生成装置
JP4670686B2 (ja) コード表示装置及びプログラム
JP4376169B2 (ja) 自動伴奏装置
CN113870817A (zh) 自动编曲方法、自动编曲装置及计算机程序产品
JP4062314B2 (ja) 自動演奏装置及びプログラム
JP3719157B2 (ja) 楽曲データの表情付け装置及び楽曲データの表情付け方法並びに楽曲データの表情付けプログラム
JP2007163710A (ja) 演奏支援装置及びプログラム
JP6047867B2 (ja) 自動コード修正装置、自動コード修正方法及びそのプログラム
JP2005084065A (ja) コード練習装置
JP6555231B2 (ja) 自動コード修正装置、自動コード修正方法及びそのプログラム
JP3775039B2 (ja) メロディ生成装置と記録媒体
JP2572317B2 (ja) 自動演奏装置
JP2580950B2 (ja) 自動スケール発生装置
JP4470895B2 (ja) コード表示装置及びプログラム
JPH09106284A (ja) 和音発生指示装置
JP3434403B2 (ja) 電子楽器の自動伴奏装置
JP4900233B2 (ja) 自動演奏装置
JPH0772864A (ja) 電子楽器の自動伴奏装置
JP2006234979A (ja) 電子楽器及びその処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080513

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: 20080819

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080901

R150 Certificate of patent or registration of utility model

Ref document number: 4186797

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees