説明

電子楽器

【課題】金管楽器の演奏をより忠実に模擬することができる電子楽器を提供する。
【解決手段】現在発音中であるノートAに基づく楽音に対して、発音を停止するように指示するノートオフ情報を出力し、ノートBに基づく楽音の発生を開始するように指示するノートオン情報を出力する。この時、ノートBの音高から所定の変化幅ΔPだけ低い音高を指定し、それ以後、徐々にノートBの音高に変化するように所定時間間隔で、ピッチベンド情報を音源7に出力する。指示した音高がノートBの音高に至った場合に、ピッチベンド情報の出力を停止する。ノートBのノートオフ情報を入力した時刻t4には、ノートBのノートオフ情報を音源7に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子楽器に関し、特に金管楽器の演奏をより忠実に模擬することができる電子楽器に関する。
【背景技術】
【0002】
従来、鍵盤による演奏で金管楽器、特にトロンボーンの演奏を模擬する電子楽器が提案されている。特開平6−110456号公報(特許文献1)には、トロンボーンの演奏音を模擬する電子楽器において、音高が指定されると、その音高に対応するトロンボーンに備えられているスライドの位置を取得し、第1の音高に対応するスライド位置と、第1の音高の次に指定された第2の音高に対応するスライドの位置の変化に応じた音高変化を行う技術が開示されている。また、特許2658629号公報(特許文献2)には、金管楽器の演奏音を模擬する電子楽器において、第1の音高と第2の音高とが特定の倍音関係(例えば、オクターブや5度)にあるか否かに応じて、音高変化の態様を異ならせる技術が開示されている。
【特許文献1】特開平6−110456号公報
【特許文献2】特許2658629号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記特許文献1および特許文献2に開示された技術では、トロンボーンなどの金管楽器において、スライドを移動することによる音高変化と、唇等の操作による倍音列の移動による音高変化とを適切に切り替えて金管楽器の音高の変化を模擬することができないという問題点があった。
【0004】
本発明は、上述した問題点を解決するためになされたものであり、金管楽器の演奏をより忠実に模擬することができる電子楽器を提供することを目的としている。
【課題を解決するための手段】
【0005】
上記課題を解決するために、請求項1記載の電子楽器は、所定の音高の楽音の発生の開始を指示するノートオン情報を入力する入力手段と、楽音を発生する音源に対し、その入力手段により入力されたノートオン情報に応じて指示を行うものであり、前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、前記第1のノートオン情報が示す第1の音高と、前記第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かを判断する音高差判断手段と、その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように前記音源に指示する第1の指示手段と、前記音高差判断手段により、第1の音高と第2の音高との音高差が前記所定の値以下ではないと判断された場合は、第1の音高と第2の音高とのいずれか音高が高い音高に基づく楽音の音高を徐々に変化するように前記音源に指示する第2の指示手段とを備えている。
【0006】
請求項2記載の電子楽器は、所定の音高の楽音の発生の開始を指示するノートオン情報を入力する入力手段と、楽音を発生する音源に対し、その入力手段により入力されたノートオン情報に応じて指示を行うものであり、複数の連続する音高により構成される音域を複数特定する音域特定手段と、前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、第1のノートオン情報が示す第1の音高と、第2のノートオン情報が示す第2の音高とが、前記音域特定手段により特定される複数の音域の同一の音域に含まれるか否かを判断する音域判断手段と、その音域判断手段により、第1の音高と第2の音高とが同一の音域に含まれると判断された場合は、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように前記音源に指示する第1の指示手段と、前記音域判断手段により、第1の音高と第2の音高とが同一の音域に含まれないと判断された場合は、第1の音高と第2の音高とのいずれか音高が高い音高に基づく楽音の音高を徐々に変化するように前記音源に指示する第2の指示手段とを備えている。
【0007】
請求項3記載の電子楽器は、請求項1または2記載の電子楽器において、前記第2の指示手段は、第2の音高が第1の音高より高い場合は、第2のノートオン情報を入力した時、第2の音高に基づく楽音の発生を開始するように指示するとともに、その指示に基づいて発生される楽音の音高が、第2の音高から所定の音高幅だけ低い音高から第2の音高へ徐々に変化するように指示するものである。
【0008】
請求項4記載の電子楽器は、請求項1から3のいずれかに記載の電子楽器において、前記第2の指示手段は、第2の音高が第1の音高より低い場合は、第2のノートオン情報を入力した時から第1の音高に基づく楽音の音高を徐々に低くし、その音高が第1の音高から所定の音高幅だけ低くなった時、第2の音高に基づく楽音の発生を開始するように指示するものである。
【0009】
請求項5記載の電子楽器は、所定の音高の楽音の発生の開始を指示するノートオン情報を入力する入力手段と、楽音を発生する音源に対し、その入力手段により入力されたノートオン情報に応じて指示を行うものであり、前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、前記第1のノートオン情報が示す第1の音高と、前記第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かを判断する音高差判断手段と、その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように前記音源に指示する第1の指示手段と、前記音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下ではないと判断された場合は、第1の音高に基づく楽音の音高を第2の音高に近づくように徐々に変化し、その音高の変化幅が所定の値になった場合に第2の音高に基づく楽音の発生の開始を前記音源に指示する第2の指示手段とを備えている。
【0010】
請求項6記載の電子楽器は、所定の音高の楽音の発生の開始を指示するノートオン情報を入力する入力手段と、楽音を発生する音源に対し、その入力手段により入力されたノートオン情報に応じて指示を行うものであり、前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、前記第1のノートオン情報が示す第1の音高と、前記第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かを判断する音高差判断手段と、その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように前記音源に指示する第1の指示手段と、前記音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下ではないと判断された場合は、第2の音高に基づく楽音の発生を開始するように指示し、その指示に基づく楽音の音高が、第2の音高から所定の音高幅だけ第1の音高の方に変位した音高から第2の音高へ徐々に変化するように前記音源に指示する第3の指示手段とを備えている。
【0011】
請求項7記載の電子楽器は、請求項1から4のいずれかに記載の電子楽器において、前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、その第2のノートオン情報と前記第1のノートオン情報に対応するノートオフ情報とに基づいてレガート演奏であるか否かを判断するレガート演奏判断手段を備え、そのレガート演奏判断手段により、レガート演奏が行われたと判断された場合に、前記第1の指示手段、または第2の指示手段は、前記音源に指示するものである。
【発明の効果】
【0012】
請求項1記載の電子楽器によれば、入力手段に第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、音高差判断手段により第1のノートオン情報が示す第1の音高と、第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かが判断される。そして、その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の指示手段により、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように音源に指示される。よって、トロンボーンのスライドを伸縮操作することなどによる音高変化を模擬することができる。
【0013】
また、音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下ではないと判断された場合は、第2の指示手段により第1の音高と第2の音高とのいずれか音高が高い音高に基づく楽音の音高を徐々に変化するように音源に指示される。トロンボーンの演奏では、第1の音高と第2の音高との音高差が大きい場合は、倍音列が移動されるとともにスライドを伸縮操作することによりポルタメント演奏が行われるが、第1の音高と第2の音高とのうち音高が高い方の音高を徐々に変化するように演奏され、第2の指示手段により、この演奏が模擬される。
【0014】
よって、スライドを伸縮操作することによる音高変化と、倍音列を移動することによる音高変化とを適切に切り代えて演奏を行うことができ、金管楽器の演奏をより忠実に模擬することができるという効果がある。
【0015】
請求項2記載の電子楽器によれば、音域特定手段は、複数の連続する音高により構成される音域を複数特定する。入力手段に第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、音高差判断手段により第1のノートオン情報が示す第1の音高と、第2のノートオン情報が示す第2の音高とが音域特定手段により特定される同一の音域に含まれるか否かが音域判断手段により判断される。そして、その音域判断手段により、第1の音高と第2の音高とが同一の音域に含まれると判断された場合は、第1の指示手段により、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように音源に指示される。よって、トロンボーンのスライドを伸縮操作することによる音高変化を模擬することができる。
【0016】
また、音域判断手段により、第1の音高と第2の音高とが同一の音域に含まれないと判断された場合は、第2の指示手段により第1の音高と第2の音高とのいずれか音高が高い音高に基づく楽音の音高を徐々に変化するように音源に指示される。よって、トロンボーンの演奏におけるスライドを伸縮操作することによる音高の変化と、倍音列の移動による音高の変化とを適切に切り替えて演奏を行うことができ、金管楽器の演奏をより忠実に模擬することができるという効果がある。
【0017】
請求項3記載の電子楽器によれば、請求項1または2記載の電子楽器の奏する効果に加え、第2の指示手段は、第2の音高が第1の音高より高い場合は、第2のノートオン情報を入力した時、第2の音高に基づく楽音の発生を開始するように指示するとともに、その指示に基づいて発生される楽音の音高が、第2の音高から所定の音高幅だけ低い音高から第2の音高へ徐々に変化するように指示する。第2の音高を倍音列を移動することにより音高を形成し、第2の音高から所定の音高幅だけ低い音高から第2の音高までをスライドの伸縮操作により変化するように模擬することができる。よって、トロンボーンの演奏におけるスライドを伸縮操作することによる音高の変化と、倍音列の移動による音高の変化とを適切に切り替えて演奏を行うことができ、金管楽器の演奏をより忠実に模擬することができるという効果がある。
【0018】
請求項4記載の電子楽器によれば、請求項1から3のいずれかに記載の電子楽器の奏する効果に加え、第2の指示手段は、第2の音高が第1の音高より低い場合は、第2のノートオン情報を入力した時から第1の音高に基づく楽音の音高を徐々に低くし、その音高が第1の音高から所定の音高幅だけ低くなった時、第2の音高に基づく楽音の発生を開始するように指示するものである。第1の音高から所定の音高幅までをトロンボーンのスライドの伸縮操作による音高変化とし、第2の音高に基づく楽音の音高を倍音列を移動することにより形成する演奏を模擬することができる。よって、トロンボーンの演奏におけるスライドを伸縮操作することによる音高の変化と、倍音列の移動による音高の変化とを適切に切り替えて演奏を行うことができ、金管楽器の演奏をより忠実に模擬することができるという効果がある。
【0019】
請求項5記載の電子楽器によれば、入力手段に第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、音高差判断手段により第1のノートオン情報が示す第1の音高と、第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かが判断される。そして、その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の指示手段により、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように音源に指示される。よって、トロンボーンのスライドを伸縮操作することによる音高変化を模擬することができる。
【0020】
また、音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下ではないと判断された場合は、第2の指示手段により第1の音高に基づく楽音の音高を第2の音高に近づくように徐々に変化し、その音高の変化幅が所定の値になった場合に第2の音高に基づく楽音の発生の開始を音源に指示する。よって、トロンボーンの演奏において、第1の音高と第2の音高との音高差が大きい場合に、まず、スライドの伸縮操作による音高変化を行い、所定の音高だけ変化した後、倍音列を移動して第2の音高の楽音を発生するという演奏を模擬することができる。
【0021】
よって、トロンボーンの演奏におけるスライドを伸縮操作することによる音高の変化と、倍音列の移動による音高の変化とを適切に切り替えて演奏を行うことができ、金管楽器の演奏をより忠実に模擬することができるという効果がある。
【0022】
請求項6記載の電子楽器によれば、入力手段に第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、音高差判断手段により第1のノートオン情報が示す第1の音高と、第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かが判断される。そして、その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の指示手段により、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように音源に指示される。よって、トロンボーンのスライドを伸縮操作することによる音高変化を模擬することができる。
【0023】
また、音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下ではないと判断された場合は、第2の指示手段により第2の音高に基づく楽音の発生を開始するように指示し、その指示に基づく楽音の音高が、第2の音高から所定の音高幅だけ第1の音高の方に変位した音高から第2の音高へ徐々に変化するように音源に指示する。よって、トロンボーンの演奏において、第1の音高と第2の音高との音高差が大きい場合に、まず、倍音列を変化して第2の音高から所定の音高だけ第1の音高に近い音高で発音を開始し、その音高をスライドの伸縮操作により第2の音高に変化するという演奏を模擬することができる。よって、トロンボーンの演奏におけるスライドを伸縮操作することによる音高の変化と、倍音列の移動による音高の変化とを適切に切り替えて演奏を行うことができ、金管楽器の演奏をより忠実に模擬することができるという効果がある。
【0024】
請求項7記載の電子楽器によれば、請求項1から6のいずれかに記載の電子楽器の奏する効果に加え、入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、第2のノートオン情報と第1のノートオン情報に対応するノートオフ情報とに基づいてレガート演奏であるか否かを判断するレガート演奏判断手段を備え、そのレガート演奏判断手段により、レガート演奏が行われたと判断された場合に、第1の指示手段、または第2の指示手段は、音源に指示するものであるので、演奏者がレガート演奏を行った場合にのみ、音高が徐々に変化され、レガート演奏ではない演奏を行った場合は、指示された音高の楽音を直ぐに発生するように指示することができる。よって、演奏者が任意に音高変化を徐々に行うか否かを指示することができるという効果がある。
【発明を実施するための最良の形態】
【0025】
以下、本発明の好ましい第1の実施形態について、添付図面を参照して説明する。図1は、本発明の一実施形態である電子楽器1の電気的構成を示したブロック図である。電子楽器1は、CPU2(中央処理装置)と、そのCPU2により実行される制御プログラム3aを記憶したROM3(リード・オンリ・メモリ)と、CPU2が制御プログラムを実行する際の作業用のメモリエリア等を有するRAM4(ランダム・アクセス・メモリ)と、電子楽器1に指示を行う操作子や、その操作子により設定されたパラメータなどを表示する表示器が設けられた操作パネル5と、MIDI規格に適合した演奏情報を入力するMIDIインターフェース(I/F)6と、そのMIDIインターフェース6により入力された演奏情報に対応した楽音信号を生成する音源7と、D/A変換器8とを主に備えている。
【0026】
MIDIインターフェース6には、MIDI規格に適合した演奏情報を鍵盤の操作に応じて出力するMIDI鍵盤装置20が接続され、D/A変換器8には、D/A変換器8により出力された楽音を増幅するアンプ21が接続され、そのアンプ21には、そのアンプ21により増幅された楽音を放音するスピーカ22が接続される。
【0027】
CPU2には、時間経過に従って音源7が生成する楽音の音高を変化させる場合の計時を行うタイマ2aが設けられている。このタイマ2aは、所定時間(例えば1msec)を計時するたびに、CPU2に割り込みを発生するように構成されている。
【0028】
ROM3には、図5および図6に示すフローチャートの処理に対応する制御プログラム3aや正弦テーブル3bや各種定数などが記憶される。正弦テーブル3bは、音高を徐々に変化する場合に参照され、正弦波形の一部に沿って滑らかに音高が変化するように音源に対し指示が行われる。詳細については、後述する。
【0029】
RAM4には、前回入力された演奏情報や今回入力された演奏情報やフラグなどを記憶するテンポラリメモリ4aが設けられている。このテンポラリメモリ4aに記憶される情報については、図4を参照して後述する。
【0030】
音源7には、各種楽音の波形を記憶し、CPU2により指示された波形を読み出すことによりデジタル信号の楽音を発生することができるように構成されている。音源7により出力されたデジタル信号は、D/A変換器8によりアナログ信号に変換され、アンプ21に入力される。
【0031】
音源7に、指示される情報は、MIDI規格に準拠したフォーマットであり、楽音の発生を指示する情報をノートオン情報、楽音の発生の停止を指示する情報をノートオフ情報、ノートオン情報により指示された音高の変更する指示する情報をピッチベンド情報と称する。ノートオン情報は、その情報がノートオン情報であることを示すステータス情報と、発音させる楽音の音高を指示するノート情報と、押鍵速度を示すベロシティ情報とを含むものである。また、ノートオフ情報は、その情報がノートオフ情報であることを示すステータス情報と、発音を停止させる楽音の音高を指示するノート情報と、離鍵速度を示すベロシティ情報とを含むものである。また、ピッチベンド情報は、その情報がピッチベンド情報であることを示すステータス情報と、現在発音中の楽音のノートオン情報により指示された音高から高く、または低く音高を変化させる音高幅を指示するベンド値情報を含むものである。
【0032】
次に、図2を参照してモード1のグリッサンドについての動作の概略を説明し、図3を参照してモード2のグリッサンドについて動作の概略を説明する。モード1は、新たに入力されたノートオン情報の音高と、それまでに発音していた音高との音高差Iが所定の値以下である場合の音高変化の態様であり、トロンボーンのスライドの伸縮操作による音高変化を模擬するモードである。また、モード2は、新たに入力されたノートオン情報の音高と、それまでに発音していた音高との音高差Iが所定の値以下でない場合の音高変化の態様であり、トロンボーンの演奏における倍音列の移動とスライドの伸縮操作による音高変化を模擬するモードである。なお、グリッサンドを行わない通常の演奏の態様をモード0とする。
【0033】
ノートオン情報およびノートオフ情報を総称してノートイベントと称し、まず、ノートイベントA(以下、「ノートA」と称す)が発生し、次にノートイベントB(以下、「ノートB」と称す)が発生した場合に、ノートAの音高とノートBの音高との音高差Iが算出され、その音高差Iが所定の値(例えば6半音)より大きい場合は、モード1の態様でグリッサンドが行われ、その音高差Iが所定の値以下である場合は、モード2の態様でグリッサンドが行われる。なお、本実施形態では、所定の音高から異なる音高へ徐々に音高を変化することをグリッサンドと称し、ポルタメントと区別するものではない。
【0034】
図2および図3は、横軸を時間(単位:msec)、縦軸を音高(単位:半音)とし、図2(a)、図2(c)、図3(a)、図3(c)は、入力されたノートAとノートBとの2つのノートイベントを示し、図2(b)、図2(d)、図3(b)、図3(d)は、音源7に出力するノートイベントと、ピッチベンド情報により指示される音高の変化をそれぞれ示すグラフである。また、図2(a)、図2(b)、図3(a)、図3(b)は、ノートAの音高がノートBの音高より低い場合であり、図2(c)、図2(d)、図3(c)、図(d)は、ノートAの音高がノートBの音高より高い場合をそれぞれ示している。
【0035】
これらの図において、各ノートイベントは、音高を示す水平な実線とその実線を囲む長方形とで示され、各ノートイベントを示す長方形の左端の時刻にノートオン情報が入力または出力され、各ノートイベントを示す長方形の右端の時刻にノートオフ情報が入力または出力されることを示している。
【0036】
まず、図2を参照してモード1の態様で行われるグリッサンドについて説明する。図2(a)は、入力ノートイベントを示し、詳細には、時刻t1に、ノートAのノートオン情報が入力され、続いて時刻t2に、ノートBのノートオン情報が入力され、次に時刻t3に、ノートAのノートオフ情報が入力され、時刻t4にノートBのノートオフ情報が入力される場合を示す。また、ノートBの音高は、ノートAの音高より高く、ノートAとノートBとの音高差Iは、所定の値(例えば6半音)以下である。また、ノートAのノートオフ情報を入力した時刻t3より前である時刻t2にノートBのノートオン情報を入力しているので、ノートBは、レガート演奏されたと判断される。
【0037】
図2(b)は、図2(a)に示す入力ノートイベントに対応して音源7に出力する出力ノートイベントを示す。図2(b)が示すように、まず、ノートAのノートオン情報が入力された時刻t1に、そのノートオン情報が音源7に出力される。
【0038】
次に、ノートBのノートオン情報が入力された時刻t2において、レガート演奏が行われたと判断し、さらにノートAとノートBとの音高差Iが、所定の値以下であるので、モード1の態様で音高変化するように音源7に指示される。具体的には、現在発音中であるノートAに基づく発音に対して、ノートAの音高からノートBの音高に徐々に変化するように所定時間間隔で、ピッチベンド情報を音源7に出力し、指示した音高がノートBの音高に至った場合に、ピッチベンド情報の出力を停止する。従って、時刻t2にノートBのノートオン情報が入力されるが、音源7にはノートオン情報が出力されない。また時刻t3にノートAのノートオフ情報が入力されるが、音源7にはノートオフ情報が出力されず、時刻t4にノートBのノートオフ情報が入力された時、音源7にノートAのノートオフ情報が出力される。
【0039】
図2(c)は、図2(a)と同様に、入力イベントを示し、時刻t1に、ノートAのノートオン情報が入力され、続いて時刻t2に、ノートBのノートオン情報が入力され、次に時刻t3に、ノートAのノートオフ情報が入力され、時刻t4にノートBのノートオフ情報が入力される場合を示す。また、ノートBの音高は、ノートAの音高より低く、ノートAとノートBとの音高差Iは、所定の値(例えば6半音)以下である。
【0040】
図2(d)は、図2(c)に示す入力ノートイベントに対応して音源7に出力する出力ノートイベントを示す。図2(d)が示すように、まず、ノートAのノートオン情報が入力された時刻t1に、そのノートオン情報が音源7に出力される。
【0041】
次に、ノートBのノートオン情報が入力された時刻t2において、レガート演奏が行われたと判断し、さらにノートAとノートBとの音高差Iが、所定の値以下であるので、モード1の態様で音高変化するように音源7に指示される。具体的には、現在発音中であるノートAに基づく発音に対して、ノートAの音高からノートBの音高に徐々に変化するように所定時間間隔で、ピッチベンド情報を音源7に出力し、指示した音高がノートBの音高に至った場合に、ピッチベンド情報の出力を停止する。従って、時刻t2にノートBのノートオン情報が入力されるが、音源7にはノートオン情報が出力されない。また時刻t3にノートAのノートオフ情報が入力されるが、音源7にはノートオフ情報が出力されない。時刻t4にノートBのノートオフ情報が入力された場合は、音源7にノートAのノートオフ情報が出力される。
【0042】
徐々に音高を変化する時間であるグリッサンド時間をT(単位:msec)、ノートAの音高とノートBの音高との音高差をI(単位:半音)、定数をA、Bとすると、グリッサンド時間Tは、次に示す数式1により算出される。
T=A×[B×(I−6)+1]・・・(1)
なお、定数Aは、例えば、500、定数Bは、例えば、0.1とする。この変化時間内の音高は、正弦(サイン)関数に基づいて算出される。この正弦関数は、音高を徐々に高くする場合は、−π/2(−90度)から+π/2(+90度)までの関数を用い、音高を徐々に低くする場合は、+π/2(+90度)から+3π/2(+270度)までの関数を用いる。
【0043】
グリッサンド時間をT、音高の変化を開始してからの時間である現在時刻をt、音高を徐々に高くする場合の時刻tにおけるノートBの音高に対するベンド値をPUp、音高を徐々に低くする場合の時刻tにおけるノートAの音高に対するベンド値をPDwとするとPUp、PDwは、次に示す数式2、数式3によりそれぞれ算出される。なお、サイン関数は、ROM3の正弦テーブル3bに記憶され、この正弦テーブル3bを参照することにより、サイン(sin)の値が求められる。
PUp=(I/2)×{sin(((π×t)/T)−π/2)+1}・・・(2)
PDw=(I/2)×{sin(((π×t)/T)+π/2)−1}・・・(3)
これらのPUpまたはPDwの値は、所定時間間隔で算出され、ピッチベンド情報として音源7に出力される。よって、音源7は、正弦波の一部のカーブに従い、滑らかに音高を徐々に高く、または低く変化する楽音を発生する。
【0044】
以上のように、モード1は、ノートAとノートBの音高差Iが所定の値以下の場合において、トロンボーンのスライドを伸縮操作することによる音高変化を模擬した音高変化を行うものである。
【0045】
次に、図3を参照して、モード2の態様で行われるグリッサンドについて説明する。図3(a)は、モード2における入力ノートイベントを示し、時刻t1に、ノートAのノートオン情報が入力され、続いて時刻t2に、ノートBのノートオン情報が入力され、次に時刻t3に、ノートAのノートオフ情報が入力され、時刻t4にノートBのノートオフ情報が入力される場合を示す。また、ノートBの音高は、ノートAの音高より高く、ノートAとノートBとの音高差Iは、所定の値(例えば6半音)より大きい場合である。また、図2と同様に、ノートAのノートオフ情報を入力した時刻t3より前である時刻t2にノートBのノートオン情報を入力しているので、ノートAとノートBとは、レガート演奏されたと判断される。
【0046】
図3(b)は、図3(a)に示す入力ノートイベントに対応して音源7に出力する出力ノートイベントを示す。図3(b)が示すように、まず、ノートAのノートオン情報が入力された時刻t1に、そのノートオン情報が音源7に出力される。
【0047】
次に、ノートBのノートオン情報が入力された時刻t2において、レガート演奏が行われたと判断し、さらにノートAとノートBとの音高差Iが、所定の値より大きいので、モード2の態様でグリッサンドを行うように音源7に指示する。具体的には、現在発音中であるノートAに基づく楽音に対して、発音を停止するように指示するノートオフ情報を出力し、ノートBに基づく楽音の発生を開始するように指示するノートオン情報を出力する。この時、ノートBの音高から所定の変化幅ΔPだけ低い音高を指定し、それ以後、徐々にノートBの音高に変化するように所定時間間隔で、ピッチベンド情報を音源7に出力する。指示した音高がノートBの音高に至った場合に、ピッチベンド情報の出力を停止する。ノートBのノートオフ情報を入力した時刻t4には、ノートBのノートオフ情報を音源7に出力する。
【0048】
図3(c)は、図3(a)と同様に、入力イベントを示し、時刻t1に、ノートAのノートオン情報が入力され、続いて時刻t2に、ノートBのノートオン情報が入力され、次に時刻t3に、ノートAのノートオフ情報が入力され、時刻t4にノートBのノートオフ情報が入力される。ノートBの音高は、ノートAの音高より低く、ノートAとノートBとの音高差Iは、所定の値(例えば6半音)より大きい場合である。
【0049】
図3(d)は、図3(c)に示す入力ノートイベントに対応して音源7に出力する出力ノートイベントを示す。図3(d)が示すように、まず、ノートAのノートオン情報が入力された時刻t1に、そのノートオン情報が音源7に出力される。
【0050】
次に、ノートBのノートオン情報が入力された時刻t2において、レガート演奏が行われたと判断し、さらにノートAとノートBとの音高差Iが、所定の値より大きいので、モード2の態様でグリッサンドを行うように音源7に指示される。具体的には、現在発音中であるノートAに基づく発音に対して、ノートAの音高から徐々に低く変化するように所定時間間隔で、ピッチベンド情報を音源7に出力し、指示した音高がノートAの音高から所定の変化幅ΔPだけ低い音高に至った場合に、ピッチベンド情報の出力を停止するとともに、ノートBの音高で新たな楽音の発生を開始するように指示するノートオン情報を出力する。ノートBのノートオフ情報を入力した時刻t4には、ノートBのノートオフ情報を音源7に出力する。
【0051】
なお、モード2では、徐々に音高を変化する時間であるグリッサンド時間Tは、所定の値(例えば、300msec)に設定され、また変化幅ΔPも所定値(例えば、2半音)に設定される。グリッサンド時間をT、音高の変化を開始してからの時間を示す現在時刻をt、音高を徐々に高くする場合の時刻tにおけるノートBの音高に対するベンド値をPUp、音高を徐々に低くする場合の時刻tにおけるノートAの音高に対するベンド値をPDwとするとPUp、PDwは、次に示す数式4、数式5によりそれぞれ算出される。
PUp=(ΔP/T)×t−ΔP・・・(4)
PDw=−(ΔP/T)×t・・・(5)
以上のように、モード2は、ノートAとノートBとの音高差Iが所定の値より大きい場合において、トロンボーンの演奏における倍音列の移動とスライドを伸縮操作することによる音高変化を模擬した音高変化を行うものである。
【0052】
次に、図4を参照して、RAM4のテンポラリメモリ4aの構成と、記憶される情報について説明する。図4は、テンポラリメモリ4aの構成と記憶される情報とを示すテーブルである。このテーブルが示すように、テンポラリメモリ4aには、ノートAに関する情報が記憶されるノートAメモリ4a1と、ノートBに関する情報が記憶されるノートBメモリ4a2と、モードフラグが記憶されるモードフラグメモリ4a3と、グリッサンド時間Tが記憶されるグリッサンド時間メモリ4a4と、音高差Iが記憶される音高差メモリ4a5が備えられる。
【0053】
ノートAメモリ4a1と、ノートBメモリ4a2に記憶される情報は、ステータス(S1、S2)と、音高(N1、N2)と、ベロシティ(V1、V2)により構成される。ステータスS1、S2は、ノートオン情報を入力した場合にノートオンを入力したことを示すデータ(以下、「オン」と称す)が記憶され、ノートオフ情報を音源7に出力した場合に、ノートオフ情報を出力したことを示すデータ(以下、「オフ」と称す)に書き換えられる。音高N1、N2は、入力されたノートオン情報に含まれるノートナンバにより示される音高であり、ベロシティV1、V2は、入力されたノートオン情報に含まれるベロシティの値である。
【0054】
新たなノートオン情報を入力した場合は、ノートBメモリ4a2に記憶されているステータスS2、音高N2およびベロシティV2が、ノートAメモリ4a1のそれぞれの記憶位置に転記され、ノートBメモリ4a2の記憶位置に、新たなノートオン情報に基づいて、それぞれの情報が記憶される。
【0055】
モードフラグメモリ4a3に記憶されるモードフラグは、グリッサンドを行わない場合、0に設定され、モード1の態様でグリッサンドを行う場合は1に、モード2の態様でグリッサンドを行う場合は2に設定される。CPU2は、レガート演奏ではないと判断し、グリッサンドを行わないと決定すると、このモードフラグを0に設定し、モード1の態様でグリッサンドを行うと決定すると、タイマ割込を許可するとともに、このモードフラグを1に設定し、モード2の態様でグリッサンドを行うと決定すると、タイマ割込を許可するとともに、このモードフラグを2に設定する。
【0056】
グリッサンド時間メモリ4a4に記憶されるグリッサンド時間Tは、上述の通りモード1に設定された場合は、数式1により算出された値が設定され、モード2に設定された場合は、所定の時間に設定される。
【0057】
音高差メモリ4a5に記憶される音高差Iは、グリッサンドを行うことが決定され、モードを1とするか2とするかを判断する際に、ノートAの音高とノートBの音高との音高差Iが算出され、この音高差メモリ4a5に記憶される。
【0058】
次に、図5および図6を参照して、CPU2が実行する処理について説明する。図5は、イベントメイン処理を示すフローチャートであり、図6は、イベントメイン処理おいて、タイマ割込が設定された場合に、タイマ2aが所定時間毎に発生するタイマ割込に応じて起動されるタイマ割込処理を示すフローチャートである。
【0059】
まず、図5を参照して、ノートオン情報またはノートオフ情報を入力した時に起動されるイベントメイン処理について説明する。なお、電子楽器1の電源が投入された場合、CPU2は、タイマ割込を禁止するものとする。
【0060】
このイベントメイン処理では、まず、入力されたイベントの種類がノートオン情報か否かを判断する(S1)。入力されたイベントの種類がノートオン情報である場合は(S1:Yes)、次にモードフラグが0に設定されているか否かを判断する(S2)。モードフラグが0に設定されている場合は(S2:Yes)、ノートBメモリ4a2にノートBとして記憶されているステータスS2、音高N2、ベロシティV2をノートAメモリ4a1に転記し(S3)、新たに入力されたノートオン情報のステータス、音高、ベロシティをノートBメモリ4a2に記憶する(S4)。
【0061】
次に、今回入力したノートオン情報がレガート演奏であったか否かを判断する(S5)。このレガート演奏か否かの判断は、ノートAメモリ4a1のステータスS1が、オンか、オフかにより判断され、ノートAのステータスS1が、オンの場合は、ノートAに対応するノートオフ情報をまだ入力していないので、レガート演奏であると判断され、ステータスS1がオフに書き換えられている場合は、すでにノートAに対応するノートオフ情報を入力し、音源7に対してノートオフ情報を出力していることを示すのでレガート演奏ではないと判断する。
【0062】
S5の判断処理において、レガート演奏が行われたと判断した場合は(S5:Yes)、現在時刻を示す変数tを0に設定する(S6)。レガート演奏が行われた場合は、モード1またはモード2の態様でグリッサンドが開始されるので、グリッサンドを開始した時からの時刻を示すtを0にリセットする。
【0063】
次に、ノートAの音高とノートBの音高との音高差Iを算出し(S7)、その算出された音高差Iを音高差メモリ4a5に記憶する。次に、その音高差Iが、所定の音高幅ΔP(例えば、6半音)以下か否かを判断する(S8)。音高差Iが所定の音高幅ΔP以下である場合は(S8:Yes)、モード1におけるグリッサンド時間Tを算出する(S9)。このグリッサンド時間Tの算出は、上記、数式1を用いて行い、算出されたグリッサンド時間Tを、グリッサンド時間メモリ4a4に記憶する。次に、モードフラグメモリ4a3に記憶されるモードフラグを1に設定し、タイマ2aによる割込を許可し、タイマ2aによる計時を開始させる(S10)。
【0064】
一方、S8の判断処理において、音高差Iが、所定の音高幅ΔP以下ではない、即ち音高差Iが所定の音高幅ΔPより大きい場合は(S8:No)、モード2におけるグリッサンド時間Tを所定の時間(例えば、300msec)としてグリッサンド時間メモリ4a4に記憶する(S11)。次に、ノートAの音高は、ノートBの音高より低いか否かを判断し(S12)、ノートの音高が、ノートBの音高より低い場合は(S12:Yes)、ノートAメモリに記憶されているステータスS1をオフに書き換え、その書き換えたステータスS1と、音高N1、ベロシティV1とにより構成されるノートオフ情報を音源7に出力する(S13)。この処理により、それまで発音していたノートAに基づく楽音が停止される。S13の処理を終了した場合、またはS12の判断処理において、ノートAの音高は、ノートBの音高より低くないと判断された場合は(S12:No)、モードフラグメモリ4a3に記憶されるモードフラグを2に設定し、タイマ2aによる割込を許可する(S14)。この処理により、タイマ割込によりモード2の態様でグリッサンドが開始されることになる。S2の判断処理において、モードフラグが0に設定されいない場合(S2:No)、または、S10の処理を終了した場合、または、S14の処理を終了した場合は、このイベントメイン処理を終了する。一方、S5の判断処理において、レガート演奏ではないと判断された場合は(S7:No)、入力されたノートBのノートオン情報を音源7に出力し(S15)、このイベントメイン処理を終了する。
【0065】
以上、入力されたイベントがノートオン情報である場合について説明したように、新たに入力されたノートオン情報により、レガート演奏か否かが判断され、レガート演奏である場合は、現在発音中のノートAの音高との音高差Iが算出され、その音高差Iが、所定の値以下である場合は、モード1により、その音高差Iが所定の値より大きい場合は、モード2によりグリッサンドを開始するように設定される。
【0066】
次に、入力されたイベントがノートオフ情報である場合について説明する。S1の判断処理において、入力されたイベントがノートオン情報ではない、即ちノートオフ情報であると判断された場合は(S1:No)、そのノートオフ情報が、ノートAに対応するノートオフ情報であるか否かを判断する(S21)。この判断は、入力されたノートオフ情報の音高と、ノートAメモリ4a1に記憶された音高N1とが一致するか否かを判断することにより行われ、一致する場合は、ノートAに対応するノートオフ情報であると判断され、一致しない場合は、ノートAに対応するノートオフ情報ではなくノートBに対応するノートオフ情報であると判断される。入力されたノートオフ情報がノートAに対応するノートオフ情報であると判断された場合は(S21:Yes)、モードフラグメモリ4a3に記憶されているモードフラグが、グリッサンドを行わないモードを示す0であるか否かを判断する(S22)。設定されているモードが0である場合は(S22:Yes)、ノートAメモリ4a1のステータスS1をオフに書き換え、ノートAのノートオフ情報を音源7に出力する(S23)。設定されているモードが0ではない場合は(S22:No)、またはS23の処理を終了した場合は、このイベントメイン処理を終了する。
【0067】
S21の判断処理において、入力されたノートオフ情報がノートAに対応するノートオフ情報ではないと判断された場合は(S21:No)、入力されたノートオフ情報がノートBに対応するノートオフ情報であり、次に、ノートAが発音中であるか否かを判断する(S24)。この判断は、ノートAメモリ4a1に記憶されたステータスS1により行われ、ステータスS1がオンであれば、発音中であり、オフでれば、発音中でないと判断される。ノートAが発音中である場合は(S24:Yes)、ノートAのノートオフ情報と、ベンド値を0とするピッチベンド情報とを音源7に出力し、ノートAメモリ4a1のステータスS1をオフに書き換える(S25)。ノートBのノートオフ情報を入力したにも拘わらず、ノートAのノートオフ情報を音源7に出力するのは、モード1の態様では、ノートAに基づいて発生されている楽音の音高を変化しているからである。また、ベンド値を0とするピッチベンド情報を音源7に出力するのは、モード1の態様では、ノートAの音高を、ノートBの音高に変化するように、その音高差をベンド値で音源7に指示したので、このベンド値を0に設定することにより、次にノートオン情報に基づいて発生される楽音の音高が正しい音高で発生されるようにするためである。
【0068】
S24の判断処理において、ノートAが発音中ではないと判断された場合は(S24:No)、またはS25の処理を終了した場合は、次にモードフラグが2に設定されているか否かを判断する(S26)。モードフラグが2に設定されている場合は(S26:Yes)、ノートBが発音中であるか否かを判断する(S27)。この判断は、ノートBメモリA4a2に記憶されたステータスS2により行われ、ステータスS2がオンであれば、発音中であり、オフでれば、発音中でないと判断される。ノートBが発音中である場合は(S27:Yes)、ノートBのノートオフ情報を音源7に出力する(S28)。S26の判断処理においてモードフラグが2に設定されていない場合(S26:No)、または、S27の判断処理において、ノートBが発音中でない場合(S27:No)、またはS28の処理を終了した場合は、モードフラグを0に設定し(S29)、このイベントメイン処理を終了する。
【0069】
次に、図6を参照してタイマ割込処理について説明する。図6は、タイマ割込処理を示すフローチャートであり、このタイマ割込処理は、タイマ2aが所定時間を計時するたびに起動される割込処理であり、モード1またはモード2の態様で、グリッサンドを行う処理である。なお、このタイマ割込処理では、現在時刻tが計時される。
【0070】
このタイマ割込処理では、まず、設定されているモードが1か否かを判断する(S31)。モードが1である場合は(S31:Yes)、次に、現在時刻tが、グリッサンド時間T以内であるか否かを判断する(S32)。グリッサンド時間Tは、上述の通りグリッサンド時間メモリ4a4に記憶されている。現在時刻tがグリッサンド時間T以内である場合は(S32:Yes)、まだ、ノートBの音高に到達していないということであり、ノートAの音高N1は、ノートBの音高N2より低いか否かを判断する(S33)。
【0071】
ノートAの音高N1がノートBの音高N2より低い場合は(S33:Yes)、現在時刻tと、グリッサンド時間メモリ4a4に記憶されたグリッサンド時間Tと音高差メモリ4a5に記憶された音高差Iとを数式2に代入してベンド値PUpを算出する(S34)。次に、その算出された値PUpをベンド値とするピッチベンド情報を音源7に出力する(S35)。
【0072】
一方、ノートAの音高N1がノートBの音高N2より低くない場合は(S33:No)、現在時刻tと、グリッサンド時間メモリ4a4に記憶されたグリッサンド時間Tと音高差メモリ4a5に記憶された音高差Iとを数式3に代入してベンド値PDwを算出する(S36)。次に、その算出された値PDwをベンド値とするピッチベンド情報を音源7に出力する(S37)。S35またはS37の処理を終了した場合は、現在時刻tを1進め(S38)、このタイマ割込処理を終了する。
【0073】
S32の判断処理において、現在時刻tが、グリッサンド時間T以内ではない場合は(S32:No)、グリッサンドを終了したことになり、タイマ割込を禁止し(S39)、このタイマ割込処理を終了する。以上、モード1が指定されている場合は、ノートAの音高に対するベンド値が所定の時間間隔で算出され、そのベンド値がピッチベンド情報として、音源7に出力される。音源7は、ノートAに基づいて形成している楽音の音高をピッチベンド情報が示すベンド値に従って変化する。このことにより、トロンボーンのスライドを伸縮操作することによるグリッサンドを模擬することができる。
【0074】
一方、S31の判断処理において、設定されているモードが1ではない場合は(S31:No)、モードが2であり、次に、ノートAの音高N1は、ノートBの音高N2より低いか否かを判断する(S41)。ノートAの音高N1がノートBの音高N2より低い場合は(S41:Yes)、現在時刻tがグリッサンド時間T以内であるか否かを判断し(S42)、現在時刻tがグリッサンド時間T以内である場合は(S42:Yes)、まだ、ノートBの音高に到達していないということであり、現在時刻tと、グリッサンド時間メモリ4a4に記憶されたグリッサンド時間Tと、音高差メモリ4a5に記憶された音高差Iとを数式4に代入し、ベンド値PUpを算出する(S43)。次に、その算出された値PUpをベンド値とするピッチベンド情報を音源7に出力する(S44)。次に、現在時刻tが0か否かを判断し(S45)、現在時刻tが0である場合は(S45:Yes)、ノートBのノートオン情報を音源7に出力し(S46)、ノートAメモリ4a1に記憶されたステータスS1をオフに書き換え、ノートAのノートオフ情報を形成して音源7に出力する(S47)。S47の処理を終了した場合、またはS45の判断処理において、現在時刻tが0ではない場合は(S45:No)、S45およびS46の処理をスキップして現在時刻tを1進め(S38)、このタイマ割込処理を終了する。
【0075】
S42の判断処理において、現在時刻tが、グリッサンド時間T以内ではない場合は(S42:No)、グリッサンドを終了したことになり、タイマ割込を禁止し(S39)、このタイマ割込処理を終了する。
【0076】
一方、S41の判断処理において、ノートAの音高N1がノートBの音高N2より低くない場合は(S41:No)、現在時刻tがグリッサンド時間T以内であるか否かを判断し(S51)、現在時刻tがグリッサンド時間T以内である場合は(S51:Yes)、まだ、音高を下げている途中であって、所定の音高幅ΔPに到達していないということであり、現在時刻t、グリッサンド時間メモリ4a4に記憶されたグリッサンド時間Tと音高差メモリ4a5に記憶された音高差Iとを数式5に代入しベンド値PDwを算出する(S52)。次に、その算出された値PDwをベンド値とするピッチベンド情報を音源7に出力する(S53)。S53の処理を終了した場合は、現在時刻tを1進め(S38)、このタイマ割込処理を終了する。
【0077】
現在時刻tがグリッサンド時間T以内ではない場合は(S51:No)、音高が所定の音高幅ΔPに到達したということであり、ノートAメモリ4a1に記憶されたステータスS1をオフに書き換えて、ノートAのノートオフ情報を形成し、そのノートオフ情報を音源7に出力する(S55)。次に、ベンド値を0とするピッチベンド情報を音源7に出力し(S56)、ノートBのノートオン情報を音源7に出力する(S57)。この処理により、音源7は、ノートAの音高を徐々に下げ、所定の音高幅ΔPだけ降下したとき、ノートAの楽音の発生を停止し、ノートBの楽音の発生を開始する。次に、タイマ割込を禁止し(S58)、このタイマ割込処理を終了する。
【0078】
以上のように、モード2の態様でグリッサンドを行う場合であって、ノートBの音高がノートAより高い場合は、ノートBに対応する楽音の発生が指示され、そのノートBに基づく楽音の音高は、ノートBの音高より所定の音高幅ΔPだけ低い音高から徐々にノートBの音高へ変化するように制御される。また、ノートBの音高がノートAより低い場合は、ノートAに基づく楽音の音高が、徐々に下げられ、ノートAの音高より所定の音高幅ΔPだけ低い音高に至った場合に、ノートBに基づく楽音の発生を開始するように制御される。よって、トロンボーンの演奏における倍音列の移動とスライドを伸縮操作することによる音高変化を模擬したグリッサンドが行われる。
【0079】
以上、第1の実施形態について説明したように、ノートAの音高と次に入力したノートBの音高との音高差Iが所定の値以下の場合は、モード1の態様であるトロンボーンのスライドを伸縮操作することによる音高変化を模擬したグリッサンドが行われ、ノートAの音高と次に入力したノートBの音高との音高差Iが所定の値以下ではない場合は、モード2の態様であるトロンボーンの演奏における倍音列の移動とスライドを伸縮操作することによる音高変化を模擬したグリッサンドが行われる。
【0080】
次に、図7および図8を参照して、第2の実施形態について説明する。上述の通り、トロンボーンでは、倍音列の移動とスライドの伸縮操作により音高が特定される。従って、一つの倍音列で演奏を行っている場合に、スライドを伸縮操作することにより音高が特定され、この音高は、複数の連続した音高である。第2の実施形態では、電子楽器が発生することができる全範囲の音高に、複数の音域を特定し、ノートAの音高と、ノートBの音高とが、同一の音域に含まれる場合は、モード1によりグリッサンドを行い、ノートAの音高と、ノートBの音高とが、同一の音域に含まれない場合は、モード2によりグリッサンドを行うものである。なお、第2実施形態では、第1実施形態と同一の部分については、同一の符号で示し、異なる部分だけについて説明するものとする。第2の実施形態において、異なるのは、複数の音域を特定するための音域テーブルが、ROM3に記憶されている点と、図5に示すフローチャートのうち、S10およびS11の処理が異なるだけである。ROM3に記憶される音域テーブルについては、図7に、図5に代わるフローチャートについては、図8にそれぞれ示す。
【0081】
図7に示すように、音域テーブルには、音域番号(R1〜R10)に対応して、全音高範囲(E1からD5)のうちの所定の音域が示されている。音高は、音名を示すアルファベットと、オクターブを示す数字とにより構成される。例えば、音高が「E1」は、第1オクターブの音名E(英語の音名標記A,B,C・・・は、日本語のイ、ロ、ハ・・・にそれぞれ対応し、「E」は、日本語の「ホ」に対応する)であることを示す。例えば、第1の音域R1は、E1からB♭1までの間の複数の連続した音高(E1,E#1,F,G・・・A,B♭1)の範囲を示すものである。
【0082】
次に、図8を参照して、第2の実施形態におけるイベントメイン処理について説明する。図8は、第2の実施形態におけるイベントメイン処理を示すフローチャートである。
【0083】
この処理では、入力されたノートイベントがノートオン情報であった場合(S1:Yes)、ノートBメモリ4a2にノートBとして記憶されているステータスS2、音高N2、ベロシティV2をノートAメモリ4a1に転記し(S3)、新たに入力されたノートオン情報のステータス、音高、ベロシティをノートBメモリ4a2に記憶する(S4)。次に、今回のノートオン情報を入力したことがレガート演奏であったか否かを判断する(S5)。そして、S5の判断処理において、レガート演奏であると判断された場合は、現在時刻tを0とする(S6)。ここまでの処理は、第1の実施形態と同一である。
【0084】
次に、ノートAメモリ4a1に記憶された音高N1およびノートBメモリ4a2に記憶された音高N2がそれぞれ、音域テーブルにより特定される複数の音域のいずれの音域に含まれるかを検出し、その音域番号を取得する(S61)。次に、音高N1が含まれる音域の音域番号と、音高N2が含まれる音域の音域番号とが同一か否かを判断し(S62)、同一の音域番号である場合は(S62:Yes)、モード1でグリッサンドを行うようにグリッサンド時間Tを設定し(S9)、モードフラグメモリ4a3に記憶されるモードフラグを1に設定して、タイマ割込を許可する(S10)。
【0085】
一方、S62の判断処理において、音高N1が含まれる音域の音域番号と、音高N2が含まれる音域の音域番号とが同一ではないと判断された場合は(S62:No)、モード2の態様でグリッサンドを行うようにグリッサンド時間Tを設定し(S11)、ノートAの音高は、ノートBの音高より低いかを判断し(S12)、ノートの音高が、ノートBの音高より低い場合は(S12:Yes)、ノートAメモリに記憶されているステータスS1をノートオフを示すステータスに書き換え、その書き換えたステータスS1と、音高N1、ベロシティV1とにより構成されるノートオフ情報を音源7に出力する(S13)。
【0086】
S13の処理を終了した場合、またはS12の判断処理において、ノートAの音高は、ノートBの音高より低くないと判断された場合は(S12:No)、モードフラグメモリ4a3に記憶されるモードフラグを2に設定し、タイマ2aによる割込を許可する(S14)。他の処理は、図5の処理と同様である。
【0087】
以上、第2の実施形態に基づいて説明したように、複数の音域と特定し、ノートAの音高とノートBの音高とが同一の音域に含まれる場合は、モード1の態様でグリッサンドを行い、ノートAの音高とノートBの音高とが同一の音域に含まれない場合は、モード2の態様でグリッサンドを行うようにしたので、トロンボーンのスライドの伸縮操作のみによる音高の変化と、倍音列の移動とスライドの伸縮操作とによる音高の変化とを模擬することができる。
【0088】
なお、各請求項に記載の音高差判断手段は、図5に記載のフローチャートのS8の処理が該当し、第1の指示手段は、図5に記載のフローチャートのS10の処理が該当し、第2の指示手段は、図5に記載のフローチャートのS14の処理が該当し、音域特定手段は、図7に基づいて説明した音域テーブルが該当し、音域判断手段は、図8に記載のフローチャートのS62の処理が該当し、レガート演奏判断手段は、図5に記載のフローチャートのS5の処理が該当する。
【0089】
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【0090】
例えば、上記実施形態では、電子楽器1に音源7が内蔵されているものとしたが、MIDIなどのインターフェースを介して、外部音源に接続されるようにしてもよい。
【0091】
また、上記実施形態では、音源7が発生する楽音の音色が選択されることについては記載していないが、音色を任意に選択する操作子を備え、その操作子により選択された音色がトロンボーンである場合に、本発明が適用されるものとしてもよい。
【0092】
また、上記実施形態では、レガート演奏が行われたか否かを判断し、レガート演奏が行われたと判断された場合に、グリッサンドが行われるものとしたが、演奏者により操作されるスイッチを備え、そのスイッチが操作されている間に2つのノートオンを入力した場合は、レガート演奏が行われたか否かにかかわらずグリッサンドを行うようにしてもよい。また、スイッチによりグリッサンドを行うように演奏者により設定され、且つ、レガート演奏が行われた場合にグリッサンドを行うようにしてもよい。
【0093】
また、上記実施形態では、入力されるノートイベントは、鍵盤を演奏することにより発生されるものとしたが、ギターシンセサイザなどのように、他の楽器で演奏されて形成されたノートイベントでもよい。
【0094】
また、上記実施形態では、モード2の態様でグリッサンドを行う際に、ノートAの音高がノートBの音高より低い場合は、ノートBの音高より所定の音高幅ΔPだけ低い音高からグリッサンド時間Tの間に徐々にノートBの音高に至るように音高を変化し、ノートAの音高がノートBの音高より高い場合は、ノートAの音高からグリッサンド時間Tの間に音高を徐々に下げ、ノートAの音高から所定の音高幅ΔPだけ低い音高に至るように制御し、その音高に至った場合に、ノートBの楽音を発生するものとしたが、前者のΔPの音高幅と、後者のΔPの音高幅とを異なる値に設定してもよい。また、前者のグリッサンド時間Tと後者のグリッサンド時間Tとを異なる時間としてもよい。
【図面の簡単な説明】
【0095】
【図1】本発明による実施形態における電子楽器の電気的構成を示すブロック図である。
【図2】モード1の態様でグリッサンドが行われる場合の入力イベントと出力イベントとを模式的に示すグラフである。
【図3】モード2の態様でグリッサンドが行われる場合の入力イベントと出力イベントとを模式的に示すグラフである。
【図4】テンポラリメモリが記憶する情報を示すテーブルである。
【図5】イベントメイン処理を示すフローチャートである。
【図6】タイマ割込処理を示すフローチャートである。
【図7】第2の実施形態における複数の音域を示すテーブルである。
【図8】第2の実施形態におけるイベントメイン処理を示すフローチャートである。
【符号の説明】
【0096】
1 電子楽器
2 CPU
2a タイマ
3 ROM
4 RAM
4a テンポラリメモリ
7 音源

【特許請求の範囲】
【請求項1】
所定の音高の楽音の発生の開始を指示するノートオン情報を入力する入力手段と、楽音を発生する音源に対し、その入力手段により入力されたノートオン情報に応じて指示を行う電子楽器において、
前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、前記第1のノートオン情報が示す第1の音高と、前記第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かを判断する音高差判断手段と、
その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように前記音源に指示する第1の指示手段と、
前記音高差判断手段により、第1の音高と第2の音高との音高差が前記所定の値以下ではないと判断された場合は、第1の音高と第2の音高とのいずれかの音高が高い音高に基づく楽音の音高を徐々に変化するように前記音源に指示する第2の指示手段とを備えていることを特徴とする電子楽器。
【請求項2】
所定の音高の楽音の発生の開始を指示するノートオン情報を入力する入力手段と、楽音を発生する音源に対し、その入力手段により入力されたノートオン情報に応じて指示を行う電子楽器において、
複数の連続する音高により構成される音域を複数特定する音域特定手段と、
前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、第1のノートオン情報が示す第1の音高と、第2のノートオン情報が示す第2の音高とが、前記音域特定手段により特定される複数の音域の同一の音域に含まれるか否かを判断する音域判断手段と、
その音域判断手段により、第1の音高と第2の音高とが同一の音域に含まれると判断された場合は、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように前記音源に指示する第1の指示手段と、
前記音域判断手段により、第1の音高と第2の音高とが同一の音域に含まれないと判断された場合は、第1の音高と第2の音高とのいずれか音高が高い音高に基づく楽音の音高を徐々に変化するように前記音源に指示する第2の指示手段とを備えていることを特徴とする電子楽器。
【請求項3】
前記第2の指示手段は、第2の音高が第1の音高より高い場合は、第2のノートオン情報を入力した時、第2の音高に基づく楽音の発生を開始するように指示するとともに、その指示に基づいて発生される楽音の音高が、第2の音高から所定の音高幅だけ低い音高から第2の音高へ徐々に変化するように指示するものであることを特徴とする請求項1または2記載の電子楽器。
【請求項4】
前記第2の指示手段は、第2の音高が第1の音高より低い場合は、第2のノートオン情報を入力した時から第1の音高に基づく楽音の音高を徐々に低くし、その音高が第1の音高から所定の音高幅だけ低くなった時、第2の音高に基づく楽音の発生を開始するように指示するものであることを特徴とする請求項1から3のいずれかに記載の電子楽器。
【請求項5】
所定の音高の楽音の発生の開始を指示するノートオン情報を入力する入力手段と、楽音を発生する音源に対し、その入力手段により入力されたノートオン情報に応じて指示を行う電子楽器において、
前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、前記第1のノートオン情報が示す第1の音高と、前記第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かを判断する音高差判断手段と、
その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように前記音源に指示する第1の指示手段と、
前記音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下ではないと判断された場合は、第1の音高に基づく楽音の音高を第2の音高に近づくように徐々に変化し、その音高の変化幅が所定の値になった場合に第2の音高に基づく楽音の発生の開始を前記音源に指示する第2の指示手段とを備えていることを特徴とする電子楽器。
【請求項6】
所定の音高の楽音の発生の開始を指示するノートオン情報を入力する入力手段と、楽音を発生する音源に対し、その入力手段により入力されたノートオン情報に応じて指示を行う電子楽器において、
前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、前記第1のノートオン情報が示す第1の音高と、前記第2のノートオン情報が示す第2の音高との音高差が所定の値以下であるか否かを判断する音高差判断手段と、
その音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下であると判断された場合は、第1の音高に基づく楽音の音高を徐々に第2の音高に変化するように前記音源に指示する第1の指示手段と、
前記音高差判断手段により、第1の音高と第2の音高との音高差が所定の値以下ではないと判断された場合は、第2の音高に基づく楽音の発生を開始するように指示し、その指示に基づく楽音の音高が、第2の音高から所定の音高幅だけ第1の音高の方に変位した音高から第2の音高へ徐々に変化するように前記音源に指示する第2の指示手段とを備えていることを特徴とする電子楽器。
【請求項7】
前記入力手段により第1のノートオン情報を入力し、その第1のノートオン情報の次に第2のノートオン情報を入力した場合に、その第2のノートオン情報と前記第1のノートオン情報に対応するノートオフ情報とに基づいてレガート演奏であるか否かを判断するレガート演奏判断手段を備え、
そのレガート演奏判断手段により、レガート演奏が行われたと判断された場合に、前記第1の指示手段、または第2の指示手段は、前記音源に指示するものであることを特徴とする請求項1から6のいずれかに記載の電子楽器。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate