JP2024062127A - 伴奏音自動生成装置、電子楽器、伴奏音自動生成方法及びプログラム - Google Patents

伴奏音自動生成装置、電子楽器、伴奏音自動生成方法及びプログラム Download PDF

Info

Publication number
JP2024062127A
JP2024062127A JP2022169917A JP2022169917A JP2024062127A JP 2024062127 A JP2024062127 A JP 2024062127A JP 2022169917 A JP2022169917 A JP 2022169917A JP 2022169917 A JP2022169917 A JP 2022169917A JP 2024062127 A JP2024062127 A JP 2024062127A
Authority
JP
Japan
Prior art keywords
measure
pattern data
chord
sounding
accompaniment sound
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
JP2022169917A
Other languages
English (en)
Inventor
順 吉野
Jun Yoshino
敏之 橘
Toshiyuki Tachibana
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2022169917A priority Critical patent/JP2024062127A/ja
Publication of JP2024062127A publication Critical patent/JP2024062127A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】伴奏音を自動生成することができる伴奏音自動生成技術及び電子楽器に関し、特定のジャンルに定番のベースパターン等の伴奏音の自動演奏において、単調な繰り返し演奏ではなく人間が演奏する生演奏に近づいた自動演奏を再現する。【解決手段】第一の発音小節に対して指定される第一のコードの状態と、第一のコード及び第一の発音小節の次の第二の発音小節に対して指定される第二のコードの関係と、の少なくとも一方が発音小節毎に判定される(S401、S403、S405)。これらの判定の結果に応じた確率で、複数のベースパターンデータの中から1つのベースパターンデータが選択される(S402、S404、S406、S407)。そして、第一のコードと選択されたベースパターンデータとに基づいて、第一の発音小節で発音される伴奏音が生成される。【選択図】図4

Description

本発明は、伴奏音を自動生成することができる伴奏音自動生成装置、電子楽器、伴奏音自動生成方法及びプログラムに関する。
従来、和音構成音のうちの特定度数の音をベース音として含む演奏を、入力コードの種類によらず実現することが容易にできる自動演奏装置が知られている(例えば特許文献1)。
また従来、発音指示に変化がなくても演奏内容を変化させることができ、演奏者が演奏をしながら自動演奏に関与でき、例えばベースパートについて選択されたモチーフ情報のパターンに応じて演奏内容を変化させるモチーフ演奏を行うことができるモチーフ演奏装置の技術が知られている(例えば特許文献2)。
特開2009-157051号公報 特開平8-320689号公報 特開2021-124688号公報
しかし、上述の従来技術により生成されるベースライン伴奏パターンは、パラメータを介してあらかじめプログラミングされた伴奏データが繰り返し再生されるものであり、例えばジャズのベースライン伴奏などに見られるアドリブを効かせたような自動伴奏を行うことはできず、それ故その演奏は機械的に聞えてしまうという課題があった。
本発明は、例えばラテンベースの1度と5度の音程を行き来するような、特定のジャンルに定番のベースパターン等の伴奏音の自動演奏において、単調な繰り返し演奏ではなく人間が演奏する生演奏に近づいた自動演奏を再現することを目的とする。
態様の一例の伴奏音自動生成装置では、第一の発音小節に対して指定される第一のコードの状態と、第一のコード及び第一の発音小節の次の第二の発音小節に対して指定される第二のコードの関係と、の少なくとも一方を発音小節毎に判定し、判定の結果に応じた確率で、複数のベースパターンデータの中から1つのベースパターンデータを選択し、第一のコードと選択したベースパターンデータとに基づいて、第一の発音小節で発音される伴奏音を生成する。
本発明によれば、例えばラテンベースの1度と5度の音程を行き来するような、特定のジャンルに定番のベースパターン等の伴奏音の自動演奏において、単調な繰り返し演奏ではなく人間が演奏する生演奏に近づいた自動演奏を再現することが可能となる。
電子楽器のシステムハードウェアの構成例を示すブロック図である。 本実施形態の動作説明図である。 全体処理の例を示すメインフローチャートである。 パターン選択処理の詳細例を示すフローチャートである。 頻度テーブルの例を示すデータ構成図である。 ベースパターンデータの例を示すデータ構成図(その1)である。 ベースパターンデータの例を示すデータ構成図(その2)である。 ノートナンバーゲート値生成処理の詳細例を示すフローチャートである。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図1は、電子楽器100の1実施形態のシステムハードウェアの構成例を示す図である。
電子楽器100は、例えば電子鍵盤楽器であり、演奏操作子としての複数の鍵からなる鍵盤105と、電子楽器100の電源オン/オフや、音量調整、楽音出力の音色の指定やベースライン自動伴奏のテンポ等の各種設定を指示したりするスイッチ、及び演奏効果を付加するスイッチやベンドホイールやペダル等を含むスイッチ107と、各種設定情報を表示するLCD(Liquid Crystal Display:液晶ディスプレイ)109等を備える。また、電子楽器100は、演奏により生成された楽音を放音するスピーカ113を、筐体の裏面部、側面部、又は背面部等に備える。
また、電子楽器100において、CPU(プロセッサ)101、ROM(リードオンリーメモリ)102、RAM(ランダムアクセスメモリ)103、音源LSI(大規模集積回路)104、鍵盤105が接続されるキースキャナ106、スイッチ107が接続されるI/Oインタフェース108、LCD109が接続されるLCDコントローラ110、及びMIDI(Musical Instrument Digital Interface)等の音楽データを外部のネットワークから取りこむネットワークインタフェース114、が、それぞれシステムバス115に接続されている。更に、音源LSI104の出力側には、D/Aコンバータ111、アンプ112、及びスピーカ113が順次接続される。
CPU101は、RAM103をワークメモリとして使用しながらROM102に記憶された制御プログラムを実行することにより、図1の電子楽器100の制御動作を実行する。また、ROM102は、上記制御プログラム及び各種固定データのほか、例えばラテンベースのベースラインデータを含む曲データを記憶する。
このときCPU101は、ユーザが鍵盤105で演奏した演奏データをキースキャナ106及びシステムバス115を介して取りこみ、その演奏に応じたノートオンデータやノートオフデータを生成して、音源LSI104に出力する。これにより、音源LSI104は、入力したノートオンデータやノートオフデータに応じた楽音波形データを生成・出力し又は出力を終了する。音源LSI104から出力される楽音波形データは、D/Aコンバータ111でアナログ楽音波形信号に変換された後、アンプ112で増幅され、スピーカ113から、ユーザが演奏した演奏楽音として放音される。
また、上記演奏楽音の放音動作に併行して、CPU101は、例えばROM102からシステムバス115を介して、ユーザがスイッチ107からI/Oインタフェース108及びシステムバス115を介して指定した、例えばボサノバ等のラテン楽曲のベースラインを自動伴奏するためのコードデータを順次入力し、そのコードデータに基づいてベースラインのノートナンバを順次決定し、そのノートナンバのノートオンデータ又はノートオフデータを順次生成して、音源LSI104に出力する。これにより、音源LSI104は、入力したベースラインの自動伴奏音に対応するベースライン楽音波形データを生成・出力し又は出力を終了する。音源LSI104から出力されるベースライン楽音波形データは、D/Aコンバータ111でアナログ楽音波形信号に変換された後、アンプ112で増幅され、スピーカ113から、ユーザが演奏楽音に合わせて自動伴奏されるベースライン楽音として放音される。
音源LSI104は、上記演奏楽音及びベースライン自動伴奏音を同時に出力するために、例えば同時に最大256ボイスを発振させる能力を有する。
キースキャナ106は、鍵盤105の押鍵/離鍵状態を定常的に走査し、CPU101に割込みをかけて状態変化を伝える。
I/Oインタフェース108は、スイッチ107の操作状態を定常的に走査し、CPU101に割り込みを掛けて状態変化を伝える。
LCDコントローラ110は、LCD505の表示状態を制御するIC(集積回路)である。
ネットワークインタフェース114は、例えばインターネットやローカルエリアネットワークに接続され、本実施形態で使用される制御プログラムや、各種楽曲データ、自動演奏データなどを取得し、RAM103等に記憶させることができる。
図1で示される電子楽器100の動作概要について、図2の動作説明図に従って説明する。本実施形態では、例えばラテン楽曲のベースラインの伴奏音を自動生成し、放音させることができる。
このとき、CPU101は、小節ごと又は小節の拍ごとにコードデータを例えばROM102から取得し、発音を行う小節(以下「発音小節」と記載)毎に、発音小節に対して指定されるコードの状態及び発音小節に対して指定されるコードと発音小節の次の小節に対して指定されるコードとの関係を判定し、判定の結果に応じた頻度で、例えばラテン音楽等の指定されたジャンルに定番のベースパターン(伴奏音)を示す複数のベースパターンデータの中から1つのベースパターンデータを選択し、発音小節に対して指定されるコードと選択したベースパターンデータとに基づいて、発音小節で発音されるべきベースライン音を生成し、生成したベースライン音の発音を音源LSI104に指示する。
図1のROM102には、例えば、複数の小節又は小節内の例えば強拍に対応付けて、図2(a)に例示されるような例えば8小節分(小節数は任意)のラテン楽曲のコードデータが記憶されている。図2(b)は、ROM102から順次読み出される図2(a)に対応する各コードデータのデータ構成の例を示す図である。図2(b)に示される表の上から下へ並ぶ各行が、それぞれ時間経過に従いROM102から順次読み出されるコードデータを示している。各コードデータは、そのコードデータが何小節目に設定されるかを示す「小節」項目値と、そのコードデータが小節内の何拍目に設定されるかを示す「拍」項目値と、そのコードデータが示すコードのルート音の音高を示す「ルート」項目値と、そのコードデータが示すコードのコード種別を示す「コード種別」項目値を含む。
CPU101は、例えば図2(a)(b)のようにしてROM102から順次取得したコードデータに対して、以下に説明する制御処理を実行し、図2(c)に例示されるようなラテン調のベースラインの伴奏音を生成する。この楽譜では、後述するクロマチック音パターンでベースライン音が自動生成された結果例が示されている。
図3は、図1の電子楽器100の実施形態において、CPU101がROM102からRAM103に読み出した制御処理を実行する処理である全体処理の例を示すメインフローチャートである。このメインフローチャートの処理は例えば、演奏者が図1のスイッチ107に含まれる電源スイッチを押すことにより、スタートされる。
CPU101はまず、初期化処理を実行する(図3のステップS301)。
初期化処理において、CPU101は始めに、ベースラインの自動伴奏の進行を制御するTickTimeと小節数と拍数をリセットする。
本実施形態において、ベースラインの自動伴奏の進行は、図1のRAM103に記憶されるTickTime変数の値(以下この変数の値を変数名と同じ「TickTime」と呼ぶ)を単位として進行する。
図1のROM102内には、TimeDivision定数の値(以下この変数の値を変数名と同じ「TimeDivision」と呼ぶ)が予め設定されており、このTimeDivisionは1拍(例えば4分音符)の分解能を示しており、この値が例えば96ならば、1拍は96×TickTimeの時間長を有する。
ここで、1TickTimeが実際に何秒になるかは、曲データに対して指定されるテンポによって異なる。今、ユーザ設定に従ってRAM103上のTempo変数に設定される値をTempo[ビート/分]とすれば、TickTimeの秒数=TickTimeSec[秒]は、下記(1)式により算出される。
TickTimeSec[秒]=60/Tempo/TimeDivision
・・・(1)
そこでCPU101は、図3のステップS301の初期化処理において、上記(1)式に対応する演算処理により、TickTimeSec[秒]を算出し、CPU101内の特には図示しないハードウェアタイマに設定すると共に、RAM103上のTickTime変数の値を0にリセットする。ハードウェアタイマは、上記設定されたTickTimeSec[秒]が経過するごとに、割込みを発生させる。
なお、Tempo変数に設定されるTempo値としては、初期状態では図1のROM102の定数から読み出した所定の値、例えば60[ビート/秒]が、初期設定されてもよい。或いは、変数Tempoが不揮発性メモリに記憶され、電子楽器100の電源の再投入時に、前回終了時のTempo値がそのまま保持されていてもよい。
CPU101はまた、図3のステップS301の初期化処理で、指定された楽曲の先頭からの小節数を示すRAM103上の小節数変数の値を第1小節を示す値1にリセットし、RAM103上の拍数を示す拍数変数の値を1拍目を示す値1にリセットする。
CPU101は更に、図3のステップS301の初期化処理で、ROM102から、図2(b)において例示した、演奏者が指定したラテン楽曲等のベースラインの自動伴奏のためのコードデータを取得し、RAM103に記憶させる。
その後、CPU101は、図3のステップS302からS308までの一連の処理を繰り返し実行する。
この一連の処理において、CPU101はまず、現在のタイミングが小節の先頭であるか否かを判定する(図3のステップS302)。具体的には、CPU101は、RAM103に記憶されているTickTime変数の値が初期値0になっており(後述するステップS312→S313参照)、かつ拍数変数の値が1拍目を表す値1になっているか否かを判定する。
ステップS302の判定がYESならば、CPU101は、パターン選択処理を実行する(図3のステップS303)。ここでは、CPU101は、ROM102に記憶されている例えばラテンベースの複数のベースパターンデータの中から1つを確率的に選択する。この処理の詳細については、図4のフローチャートを用いて後述する。
ステップS302の判定がNOの場合又はステップS303の処理を実行した後、CPU101は、現在のタイミングがノートオンの発音タイミングであるか否かを判定する(図3のステップS304)。具体的には、CPU101はまず、RAM103上の拍数変数値が示す拍の先頭からの、同じくRAM103上のTickTime変数値に対応するタイミングの位置を、現在のタイミングとして認識する。そして、CPU101は、ステップS303で現在選択されているベースパターンデータ上の、拍数変数値が示す拍におけるTickTime変数値が示すタイミングの位置に、図6及び図7を用いて後述するNote値(度数情報)、Gate値(ゲート情報)、及びVelocity値(ベロシティ情報)が設定されているか否かを判定する。CPU101は、ベースパターンデータ上の上記位置に上述の各情報が設定されている場合に、現在のタイミングがノートオンの発音タイミングであると判定する。
ステップS304の判定がYESならば、CPU101は、ノートオンデータの一部として、現在の発音タイミングに対応するノートナンバー、ゲート値、及びベロシティ値を生成する処理を実行する(図4のステップS305)。この処理の詳細は、図8のフローチャートを用いて後述する。
ステップS305に続いて、CPU101は、ステップS305で生成したノートオンデータをノートオンコマンドと共に図1の音源LSI104に指定することにより、音源LSI104にそのノートオンデータに対応する楽音波形データを生成させるノートオン処理を実行する(図3のステップS306)。
ステップS304の判定がNOの場合又はステップS306の処理の後、CPU101は、現在のタイミングがノートオフのタイミングであるか否かを判定する(図3のステップS307)。具体的には、CPU101は、RAM103の発音中ノート記憶エリアに記憶されている発音中の何れかのベースライン音の残りゲート値変数の値が0になっているか否かを判定する。この残りゲート値変数には、ステップS305のノートオンデータ生成処理内の後述する図8のステップS802で発音中ノート記憶エリアにノートオンのゲート値が残りゲート値変数値として初期設定された後、後述するステップS310でTickTime毎に-1ずつされてゆく。従って、この残りゲート値変数の値が0になるということは、ノートオンが終了することを意味する。
ステップS307の判定がYESの場合、CPU101は、ノートオフデータとして、上記残りゲート値変数の値が0になった発音中のベースライン音のノートナンバーをノートオフコマンドと共に図1の音源LSI104に指定することにより、音源LSI104にそのノートオフデータに対応する楽音波形データを消音させるノートオフ処理を実行する(図3のステップS308)。
ステップS307の判定がNOの場合又はステップS308の処理の後、CPU101は、現在のタイミングで発音中のベースライン音があるか否かを判定する(図3のステップS309)。具体的には、CPU101は、RAM103上の発音中ノート記憶エリアに、発音中のベースライン音の残りゲート値変数が記憶されているか否かを判定する。
ステップS309の判定がYESならば、CPU101は、RAM103に記憶されている発音中のベースライン音の全ての残りゲート値変数値を、夫々-1する(図3のステップS310)。
ステップS309の判定がNOの場合又はステップS310の処理の後、CPU101は、前述のハードウェアタイマからTickTimeSec[秒]毎の割込みが発生しているか否かを判定し、その割込みが発生したらRAM103に記憶されているTickTime変数値をカウントアップさせる(図3のステップS311)。
続いて、CPU101は、RAM103上のTickTime変数値が前述したTimeDivision定数値(=96TickTime値)に達したか否か、即ち、TickTime変数値によるカウントが1拍分進んだか否かを判定する(図3のステップS312)。
ステップS312の判定がNOならば、CPU101は、ステップS302の処理に戻って上記一連の処理を繰り返す。
TickTime変数値によるカウントが1拍分進んだことによりステップS312の判定がYESになると、CPU101は、RAM103上のTickTime変数値を0にリセットし、RAM103上の拍数変数値を+1し、更にその拍数変数値が4を超えたら拍数変数値を1にリセットすると共に、RAM103上の小節数変数値を+1する(図3のステップS313)。その後、CPU101は、図3のステップS302の処理に戻って、更新された次の拍位置又は次の小節位置に対して、上記一連の処理を繰り返す。
図4は、図3のステップS303のパターン選択処理の詳細例を示すフローチャートである。
CPU101はまず、RAM103上の小節数変数値が示す第一の発音小節である現在の小節(以下「発音小節」)に対応して、図3のステップS301でRAM103に読み出されているコードデータ(第一のコード)において、上記発音小節に対して複数のコードが設定されているか否かを判定する(図4のステップS401)。具体的には、CPU101は、例えば、図2(b)の小節項目値がRAM103上の現在の小節数変数値に等しく、ルート項目値とコード種別項目値の組合せが異なるエントリがあるか否かを判定する。
ステップS401の判定がYESの場合、CPU101は、ROM102に記憶されている図5に例示される頻度テーブルデータにおいて、図5の縦方向のType1、Type2、Type3、又はType4の頻度タイプのエントリのうちType4のエントリ(図5の4行目)を選択する(図4のステップS402)。その後、CPU101は、ステップS408の処理に進む。図2(a)又は(c)に例示されるコード進行例の7小節目(Dm7とG7)が該当する。
ステップS401の判定がNOの場合、CPU101は、RAM103上の小節数変数値が示す発音小節(第一の発音小節)の次の小節(第二の発音小節)の先頭でコードデータ(図2(b)参照)によって指定されているコード(第二のコード)が発音小節(第一の発音小節)の先頭でコードデータによって指定されているコード(第一のコード)と同じであるか否かを判定する(図4のステップS403)。
ステップS403の判定がYESの場合、CPU101は、ROM102に記憶されている図5に例示される頻度テーブルデータにおいて、Type3のエントリ(図5の3行目)を選択する(図4のステップS404)。その後、CPU101は、ステップS408の処理に進む。図2(a)又は(c)に例示されるコード進行例の1小節目(CM7)と3小節目(Em7)が該当する。
ステップS403の判定がNOの場合、CPU101は、RAM103上の小節数変数値が示す発音小節(第一の発音小節)の次の小節(第二の発音小節)の先頭でコードデータによって指定されているコード(第二のコード)のルート音(図2(b)参照)が発音小節(第一の発音小節)の先頭でコードデータによって指定されているコード(第一のコード)のルート音の3度下であるか否かを判定する(図4のステップS405)。
ステップS405の判定がYESの場合、CPU101は、ROM102に記憶されている図5に例示される頻度テーブルデータにおいて、Type2のエントリ(図5の2行目)を選択する(図4のステップS406)。その後、CPU101は、ステップS408の処理に進む。図2(a)又は(c)に例示されるコード進行例の4小節目(Em7に対して次小節のCM7)と5小節目(CM7に対してAm7)が該当する。
ステップS405の判定がNOの場合、CPU101は、ROM102に記憶されている図5に例示される頻度テーブルデータにおいて、Type1のエントリ(図5の1行目)を選択する(図4のステップS407)。その後、CPU101は、ステップS408の処理に進む。図2(a)又は(c)に例示されるコード進行例の2小節目と6小節目と8小節目が該当する。
ステップS402、S404、S406、又はS407の処理の後、CPU101は、選択された頻度テーブルのTYPE行より、頻度に応じた確率でベースパターンデータの番号を選択する(図4のステップS408)。
図5は、上記パターン選択処理において選択されるType毎の頻度テーブルの例を示すデータ構成図である。図5に例示されるテーブルの縦軸がTypeの番号で、横軸がベースパターンデータの番号であり、縦軸と横軸の各交差位置に設定される数字は頻度番号を示している。その交差位置の頻度番号が大きいほど、その交差位置に対応する横軸の番号で示されるベースパターンデータが選択される確率が上がる。
図6及び図7は、図5に例示される頻度テーブルを介して選択されるベースパターンデータの例を示すデータ構成図である。
図6及び図7に例示されるベースパターンデータの夫々は、1つの小節を拍の発音タイミング及び拍の発音タイミングを更に例えば2分割した横方向の発音タイミング毎に、その発音タイミングを示すTickTime値(タイミング情報)(図中では「Tick」と表示)、その発音タイミングにおいて何れかのベースライン音を発音するか否か及び発音されるベースライン音がルート音であるか否か又はルート音に対する度数を示すNote値(度数情報)(図中では「Note」と記載)、発音されるベースライン音の発音長を示すGate値(ゲート情報)(図中では「Gate」と記載)、及び発音されるベースライン音の発音強度を示すVelocity値(ベロシティ情報)(図中では「Velocity」と記載)を少なくとも含む。
図3のステップS312及びS313で説明したように、1拍は96TickTimeであり、TickTime値に対応する図3で説明したTickTime変数値は拍毎にリセットされる。よって、図6及び図7に例示されるベースパターンデータにおいて、TickTime値は、各拍のタイミングを2分割した拍先頭タイミングでは「0」、拍中央タイミングでは「48」(96÷2)が設定されている。
また、図6及び図7に例示されるベースパターンデータにおいてNote値として設定される値のうち、「R」はルート音を示し、「3rd」「5th」及び「7th」は夫々コード構成音の3度、5度、及び7度の音程の音を示す。
図6の(a)、(b)、(c)、及び(d)として例示される4パターンのベースパターンデータは、コード構成音タイプ、即ちコード構成音を発音させる発音タイプのベースパターンデータである。つまり、発音タイミング毎に、その発音タイミングにおいて指定されるコードの構成音に対応する度数情報を有している。
度数情報としては、ルート音、3度音(3rd)、5度音(5th)、又は7度音(7th)などが設定される。
基本的には、ルート音以上の高い音程の音が発音されるが、図6(d)に示される「Down7」のように、ルート音よりも低い音程の7thの音が指定される発音タイプもある。
このほか、「Oct R」のようにルート音に対して1オクターブ上のルート音が指定されてもよい。
図6の(a)、(b)、(c)、及び(d)として例示される4パターンのベースパターンデータは何れも、発音タイミング毎に、例えばラテンベースのフレーズを表現するTickTime値、Note値、Gate値、及びVelocity値を有する。
そして、例えば図6の(a)、(c)、及び(d)として例示されるベースパターンデータでは、Note値(度数情報)として、ラテンベース特有のルート音と5度音(5th)が繰返し設定されている。
図6の(d)として例示されるベースパターンデータは、図4のステップS401で発音小節内で複数種類のコードが指定されていると判定された場合(例えば図2(a)又は(c)の7小節目の場合)に、図4のステップS402で、図5に例示される頻度テーブルのType4のエントリ(図5の4行目)を介して、100パーセントの確率で選択される4番のベースパターンデータである。
このベースパターンデータでは、1つの小節内の1拍目と3拍目の発音タイミングにおけるNote値(度数情報)としてその発音タイミングにおいて指定されるコードのルート音を示すものが設定されている。
これにより、小節内で例えば2つのコードの各ルート音と1つの5度音(5th)とが繰り返すような、ラテン調のベースパターンを自動伴奏することが可能となる。
図6の(b)として例示されるベースパターンデータは、図4のステップS403で発音小節の次の小節の先頭で指定されているコードが発音小節の先頭で指定されているコードと同じであると判定された場合(例えば図2(a)又は(c)の1小節目と3小節目の場合)に、図4のステップS404で、図5に例示される頻度テーブルのType3のエントリ(図5の3行目)を介して、100パーセントの確率で選択される2番のベースパターンデータである。
このベースパターンデータでは、1つの小節内の最終の発音タイミングにおけるNote値(度数情報)として、その最終の発音タイミングにおいて指定されるコードのルート音の5度上(5th)のベースライン音を示すものが設定されている。
これにより2小節にわたる同じコードをうまくつなぐような、ラテン調のベースパターンを自動伴奏することが可能となる。
図6の(c)として例示されるベースパターンデータは夫々、図4のステップS405で発音小節の次の小節の先頭で指定されているコードのルート音が発音小節の先頭で指定されているコードのルート音に対して3度下であると判定された場合(例えば図2(a)又は(c)の4小節目と5小節目の場合)に、図4のステップS406で、図5に例示される頻度テーブルのType2のエントリ(図5の2行目)を介して、10パーセント程度の確率で選択される2番のベースパターンデータである。
図6(c)に例示される2番のベースパターンデータでは、1つの小節内の少なくとも最終の発音タイミング(及び3拍目の先頭の発音タイミング)におけるNote値(度数情報)として、その発音タイミングにおいて指定されるコードのルート音の7度上の度数に対して1オクターブ下の度数を示す度数情報が設定されている。
このケースでは、後述する図6(a)のベースパターンデータが高い確率で選択される一方、図6(c)のベースパターンデータもまれに選択されることにより、単調でないラテン調ベースパターンを再現することが可能となる。
図6の(a)として例示されるベースパターンデータは夫々、図4のステップS405で発音小節の次の小節の先頭で指定されているコードのルート音が発音小節の先頭で指定されているコードのルート音に対して3度下であると判定された場合(例えば図2(a)又は(c)の4小節目と5小節目の場合)、又は図4のステップS401、S403、S405の何れでもないと判定された場合(例えば図2(a)又は(c)の2小節目と6小節目と8小節目の場合)に、図4のステップS406又はS407で、図5に例示される頻度テーブルのType2のエントリ(図5の2行目)又はType1のエントリ(図5の1行目)を介して、70パーセント又は80パーセントの高い確率で選択される1番のベースパターンデータである。
図6(a)に例示される1番のベースパターンデータは、ラテンベースパターンの最もオーソドックスなものであり、Note値(度数情報)がルート音→5度音(5th)→5度音(5th)→ルート音と変化する典型的なラテン調のベースパターンを自動演奏することが可能となる。
このパターンでは、図6(a)のベースパターンデータが高い確率で選択される一方、図6(c)のベースパターンデータもまれに選択されることにより、単調でないラテン調ベースパターンを再現することが可能となる。
図7の(a)として例示されるベースパターンデータは、アプローチ音タイプ、即ち1つ前のノートと次のコードのルート音によって発音されるノートが決定される発音タイプのベースパターンデータである。
このベースパターンデータは、図4のステップS405で発音小節の次の小節の先頭で指定されているコードのルート音が発音小節の先頭で指定されているコードのルート音に対して3度下であると判定された場合(例えば図2(a)又は(c)の4小節目と5小節目の場合)に、図4のステップS406で、図5に例示される頻度テーブルのType2のエントリ(図5の2行目)を介して、10パーセント程度の確率で選択される5番のベースパターンデータである。
また、このベースパターンデータは、図4のステップS401、S403、S405の何れでもないと判定された場合(例えば図2(a)又は(c)の2小節目と6小節目と8小節目の場合)に、図4のステップS407で、図5に例示される頻度テーブルのType1のエントリ(図5の1行目)を介して、やはり10パーセント程度の確率で選択される5番のベースパターンデータである。
このベースパターンデータでは、1つの小節内の最終の発音タイミングにおいて、その最終の発音タイミングの直前の発音タイミングに設定されているNote値(度数情報)が示す度数から、発音小節の次の小節で最初に設定されているNote値が示す度数までの間の度数でベースライン音を発音させることを指示するアプローチ情報(図7(a)中「Ap」と表示された度数情報)が設定されている。
つまり、1つ前のノートと次のコードのルートが3度離れている場合、その間を繋ぐ度数のベースライン音が発音される。例えば、1つ前のノートがGで次のコードのルート音がEなら、Fのベースライン音が発音される。
なお、離れている音程が3度以外なら、ルート音が発音されるようにしてもよい。
アプローチ音は、コードだけでは決定されず、キーデータと合わせてスケールが決定されるようにしてよい。
このパターンでは、Type1又はType2において、図6(a)の1番のベースパターンデータが高い確率で選択される一方、図7(a)の5番のアプローチ音タイプのベースパターンデータもまれに選択されることにより、アプローチ音をランダムに取り入れた単調でないラテン調ベースパターンを再現することが可能となる。
図7の(b)として例示されるベースパターンデータは、スケール音タイプ、即ちコード構成音タイプ以外のスケール音を発音する発音タイプのベースパターンデータである。
このベースパターンデータは、図7(a)の場合と同様に、Type1又はType2のエントリ(図5の1行目又は2行目)を介して、5パーセント程度の確率で選択される6番のベースパターンデータである。
このベースパターンデータでは、1つの小節内の連続する発音タイミングがそれぞれ異なる複数のベースライン音に対応する複数のNote値(度数情報)として、設定された複数の音高のなかで順番に高音側に遷移していく複数の上行音に対応するNote値、又は順番に低音側に遷移していく複数の下行音に対応するNote値。これらのNote値としては、図7(b)中、スケールの夫々2、4、又は6番目の音を示す「2nd」「4th」又は「6th」と表示された度数情報が設定される。
スケール音は、コードだけでは決定されず、キーデータと合わせてスケールが決定されるようにしてよい。
このパターンでは、Type1又はType2において、図6(a)の1番のベースパターンデータが高い確率で選択される一方、図7(b)の6番のスケール音タイプのベースパターンデータもまれに選択されることにより、スケール音をランダムに取り入れた単調でないラテン調ベースパターンを再現することが可能となる。
図7の(c)として例示されるベースパターンデータは、クロマチック音タイプ、即ち、現在のコードではなく、次小節頭等のコードのルート音に対して、半音や2半音下のノートを発音させる発音タイプのベースパターンデータである。
このベースパターンデータは、図7(a)の場合と同様に、Type1又はType2のエントリ(図5の1行目又は2行目)を介して、5パーセント程度の確率で選択される7番のベースパターンデータである。
このベースパターンデータでは、1つの小節内の最終の発音タイミング(4拍目中央)において、発音小節の次の小節で最初に設定されているNote値(度数情報)が示す度数の半音下の度数でベースライン音を発音させることを指示する第1のクロマチック情報(図7(c)中「Cr1」と表示される度数情報)と、最終の発音タイミングの1つ前の発音タイミング(4拍目先頭)において、発音小節の次の小節で最初に設定されているNote値(度数情報)が示す度数の2半音下の度数でベースライン音を発音させることを指示する第2のクロマチック情報(図7(c)中「Cr2」と表示される度数情報)とを含む、
このパターンでは、Type1又はType2において、図6(a)の1番のベースパターンデータが高い確率で選択される一方、図7(c)の7番のクロマチック音タイプのベースパターンデータもまれに選択されることにより、半音又は2半音をランダムに取り入れた単調でないラテン調ベースパターンを再現することが可能となる。
図8は、図3のステップS305のノートオンデータ生成処理の詳細例を示すフローチャートである。
まずCPU101は、図4のフローチャートで説明した図3のステップS303のパターン選択処理により選択したベースパターンデータにおいて、前述した図3のステップS304で判定された、RAM103上の拍数変数値が示す拍の先頭からの、同じくRAM103上のTickTime変数値に対応するタイミングの位置に設定されているNote値(度数情報)、Gate値(ゲート情報)、及びVelocity値(ベロシティ情報)を取得する(図8のステップS801)。
次に、CPU101は、ステップS801で取得したNote値を、発音中のベースライン音としてRAM103の発音中ノート記憶エリアに記憶させ、同じくステップS801で取得したGate値をそのNote値に対応させて上記発音中ノート記憶エリアに残りゲート値変数値として記憶させる。
この残りゲート値変数値は、TickTime割込みが発生する毎に図3のステップS310にて1ずつマイナスされてゆき、その値が0になるとその残りゲート値変数値に対応するNote値で発音中のベースライン音がノートオフされる(図3のステップS307→S308)。
続いて、CPU101は、ステップS303のパターン選択処理により選択したベースパターンデータの発音タイプの別をRAM103に設定する(図8のステップS803)。ここで、発音タイプには、アプローチ音タイプ、クロマチック音タイプ、スケール音タイプ、又はその他のタイプがある。
具体的には、CPU101は、ステップS303において図7(a)のベースパターンデータを選択し、かつステップS801で取得したNote値(度数情報)がアプローチ処理音「Ap」(図7(a)の4拍目中央のタイミングを参照)である場合には、発音タイプ=アプローチ音タイプをRAM103に設定する。
また、CPU101は、ステップS303において図7(c)のベースパターンデータを選択し、かつステップS801で取得したNote値(度数情報)がクロマチック処理音「Cr1」又は「Cr2」(図7(c)の4拍目先頭及び4拍目中央の各タイミングを参照)である場合には、発音タイプ=クロマチック音タイプをRAM103に設定する。
更に、CPU101は、ステップS303において図7(b)のベースパターンデータを選択し、かつステップS801で取得したNote値(度数情報)がスケール音「2nd」「4th」又は「6th」である場合には、発音タイプ=スケール音タイプと設定する。
そして、CPU101は、上記の何れでもない場合には、発音タイプ=コード構成音タイプをRAM103に設定する。
その後、CPU101は、ステップS803で設定したベースパターンデータの発音タイプが、アプローチ音タイプであるか否かを判定する(ステップS804)。
ステップS804の判定がYESならば、CPU101は、Note値として「Ap」が設定されている最終の発音タイミング(図7(a)の例では4拍目の中央タイミング)の直前の発音タイミング(図7(a)の例では3拍目の先頭の発音タイミング)に設定されているNote値(度数情報)と、現在の発音小節の次の小節で最初に設定されているNote値とにより、現在の発音タイミングのノートを決定する(ステップS805)。
ステップS804の判定がNOならば、CPU101は、ステップS803で設定したベースパターンデータの発音タイプが、クロマチック音タイプであるか否かを判定する(ステップS806)。
ステップS806の判定がYESならば、CPU101は、発音小節の次の小節で最初に設定されているNote値(ルート音)から、現在の発音タイミングのノートを決定する(ステップS807)。
具体的には、CPU101は、現在のタイミングが発音小節内の最終の発音タイミング(図7(c)の例では4拍目中央)である場合には、発音小節の次の小節で最初に設定されているNote値のルート音が示す度数の半音下の度数に基づいて、現在の発音タイミングのノートを決定する。
また、CPU101は、現在のタイミングが発音小節内の最終の発音タイミングの1つ前の発音タイミング(図7(c)の例では4拍目先頭)である場合には、発音小節の次の小節で最初に設定されているNote値のルート音が示す度数の2半音下の度数に基づいて、現在の発音タイミングのノートを決定する。
ステップS806の判定がNOならば、CPU101は、ステップS803で設定したベースパターンデータの発音タイプが、スケール音タイプであるか否かを判定する(ステップS808)。
ステップS808の判定がYESならば、CPU101は、選択されたスケールにより、現在の発音タイミングのノートを決定する(ステップS809)。
具体的には、CPU101は、現在の発音タイミングに設定されているNote値が「2nd」「4th」「6th」の何れであるかによって、指定されたスケールの2番目、4番目、6番目の音の何れかを、現在の発音タイミングのノートとして決定する。
ステップS808の判定がNOならば、CPU101は、現在の発音タイミングに対応してRAM103に読み出されているコードデータにより、現在の発音タイミングのノートを決定する(ステップS810)。
具体的には、CPU101は、現在の発音タイミングに設定されているNote値が「R」「5th」「Down7」の何れであるかによって、コードデータのルート音、5度音、又は7度音の1オクターブ下の音の何れかを、現在の発音タイミングのノートとして決定する。
以上のステップS805、S807、S809、又はS810の処理の後、CPU101は、図8のフローチャートで例示される図3のステップS305のノートオンデータ生成処理を終了する。
上述の実施形態において、ベースのルート音はCから上に高くなるが、例えば図2(c)に示される楽譜の例では、Am7のルート音はCより低くなっている。このように、オクターブ低くする為の設定値をブレークポイントと呼び、この楽譜例ではG#をブレークポイントとして設定することができる。
以上説明したように、従来は予めプログラミングされた演奏データを任意の長さで繰り返し演奏させていたが、本実施形態では、ある一定のルールの中でランダマイズさせることで、単調な繰り返し演奏ではなくなり、人間が演奏する生演奏に近づいた演奏を再現することが可能となる。
また、ジャズのウォーキングベース以外のラテンベースなどでは定番となるベースパターンがあるが、本実施形態では、それらを取り入れかつコード間を滑らかにつなぐ手法を取り入れたことにより、より生演奏に近い演奏を再現することが可能となる。
更に、本実施形態では、定番のベースパターンと一定ルールのランダマイズを取り入れることで、ジャンルの特徴を生かしつつランダム性を発生させることが可能となる。
加えて、本実施形態では、ランダマイズされる発音音高の決定手段を複数持つことで、より一層単調な演奏から離れ、人間が演奏する生演奏に近づいた演奏を再現することが可能となる。
100 電子楽器
101 CPU
102 ROM
103 RAM
104 音源LSI
105 鍵盤
106 キースキャナ
107 スイッチ
108 I/Oインタフェース
109 LCD
110 LCDコントローラ
111 D/Aコンバータ
112 アンプ
113 スピーカ
114 ネットワークインタフェース
115 システムバス

Claims (15)

  1. 第一の発音小節に対して指定される第一のコードの状態と、前記第一のコード及び前記第一の発音小節の次の第二の発音小節に対して指定される第二のコードの関係と、の少なくとも一方を発音小節毎に判定し、
    前記判定の結果に応じた確率で、複数のベースパターンデータの中から1つのベースパターンデータを選択し、
    前記第一のコードと前記選択したベースパターンデータとに基づいて、前記第一の発音小節で発音される伴奏音を生成する、
    伴奏音自動生成装置。
  2. 前記判定は、前記第一の発音小節内で複数の前記第一のコードが指定されているか否かの判定、前記第二の発音小節の先頭で指定されている前記第二のコードが前記第一の発音小節の先頭で指定されている前記第一のコードと同じであるか否かの判定、及び前記第二の発音小節の先頭で指定されている前記第二のコードのルート音が前記第一の発音小節の先頭で指定されている前記第一のコードのルート音に対して所定度数の関係にあるか否かの判定の少なくとも一方である、請求項1に記載の伴奏音自動生成装置。
  3. 前記ベースパターンデータの夫々は、1つの小節を拍の発音タイミング及び前記拍の発音タイミングを更に分割した発音タイミング毎に、前記発音タイミングを示すタイミング情報、前記発音タイミングにおいて何れかの前記伴奏音を発音するか否か及び前記発音される伴奏音がルート音であるか否か又は前記ルート音に対する度数を示す度数情報、前記伴奏音の発音長を示すゲート情報、及び前記伴奏音の発音強度を示すベロシティ情報を少なくとも含む、請求項1に記載の伴奏音自動生成装置。
  4. 少なくとも1つの前記ベースパターンデータは、前記発音タイミング毎に、前記発音タイミングにおいて指定される前記第一のコードの構成音に対応する前記度数情報を有する、請求項3に記載の伴奏音自動生成装置。
  5. 前記判定が、前記第一の発音小節内で複数の前記第一のコードが指定されている判定の場合、前記複数のベースパターンデータの中から、前記1つの小節内の1拍目と3拍目の発音タイミングにおける前記度数情報として前記発音タイミングにおいて指定される前記第一のコードの前記ルート音を示す度数情報が設定されているベースパターンデータを選択する、請求項4に記載の伴奏音自動生成装置。
  6. 前記判定が、前記第二の発音小節の先頭で指定されている前記第二のコードが前記第一の発音小節の先頭で指定されている前記第一のコードと同じである判定の場合、前記複数のベースパターンデータの中から、前記1つの小節内の最終の発音タイミングにおける前記度数情報として、前記最終の発音タイミングにおいて指定される前記第一のコードの前記ルート音の5度上の伴奏音を示す度数情報が設定されているベースパターンデータを選択する、請求項4に記載の伴奏音自動生成装置。
  7. 前記判定が、前記第二の発音小節の先頭で指定されている前記第二のコードのルート音が前記第一の発音小節の先頭で指定されている前記第一のコードのルート音に対して3度下である判定の場合、前記複数のベースパターンデータの中から、前記1つの小節内の少なくとも最終の発音タイミングにおける前記度数情報として、前記最終の発音タイミングにおいて指定される前記第一のコードの前記ルート音の7度上の度数に対して1オクターブ下の度数を示す度数情報が設定されているベースパターンデータを選択する、請求項4に記載の伴奏音自動生成装置。
  8. 少なくとも1つの前記ベースパターンデータは、前記1つの小節内の最終の発音タイミングにおいて、前記最終の発音タイミングの直前の発音タイミングに設定されている前記度数情報が示す度数から、前記第二の発音小節で最初に設定されている前記度数情報が示す度数までの間の度数で前記伴奏音を発音させることを指示するアプローチ情報を含む、請求項3に記載の伴奏音自動生成装置。
  9. 少なくとも1つの前記ベースパターンデータは、前記1つの小節内の連続する前記発音タイミングがそれぞれ異なる複数の前記伴奏音に対応する複数の前記度数情報として、設定された複数の音高のなかで順番に高音側に遷移していく複数の上行音に対応する度数情報、又は順番に低音側に遷移していく複数の下行音に対応する度数情報を含む、請求項3に記載の伴奏音自動生成装置。
  10. 少なくとも1つの前記ベースパターンデータは、前記1つの小節内の最終の発音タイミングにおいて、前記第二の発音小節で最初に設定されている前記度数情報が示す度数に対して半音又は2半音異なる度数で前記伴奏音を発音させることを指示するクロマチック情報を含む、請求項3に記載の伴奏音自動生成装置。
  11. 前記ベースパターンデータの夫々は、前記発音タイミング毎に、所定の音楽ジャンルのベースラインのフレーズを表現する前記タイミング情報、前記度数情報、前記ゲート情報、及び前記ベロシティ情報を有する、請求項3乃至10の何れかに記載の伴奏音自動生成装置。
  12. 少なくとも1つの前記ベースパターンデータは、前記度数情報としてルート音の伴奏音を示す度数情報と前記ルート音の5度上の伴奏音を示す度数情報を少なくとも含む、請求項11に記載の伴奏音自動生成装置。
  13. 請求項1乃至10のいずれかに記載の伴奏音自動生成装置と、
    演奏操作子と、
    を備え、
    前記伴奏音自動生成装置により生成された伴奏音と、前記演奏操作子の操作とに応じて発音処理を実行する、
    電子楽器。
  14. 伴奏音自動生成装置のプロセッサに、
    第一の発音小節に対して指定される第一のコードの状態と、前記第一のコード及び前記第一の発音小節の次の第二の発音小節に対して指定される第二のコードの関係と、の少なくとも一方を発音小節毎に判定させ、
    前記判定の結果に応じた確率で、複数のベースパターンデータの中から1つのベースパターンデータを選択させ、
    前記第一のコードと前記選択したベースパターンデータとに基づいて、前記第一の発音小節で発音される伴奏音を生成させる、
    方法。
  15. 伴奏音自動生成装置のプロセッサに、
    第一の発音小節に対して指定される第一のコードの状態と、前記第一のコード及び前記第一の発音小節の次の第二の発音小節に対して指定される第二のコードの関係と、の少なくとも一方を判定させ、
    前記判定の結果に応じた確率で、複数のベースパターンデータの中から1つのベースパターンデータを選択させ、
    前記第一のコードと前記選択したベースパターンデータとに基づいて、前記第一の発音小節で発音される伴奏音を生成させる、
    プログラム。
JP2022169917A 2022-10-24 2022-10-24 伴奏音自動生成装置、電子楽器、伴奏音自動生成方法及びプログラム Pending JP2024062127A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022169917A JP2024062127A (ja) 2022-10-24 2022-10-24 伴奏音自動生成装置、電子楽器、伴奏音自動生成方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022169917A JP2024062127A (ja) 2022-10-24 2022-10-24 伴奏音自動生成装置、電子楽器、伴奏音自動生成方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2024062127A true JP2024062127A (ja) 2024-05-09

Family

ID=90970492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022169917A Pending JP2024062127A (ja) 2022-10-24 2022-10-24 伴奏音自動生成装置、電子楽器、伴奏音自動生成方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2024062127A (ja)

Similar Documents

Publication Publication Date Title
JP5574474B2 (ja) アドリブ演奏機能を有する電子楽器およびアドリブ演奏機能用プログラム
JP5672280B2 (ja) 演奏情報処理装置、演奏情報処理方法及びプログラム
JPH03192299A (ja) 自動伴奏装置
JP7501603B2 (ja) 電子楽器、伴奏音指示方法、プログラム、及び伴奏音自動生成装置
JP2583809B2 (ja) 電子楽器
JP2024062127A (ja) 伴奏音自動生成装置、電子楽器、伴奏音自動生成方法及びプログラム
JP2007271739A (ja) 合奏パラメータ表示装置
JP2010117419A (ja) 電子楽器
JP7409366B2 (ja) 自動演奏装置、自動演奏方法、プログラム、及び電子楽器
JP7400798B2 (ja) 自動演奏装置、電子楽器、自動演奏方法、及びプログラム
JP7505196B2 (ja) ベースライン音自動生成装置、電子楽器、ベースライン音自動生成方法及びプログラム
JP4318194B2 (ja) 電子楽器の自動伴奏装置及び自動伴奏方法
JP4197153B2 (ja) 電子楽器
JP7452501B2 (ja) 自動演奏装置、電子楽器、演奏システム、自動演奏方法、及びプログラム
WO2022201945A1 (ja) 自動演奏装置、電子楽器、演奏システム、自動演奏方法、及びプログラム
JP5692275B2 (ja) 電子楽器
US20230035440A1 (en) Electronic device, electronic musical instrument, and method therefor
JP5419171B2 (ja) 電子楽器
JP5564921B2 (ja) 電子楽器
JPS61156099A (ja) 自動演奏装置
JP4748593B2 (ja) 電子楽器
JP2024089976A (ja) 電子機器、電子楽器、アドリブ演奏方法及びプログラム
JP4942938B2 (ja) 自動伴奏装置
JP3082294B2 (ja) 伴奏音信号形成装置
JP2023098055A (ja) 自動演奏装置および自動演奏プログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20231011