JPH1020859A - 楽音発生装置 - Google Patents

楽音発生装置

Info

Publication number
JPH1020859A
JPH1020859A JP8171125A JP17112596A JPH1020859A JP H1020859 A JPH1020859 A JP H1020859A JP 8171125 A JP8171125 A JP 8171125A JP 17112596 A JP17112596 A JP 17112596A JP H1020859 A JPH1020859 A JP H1020859A
Authority
JP
Japan
Prior art keywords
phrase
melody
performance
code
key
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.)
Withdrawn
Application number
JP8171125A
Other languages
English (en)
Inventor
Kazuko Hayashi
加寿子 林
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 JP8171125A priority Critical patent/JPH1020859A/ja
Publication of JPH1020859A publication Critical patent/JPH1020859A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】 所望の対旋律を容易、且つ簡易に演奏に付加
できるようにする。 【解決手段】 鍵盤情報生成装置102は、鍵盤装置1
01へのユーザの操作を検出し、それを鍵盤情報として
CPU104に出力する。CPU104は、その鍵盤情
報から、現在押鍵されている鍵等を特定し、押鍵されて
いる鍵の組み合わせから、ユーザが指定したコードを判
別する。自動伴奏モードの設定時にコードを判別した場
合には、ROM105からフレーズ(対旋律)の演奏デ
ータを読み出し、そのコードで音高変換を行って生成し
た発音命令を音源装置108に送出することで、フレー
ズの再生を開始する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、鍵盤等の演奏操作
子群を備えた電子楽器等に適用される楽音発生装置に関
し、特には対旋律を再生する機能を備えた楽音発生装置
に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】例え
ば、電子楽器においては、近年、多機能化がすすみ、音
楽表現の幅を広げられる様々な機能が搭載されてきてい
る。電子楽器に搭載されるようになった機能の一つとし
て、例えば対旋律を自動再生する機能(以降、対旋律再
生機能と記す)がある。
【0003】対旋律は、一つの旋律(主旋律)に対立し
て独立的に動き、主旋律を効果的に補助する役割を持つ
別種の旋律である。対旋律再生機能を備えた従来の電子
楽器では、演奏者は自分が行っている演奏に対旋律を随
時付加することで、幅広い音楽表現を行うことができ
る。
【0004】
【発明が解決しようとする課題】対旋律再生機能を備え
た従来の電子楽器では、パッド等の所定の操作子を操作
することで、対旋律の再生開始をユーザが指示するよう
になっていた。このため、演奏中に対旋律を再生させる
には、鍵盤等の演奏操作子群と上記所定の操作子の操作
を並行して行わなければならず、演奏(メロディ)に効
果的に対旋律を付加することが非常に困難であるという
問題点があった。
【0005】当然のことながら、上記した問題点は、初
心者といった操作に慣れていないユーザ程、深刻とな
る。熟練者にとっても、複雑、且つ迅速な操作が要求さ
れるため、必ずしも意図した通りに対旋律を再生させる
ことができなかった。主たる演奏操作子群に対する操作
にユーザがより集中できるようにするといった意味から
も、対旋律再生機能をより簡易に扱えるようにすること
が要望されていた。
【0006】なお、上記従来の電子楽器のなかには、演
奏する特定の曲の対旋律を1曲分オブリガードとして自
動再生する機能を備えたものもある。その機能によるオ
ブリガードの再生は、所定の記憶媒体(ROM(Read On
ly Memory)パック等)に格納されている演奏データに従
って楽音を発音させることで行われる。このため、再生
されるオブリガードは、予めセットされている対旋律を
決められた順序で再生したものとなり、ユーザの意志を
反映させることはできなかった。
【0007】本発明の課題は、所望の対旋律を容易、且
つ簡易に演奏に付加できるようにすることにある。
【0008】
【課題を解決するための手段】本発明の第1の態様の楽
音発生装置は、異なる音高が各々割り当てられた複数の
演奏操作子からなる演奏操作子群を備えた装置に適用さ
れ、対旋律を構成する楽音の発音命令を順次生成するこ
とで対旋律を再生させるものであり、演奏操作子群への
操作を検出する操作検出手段と、対旋律の演奏情報を記
憶した演奏情報記憶手段と、演奏操作子群のなかで所定
の演奏操作子が操作されたと操作検出手段が検出したと
き、演奏情報記憶手段から対旋律の演奏情報を読み出
し、該演奏情報を用いて対旋律の再生を開始する対旋律
再生手段と、を具備する。
【0009】なお、上記の構成において、対旋律再生手
段は、所定の演奏操作子が操作されたと操作検出手段が
検出すると、演奏情報記憶手段から読み出す対旋律の演
奏情報を予め定められている規則に従って変更し、該対
旋律を再生する、ことが望ましい。また、所定の演奏操
作子は、コードを指定する少なくとも1つの演奏操作子
であり、対旋律再生手段は、所定の演奏操作子で指定さ
れたコードに基づく音高で対旋律を再生させる、ことが
望ましい。
【0010】また、対旋律再生手段は、演奏情報による
対旋律の再生を、自動再生される伴奏に同期させる、こ
とが望ましい。更に、対旋律再生手段は、操作検出手段
が検出した所定の演奏操作子が操作されたときの速さに
基づいて、対旋律を再生させる音量を変更する、ことが
望ましい。
【0011】本発明の第2の態様の楽音発生装置は、異
なる音高が各々割り当てられた複数の演奏操作子からな
る演奏操作子群を備えた装置に適用され、対旋律を構成
する楽音の発音命令を順次生成することで対旋律を再生
させるものであり、演奏操作子群への操作を検出する操
作検出手段と、対旋律の演奏情報を記憶した演奏情報記
憶手段と、演奏操作子群のなかで所定の演奏操作子が操
作されたと操作検出手段が検出したとき、演奏情報記憶
手段から演奏情報を読み出して再生する対旋律の音高
を、該所定の演奏操作子に基づいて変更する対旋律再生
手段と、を具備している。
【0012】なお、上記所定の演奏操作子は、コードを
指定する少なくとも1つの演奏操作子である、ことが望
ましい。また、対旋律再生手段は、演奏情報による対旋
律の再生を、自動再生される伴奏に同期させる、ことが
望ましい。更に、対旋律再生手段は、操作検出手段が検
出した所定の演奏操作子が操作されたときの速さに基づ
いて、対旋律を再生させる音量を変更する、ことが望ま
しい。
【0013】本発明は、演奏を行う際に主となる操作対
象である演奏操作子群への操作に応じて、対旋律の再生
を開始する。これにより、対旋律の再生開始の指定に煩
雑な操作が回避され、対旋律の再生開始の指定を含む演
奏操作を簡単に行えるようになり、ユーザが演奏に集中
できる環境が提供される。
【0014】また、本発明は、対旋律の音高を、演奏操
作子群への操作に応じて変更する。これにより、ユーザ
は、演奏に対し、対旋律の音高を多様に変化させて任意
に付加させることが可能となる。
【0015】また、本発明は、対旋律の音量を、その再
生開始を指定する演奏操作子が操作されたときの速さに
応じて変更する。これにより、ユーザは対旋律の音量を
任意に変化させることが可能となる。
【0016】また、本発明は、再生される伴奏に同期さ
せて対旋律を再生する。この再生の同期は、対旋律を再
生する速度(テンポ)、言い換えれば、対旋律を構成す
る楽音の発音タイミングを伴奏に合わせるという他に、
対旋律の再生を開始するタイミング、対旋律の音高を変
更するタイミングといったものも含む。このようにする
ことで、伴奏(演奏)と対旋律の楽音の発音タイミング
がずれる、対旋律の楽音の音高が不規則に変化する、と
いった音楽的な不具合の発生が回避される。
【0017】対旋律は、主旋律(演奏)に対立して独立
的に動き、主旋律を効果的に補助する別種の旋律であ
り、それを主旋律に付加することで音楽表現の幅を大き
く広げることができる。上記のように、対旋律を再生す
ることで、何れの場合であっても対旋律をより効果的、
且つ簡易に演奏に付加させることが可能となる。
【0018】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。 <第1の実施の形態>図1は、第1の実施の形態が適用
された電子楽器100のブロック図である。図1に示す
ように、電子楽器100は、ユーザが操作する演奏操作
子群である鍵盤装置101と、その鍵盤装置101に対
してユーザが行った操作内容を示す情報(鍵盤情報)を
生成する鍵盤情報生成装置102と、各種モードや機能
の設定等をユーザが行うためのコントロールスイッチ群
103と、楽器100全体の制御を行うCPU(Centra
l Processing Unit )104と、プログラムや制御用デ
ータを格納したROM105と、CPU104がワーク
用に用いるRAM等06と、LED等を用いて現在の設
定状態等を表示する表示装置107と、CPU104か
ら送られた発音命令に従って楽音の波形データを出力す
る音源装置108と、音源装置108が出力した波形デ
ータをD/A変換するD/Aコンバータ109と、D/
Aコンバータ109が出力した波形信号を増幅するアン
プ110と、アンプ110が出力した波形信号に従って
楽音を放音するスピーカ111とを備えて構成されてい
る。
【0019】以上の構成において、その動作を説明す
る。不図示の電源スイッチがオンされると、CPU10
4は、ROM105に予め記憶されているプログラムを
読み出し、それを実行することで楽器100全体の制御
を開始する。
【0020】鍵盤装置101は、例えば鍵が押鍵された
ときの速さ、それが押されている圧力を検出するタッチ
レスポンス機能を備え、ユーザの操作内容に応じて発生
する検出信号を鍵盤情報生成装置102に出力する。鍵
盤情報生成装置102は、鍵盤装置101から入力した
検出信号を基に、操作された鍵を特定して、その鍵に割
り当てられた音高を示すノートナンバー、押鍵時の速さ
(ベロシティ)、押鍵されている圧力等の操作情報を、
鍵盤情報としてCPU104に出力する。CPU104
は、鍵盤情報生成装置102から入力した鍵盤情報に応
じて発音命令を生成し、これを音源装置108に出力す
る。
【0021】音源装置108は、例えばPCM音源であ
り、CPU104から入力した制御コマンドに従って音
色や音響効果等の各種設定を行う。また、CPU104
が出力した発音命令を入力すると、該発音命令に従って
図示しない波形メモリから波形データを読み出し、該読
み出した波形データに対して設定に応じた処理を施した
後、D/Aコンバータ109に波形データ(波高値)を
出力する。
【0022】D/Aコンバータ109は、音源装置10
8から入力した波形データをD/A変換して、アナログ
の波形信号を出力する。D/Aコンバータ109が出力
した波形信号は、アンプ110により増幅された後、ス
ピーカ111に入力される。これにより、ユーザが鍵盤
装置101に対して行った操作に応じて、スピーカ11
1から楽音が発音される。
【0023】コントロールスイッチ群103としては、
自動伴奏モードの設定、及びその解除を指定するための
自動伴奏用のモードスイッチ、自動伴奏のスタート/ス
トップを指示するための自動伴奏用のスタートスイッ
チ、及びストップスイッチ、リズム等を指定するための
複数の数値キー(例えば10キー)等を始めとして、様
々なスイッチがある。
【0024】これらのスイッチは、例えば電圧が印加さ
れ、その操作状態に応じて出力される電圧値が変化する
ようになっている。その電圧値が示すスイッチの操作情
報は、例えば各スイッチ毎に専用のチャネル(図示せ
ず)を介してCPU104に送られる。以降、このよう
にしてコントロールスイッチ群103からCPU104
に送られる操作情報をスイッチ情報と呼ぶことにする。
【0025】CPU104は、コントロールスイッチ群
103から入力したスイッチ情報を基に、モードや音
色、音量といった各種の設定を行う。具体的には、設定
状態を示す各種データ(変数)のRAM106への格
納、表示装置107による設定内容等の情報の表示、音
源装置108の設定等を行う。
【0026】第1の実施の形態では、ユーザがより幅広
い演奏を楽しめるように、自動伴奏モードの設定時に対
旋律を再生するようにしている。対旋律は、リズム毎に
用意され、それらには指定用の番号がそれぞれ割り当て
られている。ユーザは、自動伴奏モードを選択した後、
リズム番号、対旋律の番号を、その順序で数値キーを用
いて入力することで、再生させる対旋律を指定する。
【0027】自動伴奏、対旋律の再生用の演奏データ
は、ROM105に、例えばスタンダードMIDI(Mu
sical Instrument Digital Interface)ファイル(SM
F)の形式で格納されている。CPU104は、コント
ロールスイッチ群103、鍵盤装置101へのユーザの
操作に応じて、その操作により指定された演奏データを
ROM105から読み出し、その演奏データに基づいて
生成した発音命令を音源装置108に出力することで、
自動伴奏、対旋律の再生を行う。
【0028】以降、対旋律については、それはフレーズ
単位で再生することから、フレーズと呼ぶこととする。
フレーズを本来の意味で用いる場合には、それを断って
用いる。また、フレーズ再生用の演奏データはフレーズ
データと呼び、リズム、フレーズに割り当てた番号につ
いては、それぞれ、リズム番号、フレーズ番号と呼ぶこ
とにする。
【0029】なお、上記SMFは、周知のように、ヘッ
ダーブロックとトラックブロックの2種類の部分から構
成される。ヘッダーブロックは、SMFの先頭に置か
れ、それに1つ以上のトラックブロックが続く構成であ
る。
【0030】上記ヘッダーブロックには、SMFに関す
る基本的な情報がストアされ、トラックブロックには実
際の演奏データがストアされる。その演奏データは、基
本的にはMIDIデータに時間情報を付けたデータスト
リームから構成される。時間情報は、前のイベントとの
デルタタイムで表現される。そのデルタタイムは、分解
能で周期が決まるクロックの数で表現される。
【0031】以上が、電子楽器100の各部の動作であ
る。次に、図2〜図8に示す各種動作フローチャートを
参照して、CPU104が実行する制御動作を詳細に説
明する。
【0032】図2は、全体処理の動作フローチャートで
ある。この図2を参照して、始めに全体処理について詳
細に説明する。全体処理は、電源スイッチのオンによ
り、ROM105の所定の領域に格納されているプログ
ラムをCPU104が読み出し、それを実行することで
実現される処理である。電源スイッチがオンされてから
オフされるまでの間、この全体処理を繰り返し実行する
ことで、楽器100全体が制御される。
【0033】先ず、ステップ201では、プログラム内
に格納されているデータ、ROM105に別に格納され
ている制御データを基に、システムのイニシャライズを
行う。このイニシャライズを行うことで、電子楽器10
0は予め決められた初期状態に設定される。
【0034】ステップ201に続くステップ202で
は、鍵盤装置101に行われた操作(ノートオンイベン
トの発生)に応じて楽音を発音させるイベント処理を実
行する。そのイベント処理が終了すると、次にステップ
203の自動伴奏処理を行い、その後、ステップ204
の処理に移行する。
【0035】ステップ204では、フレーズを再生する
フレーズ処理を実行する。上述したように、フレーズ
は、自動伴奏モードの設定時に再生する。このため、フ
レーズ処理では、現在自動伴奏モードが設定されている
場合にのみ、フレーズを再生するための処理が行われ
る。そのフレーズ処理が終了した後、ステップ205の
処理に移行する。
【0036】ステップ205では、コントロールスイッ
チ群103の操作状態に応じて各種設定等を行うスイッ
チ処理を実行する。続くステップ206では、表示させ
るべき情報を表示装置107に表示させる等のその他の
処理を実行する。このその他の処理が終了した後、ステ
ップ202の処理に戻る。
【0037】以上が全体処理の処理動作である。次に図
3〜図8を参照して、上記ステップ202〜205とし
て実行される各種サブルーチン処理を詳細に説明する。
図3は、ステップ202として実行されるイベント処理
の動作フローチャートである。この図3を参照して、上
記イベント処理について詳細に説明する。
【0038】このイベント処理は、鍵盤情報生成装置1
02から入力した鍵盤情報と現在の楽器100の設定状
態に基づき、ユーザの鍵盤装置101に対する操作に応
じて楽音を発音させる処理である。
【0039】先ず、ステップ301では、鍵盤装置10
1で押鍵されている鍵(押鍵イベント)が有るか否か判
定する。ユーザが何らかの鍵を押鍵していた場合、その
判定はYESとなってステップ303の処理に移行す
る。そうでない場合には、その判定はNOとなってステ
ップ302の処理に移行する。
【0040】ユーザが複数の鍵を押鍵していた場合、各
鍵毎に対象を順次変更しながら、それに対する処理が個
別に行われる。そのために、このステップ301では、
押鍵イベントとして処理すべき鍵盤情報が無くなったか
否かの判定も行われる。押鍵イベントとして処理すべき
鍵盤情報が有る場合には、その判定はYESとなってス
テップ303の処理に移行する。そうでない場合には、
その判定はNOとなってステップ302の処理に移行す
る。
【0041】ステップ301でNOと判定した場合に移
行するステップ302では、現在発音中の楽音を消音さ
せるといったその他のイベント処理を実行する。その
後、一連の処理を終了する。
【0042】他方のステップ303では、自動伴奏モー
ドが設定されているか否か判定する。コントロールスイ
ッチ群103の自動伴奏用のモードスイッチが、自動伴
奏モードを設定する側に操作されていた場合、その判定
はYESとなってステップ304の処理に移行する。そ
うでない場合には、その判定はNOとなってステップ3
11の処理に移行する。
【0043】自動伴奏モードが設定されているか否かを
含め、現在の設定状態を示す各種データは、RAM10
6に変数として格納されている。このため、モードとい
った何らかの設定状態は、その設定に対応する変数を読
み出し、その変数に代入(セット)されている値から判
定される。
【0044】ステップ304では、現在対象としている
鍵がコード指定鍵か否か判定する。その鍵がコード指定
鍵であった場合、それの判定はYESとなってステップ
305の処理に移行する。そうでない場合には、その判
定はNOとなってステップ311の処理に移行する。
【0045】ステップ305では、コード指定鍵と判定
した鍵の組み合わせから、ユーザが指定したコードを判
別するコード判別処理を実行する。このコード判別処理
が終了した後、ステップ306の処理に移行する。ユー
ザが所望のコードを指定する鍵を全て押鍵し、そのコー
ドを指定する鍵を全て処理対象としていた場合、このコ
ード判別処理の実行により、そのコードが判別されて確
定される。
【0046】ステップ306では、上記ステップ305
のコード判別処理を実行した結果、コードが確定したか
否か判定する。コードが確定した場合、その判定はYE
Sとなってステップ307の処理に移行する。そうでな
い場合には、その判定はNOとなってステップ309の
処理に移行する。
【0047】ステップ307では、コードが確定したか
否かを示すコード確定フラグをセット(ON)する。コ
ード確定フラグのセットは、RAM106に格納してい
るコード確定フラグとして用いる変数に、1を代入(書
き込む)ことで行う。ステップ307に続くステップ3
08では、確定したコードをRAM106に書き込む。
その後、ステップ310の処理に移行する。以降、確定
したコードが書き込まれるRAM106内の領域を、コ
ードメモリと呼ぶことにする。
【0048】他方のステップ309では、上記コード確
定フラグをクリアする。その後、ステップ310の処理
に移行する。コード確定フラグのクリアは、それとして
用いる変数に0を代入することで行う。
【0049】ステップ310では、現在フルレンジモー
ドが設定されているか否か判定する。フルレンジモード
は、鍵盤装置101の全ての鍵がコード指定鍵であり、
且つメロディ鍵でもあるモードである。このフルレンジ
モードの対となるスプリットモードは、鍵盤装置101
を伴奏鍵域とメロディ鍵域とに分け、コード指定は伴奏
鍵域の鍵を押鍵することで行うモードである。そのモー
ド指定用のスイッチを、ユーザがフルレンジモードを指
定する側に操作していた場合、その判定はYESとなっ
てステップ311の処理に移行する。そうでない場合に
は、その判定はNOとなってステップ301の処理に戻
る。
【0050】ステップ311では、押鍵された鍵に割り
当てられた音高で楽音を発音させる通常発音処理を実行
する。この通常発音処理では、鍵盤情報生成装置102
から送られた押鍵された鍵の鍵盤情報を基に発音命令を
生成し、その発音命令を音源装置108に送出する処理
が行われる。この通常発音処理を実行した後、ステップ
301の処理に戻る。
【0051】図4は、ステップ203として実行される
自動伴奏処理の動作フローチャートである。この図4を
参照して、次に上記自動伴奏処理を詳細に説明する。こ
の自動伴奏処理は、ROM105に格納されている自動
伴奏用の演奏データを読み出し、該読み出した演奏デー
タ、及びコードメモリに格納されているコードに従って
楽音を発音させる処理である。
【0052】先ず、ステップ401では、現在自動伴奏
モードが設定されているか否か判定する。コントロール
スイッチ群103の自動伴奏用のモードスイッチが、自
動伴奏モードを設定する側に操作されていた場合、その
判定はYESとなってステップ402の処理に移行す
る。そうでない場合には、その判定はNOとなって一連
の処理を終了する。
【0053】ステップ402では、コード確定フラグが
ON(セット)されているか否か判定する。ユーザがコ
ードを指定する押鍵を行った場合、その判定はYESと
なってステップ403の処理に移行する。そうでない場
合には、その判定はNOとなって一連の処理を終了す
る。
【0054】ステップ403では、コードメモリ(RA
M106内のコード記憶用の領域)から確定したコード
の読み出しを行う。続くステップ404では、コードが
変更されたか否か判定する。最初のコード指定を含め、
ユーザがそれまでとは異なるコードを新たに指定した場
合、その判定はYESとなってステップ405の処理に
移行する。そうでない場合には、その判定はNOとなっ
てステップ406の処理に移行する。
【0055】ステップ405では、伴奏として発音させ
る楽音のコードをコードメモリから読み出したコードに
基づいて変換する自動伴奏コード変換処理を実行する。
その処理の終了後、ステップ406の処理に移行する。
【0056】ステップ406では、ROM105から該
当する自動伴奏用の演奏データ(SMF)を読み出し、
その演奏データが指定する発音タイミングで楽音を発音
させる自動伴奏発音処理を実行する。この自動伴奏発音
処理を実行することで、伴奏を発音させるための発音命
令が生成され、それが音源装置108に送られて、伴奏
の楽音がスピーカ111から発音されることになる。こ
の自動伴奏発音処理の実行後、一連の処理を終了する。
【0057】第1の実施の形態では、コード確定フラグ
がONと判定しない限り、ステップ403〜406の処
理は実行しない。従って、ユーザがコードを指定した後
に自動伴奏は開始し、一旦自動伴奏を開始させた後はコ
ードを随時変更させることができる。
【0058】上述したように、上記演奏データは、SM
Fの形式でROM105に格納されている。SMFは、
基本的にはMIDIデータ(コマンド)に時間情報(デ
ルタタイム)を付けたデータストリームから構成され
る。その時間情報は、MIDIデータによる発音の開始
タイミングを指示する。上記ステップ406の自動伴奏
発音処理では、所定の時間毎に割り込みが発生するタイ
マーインタラプト処理を有効とすることで、時間情報に
従って楽音を発音させる。
【0059】図5は、自動演奏用のタイマーインタラプ
ト処理の動作フローチャートである。このタイマーイン
タラプト処理は、時間情報によって楽音の発音開始タイ
ミングが指示される演奏データを再生するために用いら
れるものである。図5に示すように、このタイマーイン
タラプト処理を実行する度に、ステップ501でタイム
カウンタを更新して、その処理を終了する。
【0060】上記タイムカウンタは、RAM106に格
納されている変数である。その変数には、例えばMID
Iデータに付けられた時間情報を示す値がセットされ、
タイマーインタラプト処理を実行する度に、ステップ5
01でデクリメントされて更新される。
【0061】自動伴奏発音処理では、デクリメントされ
るタイムカウンタの値が0となると次に実行すべきMI
DIデータを実行し、そのMIDIデータを実行した後
に、その次のMIDIデータを実行するまでの時間情報
を示す値をカウンタにセットする。これにより、MID
Iデータに付けられた時間情報に沿って自動伴奏(自動
演奏)が行われる。
【0062】図6は、図2においてステップ204とし
て実行されるフレーズ処理の動作フローチャートであ
る。次に、図6を参照して、フレーズ処理について詳細
に説明する。
【0063】このフレーズ処理も、上記自動伴奏処理と
同様に、ROM105に格納されているフレーズデータ
(フレーズ再生用の演奏データ)を読み出し、該読み出
したフレーズデータ、及びコードメモリに格納されてい
るコードに従って楽音を発音させる処理である。
【0064】先ず、ステップ601では、現在自動伴奏
モードが設定されているか否か判定する。コントロール
スイッチ群103の自動伴奏用のモードスイッチが、自
動伴奏モードを設定する側に操作されていた場合、その
判定はYESとなってステップ602の処理に移行す
る。そうでない場合には、その判定はNOとなって一連
の処理を終了する。
【0065】ステップ602では、コード確定フラグが
ON(セット)されているか否か判定する。ユーザがコ
ードを指定する押鍵を行った場合、その判定はYESと
なってステップ603の処理に移行する。そうでない場
合には、その判定はNOとなって一連の処理を終了す
る。
【0066】ステップ603では、コードが変更された
か否か判定する。最初のコード指定を含め、ユーザがそ
れまでとは異なるコードを新たに指定した場合、その判
定はYESとなってステップ604の処理に移行する。
そうでない場合には、その判定はNOとなって一連の処
理を終了する。
【0067】フレーズは、普通、1、2小節程の長さの
メロディであり、その再生を開始してから1、2小節程
演奏(伴奏)が進行すると、フレーズの再生は終了す
る。このことから、上記ステップ603では、ユーザが
それまでとは異なるコードを新たに指定してから、その
指定によって再生を開始するフレーズの再生が終了する
までの間、コードが変更された(YES)と判定する。
【0068】ステップ604では、コードメモリ(RA
M106内のコード記憶用の領域)から確定したコード
の読み出しを行う。続くステップ605では、現在フレ
ーズを発音(再生)中か否か判定する。フレーズを発音
中であった場合、その判定はYESとなってステップ6
07の処理に移行する。そうでない場合には、その判定
はNOとなってステップ606の処理に移行する。
【0069】ステップ606では、ROM105から、
再生すべきフレーズデータの読み出しを行う。その読み
出しが終了した後、ステップ607の処理に移行する。
ステップ606で読み出されるフレーズデータは、ユー
ザが予め指定したフレーズの演奏データ(SMF)であ
る。
【0070】ステップ607では、ステップ604でコ
ードメモリから読み出したコードでフレーズを発音させ
るためのフレーズコード変換処理を実行する。このフレ
ーズコード変換処理の実行により、フレーズを発音する
コードが確定する。
【0071】フレーズを構成する一連の楽音には、予め
音高(コードを含む)が初期設定されている。上記フレ
ーズコード変換処理では、その音高と指定されたコード
に基づき、例えばコード変換テーブルからそれらによっ
て特定される音高(ノートナンバー或いはコード)を読
み出し、その読み出した音高を発音させる楽音の音高に
設定する処理が行われる。これは、図4に示す自動伴奏
処理でステップ405として実行される自動伴奏コード
変換処理も同様である。
【0072】ステップ607に続くステップ608で
は、上記ステップ607で確定した音高でフレーズを発
音させるフレーズ発音処理を実行する。このフレーズ発
音処理を実行することで、フレーズを発音させる発音命
令が生成され、それが音源装置108に送られる。その
後、一連の処理を終了する。
【0073】フレーズデータも、他の演奏データと同じ
く、SMFの形式でROM105に格納されている。フ
レーズは、自動伴奏とは独立して発音させる。このた
め、自動伴奏の実行時と同様に、フレーズ再生のための
汎用のタイマーインタラプト処理を有効として、フレー
ズデータの再生が行われる。
【0074】図7は、その汎用のタイマーインタラプト
処理の動作フローチャートである。このタイマーインタ
ラプト処理も、図7に示すように、それが起動される度
に、RAM106に格納されている変数である汎用のタ
イムカウンタをステップ701で更新して、その処理を
終了する。
【0075】上記汎用のタイムカウンタには、例えば自
動演奏用のそれと同様に、MIDIデータに付けられた
時間情報を示す値が書き込まれ、タイマーインタラプト
処理を実行する度に、その値をステップ701でデクリ
メントして更新する。フレーズ発音処理も、そのカウン
タの値を監視しながら、その値が0になれば次に実行す
べきMIDIデータを実行し、そのMIDIデータを実
行した後、その次のMIDIデータを実行するまでの時
間情報を示す値をカウンタに新たにセットすることで、
時間情報に沿ってフレーズを再生する。
【0076】上述したフレーズ処理のステップ604以
降の処理は、ユーザがそれまでと異なるコードを新たに
指定する押鍵を行った場合に実行される。ユーザがコー
ドを新たに指定することでステップ604以降の処理を
実行した場合、フレーズが再生中でなければ指定された
コードでのフレーズの再生が開始し、フレーズが再生中
であればコードを指定されたコードに変更して再生が継
続する。このため、ユーザは、コードを指定するだけ
で、フレーズの再生開始タイミング、フレーズのコー
ド、及びフレーズのコードの変更タイミングを制御する
ことができる。
【0077】このように、第1の実施の形態では、自動
伴奏モードを設定した後、コード指定、即ち、鍵盤装置
101に対する操作だけで、随時フレーズの再生を開始
させることができる。このため、フレーズの再生開始を
指定する操作子を別に設けた従来と比較すると、フレー
ズを簡易な操作で、且つ容易に演奏に付加させることが
でき、幅広い音楽表現を容易に実現することができる。
また、フレーズの再生開始を指定する操作で、そのフレ
ーズの音高の指定や、それの変更が行えるため、フレー
ズを所望の状態で演奏に付加させることができ、行える
音楽表現の幅をより広くすることができる。更には、別
の操作子を設けないことから、部品点数を低減(機構の
簡単化)することができ、これによってコストを低減す
ることができるという効果も得られる。
【0078】図8は、図2においてステップ205とし
て実行されるスイッチ処理の動作フローチャートであ
る。次に、図8を参照して、スイッチ処理について詳細
に説明する。
【0079】このスイッチ処理は、コントロールスイッ
チ群103から入力した各スイッチ毎の電気信号、或い
はデジタルデータを基に、各スイッチの操作状態を検出
し、その検出結果に従って各種設定や、各部の制御を行
う処理である。
【0080】先ず、ステップ801では、自動伴奏のス
トップスイッチが押されたか否か判定する。そのストッ
プスイッチをユーザが押した場合、その判定はYESと
なってステップ802の処理に移行する。そうでない場
合には、その判定はNOとなってステップ807の処理
に移行する。
【0081】ステップ802では、コード確定フラグを
クリアする。その後、ステップ803の処理に移行す
る。ステップ803では、現在自動伴奏を発音(再生)
中であるか否か判定する。自動伴奏が発音中であった場
合、その判定はYESとなってステップ804の処理に
移行する。そうでない場合には、その判定はNOとなっ
てステップ807の処理に移行する。ステップ804で
は、自動伴奏を終了させる自動伴奏終了処理を実行し、
その後、ステップ805の処理に移行する。
【0082】ステップ805では、現在フレーズを発音
(再生)中であるか否か判定する。フレーズが発音中で
あった場合、その判定はYESとなってステップ806
の処理に移行する。そうでない場合には、その判定はN
Oとなってステップ807の処理に移行する。ステップ
806では、フレーズの発音を終了させるフレーズ終了
処理を実行する。その後、ステップ807の処理に移行
する。
【0083】ステップ807では、コントロールスイッ
チ群103として備えている他の各種スイッチの操作状
態に応じたその他のスイッチ処理を実行する。このその
他のスイッチ処理の実行により、自動伴奏モードの設定
/解除、音色、テンポ、音量等の変更等が行われ、ま
た、表示装置107が表示する情報の切り換えも行われ
る。
【0084】なお、第1の実施の形態では、自動伴奏モ
ードが設定されている場合にフレーズの再生を行うよう
にしているが、フレーズを再生するモード(フレーズ再
生モード)を自動伴奏モードとは別に設け、フレーズ再
生モードの設定時にのみフレーズを再生するようにして
も良い。
【0085】また、フレーズは、何らかのコードを指定
する鍵の押鍵によりその再生を開始しているが、例えば
フレーズの再生開始を指定する鍵を予め設定し、その鍵
の押鍵によりフレーズの再生を開始するようにしても良
い。このようにした場合、1つのフレーズの音高を多様
に指定できるように、1つのフレーズの再生開始を指定
する鍵を複数とし、各鍵毎に再生する音高を変化させて
も良い。更には、フレーズ別にそれの再生開始を指定す
る鍵を設定することで、押鍵する鍵により再生させるフ
レーズを指定できるようにしても良い。当然のことなが
ら、これらを組み合わせても良い。
【0086】また、第1の実施の形態では、コードを指
定する鍵の押鍵により、フレーズの音高とともに、伴奏
のコードも変更しているが、指定されたコードを有効と
するのをフレーズと伴奏の一方にだけ選択できるように
しても良い。 <第2の実施の形態>上記第1の実施の形態では、ユー
ザがコードを指定する押鍵を行うと、それに合わせてフ
レーズの再生を開始する。このようにした場合、フレー
ズを随時演奏に付加することができるという利点がある
一方、自動伴奏とは別にフレーズを再生することから、
音がぶつかる、演奏全体として音のまとまりがない等の
音楽的不具合が発生する場合がある。第2の実施の形態
は、その音楽的不具合を回避したものである。
【0087】第2の実施の形態の構成は、第1の実施の
形態のそれと基本的に同じである。また、動作も、第1
の実施の形態のそれと基本的な流れは同じである。この
ため、第1の実施の形態で付与した符号を用いて、第1
の実施の形態から異なる部分のみ説明する。
【0088】図9は、コード指定に応じたフレーズの再
生を説明する図であり、自動伴奏中のコード指定(コー
ドチェンジ)のタイミングに応じてフレーズを再生する
様子を示したものである。図9において、フレーズの長
さは1小節であり、各枠は1拍を各々示している。この
図9を参照して、始めに第2の実施の形態によるフレー
ズの再生方法について説明する。
【0089】図9(a)は、自動伴奏の小節の先頭でコ
ードチェンジが行われた際のフレーズの再生の様子を示
している。このようなタイミングでコードチェンジが行
われた場合、図9(a)に示すように、自動伴奏の小節
の先頭から、自動伴奏に同期してフレーズの再生が開始
される。
【0090】図9(b)は、小節の途中で2度のコード
チェンジが行われた際のフレーズの再生の様子を示して
いる。2度のコードチェンジのタイミングは、それぞ
れ、その小節の先頭から2拍目の先頭、4拍目の先頭で
ある。このようなタイミングで2度のコードチェンジが
行われた場合、図9(b)に示すように、1拍分の再生
を行わず、自動伴奏に同期して、最初のコードチェンジ
が行われたタイミングから2拍目以降のフレーズの再生
を開始する。2度目のコードチェンジが行われると、そ
れが行われたタイミングで新たに指定されたコードでフ
レーズを音高変換する。
【0091】このように、第2の実施の形態では、自動
伴奏に同期させて、フレーズの再生を開始し、フレーズ
のコードチェンジを行う。このため、フレーズは常に伴
奏に則して再生されることになり、音がぶつかる等の上
記音楽的不具合を確実に回避することができる。
【0092】以上が、第2の実施の形態によるフレーズ
の再生方法である。次に、このフレーズの再生方法を実
現するCPU104の動作について説明する。第2の実
施の形態では、図2に示す全体処理において、ステップ
203の自動伴奏処理、ステップ204のフレーズ処理
が第1の実施の形態とは異なる。このため、これらサブ
ルーチン処理だけを、図10、及び図11を参照して詳
細に説明する。
【0093】図10は、図2においてステップ203と
して実行される自動伴奏処理の動作フローチャートであ
る。この図10を参照して、始めに第2の実施の形態に
よる自動伴奏処理を詳細に説明する。
【0094】先ず、ステップ1001では、現在自動伴
奏モードが設定されているか否か判定する。自動伴奏モ
ードが設定されている場合、その判定はYESとなって
ステップ1002の処理に移行する。そうでない場合に
は、その判定はNOとなって一連の処理を終了する。
【0095】ステップ1002では、コード確定フラグ
がON(セット)されているか否か判定する。ユーザが
コードを指定する押鍵を行った場合、その判定はYES
となってステップ1003の処理に移行する。そうでな
い場合には、その判定はNOとなって一連の処理を終了
する。
【0096】ステップ1003では、次に発音する伴奏
の楽音の発音(イベント)タイミングをRAM106に
格納する。自動伴奏処理では、上述したように、次に楽
音を発音させるまでの時間を示す値が自動演奏用のタイ
ムカウンタに保持されている。このため、上記発音タイ
ミングとして、例えばそのタイムカウンタに現在保持さ
れている値をRAM106に格納する。
【0097】ステップ1004では、コードメモリ(R
AM106内のコード記憶用の領域)から確定したコー
ドの読み出しを行う。続くステップ1005では、コー
ドが変更されたか否か判定する。最初のコード指定を含
め、ユーザがそれまでとは異なるコードを新たに指定し
た場合、その判定はYESとなってステップ1006の
処理に移行する。そうでない場合には、その判定はNO
となってステップ1007の処理に移行する。
【0098】ステップ1006では、コードメモリから
読み出したコードに応じて伴奏の楽音を音高変換する自
動伴奏コード変換処理を実行する。その処理の終了後、
ステップ1007の処理に移行する。
【0099】ステップ1006では、ROM105から
該当する自動伴奏用の演奏データを読み出し、その演奏
データが指定する発音タイミングで指定されたコードの
楽音を発音させる自動伴奏発音処理を実行する。その
後、一連の処理を終了する。
【0100】図11は、図2においてステップ204と
して実行されるフレーズ処理の動作フローチャートであ
る。次に、図11を参照して、第2の実施の形態による
フレーズ処理について詳細に説明する。
【0101】先ず、ステップ1101では、現在自動伴
奏モードが設定されているか否か判定する。自動伴奏モ
ードが設定されている場合、その判定はYESとなって
ステップ1102の処理に移行する。そうでない場合に
は、その判定はNOとなって一連の処理を終了する。
【0102】ステップ1102では、コード確定フラグ
がON(セット)されているか否か判定する。ユーザが
コードを指定する押鍵を既に行っていたような場合、そ
の判定はYESとなってステップ1103の処理に移行
する。そうでない場合には、その判定はNOとなって一
連の処理を終了する。
【0103】ステップ1103では、コードが変更され
たか否か判定する。最初のコード指定を含め、ユーザが
それまでとは異なるコードを新たに指定した場合、その
判定はYESとなってステップ1104の処理に移行す
る。そうでない場合には、その判定はNOとなって一連
の処理を終了する。
【0104】フレーズは、普通、1、2小節程の長さの
メロディであり、その再生を開始してから1、2小節程
演奏(伴奏)が進行すると、フレーズの再生は終了す
る。このことから、上記ステップ1103では、ユーザ
がそれまでとは異なるコードを新たに指定してから、そ
の指定によって再生を開始するフレーズの再生が終了す
るまでの間、コードが変更された(YES)と判定す
る。
【0105】ステップ1104では、コードメモリ(R
AM106内のコード記憶用の記憶領域)から確定した
コードの読み出しを行う。続くステップ1105では、
現在フレーズが発音(再生)中か否か判定する。フレー
ズが発音中であった場合、その判定はYESとなってス
テップ1108の処理に移行する。そうでない場合に
は、その判定はNOとなってステップ1106の処理に
移行する。
【0106】ステップ1106では、図10のステップ
1003でRAM106に格納した発音(イベント)タ
イミングの読み出しを行う。続くステップ1107で
は、ROM105からユーザの指定に該当するフレーズ
データ(次に実行すべきMIDIデータ)を読み出すと
ともに、上記ステップ1106で読み出した発音(イベ
ント)タイミングをそのフレーズデータのイベントタイ
ムにセットする。その後、ステップ1108の処理に移
行する。
【0107】ステップ1108では、ステップ1104
でコードメモリから読み出したコードでフレーズを音高
変換するフレーズコード変換処理を実行する。このフレ
ーズコード変換処理の実行により、フレーズを構成する
楽音の音高が確定する。
【0108】ステップ1108に続くステップ1109
では、上記ステップ1108で確定した音高でフレーズ
を発音させるフレーズ発音処理を実行する。その後、一
連の処理を終了する。
【0109】なお、第2の実施の形態では、図9に示す
ように、小節の途中でコードが指定されると、その小節
の途中からフレーズの再生を開始しているが、例えばそ
の次の小節の先頭からフレーズの再生を開始するように
しても良い。或いは、例えば小節を幾つかの部分、例え
ば前半部分と後半部分とに分割し、前半部分でコードが
指定された場合はその小節内でフレーズの再生を開始す
るが、後半部分でコードが指定された場合には、次の小
節の先頭からフレーズの再生を開始するように、コード
指定のタイミングに応じてフレーズの再生開始タイミン
グを変更するようにしても良い。
【0110】また、フレーズの再生においては、ユーザ
の多様な要望に対応できるように、フレーズの再生を伴
奏に同期させるか否かをユーザが選択できるようにして
も良い。このときには、フレーズ毎に、伴奏に同期させ
るか否か選択できるようにしても良い。 <第3の実施の形態>上記第1および第2の実施の形態
は、上述したように、再生させるフレーズをユーザが予
め指定する方式を採用している。これに対し、第3の実
施の形態は、ユーザが演奏中にフレーズの切り換えを容
易に行えるようにすることで、より操作性を向上させた
ものである。
【0111】第3の実施の形態の構成は、第1の実施の
形態のそれと基本的に同じである。また、動作も、第1
の実施の形態のそれと基本的な流れは同じである。この
ため、第1の実施の形態で用いた符号を流用して、第1
の実施の形態から異なる部分のみ説明する。
【0112】図12は、フレーズデータの編成を説明す
る図である。この図12を参照して、始めに第3の実施
の形態におけるフレーズの指定方法について説明する。
図12に示すように、第3の実施の形態では、リズム毎
に複数のフレーズを用意し、各リズム毎の複数のフレー
ズには、それぞれ番号(0〜n−1)を付与している。
これらのフレーズの演奏データは、ROM105内にS
MFの形式で格納させている。
【0113】第3の実施の形態では、ユーザがコード指
定を行う度に、例えばフレーズ番号0のフレーズからフ
レーズ番号1のフレーズに、フレーズ番号n−1のフレ
ーズからフレーズ番号0のフレーズといったように、フ
レーズに付与した番号に従って再生するフレーズを切り
換えるようにしている。このため、ユーザは、コード指
定を行うだけで、言い換えれば、鍵盤装置101への操
作だけで、フレーズをサイクリックに随時切り換えるこ
とができる。これにより、操作性が向上し、ユーザは音
楽的な流れを妨げることなくフレーズを再生させること
ができ、フレーズを用いた演奏をより容易に楽しむこと
ができる。
【0114】以上が、第3の実施の形態によるフレーズ
の指定(切替)方法である。次に、このフレーズの指定
方法を実現するCPU104の動作について説明する。
第3の実施の形態では、図2に示す全体処理において、
ステップ204のフレーズ処理が第2の実施の形態とは
異なる。このため、第3の実施の形態によるフレーズ処
理だけを、図13、及び図14を参照して詳細に説明す
る。
【0115】図13は、第3の実施の形態によるフレー
ズ処理の動作フローチャート、図14は、そのフレーズ
処理内で実行されるサブルーチン処理(フレーズ選択処
理)の動作フローチャートである。
【0116】先ず、ステップ1301では、現在自動伴
奏モードが設定されているか否か判定する。自動伴奏モ
ードが設定されている場合、その判定はYESとなって
ステップ1302の処理に移行する。そうでない場合に
は、その判定はNOとなって一連の処理を終了する。
【0117】ステップ1302では、コード確定フラグ
がON(セット)されているか否か判定する。ユーザが
コードを指定する押鍵を既に行っていたような場合、そ
の判定はYESとなってステップ1303の処理に移行
する。そうでない場合には、その判定はNOとなって一
連の処理を終了する。
【0118】ステップ1303では、コードが新たに指
定されたか否か判定する。最初のコード指定を含め、ユ
ーザがコードを新たに指定した場合、その判定はYES
となってステップ1304の処理に移行する。そうでな
い場合には、その判定はNOとなって一連の処理を終了
する。
【0119】フレーズは、普通、1、2小節程の長さの
メロディであり、その再生を開始してから1、2小節程
演奏(伴奏)が進行すると、フレーズの再生は終了す
る。このことから、上記ステップ1303では、ユーザ
がコードを新たに指定してから、その指定によって再生
を開始するフレーズの再生が終了するまでの間、コード
が新たに指定された(YES)と判定する。
【0120】ステップ1304では、コードメモリ(R
AM106内のコード記憶用の記憶領域)から確定した
コードの読み出しを行う。続くステップ1305では、
現在フレーズを発音(再生)中か否か判定する。フレー
ズが発音中であった場合、その判定はYESとなってス
テップ1307の処理に移行する。そうでない場合に
は、その判定はNOとなってステップ1306の処理に
移行する。ステップ1306では、ユーザが行ったコー
ド指定に応じて次に再生させるフレーズを選択するフレ
ーズ選択処理を実行する。その後、ステップ1307の
処理に移行する。フレーズ選択処理についての詳細は後
述する。
【0121】ステップ1307では、ステップ1304
でコードメモリから読み出したコードでフレーズを音高
変換するフレーズコード変換処理を実行する。このフレ
ーズコード変換処理の実行により、フレーズの楽音を発
音する音高が確定する。
【0122】ステップ1307に続くステップ1308
では、上記ステップ1307で確定した音高でフレーズ
を発音させるフレーズ発音処理を実行する。その後、一
連の処理を終了する。
【0123】次に、上記ステップ1306のフレーズ選
択処理について、図14に示すその動作フローチャート
を参照して詳細に説明する。上記したように、第3の実
施の形態では、コード指定が行われる度にフレーズを順
次切り替える。この切り替えは、次に再生するフレーズ
の番号を代入する変数(カウンタ)を用意し、コード指
定が行われると、そのカウンタの値に該当するフレーズ
の演奏データをRAM105から読み出してその再生を
開始するとともに、そのカウンタの値に次に再生すべき
フレーズの番号を代入して更新していくことで行われ
る。以降、そのカウンタをカウンタXと呼ぶことにす
る。
【0124】先ず、ステップ1401では、リズムの変
更が有ったか否か判定する。ユーザがリズム番号を新た
に入力した場合、その判定はYESとなってステップ1
402の処理に移行する。そうでない場合には、その判
定はNOとなってステップ1403の処理に移行する。
【0125】図12に示すように、フレーズはリズム毎
にまとめて用意していることから、リズムの変更はフレ
ーズの再生を初期状態に戻すことに相当する。このた
め、ステップ1402では、カウンタXをリセット、即
ちカウンタXに0をセットし、その後、ステップ140
3の処理に移行する。
【0126】ステップ1403では、カウンタXの値が
示すフレーズの演奏データのROM105からの読み出
しを行う。続くステップ1404では、カウンタXの値
を更新する。第3の実施の形態では、図12に示すよう
に、フレーズには一連の番号を付与している。このた
め、ステップ1404では、それまでの値に1を加算す
ることでカウンタXの更新を行う。そのカウンタXの更
新が終了すると、ステップ1405の処理に移行する。
【0127】ステップ1405では、更新後のカウンタ
Xの値がフレーズ番号の最大値である(n−1)より大
きいか否か、言い換えれば、そのリズムのフレーズを全
て再生したか否か判定する。フレーズ番号0〜(n−
1)のフレーズを全て再生した場合、その判定はYES
となってステップ1406の処理に移行する。そうでな
い場合には、その判定はNOとなって一連の処理を終了
する。ステップ1406では、カウンタXをリセット、
即ち最初に再生したフレーズの番号をカウンタXにセッ
トし、その後、一連の処理を終了する。
【0128】上記フレーズ処理、フレーズ選択処理によ
り、フレーズの再生中にコード指定を行った場合、再生
中のフレーズは指定されたコードで音高変換されて発音
され、フレーズの切り替えは行われない。しかし、フレ
ーズが再生していないときにコード指定を行うと、直前
に再生されたフレーズとは異なるフレーズが、指定され
たコードで再生が開始することになる。
【0129】なお、第3の実施の形態では、上記したよ
うに、フレーズの再生中にコードが指定されるとフレー
ズの切り替えを行わないが、フレーズが再生中か否かに
関わらず、コード指定が行われる度にフレーズを切り替
えても良い。或いは、フレーズの再生中におけるフレー
ズの切り替えが有効か否かをユーザが設定できるように
しても良い。これらのフレーズの切り替えのタイミング
は、上記第2の実施の形態のように、伴奏に同期させて
も良い。
【0130】また、フレーズの切り替えは、フレーズ番
号が0のフレーズからその番号が大きくなる方向に行っ
ているが、その方向をユーザが任意に指定できるように
しても良い。更には、最初に再生するフレーズの番号を
指定できるようにしても良く、フレーズを切り替える順
序を任意に設定できるようにしても良い。フレーズの切
り替えは、このように様々な方法が考えられ、これらの
他にも多様な変形を行うことができるものである。 <第4の実施の形態>上述した第3の実施の形態では、
ユーザは鍵盤装置101への操作だけでフレーズの切り
替えを行うことができる。しかし、その切り替えは、リ
ズム毎に用意した複数のフレーズのなかからフレーズを
順次選択していくことで行っているため、再生させるフ
レーズは基本的には指定したリズムだけで限定されるこ
とになり、フレーズ再生のバリエーションが少ない。こ
のことから、第4の実施の形態は、ユーザがより多様な
フレーズ再生が行えるようにしたものである。
【0131】第4の実施の形態の構成は、第3の実施の
形態のそれと基本的に同じである。また、動作も、第3
の実施の形態のそれと基本的な流れは同じである。この
ため、第3の実施の形態で用いた符号を流用して、第3
の実施の形態から異なる部分のみ説明する。
【0132】第4の実施の形態では、各リズムで多様な
フレーズを再生できるように、フレーズをリズムとコー
ド種で分類している。コードには、周知のように、様々
な種類がある。このため、第4の実施の形態では、コー
ド種を複数の系統に分類している。図15は、そのコー
ド分類例を示す図である。
【0133】図15に示すように、第4の実施の形態で
は、コード種をメジャー(Major)系、マイナー
(minor)系、セブンス(7th)系、ディミニッ
シュ(dim)系、オーギュメント(aug)系の5系
統に分類しメジャー系には、メジャー(M)、メジャー
セブンス(M7)、サスフォー(sus4)を属させて
いる。以下、マイナー系にはマイナー(m)、マイナー
セブンス(m7)、マイナーメジャーセブンス(mM
7)、セブンス系にはセブンス(7th)、セブンスフ
ラットファイブ(7b5)、サスセブンス(sus
7)、ディミニッシュ系にはディミニッシュ(di
m)、マイナーセブンスフラットファイブ(m7b
5)、オーギュメント系にはオーギュメント(au
g)、オーギュメントセブンス(aug7)を、それぞ
れ属させている。
【0134】図16は、第4の実施の形態によるフレー
ズデータの編成を説明する図である。図16に示すよう
に、各コード系には、複数のフレーズを各リズム毎に分
けて用意している。言い換えれば、各リズムには、各コ
ード系別に、それぞれ、複数のフレーズを用意してい
る。その各リズムに属する複数のフレーズには、第3の
実施の形態と同様に、0〜(n−1)のフレーズ番号を
付与している。これらのフレーズの演奏データは、RO
M105に格納されているものである。
【0135】第4の実施の形態では、設定されたリズム
に割り当てたフレーズを、各コード系別に、コード指定
に応じてサイクリックに切り替える。例えば自動伴奏を
開始していない状態から、ユーザがメジャー系、マイナ
ー系、メジャー系の順序でコード指定を行った場合に
は、メジャー系のフレーズ番号が0のフレーズ、マイナ
ー系のフレーズ番号が0のフレーズ、メジャー系のフレ
ーズ番号が1のフレーズの順序で再生するフレーズを切
り替える。これにより、ユーザはコード指定だけで様々
なフレーズを再生させることができ、より多様な音楽表
現を容易に行うことができる。
【0136】コード指定に応じた音高変換は、普通、コ
ード変換テーブル等を用いて行われるが、全コード種に
対応させるためには、変換後の音高(構成音)が制約さ
れることがある。その制約は、再現性を低下させる(再
現効果を低下させる)という不具合を生じさせる。フレ
ーズは、一種のメロディであり、音楽的な特徴が多いこ
とから、その制約による不具合がより大きくなる傾向が
ある。しかし、構成音は、コード種によってある程度集
約することができるので、コード系別にフレーズを用意
するという上記の方法により、再現性が良くなり、再現
効果を向上させることができるという効果もある。
【0137】以上が、第4の実施の形態におけるフレー
ズの指定方法、その指定方法を実現するためのフレーズ
の編成(分類)、及び概略動作である。次に、上記フレ
ーズの切り替えを実現するCPU104の動作について
詳細に説明する。第4の実施の形態では、図13に示す
フレーズ処理でステップ1306として実行されるフレ
ーズ選択処理だけが第3の実施の形態とは異なる。この
ため、第4の実施の形態によるフレーズ選択処理だけ
を、図17に示すその動作フローチャートを参照して詳
細に説明する。
【0138】上記したように、各リズムで再生するフレ
ーズは各コード系別に分類し、各コード系毎にフレーズ
をサイクリックに切り替える。そのフレーズの切り替え
を行うために、第4の実施の形態では、各コード系毎に
カウンタを各々用意し、各カウンタにそれが割り当てら
れたコード系で次に再生するフレーズのフレーズ番号を
代入する。メジャー系に割り当てたカウンタはカウンタ
Xと呼び、以下同様に、マイナー系のカウンタはカウン
タXm、セブンス系のカウンタはカウンタX7、ディミ
ニッシュ系のカウンタはカウンタXd、オーギュメント
系のカウンタはカウンタXaと各々呼ぶことにする。
【0139】先ず、ステップ1701では、リズムの変
更が有ったか否か判定する。ユーザがリズム番号を新た
に入力した場合、その判定はYESとなってステップ1
702の処理に移行する。そうでない場合には、その判
定はNOとなってステップ1703の処理に移行する。
ステップ1702では、各カウンタをリセット、即ち各
カウンタに0をセットし、その後、ステップ1703の
処理に移行する。
【0140】ステップ1703では、ユーザが新たに指
定したコードはメジャー系か否か判定する。ユーザがC
メジャー等のコードを指定する押鍵を行った場合、その
判定はYESとなってステップ1704の処理に移行す
る。そうでない場合には、その判定はNOとなってステ
ップ1706の処理に移行する。
【0141】ステップ1704では、カウンタXが指示
するメジャー系のフレーズデータをROM105から読
み出す。続くステップ1705では、カウンタXのイン
クリメントを行う。そのインクリメントが終了した後、
ステップ1717の処理に移行する。
【0142】メジャー系のコードが指定された場合、上
記ステップ1703〜1705の一連の処理が行われる
ことで、メジャー系のフレーズが切り替えられて再生さ
れる。ユーザが他のコード系のコードを指定した場合に
は、上記と同様にして、そのコードが属するコード系を
特定し、各コード系毎に、次に再生するフレーズデータ
のROM105からの読み出し、そのコード系に割り当
てたカウンタのインクリメントを行う(ステップ170
6〜1716)。上記ステップ1717の処理は、指定
されたコードが属するコード系での上記一連の処理が終
了した後、実行される。
【0143】ステップ1717〜1722の処理では、
各コード系に割り当てた各カウンタの値がフレーズ番号
の最大値である(n−1)より大きいか否か、言い換え
れば、そのコード系のフレーズを全て再生したか否かに
応じたカウンタのリセットが行われる。その一連の処理
を実行することで、更新後の値がフレーズ番号の最大値
以上となったカウンタはリセットされる。
【0144】先ず、ステップ1717では、カウンタX
の値がフレーズ番号の最大値である(n−1)より大き
いか否か、言い換えれば、そのコード系のフレーズを全
て再生したか否か判定する。フレーズ番号0〜(n−
1)のフレーズを全て再生した場合、その判定はYES
となり、カウンタXをリセットすべきとしてステップ1
722の処理に移行する。そうでない場合には、その判
定はNOとなってステップ1718の処理に移行する。
【0145】このようにして、メジャー系に割り当てた
カウンタXをリセットすべきか否かが判定される。同様
に、各コード系に割り当てたカウンタに対しても、個別
にそれをリセットすべきか否かが判定される(ステップ
1718〜1721)。
【0146】ステップ1717〜1721の処理を実行
した結果、リセットすべきカウンタを検出できなかった
場合、そのまま一連の処理を終了する。リセットすべき
カウンタを検出した場合には、ステップ1722の処理
に移行し、そこでそのカウンタをリセットした後、一連
の処理を終了する。
【0147】なお、第4の実施の形態も第3の実施の形
態と同様に、フレーズの再生中にコードが指定されても
フレーズの切り替えを行わないが、フレーズが再生中か
否かに関わらず、コード指定が行われる度にフレーズを
切り替えても良い。或いは、フレーズの再生中における
フレーズの切り替えが有効か否かをユーザが設定できる
ようにしても良い。これらのフレーズの切り替えのタイ
ミングは、上記第2の実施の形態のように、伴奏に同期
させても良い。 <第5の実施の形態>上記第1〜第4の実施の形態で
は、予め設定されている音量でフレーズを再生するもの
である。しかし、フレーズは、演奏に付加されて再生す
るものであり、フレーズと演奏の音量バランスによって
聴き手側の印象を大きく変化させることが可能である。
このことから、第5の実施の形態は、フレーズの音量を
調節できるようにすることで、より幅広い音楽表現がで
きるようにしたものである。
【0148】フレーズの音量を調節するための方法とし
ては、先ず、それを調節するための操作子をコントロー
ルスイッチ群103の1操作子として設けることが挙げ
られる。しかし、この方法では、ユーザは演奏中に鍵盤
装置101以外の操作子を操作しなければならないた
め、フレーズの音量を所望の音量に簡単に調節すること
ができない。このようなことを回避するために、第5の
実施の形態では、鍵盤装置101のタッチレスポンス機
能を利用し、ユーザがコードを指定するために行った押
鍵の強さ(押鍵ベロシティ)に応じてフレーズの音量を
制御する。これにより、部品点数の増大が回避されると
ともに、ユーザは、フレーズの再生の指定、及びその音
量の調節を一度の操作で簡単に行うことができる。
【0149】なお、鍵盤装置101の各鍵の押鍵ベロシ
ティを示す値は、鍵盤情報生成装置102から鍵盤情報
としてCPU104に送られる。CPU104は、作業
用に用いるRAM106にその鍵盤情報を格納し、RA
M106に格納した鍵盤情報に基づいて音源装置108
に送る発音命令を生成する。
【0150】第5の実施の形態の構成は、第1の実施の
形態のそれと基本的に同じである。また、CPU104
の動作も、第1の実施の形態のそれと基本的には同じで
あるが、図2に示す全体処理でステップ202として実
行されるイベント処理、及びステップ204として実行
されるフレーズ処理が第1の実施の形態とは異なる。こ
のため、これらサブルーチン処理だけを説明する。符号
については、第1の実施の形態で付与した符号を用い
る。
【0151】図18は、図2に示す全体処理でステップ
202として実行されるイベント処理の動作フローチャ
ートである。。この図18を参照して、第5の実施の形
態によるイベント処理を詳細に説明する。
【0152】このイベント処理は、鍵盤情報生成装置1
02から鍵盤情報を入力し、その鍵盤情報と現在の楽器
100の設定状態に基づき、ユーザの鍵盤装置101に
対する操作に応じて楽音を発音させる処理である。ユー
ザが複数の鍵を押鍵している場合、鍵盤情報生成装置1
02からはそれら各鍵の押鍵ベロシティ値を含む操作情
報が鍵盤情報としてCPU104に送出される。イベン
ト処理では、鍵盤情報を構成する各鍵の操作情報毎に、
所定の順序で処理対象を変更しながら、その鍵の操作情
報に基づいた処理を行う。
【0153】先ず、ステップ1801では、現在処理対
象としている鍵の操作情報が押鍵イベントであるか否か
判定する。ユーザがその鍵を押鍵していた場合、その判
定はYESとなってステップ1803の処理に移行す
る。そうでない場合には、その判定はNOとなってステ
ップ1802の処理に移行する。
【0154】このステップ1801では、上記の判定に
加えて、処理対象となる鍵の操作情報を全て処理したか
否かを含む押鍵イベントの有無の判定も行われる。押鍵
イベントが有り(YES)と判定した場合、ステップ1
803の処理に移行し、押鍵イベントが無い(NO)と
判定、即ち処理対象となる鍵の操作情報を全て処理した
と判定した場合には、ステップ1802の処理に移行す
る。
【0155】ステップ1801でNOと判定した場合に
移行するステップ1802では、現在発音中の楽音を消
音させるといったその他のイベント処理を実行する。そ
の後、一連の処理を終了する。
【0156】他方のステップ1803では、自動伴奏モ
ードが設定されているか否か判定する。コントロールス
イッチ群103の自動伴奏用のモードスイッチが、自動
伴奏モードを設定する側に操作されていた場合、その判
定はYESとなってステップ1804の処理に移行す
る。そうでない場合には、その判定はNOとなってステ
ップ1812の処理に移行する。
【0157】自動伴奏モードが設定されているか否かを
含め、現在の設定状態を示す各種データは、RAM10
6に変数として格納されている。このため、モードとい
った何らかの設定状態は、その設定に対応する変数をR
AM106から読み出し、その変数に代入(セット)さ
れている値から判定される。
【0158】ステップ1804では、押鍵された鍵がコ
ード指定鍵か否か判定する。その鍵がコード指定鍵であ
った場合、その判定はYESとなってステップ1805
の処理に移行する。そうでない場合には、その判定はN
Oとなってステップ1812の処理に移行する。
【0159】ステップ1805では、コード指定鍵とし
て押鍵されたその鍵の押鍵ベロシティ値をRAM106
に格納する。続くステップ1806では、コード判別処
理を実行する。上述したように、イベント処理では、鍵
盤情報を構成する鍵の操作情報を、各鍵の操作情報毎に
順次処理する。このため、コード判別処理では、それま
でにコード指定鍵と判定した鍵の組み合わせからコード
の判別を行う。そのコードの判別が終了した後、ステッ
プ1807の処理に移行する。
【0160】ステップ1807では、上記ステップ18
06のコード判別処理を実行した結果、コードが確定し
たか否か判定する。コードが確定した場合、その判定は
YESとなってステップ1808の処理に移行する。そ
うでない場合には、その判定はNOとなってステップ1
810の処理に移行する。
【0161】ステップ1808では、コードが確定した
か否かを示すコード確定フラグをセット(ON)する。
コード確定フラグのセットは、例えばRAM106に格
納しているコード確定フラグとして用いる変数に、1を
代入(書き込む)ことで行う。ステップ1808に続く
ステップ1809では、確定したコードをRAM106
内のコードメモリ(領域)に書き込む。その後、ステッ
プ1811の処理に移行する。
【0162】他方のステップ1810では、上記コード
確定フラグをクリアする。その後、ステップ1811の
処理に移行する。コード確定フラグのクリアは、例えば
それとして用いる変数に0を代入することで行う。
【0163】ステップ1811では、現在フルレンジモ
ードが設定されているか否か判定する。フルレンジモー
ド、或いはスプリットモードを指定するためのスイッチ
を、ユーザがフルレンジモードを指定する側に操作して
いた場合、その判定はYESとなってステップ1812
の処理に移行する。そうでない場合には、その判定はN
Oとなってステップ1801の処理に戻り、次の鍵の操
作情報に処理対象を変えて、一連の処理を同様に行う。
【0164】ステップ1812では、押鍵された鍵に割
り当てられた音高で楽音を発音させる通常発音処理を実
行する。この通常発音処理では、鍵盤情報生成装置10
2から送られた押鍵された鍵の操作情報を基に発音命令
を生成し、その発音命令を音源装置108に送出する処
理が行われる。この通常発音処理を実行した後、ステッ
プ1801の処理に戻り、以降の処理を同様に実行す
る。
【0165】図19は、図2に示す全体処理でステップ
204として実行されるフレーズ処理の動作フローチャ
ートである。。この図19を参照して、次に第5の実施
の形態によるフレーズ処理を詳細に説明する。
【0166】先ず、ステップ1901では、現在自動伴
奏モードが設定されているか否か判定する。自動伴奏モ
ードが設定されている場合、その判定はYESとなって
ステップ1902の処理に移行する。そうでない場合に
は、その判定はNOとなって一連の処理を終了する。
【0167】ステップ1902では、コード確定フラグ
がON(セット)されているか否か判定する。ユーザが
コードを指定する押鍵を既に行っていたような場合、そ
の判定はYESとなってステップ1903の処理に移行
する。そうでない場合には、その判定はNOとなって一
連の処理を終了する。
【0168】ステップ1903では、コードが変更され
たか否か判定する。最初のコード指定を含め、ユーザが
それまでとは異なるコードを新たに指定した場合、その
判定はYESとなってステップ1904の処理に移行す
る。そうでない場合には、その判定はNOとなって一連
の処理を終了する。このステップ1903では、ユーザ
がそれまでとは異なるコードを新たに指定してから、そ
の指定によって再生を開始するフレーズの再生が終了す
るまでの間、コードが変更された(YES)と判定す
る。
【0169】ステップ1904では、コードメモリ(R
AM106内のコード記憶用の記憶領域)から確定した
コードの読み出しを行う。続くステップ1905では、
現在フレーズが発音(再生)中か否か判定する。フレー
ズが発音中であった場合、その判定はYESとなってス
テップ1908の処理に移行する。そうでない場合に
は、その判定はNOとなってステップ1906の処理に
移行する。
【0170】ステップ1906では、図10のステップ
1003でRAM106に格納した発音(イベント)タ
イミングを読み出し、続くステップ1907では、RO
M105からユーザの指定に該当するフレーズデータを
読み出す。その後、ステップ1908の処理に移行す
る。
【0171】ステップ1908では、ユーザがコード指
定した押鍵ベロシティからフレーズの音量を設定するフ
レーズ音量制御処理を実行する。続くステップ1909
では、指定されたコード、上記フレーズ音量制御処理で
設定された音量でフレーズを発音させるフレーズ発音処
理を実行する。その後、一連の処理を終了する。
【0172】図20は、上記ステップ1908として実
行されるフレーズ音量制御処理の動作フローチャートで
ある。次に、この図20を参照して、そのフレーズ音量
制御処理について詳細に説明する。
【0173】先ず、ステップ2001では、コード確定
した鍵(コードを指定する鍵のなかで最後に押鍵された
鍵)の押鍵ベロシティ値をRAM106から読み出し、
その押鍵ベロシティ値を変数VXに代入する。押鍵ベロ
シティ値を変数VXに代入すると、ステップ2002の
処理に移行する。
【0174】第5の実施の形態では、押鍵ベロシティ値
(変数VXの値)の大きさに応じてフレーズの音量レベ
ルを4段階に変化させている。押鍵ベロシティ値がどの
音量レベルに対応しているかの判定は、予め設定されて
いる値N1、N2、N3と押鍵ベロシティ値を比較する
ことで行っている。その判定結果は0〜3の値で示さ
れ、その値が変数Vに代入される。ステップ2002〜
2008において、上記押鍵ベロシティ値が対応する音
量レベルの判定、及びその判定結果の変数Vへの代入を
行う。
【0175】なお、上記値N1、N2、N3の具体的な
値は、MIDIメッセージにおけるパラメータの一つで
あるベロシティ値でたとえた場合、値N1は40、値N
2は64、値N3は100といったような値である。ま
た、変数Vに対応する音量レベル(ボリウム値)の算出
は、例えば基準のボリウム値+V・(所定値)といった
ような算出式を用いて行われる。
【0176】ステップ2002では、変数VXの値が値
N1以下か否か、即ちコードを確定させた鍵が弱く押鍵
されたか否か判定する。変数VXの値が値N1以下であ
った場合、その判定はYESとなってステップ2003
の処理に移行する。そうでない場合には、その判定はN
Oとなってステップ2004の処理に移行する。ステッ
プ2003では、変数Vに0を代入し、その後、ステッ
プ2009の処理に移行する。
【0177】ステップ2004では、変数VXの値が値
N2以下か否か、即ちコードを確定させた鍵が比較的弱
く押鍵されたか否か判定する。変数VXの値が値N2以
下であった場合、その判定はYESとなってステップ2
005の処理に移行する。そうでない場合には、その判
定はNOとなってステップ2006の処理に移行する。
ステップ2005では、変数Vに1を代入し、その後、
ステップ2009の処理に移行する。
【0178】ステップ2006では、変数VXの値が値
N3以下か否か、即ちコードを確定させた鍵が比較的強
く押鍵されたか否か判定する。変数VXの値が値N3以
下であった場合、その判定はYESとなってステップ2
007の処理に移行する。そうでない場合には、即ちコ
ードを確定させた鍵が非常に強く押鍵された場合には、
その判定はNOとなってステップ2008の処理に移行
する。
【0179】ステップ2007では、変数Vに2を代入
し、その後、ステップ2009の処理に移行する。他方
のステップ2008では、変数Vに3を代入した後、ス
テップ2009の処理に移行する。
【0180】ステップ2009では、現在の変数Vの値
に対応するボリウム値が、それまでのボリウム値と異な
るか否か判定する。それらのボリウム値が異なる場合、
即ちボリウム値を変更する必要がある場合、その判定は
YESとなってステップ2010の処理に移行する。そ
うでない場合には、その判定はNOとなってステップ2
011の処理に移行する。
【0181】ステップ2010では、変数Vの値に対応
するボリウム値を新たにセットする。このセットは、R
AM106の所定領域に、フレーズの音量を示すデータ
として格納することで行われ、図19に示すフレーズ処
理内のステップ1909のフレーズ発音処理の実行時に
は、そのボリウム値でフレーズを発音させる発音命令が
生成されて音源装置108に送られる。
【0182】ステップ2010に続くステップ2011
では、コード指定した鍵の押鍵ベロシティ値をRAM1
06に格納する必要が無くなったとして、それらの押鍵
ベロシティ値をクリアする。その後、一連の処理を終了
する。
【0183】なお、第5の実施の形態では、フレーズの
音量レベル(ボリウム値)を4段階としているが、これ
に限定するものではなく、音量レベルをそれより増減さ
せても良い。更には、押鍵ベロシティ値とフレーズの音
量レベルの対応関係を定義するテーブルを用意し、押鍵
ベロシティ値とそのテーブルから音量レベルを設定する
ようにしても良い。
【0184】また、押鍵ベロシティ値がどの音量レベル
に対応しているかを判定するための値N1、N2、N3
においては、それを予め設定してROM105等に格納
させておいても良いが、ユーザが任意に設定・変更でき
るようにしても良い。また、この第5の実施の形態に、
上記第2〜第4の実施の形態の少なくとも一つを組み合
わせても良い。 <第6の実施の形態>上記第5の実施の形態では、コー
ドを確定させた鍵の押鍵ベロシティ値に基づいてフレー
ズの音量レベル(ボリウム値)を設定している。しか
し、このようにした場合、コードを指定する鍵の押鍵時
の強さのバラツキがフレーズの音量レベルに影響するこ
とが考えられる。このことから、第6の実施の形態は、
そのバラツキの影響を低減し、常にユーザが意図する音
量レベルでフレーズを再生できるようにしたものであ
る。
【0185】第6の実施の形態の構成は、第5の実施の
形態のそれと基本的に同じである。また、CPU104
の動作も、第5の実施の形態のそれと基本的には同じで
あるが、図20に示すフレーズ音量制御処理が第5の実
施の形態とは異なる。このため、第6の実施の形態によ
るフレーズ音量制御処理だけを、図21に示すその動作
フローチャートを参照して詳細に説明する。符号につい
ては、第1の実施の形態で付与した符号を用いる。
【0186】先ず、ステップ2101では、コードを確
定させた鍵の押鍵ベロシティ値を全てRAM106から
読み出す。続くステップ2102では、それらの押鍵ベ
ロシティ値の平均値(以降、平均ベロシティ値と記す)
を算出し、それを変数Yに代入する。その代入が終了す
ると、ステップ2103の処理に移行する。
【0187】ステップ2103〜2109の処理では、
変数Yの値に対応する音量レベルの判定、及びその判定
結果の変数Vへの代入を行う。先ず、ステップ2103
では、変数Yの値が値N1以下か否か、即ちコードを確
定させた鍵が弱く押鍵されたか否か判定する。変数Yの
値が値N1以下であった場合、その判定はYESとなっ
てステップ2104の処理に移行する。そうでない場合
には、その判定はNOとなってステップ2105の処理
に移行する。ステップ2104では、変数Vに0を代入
し、その後、ステップ2110の処理に移行する。
【0188】ステップ2105では、変数Yの値が値N
2以下か否か、即ちコードを確定させた鍵が比較的弱く
押鍵されたか否か判定する。変数Yの値が値N2以下で
あった場合、その判定はYESとなってステップ210
6の処理に移行する。そうでない場合には、その判定は
NOとなってステップ2107の処理に移行する。ステ
ップ2106では、変数Vに1を代入し、その後、ステ
ップ2110の処理に移行する。
【0189】ステップ2107では、変数Yの値が値N
3以下か否か、即ちコードを確定させた鍵が比較的強く
押鍵されたか否か判定する。変数Yの値が値N3以下で
あった場合、その判定はYESとなってステップ210
8の処理に移行する。そうでない場合には、即ちコード
を確定させた鍵が非常に強く押鍵された場合には、その
判定はNOとなってステップ2109の処理に移行す
る。
【0190】ステップ2108では、変数Vに2を代入
し、その後、ステップ2110の処理に移行する。他方
のステップ2109では、変数Vに3を代入した後、ス
テップ2110の処理に移行する。
【0191】ステップ2110では、現在の変数Vの値
に対応するボリウム値が、それまでのボリウム値と異な
るか否か判定する。それらのボリウム値が異なる場合、
即ちボリウム値を変更する必要がある場合、その判定は
YESとなってステップ2111の処理に移行する。そ
うでない場合には、その判定はNOとなってステップ2
112の処理に移行する。
【0192】ステップ2111では、変数Vの値に対応
するボリウム値を新たにセットする。このセットは、R
AM106の所定領域に、フレーズの音量を示すデータ
として格納することで行われ、図19に示すフレーズ処
理内のステップ1909のフレーズ発音処理の実行時に
は、そのボリウム値でフレーズを発音させる発音命令が
生成されて音源装置108に送られる。
【0193】ステップ2111に続くステップ2112
では、コード指定した鍵の押鍵ベロシティ値をRAM1
06に格納する必要が無くなったとして、それらの押鍵
ベロシティ値をクリアする。その後、一連の処理を終了
する。
【0194】このように、第6の実施の形態では、コー
ドを指定(確定)させた各鍵の押鍵ベロシティ値の平均
値を算出してそれを変数Yに代入し、その変数Yを用い
てフレーズの音量レベル(ボリウム値)を設定する。そ
の変数Yに代入されている平均ベロシティ値は、コード
を指定する鍵を押鍵した全体的な強さを表すものであ
る。このため、コードを指定する各鍵を押鍵した強さの
バラツキやミスタッチの影響を小さくすることができ
る。これにより、ユーザは常に意図した音量でフレーズ
を再生させることができる。
【0195】なお、第6の実施の形態では、押鍵ベロシ
ティ値の平均値からフレーズの音量レベルを設定してい
るが、例えば各鍵毎の押鍵ベロシティ値の差を求め、そ
の差に極端に大きいものがあった場合、押鍵ベロシティ
値が他の鍵のそれと大きく異なる鍵の押鍵ベロシティ値
を無効とするようにしても良い。これにより、例えば3
鍵の押鍵でコードを指定した場合に、1鍵だけ他の2鍵
よりも非常に弱く、或いは強く押鍵しても、それが押鍵
ベロシティ値の平均値に及ぼす影響を小さくすることが
できる。 <第7の実施の形態>上記第5、及び第6の実施の形態
では、フレーズの音量レベル(ボリウム値)を決定する
までの間、コードを指定した鍵の押鍵ベロシティ値を全
て保持している。しかし、ユーザが所望する音量レベル
の決定には、そのユーザの意図が反映されている押鍵ベ
ロシティ値が一つあれば良い。第7の実施の形態は、こ
のことに着目し、コードを指定した鍵の押鍵ベロシティ
値のなかから、ユーザの意図が最も反映されている押鍵
ベロシティ値を抽出して保持するようにしたものであ
る。このようにしたことで、上記第5の実施の形態と比
較すると、フレーズをユーザが所望する音量レベルで再
生できるようになるという効果の他に、押鍵ベロシティ
値を保持する数が小さくなることから、ワーク領域を小
さくできるという効果を得ることができる。
【0196】第7の実施の形態の構成は、第5の実施の
形態のそれと基本的に同じである。また、CPU104
の動作も、第5の実施の形態のそれと基本的には同じで
ある。このため、第5の実施の形態から異なる部分だけ
を説明する。符号については、第1の実施の形態で付与
した符号を用いる。
【0197】図22は、図2に示す全体処理でステップ
202として実行されるイベント処理の動作フローチャ
ートである。。この図22を参照して、第7の実施の形
態によるイベント処理を詳細に説明する。
【0198】このイベント処理は、鍵盤情報生成装置1
02から鍵盤情報を入力し、その鍵盤情報と現在の楽器
100の設定状態に基づき、ユーザの鍵盤装置101に
対する操作に応じて楽音を発音させる処理である。ユー
ザが複数の鍵を押鍵している場合、鍵盤情報生成装置1
02からはそれら各鍵の押鍵ベロシティ値を含む操作情
報が鍵盤情報としてCPU104に送出される。イベン
ト処理では、鍵盤情報を構成する各鍵の操作情報毎に、
所定の順序で処理対象を変更しながら、その鍵の操作情
報に基づいた処理を行う。
【0199】先ず、ステップ2201では、現在処理対
象としている鍵の操作情報が押鍵イベントであるか否か
判定する。ユーザがその鍵を押鍵していた場合、その判
定はYESとなってステップ2203の処理に移行す
る。そうでない場合には、その判定はNOとなってステ
ップ2202の処理に移行する。
【0200】このステップ2201では、上記の判定に
加えて、処理対象となる鍵の操作情報を全て処理したか
否かを含む押鍵イベントの有無の判定も行われる。押鍵
イベントが有り(YES)と判定した場合、ステップ2
203の処理に移行し、押鍵イベントが無い(NO)と
判定、即ち処理対象となる鍵の操作情報を全て処理した
と判定した場合には、ステップ2202の処理に移行す
る。
【0201】ステップ2201でNOと判定した場合に
移行するステップ2202では、現在発音中の楽音を消
音させるといったその他のイベント処理を実行する。そ
の後、一連の処理を終了する。
【0202】他方のステップ2203では、自動伴奏モ
ードが設定されているか否か判定する。コントロールス
イッチ群103の自動伴奏用のモードスイッチが、自動
伴奏モードを設定する側に操作されていた場合、その判
定はYESとなってステップ2204の処理に移行す
る。そうでない場合には、その判定はNOとなってステ
ップ2213の処理に移行する。
【0203】自動伴奏モードが設定されているか否かを
含め、現在の設定状態を示す各種データは、RAM10
6に変数として格納されている。このため、モードとい
った何らかの設定状態は、その設定に対応する変数をR
AM106から読み出し、その変数に代入(セット)さ
れている値から判定する。
【0204】ステップ2204では、押鍵された鍵がコ
ード指定鍵か否か判定する。その鍵がコード指定鍵であ
った場合、その判定はYESとなってステップ2205
の処理に移行する。そうでない場合には、その判定はN
Oとなってステップ2213の処理に移行する。
【0205】ステップ2205では、新たにコード指定
鍵として押鍵されたその鍵の押鍵ベロシティ値を、既に
コード指定鍵と判定してRAM106内に格納した押鍵
ベロシティ値と比較する。続くステップ2206では、
上記ステップ2205において、新たに押鍵された鍵の
押鍵ベロシティ値のほうが既にRAM106内に格納さ
れている押鍵ベロシティ値よりも大きいと比較した場合
に、RAM106内に格納する押鍵ベロシティ値を新た
に押鍵された鍵のそれに置き換える更新を行う。その
後、ステップ2207の処理に移行する。
【0206】これらステップ2205、及び2206の
処理を実行することで、RAM106内にはコード指定
鍵のなかで最も強く押鍵された一つの鍵の押鍵ベロシテ
ィ値だけが格納されることになる。
【0207】ステップ2207では、コード判別処理を
実行する。上述したように、イベント処理では、鍵盤情
報を構成する鍵の操作情報を、各鍵の操作情報毎に順次
処理する。このため、コード判別処理では、それまでに
コード指定鍵と判定した鍵の組み合わせからコードの判
別を行う。そのコードの判別が終了した後、ステップ2
208の処理に移行する。
【0208】ステップ2208では、上記ステップ22
07のコード判別処理を実行した結果、コードが確定し
たか否か判定する。コードが確定した場合、その判定は
YESとなってステップ2209の処理に移行する。そ
うでない場合には、その判定はNOとなってステップ2
211の処理に移行する。
【0209】ステップ2209では、コードが確定した
か否かを示すコード確定フラグをセット(ON)する。
コード確定フラグのセットは、例えばRAM106に格
納しているコード確定フラグとして用いる変数に、1を
代入(書き込む)ことで行う。ステップ2209に続く
ステップ2210では、確定したコードをRAM106
内のコードメモリ(領域)に書き込む。その後、ステッ
プ2212の処理に移行する。
【0210】他方のステップ2211では、上記コード
確定フラグをクリアする。その後、ステップ2212の
処理に移行する。コード確定フラグのクリアは、例えば
それとして用いる変数に0を代入することで行う。
【0211】ステップ2212では、現在フルレンジモ
ードが設定されているか否か判定する。フルレンジモー
ド、或いはスプリットモードを指定するためのスイッチ
を、ユーザがフルレンジモードを指定する側に操作して
いた場合、その判定はYESとなってステップ2213
の処理に移行する。そうでない場合には、その判定はN
Oとなってステップ2201の処理に戻り、次の鍵の操
作情報に処理対象を変えて、一連の処理を同様に行う。
【0212】ステップ2213では、押鍵された鍵に割
り当てられた音高で楽音を発音させる通常発音処理を実
行する。この通常発音処理では、鍵盤情報生成装置10
2から送られた押鍵された鍵の鍵盤情報を基に発音命令
を生成し、その発音命令を音源装置108に送出する処
理が行われる。この通常発音処理を実行した後、ステッ
プ2201の処理に戻り、以降の処理を同様に実行す
る。
【0213】上記イベント処理の後にステップ204と
して図19のフレーズ処理が実行され、そのフレーズ処
理内でステップ1908として図20のフレーズ音量制
御処理が実行される。そのフレーズ音量制御処理の実行
時には、RAM106にはコード指定鍵のなかで最も強
く押鍵された鍵の押鍵ベロシティ値が格納されている。
フレーズ音量制御処理内のステップ2001では、その
押鍵ベロシティ値をコードが確定した時の押鍵ベロシテ
ィ値としてRAM106からの読み出しが行われる。こ
れにより、コード指定鍵のなかで最も強く押鍵された鍵
の押鍵ベロシティ値に応じた音量レベル(ボリウム値)
でフレーズが再生される。
【0214】コードを指定する場合、普通、ユーザはそ
のコードを指定する複数の鍵を同時に押鍵するように操
作を行う。このように押鍵した場合、各鍵の押鍵の強さ
は、ユーザが意図する押鍵の強さをその最大値として、
それよりも小さい側に分布することが多い。このため、
コード指定鍵のなかで最も強く押鍵された鍵の押鍵ベロ
シティ値だけをRAM106に格納させても、ユーザが
所望する音量レベル(ボリウム値)でフレーズを再生さ
せることができ、第5の実施の形態と比較した際には上
記効果を得ることができる。
【0215】なお、第7の実施の形態では、上述したよ
うに、コード指定鍵のなかで最も強く押鍵された鍵の押
鍵ベロシティ値だけをRAM106に格納しているが、
例えば各コード指定鍵の押鍵ベロシティ値の平均値を算
出し、それをRAM106に格納するようにしても良
い。
【0216】また、第1〜第7の実施の形態は、本発明
を電子楽器100に適用したものであるが、本発明は電
子楽器以外にも、演奏操作子群を備えている装置であれ
ば音源の有無等に係わらず、広く適用することができる
ものである。
【0217】
【発明の効果】以上、説明したように本発明は、演奏を
行う際に主となる操作対象である演奏操作子群への操作
に応じて、対旋律の再生を開始する。これにより、対旋
律の再生開始を指定する操作が簡易化し、対旋律の再生
開始の指定を含む演奏操作を簡単に行えるようになるた
め、ユーザは演奏に集中することができる。
【0218】また、本発明は、対旋律の音高を、演奏操
作子群への操作に応じて変更するため、ユーザは演奏に
対し、対旋律の音高を多様に変化させて任意に付加させ
ることができる。
【0219】また、本発明は、対旋律の音量を、その再
生開始を指定する演奏操作子が操作されたときの速さに
応じて変更するため、ユーザは対旋律の音量を任意に変
化させることができる。
【0220】また、本発明は、再生される伴奏に同期さ
せて対旋律を再生するため、伴奏(演奏)と対旋律の楽
音の発音タイミングがずれる、対旋律の楽音の音高が不
規則に変化する、といった音楽的な不具合の発生を回避
することができる。
【0221】上記の何れであっても、対旋律をより効果
的、且つ簡易に演奏に付加させることができるので、ユ
ーザはより幅広い音楽表現を容易に行うことができ、そ
れらを組み合わせることで、さらに大きな効果を得るこ
とができる。
【図面の簡単な説明】
【図1】第1の実施の形態が適用された電子楽器のブロ
ック図である。
【図2】全体処理の動作フローチャートである。
【図3】イベント処理の動作フローチャートである。
【図4】自動伴奏処理の動作フローチャートである。
【図5】自動演奏用のタイマーインタラプト処理の動作
フローチャートである。
【図6】フレーズ処理の動作フローチャートである。
【図7】汎用のタイマーインタラプト処理の動作フロー
チャートである。
【図8】スイッチ処理の動作フローチャートである。
【図9】コード指定に応じたフレーズの再生を説明する
図である。
【図10】自動伴奏処理の動作フローチャートである
(第2の実施の形態)。
【図11】フレーズ処理の動作フローチャートである
(第2の実施の形態)。
【図12】フレーズデータの編成を説明する図である。
【図13】フレーズ処理の動作フローチャートである
(第3の実施の形態)。
【図14】フレーズ選択処理の動作フローチャートであ
る。
【図15】コード分類例を示す図である。
【図16】フレーズデータの編成を説明する図である
(第4の実施の形態)。
【図17】フレーズ選択処理の動作フローチャートであ
る(第4の実施の形態)。
【図18】イベント処理の動作フローチャートである
(第5の実施の形態)。
【図19】フレーズ処理の動作フローチャートである
(第5の実施の形態)。
【図20】フレーズ音量制御処理の動作フローチャート
である。
【図21】フレーズ音量制御処理の動作フローチャート
である(第6の実施の形態)。
【図22】イベント処理の動作フローチャートである
(第7の実施の形態)。
【符号の説明】
101 鍵盤装置 102 鍵盤情報生成装置 103 コントロールスイッチ群 104 CPU 105 ROM 106 RAM 108 音源装置

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 異なる音高が各々割り当てられた複数の
    演奏操作子からなる演奏操作子群を備えた装置に適用さ
    れ、対旋律を構成する楽音の発音命令を順次生成するこ
    とにより、前記対旋律を再生させる楽音発生装置であっ
    て、 前記演奏操作子群への操作を検出する操作検出手段と、 対旋律の演奏情報を記憶した演奏情報記憶手段と、 前記演奏操作子群のなかで所定の演奏操作子が操作され
    たと前記操作検出手段が検出したとき、前記演奏情報記
    憶手段から対旋律の演奏情報を読み出し、該演奏情報を
    用いて対旋律の再生を開始する対旋律再生手段と、 を具備したことを特徴とする楽音発生装置。
  2. 【請求項2】 前記対旋律再生手段は、前記所定の演奏
    操作子が操作されたと前記操作検出手段が検出すると、
    前記演奏情報記憶手段から読み出す対旋律の演奏情報を
    予め定められている規則に従って変更し、該対旋律を再
    生する、 ことを特徴とする請求項1記載の楽音発生装置。
  3. 【請求項3】 前記所定の演奏操作子は、コードを指定
    する少なくとも1つの演奏操作子であり、 前記対旋律再生手段は、前記所定の演奏操作子で指定さ
    れたコードに基づく音高で前記対旋律を再生させる、 ことを特徴とする請求項1記載の楽音発生装置。
  4. 【請求項4】 前記対旋律再生手段は、前記演奏情報に
    よる対旋律の再生を、自動再生される伴奏に同期させ
    る、 ことを特徴とする請求項1、2、または3記載の楽音発
    生装置。
  5. 【請求項5】 前記対旋律再生手段は、前記操作検出手
    段が検出した前記所定の演奏操作子が操作されたときの
    速さに基づいて、前記対旋律を再生させる音量を変更す
    る、 ことを特徴とする請求項1、2、3、または4記載の楽
    音発生装置。
  6. 【請求項6】 異なる音高が各々割り当てられた複数の
    演奏操作子からなる演奏操作子群を備えた装置に適用さ
    れ、対旋律を構成する楽音の発音命令を順次生成するこ
    とにより、前記対旋律を再生させる楽音発生装置であっ
    て、 前記演奏操作子群への操作を検出する操作検出手段と、 対旋律の演奏情報を記憶した演奏情報記憶手段と、 前記演奏操作子群のなかで所定の演奏操作子が操作され
    たと前記操作検出手段が検出したとき、前記演奏情報記
    憶手段から演奏情報を読み出して再生する対旋律の音高
    を、該所定の演奏操作子に基づいて変更する対旋律再生
    手段と、 を具備したことを特徴とする楽音発生装置。
  7. 【請求項7】 前記所定の演奏操作子は、コードを指定
    する少なくとも1つの演奏操作子である、 ことを特徴とする請求項6記載の楽音発生装置。
  8. 【請求項8】 前記対旋律再生手段は、前記演奏情報に
    よる対旋律の再生を、自動再生される伴奏に同期させ
    る、 ことを特徴とする請求項6記載の楽音発生装置。
  9. 【請求項9】 前記対旋律再生手段は、前記操作検出手
    段が検出した前記所定の演奏操作子が操作されたときの
    速さに基づいて、前記対旋律を再生させる音量を変更す
    る、 ことを特徴とする請求項6、7、または8記載の楽音発
    生装置。
JP8171125A 1996-07-01 1996-07-01 楽音発生装置 Withdrawn JPH1020859A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8171125A JPH1020859A (ja) 1996-07-01 1996-07-01 楽音発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8171125A JPH1020859A (ja) 1996-07-01 1996-07-01 楽音発生装置

Publications (1)

Publication Number Publication Date
JPH1020859A true JPH1020859A (ja) 1998-01-23

Family

ID=15917453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8171125A Withdrawn JPH1020859A (ja) 1996-07-01 1996-07-01 楽音発生装置

Country Status (1)

Country Link
JP (1) JPH1020859A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023120289A1 (ja) * 2021-12-22 2023-06-29 カシオ計算機株式会社 情報処理装置、電子楽器システム、電子楽器、音節進行制御方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023120289A1 (ja) * 2021-12-22 2023-06-29 カシオ計算機株式会社 情報処理装置、電子楽器システム、電子楽器、音節進行制御方法及びプログラム

Similar Documents

Publication Publication Date Title
JPH04330495A (ja) 自動伴奏装置
JP3844286B2 (ja) 電子楽器の自動伴奏装置
JPH06202654A (ja) 電子楽器
JP4506147B2 (ja) 演奏再生装置及び演奏再生制御プログラム
JPH0968980A (ja) 電子鍵盤楽器の音色制御装置
JPH1020859A (ja) 楽音発生装置
JP6790362B2 (ja) 電子音響装置
JP2006039262A (ja) 効果付与装置及び方法
JP5088011B2 (ja) 携帯端末装置
JP5827484B2 (ja) 楽音制御装置
JPH04274297A (ja) 自動演奏装置
JP3557474B2 (ja) 楽音発生装置
JP3581763B2 (ja) 電子楽器
JP2730549B2 (ja) 電子楽器
JPH0926787A (ja) 音色制御装置
JP4186855B2 (ja) 楽音制御装置及びプログラム
JP3747825B2 (ja) 電子楽器
JP2004361528A (ja) 楽音信号発生装置及びレガート処理プログラム
JP2001215973A (ja) 楽音制御パラメータ生成方法、楽音制御パラメータ生成装置および記録媒体
JP4218566B2 (ja) 楽音制御装置及びプログラム
JP4585023B2 (ja) 電子楽器
JP3399629B2 (ja) 電子楽器の楽音特性変化処理装置
JPS636794Y2 (ja)
JPH06250657A (ja) 電子楽器
JPH04243295A (ja) 電子楽器

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030902