以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の一実施の形態に係る電子楽器の全体構成を示すブロック図である。
本電子楽器は、鍵盤楽器として構成され、図1に示すように、検出回路3、検出回路4、ROM6、RAM7、タイマ8、表示装置9、外部記憶装置10、インターフェイス(I/F)11、音源回路13及び効果回路14が、バス16を介してCPU5にそれぞれ接続されて構成される。
さらに、検出回路3には、音高情報を入力するための演奏操作子1が接続され、検出回路4には、各種情報を入力するための設定操作子2が接続されている。表示装置9は楽譜や文字等の各種情報を表示する。CPU5にはタイマ8が接続される。I/F11には、MIDII/F、通信I/Fが含まれ、他のMIDI機器やサーバコンピュータ等との通信を可能にする。音源回路13には効果回路14を介してサウンドシステム15が接続されている。
検出回路3は演奏操作子1の操作状態を検出し、検出回路4は設定操作子2の操作状態を検出する。CPU5は、本装置全体の制御を司る。ROM6は、CPU5が実行する制御プログラムや各種テーブルデータ等を記憶する。RAM7は、演奏データ、テキストデータ等の各種入力情報、各種フラグやバッファデータ及び演算結果等を一時的に記憶する。タイマ8は、タイマ割り込み処理における割り込み時間や各種時間を計時する。外部記憶装置10は、上記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する。
音源回路13は、演奏操作子1から入力された演奏データや設定された演奏データ等を楽音信号に変換する。効果回路14は、音源回路13から入力される楽音信号に各種効果を付与し、DAC(Digital-to-Analog Converter)やアンプ、スピーカ等のサウンドシステム15は、効果回路16から入力される楽音信号等を音響に変換する。
外部記憶装置10としては、例えば、フレキシブルディスクドライブ(FDD)、ハードディスクドライブ(HDD)、CD−ROMドライブ及び光磁気ディスク(MO)ドライブ等を挙げることができる。外部記憶装置10は、各種情報のほか、制御プログラムも記憶することができる。
図2(a)は、演奏操作子1の操作状態と鍵操作スイッチとの関係を示す模式図である。図2(b)は、鍵操作スイッチの構成を示す断面図である。演奏操作子1は複数存在し、同図(a)に示すように、演奏操作子1には、鍵盤における白鍵1Wまたは黒鍵1Bが相当する。以降、白鍵1W及び黒鍵1Bを区別しないときは、「演奏操作子1」の呼称を用いる。
鍵操作スイッチ20は、各演奏操作子1に対応して設けられ、対応する演奏操作子1の押下操作によって駆動される。鍵操作スイッチ20は、固定接点21及び可動接点22でなる第1スイッチSWa、固定接点23及び可動接点24でなる第2スイッチSWb、並びに、固定接点25及び可動接点26でなる第3スイッチSWcを有する3メイク式スイッチである。押鍵操作により、第1スイッチSWa、第2スイッチSWb、第3スイッチSWcの順でメイクする。検出回路3(図1参照)は、各鍵操作スイッチ20の状態をスキャンし、その結果を検出信号としてCPU5に送る。なお、演奏操作子1の操作程度を複数段階で検出できればよいので、鍵操作スイッチ20は、上記した接点型でなくてもよく、例えば、光を用いたもの(フォトセンサ等)であってもよい。
詳細は後述するが、本電子楽器では、演奏モードとして、通常モードまたはレガートモードを設定することができる。そして、レガートモードにおいては、前に操作された演奏操作子1の操作程度に応じて、後にノートオンした演奏操作子1に対応する楽音を制御する制御パターンを決定する。
図3は、演奏操作子1の押下位置の時間的推移の一例を示す概念図である。図4(a)は、本電子楽器の鍵盤の平面図、図4(b)は、制御パターンの決定テーブルを示す図である。この決定テーブルは、例えば、ROM6に格納されている。
図3に示すように、鍵操作スイッチ20は、対応する演奏操作子1の操作程度を複数段階(ノートオフを含めて4段階)で検出する。すなわち、第1スイッチSWaがメイクしていない状態、第1スイッチSWaがメイクし第2スイッチSWbがメイクしていない状態、第2スイッチSWbがメイクし第3スイッチSWcがメイクしていない状態、第3スイッチSWcがメイクした状態の、4つの状態が操作程度として検出される。第1スイッチSWaがメイクしていないときノートオフ(キーオフ)であり、第3スイッチSWcがメイクしたときノートオン(キーオン)となる。
ここで、図3に示すj0、jA、jB、jCは、鍵盤の状態を表すステータスKJであり、個々の演奏操作子1の状態ではなく、鍵盤全体の状態を示す情報である。ここで、ステータスKJは、最も新しくノートオンした演奏操作子1の現在の操作程度で決まるものであり、ノートオンを経ていない演奏操作子1の挙動はステータスKJの決定に関与しない。
例えば、ステータスKJは、ある演奏操作子1の第3スイッチSWcがメイクすると初めて設定されてjCとなり、その後、その演奏操作子1の第3スイッチSWcがオフされるとjBとなり、さらに第2スイッチSWbがオフされるとjAとなり、さらに第1スイッチSWaがオフされるとj0となる。
演奏信号を生成するキースキャン処理の詳細を図5、図6で後述するが、まず、ここで基本的な演奏処理を説明しておく。
[通常単独発音]図3に示す、a1→b1→c1の順でスイッチがメイクしたときは、第3スイッチSWcのメイク時に発音がなされる。演奏操作子1には独自の音高が対応しているので、発音時の音高は、押鍵された演奏操作子1で規定される。また、ノートオンベロシティは、b1からc1までの間の時間で規定される(図5、図6のステップS103→S110→S111、S104→S113、S105→S114→S112/S201→S202→S210→S204)。
[単独消音処理]図3に示す、a2を経過したときは、第1スイッチSWaがオフされた時点で消音がなされる(図5、図6のステップS106→S115→S116→S117→S112/S201→S207→S208)。
[単独再発音]一旦ノートオンした演奏操作子1の第2スイッチSWbがオフされてKJ=jAとなっている状態で、再び、第2スイッチSWb及び第3スイッチSWcが順にオンされたとき(b2→c2あるいはb3→c3の順でスイッチがメイクしたとき)は、第3スイッチSWcのメイク時に再度発音(消音及び再発音)がなされる(図5、図6のステップS108→S109、S107→S118→S119、S104→S113、S105→S114→S112/S201→S202→S203→S204)。これは、同一音の連続発音等に適用される。
ちなみに、図3に示すc4のように、演奏操作子1が第2スイッチSWbのオフに至る前に再び第3スイッチSWcをメイクさせたときは、発音等の処理は何らなされない(図5、図6のステップS105→S114→S101)。
また、一旦ノートオンした演奏操作子1がノートオフとなるまでの間に次の演奏操作子1が操作された場合の楽音制御は、以下のようになされる。以降、最も新しくノートオンして且つノートオフとなっていない演奏操作子1を「key1(第1の演奏操作子)」、key1の後から操作された演奏操作子1を「key2(第2の演奏操作子)」と呼称して区別する(図4(a)参照)。本実施の形態では、key1の数は1つである。key2は、中途押鍵状態で同時操作されている演奏操作子1が複数あるときは複数となるが、レガートモードでは、最終的に、対応する第3スイッチSWcがオンした演奏操作子1の楽音だけが、レガートモードによる制御パターン(図4(b)参照)で制御される。
[共鳴(ダンパ)音処理]
key1が存在し且つ発音中において、後の演奏操作子1の第1スイッチSWaがオンされてkey2が生じたときは、共鳴(ダンパ)音を発音する(図5、図6のステップS103→S110→S111→S112/S201→S207→S209)。この場合、発音中の音に対して共鳴するkey2に対応する音を、公知の手法により擬似的に発音する。アコースティックピアノでいうと、key2に対応するダンパが弦から外れたときに、key1に対応する発音中の音に対してkey2に対応する弦が共鳴することによって生じる共鳴音相当の擬似的な音が、電気的に発音される。
[通常複数発音]レガートモードでない通常モードにおいて、key1の発音中にkey2がノートオンしたときは、key1の音に重ねて、key2の発音が通常通り(上記通常単独発音と同様に)なされる(図5、図6のステップS105→S114→S112/S201→S202→S210→S204)。すなわち、この場合は、ポリフォニックモードによる通常の楽音制御がなされる。
[レガートモード処理]レガートモードにおいて、key1の発音中にkey2がノートオンしたときは、key1の音を強制オフすると共に、key2のノートオン時点におけるステータスKJ(すなわち、key1の操作程度)に応じた制御パターン(図4(b)参照)で、key2の楽音発生を制御する(図5、図6のステップS105→S114→S112/S201→S202→S210→S211、図7参照)。
図5は、本実施の形態におけるキースキャン処理のフローチャートである。図6は、図5のステップS112で実行される演奏信号生成処理のフローチャートである。ここで、図示はしないが、メイン処理が、本電子楽器の電源オン時に開始される。図5、図6の処理は、メイン処理中において実行される。このメイン処理では、最初に各種変数が初期化されるほか、設定操作子2の操作によるモード設定や音色設定等を含む機器設定がなされる。また、図5のステップS112で生成された演奏信号に、設定された効果処理を付加し、増幅して出力する楽音処理、及び、設定に応じた自動演奏処理等も行われる。
図7(a)、(b)、(c)、(d)は、図4(b)に示すレガートモードにおける制御パターン1〜4によるkey2の楽音制御の一例を示す概念図である。ここで、制御パターンを説明する。これらの制御パターンでは、音量及び音高を制御する。図7(a)〜(d)では、「レベル」においてADSR方式で示したエンベロープ波形で、key1、2の音量変化を表している。また、「音高」において、key1、2の音高変化を表している。
図7(a)に示す制御パターン1は、key2のノートオン時のkey1の操作程度が、第1スイッチSWa〜第3スイッチSWcのすべてがオフされた状態(KJ=j0)である場合に適用される。このような場合、key1の音が完全に減衰していれば、key2の通常の単独発音と実質的に同じであるので、通常モードでの楽音制御と変わりはない。しかし、key1の音が減衰しきっておらず残存している場合は、同図(a)に示すように、key1の音をkey2のノートオン時に強制オフする。それと同時に、key2の音を発音する。key2の音の音量及び音高については、単独発音の場合と全く同じであり、減衰タイミングは、key2単独発音の場合と同じとなり、音量については、key2について検出されたベロシティに従う。
図7(b)に示す制御パターン2は、key2のノートオン時のkey1の操作程度が、第2スイッチSWb、第3スイッチSWcが共にオフで、第1スイッチSWaがオン状態(KJ=jA)である場合に適用される。この場合、key1の音をkey2のノートオン時に強制オフすると共にkey2の音を発音する。ただし、key2の音の音量は、key1の音を強制オフしなかった場合の音量変化に合致させる。そして、key1の音が強制オフされなかったら自然減衰するであろうタイミングで、key2の音を減衰させる。従って、key2の音の音量は、key2について検出されたベロシティに依存せず、しかも、発音開始時の音量は、強制オフ時におけるkey1の音の音量と同じである。同図(b)の例では、key2の音はサスティンレベルの途中相当から発音されることになる。
一方、key2の音の音高については、key1とkey2との間の音高(key2の本来の音高より所定量だけkey1寄りの音高)から開始して、key2の本来の音高まで徐々に移行させていく。これにより、音量及び音高変化が自然で滑らかな、擬似的なレガート演奏となる。
図7(c)に示す制御パターン3は、key2のノートオン時のkey1の操作程度が、第3スイッチSWcがオフで、第1スイッチSWa、第2スイッチSWbが共にオン状態(KJ=jB)である場合に適用される。この場合、key1の音の強制オフ、key2の音の音量変化については、制御パターン2と同様である。一方、key2の音の音高については、key1の音高から開始して、key2の本来の音高まで徐々に移行させていく。これにより、音量及び音高変化が自然で滑らかな、擬似的なレガート演奏、特にポルタメントに近い演奏となる。
図7(d)に示す制御パターン4は、key2のノートオン時のkey1の操作程度が、第1スイッチSWa〜第3スイッチSWcのすべてがオンされた状態(KJ=jC)である場合に適用される。この場合、key1の音の強制オフについては、制御パターン2、3と同様である。key2の音の音量については、図7(b)、(c)の例とは異なり、key2のノートオン時から開始されるエンベロープ波形30から、波形31を除くと共に波形32を加えたエンベロープ波形とする。
すなわち、key2本来のエンベロープ波形30から、波形31を除去してアタックレベルを抑える。さらに、key2の発音開始時の音量を、key2のノートオン時におけるkey1の音量と同じとなるように設定する。そして、key2の発音開始時の音量から波形31を除去したエンベロープ波形30に波形が繋がるように、波形32を加える。key2の音のサスティンからリリースに相当する部分おいては、key2の本来のエンベロープ波形30に従うことになり、減衰タイミングは、key2単独発音の場合と同じとなる。
一方、key2の音の音高については、key2のノートオン時に、key1の音高からkey2の音高に切り替わる。これにより、特に音量変化が自然で滑らかな擬似的なレガート演奏となる。
ここで、制御パターン2、3(図7(b)、(c))において、key2の本来の音高まで徐々に移行させる音高移行期間は、固定値とする。しかし、これに限られず、key2について検出されたベロシティ及び/又はkey1との音高差に応じて音高移行期間を設定してもよい。また、key2の発音開始時の音高の決定にも、ベロシティ及び/又はkey1との音高差を加味してもよい。
次に、図5、図6のフローチャートを説明する。まず、図5のステップS101では、次のnを決定する。すなわち、図5のキースキャン処理では、全演奏操作子1を順にスキャンしていく。n値は、今回のスキャン対象となる1つの演奏操作子1を特定する変数であり、鍵盤が88鍵であるとすると、n=1〜88のいずれかの値をとる。
次に、n番目の演奏操作子1(以下、「鍵Kn」と称する)に対応する鍵操作スイッチ20をスキャンする(ステップS102)。続くステップS103〜S108では、鍵Knの第1スイッチSWa、第2スイッチSWb、第3スイッチSWcのオンイベント(オフ状態からオン状態となること)、またはオフイベント(オン状態からオフ状態となること)があったか否かを判別して、それらの判別の結果に従った処理に移行する。
まず、前記ステップS103で第1スイッチSWaのオンイベントがあった場合は、現在、操作状態(少なくとも対応する第1スイッチSWaがオン状態)にある演奏操作子1の数を示すカウンタASWを1だけインクリメントする(ステップS110)。そして、ASW=2であって且つステータスKJがj0でないという条件を満たすか否かを判別し(ステップS111)、該条件を満たさない場合は前記ステップS101に戻る一方、該条件を満たす場合は、共鳴音を付加するべく、ステップS112に進む。
前記ステップS104で第2スイッチSWbのオンイベントがあった場合は、n番目の演奏操作子1に対応するタイマ(Kn)をスタートさせ(ステップS113)、前記ステップS101に戻る。ここで、タイマ(Kn)は、各演奏操作子1毎に計測されるものである。
前記ステップS105で第3スイッチSWcのオンイベントがあった場合は、今回の第3スイッチSWcのオンイベントが、第2スイッチSWbのオフイベント前のオンイベントであるか(図3の例では、c4に相当するオンイベントであるか)否かを判別する(ステップS114)。その判別の結果、第2スイッチSWbのオフイベント前の第3スイッチSWcのオンイベントである場合は、特に発音処理等を行う必要がないため、前記ステップS101に戻る。一方、そうでない場合は、発音処理を行うべく、ステップS112に進む。
前記ステップS106で第1スイッチSWaのオフイベントがあった場合は、カウンタASWを1だけデクリメントし(ステップS115)、KJ=jAが成立するか否かを判別する(ステップS116)。その判別の結果、KJ=jAが成立する場合は、一旦、ノートオンを経由してきた場合であるから、ステータスKJをj0に設定すると共に(ステップS117)、消音処理を行うべく、ステップS112に進む。一方、KJ=jAが成立しない場合は、ノートオンを経ていないので、前記ステップS101に戻る。
前記ステップS107で第2スイッチSWbのオフイベントがあった場合は、KJ=jBが成立するか否かを判別する(ステップS118)。その判別の結果、KJ=jBが成立する場合は、ノートオンを経由してきた場合であるから、ステータスKJをjAに設定して(ステップS119)、前記ステップS101に戻る。一方、KJ=jBが成立しない場合は、ノートオンを経ていないので、タイマ(Kn)のカウントのやり直しに備えるべく、タイマ(Kn)をクリアし(ステップS120)、前記ステップS101に戻る。
前記ステップS108で第3スイッチSWcのオフイベントがあった場合は、ステータスKJをjBに設定して(ステップS109)、前記ステップS101に戻る。
前記ステップS112では、図6の演奏信号生成処理を実行する。まず、ステップS201では、タイマ(Kn)が計時中であるか否かを判別する。その判別の結果、タイマ(Kn)が計時中でない場合は、前記ステップS111またはS117を経由してきた場合であり、KJ=j0が成立するか否かを判別する(ステップS207)。そして、KJ=j0が成立する場合は、鍵knのノートオフであるので、上記[単独消音処理]により、対応する演奏信号を急速減衰させて(ステップS208)、本処理を終了する。一方、KJ=j0が成立しない場合は、新たにkey2の第1スイッチSWaがオンされた場合であるので、上記[共鳴(ダンパ)音処理]により、共鳴音を付加して(ステップS209)、本処理を終了する。
前記ステップS201の判別の結果、タイマ(Kn)が計時中である場合は、前記ステップS114を経由してきた場合であり、鍵Knが発音中であるか否かを判別し(ステップS202)、発音中でない場合は、現在の演奏モードがレガートモードであるか否かを判別する(ステップS210)。その判別の結果、レガートモードでない場合は、上記[通常単独発音]または[通常複数発音]により、鍵Knに対応する演奏信号を生成する(ステップS204)。
一方、前記ステップS202の判別の結果、鍵Knが発音中である場合は、上記[単独再発音]により、鍵Knに対応する演奏信号を停止させてから(ステップS203)、鍵Knに対応する演奏信号を新たに生成する(ステップS204)。
ステップS204の処理後はステップS205に進み、ステータスKJをjCに設定し、次に、タイマ(Kn)をクリアして(ステップS206)、本処理を終了する。
前記ステップS210の判別の結果、現在の演奏モードがレガートモードである場合は、ステップS211で、上記[レガートモード処理]により、制御パターン1〜4(図4(b)参照)によるkey2の楽音制御を行う。すなわち、まず、前音であるkey1の音があるときは、それを今回の鍵knであるkey2のノートオン時に強制オフする。それと共に、現在のステータスKJに基づいて、key2に対応する演奏信号を生成する。ここで、現在のステータスKJは、結局、key1の操作程度を示しているので、key1の操作程度に応じた制御パターンでkey2に対応する演奏信号が生成される(図7(a)〜(d)参照)。その後、前記ステップS205以降を実行する。
本実施の形態によれば、レガートモードで、key2のノートオン時におけるkey1の操作程度に基づいて、key2に対応する楽音の発音特性が決定される。これにより、例えば、key2の音のkey1の音に対する関わり度合い(音量及び音高の変化の依存度)を、ピッチベンド操作子等を用いることなく、key1の離鍵具合によって簡単に調節できる。よって、簡単な演奏操作でレガート演奏等ができ、演奏表現力を高めることができる。
なお、本実施の形態では、アタックのある音色を例にとって説明したが、制御パターン4(図7(d))における波形31の除去処理を除けば、アタックのない音色にも本発明を適用可能である。また、オルガン等の減衰しない音色に対しても、音のつなぎ目に対して、各制御パターンを適用可能である。
なお、図7の例では、いずれもkey1よりもkey2の音高が高い場合を示したが、これとは逆に、key2の音高がkey1より低い場合も、音高移行の方向が上下逆になるだけであり、基本的に同様の処理となる。また、key1とkey2とは、必ずしも隣接していなくてもよい。
なお、図7(a)〜(d)の例では、key2のノートオン時にkey1の音を一律に強制オフすることとしたが、これに限られず、図8に示すように、両者の音をクロスフェードさせてもよい。図8では、制御パターン2、3(図7(b)、(c))に対応する例を示すが、制御パターン4(図7(d))にも適用可能である。また、制御パターン1(図7(a))においては、key1の音の消音にフェードアウトを設けても良い。
なお、本実施の形態では、鍵操作スイッチ20は、3メイク式としたが、4メイク式以上として、さらにきめ細かい制御パターンを設けてもよい。一方、より構成を簡単にするためには、2メイク式としてもよい。2メイク式とした場合は、例えば、制御パターン3を廃止してもよい。
なお、本実施の形態では、key1は一旦ノートオンしたものであるとしたが、これに限られない。例えば、ノートオンを経ることなく最も新しく操作状態となっている演奏操作子1を「key1a」とする。そして、key1aの後から操作されたkey2がノートオンしたときは、その時点におけるkey1aの操作程度に応じて、key2に対応する楽音の発音特性が決定されるようにしてもよい。
その場合、例えば、key1aの操作程度が第1スイッチSWaと第2スイッチSWbとの間であるときは、key2に対応する楽音の発音に対して弱ポルタメント(音高変化に要する時間が短いもの)を付与する。また、key1aの操作程度が第2スイッチSWbと第3スイッチSWcとの間であるときは、key2に対応する楽音の発音に対して強ポルタメント(音高変化に要する時間が長いもの)を付与する。これらの場合、key1aはノートオンされていないから、key1aに対応する楽音が発音されない状態でkey2の楽音制御がなされることになる。key1aがノートオンであるときは、上記説明したのと同じ制御(図7(d)参照)とする。なお、ポルタメントに限られず、ピッチベンドによる発音開始時の音程ずり上げ/ずり下げの制御であってもよい。
なお、本実施の形態では、鍵操作スイッチ20は、3メイク式であり、第1スイッチSWaのオフでノートオフとしたが、これに限るものでない。例えば、通常の2メイクスイッチのように、第2スイッチSWbと第3スイッチSWcとでノートオン、ノートオフを検出すると共にベロシティを検出し、第1スイッチSWaは、単に後続のkey2の楽音を制御するためだけに用いるようにしてもよい。
その場合は、後続のkey2の楽音の制御にかかわる演奏操作子1、すなわち、最も新しく操作状態となっている演奏操作子1は、上記実施の形態で説明したkey1のように一旦ノートオンとなったものとしてもよいし、あるいは上記説明したkey1aのようにノートオンを経ることなく操作状態となったものであってもよい。
なお、レガートモードにおいて制御するkey2に対応する楽音の発音特性は、例示した音量、音高に限られない。
なお、本実施の形態では、演奏操作子として鍵盤楽器の鍵を例示したが、これに限られない。例えば、ペダル鍵等、複数設けられて独立操作される各種の演奏操作子を有した電子楽器に本発明を適用可能である。
1 演奏操作子、 20 鍵操作スイッチ(操作程度検出手段)、 5 CPU(演奏形態決定手段、演奏信号生成手段)、key1 第1の演奏操作子、key2 第2の演奏操作子