JP3632487B2 - 電子楽器等における和音検出装置 - Google Patents
電子楽器等における和音検出装置 Download PDFInfo
- Publication number
- JP3632487B2 JP3632487B2 JP05117599A JP5117599A JP3632487B2 JP 3632487 B2 JP3632487 B2 JP 3632487B2 JP 05117599 A JP05117599 A JP 05117599A JP 5117599 A JP5117599 A JP 5117599A JP 3632487 B2 JP3632487 B2 JP 3632487B2
- Authority
- JP
- Japan
- Prior art keywords
- chord
- note
- sound
- performance
- midi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
この発明は、入力された音高情報に基づいて和音検出を行う電子楽器等における和音検出装置及び記録媒体に係り、特に複数の演奏パートについての演奏情報を混合したものに基づいて和音を検出することのできる電子楽器等における和音検出装置及び記録媒体に関する。
【0002】
【従来の技術】
従来から、いわゆる自動伴奏機能を備えた電子楽器が知られている。自動伴奏機能とは、コード(和音)演奏やベース演奏を準自動的に行う機能であり、指定されたコード(和音)に基づいてコード(和音)音やベース音を所定のタイミングで自動的に発音するものである。この自動伴奏を付加するときに、MIDI規格の演奏情報などの形態で当該電子楽器の外部から入力された音高情報に基づいてコード(和音)を検出し、指定されたリズム(自動伴奏パターン)に基づいてベース音(単音)及びコード音(和音)などからなる自動伴奏音を発生するものが本出願人から提案されている(特開平3−213899号)。このような自動伴奏機能を備えた電子楽器等において、外部から入力されたコード(和音)は同一のチャンネル番号が付与されたノートイベントに基づいて和音検出装置によって検出されている。すなわち、従来知られた和音検出装置では、外部から入力されるコード(和音)を検出するために使用されるチャンネルは1チャンネルのみであった。
【0003】
ところで、外部から音高情報を入力するための電子楽器として、例えばMIDI対応の電子アコーディオンのようなアコーディオン型のMIDI機器がある。電子アコーディオンについて簡単に説明すると、電子アコーディオンは自然楽器のアコーディオン(図7参照)と同様に、右手部分がピアノやオルガンと同じ鍵盤操作子であり左手部分が押ボタン式操作子からなっている。この押ボタン式操作子は、或る1つのボタンを押すことによってそのボタンに割り当てられている所定のコード(和音)を発音する「コードベース」ボタンと、或る1つのボタンを押すことによって所定の音高のベース音(単音)を発音する「ベース」ボタンとによって構成されており、左手では1つのボタンを押すだけで簡単にコード(和音)演奏やベース(単音)演奏等の伴奏を行うことができるようになっている。
任意の「コードベース」ボタンが押された際に電子アコーディオンから出力されるコード(和音)の構成音(例えば、Cmin(Cマイナー)の場合、「C」「E」「G」)には、全て同一のMIDIチャンネル番号が付与される。また、「ベース」ボタンを押した場合、「ベース」ボタンによって指定されたベース音(単音)に対しては、コード(和音)に付与されたMIDIチャンネル番号とは異なったMIDIチャンネル番号が付与されている。
【0004】
【発明が解決しようとする課題】
上述したような電子アコーディオンには、「コードベース」ボタンは多くても、「メジャー・コード(長和音)」、「マイナー・コード(短和音)」、「セブンス・コード(属七和音)」、「ディミニッシュ・コード(減七和音)」の4つのコード種類しか具えられていない。
このような電子アコーディオンにおいて、コード音(和音)が鳴る「コードベース」ボタンの操作とベース音が鳴る「ベース」ボタンの操作とを同時に行うと、上述した4種類のコード(和音)以外のコード(和音)構成音を鳴らすことはできた(例えば、コード「Emin」の構成音“E G B”とベース音“C”とを同時に鳴らすと、「Cmaj7」の構成音“C E G B”となる)。しかしながら、上述したようにベース音(単音)とコード(和音)に付与されるMIDIチャンネル番号は異なったMIDIチャンネル番号であることから、両方を混合した形態ではコード(和音)を検出することができない。したがって、電子アコーディオンから入力することのできるコード種類は多くても4種類しか存在しなかった。そのために、電子アコーディオンのようなMIDI機器から入力された音高情報に基づいてコード(和音)を検出して自動伴奏を行うとしても、単調な伴奏しか行うことができないので表現の豊かな伴奏を行うことができなかった、という問題点があった。
あるいは、電子オルガンのような2段鍵盤楽器の上鍵盤と下鍵盤、あるいは手鍵盤と足鍵盤などで異なったMIDIチャンネルのノートイベントが出力されるMIDI機器において、上鍵盤のノートイベントと下鍵盤のノートイベントとで和音を構成するように演奏者が意図して各々の鍵盤を操作したとしても、演奏者の意図した通りの和音が和音検出装置により検出されないので、演奏者の意図した和音と自動伴奏装置による実際の伴奏との間に不一致が生ずる、という問題点があった。
【0005】
本発明は上述の点に鑑みてなされたもので、入力された複数の演奏パートの演奏情報を混合したものに基づいて和音を検出することのできる電子楽器等における和音検出装置及び記録媒体、つまりは、ユーザの意向に沿う和音検出を行うことのできる電子楽器等における和音検出装置及び記録媒体を提供しようとするものである。更には、所定の基準に従ってベース音等の特定音を検出する特定音検出装置を提供しようとするものである。
【0006】
【課題を解決するための手段】
本発明に係る和音検出装置は、複数の演奏パートの中から和音検出の対象とする複数の異なる演奏パートの組み合わせを指定する指定手段であって、該複数の異なる演奏パートの組み合わせを複数記憶したテーブルと、前記テーブルから1つの組み合わせを選択する選択手段とを含むものと、複数の演奏パートについての演奏情報のうち、前記指定手段によって指定された組み合わせに該当する演奏パートについての演奏情報に基づき和音を検出する和音検出手段とを具えたものである。
【0007】
この発明では、和音検出手段は複数の演奏パートについての演奏情報に基づいて和音を検出することができる。すなわち、和音検出手段は指定手段によって指定された和音検出の対象とする演奏パートの組み合わせにより、該当する演奏パートについての演奏情報を抽出して、抽出された演奏情報に基づいて和音を検出する。そのため、和音を構成する構成音を各々異なった演奏パートで入力したような場合であったとしても、当該和音検出手段によると和音を検出することができるようになる。こうすると、従来では検出することができなかった和音であっても検出できるようになるので、ユーザはより多くの種類の和音を、いろいろな入力形態で指定することができるようになる。例えば、電子アコーディオンでは、コード音(和音)が鳴るボタンの操作によって出力される演奏情報とベース音が鳴るボタンの操作によって出力される演奏情報とをあわせて和音を指定することができるようになるので、従来指定することができなかった和音を出力することができるようになる。電子オルガンでは、上鍵盤と下鍵盤、あるいは手鍵盤と足鍵盤とを組み合わせて和音を指定することができるようになる。
また、記憶手段に複数の異なる演奏パートからなる組み合わせをテーブルに記憶しておき、選択手段によりこのテーブルから1つの組み合わせを選択できるようにすることで、ユーザは簡単に和音を検出するために抽出すべき演奏情報の設定を行うことができる。
なお、この発明における好ましい実施例として、前記演奏情報はMIDI規格の演奏情報からなり、前記演奏パートはMIDI規格の演奏情報におけるMIDIチャンネル番号によって区別されるものがある。
【0008】
本発明は、装置発明として構成し、実施することができるのみならず、コンピュータプログラムの形態で実施することができるし、そのようなコンピュータプログラムを記憶した記憶媒体の形態で実施することもできる。
【0009】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明する。
【0010】
図1は、この発明に係る和音検出装置を内蔵した電子楽器全体の構成を示すハードブロック図である。この電子楽器は、マイクロプロセッサユニット1(CPU)、ROM2及びRAM3からなるマイクロコンピュータによって制御されるようになっている。
CPU1は、この電子楽器全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Dを介してROM2、RAM3、押鍵検出回路4、スイッチ検出回路5、表示回路6、音源回路7、効果回路8、外部記憶装置9、MIDIインタフェース(I/F)10および通信インタフェース11がそれぞれ接続されている。CPU1には、タイマ割込み処理における割込み時間や各種時間を計時するタイマ1Aが接続されている。
【0011】
リードオンリメモリ2(ROM)は、CPU1により実行あるいは参照される各種プログラムや各種データあるいは各種テーブル(例えば、後述する和音検出用受信チャンネルテーブルやベース音検出受信チャンネルテーブル)等を格納するものである。 ランダムアクセスメモリ3(RAM)は、演奏情報やCPU1がプログラムを実行する際に発生する各種データやテーブル等を一時的に記憶するものであり、所定のアドレス領域がそれぞれ割り当てられて、レジスタやフラグあるいはデータメモリ、テーブルなどとして利用される。
鍵盤4Aは、楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有している。
押鍵検出回路4は、鍵盤4Aの各鍵の押圧及び離鍵を検出し、検出出力を生じる。
【0012】
スイッチ部5Aは、各種の音楽条件(音高、音色、効果等)を選択・設定・制御入力するための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード及びパネルスイッチ等からなる。
スイッチ検出回路5は、スイッチ部5Aの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス1Dを介してCPU1に出力する。
表示回路6はCPU1の制御状態、設定データやテーブルの内容等の各種情報を、例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイに表示するようになっている。
【0013】
音源回路7は、複数の楽音発生チャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス1Dを経由して与えられた演奏情報を入力し、このデータに基づき楽音信号を発生する。音源回路7から発生された楽音信号は、サウンドシステム8Aを介して発音される。また、効果回路8は前記音源回路7から発生された楽音信号に対して各種効果を与える。なお、周知のように楽音発生チャンネルはMIDIチャンネルとは異なるものである。すなわち、MIDIチャンネルが演奏パートに対応しているのに対して、楽音発生チャンネルは具体的に1つの楽音を発生するチャンネルである。 前記音源回路7における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出すメモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるFM方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるAM方式等の公知の方式を適宜採用してもよい。また、専用のハードウェアを用いて音源回路を構成するものに限らず、DSP(ディジタルシグナルプロセッサー)とマイクロプログラム、あるいはCPUとソフトウェアを用いてソフトウェア音源を構成するようにしてもよい。さらに、共通の楽音発生用ハードウェアを時分割で使用することによって複数の発音チャンネルを形成するような時分割処理方式からなるものでもよいし、1つの発音チャンネルが1つの楽音発生回路に対応するような並列処理形式のものであってもよい。
【0014】
外部記憶装置9は、伴奏スタイルや伴奏パターンなどのような伴奏に関するデータやCPU1が実行する各種プログラム等の制御に関するデータ、あるいは各種テーブル等を記憶するものである。前記ROM2に制御プログラムが記憶されていない場合、この外部記憶装置9(例えばハードディスク)に制御プログラムを記憶させておき、それを前記RAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置9はハードディスク(HD)に限らず、フロッピィーディスク(FD)、コンパクトディスク(CD−ROM・CD−RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Diskの略)等の着脱自在な様々な形態の記憶メディアを利用する記憶装置であってもよい。
【0015】
MIDIインタフェース(I/F)10は、当該電子楽器外部の他のMIDI機器10A等からMIDI規格の演奏情報を入力したり、あるいはMIDI演奏情報を当該電子楽器外部へ出力するためのものである。例えば、他のMIDI機器10Aとして、上述したような電子アコーディオンや電子オルガン等のMIDI機器が接続される。なお、MIDIインタフェース10は専用のインタフェースに限らず、RS−232C、USB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)等の汎用のインターフェイスを用いて構成してもよい。この場合、MIDIメッセージ以外のデータをも同時に送受信するようにしてもよい。
通信インタフェース11は、例えばLAN(ローカルエリアネットワーク)やインターネット、電話回線等の通信ネットワーク11Bに接続されており、概通信ネットワーク11Bを介して、サーバコンピュータ11Aと接続され、当該サーバコンピュータ11Aから制御プログラムや各種データを電子楽器装置側に取り込むためのものである。すなわち、ROM2やハードディスクに制御プログラムや各種データが記憶されていない場合に、サーバコンピュータ11Aから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる電子楽器装置は、通信インターフェース11及び通信ネットワーク11Bを介してサーバコンピュータ11Aへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータ11Aは、このコマンドを受け、要求された制御プログラムやデータを、通信ネットワーク11Bを介して本装置へと配信し、本装置が通信インタフェース11を介して、これら制御プログラムや各種データを受信してハードディスクに蓄積することにより、ダウンロードが完了する。
【0016】
図2は、図1のような電子楽器に自動伴奏を動作させる場合にメインとなる処理のフローチャートの一例を示す図である。図1のCPU1は、このメイン処理に従って動作する。このメイン処理は、主電源のオン操作と同時に開始され、主電源のオフ操作によって終了される。以下、図2のフローチャートに従って、自動伴奏の動作例を説明する。なお、以下の説明で、特に「楽音発生チャンネル」と断っていない限り、「チャンネル」とはMIDIチャンネルを指す。
まず、最初のステップS1では、初期化(すなわち、各種の初期設定)を行う。初期化では、図1のRAM3内の各レジスタなどに対して所定の初期値を設定する。具体的には、和音検出用ノートバッファ、ベース音検出用ノートバッファ、和音ルートバッファ、和音タイプバッファのそれぞれの内容をクリアする。これらのバッファの内容については各ステップの対応する処理の中で説明する。また、図示しない液晶表示パネル(LCD)やCRT等から構成されるディスプレイの表示を初期状態に、つまり画面上に初期画面を表示する。
【0017】
初期設定が終了すると、受信チャンネルテーブルの選択操作有りか、又は選択操作無しかの判定が行われ、それぞれの判定に従った処理が行われる(ステップS2)。選択操作有りと判定された場合には(YES)、当該選択操作に対応した受信チャンネルテーブルをROM2から読み出して、所定のワークエリアへ書き込みを行う(ステップS3)。反対に、選択操作無しと判定された場合には(NO)、ステップS3の処理を行わないでステップS4へ進む。
受信チャンネルテーブルは、ROM2内に予め多数記憶されているとともにRAM3内に1又は複数記憶されているものであって、ユーザはスイッチ部5Aや鍵盤4AあるいはGUI(グラフィカル・ユーザ・インタフェース)など適宜の入力操作手段を用いて、ROM2やRAM3に記憶されている受信チャンネルテーブルの1つを選択する。なお、ROM2に記憶されているものはプリセットの受信チャンネルテーブルであり、RAM3に記憶されているものはユーザ設定の受信チャンネルテーブルである。本実施例では、ユーザが上記入力操作手段を用いて楽器名(例えば、アコーディオン用や電子オルガン用)やユーザ名(例えば、ユーザ1、ユーザ2)等の指定(受信チャンネルテーブルの選択操作)を行うことにより、自動伴奏の際にコード音(和音)又はベース音を検出するために使用するMIDIチャンネル番号を設定できるようになっている。すなわち、多数の受信チャンネルテーブルの中から楽器名に対応づけられた受信チャンネルテーブルが所定のワークエリアに読み出され、この受信チャンネルテーブルの設定によりコード音(和音)やベース音を検出するためのノートイベントを決定する。
なお、ROM2又は外部記憶媒体9やRAM3に受信チャンネルテーブルを複数記憶させておき、その中からユーザは所望の受信チャンネルテーブルを選択できるようにしてもよいことは言うまでもない。また、上記では受信チャンネルテーブルをユーザが選択できるようにしたが、接続されているMIDI機器の種類を検出し、検出したMIDI機器の種類に適するように自動的に受信チャンネルテーブルを選択するようにしてもよい。
【0018】
ステップS4では、所望のユーザ設定テーブルを編集するか/しないかを判定する。所望のユーザ設定テーブルを編集する場合には(YES)、ユーザ設定テーブルの編集(ステップS5)を行い、ユーザ設定テーブルを編集しない場合には(NO)、上記ステップS5の処理を行わずに、ステップS6の処理へ飛ぶ。
ユーザ設定テーブルとは、ユーザが任意に作成でき、かつ、その設定の変更を行うことのできるテーブルである。ユーザは、受信チャンネルテーブルの一部を変更してユーザ設定テーブルを新たに作成してもよいし、あるいはユーザ設定テーブルをユーザが自由に作成してもよい。なお、ユーザ設定テーブルは異なった設定内容を持つテーブルが複数あってよい。この場合、ユーザ設定テーブルの選択は任意に付与されたユーザ名(例えば、ユーザ1、ユーザ2)等で指定するようにすればよい。
ユーザ設定テーブルを編集する場合には、ユーザ設定テーブルを直接編集してもよいし、所定のワークエリアへ書き込んで(コピーして)から編集を行ってもよい。所定のワークエリアへ書き込んだ場合、あるユーザ設定テーブル(例えば、ユーザ1)の一部を変更し、それを他のユーザ設定テーブル(例えば、ユーザ2)として別途登録することもできる。あるいは、あるプリセットテーブル(例えば、アコーディオン用)をワークエリアへ書き込み、その一部を変更し、それをユーザ設定テーブルとして登録することもできる。
【0019】
ここで、受信チャンネルテーブル(及びユーザ設定テーブル)について詳細に説明する。図3は、受信チャンネルテーブル(プリセットテーブル及びユーザ設定テーブル)の構成の一実施例を示したものである。この実施例において、図3(A)はコード音(和音)を検出するのための和音検出用受信チャンネルテーブルであり、図3(B)はベース音を検出するためのベース音検出用受信チャンネルテーブルである。ただし、各図の上段にROM2に予め記憶されるプリセットの受信チャンネルテーブルを、下段にRAM3に記憶されるユーザ設定の受信チャンネルテーブルを示した。
受信チャンネルテーブル(和音検出用及びベース音検出用)は、どのチャンネル番号のノートイベントをコード音(和音)又はベース音として検出するか/しないかを設定するためのテーブルである。このテーブルは、図に示されるように、各種MIDI機器(電子アコーディオンや電子オルガン等)毎に、各MIDIチャンネルch1〜ch16に対応して「1」又は「0」を予めセットしてなるものである。図の左側から「チャンネル番号1」〜「チャンネル番号16」の順番となっており、テーブルに「1」がセットされたチャンネル番号が付与されたノートイベントを和音(又はベース音)検出用のノートイベントとし、反対に「0」がセットされたチャンネル番号が付与されたノートイベントを和音(又はベース音)検出用のノートイベントとしない。勿論、「1」、「0」の関係は逆でもよい。このようにして、和音(又はベース音)を検出するためのノートイベントのMIDIチャンネルとして複数個のMIDIチャンネルを同時に和音検出用(又はベース音検出用)に設定できるようになっている。
図3に示したテーブルにおいて、「アコーディオン用」の受信チャンネルテーブルが選択された場合(図2のステップS2参照)、和音検出用のノートイベントとされるのは「チャンネル番号1」及び「チャンネル番号2」が付与されたノートイベントである。ベース音検出用のノートイベントとされるのは「チャンネル番号2」のみである。同様にして、「電子オルガン用」の受信チャンネルテーブルが選択された場合、和音検出用のノートイベントとされるのは「チャンネル番号1」及び「チャンネル番号2」が付与されたノートイベントであり、ベース音検出用のノートイベントとされるのは「チャンネル番号2」及び「チャンネル番号3」である。
なお、受信チャンネルテーブルとしては、上述したような「1〜16の各チャンネルについて和音(又はベース音)を検出する/しないを記憶したもの」に限らず、「和音(又はベース音)を検出する(あるいは検出しない)1乃至複数のチャンネル番号を記憶したもの」であってもよい。
【0020】
図2に戻り、ステップS6では、「その他の処理」を行う。「その他の処理」には、例えば、自動伴奏の開始指示が与えられることにより後述する自動伴奏割り込み処理を許可する処理や、自動伴奏の終了指示が与えられることにより自動伴奏割り込み処理を禁止する処理、自動伴奏に使用する伴奏スタイル(例えば、ロックやジャズ等)や伴奏セクション(メイン、イントロ、フィルイン等)の選択処理、鍵盤操作による発音/消音処理、あるいはその他のスイッチ操作による処理(例えば、電子楽器全体の音色設定、自動演奏のテンポ設定等)がある。
「その他の処理」が終了したら、当該メイン処理を終了するための指示操作、すなわち、電子楽器本体の主電源がオフされたかどうかを検出し、主電源がオフされた場合はメイン処理を終了する。そうでない、主電源オン(すなわち、主電源オフ操作がない)の場合にはステップS2へ戻り、当該メイン処理を繰り返し実行する。
【0021】
図4A及び図4Bは、MIDIイベント受信割り込み処理のフローチャートの一例を示す図である。図4Aに当該処理の前半部分のフローチャートを示し、図4Bに当該処理の後半部分のフローチャートを示す。つまり、図4Aの処理の後に図4Bの処理が連続して行われるものである。当該処理は、外部から入力されたMIDIイベント信号を受信する度に、図2のメイン処理に対して割り込み的に行われる。
まず、受信したMIDIイベント信号のデータ内容が「ノートイベント」(すなわち、ノートオン又はノートオフ)であるか否かを判定する(ステップS11)。「ノートイベント」でないと判定された場合(NO)には、その他のイベント処理を行い(ステップS12)、当該MIDIイベント受信割り込み処理を終了する。その他のイベント処理には、例えば「プログラムチェンジ」による音色の切替処理や、「コントロールチェンジ」によるビブラートやトレモロ等の効果処理などがある。
受信したMIDIイベント信号が「ノートイベント」であると判定された場合(YES)には、当該「ノートイベント」に付与されているチャンネル番号は選択された和音検出用受信チャンネルテーブルにおいて「1」か否かを判定する(ステップS13)。すなわち、所定のワークエリアに書き込まれたプリセット又はユーザ設定の和音検出用受信チャンネルテーブル(上述した図2のステップS3)を参照して、受信した「ノートイベント」を和音検出するデータとして使用するか(当該チャンネル番号に対応するテーブルの内容が「1」である場合)、使用しないか(当該チャンネル番号に対応するテーブルの内容が「0」である場合)の判定を行う。
テーブルの内容が「0」である場合(NO)、ステップS18の処理へ飛び、当該「ノートイベント」は和音を検出するためのデータとして使用されない。
テーブルの内容が「1」である場合(YES)、当該「ノートイベント」が「ノートオン」データであるか否かを判定する(ステップS14)。「ノートオン」である場合(YES)、該「ノートイベント」のノートナンバを和音検出用ノートバッファに追加する(ステップS15)。反対に「ノートオン」でない、つまり「ノートオフ」である場合(NO)、該「ノートイベント」のノートナンバを和音検出用ノートバッファから削除する(ステップS16)。ステップS17では、ノートナンバが追加又は削除された和音検出用ノートバッファの内容に基づいて和音のルートとタイプを検出し(例えば、和音検出用ノートバッファ内のノートナンバの構成と同じ構成を持つ和音を求める)、それぞれを別のバッファ(ルートバッファとタイプバッファ)に書き込む。ステップS17において、和音検出用ノートバッファ内のノートナンバでは和音が構成されない場合には、和音のルートとタイプを検出できないので、バッファへの書き込みは行わないようにしてよい。つまり、バッファの内容を更新しないようにしてよい。
【0022】
次に、図4BのステップS18〜S22において、ベース音について上述のステップS13〜S17までの処理と同様の処理が行われる。ステップS18において、当該「ノートイベント」に付与されているチャンネル番号は選択されているプリセット又はユーザ設定のベース音検出用受信チャンネルテーブルにおいて「1」か否かを判定する。すなわち、所定のワークエリアに書き込まれたプリセット又はユーザ設定のベース音検出用受信チャンネルテーブル(上述した図2のステップS3)を参照して、受信した「ノートイベント」をベース音検出するデータとして使用するか(当該チャンネル番号に対応するテーブルの内容が「1」である場合)、使用しないか(当該チャンネル番号に対応するテーブルの内容が「0」である場合)の判定を行う。
テーブルの内容が「0」である場合(NO)、ステップS23の処理へ飛び、当該「ノートイベント」はベース音を検出するためのデータとして使用されない。 テーブルの内容が「1」である場合(YES)、当該「ノートイベント」が「ノートオン」データであるか否かを判定する(ステップS19)。「ノートオン」である場合(YES)、該「ノートイベント」のノートナンバをベース音検出用ノートバッファに追加する(ステップS20)。反対に「ノートオン」でない、つまり「ノートオフ」である場合(NO)、該「ノートイベント」のノートナンバをベース音検出用ノートバッファから削除する(ステップS21)。ステップS22では、ノートナンバが追加又は削除されたベース音検出用ノートバッファの内容に基づいてベース音を検出して、バッファ(ベース音バッファ)に書き込む。ベース音検出とは、ベース音として発音する単音をベース音バッファ内のノートナンバの中から選択することである。ステップS23では、受信したノートイベントに基づく発音/消音処理を必要に応じて処理する。
【0023】
なお、和音検出、ベース音検出のアルゴリズムは上述した以外にも種々考えられる。例えば和音検出については、複数チャンネルのノートイベントをマージして和音検出用のノートとする際にチャンネル毎に重み付けをし、大きい重みの付いたチャンネルのノートイベントを優先的に和音やベース音検出に用いてもよい。ベース音検出については、ベース音検出用ノートバッファ内に複数のノートナンバがストアされている場合にその最低音をベース音として検出してもよいし、最高音をベース音として検出してもよい。また、ノートイベントを受信する度に和音やベース音を検出する例を示したが、受信のタイミングとは無関係に所定時間毎(例えば8分音符毎)のタイミングで和音やベース音を検出するようにしてもよい。また、複数の和音構成音に基づき和音を検出するいわゆるフィンガードタイプの和音検出に限らず、根音を指定するノートに基づき和音を検出するいわゆるシングルフィンガータイプの和音検出であってもよい。さらに、フィンガードタイプの場合、和音構成音の全てがそろって初めて和音を検出するものに限らず、一部の構成音を省略した場合であっても和音を検出できるようにしてもよい。
また、外部のMIDI機器から受信したノートイベントに基づく発音/消音をするようにしたが(ステップS23参照)、受信したノートイベントは和音検出、ベース音検出のみに使用し、発音/消音はしなくてもよい。
さらに、和音とベース音の両方を別々に検出する例を示したが、和音のみを検出するようにしてもよい。
【0024】
図5は、入力された和音とベース音に対して、どのような和音及びベース音が上述した一連の処理が行われることにより検出されるのかを具体的に示した一覧表の一例である。図中の左側に入力された和音とベース音を示し、右側に入力に対応して検出された和音とベース音を示している。この場合、入力可能な和音の種類は電子アコーディオンから入力可能なメジャー、マイナー、セブンス、ディミニッシュの4種類とする。これに対して、検出可能な和音の種類はメジャーセブンス、マイナーセブンス等、多数ある。一覧表の最上段の例について説明すると、この場合に入力された和音は「Cmaj」(Cメジャー)であり、ベース音は「C」である。この入力に対して検出される和音は「Cmaj」(Cメジャー)であり、ベース音は「C」である。以下、同様の対応関係となっている。
【0025】
ここでは、入力した和音に対して検出する和音とが異なる場合について説明する。例えば、和音に「Emin」(Eマイナー)及びベース音に「C」が同時に入力された場合(図5の上から6番目に示した例)について具体的に説明する。ただし、図2に示したメイン処理において、和音検出用受信チャンネルテーブル及びベース音検出用受信チャンネルテーブルは、図3に示したプリセットテーブル内の「アコーディオン用」を選択した場合について説明する。
電子アコーディオンの「コードベース」ボタンにより「Emin」が入力された場合、当該「Emin」を構成する和音構成音「E」「G」「B」の3音がノートオンイベントとして出力される。これらの和音構成音には、同一のチャンネル番号(例えば、チャンネル番号「1」)が付与される。これと同時に「ベース」ボタンにより「C」が入力された場合、ベース音「C」がノートオンイベントとして出力される。このベース音には、和音構成音に付与されたチャンネル番号と異なったチャンネル番号が付与される(例えば、チャンネル番号「2」)。これらのノートイベントは、図4に示したMIDIイベント割り込み処理で処理される。各和音構成音にはチャンネル番号「1」が付与され、和音検出用受信チャンネルテーブルのチャンネル番号「1」のデータ内容が「1」であることから、各和音構成音は和音検出用ノートバッファに追加される。さらに、ベース音にはチャンネル番号「2」が付与され、和音検出用受信チャンネルテーブルのチャンネル番号「2」のデータ内容が「1」であることから、ベース音も和音検出用ノートバッファに追加される。したがって、和音検出用ノートバッファには「C」「E」「G」「B」の4種類のノートナンバが保持されることになり、これらを和音構成音とするのは「Cmaj7」(Cメジャーセブンス)であることから、和音のルート「C」及びタイプ「メジャーセブンス」が検出される(ステップS23〜S27参照)。そして、ベース音検出用受信チャンネルテーブルのチャンネル番号「1」のデータ内容が「0」であり、チャンネル番号「2」のデータ内容が「1」であることから、ベース音だけがベース音検出用ノートバッファに追加されてベース音として「C」が検出される。このようにして得られた和音のルート及びタイプあるいはベース音は、図6に示した自動伴奏割り込み処理によって参照されて発音される。
以上のように、単一のMIDIチャンネルのノート情報に基づき和音検出を行う従来の和音検出装置では和音として検出することのできなかった「Cmaj7」(Cメジャーセブンス)が、複数のMIDIチャンネルを和音検出用の対象チャンネルに設定することによって、和音として検出することができるようになる。すなわち、本来入力不可能な「Cmaj7」(Cメジャーセブンス)の和音を入力したい場合、入力可能な「Emin」(Eマイナー)和音の入力と「C」のベース音入力とを組み合わせることで、これが入力可能となる。つまり、複数の異なるMIDIチャンネルの入力に基づき和音の検出ができるようになる。また、複数入力されたベース音についても、複数のチャンネルをベース音検出用の受信チャンネルに設定することによって(例えば、図3(B)電子オルガン用参照)、複数のノートイベントからベース音となるノートイベントを任意に検出することができるようになる。例えば、電子オルガンにおいて、チャンネル番号「2」の下鍵盤とチャンネル番号「3」の足鍵盤をベース音検出用の受信チャンネルとした場合、足鍵盤の操作は勿論のこと、下鍵盤の操作によってもベース音を検出可能である。
【0026】
図6は、図2に示したメイン処理に対して、所定のクロックタイミング毎に(つまり、定期的に)割り込み的に起動される自動伴奏割り込み処理である。例えば、4分音符長がタイマクロック数の96に相当するように設定されたような場合に、図6の自動伴奏割り込み処理はこのタイマクロックの1クロック毎に実行される割り込み処理である。当該自動伴奏割り込み処理は、ドラムパート、ベースパート及びコードバッキングパートといった複数の伴奏パートについての伴奏パターンデータに基づき、楽曲の演奏の進行に従って伴奏演奏を自動的に実行する。
まず、リズムパートの伴奏パターンデータを読み出して発音/消音処理を行う(ステップS31)。次に、コードバッキングパートの伴奏データを読み出し、検出された和音のルート及びタイプに応じてパターンデータの音高を決定して発音又は消音処理する(ステップS32)。そして、検出された和音のルートと検出されたベース音が等しいか否かを判定する(ステップS33)。等しい場合(YES)、ベースパートの伴奏パターンデータを読み出し、検出された和音のルート及びタイプに応じてパターンデータの音高を決定して発音又は消音処理する(ステップS34)。一方、等しくない場合(NO)、ベースパートの伴奏パターンデータを読み出し、検出されたベース音に応じてパターンデータの音高を決定して発音又は消音処理する(ステップS35)。ステップS34又はステップS35の各処理を行った後、当該自動伴奏割り込み処理は終了する。
このように、コードバッキングパート及びベースパートでは、ある所定の和音名(和音根音(ルート)及び和音種類(タイプ):例えば、Cメジャーセブンス)を基準とする伴奏パターンデータが、指定された和音名、すなわち、ルートバッファ及びタイプバッファの内容に対応してオートベースコード処理によって音高変換される。ただし、ベースパートでは、指定された和音名のルートバッファと検出されたベース音バッファの内容が異なる場合には、伴奏パターンデータがベース音バッファの内容に対応して(つまり、ベース音を基準として)オートベースコード処理によって音高変換される。
【0027】
図2、図4A及び4B、図6のフローチャートに示す一連の処理によって、受信チャンネルテーブル内の設定データによって選択されたチャンネルに基づき、和音検出あるいはベース音検出を行うためのチャンネルを複数設定できるようになるので、従来では検出できなかった和音等による曲の伴奏ができる。すなわち、この実施の形態に係る電子楽器では、演奏者の意図した演奏どおりに、かつ、多彩な表現のできる自動伴奏が行われるようになる。
【0028】
上述の実施例の説明では、MIDI機器として電子アコーディオンを例に挙げて説明したが、例えば、電子オルガンのような2段鍵盤楽器の上鍵盤と下鍵盤、あるいは手鍵盤と足鍵盤などで異なったMIDIチャンネルのノートイベントが出力されるようなものであってもよい。そのような場合、例えば、上鍵盤の演奏パートのMIDIチャンネルと下鍵盤の演奏パートのMIDIチャンネルとを和音検出用受信チャンネルテーブルで「1」にセットすれば、上鍵盤と下鍵盤の演奏鍵の組み合わせに基づき1つの和音を検出することができる。
また、検出した和音をリアルタイムに自動伴奏に利用する例を示したが、リアルタイムに和音を表示することに利用してもよいし、一旦和音をデータとして記録し、これを読み出して自動伴奏や和音表示に利用してもよい。このとき、和音検出装置としては和音を検出してその和音を外部機器へと出力する機能のみを有しており、自動伴奏や和音表示、和音データの記録/再生は他の機器にて行うようにしてもよい。
上述の実施の形態では、MIDIチャンネルのみに言及し、MIDI端子については触れていないが、和音検出装置に複数のMIDI端子が備わっているような場合には、どの端子で受信したMIDIノートイベントを和音やベース音の検出に用いるかを設定するようにしてもよい。
また、この発明に係る和音検出装置あるいはベース音等の特定音検出装置は、外部から入力されるMIDI情報に基づき和音あるいは特定音の検出を行う形態に限らず、内部の鍵盤等で発生した演奏情報に基づき和音あるいは特定音の検出を行う演奏形態でもよい。さらに、演奏情報のデータ形式はMIDIに限らず、他の形態でもよい。
【0029】
電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、上述の実施の形態では、音源装置、自動演奏装置等を1つの電子楽器本体に内臓したものについて説明したが、これに限らず、それぞれが別々に構成され、MIDIインターフェイスや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合アプリケーションソフトウェアを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらには、自動演奏ピアノに適用してもよい。
【0030】
自動演奏装置に適用する場合、演奏データのフォーマットは、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント+絶対時間』形式のもの、イベントの発生時刻を1つ前のイベントからの時間で表した『イベント+相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で演奏データを表した『音高(休符)+符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものでもよい。
また、複数チャンネル分の演奏データが存在する場合は、複数のチャンネルのデータが混在した形式であってもよいし、各チャンネルのデータがトラック毎に別れているような形式であってもよい。
メモリ上において、時系列の演奏データが連続する領域に記憶されるものに限らず、飛び飛びの領域に散在して記憶されているデータを、連続するデータとして別途管理するようにしてもよい(すなわち、時系列的に連続するデータとして管理することができればよく、メモリ上で連続して記憶されているか否かは問題でない)。
さらに、自動演奏のテンポを変更する方法は、テンポクロックの周期を変更するものや、テンポクロックの周期はそのままでタイミングデータの値を修正するもの、あるいは1回の処理においてタイミングデータをカウントする値を変更するもの等、どのようなものであってもよい。
【0031】
【発明の効果】
この発明によれば、複数の異なった演奏パート(例えば、MIDIチャンネル)の演奏情報を混合したものに基づいて和音を検出することができることになるので、多様な和音での伴奏を行うことができ、つまりは、従来では伴奏を行うことのできなかった和音についても伴奏を行わせることができるので、多彩な和音演奏を行うことができる、という効果がある。
【図面の簡単な説明】
【図1】この発明に係る和音検出装置を内蔵した電子楽器の構成を示すハードブロック図である。
【図2】図1に示した電子楽器を自動伴奏装置として動作させる場合のメイン処理の一例を示すフロー図である。
【図3】この発明に係る和音検出装置において用いられるテーブルの一実施例を示した構成概念図であり、図3(A)は和音検出用の受信チャンネルテーブルを示し、図3(B)はベース音検出用の受信チャンネルテーブルを示したものである。
【図4A】図2のメイン処理に対して、MIDIイベント信号を受信する度に割り込んで実行されるMIDIイベント受信割り込み処理の一例を、その前半部分について示すフロー図。
【図4B】 同MIDIイベント受信割り込み処理の一例の後半部分を示すフロー図。
【図5】入力された和音及びベース音と入力に対して検出される和音及びベース音との対応の一例を示した一覧表である。
【図6】図2のメイン処理に対して、所定の時間間隔毎に割り込んで実行される自動伴奏割り込み処理の一例を示すフロー図である。
【図7】アコーディオンの形態の一例を示す斜視図である。
【符号の説明】
1…CPU、1A…タイマ、2…プログラムメモリ(ROM)、3…ワーキングメモリ(RAM)、4…押鍵検出回路、4A…鍵盤、5…スイッチ検出回路、5A…テンキー&キーボード&各種スイッチ、6…表示回路、7…音源回路、8…効果回路、8A…サウンドシステム、9…外部記憶装置、10…MIDIインタフェース、10A…他のMIDI機器、11A…サーバコンピュータ、11B…通信ネットワーク、1D…データ及びアドレスバス
Claims (4)
- 複数の演奏パートの中から和音検出の対象とする複数の異なる演奏パートの組み合わせを指定する指定手段であって、該複数の異なる演奏パートの組み合わせを複数記憶したテーブルと、前記テーブルから1つの組み合わせを選択する選択手段とを含むものと、
複数の演奏パートについての演奏情報のうち、前記指定手段によって指定された組み合わせに該当する演奏パートについての演奏情報に基づき和音を検出する和音検出手段と
を具えた和音検出装置。 - 前記テーブルに記憶する前記組み合わせの内容を編集する編集手段を更に具えた請求項1に記載の和音検出装置。
- 和音検出処理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータに付属されたメモリには、複数の演奏パートの中から和音検出の対象とする複数の異なる演奏パートの組み合わせを複数記憶したテーブルが記憶されており、前記和音検出処理プログラムは、前記コンピュータに、
前記テーブルに記憶された前記複数の異なる演奏パートの組み合わせのうち選択された1つの組み合わせを読み出させるステップと、
前記読み出された1つの組み合わせに該当する演奏パートを、和音検出の対象とする演奏パートとして指定させるステップと、
複数の演奏パートについての演奏情報のうち、前記ステップによって指定された前記1つの組み合わせに該当する演奏パートについての演奏情報に基づき和音を検出させるステップと
を実行させることからなる記録媒体。 - 前記和音検出処理プログラムは、前記コンピュータに、前記テーブルに記憶する前記組み合わせの内容をユーザに編集させるようにするステップを更に実行させるものである請求項3に記載の記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05117599A JP3632487B2 (ja) | 1999-02-26 | 1999-02-26 | 電子楽器等における和音検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05117599A JP3632487B2 (ja) | 1999-02-26 | 1999-02-26 | 電子楽器等における和音検出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000250556A JP2000250556A (ja) | 2000-09-14 |
JP3632487B2 true JP3632487B2 (ja) | 2005-03-23 |
Family
ID=12879510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05117599A Expired - Fee Related JP3632487B2 (ja) | 1999-02-26 | 1999-02-26 | 電子楽器等における和音検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3632487B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4517299B2 (ja) * | 2005-12-08 | 2010-08-04 | カシオ計算機株式会社 | コード教習装置およびコード教習プログラム |
JP6064343B2 (ja) * | 2012-03-14 | 2017-01-25 | カシオ計算機株式会社 | コード抽出装置、その方法及びそのプログラム |
AT521870B1 (de) | 2018-10-10 | 2020-10-15 | Limex Elektronische Geraete Gmbh | Verfahren zur Erkennung der Liedtonart |
-
1999
- 1999-02-26 JP JP05117599A patent/JP3632487B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000250556A (ja) | 2000-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001075564A (ja) | 演奏データ処理装置及び方法 | |
JP3915807B2 (ja) | 奏法自動判定装置及びプログラム | |
JP3533972B2 (ja) | 電子楽器の設定制御装置 | |
JP3815249B2 (ja) | 楽譜表示装置及び楽譜表示プログラム | |
JP3632487B2 (ja) | 電子楽器等における和音検出装置 | |
JP3551842B2 (ja) | アルペジオ生成装置及びその記録媒体 | |
JP4670686B2 (ja) | コード表示装置及びプログラム | |
JP7419830B2 (ja) | 伴奏音生成装置、電子楽器、伴奏音生成方法および伴奏音生成プログラム | |
JP3632536B2 (ja) | パート選択装置 | |
JP3671788B2 (ja) | 音色設定装置および音色設定方法並びに音色設定プログラムを記録したコンピュータで読み取り可能な記録媒体 | |
JP3843688B2 (ja) | 楽曲データ編集装置 | |
JP3620396B2 (ja) | 情報修正装置及び情報修正プログラムを記録した媒体 | |
JP5104414B2 (ja) | 自動演奏装置及びプログラム | |
JP3654227B2 (ja) | 楽曲データ編集装置及びプログラム | |
JP3340565B2 (ja) | 自動伴奏装置 | |
JP3933070B2 (ja) | アルペジオ生成装置及びプログラム | |
JP3752956B2 (ja) | 演奏ガイド装置および演奏ガイド方法並びに演奏ガイドプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2904020B2 (ja) | 自動伴奏装置 | |
JP3116948B2 (ja) | 自動伴奏装置 | |
JP3956961B2 (ja) | 演奏データ処理装置及び方法 | |
JP4172509B2 (ja) | 奏法自動判定装置及び方法 | |
JP2005017676A (ja) | 自動演奏装置及びプログラム | |
JP4186802B2 (ja) | 自動伴奏生成装置及びプログラム | |
JP3738634B2 (ja) | 自動伴奏装置、及び記録媒体 | |
JP3646654B2 (ja) | 楽音制御指示装置及び楽音制御指示方法並びに記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040831 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041101 |
|
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: 20041130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041213 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090107 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100107 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120107 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130107 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |