JP2011158855A - 自動伴奏装置および自動伴奏プログラム - Google Patents

自動伴奏装置および自動伴奏プログラム Download PDF

Info

Publication number
JP2011158855A
JP2011158855A JP2010022737A JP2010022737A JP2011158855A JP 2011158855 A JP2011158855 A JP 2011158855A JP 2010022737 A JP2010022737 A JP 2010022737A JP 2010022737 A JP2010022737 A JP 2010022737A JP 2011158855 A JP2011158855 A JP 2011158855A
Authority
JP
Japan
Prior art keywords
current
information
chord
sound
melody
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.)
Granted
Application number
JP2010022737A
Other languages
English (en)
Other versions
JP5168297B2 (ja
Inventor
Hiroko Okuda
広子 奥田
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 JP2010022737A priority Critical patent/JP5168297B2/ja
Priority to US13/012,091 priority patent/US8314320B2/en
Priority to CN2011100669356A priority patent/CN102148027B/zh
Publication of JP2011158855A publication Critical patent/JP2011158855A/ja
Application granted granted Critical
Publication of JP5168297B2 publication Critical patent/JP5168297B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0008Associated control or indicating means
    • G10H1/0025Automatic or semi-automatic music composition, e.g. producing random music, applying rules from music theory or modifying a musical piece
    • 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/40Rhythm
    • 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/076Musical 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 of timing, tempo; Beat detection
    • 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/101Music Composition or musical creation; Tools or processes therefor
    • 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
    • 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
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/325Synchronizing two or more audio tracks or files according to musical features or musical timings

Landscapes

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

Abstract


【課題】 メロディ音の重みおよびその遷移に基づいて、適切にコード名を決定する。
【解決手段】 CPU21は、鍵盤11の一連の操作において進行するメロディシーケンスにおいて、実行中の自動伴奏データの進行を規定する時間情報、特に拍の情報に基づいて、現在の拍の拍頭において押鍵された鍵に関連する現在メロディ音CMと、1つ前の拍である前拍の拍頭において押鍵された鍵に関する先行メロディ音PMとを決定する。また、CPU21は、決定された現在メロディ音情報と、先行メロディ音情報と、前拍におけるコード名である先行コード名PreCHとに基づき、現在コード名CurCHを決定するコード名決定処理を実行する。また、メロディ音の決定に際して、CPU21は、現在の拍が、小節において何番目の拍であるかに基づいて、現在メロディ音CMおよび先行メロディ音PMを決定する。
【選択図】 図2

Description

本発明は、自動伴奏装置および自動伴奏プログラムに関する。
鍵盤を備えた電子楽器では、ピアノやオルガンと同様に主としてメロディを奏する右手および伴奏を奏する左手を用いて弾くのが一般的である。ピアノの奏法では、右手と左手をそれぞれ楽譜等にしたがって独立して動かすための練習が必要である。また、オルガンの奏法でも、左手でコードを構成する複数の鍵を正しく押鍵することが必要である。オルガンの奏法においても、コードを押さえるためには練習を要する。
このようにピアノの奏法およびオルガンの奏法の何れにおいても、右手と左手を同時に動かすためには相応の練習が必要である。特に、メロディを奏するために右手を動かすことは可能であっても、同時に左手を押鍵することが困難と感じる演奏者が、特に初心者では多い。したがって、演奏者が右手でメロディを演奏することで、左手の演奏に相当する伴奏を自動的に作成して、演奏する電子楽器が求められる。
特許第3099436号公報
たとえば、特許文献1には、楽曲の音符データを複数の区間ごとに記憶しておき、音符データの第2の区間のコード名を付与するにあたり、調データ、第2の区間に対応する音符データ、第1の区間の音符データおよび先に第2の区間に付与されているコード名を参照して、新たなコード名を決定する装置が提案されている。
メロディ音は、拍によってその重みが異なり、また、拍内において押鍵された時間的な位置によっても重みが異なる。したがって、その重みを判断して、コード名を決定するのが望ましい。また、単一のメロディ音のみを参照するのではなく、複数のメロディ音の遷移に応じてコード名を決定するのが望ましい。
本発明は、メロディ音の重みおよびその遷移に基づいて、適切にコード名を決定することができる自動伴奏装置および自動伴奏装置のプログラム(自動伴奏プログラム)を提供することを目的とする。
本発明の目的は、少なくとも、コード名、および、拍を含む時間情報に基づいたコード構成音の発音タイミング、を含む自動伴奏データを記憶する記憶手段と、
演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御手段と、
前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコード名を判定するコード名判定手段と、を備えた自動伴奏装置であって、
前記コード名判定手段が、前記演奏操作子の一連の操作において進行するメロディシーケンスにおいて、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において押鍵された鍵に関連する現在メロディ音情報と、1つ前の拍である前拍の拍頭において押鍵された鍵に関する先行メロディ音情報と、を決定するメロディ音決定手段と、
前記メロディ音決定手段において決定された現在メロディ音情報と、先行メロディ音情報と、前記前拍におけるコード名である先行コード名情報とに基づき、現在コード名情報を決定するコード名決定手段と、を有し、
前記メロディ音決定手段が、前記現在の拍が、小節において何番目の拍であるかに基づいて、前記現在メロディ音情報および前記先行メロディ音情報を決定することを特徴とする自動伴奏装置により達成される。
好ましい実施態様においては、前記時間情報には、拍子の情報が含まれ、
前記メロディ音決定手段が、前記時間情報により4拍子であることが示される場合に、現在の拍が、1拍目或いは3拍目であるか、或いは、他の拍であるかに基づいて、前記現在メロディ音情報および前記先行メロディ音情報を決定する。
また、好ましい実施態様においては、前記メロディ音決定手段が、前記前拍の先頭以降の押鍵が、現在の拍まで延びている場合に、シンコペーションであると判断し、前記現在メロディ音情報を、前記現在の拍まで延びている押鍵に関するものに決定する。
別の好ましい実施態様においては、前記コード名決定手段は、前記先行コード名情報がドミナントコードを示し、かつ、前記先行メロディ音情報に示される音から現在メロディ音情報に示される音が、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、前記現在コード名情報として、トニックに相当するコード名を与えるように構成された、第1のドミナントモーション判定手段を有する。
別の好ましい実施態様においては、前記コード名決定手段は、前記先行メロディ音情報に示される音から現在メロディ音情報に示される音が、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、前記現在コード名情報として、トニックに相当するコード名を与えるように構成された、第2のドミナントモーション判定手段を有する。
より好ましい実施態様においては、前記コード名決定手段は、前記第1のドミナントモーション判定手段或いは第2のドミナントモーション判定手段により、前記現在コード名情報としてトニックに相当するコード名が付与されなかった場合に、前記現在コード名情報として、前記先行コード名情報を与える。
また、好ましい実施態様においては、前記現在メロディ音情報が1拍目の押鍵に関する場合に、前記先行メロディ音情報、前記現在メロディ音情報および先行コード名情報に対応付けられたコード名を格納した第1のコードテーブルと、前記現在メロディ音情報が、1拍目以外の押鍵に関する場合に、前記先行メロディ音情報、前記現在メロディ音情報および先行コード名情報に対応付けられたコード名を格納した第2のコードテーブルとを備え、
前記コード名決定手段が、前記現在メロディ音情報が1拍目の押鍵に関する場合に、前記第1のコードテーブルを参照して、取得されたコード名を、前記現在コード名情報として決定し、現在メロディ音情報が1拍目以外の押鍵に関する場合に、前記第2のコードテーブルを参照して、取得されたコード名を、前記現在コード名情報と決定する。
より好ましい実施態様においては、前記第1のコードテーブルおよび前記第2のコードテーブルが、それぞれ、所定の先行メロディ音情報、所定の現在メロディ音情報、および、現在コード名情報に対応付けられたコード名を格納し、
前記コード名決定手段が、前記メロディ音決定手段により決定された先行メロディ音情報および現在メロディ音情報に基づき、前記第1のコードテーブル或いは第2のコードテーブルにおいて、対応するコード名が存在しない場合に、現在コード名情報として無判定コードを付与する無判定コード付与手段を有する。
さらに好ましい実施態様においては、前記第1のコードテーブルおよび前記第2のコードテーブルにおいて、コード名が対応付けられていない他の所定の先行メロディ音情報および他の所定の現在メロディ音情報について、当該他の所定の先行メロディ音情報、他の所定の現在メロディ音情報、および、先行コード名情報に対応付けられた、オーギュメント或いはディミニッシュを示す無判定コードに該当するコード名を格納した無判定コードテーブルを備え、
前記無判定コード付与手段が、前記メロディ音決定手段により決定された先行メロディ音情報および現在メロディ音情報に基づき、前記無判定コードテーブルを参照して、前記無判定コードのコード名を取得し、取得されたコード名を、前記現在コード名情報と決定する。
また、本発明の目的は、少なくとも、コード名、および、拍を含む時間情報に基づいたコード構成音の発音タイミング、を含む自動伴奏データを記憶する記憶手段を備えたコンピュータに、
演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御ステップと、
前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコード名を判定するコード名判定ステップと、を実行させ、
前記コード名判定ステップが、前記演奏操作子の一連の操作において進行するメロディシーケンスにおいて、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において押鍵された鍵に関連する現在メロディ音情報と、1つ前の拍である前拍の拍頭において押鍵された鍵に関する先行メロディ音情報と、を決定するメロディ音決定ステップと、
前記メロディ音決定ステップにおいて決定された現在メロディ音情報と、先行メロディ音情報と、前記前拍におけるコード名である先行コード名情報とに基づき、現在コード名情報を決定するコード名決定ステップと、を有し、
前記メロディ音決定ステップが、前記現在の拍が、小節において何番目の拍であるかに基づいて、前記現在メロディ音情報および前記先行メロディ音情報を決定することを特徴とする自動伴奏プログラムにより達成される。
本発明によれば、メロディ音の重みおよびその遷移に基づいて、適切にコード名を決定することができる自動伴奏装置および自動伴奏装置のプログラム(自動伴奏プログラム)を提供することが可能となる。
図1は、本実施の形態にかかる電子楽器の外観を示す図である。 図2は、本発明の実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。 図3は、本実施の形態にかかる電子楽器において実行されるメインフローの例を示すフローチャートである。 図4は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。 図5は、本実施の形態にかかるコード判定処理の例を示すフローチャートである。 図6は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。 図7は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。 図8は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。 図9は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。 図10は、本実施の形態にかかる第1のドミナントモーション判定処理の例を示すフローチャートである。 図11は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。 図12は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。 図13は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。 図14は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。 図15は、本実施の形態にかかる4拍目対応ノート決定処理の例を示すフローチャートである。 図16は、本実施の形態にかかる4拍目対応ノート決定処理の例を示すフローチャートである。 図17は、本実施の形態にかかる第2のドミナントモーション判定処理の例を示すフローチャートである。 図18は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。 図19は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。 図20は本実施の形態にかかるコード決定処理の例を示すフローチャートである。 図21は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。 図22は、本実施の形態にかかるメロディシーケンステーブルの例を示す図である。 図23は、本実施の形態にかかる第1のコードテーブルの例を示す図である。 図24は、本実施の形態にかかる第2のコードテーブルの例を示す図である。 図25は、本実施の形態にかかるメロディ機能テーブルの一例の部分を示す図である。 図26は、本実施の形態にかかる無判定コードテーブルの一例の部分を示す図である。 図27は、本実施の形態にかかる自動伴奏処理の例を示すフローチャートである。 図28は、楽譜の一例を示す図である。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる電子楽器の外観を示す図である。図1に示すように、本実施の形態にかかる電子楽器10は、鍵盤11を有する。また、鍵盤11の上部には、音色の指定、自動伴奏の開始・終了、リズムパターンの指定などを行なうためのスイッチ(符号12、13参照)や、演奏される楽曲に関する種々の情報、たとえば、音色、リズムパターン、コード名などを表示する表示部15を有する。本実施の形態にかかる電子楽器10は、たとえば、61個の鍵(C2〜C7)を有する。また、電子楽器10は、自動伴奏をオンする自動伴奏モード、および、自動伴奏をオフにする通常モードの2つの演奏モードのうち、何れかの下での演奏が可能である。
図2は、本発明の実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる電子楽器10は、CPU21、ROM22、RAM23、サウンドシステム24、スイッチ群25、鍵盤11および表示部15を備える。
CPU21は、電子楽器10全体の制御、鍵盤11の鍵の押鍵やスイッチ群25を構成するスイッチ(たとえば、図1の符号12、13参照)の操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御、押鍵された楽音の音高にしたがったコード名の決定、自動伴奏パターンおよびコード名にしたがった自動伴奏の演奏など、種々の処理を実行する。
ROM22は、CPU21に実行させる種々の処理、たとえば、スイッチの操作、鍵盤の何れかの鍵の押鍵、押鍵に応じた楽音の発音、押鍵された楽音の音高にしたがったコード名の決定、自動伴奏パターンおよびコード名にしたがった自動伴奏の演奏などのプログラムを記憶する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、および、種々の自動伴奏パターンを示すデータ(自動伴奏データ)を格納した自動伴奏パターンエリアを有する。RAM23は、ROM22から読み出されたプログラムや、処理の過程で生じたデータを記憶する。なお、本実施の形態において、自動伴奏パターンは、メロディ音およびオブリガート音を含むメロディ自動伴奏パターン、コード名ごとの構成音を含むコード自動伴奏パターン、並びに、ドラム音を含むリズムパターンを有する。たとえば、メロディ自動伴奏パターンのデータのレコードは、楽音の音色、音高、発音タイミング(発音時刻)、音長などを含む。コード自動伴奏パターンのデータのレコードは、上記情報に加えて、コード構成音を示すデータを含む。また、リズムパターンのデータは、楽音の音色、発音タイミングを含む。
サウンドシステム24は、音源部26、オーディオ回路27およびスピーカ28を有する。音源部26は、たとえば、押鍵された鍵についての情報或いは自動伴奏パターンについての情報をCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部26は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路27は、楽音データをD/A変換して増幅する。これによりスピーカ28から音響信号が出力される。
本実施の形態にかかる電子楽器10は、通常モードの下においては、鍵盤11の鍵の押鍵に基づいて楽音を発生する。その一方、電子楽器10は、自動伴奏スイッチ(図示せず)が操作されることにより、自動伴奏モードとなる。自動伴奏モードの下では、鍵の押鍵により、その鍵の音高の楽音が発生する。また、押鍵された鍵の音高に基づいてコード名が決定され、そのコード名のコード構成音を含む自動伴奏パターンにしたがった楽音が発生する。なお、自動伴奏パターンは、ピアノやギターなど音高の変化を伴うメロディ自動伴奏パターン、コード自動伴奏パターンと、バスドラム、スネアドラム、シンバルなど音高の変化を伴わないリズムパターンとを含む。以下、電子楽器10が、自動伴奏モードの下で動作する場合について説明する。
以下、本実施の形態にかかる電子楽器10において実行される処理についてより詳細に説明する。図3は、本実施の形態にかかる電子楽器において実行されるメインフローの例を示すフローチャートである。なお、図示しないが、メインフローの実行中に、所定の時間間隔で、割込カウンタのカウンタ値をインクリメントするタイマインクリメント処理も実行される。
図3に示すように、電子楽器10のCPU21は、電子楽器10の電源が投入されると、RAM23中のデータや、表示部15の画像のクリアクリアを含むイニシャル処理(初期化処理)を実行する(ステップ301)。イニシャル処理(ステップ301)が終了すると、CPU21は、スイッチ群25を構成するスイッチのそれぞれの操作を検出し、検出された操作にしたがった処理を実行するスイッチ処理を実行する(ステップ302)。
たとえば、スイッチ処理(ステップ302)においては、音色指定スイッチや、自動伴奏パターンの種別の指定スイッチ、自動伴奏パターンのオン・オフの指定スイッチなど、種々のスイッチの操作が検出される。自動伴奏パターンがオンとなったときには、CPU21は、演奏モードを、自動伴奏モードに切り換える。演奏モードを示すデータは、RAM23の所定の領域に指定される。音色や自動伴奏パターンの種別を示すデータも、同様に、RAM23の所定の領域に格納される。
次いで、CPU21は、鍵盤処理を実行する(ステップ303)。図4は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。鍵盤処理において、CPU21は、鍵盤11の鍵を走査する。鍵の走査結果であるイベント(鍵オン或いはオフ)は、そのイベントが生じた時刻の情報とともに、RAM23に一時的に記憶される。CPU21は、RAM23に記憶された鍵の走査結果を参照して(ステップ401)、ある鍵についてイベントが有るか否かを判断する(ステップ402)。ステップ402でYesと判断された場合には、CPU11は、イベントが鍵オンであるか否かを判断する(ステップ403)。
ステップ403でYesと判断された場合には、CPU21は、当該鍵オンがあった鍵について発音処理を実行する(ステップ404)。発音処理においては、CPU21は、RAM23に記憶されていたメロディ鍵用の音色データ、および、鍵の音高を示すデータを読み出してRAM23に一時的に記憶する。後述する音源発音処理(図3のステップ306)において、音色や音高を示すデータは音源部26に与えられる。音源部26は、音色および音高を示すデータにしたがって、ROM22の波形データを読み出して、所定の音高の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。
その後、CPU21は、鍵オンがあった鍵についての音高情報(たとえば鍵番号)および押鍵タイミング(たとえば押鍵時刻)をRAM23に格納する(ステップ405)。押鍵タイミングは、割り込みカウンタのカウンタ値に基づいて算出することができる。
ステップ403でNoと判断された場合には、イベントが鍵オフであったことになる。したがって、CPU21は、鍵オフになった鍵についての消音処理を実行する(ステップ406)。消音処理においては、CPU21は、消音すべき楽音の音高を示すデータを生成し、RAM23に一時的に記憶する。この場合にも、後述する音源発音処理(ステップ306)において、消音すべき楽音の音色および音高を示すデータが、音源部26に与えられる。音源部26は、与えられたデータに基づいて、所定の楽音を消音する。その後、CPU21は、鍵オフがあった鍵について、押鍵されていた時間(押鍵時間)をRAM23に格納する(ステップ407)。
CPU21は、全ての鍵イベントについて処理が終了したかを判断する(ステップ408)。ステップ408でNoと判断された場合には、ステップ402に戻る。
鍵盤処理(図3のステップ303)が終了すると、CPU21は、コード判定処理を実行する(ステップ304)。図5は、本実施の形態にかかるコード判定処理の例を示すフローチャートである。本実施の形態においては、概略的には、現在発音されているメロディ音を、現在メロディ音(Current Melody)CM、それより1つ前に発音されているメロディ音を、先行メロディ音(Previous Melody)PM、現在より一つ前に演奏されていたコード名を、先行コード名(Previous CHord name)PreCHとして、現在メロディ音CM、先行メロディ音PMおよび先行コード名PreCHに基づいて、新たに発音すべき現在コード名(Current CHord name)CurCHを決定している。なお、本実施の形態においては、楽曲の調性をハ長調(CMaj)或いはイ短調(Amin)として、コード名については、IMaj、IIなど、主音に対する度数で表し、そのデータをRAM23などに記憶している。他の調性の場合には、当該調性のルート音と、「C」(或いは「A」)の音との音高差に基づいて、ルート音を伴うコード名を得ることが可能である。
ただし、押鍵が何拍目に行なわれたかなど、押鍵された時間的な位置や、押鍵が拍の頭であるか否か、或いは、複数の押鍵による音型(持続、順次進行、跳躍など)に基づいて、上記現在メロディ音CMおよび先行メロディ音PMを決定すべき場合がある。つまり、現実に現在押鍵されている鍵以外の押鍵について現在メロディ音CMとすべき場合や、現在押鍵された鍵の1つ前に押鍵された鍵以外の押鍵について先行メロディ音PMとすべき場合がある。以下、コード判定処理において、ステップ504〜510は、主として、現在メロディ音CMおよび先行メロディ音PMの決定に関する。引き続いて実行されるステップ511が、現在メロディ音CM、先行メロディ音PMおよび先行コード名PreCHに基づいて、具体的に現在コード名CurCHを決定する処理となる。
まず、CPU21は、現在時刻が属する拍の情報および押鍵情報(鍵オンの時刻や鍵オフまでの時間)を特定して、現在の拍において押鍵された鍵を特定し、かつ、現在時刻が属する拍の一つ前の区間(前拍区間)において、押鍵されていた鍵の情報を取得する(ステップ501)。ステップ501において、現在の拍における押鍵された鍵の情報が、現在メロディ音CMの初期値、前拍区間の先頭で押鍵された鍵の情報が、先行メロディ音PMの初期値となる。
次いで、CPU21は、拍の情報および押鍵情報に基づいて、現在時刻が属する拍の先頭に押鍵中の鍵が存在しているかを判断する(ステップ502)。ステップ503でNoと判断された場合には、コード名判定処理が終了する。ステップ502でYesと判断された場合には、CPU21は、現在コード名CurCHを、先行コード名PreCHにコピーする(ステップ503)。
CPU21は、後述するコードテーブルを指定するテーブル指定情報を、第2のコードテーブルを指定する情報に設定する(ステップ504)。コードテーブルには、主として押鍵が1拍目であるときに用いる第1のコードテーブルと、それ以外のときに用いる第2のコードテーブルが含まれ、それぞれROM22に格納されている。テーブル指定情報は、第1のコードテーブル或いは第2のコードテーブルの何れを用いるかを示す情報であり、RAM23に格納される。
次いで、押鍵された鍵の時間的位置、つまり、鍵が何拍目に押鍵されたかを判断する(ステップ505、506、508)。押鍵が1拍目である場合(ステップ505でYes)或いは押鍵が3拍目である場合(ステップ506でYes)には、CPU21は、1拍目・3拍目対応ノート決定処理を実行する(ステップ507)。押鍵が2拍目である場合(ステップ508でYes)には、2拍目対応ノート決定処理を実行する(ステップ509)。また、ステップ508でNoと判断された場合、つまり、押鍵が4拍目である場合には、4拍目対応ノート決定処理を実行する(ステップ510)。
本実施の形態においては、楽曲は4分の4拍子であり、1小節が4拍で構成される。押鍵がn拍目であることは、押鍵のタイミングが、第n拍の先頭以降で、第(n+1)拍の先頭よりも時間的に早いことを意味している。
楽曲の構成要素には拍子および拍という概念がある。また、拍子においては拍ごとに重みがあり、上記拍の重みを考慮してメロディは進行する。また、シンコペーションなど、場合によって拍の重みが移動する場合もある。本実施の形態においては、拍の重みを考慮して、最適なメロディの流れを構成する構成音を抽出し、コード判定に用いるのに最適な現在メロディ音CMおよび先行メロディ音PMを特定する。
図6〜図9は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。図6に示すように、押鍵が1拍目に関するものであるかを判断する(ステップ601)。ステップ504でYesと判断された場合には、CPU21は、テーブル指定情報を、第1のテーブルを示す情報に変更する(ステップ602)。次いで、CPU12は、第1のドミナントモーション判定処理を実行する(ステップ603)。
ドミナントモーション判定処理は、メロディの流れからドミナントモーション(つまり、属和音(ドミナント)から主和音(トニック)への進行)を抽出するものである。本実施の形態においては、処理においてコード名を考慮した第1のドミナントモーション判定処理と、コード名を考慮しない第2のドミナントモーション判定処理とが用いられる。図10は、本実施の形態にかかる第1のドミナントモーション判定処理の例を示すフローチャートである。
図10に示すように、CPU21は、RAM23に格納された先行コード名PreCHが、メジャー系のドミナントコードのいずれかに対応するかを判断する(ステップ1001)。ここで、本実施の形態にかかる第1のドミナントモーション判定処理においては、たとえば、メジャー系のドミナントコードは、「VMaj」、「V」および「VIIm7 (−5)」としている。ステップ1001でYesと判断された場合には、CPU21は、(先行メロディ音PMおよび現在メロディ音CMの値の組である(PM,CM)が、(F,E)、(B,C)、(D,C)の何れかであるかを判断する(ステップ1002)。ステップ1002では、先行メロディ音PMから現在メロディ音CMへの動きが、長調の和音進行でドミナントからトニックに解決するときの動きであるか否かを判断している。
ステップ1002でYesと判断された場合には、CPU21は、現在コード名CurCHを「IMaj」に決定し、その情報をRAM23に格納する(ステップ1003)。その後、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納する(ステップ1004)。ステップ1001でNo或いはステップ1002でNoと判断された場合には、CPU21は、先行コード名PreCHが、マイナー系のドミナントコードの何れかに対応するかを判断する(ステップ1005)。ここで、本実施の形態において、たとえば、マイナー系のドミナントコードは、「IIIMaj」および「III」としている。
ステップ1005でYesと判断された場合には、CPU21は、(PM,CM)が、(G#,A)、(B,A)、(D,C)の何れかであるかを判断する(ステップ1006)。ステップ1006においては、先行メロディ音PMから現在メロディ音CMへの動きが、短調の和音進行でドミナントからトニックに解決するときの動きであるか否かを判断している。ステップ1006でYesと判断された場合には、CPU21は、現在コード名CurCHを「VImin」に決定し、その情報をRAM23に格納する(ステップ1007)。その後、ステップ1004に進む。
ステップ1005でNoと判断された場合、或いは、ステップ1006でNoと判断された場合には、CPU21は、ドミナントモーション処理において第2の判定結果であったことを示す情報をRAM23に格納する(ステップ1008)。
ステップ603の第1のドミナントモーション判定処理が終了すると、CPU21は、第1のドミナントモーション判定処理の結果が、第2の処理結果であったかを判断する(ステップ604)。ステップ604でNoと判断された場合、つまり、第1のドミナントモーション判定処理の結果が、第1の処理結果であった場合には、先行メロディ音PMおよび現在メロディ音CMを初期値から変更することなく、RAM23に格納して、処理を終了する(ステップ605)。ステップ604でYesと判断された場合には、CPU21は、RAM23に格納された押鍵情報を参照して、現在時刻に対応する拍の直前拍に押鍵があったかを判断する(ステップ606)。
ステップ604でYesと判断された場合には、CPU21は、RAM23の押鍵情報を参照して、直前拍先頭以降にも押鍵があったかを判断する(ステップ607)。ステップ607でNoと判断されたことは、直前拍および今回の拍でそれぞれ4分音符が押鍵されたことを意味する。この場合の処理については後述する。ステップ607でYesと判断された場合には、CPU21は、RAM23に格納された押鍵情報中、直前拍先頭以降に押鍵された鍵の発音時間を参照して、現在まで発音中であるかを判断する(ステップ609)。ステップ609では、拍頭の押鍵ではなくても、それが直前拍先頭以降に押鍵されかつ維持されているものであれば、シンコペーションに該当するため、シンコペーションに該当する押鍵があったかを判断している。
ステップ609でYesと判断された場合には、先行メロディ音PMは初期値のまま、その一方、直前拍先頭以降に押鍵された鍵を現在メロディ音CMとするとともに、シンコペーションフラグSYNを「1」にセットして、RAM23に格納する(ステップ610)。先行メロディ音PMおよび現在メロディ音CMは、RAM23に格納される。シンコペーションに該当する押鍵は、拍頭における押鍵と同様の重みを有するため、拍頭と同様に扱われる。
次に、図7を参照して、ステップ606でNoであった場合について説明する。ステップ606でNoと判断された場合には、CPU21は、現在の拍先頭における押鍵が曲開始音に該当するかを判断する(ステップ701)。ステップ701は、CPU21が、AM23に格納された押鍵情報を参照して、最初の押鍵情報であるかを判断することにより実現できる。ステップ701でYesと判断された場合には、先行メロディ音PMとして、現在メロディ音CMを与える。また、現在メロディ音CMを初期値から変更することはないが、CPU21は、テーブル指定情報を第2のコードテーブルを指定する情報に変更する(ステップ702)。
ステップ701でNoと判断された場合には、8拍以上の時間、押鍵が無いかを判断する(ステップ703)。ステップ703でYesと判断された場合には、CPU21は、現在メロディ音CMは初期値のまま維持し、その一方、先行メロディ音PMとして、現在メロディ音CMを与え、RAM23に情報を格納する(ステップ704)。ステップ703でYesと判断される場合は、2小節以上、新たな押鍵が無いことになる。この場合には、メロディシーケンスの意味が薄くなるため、2小節以上前に押鍵された先行メロディ音PMの初期値は無視することとしている。ステップ703でNoと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを初期値のまま維持する(ステップ705)。
次に、図8を参照して、ステップ607でNoと判断された場合について説明する。ステップ607でNoと判断された場合には、CPU21は、現在メロディ機能(CurrentMelodyFunction:CMF)が、非和声音(OtherTone:OT)であるかを判断する(ステップ801)。ここに、現在メロディ機能CMFは、先行コード名PreCHに対する現在メロディ音CMの機能を示す。本実施の形態において、CMFは、現在メロディ音CMが、先行コード名PreCHのコード構成音であることを示すコードトーン(ChordTone:CT)、現在のスケール(調性)の構成音であることを示すスケールノート(ScaleNote:CN)、その他の音(非和声音)を示すアザートーン(OtherTone)の何れかとなる。
より具体的には、コード名と音名との間を関連付けたメロディ機能テーブルをROM22に格納し、CPU21が、現在メロディ音CMおよび先行コード名PreCHの組に対応付けられた値を参照して、現在メロディ機能を判断している。図25は、本実施の形態にかかるメロディ機能テーブルの一例の部分を示す図である。図25に示すように、メロディ機能テーブル2500においては、現在メロディ音CMと先行コード名PreCHからなる値の組に対応して、所定の値が取得できるようになっている。図25において、メロディ機能テーブル2500中、CTはコードトーンを示し(たとえば、符号2501〜2503参照)、SNは、スケールノートを示す(たとえば、符号2511〜2513参照)。また、図25においては、メロディ機能テーブル2500中、何も記載されていない欄(たとえば、符号2521、2522参照)は、アザートーンを示す。
ステップ801でYesと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを、初期値のまま維持する(ステップ802)。その一方、ステップ801でNoと判断された場合には、CPU21は、現在メロディ機能CMFがスケールノートSNであるかを判断する(ステップ803)。ステップ803でYesと判断された場合には、CPU21は、先行メロディ音PMと現在メロディ音CMとの差が2半音以内であるかを判断する(ステップ804)。ステップ804では、いわゆる順次進行であるかが判断されている。ステップ804でYesと判断された場合、または、ステップ803でNoと判断された場合には、第1のドミナントモーション処理を実行する(ステップ805)。
次いで、CPU21は、第1のドミナントモーション判定処理(ステップ805)において、第2の判定結果であるかを判断する(ステップ806)。ステップ806でNoと判断された場合、つまり、第1の判定結果である場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを、初期値のまま維持する(ステップ802)。ステップ806でYesと判断された場合には、CPU21は、現在の押鍵、つまり、処理対象となっている押鍵が1拍目のものであるかを判断する(ステップ803)。ステップ803でYesと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを、初期値のまま維持する(ステップ808)。
その一方、ステップ807でNoと判断された場合、つまり、処理対象となっている押鍵が3拍目のものであれば、CPU21は、先行メロディ音PMとして、初期的な先行メロディ音PMよりさらに1つ前に押鍵された音高PPMを与える(ステップ809)。なお、現在メロディ音CMは初期値が維持される。これは、3拍目で順次進行を構成する楽音は、装飾的な音である可能性が高く、メロディラインを支配する本来の楽音は、さらにその一拍前の楽音とすることが適切であると考えられるからである。
次に、ステップ609でNoと判断された場合について説明する。図9に示すように、CPU21は、直前拍における拍頭以降の押鍵音を特定し(ステップ901)、特定された押鍵音の音高が、初期的なCMと同一であるかを判断する(ステップ902)。ステップ902でYesと判断された場合には、CPU21は、現在メロディ音CMを初期的な状態で維持し、その一方、先行メロディ音PMとして、現在メロディ音CMの値を与える(ステップ903)。たとえば、直前拍において、8分音符で「D」、「C」という順でメロディが進行し、現在の拍での押鍵が「C」であった場合を考える。この場合には、直前拍の最初の「D」の音は装飾音であると考えて、「D」から「C」というシーケンスではなく、「C」から「C」というシーケンスが適当であると考えている。このため、先行メロディ音を、現在メロディ音と同じにして、同じ音の連続としている。
ステップ902でNoと判断された場合には、CPU21は、特定された拍頭以降の押鍵音が、全て、先行メロディ音PMと等しいかを判断する(ステップ904)。ステップ904でYesと判断された場合には、ステップ803に進む。たとえば、直前拍において、16分音符で、「D」、「C」、「C」、「C」という4つの押鍵がなされたと考える。この場合には、拍頭であるからといって「D」は、装飾的な音であることも考えられるため、拍頭の押鍵である「D」を、先行メロディ音PMとすべきではない場合もある。そこで、ステップ803以降の処理を実行している。
その一方、ステップ904でNoと判断された場合には、CPU21は、先行メロディ音PMおよび現在メロディ音CMを、初期値のまま維持する(ステップ905)。
次に、2拍目対応ノート決定処理(ステップ509)について説明する。図11〜図14は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。図11に示すように、CPU21は、1拍目に押鍵が無かったかを判断する(ステップ1101)。ステップ1101でYesと判断された場合、つまり、押鍵が゛無かった場合には、CPU21は、テーブル指定情報を第1のコードテーブルを指定する情報に変更する(ステップ1101)。たとえば、曲の途中で、前の小節の音が延び、1拍目が休符で、2拍目から次のフレーズが開始されるときには、本実施の形態では、2拍目で押鍵された音が1拍目と同様の重みがあると考え、1拍目用のコードテーブルだえる第1のコードテーブルを使用するようにしている。
2拍目対応ノート処理では、1拍目・3拍目対応ノート決定処理の第1のドミナントモーション判定処理(ステップ603)およびその判定結果に基づく処理(ステップ604、605)が省略されている。ステップ1103〜ステップ1107は、それぞれ、図6のステップ606〜610と同様である。
また、図12は、ステップ1103でNoと判断された場合に実行される処理である。ステップ1201、ステップ1203〜1205は、それぞれ、図7のステップ701、ステップ703〜705と同様である。また、ステップ1202では、テーブル指定情報の変更が伴わないことを除き、図7のステップ702と同様である。
次に、ステップ1104でNoと判断された場合について説明する。図13に示すように、CPU21は、現在メロディ機能CMFが、非和声音OTであるかを判断する(ステップ1301)。ステップ1301およびステップ1301でYesの場合に進むステップ1302は、図8のステップ801、802と同様である。
ステップ1301でNoと判断された場合には、CPU21は、先行コード名PreCHが無判定コード以外のコードであるかを判断する(ステップ1303)。図21(特にステップ2105)において説明するように、無判定コードについては、先の処理で転調フラグが「1」以上の値となっている。そこで、ステップ1303では、RAM23に格納された転調フラグが「1」以上であるかを判断すれば良い。
ステップ1303でNo、つまり、先行コード名PreCHが無判定コードである場合には、CPU21は、先行メロディン音PMとして、現在メロディ音CMを与える(ステップ1304)。その一方、ステップ1303でYesと判断された場合、つまり、先行コード名PreCHが無判定コード以外である場合には、現在メロディ機能CMFがスケールノートSNであるかを判断する(ステップ1305)。ステップ803でYesと判断された場合には、CPU21は、先行メロディ音PMと現在メロディ音CMとの差が2半音以内であるかを判断する(ステップ1306)。ステップ1305およびステップ1306は、図8のステップ803および804と同様である。ステップ1305でNoと判断された場合、或いは、ステップ1306でYesと判断された場合には、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与える(ステップ1307)。つまり、先行コード名PreCHが保持されることになる。
2拍目や4拍目においては、先行コード名が維持されるコードホールドが行なわれる場合があるため、適切なコードホールドを実現している。本実施の形態では、現在メロディ機能CMFがコードトーン(CT)である場合、或いは、現在メロディ機能CMFがスケールノート(SN)であり、かつ、順次進行である場合には、コードホールドを行なっている。4拍子の楽曲では、2拍目および4拍目は弱拍である。したがって、メロディが弱拍を強調するものでない限り、基本的に、2拍目および4拍目のコードは、1拍目および3拍目のコードを維持している。
たとえば、図28に示す楽曲では、拍頭に「C」、「D」、「E」、「F」、「E」、「D」、「C」という音があり、この音のシーケンスは順次進行となっている。実際には、このシーケンスに適切なコード名は、IMaj(CMaj)である。しかしながら、ステップ1305〜ステップ1307に示す処理を実行しないと、2拍目や4拍目では、コード名がIMaj(CMaj)以外になってしまう。そこで、ステップ13056〜1306に示すように一定の条件の下では、コードホールドを行なって、適切なコード名を得られるようにしている。
ステップ1307の後、CPU21は、RAM23中のコード決定フラグを「1」にセットする(ステップ1308)。この場合には、ステップ1307で既に現在コード名CurCHが決定されるため、後続するコード決定の処理を要さないからである。
また、ステップ1306でNoと判断された場合には、ステップ1302に進み、先行メロディ音PMおよび現在メロディ音CMが維持される。
ステップ1106でNoと判断された場合の処理は、図14に示される。図14のステップ1401〜ステップ1405は、図9のステップ901〜905と同様である。ステップ1404でYesと判断された場合には、図10のステップ1305に進み、コードホールドが判断される。
次に、4拍目対応ノート決定処理(ステップ510)について説明する。図15〜図16は、本実施の形態にかかる4拍目対応ノート決定処理の例を示すフローチャートである。4拍目対応ノート決定処理は、2拍目対応ノート決定処理と類似する。
図15に示すように、4拍目対応ノート決定処理においては、1拍目の押鍵の有無およびそれに伴う処理(図11のステップ1101〜1102)は省略されている。図15において、ステップ1501〜1505は、図11のステップ1103〜1107と同様である。また、ステップ1501でYesと判断された場合には、図12の処理が実行される。
ステップ1502でNoと判断された場合には、図16に示す処理が実行される。図16において、ステップ1601〜1606は、図13のステップ1301〜1306と同様である。4拍目対応ノート処理においては、ステップ1605でNo或いはステップ1606でYesと判断されたときに、さらに、第2のドミナントモーション判定処理(ステップ1607)を実行し、その結果に基づいて、コードホールドと行なうべきかを判断している。
図17は、本実施の形態にかかる第2のドミナントモーション判定処理の例を示すフローチャートである。第2のドミナントモーション判定処理では、メロディ音の遷移のみが判断され、先行コード名PreCHのコード種別は考慮されない。図17に示すように、CPU21は、(PM,CM)が、(F,E)、(B,C)、(D,C)の何れかであるかを判断する(ステップ1701)。これは、図10のステップ1002と同様である。ステップ1701でNoと判断された場合には、CPU21は、(PM,CM)が、(G#,A)、(B,A)、(D,C)の何れかであるかを判断する(ステップ1703)。これは、図10のステップ1006と同様である。
ステップ1701でYesと判断された場合、或いは、ステップ1703でYesと判断された場合には、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納する(ステップ1702)。その一方、ステップ1703でNoと判断された場合には、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納する(ステップ1704)。
第2のドミナントモーション判定処理により第2の判定結果となった場合(ステップ1608でYes)には、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与える(ステップ1609)。つまり、先行コード名PreCHが保持されることになる。次いで、CPU21は、RAM23中のコード決定フラグを「1」にセットする。その一方、ステップ1608でYesと判断された場合には、ステップ1602に進み、先行メロディ音PMおよび現在メロディ音CMが維持される。
ステップ1504でNoと判断された場合には、図14に示す処理が実行される。
ステップ507、509、510に示す、拍のそれぞれに対応したノート決定処理が終了すると、処理により修正された先行メロディ音PMおよび現在メロディ音CMに基づいて、コード決定処理が実行される(ステップ511)。図18〜図21は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。
図18に示すように、CPU21は、コードホールドにより既に現在コード名CurCHが決定され、コード決定フラグが「1」ではないかを判断する(ステップ1801)。ステップ1801でNoと判断された場合、つまり、コード決定フラグが「1」である場合には、CPU21は、現在コード名CurCHおよびその発音時刻をRAM23の所定の領域に格納する(ステップ1905)。
ステップ1801でYesと判断された場合、つまり、コード決定フラグが「1」ではない場合には、CPU21は、RAM23から先行メロディ音PMおよび現在メロディ音CMを取得する(ステップ1802)。CPU21は、先行メロディ音PMが曲開始音であるかを判断する(ステップ1803)。ステップ1803においては、たとえば、先行メロディ音PMよりさらに前の時刻に押鍵された音が存在しないことを判断すれば良い。ステップ1803でNoと判断された場合には、CPU21は、先行コード音PreCHが無判定コードであるかを判断する(ステップ1804)。
ステップ1803でYesと判断された場合、或いは、ステップ1804でYesと判断された場合には、CPU21は、先行メロディ音PMとして、現在メロディ音CMを与える(ステップ1805)。ステップ1804でYesと判断された場合には、先行コード名PreCHが無判定コードであるため、新たにメロディシーケンスが開始する方が妥当であるからである。
次いで、CPU21は、メロディシーケンステーブルを参照して(PM,CM)に対応する値の組を取得する(ステップ1806)。図22は、本実施の形態にかかるメロディシーケンステーブルの例を示す図である。図22に示すように、メロディシーケンステーブル2200には、所定の先行メロディ音PMおよび現在メロディ音CMについて値の組が格納されている。(PM,CM)に対応する値の組がメロディシーケンステーブル2200中に存在すれば、その値の組を一時的にRAM23に格納すれば良い。その一方、(PM,CM)に対応する値の組が、メロディシーケンステーブル2200中に存在しなければ、値の組が存在しないことを示す情報をRAM23に格納すれば良い。
次に、CPU21は、現在メロディ音CMの直前に押鍵された音(CM直前音)を特定する(ステップ1807)。ここにいう直前に押鍵された音は、実際に直前に押鍵された音であり、先行メロディ音PMと同一ではない場合もある。CPU21は、ステップ1807で特定されたCM直前音と、現在メロディ音CMとを比較して、これらの音高差が5半音以上であるかを判断する(ステップ1808)。ステップ1808でYesと判断された場合には、CPU21は、現在メロディ音CMが1拍目の押鍵に関するものであるかを判断する(ステップ1809)。
メロディシーケンスにおいては、核となるべきメロディ音が含まれ、その前後には、核となるメロディ音を装飾するメロディ音が存在する場合がる。装飾するメロディ音は、核となるメロディ音からそれほど音高差が無いのが通常である。その一方、音高差が一定範囲(たとえば4度程度)以上となるように跳躍する場合には、跳躍した後の音に比較的重みが大きくなる場合が多い。そこで、ステップ1808で、音高差を判断して、その差に基づいて異なる処理を行なっている。
ステップ1809でYesと判断された場合には、CPU21は、先行コード名PreCHが2小節以上継続しているかを判断する(ステップ1901)。ステップ1901でYesと判断された場合には、CPU21は、第1のコードテーブルのうち、種別として「jump2」の欄を参照することを決定し、第1のコードテーブル中の所定のコード名を取得する(ステップ1902)。その一方、ステップ1902でNoと判断された場合には、CPU21は、第1のコードテーブルのうち、種別として「jump1」の欄を参照することを決定し、第1のコードテーブル中の所定のコード名を取得する(ステップ1903)。
図23は、本実施の形態にかかる第1のコードテーブルの例を示す図である。図23においては、第1のコードテーブルの一部を示している。図23に示すように、コードテーブル2300では、少なくとも、先行コード名の機能(先行コード機能(PreviousChordFunction):符号2310参照)および(先行メロディ音PM,現在メロディ音CM)の組(たとえば、符号2301、2302参照)に基づいて、コード名が決められるようになっている。
さらに、本実施の形態においては、「ジャンプなし」、「jump1」および「jump2」という3つの種別(符号2311参照)を設け、先行コード機能、(先行メロディ音PM,現在メロディ音CM)の組および種別に基づいて、コード名が決定されるようになっている。
先行コード機能は、トニック(TO)、サブドミナント(SU)およびドミナント(DO)の3つがある。トニックに該当するコード名として、「IMaj」、「IM7」、「IIImin」、「IIIm7」、「VImin」、「VIm7」がある。サブドミナントに該当するコード名として、「IImin」、「IIm7」、「IIm7 (−5)」、「IVMaj」、「IVM7」、「IVmin」、[IVmM7]がある。また、ドミナントに該当するコード名として、「IIIMaj」、「III」、「III7sus4」、「VMaj」、「V」、「V7sus4」、「VIIm7 (−5)」がある。先行コード機能ごとの該当するコード名は、たとえば、RAM23に予め格納されている。
また、種別において「jump2」は、メロディシーケンスにおける跳躍および先行コード名の継続を考慮して、コードの変化の程度を大きくしている。その一方、「jump1」では、「jump2」の場合よりも、コード変化の度合いが小さい。また、「ジャンプなし」という種別は、後述するように、第1のコードテーブルを使用する場合でも、「jump1」或いは「jump2」の種別が無い場合に使用されるものである。
たとえば、先行コード名PreCHの先行コード機能が「トニック」であり、かつ、(先行メロディ音PM,現在メロディ音CM)=(C,G)であり、種別が「jump2」であれば、第1のコードテーブルから「VMaj」(符号2321参照)が取得される。また、先行コード名PreCHの先行コード機能が「トニック」であり、かつ、(先行メロディ音PM,現在メロディ音CM)=(C,G)であり、種別が「jump1」であれば、第1のコードテーブルから「IMaj」(符号2322参照)が取得される。
CPU21は、現在コード名CurCHとして、第1のコードテーブルから特定されたコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納する(ステップ1904、1905)。
次に、ステップ1808でNo或いはステップ1809でNoと判断された場合について説明する。CPU21は、現在メロディ音CMが、先行コード名PreCHのコードトーン(CT)であるかを判断する(ステップ2001)。ステップ2001でYesと判断された場合には、CPU21は、先行コード名PreCHの楽音の発音時刻および現在時刻に基づき、先行コード名PreCHの発音時間が2拍以内であるかを判断する(ステップ2002)。ステップ2002でYesと判断された場合には、CPU21は、さらに、シンコペーションフラグが「1」であるかを判断する(ステップ2003)。
ステップ2003でNoと判断された場合には、CPU21は、第2のドミナントモーション処理を実行して(ステップ2005)、先行メロディ音PMから現在メロディ音CMへの移行がドミナントモーションであるかを判断する。第2のドミナントモーション処理の結果が第2の判定結果である場合(ステップ2005でYes)には、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与える(ステップ2006)。つまり、先行コード名PreCHが保持されることになる。
ステップ2001でNo、ステップ2002でNo、或いは、ステップ2005でNoと判断された場合には、CPU21は、(先行メロディ音PM,現在メロディ音CM)に対応する値の組が、メロディシーケンステーブル中に存在していたかを判断する(ステップ2007)。図18のステップ1806において、値の組或いは値の組が存在しないことを示す情報がRAM23に格納されているため、その情報を参照することにより、ステップ2007の判断が可能である。
ステップ2007でYesと判断された場合には、現在メロディ音CMが、1拍目或いは2拍目に関するものであり、かつ、テーブル指定情報は第1のテーブルを示しているかを判断する(ステップ2008)。ステップ2008でYesと判断された場合には、CPU21は、第1のコードテーブルのうち、種別として「ジャンプなし」の欄を参照することを決定し、第1のコードテーブルにおいて、所定のコード名を取得する(ステップ2009)。これに対して、ステップ2008でNoと判断された場合には、CPU21は、第2のコードテーブルを参照することを決定し、第2のコードテーブルにおいて、所定のコード名を取得する(ステップ2010)。
図24は、本実施の形態にかかる第2のコードテーブルの例を示す図である。図24においては、第2のコードテーブルの一部を示している。図24に示すように、コードテーブル2300では、先行コード名の機能(先行コード機能(PreviousChordFunction):符号2410参照)および(先行メロディ音PM,現在メロディ音CM)の組(たとえば、符号2401、2402参照)に基づいて、コード名が決められるようになっている。たとえば、先行コード名PreCHの先行コード機能が「サブドミナント」であり、かつ、(先行メロディ音PM,現在メロディ音CM)=(C,G)であれば、第2のコードテーブルから「VMaj」(符号2421参照)が取得される。
その後、CPU21は、現在コード名CurCHとして、第1のコードテーブル或いは第2のコードテーブルから特定されたコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納する(ステップ2011、1905)。
ステップ2007においてYesと判断される場合は、メロディシーケンステーブルに、(先行メロディ音PM,現在メロディ音CM)の組が存在したため、コードテーブルを参照することで適切なコード名が取得されている。その一方、ステップ2007でNoと判断された場合には、転調或いは一時的な無判定コードの決定などが行なわれる。ステップ2007でNoと判断された場合には、CPU21は、現在メロディ音CMの発音時間(押鍵時間)が4分音符より大きいか、つまり、1拍より長く発音されているかを判断する(ステップ2101)。
ステップ2101でNoと判断された場合には、CPU21は、先行コード名PreCHを変更せず、そのまま現在コードCurCHとする(ステップ2107)。ステップ2101でNoとなる場合は、演奏者が意図して押鍵したのではなく、ミスタッチによって誤った鍵を押鍵してしまった可能性が高い。そこで、この場合は、コード名を変更することなく、先行コード名PreCHをそのまま現在コード名CurCHとする。
ステップ2101でYesと判断された場合には、CPU21は、現在メロディ音の発音時間(押鍵時間)が、3拍以下であるかを判断する(ステップ2102)。ステップ2102でYesと判断された場合には、転調フラグが「2」以下であるかを判断する。ステップ2103でYesと判断された場合には、CPU21は、RAM23に格納される転調フラグの値をインクリメントする(ステップ2105)。ステップ2102でNo或いはステップ2103でNoと判断された場合には、CPU21は、転調処理を実行する(ステップ2104)。
本実施の形態においては、基本的には、現在メロディ音CM、先行メロディ音PMを含むメロディ音は、「C」のスケール(調性)で処理される。したがって、転調処理では、転調後の調性と「C」との音高差が算出され、その音高差をオフセットとしてRAM23に格納すれば良い。転調処理以後は、実際に押鍵された鍵番号により特定される音名をオフセットだけ減じることで、「C」の調性で処理を続行することが可能となる。
ステップ2105の後、CPU21は、現在メロディ音CMが、先行コード名PreCHのコードトーン(CT)或いはスケールノート(SN)であるかを判断する(ステップ2106)。ステップ2106においては、ステップ801と同様に、CPU21は、メロディ機能テーブルを参照して、現在メロディ音CMおよび先行コード名PreCHの組に対応付けられた値が、コードトーン或いはスケールノートであるかを判断すれば良い。ステップ2106でYesと判断された場合には、CPU21は、コードを保持すべく現在コード名CurCHに、先行コード名PreCHを与える(ステップ2107)。
ステップ2107でNoと判断された場合には、CPU21は、無判定コードテーブルを参照して、ディミニシュ(dim)或いはオーギュメント(aug)のコードを、現在コード名CurCHに与える(ステップ2108)。図26は、本実施の形態にかかる無判定コードテーブルの一例の部分を示す図である。図26に示す無判定コードテーブル2600においては、現在メロディ音CMと先行コード名PreCHからなる値の組に対応して、所定の値が取得できるようになっている。
無判定コードテーブルにおいて2600において、空欄(たとえば、符号2601参照)は、現在メロディ音CMと先行コード名PreCHからなる値の組に対応付けられた現在メロディ機能(CMF)が、コードトーン(CT)或いはスケールノート(SN)であることを意味している(図25参照)。したがって、無判定コードテーブル2600において空欄となる現在メロディ音CMと先行コード名PreCHからなる値の組については、現在コード名CurCHが無判定コードとなることが無いため、値が格納されていない。したがって無判定コードテーブル2600では、現在メロディ機能(CMF)が、アザートーン(OT)である場合について、ディミニシュ(dim)或いはオーギュメント(aug)の何れかを指定する情報が格納されている。
CPU21は、無判定コードテーブル2600から、現在メロディ音CMと先行コード名PreCHからなる値の組に対応付けられた、ディミニシュ(dim)或いはオーギュメント(aug)の何れかを指定する情報を取得して、現在メロディ音CMを根音とするコード名を得る。たとえば、現在メロディ音が「C#」、先行コード名が「IMaj」であれば、コード名は、「I#dim」となる(符号2611参照)。また、現在メロディ音が「A♭」、先行コード名が「IM7」であれば、コード名は、「IV♭aug」となる。CPU21は、このようにして、現在メロディ音CMを根音とするディミニッシュ(dim)或いはオーギュメント(aug)のコード名を、現在コード名CurCHとして決定し、RAM23に格納する。
上述したように、本実施の形態においては、まず、現在の拍の拍頭の押鍵に関する現在メロディ音CMと、前拍の拍頭の押鍵に関する先行メロディ音PMとが、何拍目かを示す情報、先行コード名PreCHや、押鍵タミングなどにしたがって修正される(図5のステップ501〜510)。その上で、現在メロディ音CM、先行メロディ音PMおよび先行コード名PreCHに基づいて、現在コード名CurCHが決定される(ステップ511)。
コード名判定処理(図3のステップ304)が終了すると、CPU21は、自動伴奏処理を実行する(ステップ305)。図27は、本実施の形態にかかる自動伴奏処理の例を示すフローチャートである。まず、CPU21は、電子楽器10が自動伴奏モードの下で動作しているかを判断する(ステップ2701)。ステップ2701でYesと判断された場合には、CPU21のタイマ(図示せず)を参照して、現在時刻が、自動伴奏データ中、メロディ音のデータについてのイベントの実行タイミングに達しているかを判断する(ステップ2702)。
自動伴奏データには、3つの種類の楽音、すなわち、メロディ音(オブリガート音を含む)、コード音、リズム音のデータが含まれる。メロディ音のデータおよびコード音のデータは、発音すべき楽音ごとに、その音高、発音タイミングおよび発音時間を含む。また、リズム音のデータは、発音すべき楽音(リズム音)ごとに、その発音タイミングを含む。
ステップ2702でYesと判断された場合には、CPU21は、メロディ発音・消音処理を実行する(ステップ2703)。メロディ発音・消音処理においては、処理にかかるイベントがノートオンイベントであるかを判断する。ノートオンイベントであることは、現在時刻が、上記メロディ音のデータにおける所定の楽音の発音タイミングとほぼ一致することで判断できる。その一方、ノートオフイベントであることは、現在時刻が、当該楽音の発音タイミングに発音時間を加えた時刻とほぼ一致することで判断できる。
処理にかかるイベントがノートオフイベントである場合には、CPU21は、消音処理を実行する。その一方、処理にかかるイベントがノートオンイベントであれば、メロディ音のデータにしたがった発音処理を実行する。
次いで、CPU21は、CPU21のタイマ(図示せず)を参照して、現在時刻が、自動伴奏データ中、コード音のデータについてのイベントの実行タイミングに達しているかを判断する(ステップ2704)。ステップ2704においてYesと判断された場合には、CPU21は、コード発音・消音処理を実行する(ステップ2705)。コード音発音・消音処理においては、発音タイミングに達したコード音について発音処理を実行し、その一方、消音タイミングに達したコード音については消音処理を実行する。
その後CPU21は、現在時刻が、自動伴奏データ中、リズムのデータについてのイベントの実行タイミングに達しているかを判断する(ステップ2706)。ステップ2706においてYesと判断された場合には、CPU21は、リズム音発音処理を実行する(ステップ2707)。リズム音発音処理においては、発音タイミングに達したリズム音についてノートオンイベントを生成する。
自動伴奏処理(図3のステップ305)が終了すると、CPU21は、音源発音処理を実行する(ステップ306)。音源発音処理において、CPU21は、生成されたノートオンイベントに基づいて、発音すべき楽音の音色および音高を示すデータを音源部26に与え、或いは、消音すべき楽音の音色および音高を示すデータを音源部26に与える。音源部26は、音色、音高、音長等を示すデータにしたがって、ROM22の波形データを読み出して、所定の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。また、CPU21は、ノートオフイベントに基づいて、音源26にノートオフイベントが示す音高の消音を指示する。
音源発音処理(ステップ306)が終了すると、CPU21は、その他の処理(たとえば、表示部15への画像表示、LED(図示せず)の点灯、消灯など:ステップ307)を実行して、ステップ302に戻る。
本実施の形態においては、コード名判定処理(図3のステップ304)において、CPU21は、鍵盤11の一連の操作において進行するメロディシーケンスにおいて、実行中の自動伴奏データの進行を規定する時間情報、特に拍の情報に基づいて、現在の拍の拍頭において押鍵された鍵に関連する現在メロディ音CMと、1つ前の拍である前拍の拍頭において押鍵された鍵に関する先行メロディ音PMとを決定する。また、CPU21は、決定された現在メロディ音情報と、先行メロディ音情報と、前拍におけるコード名である先行コード名PreCHとに基づき、現在コード名CurCHを決定するコード名決定処理(図5のステップ511)を実行する。また、メロディ音の決定に際して、CPU21は、現在の拍が、小節において何番目の拍であるかに基づいて、現在メロディ音CMおよび先行メロディ音PMを決定する。
すなわち、本実施の形態によれば、押鍵された拍の位置(時間的な位置)を考慮して現在メロディ音CMおよび先行メロディ音PMが決定され、決定されたメロディ音のシーケンスと、先行コード名PreCHに基づいて現在コード名CurCHが決定される。
また、本実施の形態においては、CPU21は、拍子が4拍子である場合に、現在の拍が、1拍目或いは3拍目であるか、或いは、他の拍であるかに基づいて、現在メロディ音情報および先行メロディ音情報を決定する。すなわち、強拍(1拍目、3拍目)と、弱拍(2拍目、4拍目)に基づいて、現在メロディ音CMおよび先行メロディ音PMを決定することで、拍の重みを考慮することが可能となる。
また、本実施の形態において、CPU21は、前拍の先頭以降の押鍵が、現在の拍まで延びている場合に、シンコペーションであると判断し、現在メロディ音CMを、現在の拍まで延びている押鍵に関するものに決定する。すなわち、拍頭の押鍵でなくとも、シンコペーションを構成する場合には、これを拍頭の押鍵と同様に取り扱うことができる。
また、CPU21は、第1のドミナントモーション判定処理(図10)において、先行コード名PreCHがドミナントコードを示し、かつ、先行メロディ音PMから現在メロディ音CMが、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、現在コード名CurCHとして、トニックに相当するコード名を与える。このように、メロディシーケンスからドミナントモーションが明確に示される場合には、現在コード名CurCHをトニックとして、コード進行における終止を形成させる。
また、CPU21は、第2のドミナントモーション判定処理(図17)において、先行メロディ音PMから現在メロディ音CMが、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、現在コード名CurCHとして、トニックに相当するコード名を与える。ここでは、先行コード名PreCHがドミナントコードではない場合でも、メロディシーケンスからドミナントモーションが明確に示される場合には、現在コード名CurCHをトニックとして、コード進行における終止を形成させる。
さらに、CPU21は、第1のドミナントモーション判定処理或いは第2のドミナントモーション判定処理により、現在コード名CurCHとしてトニックに相当するコード名が付与されなかった場合に、現在コード名CurCHとして、先行コード名PreCHを与える。これにより、コード保持を実現することができる。
また、本実施の形態においては、現在メロディ音CMが1拍目の押鍵に関する場合に、先行メロディ音PM、現在メロディ音CMおよび先行コード名情報PreCHに対応付けられたコード名を格納した第1のコードテーブルと、現在メロディ音CMが、1拍目以外の押鍵に関する場合に、先行メロディ音PM、現在メロディ音CMおよび先行コード名PrCHに対応付けられたコード名を格納した第2のコードテーブルとを備え、CPU21は、押鍵タイミングにしたがって、第1のコードテーブル或いは第2のコードテーブルを参照する。これにより、拍にしたがって異なるコード名を取得することが可能となる。また、テーブルを参照することで、リアルタイムにコード名を決定することが可能となる。
さらに、本実施の形態においては、決定された先行メロディ音PMおよび現在メロディ音CMに基づき、第1のコードテーブル或いは第2のコードテーブルにおいて、対応するコード名が存在しない場合に、現在コード名CurCHとしてオーギュメント(aug)或いはディミニッシュ(dim)という無判定コードを付与する。これにより、先行メロディ音PMや現在メロディ音が、コード構成音或いはスケールノートでない場合であっても、楽曲においてそれほど違和感のない何らかのコード名を付与することが可能となる。
さらに、本実施の形態においては、CPU21は、無判定コードテーブルを参照して、現在メロディ音CM、先行メロディ音PMおよび先行コード名PreCHから、オーギュメント(aug)或いはディミニッシュ(dim)の何れのコードにすべきかを判断することが可能となる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、前記実施の形態においては、拍子を4拍子としているが、3拍子或いは6拍子でも本発明を適用可能である。たとえば、3拍子の場合には、上記処理のうち、1拍目〜3拍目についての処理を使用すれば良い。また、6拍子は、3拍子が2つあると考え、上記1拍目〜3拍目の処理を使用する。また、4拍目〜6拍目は、1拍目〜3拍目と同様に扱って同一の処理を実行すれば良い。
また、前記実施の形態では、ハ長調(CMaj)或いはイ短調(Amin)という調性において、主音(根音)に対する度数を用いたコード名が得られるがこれに限定されるものではなく、他の調性についても本発明を適用可能である。この場合には、たとえば、楽曲が長調であれば、「C」と、その楽曲の調性の根音との音高差が算出され、その音高差をオフセットとして、オフセット値をRAM23に格納すれば良い。処理においては、実際に押鍵された鍵番号により特定される音名をオフセットだけ減じることで、「C」のスケールにて処理を実行することが可能となる。
10 電子楽器
11 鍵盤
12、13 スイッチ
15 表示部
21 CPU
22 ROM
23 RAM
24 サウンドシステム
25 スイッチ群
26 音源部
27 オーディオ回路
28 スピーカ

Claims (10)

  1. 少なくとも、コード名、および、拍を含む時間情報に基づいたコード構成音の発音タイミング、を含む自動伴奏データを記憶する記憶手段と、
    演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御手段と、
    前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコード名を判定するコード名判定手段と、を備えた自動伴奏装置であって、
    前記コード名判定手段が、前記演奏操作子の一連の操作において進行するメロディシーケンスにおいて、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において押鍵された鍵に関連する現在メロディ音情報と、1つ前の拍である前拍の拍頭において押鍵された鍵に関する先行メロディ音情報と、を決定するメロディ音決定手段と、
    前記メロディ音決定手段において決定された現在メロディ音情報と、先行メロディ音情報と、前記前拍におけるコード名である先行コード名情報とに基づき、現在コード名情報を決定するコード名決定手段と、を有し、
    前記メロディ音決定手段が、前記現在の拍が、小節において何番目の拍であるかに基づいて、前記現在メロディ音情報および前記先行メロディ音情報を決定することを特徴とする自動伴奏装置。
  2. 前記時間情報には、拍子の情報が含まれ、
    前記メロディ音決定手段が、前記時間情報により4拍子であることが示される場合に、現在の拍が、1拍目或いは3拍目であるか、或いは、他の拍であるかに基づいて、前記現在メロディ音情報および前記先行メロディ音情報を決定することを特徴とする請求項1に記載の自動伴奏装置。
  3. 前記メロディ音決定手段が、前記前拍の先頭以降の押鍵が、現在の拍まで延びている場合に、シンコペーションであると判断し、前記現在メロディ音情報を、前記現在の拍まで延びている押鍵に関するものに決定することを特徴とする請求項1または2に記載の自動伴奏装置。
  4. 前記コード名決定手段は、前記先行コード名情報がドミナントコードを示し、かつ、前記先行メロディ音情報に示される音から現在メロディ音情報に示される音が、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、前記現在コード名情報として、トニックに相当するコード名を与えるように構成された、第1のドミナントモーション判定手段を有することを特徴とする請求項1ないし3の何れか一項に記載の自動伴奏装置。
  5. 前記コード名決定手段は、前記先行メロディ音情報に示される音から現在メロディ音情報に示される音が、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、前記現在コード名情報として、トニックに相当するコード名を与えるように構成された、第2のドミナントモーション判定手段を有することを特徴とする請求項1ないし3の何れか一項に記載の自動伴奏装置。
  6. 前記コード名決定手段は、前記第1のドミナントモーション判定手段或いは第2のドミナントモーション判定手段により、前記現在コード名情報としてトニックに相当するコード名が付与されなかった場合に、前記現在コード名情報として、前記先行コード名情報を与えることを特徴とする請求項4または5に記載の自動伴奏装置。
  7. 前記現在メロディ音情報が1拍目の押鍵に関する場合に、前記先行メロディ音情報、前記現在メロディ音情報および先行コード名情報に対応付けられたコード名を格納した第1のコードテーブルと、前記現在メロディ音情報が、1拍目以外の押鍵に関する場合に、前記先行メロディ音情報、前記現在メロディ音情報および先行コード名情報に対応付けられたコード名を格納した第2のコードテーブルとを備え、
    前記コード名決定手段が、前記現在メロディ音情報が1拍目の押鍵に関する場合に、前記第1のコードテーブルを参照して、取得されたコード名を、前記現在コード名情報として決定し、現在メロディ音情報が1拍目以外の押鍵に関する場合に、前記第2のコードテーブルを参照して、取得されたコード名を、前記現在コード名情報と決定することを特徴とする請求項1ないし6の何れか一項に記載の自動伴奏装置。
  8. 前記第1のコードテーブルおよび前記第2のコードテーブルが、それぞれ、所定の先行メロディ音情報、所定の現在メロディ音情報、および、現在コード名情報に対応付けられたコード名を格納し、
    前記コード名決定手段が、前記メロディ音決定手段により決定された先行メロディ音情報および現在メロディ音情報に基づき、前記第1のコードテーブル或いは第2のコードテーブルにおいて、対応するコード名が存在しない場合に、現在コード名情報として無判定コードを付与する無判定コード付与手段を有することを特徴とする請求項7に記載の自動伴奏装置。
  9. 前記第1のコードテーブルおよび前記第2のコードテーブルにおいて、コード名が対応付けられていない他の所定の先行メロディ音情報および他の所定の現在メロディ音情報について、当該他の所定の先行メロディ音情報、他の所定の現在メロディ音情報、および、先行コード名情報に対応付けられた、オーギュメント或いはディミニッシュを示す無判定コードに該当するコード名を格納した無判定コードテーブルを備え、
    前記無判定コード付与手段が、前記メロディ音決定手段により決定された先行メロディ音情報および現在メロディ音情報に基づき、前記無判定コードテーブルを参照して、前記無判定コードのコード名を取得し、取得されたコード名を、前記現在コード名情報と決定することを特徴とする請求億8に記載の自動伴奏装置。
  10. 少なくとも、コード名、および、拍を含む時間情報に基づいたコード構成音の発音タイミング、を含む自動伴奏データを記憶する記憶手段を備えたコンピュータに、
    演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段を制御する楽音データ制御ステップと、
    前記演奏操作子の操作に基づいた、前記自動伴奏データによる楽音を生成するためのコード名を判定するコード名判定ステップと、を実行させ、
    前記コード名判定ステップが、前記演奏操作子の一連の操作において進行するメロディシーケンスにおいて、実行中の自動伴奏データの進行を規定する時間情報に基づいて、現在の拍の拍頭において押鍵された鍵に関連する現在メロディ音情報と、1つ前の拍である前拍の拍頭において押鍵された鍵に関する先行メロディ音情報と、を決定するメロディ音決定ステップと、
    前記メロディ音決定ステップにおいて決定された現在メロディ音情報と、先行メロディ音情報と、前記前拍におけるコード名である先行コード名情報とに基づき、現在コード名情報を決定するコード名決定ステップと、を有し、
    前記メロディ音決定ステップが、前記現在の拍が、小節において何番目の拍であるかに基づいて、前記現在メロディ音情報および前記先行メロディ音情報を決定することを特徴とする自動伴奏プログラム。
JP2010022737A 2010-02-04 2010-02-04 自動伴奏装置および自動伴奏プログラム Active JP5168297B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010022737A JP5168297B2 (ja) 2010-02-04 2010-02-04 自動伴奏装置および自動伴奏プログラム
US13/012,091 US8314320B2 (en) 2010-02-04 2011-01-24 Automatic accompanying apparatus and computer readable storing medium
CN2011100669356A CN102148027B (zh) 2010-02-04 2011-02-01 自动伴奏装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010022737A JP5168297B2 (ja) 2010-02-04 2010-02-04 自動伴奏装置および自動伴奏プログラム

Publications (2)

Publication Number Publication Date
JP2011158855A true JP2011158855A (ja) 2011-08-18
JP5168297B2 JP5168297B2 (ja) 2013-03-21

Family

ID=44340457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010022737A Active JP5168297B2 (ja) 2010-02-04 2010-02-04 自動伴奏装置および自動伴奏プログラム

Country Status (3)

Country Link
US (1) US8314320B2 (ja)
JP (1) JP5168297B2 (ja)
CN (1) CN102148027B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073112A (ja) * 2011-09-28 2013-04-22 Casio Comput Co Ltd 自動コード修正装置及びそのプログラム
JP2013097302A (ja) * 2011-11-04 2013-05-20 Casio Comput Co Ltd 自動調修正装置、自動調修正方法及びそのプログラム
US8907197B2 (en) 2012-08-31 2014-12-09 Casio Computer Co., Ltd. Performance information processing apparatus, performance information processing method, and program recording medium for determining tempo and meter based on performance given by performer
US9018505B2 (en) 2013-03-14 2015-04-28 Casio Computer Co., Ltd. Automatic accompaniment apparatus, a method of automatically playing accompaniment, and a computer readable recording medium with an automatic accompaniment program recorded thereon
US9384716B2 (en) 2014-02-07 2016-07-05 Casio Computer Co., Ltd. Automatic key adjusting apparatus and method, and a recording medium
US11302296B2 (en) 2019-03-08 2022-04-12 Casio Computer Co., Ltd. Method implemented by processor, electronic device, and performance data display system

Families Citing this family (4)

* 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.
CN105390130B (zh) * 2015-10-23 2019-06-28 施政 一种乐器
JP7035486B2 (ja) * 2017-11-30 2022-03-15 カシオ計算機株式会社 情報処理装置、情報処理方法、情報処理プログラム、及び、電子楽器
JP7192830B2 (ja) * 2020-06-24 2022-12-20 カシオ計算機株式会社 電子楽器、伴奏音指示方法、プログラム、及び伴奏音自動生成装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0511766A (ja) * 1991-06-29 1993-01-22 Casio Comput Co Ltd 自動伴奏装置
JPH0527767A (ja) * 1991-07-24 1993-02-05 Yamaha Corp 和音検出装置および自動伴奏装置
JPH0643859A (ja) * 1992-01-08 1994-02-18 Yamaha Corp 電子楽器
JPH06274173A (ja) * 1993-03-22 1994-09-30 Yamaha Corp 和音検出装置
JPH06282268A (ja) * 1993-03-29 1994-10-07 Kawai Musical Instr Mfg Co Ltd 自動伴奏装置
JPH0981137A (ja) * 1995-09-12 1997-03-28 Casio Comput Co Ltd パラメータ制御装置、及び自動演奏装置
JP2009271479A (ja) * 2008-04-30 2009-11-19 Ryoji Maruyama 作曲用装置、作曲用コンピュータプログラム、作曲方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3049989B2 (ja) * 1993-04-09 2000-06-05 ヤマハ株式会社 演奏情報分析装置および和音検出装置
JP3704980B2 (ja) * 1997-12-17 2005-10-12 ヤマハ株式会社 自動作曲装置と記録媒体
JPH11282472A (ja) * 1998-03-30 1999-10-15 Roland Corp 伴奏発生装置
JP3533975B2 (ja) * 1999-01-29 2004-06-07 ヤマハ株式会社 自動作曲装置および記憶媒体
JP3620409B2 (ja) * 2000-05-25 2005-02-16 ヤマハ株式会社 携帯通信端末装置
JP3707364B2 (ja) * 2000-07-18 2005-10-19 ヤマハ株式会社 自動作曲装置、方法及び記録媒体
JP3970114B2 (ja) * 2002-07-09 2007-09-05 株式会社河合楽器製作所 電子楽器、自動伴奏方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体
WO2007010637A1 (ja) * 2005-07-19 2007-01-25 Kabushiki Kaisha Kawai Gakki Seisakusho テンポ検出装置、コード名検出装置及びプログラム
JP5228315B2 (ja) * 2006-11-30 2013-07-03 ヤマハ株式会社 自動伴奏生成装置および自動伴奏生成方法を実現するためのプログラム
JP4548424B2 (ja) * 2007-01-09 2010-09-22 ヤマハ株式会社 楽音処理装置およびプログラム
JP5169328B2 (ja) * 2007-03-30 2013-03-27 ヤマハ株式会社 演奏処理装置及び演奏処理プログラム
US8097801B2 (en) * 2008-04-22 2012-01-17 Peter Gannon Systems and methods for composing music

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0511766A (ja) * 1991-06-29 1993-01-22 Casio Comput Co Ltd 自動伴奏装置
JPH0527767A (ja) * 1991-07-24 1993-02-05 Yamaha Corp 和音検出装置および自動伴奏装置
JPH0643859A (ja) * 1992-01-08 1994-02-18 Yamaha Corp 電子楽器
JPH06274173A (ja) * 1993-03-22 1994-09-30 Yamaha Corp 和音検出装置
JPH06282268A (ja) * 1993-03-29 1994-10-07 Kawai Musical Instr Mfg Co Ltd 自動伴奏装置
JPH0981137A (ja) * 1995-09-12 1997-03-28 Casio Comput Co Ltd パラメータ制御装置、及び自動演奏装置
JP2009271479A (ja) * 2008-04-30 2009-11-19 Ryoji Maruyama 作曲用装置、作曲用コンピュータプログラム、作曲方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073112A (ja) * 2011-09-28 2013-04-22 Casio Comput Co Ltd 自動コード修正装置及びそのプログラム
JP2013097302A (ja) * 2011-11-04 2013-05-20 Casio Comput Co Ltd 自動調修正装置、自動調修正方法及びそのプログラム
US8907197B2 (en) 2012-08-31 2014-12-09 Casio Computer Co., Ltd. Performance information processing apparatus, performance information processing method, and program recording medium for determining tempo and meter based on performance given by performer
US9018505B2 (en) 2013-03-14 2015-04-28 Casio Computer Co., Ltd. Automatic accompaniment apparatus, a method of automatically playing accompaniment, and a computer readable recording medium with an automatic accompaniment program recorded thereon
US9384716B2 (en) 2014-02-07 2016-07-05 Casio Computer Co., Ltd. Automatic key adjusting apparatus and method, and a recording medium
US11302296B2 (en) 2019-03-08 2022-04-12 Casio Computer Co., Ltd. Method implemented by processor, electronic device, and performance data display system

Also Published As

Publication number Publication date
CN102148027B (zh) 2013-01-02
US8314320B2 (en) 2012-11-20
US20110185881A1 (en) 2011-08-04
JP5168297B2 (ja) 2013-03-21
CN102148027A (zh) 2011-08-10

Similar Documents

Publication Publication Date Title
JP5168297B2 (ja) 自動伴奏装置および自動伴奏プログラム
JP5041015B2 (ja) 電子楽器および楽音生成プログラム
JP6465136B2 (ja) 電子楽器、方法、及びプログラム
JP2010092016A (ja) アドリブ演奏機能を有する電子楽器およびアドリブ演奏機能用プログラム
JP5293710B2 (ja) 調判定装置および調判定プログラム
JP5732982B2 (ja) 楽音生成装置および楽音生成プログラム
JP2008089975A (ja) 電子楽器
JP5995343B2 (ja) 電子楽器
JP2010117419A (ja) 電子楽器
JP5909967B2 (ja) 調判定装置、調判定方法及び調判定プログラム
CN113140201A (zh) 伴奏音生成装置、电子乐器、伴奏音生成方法及伴奏音生成程序
JP5692275B2 (ja) 電子楽器
JP5560574B2 (ja) 電子楽器および自動演奏プログラム
JP2006065186A (ja) テンポ情報出力装置、テンポ情報出力方法及びテンポ情報出力のためのコンピュータプログラム、タッチ情報出力装置、タッチ情報出力方法及びタッチ情報出力のためのコンピュータプログラム
JP2007240558A (ja) コード検出領域設定装置、該装置を具えたコード表示装置、及びこれらのプログラム
JP6149890B2 (ja) 楽音生成装置および楽音生成プログラム
JP5742592B2 (ja) 楽音生成装置、楽音生成プログラム及び電子楽器
JP5564921B2 (ja) 電子楽器
US20230035440A1 (en) Electronic device, electronic musical instrument, and method therefor
JP6102975B2 (ja) 楽音生成装置、楽音生成プログラム及び電子楽器
JP3620321B2 (ja) 自動伴奏装置
JP2006292954A (ja) 電子楽器
JP3543159B2 (ja) 自動伴奏装置
JP4900233B2 (ja) 自動演奏装置
JP4470895B2 (ja) コード表示装置及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120425

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121210

R150 Certificate of patent or registration of utility model

Ref document number: 5168297

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150