JP4178661B2 - 教示データ生成装置、及び記録媒体 - Google Patents
教示データ生成装置、及び記録媒体 Download PDFInfo
- Publication number
- JP4178661B2 JP4178661B2 JP14163599A JP14163599A JP4178661B2 JP 4178661 B2 JP4178661 B2 JP 4178661B2 JP 14163599 A JP14163599 A JP 14163599A JP 14163599 A JP14163599 A JP 14163599A JP 4178661 B2 JP4178661 B2 JP 4178661B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- value
- performance
- volume
- musical
- 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】
【従来の技術】
曲の演奏内容を表す演奏データ(シーケンスデータ)は、自動演奏(自動伴奏を含む)だけでなく、ナビゲート機能の実現といった他の用途にも用いられている。そのナビゲート機能は、鍵盤楽器等において、例えば鍵毎に設けられたLED等の発光素子を順次、点灯させていくことにより、演奏者に押鍵(操作)すべき鍵を指示して演奏を誘導することを基本とする機能である。
【0003】
技術的に未熟なユーザ(演奏者)は、ナビゲート機能を利用することによって、楽譜を見ることなく所望の曲を演奏することができる。しかし、ナビゲート機能で指示された演奏操作子を単に操作していくだけでは、当然のことながら、音楽的に豊かな表現を行うことはできない。音楽的な印象は、様々な高さの楽音が鳴るタイミングの他に、各楽音の音量やその違いによっても大きく変化する。このことから、鍵盤楽器のなかには、演奏者がより豊かな音楽的表現を行えるように、発音させるべき楽音の音量を指示する機能(強弱記号表示機能)を搭載したものがある。
【0004】
これまで、その強弱記号表示機能は、例えば表示すべき強弱記号を指定するデータ(教示データ)を演奏データと別に用意することにより、自動演奏の進行に合わせて強弱記号を順次、表示するようになっていた。しかし、そのような方法では、予め用意した演奏データ以外では強弱記号を表示することができない。このことから、例えば、特開平11−7278号公報に開示されているように、演奏の進行に応じて表示させるべき強弱記号を指定する教示データを生成する装置(教示データ生成装置)が創案されている。その装置では、演奏データを構成するイベントデータに含まれるベロシティを基に、自動演奏の進行に合わせて教示データを順次、生成している。このため、鍵盤楽器にその装置を搭載させた場合には、予め教示データが用意されていない演奏データであっても、演奏者は表示された強弱記号から発音させるべき楽音の音量の変化のさせ方を知ることができるようになる。
【0005】
【発明が解決しようとする課題】
上記特開平11−7278号公報に開示されている従来の教示データ生成装置は、楽音のベロシティ値(音量レベル)、或いは隣り合う楽音間のベロシティ値の差に注目して教示データを生成していた。より具体的には、ベロシティの値域を予め複数の範囲に分割しておくとともに、ベロシティ値の差の範囲を表示対象とする強弱記号毎に設定しておき、楽音のベロシティ値や楽音間のベロシティ値の差がどの範囲内となっているか判定することで教示データを生成していた。楽音のベロシティ値は、個々の楽音を対象にする強弱記号を指定する教示データの生成用であり、ベロシティ値の差は、複数の楽音で構成される部分を対象にする強弱記号を指定する教示データの生成用である。
【0006】
しかし、比較的に静かな曲では強弱記号としてフォルテッシモ等が該当するきわめて強く発音させる楽音が無かったり、抑揚が小さい曲ではきわめて強く発音させる楽音が無いだけでなく、強弱記号としてピアニッシモ等が該当するきわめて弱く発音させる楽音も無いことがある。これは、ベロシティの実際の値域は、各曲(演奏データ)によって異なったり、偏りがあるということを意味する。このため、従来の教示データ生成装置のように、予め固定的に定めた基準を基に教示データを生成した場合、演奏データからそれによって表現される曲の演奏に合った教示データを生成することができないという問題点があった。
【0007】
本来、音の強弱は、相対的に判断するものである。しかし、従来の教示データ生成装置では、上記問題点によって、他の楽音と比較して強く発音させる楽音でなくても強く発音させるべき楽音として教示データを生成するといったようなことが生じることになる。このため、演奏者に曲全体における音の強弱の抑揚を容易に把握させることができないだけでなく、演奏者を混乱させてしまう可能性も高かった。
【0008】
従来の教示データ生成装置は、複数の楽音で構成される部分への強弱記号、具体的にはクレシェンドやデクレシェンドの教示データは、2つの楽音のベロシティ値の差に応じて生成している。しかし、2つの楽音のベロシティ値にだけ注目していることから、クレシェンド等の強弱記号が対象とする部分は2音という非常に狭い演奏範囲に限定されることになる。これは、拍による強弱の違いから本来は不要な教示データを生成させてしまったり、表示される強弱記号が目まぐるしく変わることがあるということを意味する。そのようなことは、演奏者を混乱させてしまうことから、確実に回避させる必要がある。
【0009】
ところで、演奏データの本来の使い方である自動演奏では、これまで、演奏データを単に再生することしか行われていなかった。或るパートの演奏を省くマイナスワン演奏も、基本的には演奏データを単に再生するだけである。これは、自動演奏との合奏で行える音楽表現の幅が狭いことを意味する。このことから、演奏データから教示データをより適切に生成できるようにすることの一方では、演奏者(ユーザ)が自動演奏との合奏でより幅広い音楽表現を行えるようにすることも望まれていた。それらの何れを実現させても、演奏者(ユーザ)にとっての利便性を向上させることになる。
【0010】
本発明の課題は、演奏データから適切な教示データを生成できるようにすることにある。
また、本発明の他の課題は、自動演奏との合奏で演奏者(ユーザ)がより幅広い音楽表現を行えるようにすることにある。
【0011】
【課題を解決するための手段】
本発明の第1及び第2の態様の教示データ生成装置は、楽音の発音に関わるイベントの内容を表すイベントデータを複数、備えてなる演奏データを基に、演奏を行う演奏者に対して表示すべき楽音の強弱を指定する強弱記号の種類を示すデータを教示データとして生成することを前提とし、以下の手段を具備する。
【0012】
第1の態様の教示データ生成装置は、イベントデータ中の楽音の音量を指定する音量データから、最大音量データ値と最小音量データ値の間で該音量データの値域を複数の範囲に分割する値域分割手段と、予め定めた曲の演奏単位毎に、値域分割手段による値域の分割結果、及び該演奏単位を構成するイベントデータの音量データに基づいて、教示データを生成するデータ生成手段と、を具備する。
【0014】
第2の態様の教示データ生成装置は、予め定めた曲の演奏単位毎に、該演奏単位を構成する複数の楽音毎の音量を指定するベロシティ値に当該楽音の発音時間を掛けて得られる値の合計値、及び前記複数の楽音の全発音時間を夫々算出すると共に、当該合計値を全発音時間で割って得られる平均値を参照して、該演奏単位で発音させるべき楽音の音量を解析する音量解析手段と、前記音量変化解析手段の解析結果に基づいて、前記演奏単位毎に前記教示データを生成するデータ生成手段と、を具備する。
【0018】
本発明の第1の態様の記録媒体は、演奏データを構成するイベントデータ中の楽音の音量を指定する音量データから、最大音量データ値と最小音量データ値の間で該音量データの値域を複数の範囲に分割する機能と、予め定めた曲の演奏単位毎に、前記分割する機能による値域の分割結果、及び該演奏単位を構成するイベントデータの音量データに基づいて、楽音の強弱を指定する強弱記号の種類を示す教示データを生成する機能と、をコンピュータにより実現させるプログラムを記録している。
【0020】
本発明の第2の態様の記録媒体は、該演奏単位を構成する複数の楽音毎の音量を指定するベロシティ値に当該楽音の発音時間を掛けて得られる値の合計値、及び前記複数の楽音の全発音時間を夫々算出すると共に、当該合計値を全発音時間で割って得られる平均値を参照して、該演奏単位で発音させるべき楽音の音量を解析する機能と、該解析する機能の解析結果に基づいて、前記演奏単位毎に楽音の強弱を指定する強弱記号の種類を示す教示データを生成する機能と、をコンピュータにより実現させるプログラムを記録している。
【0022】
本発明(第1の態様の教示データ生成装置)では、イベントデータ中の楽音の音量を指定する音量データを参照して、それの値域を最大音量データ値と最小音量データ値の間で、複数の範囲に分割することにより、演奏データ毎に、教示データを生成するうえでの基準を設定してその教示データを生成する。音量データの実際の値を参照して演奏データ毎に基準を設定することで、演奏データによって異なる楽音の音量の大きさのバラツキや偏り等に適切に対応することが可能となる。その結果、適切な教示データが生成されるようになる。
【0026】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図1は、第1の実施の形態による教示データ生成装置、及び自動演奏装置を搭載した電子楽器の外観図である。
【0027】
その電子楽器は、図1に示すように、多数の鍵101aからなる鍵盤101と、各種スイッチが配設された操作パネル102と、各種強弱記号を含む様々な記号や情報を表示できるLCD(液晶表示器)103と、楽音を放音する2つのスピーカ104と、特には図示しないフロッピーディスク(FD)にアクセスするFDD(フロッピーディスク装置)105と、を備えて構成されている。
【0028】
操作パネル102に配設されたスイッチとしては、特に図示していないが、自動演奏(自動伴奏を含む)のスタート/ストップを指示するためのスタート/ストップスイッチ、演奏をナビゲートするモード(以降、ナビゲートモードと呼ぶ)を設定するための表示スイッチ、自動演奏の実行時におけるチャネル間の関係の設定(変更)を行えるようにするためのチャネル設定スイッチ、LCD103に表示されたカーソルを移動させるためのカーソルキー、自動演奏させる曲(演奏データ)や音色、或いは音響効果等の指定、更にはチャネル間の関係の設定に用いられるテンキー、などを始め、様々なスイッチが設けられている。鍵盤101の各鍵101aには発光素子としてLEDが設けられており、演奏のナビゲートは、そのLEDを点灯させることで行うようになっている。他の楽器やシーケンサ等の外部装置とは、特に図示しないMIDI端子を介してMIDIデータの送受信を行えるようになっている。
【0029】
図2は、上記電子楽器の回路構成図である。
図1に示す外観を有する電子楽器は、図2に示すように、楽器全体の制御を行うCPU201と、そのCPU201が実行するプログラムや各種制御データ、及び複数の演奏データ等を格納したプログラムROM202と、CPU201がワークに用いるワークRAM203と、操作パネル102に配設された各種スイッチからなるスイッチ群204と、鍵盤101の各鍵101a毎に配設されたLEDからなるLED群205と、スイッチ群204、及び鍵盤101に対して演奏者が行った操作を検出するとともに、LED群205をCPU201の指示に従って駆動するインターフェイス206と、LCD103を駆動して表示させるべき画像を表示させるLCDコントローラー207と、FDD105を制御するFDDコントローラー208と、発音させるべき楽音の波形データを生成する音源209と、音色が異なる各種楽音の波形データを格納した波形ROM210と、音源211が出力した波形データをアナログのオーディオ信号に変換するDAコンバータ211と、を備えて構成されている。そのDAコンバータ211が出力したオーディオ信号をスピーカ104に入力させることによって楽音が放音される。CPU201とプログラムROM202、ワークRAM203、インターフェース206、LCDコントローラー207、FDDコントローラー208、及び音源209とは、アドレスバス212、及びデータバス213を介して接続されている。
【0030】
以上の構成において、動作を説明する。
CPU201は、電源がオンされると、プログラムROM202に格納されているプログラムを読み出して実行することにより、楽器全体の制御を開始する。その制御は、演奏者(ユーザ)の鍵盤101やスイッチ群204への操作に応じて、以下のように行う。
【0031】
スイッチ群204、或いは鍵盤101に対して演奏者が行った操作を認識する場合、CPU201はアドレスバス212、及びデータバス213を介してインターフェース206に、例えばスイッチ群204、或いは鍵盤101の走査を指示する制御コマンドを送出する。
【0032】
インターフェース206は、その制御コマンドによる指示に従ってスイッチ群204、或いは鍵盤101を走査し、その走査結果を前回の走査結果と比較することにより、状態が変化したスイッチ、或いは鍵101a、更にはその状態変化の内容を検出(特定)する。CPU201には、その検出結果を送出する。なお、その検出結果は、例えば状態が変化したスイッチ、或いは鍵101aに割り当てた識別用コード、及びその状態変化の内容(オンかオフか等)を示すデータを少なくとも含むものであり、状態の変化を検出したスイッチ、或いは鍵101a毎に生成される。状態が変化したスイッチ、或いは鍵101aを検出できなかったときには、その旨を示すデータが検出結果としてCPU201に送出される。以降、その検出結果については操作情報と呼ぶことにする。
【0033】
インターフェース206が送出した操作情報によって鍵盤101を構成する何れかの鍵101aの状態変化を認識した場合、CPU201は、状態が変化した鍵101aに割り当てた音高(ノートナンバー)、その状態変化の内容に応じて音源209に送出すべき制御コマンドを生成して送出する。本実施の形態では、その制御コマンドとしてMIDIデータを生成し送出するようになっている。
【0034】
音源209は、CPU201から送られたMIDIデータを受け取り、それを処理する。例えば、そのMIDIデータがノートオン・メッセージデータであれば、波形ROM210に格納されている波形データを参照して、それが指示する楽音の波形データを生成し、必要に応じて音響効果を付加するといった操作を施した後、DAコンバータ211に出力する。楽音の波形データの生成は、その楽音の消音を指示するMIDIデータを受け取るまで継続して行う。それにより、演奏者が鍵盤101に対して行った操作に応じてスピーカ104から楽音が放音されることになる。なお、波形データの生成は、時分割処理で行い、発音させるべき楽音が複数あれば、個別に生成した波形データの値の合計値が波形データの生成結果として扱われる。
【0035】
一方、インターフェース206が送出した操作情報によってスイッチ群204を構成する何れかのスイッチの状態変化を認識した場合には、CPU201は、その時点でそのスイッチに割り当てている機能、及びその状態変化の内容に応じた各種設定の変更を行う。LCD103の制御やフロッピーデスクへのアクセスは、それと並行する形で必要に応じて行う。なお、各種設定の変更は、実際には、ワークRAM203に格納した対応する変数の内容を書き換えることで行われる。各種モードやテンポ、或いは音響効果等の設定、自動演奏の対象とする曲(演奏データ)や音色等の変更、自動演奏のスタート/ストップ等は、各種設定の変更によって実現される。
【0036】
自動演奏の対象となる演奏データは、通常はプログラムROM202に格納されている演奏データであるが、FDD105にフロッピーディスクが装着されているときにはそれに格納されている演奏データが対象となる。FDD105は、フロッピーディスクが装着されると、それを認識してフロッピーディスクが装着された旨をFDDコントローラー208に通知する。コントローラー208は、そのことをCPU201に通知する。CPU201は、その通知によりフロッピーディスクの装着の有無を認識する。なお、本実施の形態では、スタンダードMIDIファイル(SMF)の形でまとめられた演奏データを再生の対象としており、プログラムROM202にはSMFの形で演奏データが格納されている。
【0037】
演奏者がスタート/ストップスイッチを操作して自動演奏のスタートを指示した場合、CPU201は、例えば、プログラムROM202或いはフロッピーディスクの演奏データをワークRAM203に格納し、特には図示しないタイマの値をクリアし計時を開始させる。そのようにして自動演奏を実行するうえでの準備を行った後、演奏データを構成するMIDIデータ(イベントデータ)を順次、読み出し、それに付加されている時間データを基に決定したタイミングで音源209に送出する。それにより、MIDIデータを処理させて自動演奏を行う。なお、フロッピーディスクに格納された演奏データのワークRAM203への格納は、FDDコントローラー208にフロッピーディスクの演奏データの読み出しを指示し、その指示によってFDD105がフロッピーディスクから読み出した演奏データをコントローラー208から受け取り、それをワークRAM203に格納することで行われる。上記タイマは、ハードウェアではなく、例えば所定の時間間隔毎に値を更新する変数でも良い。
【0038】
ナビゲートモードが設定されているときには、MIDIデータから特定される鍵101aのLEDの点灯を、それの音源209への送出に合わせて行う。それにより、自動演奏によって再生する曲の演奏を誘導する。それ以外には、自動演奏の進行に応じて順次、表示させるべき強弱記号をLCD103に表示させる。なお、LEDの点灯は、CPU201がインターフェース206に、LEDの点灯を指示する命令コード、及び点灯させるべきLEDを指定するデータを少なくとも有する制御コマンドを送出することで行われる。LEDの消灯は、同様に、LEDの消灯を指示する命令コード、及び消灯させるべきLEDを指定するデータを少なくとも有する制御コマンドを送出することで行われる。
【0039】
図3は、そのLCD103に表示される強弱記号を説明する図である。LCD103の画面のなかで強弱記号の表示に用いられる部分を抜粋して、その部分に表示される内容を示したものである。同図(a)は全表示時、即ち強弱記号の表示に関わる全ての内容を表示させたときの状態を示し、同図(b)〜同図(f)はその内容によって表示可能な強弱記号を表示させたときの状態を各々示している。図3に示すように、本実施の形態では、強弱記号として、メゾピアノ、ピアニッシモ、クレシェンド、デクレシェンド、及びメゾフォルテを表示できるようにしている。それら以外には、ピアノ、フォルテ、及びフォルテッシモの各強弱記号を表示することができる。なお、当然のことながら、表示可能な強弱記号の組合せはそれに限定されるものではない。また、強弱記号を単に表示するのではなく、楽譜等と共に表示するようにしても良い。その強弱記号の代わりとなる別の記号を表示するようにしても良い。
【0040】
プログラムROM202に格納されている演奏データには、各演奏データ毎に、それの再生時に表示すべき強弱記号を指定する教示データが用意されている。例えば強弱記号を表示または消去させるべきタイミングに応じて演奏データ中に教示データを挿入するか、教示データ、及びそれが指定する強弱記号を表示または消去させるタイミングを指定する時間データを一つの単位として、演奏データとは別にまとめることで用意されている。前者の方法を採用する場合には、例えば未定となっている種類のチャンネルメッセージを強弱記号の表示用に割り当て、そのメッセージで強弱記号の種類、及び表示か消去かをそれぞれ指定するようにすれば良い。
【0041】
CPU201は、ナビゲートモードが設定されている場合、その教示データを参照して、自動演奏の進行に応じて強弱記号を順次、LCD103に表示させる。なお、その表示は、CPU201がLCDコントローラー207に、例えば強弱記号の表示を指示する命令コード、及びその強弱記号の種類を指定するデータを少なくとも有する制御コマンドを送出することで行われる。その制御コマンドを受け取ったコントローラー207は、それの指示に従ってLCD103を駆動することにより、指定した強弱記号が表示される。それまで表示させていた強弱記号の消去は、CPU201がLCDコントローラー207に、例えば強弱記号の消去を指示する命令コード、及びその強弱記号の種類を指定するデータを少なくとも有する制御コマンドを送出することで行われる。
【0042】
演奏者がプログラムROM202に格納された演奏データを指定したのであれば、予め用意されている教示データによって強弱記号を自動演奏の進行に合わせて表示させることができる。しかし、フロッピーディスクに格納された演奏データには、通常、教示データが予め用意されていない。このことから、そのような演奏データを再生する場合には、以下のようにして教示データを生成することにより強弱記号を表示させる。
【0043】
図5は、教示データの生成方法を説明する図である。そのなかに実線で描いた折れ線は、自動演奏の進行に応じて順次、発音させる楽音のベロシティ値を抜粋して表したものである。
【0044】
本実施の形態では、楽音のベロシティの実際の値域を調べ、その値域を基に楽音の強弱を判別するうえでの基準を設定している。図5中のv1は値域を調べることで判明したベロシティの最小値、v2はその最大値である。
【0045】
教示データが用意されていない演奏データでは、ピアニッシモ、ピアノ、メゾピアノ、メゾフォルテ、フォルテ、及びフォルテッシモの計6種類の強弱記号を表示対象としている。それら強弱記号を表示させなくても良い状況もある。このことから、本実施の形態では、7(=6+1)つにベロシティの実際の値域を分け、楽音のベロシティ値がどの範囲内となっているか判定することにより教示データを生成している。
【0046】
ベロシティの値域の分割は、本実施の形態では7等分することで行っている。それにより、楽音のベロシティ値がv1以上(v2−v1)/7+v1で求まる値未満であればピアニッシモを指定する教示データを生成する。以下、同様に、(v2−v1)/7+v1で求まる値以上2(v2−v1)/7+v1で求まる値未満であればピアノ、2(v2−v1)/7+v1で求まる値以上3(v2−v1)/7+v1で求まる値未満であればメゾピアノ、3(v2−v1)/7+v1で求まる値以上4(v2−v1)/7+v1で求まる値未満であれば標準(表示させるべき強弱記号なし)、4(v2−v1)/7+v1で求まる値以上5(v2−v1)/7+v1で求まる値未満であればメゾフォルテ、5(v2−v1)/7+v1で求まる値以上6(v2−v1)/7+v1で求まる値未満であればフォルテ、6(v2−v1)/7+v1で求まる値以上v2以下であればフォルテッシモを指定する教示データをそれぞれ生成する。
【0047】
なお、ベロシティの値域の分割は、当然のことながら、上記のような等分割でなくても良い。強弱記号の種類別に重みづけを行い、その重みに応じて強弱記号が対応する値域中の範囲、その幅を異ならせるようにしても良い。値域の他に、ベロシティの平均値(図5中のvH)を求め、その平均値vHを考慮しつつ値域を分割しても良い。これらのように、値域の分割には様々な方法を用いることができる。
【0048】
例えば、或る楽音を強く鳴らすとしても、他の楽音も強く鳴らすのであれば、その楽音を鳴らす強さは普通である。特に強く鳴らすことにはならない。また、実際に発音される楽音の音量の範囲は曲(演奏データ)によって異なる。これは、強く、或いは弱く発音させると判断すべき楽音が曲(演奏データ)に応じて変化することを意味する。しかし、上述したように、ベロシティの実際の値域を調べ、その値域に応じて教示データを生成するうえでの基準を設定することで、実際に発音される楽音間の強弱関係に沿って基準を設定することになる。このため、適切な教示データを生成することができる。この結果、自動演奏の進行に合わせて、適切な強弱記号が必要に応じてLCD103に表示されることになる。
【0049】
強弱記号は個々の楽音のベロシティ値に応じて表示させることを前提としている。このため、教示データの生成は、自動演奏と並行に行うようにしている。より具体的には、楽音の発音を指示するイベントデータの処理タイミングとなる度に、そのイベントデータ中のベロシティ値を参照して教示データを生成し、その生成結果に従ってLCD103に強弱記号を表示させている。それにより、演奏者には、押鍵すべき鍵101aの他に、それを押鍵する強さを指示している。
【0050】
ところで、これまで演奏データの再生は、イベントデータで指定される楽音を単に発音させることで行われていた。しかし、そのように演奏データを単に正確に再生するだけでは、自動演奏との合奏で行える音楽表現の幅は狭い。このことから、より幅広い音楽表現を行えるように、本実施の形態では、自動演奏上のパラメータを演奏者(ユーザ)が変更できるようにしている。そのことについて、図4を参照して説明する。
【0051】
その図4は、チャネル間関係設定画面例を示す図である。その画面は、自動演奏上のパラメータの変更内容を演奏者(ユーザ)に設定させるために用意したものである。上記チャネル設定スイッチを操作する度にLCD103上に表示、或いはその表示が消去される。なお、その画面の画像データは、例えばCPU201が、ワークRAM203を用いて、プログラムROM202から読み出した画像データを加工することで生成される。そのようにして生成した画像データをLCDコントローラー207に送出して表示を指示することでLCD103上にその画面が表示されることになる。
【0052】
チャネル間関係設定画面には、チャネル(CH)、マスターチャネル(CH)、反映の有無、及び同期センスの4つの項目が表形式で配置されている。チャネルの項目の欄には、1〜16の数字が表示されている。それらの数字は、MIDIデータで使うことができるチャネル番号を示している。それにより、チャネル番号毎に、マスターチャネル、反映の有無、及び同期センスを設定するようになっている。
【0053】
本実施の形態では、変更の対象とするパラメータとして、イベントデータ中のベロシティ値を採用している。演奏データは、普通、複数のチャネルが使用されている。このことを利用して、ベロシティ値は、他のチャネルのベロシティ値を用いて変更させるようにしている。その他のチャネルがマスターチャネルである。設定画面のマスターチャネルの項目で○印が表示された欄のチャネル番号のチャネルがマスターチャネルとして設定される。反映の有無は、そのマスターチャネルのベロシティ値を用いてベロシティ値を変更させるチャネル(スレーブチャネル)を指定するための項目である。○印が表示された欄のチャネル番号のチャネルはマスターチャネルのベロシティ値を用いてベロシティ値が変更される。同期センスは、ベロシティ値の変更にマスターチャネルのベロシティ値を反映させる度合い、即ちスレーブチャネルのMIDIデータ中のベロシティ値の変更量を指定するための項目であり、その項目の欄には1〜5のうちの何れかの数値を入れることができる。その値が大きくなるほど、ベロシティ値の変更量は大きくなる傾向となっている。
【0054】
CPU201は、チャネル間関係設定画面を表示させる場合、設定対象としている欄を示すカーソルも合わせて表示させる。演奏者は、カーソルキーを操作して内容の変更を所望する欄にカーソルを移動させた後、テンキーを操作して所望する内容をその欄に入力する。カーソルキー、テンキーを用いて行った設定は、チャネル設定スイッチを操作すると保存される。その後にスタート/ストップスイッチを操作すると、自動演奏は設定された内容に従って行われる。
【0055】
上述したようにしてベロシティ値をチャネル毎に変更できるようにすることで、各チャネル毎に音量、或いはその抑揚をアレンジすることができる。それによって、チャネル間の演奏上におけるバランスや主張の度合いもアレンジすることができる。このため、自動演奏との合奏において、演奏者はより幅広い音楽表現を行うことができる。
【0056】
次に、上述したようにしてCPU201が行う制御動作について、図6〜図10に示す各種動作フローチャートを参照して詳細に説明する。
図6は、全体処理の動作フローチャートである。始めに、図6を参照して、全体処理について詳細に説明する。なお、この全体処理は、CPU201が、プログラムROM202に格納されているプログラムを読み出して実行することで実現される。
【0057】
先ず、ステップ601では、電子楽器を予め定めた初期状態に設定するイニシャル処理を行う。続くステップ602では、スイッチ群204を構成する各種スイッチの走査(スキャン)を指示してインターフェース206に状態変化したスイッチ、及びその変化の内容を検出させ、その検出結果に応じて各種の設定を行うスイッチ処理を実行する。それが終了した後、ステップ603に移行する。
【0058】
ステップ603では、インターフェース206に鍵盤101の走査を指示して状態変化した鍵101a、及び、その変化の内容を検出させ、その結果に応じて音源209に送出すべきMIDIデータ(制御コマンド)を生成する鍵盤処理を実行する。生成したMIDIデータは、ワークRAM203に用意した領域(以降、バッファとも呼ぶことにする)に格納する。その後は、ステップ604に移行する。
【0059】
ステップ604では、指定された演奏データの再生、更には点灯させるべきLEDの点灯を行う自動演奏処理を実行する。ここでも鍵盤処理の実行時と同様に、音源209に送出すべきMIDIデータはワークRAM203のバッファに格納する。
【0060】
ステップ604に続くステップ605では、MIDI端子を介して外部装置との間でMIDIデータを送受信するMIDI処理を実行する。そのMIDIデータの送受信は、バッファに格納されたMIDIデータを外部装置に送信したり、外部装置から送信されたMIDIデータを受信してバッファに格納することで行われる。それが終了した後は、ステップ606に移行する。
【0061】
ステップ606では、バッファに格納されているMIDIデータを音源209に送出して楽音を発音させる発音処理を実行する。続くステップ607では、再生対象とする演奏データから教示データを作成(生成)できるようにするための教示データ作成処理を実行する。マスターチャネルにおけるベロシティ値の最大値Vmax(図5におけるv2に対応)、最小値Vmin(図5におけるv1に対応)は、それを実行することで抽出される。その後は、ステップ608に移行して、FDDコントローラー208やLCDコントローラー207等の制御といったことを行うその他の処理を実行する。それが終了した後、上記ステップ602に戻る。
【0062】
全体処理中のステップ602〜608は処理ループを形成しており、電子楽器の電源がオンとなっている間、それが繰り返し実行される。それにより、電子楽器は、鍵盤101やスイッチ群204に対して演奏者が行った操作に応じて動作することになる。
【0063】
以降は、上記全体処理内で実行されるサブルーチン処理について説明する。始めに、その全体処理内でステップ602として実行されるスイッチ処理について、図7に示す動作フローチャートを参照して詳細に説明する。
【0064】
先ず、ステップ701では、スイッチ群204を構成する各スイッチの走査(スキャン)をインターフェース206に指示する。そのインターフェース206から走査結果として操作情報を受け取った後、ステップ702に移行する。ステップ702以降では、その操作情報に対応するための処理が行われる。
【0065】
ステップ702では、スタート/ストップスイッチがオンしたか否か判定する。そのスイッチがオンされたことを操作情報が示していた場合、判定はYESとなり、ステップ703で自動演奏の実行を管理するための変数JEFの値を反転(それまでの値が1であれば0に、その値が0であれば1に)させた後、ステップ704に移行する。反転によって変数JEFの値を1にさせたときには、タイマの値をクリアした後にその計時をスタートさせる。そうでない場合には、判定はNOとなって次にそのステップ704に移行する。なお、変数JEFに代入される1は、自動演奏が実行中であることを示す値である。タイマは、時間データ(直前のイベントとの時間差を示すデルタタイム)に沿ってそれが付加されたMIDIデータを処理する、即ちそのMIDIデータの処理タイミングを特定するためのものである。
【0066】
ステップ704では、教示データ作成スイッチがオンしたか否か判定する。そのスイッチがオンされたことを操作情報が示していた場合、判定はYESとなり、ステップ705で教示データの作成を管理するための変数KDSFに1を代入した後、ステップ706に移行する。そうでない場合には、判定はNOとなって次にそのステップ706に移行する。
【0067】
ステップ706では、表示スイッチがオンしたか否か判定する。そのスイッチがオンされたことを操作情報が示していた場合、判定はYESとなり、ステップ707でナビゲートモードの設定の有無を管理するための変数HFの値を反転(それまでの値が1であれば0に、その値が0であれば1に)させた後、ステップ708に移行する。そうでない場合には、判定はNOとなって次にそのステップ708に移行する。なお、変数HFに代入される1は、ナビゲートモードが設定中であることを示す値である。
【0068】
ステップ708では、チャネル設定スイッチがオンしたか否か判定する。そのスイッチがオンされたことを操作情報が示していた場合、判定はYESとなり、ステップ709で自動演奏上の設定変更の禁止を管理するための変数CSFの値を反転(それまでの値が1であれば0に、その値が0であれば1に)させた後、ステップ710に移行する。そうでない場合には、判定はNOとなって次にそのステップ710に移行する。なお、変数CSFに代入される1は、設定変更が可能、即ち図4のようなチャネル間関係設定画面をLCD103に表示すべきことを示す値である。
【0069】
ステップ710では、変数CSFの値が1か否か判定する。上記チャネル間関係設定画面をLCD103上に表示させていた場合、判定はYESとなってステップ711に移行し、カーソルキーやテンキーのなかで状態変化が検出されたキーの種類、その状態変化の内容に応じて設定を変更した後、ステップ712に移行する。それにより、カーソルキーへの操作に応じてカーソルを移動させ、そのカーソルを表示させている欄の内容をテンキーへの操作に応じて変更させる。一方、そうでない場合には、判定はNOとなってステップ712に移行する。
【0070】
ステップ712では、他のスイッチへの操作に応じた処理を行う。それを行った後、一連の処理が終了する。テンポ値や自動演奏の対象とする演奏データ(曲)の指定、或いは音響効果や他のモードの設定等は、ステップ712の処理を実行することで実現される。
【0071】
図8及び図9は、全体処理内でステップ604として実行される自動演奏処理の動作フローチャートである。次に、図8及び図9を参照して、自動演奏処理について詳細に説明する。
【0072】
図4に示すようなチャネル間関係設定画面を介して設定した内容(以降、演奏設定情報と呼ぶ)、演奏データから抽出したマスターチャネルのベロシティ値の最大値Vmax、最小値Vmin、そのチャネルのキープレッシャー値の最大値Pmax(以降、抽出データとも呼ぶことにする)は、その演奏データと対応づけさせてワークRAM203に保存される。その設定情報、及び抽出データは、自動演奏を実行する際に、再生の対象とする演奏データに応じて読み出されて参照される。
【0073】
先ず、ステップ801では、変数JEFの値が1か否か判定する。その変数には、自動演奏を実行している間、1が代入される。このことから、自動演奏の実行中の場合、判定はYESとなってステップ802に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0074】
ステップ802では、次のMIDIデータ(イベントデータ)の処理タイミングとなったか否か判定する。タイマの値はMIDIデータを処理する度にクリアすることから、そのタイマが計時した時間が、MIDIデータに付加されている時間データが示す時間以上となると、それの処理タイミングということになる。このため、そのような状況となっていた場合、判定はYESとなってステップ803に移行する。そうでない場合には、判定はNOとなって一連の処理を終了する。
【0075】
ステップ803では、処理タイミングとなったMIDIデータがマスターチャネルのものか否か判定する。そのMIDIデータ中のチャネル番号がマスターチャネルとして演奏者が図4に示すようなチャネル間関係設定画面で指定したチャネル番号(図4ではチャネル番号が1である)と一致していた場合、判定はYESとなってステップ804に移行する。そうでない場合には、判定はNOとなって図9のステップ810に移行する。
【0076】
本実施の形態では、マスターチャネルのMIDIデータのみを対象にナビゲートを行うようにしている。そのナビゲート、即ちLED群205を構成するLEDの駆動は、ステップ804〜809の処理を実行することで実現される。
【0077】
先ず、ステップ804では、イベントの種類を判定する。ナビゲートの対象とする操作子は、鍵盤101である。このことから、1バイト目と3バイト目のデータを参照して、イベントは、ノートオン、ノートオフ、及びその他の3種類に大別して判定している。1バイト目と3バイト目のデータからイベントの種類がノートオン、及びノートオフの何れでもないと判定した場合、図9のステップ810に移行する。
【0078】
一方、1バイト目と3バイト目のデータからイベントの種類がノートオンと判定した場合には、ステップ805に移行する。そのステップ805では、変数HFの値が1か否か、即ちナビゲートモードを演奏者が設定したか否か判定する。そのナビゲートモードを演奏者が指定した場合、判定はYESとなってステップ806に移行する。そうでない場合には、判定はNOとなって図9のステップ810に移行する。
【0079】
ステップ806では、2バイト目のデータとして格納されているノートナンバーに対応する鍵101aのLEDを点灯させる。続くステップ807では、教示データ作成処理を実行することで取得したベロシティ値の最大値Vmax、最小値Vmin、及びMIDIデータの3バイト目のデータとして格納されたベロシティ値に応じて表示すべき強弱記号を示す教示データを生成し、その教示データに従って強弱記号をLCD103に表示させる。その後、図9のステップ810に移行する。なお、LEDの点灯は、CPU201がインターフェース206に、LEDの点灯を指示する命令コード、点灯させるLEDを指定するデータを少なくとも有する制御コマンドを送出することで行われる。強弱記号の表示は、CPU201がLCDコントローラー207に、強弱記号の表示を指示する命令コード、及びその記号の種類を指定するデータを少なくとも有する制御コマンドを送出することで行われる。
【0080】
1バイト目と3バイト目のデータからイベントの種類がノートオフと判定した場合には、ステップ808に移行する。そのステップ808では、変数HFの値が1か否か判定する。ナビゲートモードを演奏者が指定した場合、判定はYESとなってステップ809に移行する。そうでない場合には、判定はNOとなって図9のステップ810に移行する。
【0081】
ステップ809では、2バイト目のデータとして格納されているノートナンバーに対応する鍵101aのLEDを消灯させる。その後、図9のステップ810に移行する。なお、LEDの消灯は、CPU201がインターフェース206に、LEDの消灯を指示する命令コード、消灯させるLEDを指定するデータを少なくとも有する制御コマンドを送出することで行われる。
【0082】
図9のステップ810では、変数HFの値が1か否か判定する。それの値が1であった場合、判定はYESとなってステップ812に移行する。そうでない場合には、判定はNOとなり、ステップ811に移行して、処理対象となったMIDIデータ(イベントデータ)をワークRAM203のバッファ内に格納した後、ステップ816に移行する。
【0083】
マスターチャネルのベロシティ値のスレーブチャネルへの反映は、ナビゲートモードの設定時に行うようにしている。その反映は、ステップ812〜815の処理を実行することにより実現される。
【0084】
ステップ812では、処理タイミングとなったMIDIデータがスレーブチャネルのものか否か判定する。そのMIDIデータ中のチャネル番号がスレーブチャネルとして演奏者が図4に示すようなチャネル間関係設定画面で指定したチャネル番号(図4ではチャネル番号が2と3である)と一致していた場合、判定はYESとなってステップ813に移行する。そうでない場合には、判定はNOとなってステップ811に移行する。
【0085】
ステップ813では、イベントの種類を判定する。音量は、ベロシティ値の他に、キープレッシャー値によっても変化する。このことから、1バイト目と3バイト目のデータを参照して、イベントは、ノートオン、キープレッシャー、及びその他の3種類に大別して判定している。1バイト目と3バイト目のデータからイベントの種類がノートオン、及びキープレッシャーの何れでもないと判定した場合、MIDIデータの内容を操作する必要はないことから、ステップ811に移行する。
【0086】
一方、1バイト目と3バイト目のデータからイベントの種類がノートオンと判定した場合には、ステップ814に移行する。そのステップ814では、マスターチャネルの最大値Vmax、同期センスの値に応じて、MIDIデータのベロシティ値を変更してワークRAM203のバッファに格納する。当然のことながら、自動演奏の対象としている演奏データから最大値Vmax等を抽出していなければ、ベロシティ値は変更しない。そのようなベロシティ値の変更を行った後、ステップ816に移行する。
【0087】
そのベロシティ値の変更、即ち新たなベロシティ値Vの算出は、以下の式を用いて行っている。
V = A×(1−B) + (A×B×C)
ここで、Aは元のベロシティ値、Bは同期センス値に対応した値(例えば、センス値が1のときは0.2、その値が2のときは0.4、その値が3のときは0.6、その値が4のときは0.8、その値が5のときは1.0、である)、Cはマスターチャネルで直前に処理したMIDIデータのベロシティ値をマスターチャネルの最大値Vmaxで割って得られる値、である。この式から明らかなように、センス値が大きくなるほど、マスターチャネルのベロシティ値をスレーブチャネルのベロシティ値に反映させる度合いを大きくさせている。
【0088】
なお、新たなベロシティ値の算出方法は、上記式を用いる方法に限定されるわけではない。他の式を用いても良く、マスターチャネルとスレーブチャネルの各ベロシティ値に応じて新たに設定すべきベロシティ値をデータとして予め用意しておいても良い。その他にも様々な方法を採用することができる。
【0089】
1バイト目のデータからイベントの種類がキープレッシャーと判定した場合には、ステップ815に移行する。そのステップ815では、マスターチャネルのキープレッシャーにおける最大値Pmax、同期センスの値に応じて、MIDIデータのプレッシャー値を変更してワークRAM203のバッファに格納する。当然のことながら、自動演奏の対象としている演奏データから最大値Pmax等を抽出していなければ、プレッシャー値は変更しない。そのようなプレッシャー値の変更を行った後、ステップ816に移行する。そのプレッシャー値の算出方法は、上述したベロシティ値の算出方法と基本的に同じである。このため、その詳細については省略する。
【0090】
ステップ816では、次に処理すべきMIDIデータがあるか否か判定する。再生している演奏データに未処理のMIDIデータが残っていた場合、判定はYESとなってステップ817に移行する。そうでない場合には、即ち演奏データの再生が完了した場合には、判定はNOとなってステップ818に移行する。
【0091】
ステップ817では、タイマの値をクリアし、処理対象を次のMIDIデータ(イベントデータ)に変更する。その後、一連の処理を終了する。
他方のステップ818では、全ての楽音の消音を指示するMIDIデータをワークRAM203のバッファに格納する。続くステップ819では、演奏データの再生が完了したことから、変数JEFに0を代入する。一連の処理はその後に終了する。
【0092】
上述した自動演奏処理を実行することにより、演奏者がマスターチャネルの演奏を行ううえで押鍵の強さを指示する強弱記号が表示され、音量がアレンジされたスレーブチャネルの自動演奏が行われることになる。なお、特には図示していないが、自身が行ったマスターチャネルの演奏を演奏者がより明確に把握できるように、そのマスターチャネルのMIDIデータの処理を回避できる(即ちマイナスワン演奏できる)ようになっている。
【0093】
図10は、上記全体処理内でステップ607として実行される教示データ作成処理の動作フローチャートである。次に、図10を参照して、教示データ作成処理について詳細に説明する。
【0094】
先ず、ステップ1001では、変数KDSFの値が1か否か判定する。演奏者(ユーザ)が教示データ作成スイッチを操作して教示データの作成、即ち強弱記号の表示を行えるようにすることを指示した場合、判定はYESとなってステップ1002に移行する。そうでない場合には、判定はNOとなって一連の処理を終了する。
【0095】
ステップ1002では、演奏者が教示データ作成スイッチを操作するまえに再生の対象となっていた演奏データをプログラムROM202から読み出して、或いはフロッピーディスクから読み出させてワークRAM203に格納する。続くステップ1003では、各種変数に初期値を代入する。具体的には、変数Vmax、Vtot、Pmax、及びNIにそれぞれ0を代入し、変数Vminには127を代入する。その後、ステップ1004に移行する。なお、ベロシティ値、及びキープレッシャー値の値域は、0〜127である。
【0096】
変数NIは、ワークRAM203に格納した演奏データ中から読み出すMIDIデータ(イベントデータ)を管理するための変数である。ステップ1004では、その変数NIの値によって指定されるMIDIデータ(イベントデータ)をワークRAM203から読み出す。続くステップ1005では、読み出したMIDIデータがマスターチャネルのものか否か判定する。そのMIDIデータのチャネル番号がマスターチャネルのチャネル番号と一致していた場合、判定はYESとなってステップ1006に移行する。そうでない場合には、即ちそのMIDIデータが強弱記号の表示対象となっていないチャネルのものであった場合には、判定はNOとなってステップ1015に移行する。
【0097】
上記変数Vmax、Vtot、Pmax、及びVminは、教示データ作成に用いる各種データの抽出用に用意したものである。ステップ1006〜1014では、ステップ1004で読み出したMIDIデータに応じて、それら変数の値を更新するための処理が行われる。
【0098】
先ず、ステップ1006では、イベントの種類を判定する。イベントは、ノートオン、キープレッシャー、及びその他の3種類に大別して判定している。1バイト目と3バイト目のデータからイベントの種類がノートオン、及びキープレッシャーの何れでもないと判定した場合、強弱記号の表示や楽音の音量制御には関係しないことから、ステップ1015に移行する。
【0099】
1バイト目と3バイト目のデータからイベントの種類がノートオンと判定した場合には、ステップ1007に移行する。そのステップ1007では、変数Vtotに、それまでの値にステップ1004で読み出したMIDIデータのベロシティ値を加算して得られる値を代入する。続くステップ1008では、変数NIの値をインクリメントする。その後、ステップ1009に移行する。
【0100】
ステップ1009では、MIDIデータのベロシティ値が変数Vmaxの値より大きいか否か判定する。直前に実行したステップ1004で読み出したMIDIデータのベロシティ値がそれまでに読み出したMIDIデータのなかで最大であった場合、判定はYESとなり、ステップ1010で変数Vmaxにそのベロシティ値を代入した後、ステップ1011に移行する。そうでない場合には、判定はNOとなってステップ1011に移行する。
【0101】
ステップ1011では、MIDIデータのベロシティ値が変数Vminの値より小さいか否か判定する。直前に実行したステップ1004で読み出したMIDIデータのベロシティ値がそれまでに読み出したMIDIデータのなかで最小であった場合、判定はYESとなり、ステップ1012で変数Vminにそのベロシティ値を代入した後、ステップ1015に移行する。そうでない場合には、判定はNOとなり、そのステップ1015に移行する。
【0102】
一方、1バイト目と3バイト目のデータからイベントの種類がキープレッシャーと判定した場合には、ステップ1013に移行する。そのステップ1013では、MIDIデータのプレッシャー値が変数Pmaxの値より大きいか否か判定する。直前に実行したステップ1004で読み出したMIDIデータのプレッシャー値がそれまでに読み出したMIDIデータのなかで最大であった場合、判定はYESとなり、ステップ1014で変数Pmaxにそのプレッシャー値を代入した後、ステップ1015に移行する。そうでない場合には、判定はNOとなってステップ1015に移行する。
【0103】
ステップ1015では、次に読み出すべきMIDIデータがあるか否か判定する。演奏データに未処理のMIDIデータが残っていた場合、判定はYESとなってステップ1004に戻る。そうでない場合には、即ち演奏データから抽出すべきデータの抽出が完了した場合には、判定はNOとなってステップ1016に移行する。
【0104】
ステップ1016では、変数VHに、変数Vtotの値を変数NIの値で割って得られる値(=Vtot/NI)、即ちベロシティ値の平均値を代入する。続くステップ1017では、変数KDSFに0を代入する。その後、一連の処理を終了する。
【0105】
ステップ1004〜1015で形成される処理ループをステップ1015の判定がNOとなるまでの間、繰り返し実行することにより、ベロシティ値の最大値、最小値、及びプレッシャー値の最大値が抽出されることになる。そのようにして抽出したデータが、演奏データと対応づけてワークRAM203に保持される。それにより、自動演奏の実行時には、強弱記号の表示、マスターチャネルのベロシティ値のスレーブチャネルのベロシティ値への反映が実現される。
【0106】
なお、第1の実施の形態では、チャネル間の主従関係を演奏者(ユーザ)に設定させて、スレーブチャネル(従のチャネル)のMIDIデータのベロシティ値やキープレッシャー値をマスターチャネル(主のチャネル)のMIDIデータのベロシティ値やキープレッシャー値に応じて変更するようになっているが、その主従関係を演奏者に設定させなくても良い。単にそれら値の変更の対象とするチャネルを演奏者に設定させるようにしても良い。その主従関係を複数、設定できるようにしても良い。同期センス値については、演奏者に設定させないようにしても良い。元の値を変更させる度合いではなく、新たに求める値の算出方法を演奏者が任意に設定できるようにしても良い。それら以外の変更方法を採用しても良い。値の変更対象については、ベロシティ値、及びキープレッシャー値のうちの何れか一方のみとしても良い。音色等の音量制御に関わらない他のパラメータを変更できるようにしても良い。これらのように、自動演奏上のパラメータの変更については、様々な方法を採用することができる。
<第2の実施の形態>
上記第1の実施の形態では、基本的に、強弱記号の表示は個々の楽音を対象にしている。これに対し、第2の実施の形態は、予め設定された演奏単位(複数の楽音(音符)がまとまった部分)を対象に強弱記号を表示できるようにしたものである。
【0107】
その第2の実施の形態による教示データ生成装置、及び自動演奏装置を搭載した電子楽器の構成は、第1の実施の形態におけるそれと基本的に同じである。このため、第1の実施の形態の説明で用いた符号をそのまま用いて、その第1の実施の形態から異なる部分のみ説明することにする。
【0108】
図11は、第2の実施の形態における教示データの生成方法を説明する図である。始めに、その図11を参照して、教示データの生成方法について説明する。演奏単位としては、音符(例えば4分音符)や拍、小節、それらのうちの少なくとも一つを基本単位とする単位、或いは演奏者(ユーザ)が任意に設定した演奏範囲など、様々なものが考えられる。ここでは、混乱を避けて理解を容易とするために、演奏単位は小節であるとの前提で以降の説明を行うことにする。なお、小節に対応する時間は、例えば設定されている分解能、及びメタイベントとして演奏データ(SMF)中で定義された拍子から特定することができる。
【0109】
図11において、A−1〜A−4及びB−1〜B5は、それぞれ、小節を表している。音符は、発音される楽音の種類を示し、ベロシティは楽音のベロシティ、長さは拍で表した楽音の発音期間、差分は直前に発音される楽音との間のベロシティ値の差、を各々示している。
【0110】
本実施の形態では、その図11に示すように、発音される楽音を各小節毎にまとめ、小節を構成する楽音の音量の大きさ、その音量変化から表示すべき強弱記号を示す教示データを生成するようにしている。具体的には、クレシェンドやデクレシェンド等のように段階的な楽音の音量変化を指定する強弱記号の教示データは、隣接する楽音間のベロシティ値の差分が全て所定の範囲内であり、且つ、ベロシティ値が変化していく方向が全体的に維持されているか否かに応じて生成している。ピアニッシモやピアノ、或いはフォルテ等の音量の大きさを指定する強弱記号の教示データは、ベロシティ値の平均値を求め、その平均値から第1の実施の形態と同様の手法を用いて生成している。そのようにして生成した教示データにはそれが対応する小節を表すデータを付加し、演奏データとは別に、それと対応づけてワークRAM203に格納している。教示データに付加するデータは、例えばそれが示す強弱記号を表示すべきタイミングを指定する時間データである。
【0111】
なお、楽音が鳴っていない時間が長くなるほど、演奏単位(小節)全体で受ける印象では音量が小さく感じられることから、フォルテ等の強弱記号の教示データは、各楽音の発音時間を考慮して生成しても良い。例えば、ベロシティ値に発音時間を掛けて得られる値の合計値、及び全発音時間をそれぞれ算出し、その合計値を全発音時間で割って得られる平均値を基に教示データを生成するようにしても良い(図11参照)。
【0112】
フォルテ等の強弱記号の教示データは、第1の実施の形態と同様に、実際に発音される楽音間の強弱関係に沿って設定した基準を用いて生成されていることから、演奏にとって適切なものである。クレシェンド等の強弱記号の教示データは、予め定めた演奏単位(ここでは小節)で発音される楽音の音量変化を全体的に考慮して生成している。このため、隣接する楽音間のベロシティ値の差にのみ着目して教示データを生成している従来の教示データ生成装置とは異なり、その演奏単位の演奏時に表示すべき強弱記号を示す教示データを適切に生成することができる。
【0113】
上述したようにして教示データを生成するCPU201の動作は、図6に示す全体処理のなかでステップ604の自動演奏処理、及びステップ607の教示データ作成処理が第1の実施の形態から異なっている。他のステップの処理の内容は第1の実施の形態におけるそれと基本的に同じである。このことから、第2の実施の形態におけるステップ604の自動演奏処理、及びステップ607の教示データ作成処理についてのみ、図12、及び図13を参照して説明する。
【0114】
第2の実施の形態の自動演奏処理は、図8に示す動作フローチャートのなかで、ステップ807だけが第1の実施の形態から異なる。このことから、図12を参照して、そのステップ807の代わりに実行される部分についてのみ説明する。その図12は、その部分を抜粋した動作フローチャートである。
【0115】
図12のステップ1201は、図8のステップ806の処理が終了した後に実行される。そのステップ1201では、演奏対象とする小節が移ったか否か判定する。
【0116】
教示データには、それが対応する小節を表すデータとして時間データが付加されている。その時間データは、例えば演奏開始からの時間、或いは直前の小節の先頭からの時間を示すデータである。本実施の形態では、後者を採用しており、タイマとは別の計時機能で教示データを処理すべきタイミングを計時している。このため、その計時機能で計時した時間が時間データで指定された時間以上であった場合、ステップ1201の判定はYESとなり、ステップ1202で教示データが示す強弱記号をLCD103に表示させた後、図9のステップ810に移行する。そうでない場合には、その判定はNOとなって図9のステップ810に移行する。
【0117】
このようにして、第2の実施の形態では、演奏が小節を移る度に、LCD103に表示させる強弱記号を更新する。それにより、デクレシェンド、或いはデクレッシェンドといった強弱記号を必要に応じてLCD103に表示させている。なお、LCD103に表示させる強弱記号の更新は、CPU201がLCDコントローラ−207に、アドレスバス212、及びデータバス213を介して、LCD103に新たに表示させるべき強弱記号に応じて生成した制御コマンドを送出することで実現される。
【0118】
図13は、図6に示す全体処理内でステップ607として実行される教示データ作成処理の動作フローチャートである。次に、図13を参照して、第2の実施の形態における教示データ作成処理について詳細に説明する。
【0119】
第2の実施の形態でも第1の実施の形態と同じく、演奏データからベロシティ値の最大値Vmax、最小値Vmin、キープレッシャー値の最大値Pmaxを抽出している。しかし、ここでは、説明の重複を避けるため、その部分の動作フローチャートは省いている。それにより、クレシェンド等の強弱記号の教示データの生成に関わる部分のみに注目して説明することにする。
【0120】
先ず、ステップ1301では、変数KDSFの値が1か否か判定する。演奏者(ユーザ)が教示データ作成スイッチを操作して教示データの作成、即ち強弱記号の表示を行えるようにすることを指示した場合、判定はYESとなってステップ1302に移行する。そうでない場合には、判定はNOとなって一連の処理を終了する。
【0121】
ステップ1302では、演奏者が教示データ作成スイッチを操作するまえに再生の対象となっていた演奏データをプログラムROM202から読み出して、或いはフロッピーディスクから読み出させてワークRAM203に格納する。続くステップ1303では、予め設定された演奏単位(期間)で演奏データを分割して、演奏単位毎に、そこで発音される楽音のベロシティ値、発音時間(拍を単位とした長さ)、及び隣接する楽音間のベロシティ値の差分を求める(図11参照)。それが終了した後、ステップ1304に移行する。
【0122】
ステップ1304では、各演奏単位(小節)毎に、その単位で発音される楽音のベロシティ値の変化傾向を解析する。隣接する楽音間のベロシティ値の差分、その差分の変化に注目して全体的な変化傾向を解析する。続くステップ1305では、その解析結果を教示データとしてワークRAM203に格納する。そのようにして生成したのは、クレシェンド等の強弱記号の教示データである。その教示データには、時間データを付加してワークRAM203に演奏データとは別に格納する。それが終了すると、ステップ1306で変数KDSFに0を代入した後、一連の処理を終了する。
【0123】
図12のステップ1202では、上述したようにして生成された教示データに従って強弱記号をLCD103に表示させる。それにより、LCD103に表示される強弱記号の小節単位での更新が実現されることになる。
【0124】
なお、第2の実施の形態では、演奏単位を予め定めているが、その演奏単位を予め定めずに、演奏内容に応じて任意、且つ自動的に変更するようにしても良い。そのようにした場合には、段階的な音量変化が続く演奏の範囲を検出して、その範囲の演奏時に表示すべき強弱記号を示す教示データを生成したり、一つだけ他と比較して大きく、或いは小さく鳴らすべき楽音用の教示データを生成するといったことが自動的に行われるようになる。このため、演奏データから生成すべき教示データをより適切に生成することができる。
【0125】
また、本実施の形態(第1および第2の実施の形態)の教示データ生成装置は、電子楽器に搭載されたものであるが、それを搭載できる装置は電子楽器に限定されるものではない。様々な装置に搭載することができる。既存の装置にも、CPU201の上述したような動作を実現させるプログラムをロードすることで本発明を適用することができる。そのプログラムは、CD−ROMやフロッピーディスク、或いは光り磁気ディスク等の記録媒体に記録して配布しても良いが、公衆網等の通信回線を介して配信するようにしても良い。これは、他方の自動演奏装置においても同様である。
【0126】
その自動演奏装置では、コピーした演奏データの内容を変更(操作)して自動演奏を行うようになっているが、その演奏データの内容を変更する機能のみをプログラムに組み込むようにしても良い。言い換えれば、演奏データの内容を変更して得られる演奏データを新たに生成する装置(演奏データ生成装置)として実現させても良い。その装置には、通常の自動演奏装置や電子楽器、或いは音源装置等の楽音生成装置に演奏データを容易に供給できる機能を搭載することが望ましい。
【0127】
【発明の効果】
以上、説明したように本発明(第1の態様の教示データ生成装置)は、イベントデータ中の楽音の音量を指定する音量データを参照して、それの値域を最大音量データ値と最小音量データ値の間で複数の範囲に分割することにより、演奏データ毎に、教示データを生成するうえでの基準を設定してその教示データを生成する。このため、演奏データによって異なる楽音の音量の大きさのバラツキや偏り等に適切に対応することができる。それにより、適切な教示データを生成することができる。
【0128】
本発明(第2の態様の教示データ生成装置)は、該演奏単位を構成する複数の楽音毎の音量を指定するベロシティ値に当該楽音の発音時間を掛けて得られる値の合計値、及び前記複数の楽音の全発音時間を夫々算出すると共に、当該合計値を全発音時間で割って得られる平均値を参照して、該演奏単位で発音させるべき楽音の音量を解析し、その解析結果に基づいて、前記演奏単位毎に楽音の強弱を指定する強弱記号の種類を示す教示データを生成する。それにより、単に楽音間の音量の差に応じて教示データを生成するようなことが回避されるため、適切な教示データを生成することができる。
【0130】
本発明(第2の態様の自動演奏装置)は、演奏者(ユーザ)が指定したチャネルのイベントデータ中の音量データの値を変更して自動演奏を行う。それにより、演奏者はチャネル単位で楽音の音量における抑揚をアレンジできるため、自動演奏との合奏ではより幅広い音楽表現を行うことができる。
【図面の簡単な説明】
【図1】 第1の実施の形態による教示データ生成装置、及び自動演奏装置を搭載した電子楽器の外観図である。
【図2】 第1の実施の形態による教示データ生成装置、及び自動演奏装置を搭載した電子楽器の回路構成図である。
【図3】 LCDに表示される強弱記号を説明する図である。
【図4】 チャネル間関係設定画面例を示す図である。
【図5】 教示データの生成方法を説明する図である。
【図6】 全体処理の動作フローチャートである。
【図7】 スイッチ処理の動作フローチャートである。
【図8】 自動演奏処理の動作フローチャートである。
【図9】 自動演奏処理の動作フローチャートである(続き)。
【図10】 教示データ作成処理の動作フローチャートである。
【図11】 教示データの生成方法を説明する図である(第2の実施の形態)。
【図12】 自動演奏処理の動作フローチャートである(第2の実施の形態:第1の実施の形態から変更される部分の抜粋)。
【図13】 教示データ作成処理の動作フローチャートである(第2の実施の形態)。
【符号の説明】
101 鍵盤
101a 鍵
103 LCD
105 FDD
201 CPU
202 プログラムROM
203 ワークRAM
204 スイッチ群
206 インターフェース
207 LCDコントローラー
208 FDDコントローラー
209 音源
210 波形ROM
211 DAコンバータ
212 アドレスバス
213 データバス
Claims (4)
- 楽音の発音に関わるイベントの内容を表すイベントデータを複数、備えてなる演奏データを基に、演奏を行う演奏者に対して表示すべき楽音の強弱を指定する強弱記号の種類を示す教示データを生成する装置であって、
前記イベントデータ中の楽音の音量を指定する音量データから、最大音量データ値と最小音量データ値の間で該音量データの値域を複数の範囲に分割する値域分割手段と、
予め定めた曲の演奏単位毎に、前記値域分割手段による値域の分割結果、及び該演奏単位を構成するイベントデータの音量データに基づいて、前記教示データを生成するデータ生成手段と、
を具備したことを特徴とする教示データ生成装置。 - 楽音の発音に関わるイベントの内容を表すイベントデータを複数、備えてなる演奏データを基に、演奏を行う演奏者に対して表示すべき楽音の強弱を指定する強弱記号の種類を示す教示データを生成する装置であって、
予め定めた曲の演奏単位毎に、該演奏単位を構成する複数の楽音毎の音量を指定するベロシティ値に当該楽音の発音時間を掛けて得られる値の合計値、及び前記複数の楽音の全発音時間を夫々算出すると共に、当該合計値を全発音時間で割って得られる平均値を参照して、該演奏単位で発音させるべき楽音の音量を解析する音量解析手段と、
前記音量変化解析手段の解析結果に基づいて、前記演奏単位毎に前記教示データを生成するデータ生成手段と、
を具備したことを特徴とする教示データ生成装置。 - 演奏データを構成するイベントデータ中の楽音の音量を指定する音量データから、最大音量データ値と最小音量データ値の間で該音量データの値域を複数の範囲に分割する機能と、
予め定めた曲の演奏単位毎に、前記分割する機能による値域の分割結果、及び該演奏単位を構成するイベントデータの音量データに基づいて、楽音の強弱を指定する強弱記号の種類を示す教示データを生成する機能と、
をコンピュータにより実現させるプログラムを記録したことを特徴とする記録媒体。 - 該演奏単位を構成する複数の楽音毎の音量を指定するベロシティ値に当該楽音の発音時間を掛けて得られる値の合計値、及び前記複数の楽音の全発音時間を夫々算出すると共に、当該合計値を全発音時間で割って得られる平均値を参照して、該演奏単位で発音させるべき楽音の音量を解析する機能と、
該解析する機能の解析結果に基づいて、前記演奏単位毎に楽音の強弱を指定する強弱記号の種類を示す教示データを生成する機能と、
をコンピュータにより実現させるプログラムを記録したことを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14163599A JP4178661B2 (ja) | 1999-05-21 | 1999-05-21 | 教示データ生成装置、及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14163599A JP4178661B2 (ja) | 1999-05-21 | 1999-05-21 | 教示データ生成装置、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000330559A JP2000330559A (ja) | 2000-11-30 |
JP4178661B2 true JP4178661B2 (ja) | 2008-11-12 |
Family
ID=15296639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14163599A Expired - Fee Related JP4178661B2 (ja) | 1999-05-21 | 1999-05-21 | 教示データ生成装置、及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4178661B2 (ja) |
-
1999
- 1999-05-21 JP JP14163599A patent/JP4178661B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000330559A (ja) | 2000-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5777251A (en) | Electronic musical instrument with musical performance assisting system that controls performance progression timing, tone generation and tone muting | |
JP4107107B2 (ja) | 鍵盤楽器 | |
US7288711B2 (en) | Chord presenting apparatus and storage device storing a chord presenting computer program | |
US6545208B2 (en) | Apparatus and method for controlling display of music score | |
US5939654A (en) | Harmony generating apparatus and method of use for karaoke | |
JP2000148136A (ja) | 音信号分析装置、音信号分析方法及び記憶媒体 | |
JP3267777B2 (ja) | 電子楽器 | |
JP4178661B2 (ja) | 教示データ生成装置、及び記録媒体 | |
US7381882B2 (en) | Performance control apparatus and storage medium | |
JP3844286B2 (ja) | 電子楽器の自動伴奏装置 | |
JP3722005B2 (ja) | 電子音楽装置及びその制御方法並びにプログラム | |
JP3613062B2 (ja) | 楽音データ作成方法および記憶媒体 | |
US6080926A (en) | Automatic accompanying apparatus and automatic accompanying method capable of simply setting automatic accompaniment parameters | |
JP3192597B2 (ja) | 電子楽器の自動演奏装置 | |
JP2002297139A (ja) | 演奏データ変更処理装置 | |
JP7425558B2 (ja) | コード検出装置及びコード検出プログラム | |
JP7404737B2 (ja) | 自動演奏装置、電子楽器、方法およびプログラム | |
JP3226268B2 (ja) | コンサートマジック自動演奏装置 | |
JP7263998B2 (ja) | 電子楽器、制御方法およびプログラム | |
JP2570411B2 (ja) | 演奏装置 | |
JP3752956B2 (ja) | 演奏ガイド装置および演奏ガイド方法並びに演奏ガイドプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2005173631A (ja) | 演奏データ作成装置 | |
JP2002182647A (ja) | 電子楽器 | |
JP2023133602A (ja) | プログラム、方法、情報処理装置、および画像表示システム | |
JP3870948B2 (ja) | 表情付け処理装置および表情付け用コンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041116 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070306 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070403 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071218 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080507 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080702 |
|
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: 20080805 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080818 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110905 Year of fee payment: 3 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070403 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120905 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130905 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |