(57)【特許請求の範囲】
【請求項１】
単位音の生成を担う複数のボイスを備えた音源と、
それぞれが異なる音高を持つ複数の構成音を得るため、発音指示の指示するキーナンバの音高に対する各構成音の音高差を指定する構成音音高指定手段と、
前記複数のボイスにそれぞれ異なる音高の単位音の生成を割り当てるとともに、生成された単位音のレベルを、該単位音の出力が阻止されるアイドル状態にまで低減しておく単位音割当手段と、
楽音発音指示の指示するキーナンバと、前記構成音音高指定手段により前記キーナンバに対応する楽音を構成する構成音の音高差が指定されることにより決定される発音すべき各構成音の音高とに応じて、発音指示のあった楽音を構成する複数の構成音それぞれに対応する単位音を決定する単位音決定手段と、
前記単位音決定手段により決定された複数の単位音のうち前記単位音割当手段により生成が割り当てられているボイスがある場合には該ボイスのレベルを増大させるとともに、生成が割り当てられているボイスがない場合は、生成が割り当てられていないか、割り当てられているがアイドル状態のボイスに該単位音の生成を新たに割り当てると共にレベルを増大させ、該発音指示のあった楽音を生成して出力する楽音生成手段とを備えたことを特徴とする電子楽器。
【請求項２】
前記楽音生成手段は、前記単位音決定手段により決定された複数の単位音のうち前記単位音割当手段により生成が割り当てられているボイスがある単位音に関しては該単位音に対応するボイスのレベルを、発音指示のあった楽音を構成する構成音のレベル分だけそれぞれ増大させることにより発音指示のあったキーナンバーに対応する楽音を生成して出力するとともに、複数の構成音の集合からなる発音中の楽音の発音停止指示があったときに、該発音中の楽音を構成する複数の構成音を生成している単位音に対応する複数のボイスのレベルを、該発音中の楽音を構成する複数の構成音のレベル分だけそれぞれ低減することにより、該発音中の楽音の発音を停止させるものであることを特徴とする請求項１記載の電子楽器。
【請求項３】
前記構成音音高指定手段は、発音指示の指示するキーナンバに対応する各構成音からなる楽音の各構成音の音高差に加えて各構成音のレベルを指定するものであり、前記楽音生成手段は、発音指示のあったキーナンバに対応する楽音を構成する構成音を生成している単位音に対応する複数のボイスのレベルを、該構成音音高指定手段により指定される該発音指示に対応する各構成音のレベル分だけそれぞれ増大させるとともに、発音停止指示のあった楽音を構成する構成音を生成している単位音に対応する複数のボイスのレベルを該構成音音高指定手段により指定される該発音停止指示に対応する各構成音のレベル分だけそれぞれ低減するものであることを特徴とする請求項２記載の電子楽器。
【請求項４】
発音指示のあった楽音の構成音に対応する単位音のうち前記単位音割当手段により生成が割り当てられているボイスがある単位音に関して該ボイスのレベルを増大させることにより１つのボイスを複数の発音指示で共用する第１の形態の楽音とは異なる、１つのボイスを１つの発音指示で単独して使用する第２の形態の楽音の発音指示を受け付け、前記第１の形態の楽音の構成音に対応する単位音の生成が割り当てられ、かつ、アイドル状態でない第１の状態のボイスを除くいずれかのボイスに、発音指示のあった第２の形態の楽音を生成させる第２の楽音生成手段を備えたことを特徴とする請求項１記載の電子楽器。
【請求項５】
前記第２の楽音生成手段は、発音指示のあった第２の形態の楽音を、現在第２の形態の楽音を生成していない第２の状態のボイスのうちのいずれかのボイスに生成させ、前記第２の状態のボイスがない場合において、前記単位音割当手段により単位音の生成が割り当てられているボイスのうちの前記第１の状態のボイスを除く、生成された単位音のレベルが該単位音の出力が阻止されるアイドル状態にまで低減している第３の状態のボイスのうちのいずれかのボイスに、発音指示のあった第２の形態の楽音の生成を割り当て、
前記第２の状態のボイスと前記第３の状態のボイスとのうちのいずれの状態のボイスもない場合に、前記第２の形態の楽音を生成している第４の状態のボイスのうちのいずれかのボイスに、該ボイスで生成中の第２の形態の楽音の生成を停止させて、新たに発音指示のあった第２の形態の楽音の生成を割り当てるものであることを特徴とする請求項４記載の電子楽器。
【請求項６】
前記単位音割当手段が、前記第２の形態の楽音の生成が割り当てられていたボイスにおける該第２の形態の楽音の生成が終了した場合において、単位音の生成を割り当てられていない該第２の形態の楽音の生成が終了したボイスに、生成するボイスへの割り当てが行われていない単位音のうちのいずれかの単位音の生成を割り当てさせるものであることを特徴とする請求項４記載の電子楽器。
【請求項７】
前記楽音生成手段が、前記単位音決定手段により決定された複数の単位音のうちのいずれかの単位音の生成が割り当てられているボイスがない場合において、前記単位音割当手段により単位音の生成が割り当てられているボイスのうちの前記第１の状態のボイスを除く、生成された単位音のレベルが該単位音の出力が阻止される状態にまで低減している第３の状態のボイスが存在する場合には、該第３の状態のボイスのうちのいずれかのボイスに、前記単位音決定手段により決定された複数の単位音のうちの、生成が割り当てられなかった単位音の生成を割り当て、前記第３の状態のボイスがない場合には、前記第２の形態の楽音の生成が割り当てられている第４の状態のボイスのうちのいずれかのボイスに、該ボイスで生成中の第２の形態の楽音の生成を停止させて、前記単位音決定手段により決定された複数の単位音のうちの、生成が割り当てられなかった単位音の生成を割り当てるものであることを特徴とする請求項６記載の電子楽器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子楽器に関し、特に、いわゆるトーンホイールオルガンの音色を模擬する電子楽器に関する。
【０００２】
【従来の技術】
従前には、いわゆるトーンホイールオルガンと呼ばれる電気楽器が存在していた。このトーンホイールオルガンは、例えば歯車状の回転体（ホイールと称する）と、そのホイールの歯車の歯が近づいたことをピックアップするセンサを備え、そのセンサにより、ホイールの歯車のピッチと回転数とに応じた周期信号を得るようにした構成を、半音階毎の周期信号が得られるように多数（例えば９１個）備え、さらに、ドローバーと呼ばれる、各倍音のレベルを調整する操作量可変の操作子を複数（例えば９個）備え、それらのドローバーをそれぞれ所望量だけ操作しておき、鍵盤の鍵を押したときにその押鍵された鍵の番号（キーナンバ）に応じて各ドローバーにそれぞれ対応するホイールを、例えば合計９個選び、それら選ばれたホイールで得られた周期信号を、それぞれ対応するドローバーの操作量に応じたレベルに増幅してミキシングすることにより、その押鍵に対応するオルガン音を発音する構造の電気楽器である。ホイールは古典的なパイプオルガンにおけるパイプに相当する。
【０００３】
一方、近年では、シンセサイザと呼ばれる、極めて複雑な倍音構造を持つた楽音をも発生させることのできる電子楽器が登場している。このシンセサイザには、ハードウェア、ソフトウェア、ないしはそれらの複合である、任意に割り当てられた１つの音の生成を担う、多数（例えば１２８個）のボイスと呼ばれる概念の構造が存在し、そのボイスの数と同数の種々の楽音を同時に発音することができる。
【０００４】
【発明が解決しようとする課題】
ここで、近年のシンセサイザを用いて従来のトーンホイールオルガンの音色を模擬した楽音を生成することを考える。当然ながら、ボイスを１つ使用して、複数（例えば９個）のドローバーの操作量に応じた倍音構造を持つ１つの音色の楽音、すなわちトーンホイールオルガンの音色の楽音を生成することは可能である。
【０００５】
ところが、シンセサイザを使用する場合に通常考えられる単純なやり方でトーンホイールオルガンを模擬すると、以下のような問題点が発生する。
すなわち、トーンホイールオルガンの場合、例えば２つの鍵に対応する２つの楽音が共通の周波数の倍音を含む場合、それら双方の楽音の共通の周波数の倍音の生成のために１つのホイールで得られた１つの周期信号が用いられる。すなわち、複数の楽音に含まれる同一周波数の倍音は、それら複数の楽音に対応する複数の鍵の押鍵のタイミングのずれのいかんにかかわらず、かならず位相の揃った音である。これに対し、シンセサイザでトーンホイールオルガンの音色の複数の楽音を生成すると、複数の鍵をそれぞれ押鍵したタイミング毎に各ボイスで各楽音が生成されるため、それら複数の楽音に同一の周波数の倍音が含まれていたとき、押鍵のタイミングの僅かなずれに応じてそれら同一の周波数の倍音どうしの位相がずれ、その位相のずれに応じてその倍音どうしが弱め合ったり、極端な場合、すなわち、その倍音の振幅が互いに等しくかつ位相が１８０°ずれたときは、その倍音が消失してしまう結果となる。すなわち、演奏者が毎回同じ複数の鍵を演奏者の操作上同じタイミングで押鍵しても、人間が演奏するものであるため毎回僅かなタイミングのずれを生じ、そのたびに倍音の振幅が変化し、毎回同じように押鍵してもそのたびに音色が変化してしまう結果となり、一定の音色に制御できないという問題がある。
【０００６】
また、このような問題に対処するためにトーンホイールオルガンのホイールと同じ数のボイスを備え、単にホイールをボイスに置き換えるという構成も考えられるが、このような構成とした場合にはホイールと同じ数のボイスが必要であり構成が大規模になるという問題がある。
さらに前述の構成の場合には、各ボイスはそれに対応するホイールの周期信号を固定的に生成するだけであるので、構成が大規模となるにも関わらずトーンホイールオルガンの音色以外の他の音色の楽音を生成できないという問題がある。
【０００７】
本発明は、上記事情に鑑み、小規模な構成で従来のトーンホイールオルガンを高度に模擬することのできる電子楽器を提供することを目的とする。また本発明はトーンホイールオルガンの音色以外の他の音色の楽音も生成することのできる電子楽器を提供することを目的とする。
【０００８】
【課題を解決するための手段】
図１は、本発明の電子楽器の原理説明図である。
本発明の電子楽器は、複数のボイス１＿１，１＿２，…，１＿ｎ、構成音音高指定手段２、単位音割当手段３、単位音決定手段４、楽音生成手段５を備えている。
【０００９】
複数のボイス１＿１，１＿２，…，１＿ｎは、それぞれが、任意に割り当てられた１つの音の生成を担うものである。
また構成音音高指定手段２は、それぞれが異なる音高を持つ複数の構成音の集合からなる楽音の各構成音の音高を指定するものである。
また、単位音割当手段３は、楽音生成に先立って、複数のボイスにそれぞれ異なる音高の単位音の生成を担当させるとともに、生成された単位音のレベルを、その単位音の出力が阻止される状態にまで低減しておくものである。
【００１０】
さらに、単位音決定手段４は、複数の構成音の集合からなる楽音の発音指示を受け付け、発音指示の指示するキーナンバと構成音音高指定手段２により指定される各構成音の音高とに応じて、発音指示のあった楽音を構成する複数の構成音それぞれに対応する単位音を決定するものである。
さらに、楽音生成手段５は、単位音決定手段４により決定された複数の単位音のうち生成を担当しているボイスが存在する単位音に関してはそのボイスのレベルを増大させるとともに、生成を担当しているボイスが存在しない単位音に関しては複数の単位音の集合からなる楽音の出力に寄与している最中のボイスを除くいずれかのボイスにその単位音の生成を新たに担当させ、発音指示のあった楽音を生成して出力するものである。
【００１１】
本発明の電子楽器は、複数のボイスで各単位音（トーンホイールオルガンにおける各周期信号に相当する）を生成しておき、ただし、その単位音を出力しないようにレベルを下げてアイドル状態にしておき、発音指示があったときに、その発音指示のキーナンバと構成音音高指定手段により指定される各構成音の音高とに応じて、どのボイスで生成中の単位音のレベルを増大すればよいかを定め、そのように調整して出力することにより、その発音指示に応じた楽音を得るものであり、複数の楽音の発音指示があり、それら複数の楽音が同じ周波数の倍音を含む場合、その同じ倍音には１つのボイスで生成された１つの単位音が用いられ、このため発音指示のタイミングのずれによらず同じ周波数の倍音の位相は常に揃っており、常に一定の音色の楽音を出力することができる。
【００１２】
ここで、単位音割当手段３は、単位音決定手段４により決定された複数の単位音のうちのいずれかの単位音の生成を担当しているボイスが存在しなかったときに、その単位音の生成を、複数の単位音の集合からなる楽音の出力に寄与している最中のボイスを除くいずれかのボイスに担当させるようになっている。
基本的には各ボイスで各単位音を生成してアイドル状態にしておくものの、例えば単位音の生成に使用することのできるボイスの数が単位音の総数よりも少ない場合において発音指示のあった楽音の生成のためにアイドル状態にない単位音を使用する必要を生じたときに、上記の事態が生じる。したがって、本発明の電子楽器では、生成しようとする単位音の数よりも少ないボイスで楽音の生成が可能であり、小規模な電子楽器が実現できる。
【００１３】
ここで楽音生成手段５は、単位音決定手段４により決定された複数の単位音のうち生成を担当しているボイスが存在する単位音に関してはその単位音のレベルを、発音指示のあった楽音を構成するその単位音に対応する構成音のレベル分だけそれぞれ増大させることにより発音指示のあった楽音を生成して出力するとともに、複数の構成音の集合からなる発音中の楽音の発音停止指示があったときに、発音中の楽音を構成する複数の構成音の生成を担当している複数のボイスで生成されている単位音のレベルを、発音中の楽音を構成する複数の構成音のレベル分だけそれぞれ低減することにより、発音中の楽音の発音を停止させるものであることが好ましい。
【００１４】
また、この場合において、構成音音高指定手段２は、各構成音の音高に加えて各構成音のレベルを指定するものであり、楽音生成手段５は、発音指示のあった楽音を構成する単位音のレベルを、構成音音高指定手段２により指定される、発音指示に対応する構成音のレベル分だけそれぞれ増大させるとともに、発音停止指示のあった楽音を構成する単位音のレベルを、構成音音高指定手段２により指定される、発音停止指示に対応する構成音のレベル分だけそれぞれ低減するものであることがさらに好ましい。
【００１５】
この場合、各構成音音のレベルが指定可能であり、各単位音のレベルが発音指示に対応する構成音のレベルだけ増大されるとともに発音停止指示に対応する構成のレベルだけ低減され、指定されたレベルの構成音が生成される。
さらに、上記本発明の電子楽器において、発音指示のあった楽音の構成音に対応する単位音のうち生成を担当しているボイスが存在する単位音に関してそのボイスのレベルを増大させることにより１つのボイスを複数の発音指示で共用する第１の形態の楽音とは異なる、１つのボイスを１つの発音指示で単独して使用する第２の形態の楽音の発音指示を受け付け、第１の形態の楽音の出力に寄与している最中にある第１の状態のボイスを除くいずれかのボイスに、発音指示のあった第２の形態の楽音の生成を分担させる第２の楽音生成手段６を備えることが好ましい。
【００１６】
このような構成を備えることにより、トーンホイールオルガンの忠実な模擬を行なうとともに、１つのボイスで１つの楽音を生成するという本来的なシンセサイザの機能をも同時に使用することができる。シンセサイザとしての本来的な使い方を併用することにより、トーンホイールオルガンと他の楽器との協奏やオーケストラをバックにしたトーンホイールオルガンの演奏を行なうことができ、あるいは、トーンホイールオルガンにおける発音開始時、発音終了時に発生するノイズ音を発生させてトーンホイールオルガンを一層リアルに模擬することもできる。
【００１７】
ここで、第２の楽音生成手段６を備えた場合において、その第２の楽音生成手段６が、音の生成を現在担当していない第２の状態のボイスが存在する場合には、その第２の状態のボイスのうちのいずれかのボイスに発音指示のあった第２の形態の楽音の生成を担当させ、
第２の状態のボイスが存在しない場合において、単位音割当手段３により単位音の生成が割り当てられているボイスのうちの上記第１の状態のボイスを除く、生成された単位音のレベルがその単位音の出力が阻止される状態にまで低減している第３の状態のボイスのうちのいずれかのボイスに、発音指示のあった第２の形態の楽音の生成を担当させ、
第２の状態のボイスと第３の状態のボイスとのうちのいずれの状態のボイスも存在しない場合に、第２の形態の楽音の生成を担当している第４の状態のボイスのうちのいずれかのボイスに、そのボイスで生成中の第２の形態の楽音の生成を停止させて、新たに発音指示のあった第２の形態の楽音の生成を担当させるものであることが好ましい。
【００１８】
ボイスの使い方をこのように割り振ることにより、第１の形態の楽音（例えばトーンホイールオルガンとしての楽音）の生成と第２の形態の楽音（例えばノイズ音、あるいはバックのオーケストラとしての楽音）の生成との調和をとった上で、ボイスの有効利用が図られる。
また、その場合に、単位音割当手段３が、第２の形態の楽音の生成を担当していたボイスにおけるその第２の形態の楽音の生成が終了した場合において、生成を担当するボイスが割り当てられていない単位音が存在していた場合に、その第２の形態の楽音の生成が終了したボイスに、生成を担当するボイスが割り当てられていない単位音のうちのいずれかの単位音の生成を担当させるものであることが好ましい。
【００１９】
こうすることにより、できる限り多数の単位音をアイドリング状態に置くことができ、それだけ、全体として、発音指示に対する応答が速まることになる。
この場合において、楽音生成手段５が、単位音決定手段４により決定された複数の単位音のうちのいずれかの単位音の生成を担当しているボイスが存在しなかった場合に、単位音割当手段３により単位音の生成が割り当てられているボイスのうちの上記第１の状態のボイスを除く、生成された単位音のレベルがその単位音の出力が阻止される状態にまで低減している第３の状態のボイスが存在する場合には、その第３の状態のボイスのうちのいずれかのボイスに単位音決定手段４により決定された複数の単位音のうちの、生成を担当しているボイスが存在しなかった単位音の生成を担当させ、上記第３の状態のボイスが存在しない場合には、第２の形態の楽音の生成を担当している第４の状態のボイスのうちのいずれかのボイスに、そのボイスで生成中の第２の形態の楽音の生成を停止させて、単位音決定手段４により決定された複数の単位音のうちの、生成を担当しているボイスが存在しなかった単位音の生成を担当させるものであることが好ましい。
【００２０】
こうすることにより、第１の形態の楽音（例えばトーンホイールオルガンの楽音）の発音を優先させた上で、ボイスの最大限の有効利用が図られる。
【００２１】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図２は、本発明の一実施形態の電子楽器のハードウェア構成を示すブロック図である。
図２に示す電子楽器１０には、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、鍵盤１４、パネルスイッチ１５、および楽音発生部１６が備えられており、それらはバス１７を介して互いに接続されている。また楽音発生部１６にはサウンドシステム２０が接続されている。
【００２２】
ＣＰＵ１１は、ＲＯＭ１２に格納されているプログラムを読み出して実行する中央演算処理装置であり、この電子楽器１０の全体の制御を担当している。
ＲＯＭ１２は、読出し専用メモリであり、このＲＯＭ１２には、ＣＰＵ１１で実行されるプログラムや変更の必要のない各種定数等が格納されている。
ＲＡＭ１３は、読み書き自在なメモリであり、ＣＰＵ１１でプログラムが実行される際の作業領域として使用され、あるいは、後述するパネルスイッチ１５で設定された各種パラメータ等の格納領域として使用される。
【００２３】
鍵盤１４は、アコースティックなピアノあるいはオルガンの鍵盤に配列された多数の鍵と同様にデザインされた多数の演奏操作子（これも鍵と称する）を備えており、アコースティックなピアノあるいはオルガンなどと同様な感覚で演奏操作を行なうことができるように構成されている。なお、各鍵には低音側から高音側に行くに従って１づつ値が大きくなる鍵番号（キーナンバ）が付けられている。
【００２４】
パネルスイッチ１５は、通常は鍵盤を構成する鍵と同じパネル上に配列された複数のスイッチや操作量可変の操作子（ここではこれをドローバーと称する。詳細は後述する。）等からなり、この電子楽器１０に各種のパラメータ等を設定するためのものである。
楽音発生部１６は、ＣＰＵ１１の指令に基づいて各種の楽音（ノイズ音等を含む）を生成する部分であり、ここで生成された楽音は、アンプとスピーカからなるサウンドシステム２０に入力され、最終的には空間に放音される。ここでは、空間に放音された楽音だけではなく、空間に放音する前の電気信号の状態のものも楽音と称している。
【００２５】
図３は、図２にブロックで示す鍵盤１４およびパネルスイッチ１５の一部を示すパネル図である。
ここには、鍵盤１４を構成する多数の白鍵１４１や黒鍵１４２のうち一番左側に配列された一部分と、さらにその左側に、図１にブロックで示すパネルスイッチ１５の一部分が示されている。尚、パネルスイッチ１５の全体としては、この図３に示されたもの以外に多数のスイッチや操作子等も含まれるが、ここには、本発明の特徴部分に関連するもののみ図示するにとどめている。
【００２６】
この図３には、９本のドローバー１５１と、６個のシンセ音色スイッチ１５２と、６個のシンセ音色選択ＬＥＤ１５３が示されている。
本実施形態では、トーンホイールオルガンの音色（以下、これをオルガン音色と称し、オルガン音色の楽音をオルガン音と称する）による、鍵盤を用いた演奏者による演奏と、シンセ音色選択ボタン１５２のうちのいずれか１つを押すことにより選択された音色（以下、これをシンセ音色と称し、シンセ音色の楽音をシンセ音と称する）での自動演奏との同時演奏が行なわれる。
【００２７】
本実施形態では、自動演奏のための鍵盤の押鍵、離鍵等に対応する演奏データは、あらかじめ作成されてＲＯＭ１２ないしＲＡＭ１３に格納されている。
９本のドローバー１５１は、オルガン音色を定めるためのものであり、図３の下側に向けて任意の位置まで引き下げることができ、その引き下げ量が大きいほどその引き下げたドローバー１５１に対応する倍音のレベルが増大する。各ドローバー１５１には、フィート表示で、それぞれ「１６」、「５と１／３」、「８」、「４」、「２と２／３」、「２」、「１と３／５」、「１と１／３」、「１」と表示されている。これは、古典的なパイプオルガンの名残りであり、パイプオルガンのパイプの長さをあらわす数値である。
【００２８】
鍵盤１４を構成するいずれか１つの鍵を押すと各ドローバーに対応する音高の楽音が同時に生成される。すなわち各ドローバーは対応する倍音の音高を固定的に設定するとともにその倍音のレベルを任意に設定するものである。各ドローバー１５１のフィート表示された数値はそのドローバーに対応する倍音の周波数と逆比例の関係にあり、例えば１６フィートのドローバー、４フィートのドローバーは、８フィートのドローバーの音高に対し、それぞれ１／２の周波数の音高、２倍の周波数の音高に対応する。なお、８フィートのドローバーは基音に対応している。
【００２９】
このように、各ドローバー１５１には、各倍音が割り当てられており、各ドローバー１５１の引き出し量は、対応する倍音のレベルをあらわしている。このようにして、この電子楽器では９本のドローバー１５１のそれぞれの引き出し量を調整することにより、オルガン音色が調整される。
この電子楽器には、９本のドローバー１５１の引き出し量で調整されるオルガン音色のほか、６個のシンセ音色スイッチ１５２それぞれに対応する６種類のシンセ音色が用意されており、６個のシンセ音色スイッチ１５２のうちのいずれか１つのシンセ音色スイッチを押すことにより、その押されたシンセ音色スイッチに対応するシンセ音色が選択される。６個のシンセ音色ＬＥＤ１５３は、６個のシンセ音色スイッチ１５２のそれぞれに対応した位置に配置されており、いずれか１つのシンセ音色スイッチを押してそのシンセ音色スイッチに対応するシンセ音色が選択されると、その押されたシンセ音色スイッチに対応するシンセ音色ＬＥＤが点灯し、現在どのシンセ音色が選択されているか視認できるようになっている。
【００３０】
図４は、図２にブロックで示す楽音発生部１６の概念的な構成図である。
ここにはボイス０〜ボイス１２７と名付けられた合計１２８個のボイスが存在する。各ボイスは、それぞれ１つの音の生成を担うものであり、各ボイスには、ウェーブジェネレータＷＧ、タイムバリアントフィルタＴＶＦおよびタイムバリアントアンプリファイアＴＶＡが備えられている。
【００３１】
ＷＧは、ある１つの音の基になる波形を発生させ、ＴＶＦは、その波形をフィルタリングして高調波成分を調整し、ＴＶＡはその波形の振幅を調整する。ここで、ＷＧは指定された波形を指定された音高で生成可能なものであり、オルガン音の生成が指定された場合には模擬対象のトーンホイールオルガンの指定された音高に対応するホイールにより生成される波形を生成し、シンセ音の生成が指定された場合にはシンセ音色スイッチ１５２により選択されたシンセ音色に対応する波形を指定された音高で生成する。またＴＶＦ、ＴＶＡは、そのカットオフ周波数や増幅率を、１つの音を発生している間であっても時間経過に従って調整することができるものであり、これにより音色や振幅に時間的なエンベロープが付与される。これは、例えばピアノの楽音は押鍵からの時間経過に応じて音色や振幅が変化するが、このように時間的に変化する楽音を模擬するためにＴＶＦやＴＶＡが必要となる。
【００３２】
各ボイスで生成された音は、ミキサーＭＩＸで互いに混合されてサウンドシステム２０（図２参照）へ送られる。
以下、図２に示すＣＰＵ１１で実行されるプログラムについて説明する。
図５は、初期化ルーチンのフローチャートである。
この電子楽器に電源が投入されると、あるいは図示しない操作子により初期化が指示されるとこの初期化ルーチンが実行される。
【００３３】
先ず変数ＶがＶ＝０と置かれ（ステップ５＿１）、ホイールボイス［Ｖ］にＶが代入される（ステップ５＿２）。ここでホイールボイス［Ｖ］は、Ｖ＝０のホイールを０番目と数えてトーンホイールオルガンのＶ番目のホイール（ホイールＶと称する）で生成される周期信号に相当する波形を生成するボイスのボイス番号を格納するレジスタの配列をあらわしており、ホイールボイス［Ｖ］＝Ｖは、そのレジスタの配列のＶ番目のレジスタ（ホイールボイス［Ｖ］）に数値Ｖを代入することをあらわしている。ここでは、トーンホイールオルガンのホイールに相当する構成を概念的に「ホイール」と称する。すなわち、ホイールボイス［Ｖ］＝Ｖは、ホイールＶの周期信号をＶ番目のボイス（ボイスＶと称する）で生成するという対応づけを意味している。
【００３４】
ステップ５＿２では、ホイールボイス［Ｖ］にＶを代入するのみではなく、ボイスＶにホイールＶの周期信号を生成させるという操作も行なう。ただし、ここでは、ボイスＶのＴＶＡ（図４参照）は、増幅率を０にし、そのボイスＶで生成された周期信号がミキサＭＩＸには出力されないようにしている。この状態をホイールボイス［Ｖ］がアイドル状態にあると称する。
【００３５】
ステップ５＿３では、ホイール参照カウンタ［Ｖ］に０が代入される。ホイール参照カウンタ［Ｖ］は、ホイールボイス［Ｖ］に対応して備えられたレジスタの配列であり、それぞれには、−１，０，１，２，…のうちのいずれかの数値が格納される。ホイール参照カウンタ［Ｖ］は、対応するホイールボイス［Ｖ］に格納されているボイス番号（ここではＶ）を持つボイス（ボイスＢ）（以下、このボイスを「ホイールボイス［Ｖ］で指定されるボイス」と称する）が楽音の発音に使用されている数をあらわしており、具体的には、ホイール参照カウンタ［Ｖ］＝０は、ホイールボイス［Ｖ］で指定されるボイスがアイドル状態にあることをあらわしており、ホイール参照カウンタ［Ｖ］＝１は、ある１つの押鍵された鍵に対応するオルガン音を構成する複数の周期信号のいずれかが、ホイールボイス［Ｖ］で指定されるボイスで生成された周期信号であることを意味しており、ホイール参照カウンタ［Ｖ］＝２は、押鍵された２つの鍵に対応する２つのオルガン音双方で、ホイールボイス［Ｖ］で指定されるボイスで生成された周期信号を用いていることをあらわしており、ホイール参照カウンタ［Ｖ］＝３，４，…も同様である。また、ホイール参照カウンタ［Ｖ］＝−１は、ホイールボイス［Ｖ］で指定されるボイスがそのホイールに対応する周期信号を生成していないことをあらわしている。この状態は後述するように、そのボイスがシンセ音の発生に用いられている場合や他のホイールに対応する周期信号を生成するのに用いられている場合に起こる。
【００３６】
ステップ５＿３では、ホイール参照カウンタ［Ｖ］に０がセットされる。すなわち、初期状態としてホイールボイス［Ｖ］で指定されるボイスがアイドル状態にあることがセットされる。
ステップ５＿４ではＶ＜９０か否かが判定され、Ｖ＜９０の場合はステップ５＿５でＶがインクリメントされてステップ５＿２に戻る。すなわち、この電子楽器には９１本のホイールが観念されており、ホイールボイス［０］〜ホイールボイス［９０］でそれぞれ指定されるボイスでそれぞれホイール０〜ホイール９０の周期信号を生成し、ただし出力しないアイドル状態におくことを意味している。
【００３７】
ステップ５＿４でＶ≧９０と判定されるとステップ５＿６に進み、貸出し数に０がセットされる。上述したように、オルガン音のための９１本のホイールそれぞれに対応する９１個のボイスで各ホイールの周期信号が生成される。この電子楽器は１２８個のボイス（ボイス０〜ボイス１２７）を備えているため、９１本のホイールに対応する９１個のボイスで各ホイールの周期信号を生成していてもさらに１２８−９１＝３７個のボイスの余裕があるが、シンセ音の同時発音数が増え、これを越えることも予想され、そのときには、後述するようにオルガン音の生成のためにアイドル状態にあるボイスでの周期信号の生成を停止させ、そのボイスでシンセ音を生成させる。すなわちこれを、オルガン音からシンセ音へのボイスの‘貸出し’と見なし、‘貸出し数’は、オルガン音からシンセ音へのボイスの貸出し数をあらわしている。ステップ５＿６で貸出し数を０とおくのは、初期状態としてはオルガン音からシンセ音への貸出し数が０であることをあらわしている。
【００３８】
ステップ５＿７では、アイドルホイール数に９１がセットされる。このアイドルホイール数は、アイドル状態にあるボイスの数であり、初期状態では、９１本のホイールに対応する９１個のボイスが全てアイドル状態となる。このアイドルホイール数は、オルガン音が生成されて出力されたとき、およびシンセ音の生成のためにオルガン音からシンセ音へのボイスの貸出しが生じたときに９１よりも小さな値となる。
【００３９】
ステップ５＿８では、変数Ｖを初期値９１とおき、Ｖをフリーリンクへ接続し（ステップ５＿９）、Ｖ＜１２７か否かを判定し（ステップ５＿１０）、Ｖ＜１２７のときはステップ５＿１１でＶがインクリメントされてステップ５＿９へ戻る。フリーリンクとは、オルガン音の発音にもシンセ音の発音にも用いられておらず、かつオルガン音発音のためのアイドル状態にもない、その時点では何らの音の生成も担っていない空いているボイスのボイス番号どうしを接続したデータ構造をいい、初期状態としては、ボイス０〜ボイス９０の合計９１個のオルガン音の発音のためのアイドル状態におかれたボイスを除く、ボイス９１〜ボイス１２７の合計３７個のボイスのボイス番号がフリーリンクに接続される。
【００４０】
図６はオルガン音発生のための発音指示を受けて実行されるオルガンの押鍵ルーチンのフローチャートである。本実施形態では、オルガン音発生のための発音指示は、図２、図３に示す鍵盤１４の各鍵の押鍵により発生する。
先ずステップ６＿１では変数ｄｒｂに初期値０が代入される。
ステップ６＿２では、９本のドローバー１５１（図３参照）のうちのｄｒｂ番のドローバーの引き量が０であるか否か判定され、ｄｒｂ番のドローバーの引き量が０のときは、そのドローバーに関する処理は不要であるため直接にステップ６＿９に進み、ｄｒｂ＜８か否か、すなわち９本のドローバーの全てについての処理が終了したか否かが判定され、未処理のドローバーが残っているときはステップ６＿１０に進んでｄｒｂがインクリメントされ、ステップ６＿２に戻る。
【００４１】
ステップ６＿２においてｄｒｂ番のドローバーが少しでも引き下げられている（引き量が０ではない）と判定されるとステップ６＿３に進み、鍵盤１４の、今回押下した鍵（キー）と変数ｄｒｂとに従って、今回押下したキーに対応するオルガン音を生成するための音高（ホイール）が１つ定められ、変数Ｗに格納される。
【００４２】
すなわち、変数ｄｒｂを引数として得られたフィートオフセット［ｄｒｂ］と押下したキーのキーナンバおよび所定の定数との和がホイール番号として変数Ｗに格納される。フィートオフセット［］は８フィートのドローバーを基準として各ドローバーに対応する音高が何半音高いかを示す数値が予め固定的に記憶されている配列であり、「１６」、「５と１／３」、「８」、「４」、「２と２／３」、「２」、「１と３／５」、「１と１／３」、「１」の各フィート表示のドローバーに対応してそれぞれ−１２、７、０、１２、１９、２４、２８、３１、３６の数値が記憶されている。
【００４３】
ステップ６＿４では、ステップ６＿３で定められたホイール番号Ｗが９０を越えているか否かが判定される。ホイールは９１本存在し各ホイールには０〜９０のいずれかの番号が割り当てられており（図５ステップ５＿１、５＿４参照）、９０番を越えるホイール番号のホイールは存在しない。一方、ステップ６＿３では、押下キーのキー番号と変数ｄｒｂとにより機械的にホイール番号が計算されるため、その押下キーによっては９０を越えるホイール番号が求められる場合がある。そこで、ステップ６＿４でホイール番号が９０を越えているか否かが判定され、ホイール番号が９０を越えていたときはステップ６＿５に進み、ステップ６＿３で求められたホイール番号から１２が減じられて、その減じられたホイール番号がＷに再格納され、再びステップ６＿４に戻る。ホイールは半音毎に用意されており、したがってホイール番号から１２を減ずるということは、１オクターブ低い音高のホイールを用いることを意味している。
【００４４】
ステップ６＿６では、ステップ６＿３で計算されたホイール番号がマイナスの番号であるか否かが判定される。ホイール番号は０から始まっておりマイナスの番号のホイールは存在しないので、ホイール番号がマイナスであったときはステップ６＿７に進み、ホイール番号に１２が加算されてＷに再格納され、ステップ６＿６に戻る。ホイール番号に１２を加算するということは、１オクターブ高い音高のホイールに折り返すことを意味する。
【００４５】
このようにしてホイール番号が０〜９０のいずれかの番号に入るとステップ６＿８に進み、オルガンボイスのアサインルーチンが実行される。このオルガンボイスのアサインルーチンでは、今回求められたホイール番号Ｗに対応する周期信号を、対応するドローバーの引き量に対応する振幅で出力する操作が行なわれる。詳細は後述する。
【００４６】
ステップ６＿９では、ｄｒｂ＜８か否か、すなわち上述したように、９本の全てのドローバーについて上記の処理が終了したか否かが判定され、未処理のドローバーが残っているときはステップ６＿１０に進んでｄｒｂがインクリメントされステップ６＿２に戻る。全てのドローバーについての処理が終了したときは、このオルガンの押鍵ルーチンを終了する。
【００４７】
図７は、図６に示すオルガンの押鍵ルーチンのステップ６＿８で実行されるオルガンボイスのアサインルーチンのフローチャートである。
ステップ７＿１では、図６に示すオルガンの押鍵ルーチンの、ステップ６＿８に至るまでの間に求められたホイール番号Ｗに対応するホイール参照カウンタ［Ｗ］が−１であるか否かが判定される。ホイール参照カウンタ［Ｗ］＝−１であるということは、シンセ音の発音のためにボイスを貸し出していて、そのホイール番号Ｗのホイール（ホイールＷ）の周期信号を生成しているボイスが存在していないことを意味している。
【００４８】
この場合、すなわちホイール参照カウンタ［Ｗ］＝−１の場合は、ステップ７＿２に進み、ホイール参照カウンタ［Ｗ］に１がセットされる。ここではシンセ音の発音よりもオルガン音の発生を優先させており、したがって対応するボイスが存在していなかったときであっても以下に説明するようにして必ずボイスを確保するため、ステップ７＿２ではそのホイール参照カウンタ［Ｗ］に、対応するボイスを１つのオルガン音のために使用していることを示す１をセットするものである。ただし、このステップ７＿２の段階では対応する周期信号を生成しているボイスは存在していない。以下に説明するステップでこの対応するボイスが定められる。
ステップ７＿３ではアイドル数＞０か否かが判定される。アイドル数は、オルガン音の発音には現在使用されていないが、将来のオルガン音のためのアイドル状態にあるボイスの数をあらわしている。アイドル数＞０のときは、ステップ７＿４に進み、アイドル数をデクリメントし、さらにステップ７＿５に進んでホイール参照カウンタの値が０のホイールを見つけその番号を変数ｔｍｐ＿Ｗにセットする。すなわち、例えばｔｍｐ＿Ｗを０から順にインクリメントしていきながら、ホイール参照カウンタ［ｔｍｐ＿Ｗ］＝０のホイール参照カウンタを見つける。ステップ７＿６では、その見つけたホイール参照カウンタ［ｔｍｐ＿Ｗ］に−１をセットすることより、ホイール参照カウンタ［ｔｍｐ＿Ｗ］に対応するボイスがそのホイールに対応する周期信号を生成していないこととし、さらに、ホイールボイス［ｔｍｐ＿Ｗ］を読み出して変数Ｖにセットし（ステップ７＿７）、ボイスＶのＷＧにホイールＷの周期信号を発生させ、ＴＶＦのカットオフ周波数を最大値とするとともにＴＶＡの増幅率を０とすることによりボイスＶをホイールＷの音高でアイドル状態とし（ステップ７＿８）、ボイスＶの音量を、ｄｒｂ番目のドローバーの引き量に応じて上昇させる（ステップ７＿９）。
【００４９】
また、ステップ７＿３において、アイドル数＞０ではない、すなわち現在アイドル状態にあるボイスが存在しない旨判定されると、ステップ７＿１０に進み、ヒストリーリンクからボイスを１つ取得してそのボイス番号がＶに代入される。ここでヒストリーリンクは、シンセ音を発音している最中のボイスのボイス番号を、時間的に早く発音を開始したボイスから順に連結したデータ構造であり、ステップ７＿１０では、そのヒストリーリンクに並ぶボイス番号のうちの先頭に並ぶボイス番号、すなわち最も古い時刻に発音を開始したボイスのボイス番号がそのヒストリーリンクから外され、そのボイス番号が変数Ｖに代入される。
【００５０】
ステップ７＿１１ではそのボイスＶで発音中のシンセ音がトランケート（消音処理）され、ステップ７＿１２ではオルガン音からシンセ音への貸出し数がデクリメントされ、ステップ７＿８ではこのようにしてシンセ音をトランケートすることにより確保したボイスＶをホイールＷの音高でアイドルさせ、ステップ７＿９では、ｄｒｂ番目のドローバーの引き量に応じてそのボイスＶの音量が上げられる。
【００５１】
ステップ７＿１でホイール参照カウンタ［Ｗ］が−１ではないと判定されると、ステップ７＿１３に進み、今度はそのホイール参照カウンタ［Ｗ］が０であるか否かが判定される。ホイール参照カウンタ［Ｗ］＝０であるということは、ホイールＷの音高でアイドル状態にあるボイスが存在していることを意味し、この場合はステップ７＿１４に進んでアイドル数がデクリメントされ、さらにステップ７＿１５に進んでホイール参照カウンタ［Ｗ］がインクリメントされる。ステップ７＿１４を経由してステップ７＿１５に進んだときは、ステップ７＿１５でホイール参照カウンタ［Ｗ］がインクリメントされた結果、ホイール参照カウンタ［Ｗ］＝１となり、これは、前述したように、ホイールＷの音高の周期信号を生成しているボイスＶを１つのオルガン音で使用中であることを意味する。ステップ７＿１６では、ホイールボイス［Ｗ］の値を読み出し変数Ｖにセットし、ステップ７＿９に進んでそのボイスＶの音量が、ｄｒｂ番目のドローバーの引き量に応じて上げられる。
【００５２】
ステップ７＿１３においてホイール参照カウンタ［Ｗ］が０ではないと判定された場合、すなわちステップ７＿１での判定も総合して、ホイール参照カウンタ［Ｗ］＞０であると判定されると、ホイールＷの音高の周期信号は別のオルガン音で既に使用中であって既にアイドル状態ではないためステップ１４は経由せずに直接にステップ７＿１５に進む。以降の処理はステップ７＿１４を経由した場合と同じであり、重複説明は省略する。
【００５３】
このようにして押鍵に対応するオルガン音が生成されて出力される。
図８は、オルガン音の消音指示を受けて実行されるオルガンの離鍵ルーチンのフローチャートである。前述したように、本実施形態では鍵盤１４の押鍵によりオルガン音が生成され、それに対応して押鍵中の鍵が離鍵されるとオルガン音の消音指示が発生し、図８に示すオルガン音の離鍵ルーチンが実行される。
【００５４】
図８に示すオルガンの離鍵ルーチンのステップ８＿８を除く他の全てのステップ８＿１〜８＿７，８＿９，８＿１０は、それぞれ、図６に示すオルガンの押鍵ルーチンの、ステップ６＿８を除く他の全てのステップ６＿１〜６＿７，６＿９，６＿１０とそれぞれ同一である。すなわちオルガンの押鍵ルーチン（図６）では、図６に示す各ステップを経由してオルガンボイスのアサインルーチンが実行されるが、図８に示すオルガンの離鍵ルーチンでは、同一のステップを経由してオルガンボイスの解放ルーチンが実行される。図８に示すオルガンの離鍵ルーチンについてのこれ以上の詳細発明は、図６に示すオルガンの押鍵ルーチンの説明と重複することとなるため省略する。
【００５５】
図９は、図８に示すオルガンの離鍵ルーチンのステップ８＿８で実行されるオルガンボイスの解放ルーチンのフローチャートである。
ステップ９＿１では、ホイール参照カウンタ［Ｗ］がデクリメントされる。すなわちホイールＷの音高の周期信号を用いて発音しているオルガン音の数をデクリメントする。
【００５６】
ステップ９＿２では、ステップ９＿１でホイール参照カウンタ［Ｗ］をデクリメントした結果、ホイール参照カウンタ［Ｗ］が０になったか否かが判定される。ホイール参照カウンタ［Ｗ］が０ではないとき、すなわち、ここではホイール参照カウンタ［Ｗ］＝−１はあり得ないためホイール参照カウンタ［Ｗ］＞０のとき、換言すれば、ホイールＷの音高の周期信号を用いて発音している途中のオルガン音が他にも存在しているときは、ステップ９＿４に進み、ホイールボイス［Ｗ］が読み出されて変数Ｖにセットされ、ステップ９＿５においてボイスＶの音量が、ｄｒｂ番目のドローバーの引き量に対応した量だけ下げられる。
【００５７】
ステップ９＿１でホイール参照カウンタ［Ｗ］がデクリメントされた結果、ステップ９＿２においてホイール参照カウンタ［Ｗ］＝０であると判定されると、ステップ９＿３に進み、アイドル数がインクリメントされ、以下同様に、ステップ９＿４，９＿５と進む。ここで、ホイール参照カウンタ［Ｗ］＝０のときは、そのホイールＷの音高の周期信号を使って発音している最中のオルガン音は他には存在していないことを意味し、したがってステップ９＿５ではボイスＶの音量が０にまで下げられボイスＶがアイドル状態となる。
【００５８】
図１０は、シンセボイスの押鍵ルーチンのフローチャートである。本実施形態では、シンセ音に関する押鍵、離鍵に関しては、ＲＯＭ１２ないしＲＡＭ１３内に演奏データとしてあらかじめ格納されており、タイムスケジュールに従ってその演奏データが順次読み出され、その読み出された演奏データが押鍵に対応する演奏データであった場合に図１０に示すシンセボイスの押鍵ルーチンが実行され、その読み出された演奏データが離鍵に対応する演奏データであった場合には、後述する、図１１に示すシンセボイスの離鍵ルーチンが実行される。
【００５９】
図１０に示すシンセボイスの押鍵ルーチンの実行が開始されると、先ずステップ１０＿１において、フリーボイスリンクにボイス番号が接続されたボイスが存在するか否かが判定される。フリーボイスリンクは、前述したように、オルガン音の発音にもシンセ音の発音にも現在使用されておらず、かつオルガン音のためのアイドル状態にもない、空きのボイスのボイス番号が並んだリンクである。
【００６０】
フリーボイスリンクにボイス番号が接続されていたときは、ステップ１０＿２に進み、フリーボイスリンクからボイス番号を１つ取り外し、そのボイス番号を変数Ｖに代入する。
その後、ステップ１０＿３に進み、変数（ボイス番号）Ｖがヒストリーリンクの最後尾（最新に発音が開始されたことをあらわす）に追加され、さらにステップ１０＿４に進み、今回読み出された、押鍵に相当する演奏データに対応するシンセ音がそのボイスＶで発音される。ステップ１０＿４におけるシンセ音の発音にあたっては、ボイスＶのＷＧ（図４参照）で生成する波形を選択するためのパラメータ、ＷＧでのピッチ変換のためのパラメータ、ＴＶＦのカットオフ周波数の初期値をあらわすパラメータ、ＴＶＡの増幅率の初期値をあらわすパラメータ等、種々のパラメータがそのボイスＶにセットされ、その後そのボイスＶに対し発音指示がなされ、このようにしてボイスＶでシンセ音の発音が開始される。ボイスＶでシンセ音の発音が開始された後は、後述するように（図１２参照）、所定周期（例えば１０ｍｓｅｃごと）にＴＶＦのカットオフ周波数やＴＶＡの増幅率等のパラメータの更新が行なわれる。このパラメータの更新処理はボイスサービスと呼ばれる。シンセ音の発音開始のための処理やボイスサービスは従来公知であり、かつ、本発明の主題ではないため、それらについてのこれ以上の詳細説明は省略する。
【００６１】
ステップ１０＿１においてフリーボイスリンクに接続されたボイス番号が存在しない旨判定されると、ステップ１０＿５に進む。ステップ１０＿５では、アイドル数が０か否か、すなわちオルガン音の実際の発音には現在は寄与していないがアイドル状態にあるボイスが存在しているか否かが判定される。
アイドル数が０ではない、すなわちアイドル状態にあるボイスが存在していると判定されると、ステップ１０＿６に進み、アイドル数がデクリメントされ、さらにステップ１０＿７に進み、ホイール参照カウンタ［Ｗ］＝０である（すなわちアイドル状態にあるボイスに対応する）ホイール番号Ｗを見つけ、そのホイール参照カウンタ［Ｗ］に、シンセ音への貸出しをあらわす−１がセットされ（ステップ１０＿８）、貸出し数がインクリメントされ（ステップ１０＿９）、ホイールボイス［Ｗ］が読み出されて変数（ボイス番号）Ｖに代入される（ステップ１０＿１０）。以下は、上記と同様、ステップ１０＿３に進み変数（ボイス番号）Ｖがヒストリーリンクの最後尾に追加され、ステップ１０＿４に進んで、そのボイスＶでのシンセ音の発音が開始される。
【００６２】
ステップ１０＿５で、アイドル数が０、すなわちオルガン音発音のためのアイドル状態にあるボイスが存在していない旨判定されると、ステップ１０＿１１に進み、ヒストリーリンクの最前列に並ぶボイス番号（現在シンセ音の発音を行なっているボイスのうちの、最も古い時刻にシンセ音の発音を開始したボイスのボイス番号）がそのヒストリーリンクから取り外されてそのボイス番号が変数Ｖに代入される。ステップ１０＿１２では、そのボイスＶで発音中のシンセ音がトランケートされ、ステップ１０＿３では、そのボイスＶで新たなシンセ音の発音を開始すべく、その変数（ボイス番号）Ｖを再度ヒストリーリンクに、但し今度は最後尾に追加し、ステップ１０＿４に進みボイスＶで新たなシンセ音の発音が開始される。
【００６３】
前述したオルガン音の場合は、空いているボイスやアイドル状態にあるボイスが存在しなかったときはシンセ音をトランケートしてでもオルガン音のためのボイスを確保したが、シンセ音の場合は、図１０のように、空いているボイスやアイドル状態にあるボイスが存在しなかったときは、オルガン音には手をつけずに、発音開始時刻の古いシンセ音をトランケートして新たなシンセ音を発音させる。このように、ここでは、オルガン音の発音をシンセ音の発音よりも優先させた構成になっている。
【００６４】
図１１は、シンセボイスの離鍵ルーチンのフローチャートである。前述したように、このシンセボイスの離鍵ルーチンは、離鍵に対応した演奏データが読み出された際に実行される。
図１１に示すシンセボイスの離鍵ルーチンでは、離鍵された鍵がその離鍵よりも前のタイミングで押鍵されたことにより発音を開始したボイスでの発音中の楽音が、リリース状態の楽音に変更される。シンセ音の場合、例えばピアノの鍵を押鍵して直ちに離鍵しても暫らくの間楽音が接続しているように離鍵後も楽音が持続する場合がある。この離鍵後の楽音の発音状態をリリース状態と称する。リリース状態に移行すると、その発音中の楽音の性質に応じ、その後速やかに、あるいはしばらく時間をかけてゆっくりと、消音状態に向かう。
【００６５】
図１２は、タイマルーチンのフローチャートである。このタイマルーチンは、例えば１０ｍｓｅｃ間隔等、短かい時間間隔で発生するタイマ割込みに応じてその都度実行される。
このタイマルーチンが起動されると、先ず変数Ｖが初期値０とされ（ステップ１２＿１）、ボイスＶで現在シンセ音が発音されているか否かが判定される（ステップ１２＿２）。ボイスＶで現在シンセ音が発音されていないときは、直接にステップ１２＿６に進み、Ｖ＞１２６か否か、すなわちすべてのボイスについての処理が終了したか否かが判定され、未処理のボイスが存在するときはステップ１２＿７に進んで変数（ボイス番号）Ｖがインクリメントされてステップ１２＿２に戻る。
【００６６】
ステップ１２＿２においてボイスＶで現在シンセ音が発音中であると判定されると、ステップ１２＿３に進み、そのボイスＶについて、前述したボイスサービス（ＴＶＦ、ＴＶＡ（図４参照）等のパラメータの更新処理）が行なわれる。
次いでステップ１２＿４において、そのボイスＶのレベルが０か否か、すなわち、過去において、ボイスＶで発音中のシンセ音が、対応する離鍵によりリリース状態に移行し、さらにその後も１０ｍｓｅｃ毎にステップ１２＿３でＴＶＡでの増幅率が徐々に下げられ、今回このタイマルーチンが実行された時点でそのボイスＶで発音していたシンセ音のレベルが０（消音状態）に達したか否かが判定される。レベルが未だ０に達していないとき、すなわちまだ発音中のときは、ステップ１２＿６に進む。
【００６７】
これに対しレベルが０になったときは、ステップ１２＿５に進み、ボイスＶをシンセ音の発音から解放するシンセボイス解放ルーチンが実行され、その後ステップ１２＿６に進む。
以上の処理がボイス番号０〜１２７の全てのボイスに対して行なわれる（ステップ１２＿６，１２＿７）。
【００６８】
図１３は、図１２に示すタイマルーチンのステップ１２＿５で実行されるシンセボイスの解放ルーチンのフローチャートである。
ステップ１３＿１では、ヒストリーリンクからボイス番号Ｖが削除される。ここでは、ヒストリーリンクのどの位置に並んだボイス番号であっても削除の対象となり得る。
【００６９】
ステップ１３＿２では、オルガン音からシンセ音への貸出し数が０か否かが判定される。貸出し数＝０のときはステップ１３＿３に進み、ボイスＶが、空き状態にあるボイスのリンクであるフリーボイスリンクに挿入される。
ステップ１３＿２において貸出し数が０ではないと判定されたときは、ステップ１３＿４以降において、今回シンセ音のレベルが０になったボイスＶをオルガン音のためにアイドル状態に移行させる処理が行なわれる。
【００７０】
すなわち、ステップ１３＿４において貸出し数がデクリメントされ、ステップ１３＿５では、ホイール参照カウンタ［Ｗ］＝−１のホイール番号Ｗが検索され、ステップ１３＿６ではアイドル数がインクリメントされ、ステップ１３＿７では、ホイールボイス［Ｗ］に変数（ボイス番号）Ｖがセットされ、ステップ１３＿８では、ホイール参照カウンタ［Ｗ］に０がセットされ、ボイスＶがホイールＷの音高の周期信号でアイドル状態にされる。
【００７１】
ここで、上記実施形態では、シンセ音はシンセ音として抽象的に表現したが、このシンセ音は、鍵盤１４を弾くことにより発音される、トーンホイールオルガンを演奏している演奏者と協奏している他の楽器の楽音であってもよく、シンセ音の押鍵処理、離鍵処理についてもオルガン音と同様に鍵盤１４の押鍵、離鍵に応じて実行し、シンセ音により、鍵盤１４を弾いてトーンホイールオルガンを演奏しているときの、押鍵、離鍵に伴うオルガン音のノイズ音を模擬してもよく、シンセ音の使い方は、従来のシンセサイザと同様、どのようであってもよい。
【００７２】
また上記実施形態では、オルガン音は鍵盤で弾く例を示したが、オルガン音の方を演奏データとして持っておいて、鍵盤はシンセ音の方の押鍵、離鍵に用いてもよく、あるいはオルガン音とシンセ音との双方を演奏データとして持っていてもよい。その場合、鍵盤は必ずしも必要ではない。
また、オルガン音あるいはシンセ音の発音指示、発音停止指示を鍵盤の操作あるいは電子楽器内部に記憶されている演奏データに応じて行なう他に、電子楽器外部からＭＩＤＩなどの通信手段を介して供給される演奏データに応じて行なうようにしてもよい。
【００７３】
また上記実施形態では、オルガン音の各倍音のレベルをドローバーの引出し量に応じて連続的にあるいは３以上の複数段階に設定する例を示したが、各倍音のレベルを２段階で設定してもよい。すなわちオン／オフ・スイッチの操作に応じて各倍音の状態を発音あるいは非発音のいずれかに選択する形態としてもよい。また、各倍音のレベルを操作子の操作に応じて設定する他に、電子楽器内部に記憶されているパラメータ値あるいは電子楽器外部からＭＩＤＩなどの通信手段を介して供給されるパラメータ値に応じて設定してもよい。
【００７４】
また上記実施形態では、オルガン音の発音指示、発音停止指示に応じて行なわれるオルガン音を発音するボイスの音量の上昇、下降の際の音量の変化量に関して詳細な説明を行なわなかった。これを、発音指示、発音停止指示が行なわれた際のその発音指示、発音停止指示に関わるドローバーの引き出し量の分だけ音量を変化させてもよいが、このようにすると１つのボイスに関わる押鍵の数に比例してそのボイスの音量が決定されるため不自然に音量が増大して感じられることがある。このような場合には１つのボイスの発音に関わる押鍵の数に依存してそのボイスの音量の変化量を決定するとよい。例えば、第１の発音指示に応じてアイドル状態にあるボイスの音量を上昇させる場合にはドローバーの引き出し量だけ音量を上昇させ、第２の発音指示に応じてそのボイスの音量をさらに上昇させる場合にはドローバーの引き出し量の１／２だけ音量を上昇させ、さらに第３の発音指示に応じてそのボイスの音量をさらに上昇させる場合にはドローバーの引き出し量の１／４だけ音量を上昇させる。発音停止指示に応じてはこの逆にドローバーの引き出し量の１／４、１／２、１づつ音量を下降させる。あるいは前述の第２の発音指示以後の発音指示に関しては、発音指示があってもボイスの音量を変化させないようにしてもよい。この場合にも全てのドローバーに対応するボイスの音量が変化しないことは稀であり大部分の場合にはいずれかのドローバーに対応するボイスはアイドル状態から新たに発音することになるので、演奏者は発音指示に応じて新たな楽音が発音されたと感じることができる。
【００７５】
また上記実施形態では、オルガン音に加えてシンセ音を生成させるためにホイールの数（９１個）以上のボイス（１２８個）を設けるようにしたが、オルガン音のみを生成する場合には模擬しようとするホイールオルガンのホイールの数よりも少ない数のボイスしかなくても相当数のボイスがあれば不都合はおきない。すなわち、手の指の数は１０本であるが通常の演奏においてはこれよりも少数の押鍵しか同時にはなされない。したがって９本のドローバーを備えるとしても同時に生成が指定される倍音の数はせいぜい９０程度である。本発明においては１つのボイスが複数の発音指示で共用されることから複数の倍音が同じボイスで生成されることとなり、必要とされるボイスの数は生成しようとする倍音の数よりも少なくて済む。前記の相当数として模擬しようとするホイールオルガンのホイールの数のおよそ２／３程度の数のボイスがあれば充分である。
【００７６】
また上記実施形態では、トーンホイールオルガンの音色を模擬するようにしたが、パイプオルガンなどトーンホイールオルガン以外の楽器の音色を模擬するものにも適用できるものである。パイプオルガンの音色を模擬する場合には各ボイスで各パイプに対応する波形を生成する。さらに本発明これに限らず、特定の楽器の音色を模擬しない場合にも適用できる。すなわち本発明は、１つの発音指示に応じて複数の異なる音高の楽音を生成するものであって１つのボイスを複数の発音指示で共用する場合に適用でき、いわゆる正弦波合成方式にも適用できる。
【００７７】
また上記実施形態では、シンセ音は１つの発音指示に応じて１つのボイスのみを使用して楽音を生成したが、１つの発音指示に応じて複数のボイスを使用して楽音を生成するようにしてもよい。
【００７８】
【発明の効果】
以上説明したように、本発明の電子楽器によれば、トーンホイールオルガンを極めて良好に模擬することができる。
【図面の簡単な説明】
【図１】本発明の電子楽器の原理説明図である。
【図２】本発明の一実施形態の電子楽器のハードウェア構成を示すブロック図である。
【図３】鍵盤およびパネルスイッチの一部を示すパネル図である。
【図４】楽音発生部の概念的な構成図である。
【図５】初期化ルーチンのフローチャートである。
【図６】オルガン音発生のための発音指示を受けて実行されるオルガンの押鍵ルーチンのフローチャートである。
【図７】オルガンボイスのアサインルーチンのフローチャートである。
【図８】オルガン音の消音指示を受けて実行されるオルガンの離鍵ルーチンのフローチャートである。
【図９】オルガンボイスの解放ルーチンのフローチャートである。
【図１０】シンセボイスの押鍵ルーチンのフローチャートである。
【図１１】シンセボイスの離鍵ルーチンのフローチャートである。
【図１２】タイマルーチンのフローチャートである。
【図１３】シンセボイスの解放ルーチンのフローチャートである。
【符号の説明】
１＿１，１＿２，…，１＿ｎ    ボイス
２＿１，２＿２，…，２＿ｍ    構成音音高指定手段
３  単位音割当手段
４  単位音決定手段
５  楽音生成手段
６  第２の楽音生成手段
１０  電子楽器
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  鍵盤
１５  パネルスイッチ
１６  楽音発生部
１７  バス
２０  サウンドシステム
１４１  白鍵
１４２  黒鍵
１５１  ドローバー
１５２  音色スイッチ
１５３  シンセ音色選択ＬＥＤ
【図１】
0003732606.tif 000002
【図２】
0003732606.tif 000003
【図３】
0003732606.tif 000004
【図４】
0003732606.tif 000005
【図５】
0003732606.tif 000006
【図６】
0003732606.tif 000007
【図７】
0003732606.tif 000008
【図８】
0003732606.tif 000009
【図９】
0003732606.tif 000010
【図１０】
0003732606.tif 000011
【図１１】
0003732606.tif 000012
【図１２】
0003732606.tif 000013
【図１３】
0003732606.tif 000014