(57)【特許請求の範囲】
【請求項１】
所定のサンプリング周波数Ｆｓにてサンプリングされた基本波形データを記憶する波形記憶手段と、
発音すべき楽音に含まれる基本波及び複数の高調波夫々の振幅を表わす複数の振幅係数を記憶する振幅係数記憶手段と、
発音すべき楽音の周波数を指定する周波数指定手段と、
複数種の周波数領域夫々に第１及び第２のモードのいずれかが割り当てられ、前記周波数指定手段にて指定された周波数が属する周波数領域に割り当てられたモードを指定するモード指定手段と、
このモード指定手段により第１のモードが指定されているときには、周波数指定手段による周波数の指定に応答して、前記振幅係数記憶手段に記憶された振幅係数全てを送出し、前記第２のモードが指定されているときは、当該指定された周波数を前記楽音の基本波の周波数とした場合の各高調波の周波数を算出するとともに、これら算出された周波数がＦｓ／２を超えない高調波の高調波係数のみを送出する係数送出手段と、
前記周波数指定手段にて指定された周波数及び係数送出手段により送出された振幅係数を受信する受信手段と、
前記受信された周波数を前記発生すべき楽音の基本波の周波数として前記各高調波の周波数を生成する周波数生成手段と、
前記受信された周波数に対応する読み出しアドレス間隔で前記波形記憶手段から基本波形データを一定時間間隔毎に読み出すとともに、前記周波数生成手段にて生成された高調波の周波数のうち前記受信された振幅係数に対応する高調波の周波数夫々に対応する読み出しアドレス間隔で前記波形記憶手段から基本波形データを一定時間間隔毎にごとに順次読み出す波形読み出し手段と、
この波形読み出し手段にて読み出された基本波形データ夫々に対応する振幅係数を乗算して合成し、当該合成された基本波形データを楽音信号として出力する合成手段と、
を有することを特徴とする楽音発生装置。
【請求項２】
前記楽音発生装置はさらに、前記複数種の周波数領域夫々に前記第１及び第２のモードのいずれかを任意に割り当てるモード割り当て手段を有することを特徴とする請求項１記載の楽音発生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音を電気的に発生させて出力する装置に関し、特に、デジタル信号として楽音を発生させて出力することに併せ、その楽音についての折り返しひずみに相当するスペクトルをも敢えて出力する装置に関する。
【０００２】
【従来の技術】
シンセサイザで用いられている楽音を電気的に発生させる方法のひとつに、加算合成法の一種である正弦波合成方式（あるいは、倍音合成方式）と呼ばれる方式がある。
【０００３】
任意の楽音は、その楽音のピッチを決める基本波とその音の音色を決める高調波群との和として表せることは、楽音の時間波形をフーリエ変換して得られる周波数スペクトルを考えれば、周知の事実である。また、逆に、基本波とその高調波とを加算することにより、任意の時間波形の楽音を合成できることも、逆フーリエ変換としてよく知られている。
【０００４】
正弦波合成方式は、この逆フーリエ変換を基にして提案された方式であり、基音となる周波数の正弦波を発生させると共に、その基音に対する倍音である、基音となる周波数の整数倍の周波数の正弦波を高調波として発生させ、任意の割合で加算して合成することにより、楽音を発生させる方式である。実際には発生させる正弦波の数に制限があるため、厳密には任意の楽音を発生させることはできないが、それでも実に多種の音色の楽音を発生させることが可能である。
【０００５】
この方式において、楽音合成に用いる高調波としての正弦波は、より高次のものまで合成に用いる方が、出力する楽音の音色に微妙な違いを与えることができるので、望ましい。しかしながら、正弦波合成方式をデジタル領域において実施する場合、すなわち、正弦波を標本化操作により時間軸上で離散化されているデジタル信号として発生させる場合、このデジタル信号の離散周期Ｔｓと楽音合成に用いる最高次の高調波の周波数ｆｎとの間に考慮すべき関係が存在する。
【０００６】
今、デジタル信号のサンプリング周波数をＦｓ（＝１／Ｔｓ）とし、楽音合成に用いる各正弦波の周波数が全て０〜ｆｎの範囲に存在するとき、
０＜ｆｎ＜Ｆｓ／２…………………………………▲１▼
の成立する範囲内で、最高次の高調波である正弦波、並びにその他の各正弦波を発生させて合成を行なうのであれば、後にデジタル信号をアナログ変換し、変換したアナログ信号の周波数帯域をＦｓ／２以下に制限することによって、所望の楽音のアナログ信号が得られることは、標本化（サンプリング）定理により保証されている。
【０００７】
一方、▲１▼式が成立しない場合、例えば、合成に用いる最高次の高調波の周波数ｆｎのみがＦｓ／２よりも高い周波数を発生させた場合には、その高調波の代わりに（Ｆｓ−ｆｎ）なる周波数のスペクトルがＦｓ／２以下の周波数帯域に現われる。このスペクトルの周波数が可聴周波数（ほぼ２０ｋＨｚ以下）に発生すると、独特のひずみ音を含んだ楽音が合成出力として得られることとなる。
【０００８】
この現象は、Ｆｓ／２以上の周波数スペクトルを有する時間波形の標本化周波数Ｆｓによる標本化が、時間波形をすべてＦｓ／２以下の周波数スペクトルとみなして標本化してしまうために生じる現象であり、折り返し（エイリアス）現象と呼ばれている。また、この折り返し現象によって本来使用する帯域内に現れるスペクトルは、折り返しひずみ（あるいは折り返しノイズ）と呼ばれている。
【０００９】
折り返しひずみは一般的には余り好まれないので、従来行われていた正弦波合成方式による楽音の発生においては、最高次の高調波である正弦波、並びにその他の各正弦波を▲１▼式の成立する範囲内で発生させて合成を行なうようにして、折り返しひずみの成分を含まない楽音を発生させるようにしていた。
【００１０】
【発明が解決しようとする課題】
楽器や音楽ジャンルによってはひずみがむしろ求められる場合もある。例えば、主にエレクトリック・ギターで用いられるエフェクタのひとつであるディストーションは、文字通り、信号波形に対するひずみを故意に発生させることによって効果を得るものである。また、例えば、シンセサイザの人工的な音色の楽音とシーケンサによる正確無比な自動演奏に基づく無機質なシーケンス・フレーズとで構成される、いわゆるテクノポップ系のジャンルの楽曲では、「未来的」な曲のイメージを表現するために、人工的な印象を強調させる音作りが求められ、もとの音と倍音関係にないひずみを故意に発生させることが望まれる場合もある。
【００１１】
以上のような事情を鑑み、一種のエフェクトとして、折り返しひずみを積極的に持たせた楽音を出力することのできる楽音発生装置を提供することが本発明が解決しようとする課題である。
【００１２】
【課題を解決するための手段】
本願発明は、所定のサンプリング周波数Ｆｓにてサンプリングされた基本波形データを記憶する波形記憶手段と、発音すべき楽音に含まれる基本波及び複数の高調波夫々の振幅を表わす複数の振幅係数を記憶する振幅係数記憶手段と、発音すべき楽音の周波数を指定する周波数指定手段と、複数種の周波数領域夫々に第１及び第２のモードのいずれかが割り当てられ、前記周波数指定手段にて指定された周波数が属する周波数領域に割り当てられたモードを指定するモード指定手段と、このモード指定手段により第１のモードが指定されているときには、周波数指定手段による周波数の指定に応答して、前記振幅係数記憶手段に記憶された振幅係数全てを送出し、前記第２のモードが指定されているときは、当該指定された周波数を前記楽音の基本波の周波数とした場合の各高調波の周波数を算出するとともに、これら算出された周波数がＦｓ／２を超えない高調波の高調波係数のみを送出する係数送出手段と、前記周波数指定手段にて指定された周波数及び係数送出手段により送出された振幅係数を受信する受信手段と、前記受信された周波数を前記発生すべき楽音の基本波の周波数として前記各高調波の周波数を生成する周波数生成手段と、前記受信された周波数に対応する読み出しアドレス間隔で前記波形記憶手段から基本波形データを一定時間間隔毎に読み出すとともに、前記周波数生成手段にて生成された高調波の周波数のうち前記受信された振幅係数に対応する高調波の周波数夫々に対応する読み出しアドレス間隔で前記波形記憶手段から基本波形データを一定時間間隔毎に順次読み出す波形読み出し手段と、この波形読み出し手段にて読み出された基本波形データ夫々に対応する振幅係数を乗算して合成し、当該合成された基本波形データを楽音信号として出力する合成手段と、を有することを特徴とする。
図１は、本発明の原理構成を示すブロック図であり、複数の正弦波データ出力手段（１ａ、１ｂ、…）、周波数設定手段２、加算手段３、折り返しひずみ許可手段４、より構成される。
【００１３】
複数の正弦波データ出力手段（１ａ、１ｂ、…）は、正弦波を示すデジタルデータを各々出力するものであり、例えば、正弦波を示すデジタルデータが予め格納記憶されているメモリからデータを読み出して出力する構成や、正弦波を示すデジタルデータを順次算出して出力する構成などにより実現される。
【００１４】
周波数設定手段２は、複数の正弦波データ出力手段（１ａ、１ｂ、…）に、その最低の周波数に対して各々整数倍の関係を有する周波数についての情報を各々設定するものである。なお、ここでいう「その最低の周波数」とは、発生させる楽音の基音の周波数に相当するものであり、「各々整数倍の関係を有する周波数」とは、基音の周波数と各々整数倍の関係を有する周波数、すなわち、基音に対する倍音である各高調波の周波数に相当するものである。つまり、周波数設定手段２は、複数の正弦波データ出力手段（１ａ、１ｂ、…）に、発生させる楽音についての基音及び倍音に相当する周波数についての情報を各々設定するものである。
【００１５】
加算手段３は、複数の正弦波データ出力手段（１ａ、１ｂ、…）により出力されたデジタルデータをデジタル領域で加算するものであり、例えば、一般的なデジタル加算回路でよい。
【００１６】
折り返しひずみ許可手段４は、周波数設定手段２による正弦波データ出力手段（１ａ、１ｂ、…）への周波数についての情報の設定により、正弦波データ出力手段（１ａ、１ｂ、…）が、設定情報の示す周波数の正弦波のデジタルデータについての折り返しひずみであって、可聴周波数である正弦波を示す折り返しひずみデジタルデータを出力する場合に、折り返しひずみデジタルデータの出力を許可するか否かを正弦波データ出力手段（１ａ、１ｂ、…）に設定するものであり、本発明に特に関係するものである。
【００１７】
周波数設定手段２の設定する情報の示す周波数と、正弦波データ出力手段（１ａ、１ｂ、…）の出力するデジタルデータの標本化（サンプリング）周波数と、の関係により、正弦波データ出力手段（１ａ、１ｂ、…）の出力する設定情報に基づく正弦波のデジタルデータについて、そのデータの折り返しひずみである正弦波の周波数が可聴周波数になる場合がある。折り返しひずみ許可手段４は、この場合におけるデジタルデータの出力を許可するか否かを正弦波データ出力手段（１ａ、１ｂ、…）に設定するものである。折り返しひずみ許可手段４が正弦波データ出力手段（１ａ、１ｂ、…）に許可の設定を行なうことにより、折り返しひずみを含んだ楽音のデジタルデータが、加算手段３の加算結果として出力５より出力できるようになる。
【００１８】
ここで、「可聴周波数」とは、正常な聴力をもつ人が聞くことのできる音の周波数を意味し、ほぼ２０ＫＨｚ以下の周波数である。
なお、折り返しひずみ許可手段４は、周波数設定手段２により設定される情報で示される周波数の中で最低の周波数に対応させて、折り返しひずみデジタルデータの出力許可を設定するようにしても良い。ここでいう「最低の周波数」とは、前述したように、発生させる楽音の基音の周波数に相当するものであり、つまり、折り返しひずみ許可手段４による折り返しひずみデジタルデータの出力許可の設定は、発生させる楽音の基音の周波数に対応させて設定するようにしても良いということである。こうすることにより、折り返しひずみを発生させたり、また、発生させなかったりすることを発生させる楽音の基音の周波数に応じて行なわせることが可能となり、楽曲演奏の際に、発音する楽音の音高の違いによって折り返しひずみの有無が変化する特殊なエフェクトを与えることができる。
【００１９】
また、特に、折り返しひずみ許可手段４は、周波数設定手段２により設定される情報で示される周波数の中で最低の周波数が含まれる周波数帯に対応させて、折り返しひずみデジタルデータの出力許可を設定する、すなわち、折り返しひずみ許可手段４による折り返しひずみデジタルデータの出力許可の設定は、発生させる楽音の基音の周波数が含まれる周波数帯に対応させて設定するようにしても良い。こうすることにより、楽曲演奏の際に、発音する楽音の音高の含まれる音域の違いによって折り返しひずみの有無が変化するエフェクトを与えることができる。
【００２０】
また、図１に示す構成において、複数の正弦波データ出力手段（１ａ、１ｂ、…）に、正弦波データ出力手段（１ａ、１ｂ、…）の出力するデジタルデータで示される正弦波の振幅レベルを各々設定するレベル設定手段を更に有するようにしてもよい。正弦波データ出力手段（１ａ、１ｂ、…）では、正弦波データ出力手段（１ａ、１ｂ、…）がデジタルデータを出力する際に、レベル設定手段による設定に基づく係数をそのデジタルデータに乗ずることで、正弦波の振幅レベルを変更することができる。従って、レベル設定手段を用いることにより、発生させる楽音の音色の設定が行なえる上に、発生させる楽音に折り返しひずみの含ませるように設定した場合には、その含有比率の設定をも行なうことができるようになる。
【００２１】
ここで、レベル設定手段４は、本発明に係る装置を操作する操作者により、周波数設定手段２により設定される情報で示される周波数に応じて入力される設定入力に基いて振幅レベルを設定する、すなわち、操作者が、発生させる楽音についての基音及び倍音に相当する周波数に応じて入力する設定入力に基づいて振幅レベルを設定するようにすれば、発生させる楽音の音色を操作者が自由に設定することができる上に、発生させる楽音に折り返しひずみの含ませるように設定した場合には、その含有比率をも操作者が自由に設定することができるようになる。
【００２２】
また、この場合において、レベル設定手段４は、前述の設定入力に基いた補間により得られる値を振幅レベルとして設定するようにすれば、操作者が、発生させる楽音の一部についてのみ、音色や折り返しひずみの含有比率の設定を行なうだけで、本発明に係る装置の発生し得る全ての楽音についての前述した設定の概略を済ませることができるようになり、便利である。
【００２３】
【発明の実施の形態】
図２は、本発明を実施する楽音発生装置の構成を示す図である。
同図において、ＣＰＵ１１、ＲＯＭ１２、ワークＲＡＭ１３、波形合成情報ＲＡＭ１４、鍵盤１５、ＳＷ群１６、表示部１７、音源１８は、バス２０を介してそれぞれ相互に接続されている。また、発音回路１９は、音源回路１８に直接接続されている。
【００２４】
ＣＰＵ１１は、ＲＯＭ１２に記憶された制御プログラムに従って、ワークＲＡＭ１３をワークエリアとして使用しながら、この楽音発生装置全体の動作を制御する中央演算処理装置である。
【００２５】
ＲＯＭ１２は、ＣＰＵ１１で実行される、楽音発生装置全体の制御のための制御プログラム、鍵盤１５の各鍵毎に対応する基音の周波数、発生させる楽音に関する初期データ等が予め格納されているリードオンリメモリである。
【００２６】
ワークＲＡＭ１３は、ＣＰＵ１１により制御プログラムが実行されるときに、ＣＰＵ１１がワークエリアとして用いるランダムアクセスメモリである。
波形合成情報ＲＡＭ１４は、鍵盤１５への押鍵に応じて発生させる楽音に関する各種データを格納するために用いるランダムアクセスメモリである。図３は、この楽音発生装置の動作時における波形合成情報ＲＡＭ１４の記憶領域の利用状況を示す図である。
【００２７】
図３（ａ）に示すように、楽音発生装置の動作時には、高調波係数エリア、音域分割音高エリア、音域フラグエリアの３つの領域が波形合成情報ＲＡＭ１４の記憶領域に確保される。
【００２８】
高調波係数エリアは、楽音合成に用いられる高調波である各正弦波の振幅レベルを次数毎に設定するためのデータである高調波係数を、同図（ｂ）に示すように音高（鍵盤１５の各鍵）毎に、同図（ｃ）に示すようにデータＫＥＩＳＵとして格納する領域である。
【００２９】
音域分割音高エリアは、同図（ｂ）に示すように、この楽音発生装置で発生させる発音音域を分割（同図の例では７つの音域に分割）したときの分割の様子を示すデータを格納する領域であり、分割音域の境界を示す８つの音高データを、鍵盤１５の各鍵毎に予め定義されている番号を用い、データＮＯＴＥとして各分割音域毎に格納する。
【００３０】
音域フラグエリアは、同図（ｂ）に示すように、ある音高の楽音を発生させる際に、楽音合成に用いられる高調波である正弦波の中にＦｓ／２以上の周波数となるものが出現した場合に、そのような正弦波を発生させる設定を敢えて音源１８に設定して折り返しひずみを含む楽音を合成するか否かを示すフラグを、音域分割音高エリアによって示される分割音域毎にフラグＯＣＴＦとして格納する領域である。
【００３１】
ＫＥＩＳＵ、ＮＯＴＥ、ＯＣＴＦについては、ＣＰＵ１１で実行される制御処理について後に説明する際に、併せて詳述する。
図２の説明に戻る。鍵盤１５はいわゆるキーボードであり、ユーザによる押鍵により、発音させる音高と、その音高の発音の指示を本楽音発生装置が受け取るものである。なお、ここでは、鍵盤１５の各鍵に、音高の低い鍵から順に０から連続する番号を予め定義しておく。
【００３２】
ＳＷ群１６は、この楽音発生装置を操作するために必要なスイッチ群であり、カーソルスイッチ、テンキー、確定スイッチ、終了スイッチなどがある。これらの各スイッチの詳細は後述する。
【００３３】
表示部１７は、ＣＰＵ１１による指示に応じ、後述する各種の選択画面、設定画面を表示するものである。
音源１８は、ＣＰＵ１１により設定される各種情報に基づき、サンプリング周波数がＦｓであるデジタル信号領域において複数の正弦波を加算合成し、その結果得られた楽音データを発音回路１９に出力するものである。音源１８は、充分に短い周期でサンプリングされている正弦波のデジタルデータをデータファイルとして予め有しており、ある特定の周波数の正弦波のデジタルデータを得るには、このデータファイルから所定の間隔毎にデータを読み出すことで所望の周波数の正弦波データを得る構成となっている。
【００３４】
発音回路１９は、音源１８からの楽音データをＤＡ変換してアナログ楽音信号とし、更にアナログ信号領域においてＦｓ／２以下の周波数に帯域制限したアナログ楽音信号をオーディオアンプとスピーカとを用いて音として発音させるものである。
【００３５】
次に図４について説明する。同図は、楽音発生装置の操作パネルの構成を示す図であり、操作パネルには、画面２１、カーソルスイッチ２２、確定スイッチ２３、終了スイッチ２４、テンキースイッチ２５が設けられている。
【００３６】
画面２１は、図２における表示部１７の表示画面であり、図４では、設定モード選択画面を表示している。設定モード選択画面については後述する。
カーソルスイッチ２２、確定スイッチ２３、終了スイッチ２４、テンキースイッチ２５は、いずれも図２におけるＳＷ群１６を構成するスイッチである。
【００３７】
カーソルスイッチ２２は、上下左右４方向を示すスイッチからなり、画面２１の表示から設定対象を選択する等のために用いられる。
確定スイッチ２３は、カーソルスイッチ２２を用いて行われた設定対象の選択の確定指示や、テンキースイッチ２５による数値入力の確定などに用いられる。
【００３８】
終了スイッチ２４は各種の設定処理の終了を指示する等の場合に用いられる。
テンキースイッチ２５は、数値入力を行なうために用いられるスイッチである。
【００３９】
次に、図２に示すＣＰＵ１１が行なう制御について、図２乃至図４を適宜参照しながら説明する。
図５は、ＣＰＵ１１が、電源投入直後よりＲＯＭ１２に記憶されている制御プログラムを実行することにより実現される、ＣＰＵ１１による楽音発生装置全体の制御処理を示すフローチャートである。ＣＰＵ１１による制御動作を同図に従って説明する。
【００４０】
まず、ステップＳ１０１において、電源投入直後にイニシャライズ処理が実行され、ＣＰＵ１１自身の有するレジスタ、ワークＲＡＭ１３、波形合成情報ＲＡＭ１４、音源１８などの初期化、初期設定値の格納、などの処理が行なわれる。特に、波形合成情報ＲＡＭ１４に対しては、ＲＯＭ１１に予め格納されているＫＥＩＳＵ、ＮＯＴＥ、ＯＣＴＦの各データの初期値が、それぞれ波形合成情報ＲＡＭ１４の適切な記憶領域に格納される。
【００４１】
ステップＳ１０２では、表示部１７を制御し、図４の画面２１に示すモード選択画面、すなわち、「設定」アイコンと「発音」アイコンとの２つのアイコンを表示させる。
【００４２】
ステップＳ１０３では、モード選択画面として画面２１に表示させている「発音」アイコンの表示を変更、例えば、文字「発音」の表示色とその文字の背景色との色彩を反転して、「発音」アイコンが現在は選択されている状態であることをユーザに示す。以降、このようなアイコンの表示を「変更表示」と呼び、変更表示がされていないアイコンの表示を「通常表示」と呼ぶこととする。なお、図４及び以降に示す画面２１の表示内容においては、文字の背景に斜線を加えることで変更表示を示すこととする。
【００４３】
ステップＳ１０４では、カーソルスイッチ２２のいずれかが操作されたか否かを調べ、操作が検出されればステップＳ１０５に、また、操作が検出されないのであればステップＳ１０６に、それぞれ進む。
【００４４】
ステップＳ１０５では、今まで画面２１に変更表示させていたアイコンの表示を通常表示に、一方、通常表示されていたアイコンの表示を変更表示に、それぞれ切り換えて表示させる。
【００４５】
ステップＳ１０６では、確定スイッチ２３がオン（操作）されたか否かを調べ、オンされたことが検出されればステップＳ１０７に進み、一方、オンされたことが検出されないのであればステップＳ１０４へ戻り、前述した処理を繰り返す。
【００４６】
ステップＳ１０７では、画面２１に表示させているアイコンにおいて、現在変更表示させているアイコンが、「発音」アイコンであるか否かを調べる。「発音」アイコンを変更表示させているのであればステップＳ１０９に進んで発音処理を行ない、処理終了後にステップＳ１０２へ戻り、上述した処理を繰り返す。一方、「発音」アイコンを変更表示させていないのであればステップＳ１０８に進んで設定処理を行ない、処理終了後にステップＳ１０２へ戻り、上述した処理を繰り返す。発音処理及び設定処理については、後述する。
【００４７】
以上までに説明した処理の繰返しにより、楽音発生装置全体の動作制御が行われる。
次に、図５のステップＳ１０８で行われる設定処理について説明する。
【００４８】
設定処理は、正弦波合成方式により発生させる楽音の音色の設定や、発生させる楽音に折り返しひずみを持たせるか否かの設定といった、各種設定を行なう処理である。
【００４９】
設定処理をＣＰＵ１１が行なうことにより表示部１７の画面２１に表示させる設定モード選択画面の画面表示を図６に、また、ＣＰＵ１１により行われる設定処理の処理内容を示すフローチャートを図７に示す。以下、設定処理の処理内容を図７に従って説明する。
【００５０】
まず、ステップＳ２０１では、画面２１の現在の表示をクリアする。
ステップＳ２０２では、表示部１７を制御し、図６の画面２１に示す設定モード選択画面、すなわち、「高調波係数設定」アイコンと「音域設定」アイコンとの２つのアイコンを表示させる。
【００５１】
ステップＳ２０３では、画面２１に表示させている「高調波係数設定」アイコンを変更表示させる。
ステップＳ２０４では、カーソルスイッチ２２のいずれかが操作されたか否かを調べ、操作が検出されればステップＳ２０５に、また、操作が検出されないのであればステップＳ２０６に、それぞれ進む。
【００５２】
ステップＳ２０５では、今まで画面２１に変更表示させていたアイコンの表示を通常表示に、一方、通常表示されていたアイコンの表示を変更表示に、それぞれ切り換えて表示させる。
【００５３】
ステップＳ２０６では、確定スイッチ２３がオンされたか否かを調べ、オンされたことが検出されればステップＳ２０７に、一方、オンされたことが検出されないのであればステップＳ２１０に、それぞれ進む。
【００５４】
ステップＳ２０７では、画面２１に表示させているアイコンにおいて、現在変更表示させているアイコンが、「高調波係数設定」アイコンであるか否かを調べる。「高調波係数設定」アイコンを変更表示させているのであればステップＳ２０８に進んで「高調波係数設定処理」を行ない、処理終了後にステップＳ２０１へ戻り、上述した処理を繰り返す。一方、「高調波係数設定」アイコンを変更表示させていないのであればステップＳ２０９に進んで「音域フラグ設定処理」を行ない、処理終了後にステップＳ２０１へ戻り、上述した処理を繰り返す。高調波係数設定処理及び音域フラグ設定処理については、後述する。
【００５５】
ステップＳ２１０では、終了スイッチ２４がオンされたか否かを調べ、オンされたことが検出されればステップＳ２１１に進む。一方、オンされたことが検出されないのであればステップＳ２０４へ戻り、前述した処理を繰り返す。
【００５６】
ステップＳ２１１では、画面２１の現在の表示をクリアし、今回の設定処理を終了して図５の制御処理へ戻る。
以上までに説明した処理が設定処理である。
【００５７】
次に図７のステップＳ２０８で行われる高調波係数設定処理について説明する。
高調波係数設定処理は、正弦波合成方式による楽音の発生に高調波として用いる各正弦波の振幅レベルの設定を行ない、発生させる楽音の音色を決定する処理である。
【００５８】
なお、詳しくは後述するが、本実施の形態においては、図３に示した波形合成情報ＲＡＭ１４の音域分割音高エリアに格納されている８つの音高についてのみ、高調波係数をユーザが直接設定するようにし、他の音高の高調波係数については、ユーザの設定した８つの音高についての高調波係数を基にした補間により自動的に設定されるようにしている。もちろん、鍵盤１５の鍵のひとつひとつに対応する音高ごとに異なる音色を設定するようにしたり、また、逆に、この楽音発生装置で発生させることのできる音域全体で同一の音色を用いるようにしても良い。
【００５９】
高調波係数設定処理をＣＰＵ１１が行なうことにより表示部１７の画面２１に表示させる２種類の画面表示のうち、音高選択画面の画面表示を図８に、高調波係数設定画面の画面表示を図９に、それぞれ示す。また、ＣＰＵ１１により行われる高調波係数設定処理の処理内容を示すフローチャートを図１０乃至図１３に示す。以下、高調波係数設定処理の処理内容を図１０乃至図１３に従って説明する。
【００６０】
まず、図１０において、ステップＳ２２１では、画面２１の現在の表示をクリアする。
ステップＳ２２２では、表示部１７を制御し、図８の画面２１に示す音高選択画面、すなわち、Ｎ０〜Ｎ８の８つの音高選択アイコンを表示させる。
【００６１】
ステップＳ２２３では、画面２１に表示させているＮ０の音高選択アイコンを変更表示させる。
ステップＳ２２４では、カーソルスイッチ２２のいずれかが操作されたか否かを調べ、操作が検出されればステップＳ２２５に、また、操作が検出されないのであればステップＳ２２６に、それぞれ進む。
【００６２】
ステップＳ２２５では、今まで画面２１に変更表示させていた音高選択アイコンの表示を通常表示に切り換えて表示させると共に、変更表示させていた音高選択アイコンの上下左右に隣接して表示されている音高選択アイコンのうち、操作されたカーソルスイッチ２２に示されている矢印に対応するアイコンを通常表示から変更表示に切り換えて表示させる。なお、このステップの処理において、操作されたカーソルスイッチ２２に示されている矢印に対応するアイコンが存在しないのであれば、画面２１に変更表示させていた音高選択アイコンの通常表示への切り換えは行なわないまま、ステップＳ２２６に進む。
【００６３】
ステップＳ２２６では、確定スイッチ２３がオンされたか否かを調べ、オンされたことが検出されればステップＳ２２９に、一方、オンされたことが検出されないのであればステップＳ２２７に、それぞれ進む。
【００６４】
ステップＳ２２７では、終了スイッチ２４がオンされたか否かを調べ、オンされたことが検出されればステップＳ２２８に進む。一方、オンされたことが検出されないのであればステップＳ２２４へ戻り、前述した処理を繰り返す。
【００６５】
ステップＳ２２８では、画面２１の現在の表示をクリアし、今回の高周波係数設定処理を終了して図７の制御処理へ戻る。
ステップＳ２２９では、画面２１で現在変更表示を行なっている音高選択アイコンの番号を取得し、変数ｎに代入する。
【００６６】
図１１に移り、ステップＳ２３０では、画面２１の現在の表示をクリアする。
ステップＳ２３１では、表示部１７を制御し、図９の画面２１に示す高調波係数設定画面、すなわち、図９の画面２１の左側の表の枠及び文字、並びに右側のグラフの枠及び文字、を表示させる。
【００６７】
ステップＳ２３２では、変数ｍに１を代入する。
ステップＳ２３３では、画面２１の左側の表の右欄の上からｍ行目の欄に、図３に示した波形合成情報ＲＡＭ１４の高調波係数エリアに格納されている、音高ｎ用の高調波係数であるＫＥＩＳＵ（ｎ，ｍ）の数値を表示させる。
【００６８】
ここで、高調波係数ＫＥＩＳＵ（ｎ，ｍ）とは、音高ｎの鍵盤１５の押鍵に応じて発生させる楽音の合成に用いる（ｍ＋１）次高調波としての正弦波の振幅レベルを、その楽音の合成に用いる基音としての正弦波の振幅レベルに対する比で示した値である。
【００６９】
ステップＳ２３４では、画面２１の右側のグラフに、左側の表と対応するように、ＫＥＩＳＵ（ｎ，ｍ）の数値に相当するグラフを表示させる。
ステップＳ２３５では、変数ｍの値を１だけ増加させる。
【００７０】
ステップＳ２３６では、変数ｍと最大設定数、すなわち、音源１８で楽音合成に用いることのできる正弦波（基音用以外の高調波用としての正弦波）の数とを比較し、ｍが最大設定数を超えていればステップＳ２３７に進む。一方、ｍが未だ最大設定数を超えていなければステップＳ２３３へ戻り、前述した処理を繰り返す。
【００７１】
ステップＳ２３７では、画面２１の右側の表において、ＫＥＩＳＵ（ｎ，１）の数値を表示させた欄を変更表示させる。
ステップＳ２３８では、変数ｍに改めて１を代入する。
【００７２】
図１２に移り、ステップＳ２３９では、カーソルスイッチ２２のいずれかが操作されたか否かを調べ、操作が検出されればステップＳ２４０に、また、操作が検出されないのであればステップＳ２４２に、それぞれ進む。
【００７３】
ステップＳ２４０では、操作されたカーソルスイッチ２２に示されている矢印に応じ、上向き若しくは左向きの矢印のスイッチが操作されていたのであれば変数ｍの値を１だけ減少させ、一方、下向き若しくは右向きの矢印のスイッチが操作されていたのであれば変数ｍの値を１だけ増加させる。なお、値の増減の結果、変数ｍの値が、０以下、もしくは、前述した最大設定数を超えてしまう場合には、変数ｍの値の増減は行なわないようにする。
【００７４】
ステップＳ２４１では、画面２１の右側の表において、ＫＥＩＳＵ（ｎ，ｍ）の数値を表示させた欄を変更表示させ、現在変更表示させている他の欄を通常表示へ戻す。
【００７５】
ステップＳ２４２では、テンキースイッチ２５が操作されたか否かを調べ、操作が検出されればステップＳ２４３に、また、操作が検出されないのであればステップＳ２４５に、それぞれ進む。
【００７６】
ステップＳ２４３では、ＫＥＩＳＵ（ｎ，ｍ）の数値をテンキースイッチ２５の操作に応じて変更し、また、画面２１の右側の表に表示させていた、ＫＥＩＳＵ（ｎ，ｍ）の数値も変更して表示させる。
【００７７】
ステップＳ２４４では、画面２１の右側のグラフに、左側の表と対応するように、ＫＥＩＳＵ（ｎ，ｍ）の値に相当するグラフを表示させる。
ステップＳ２４５では、確定スイッチ２３がオンされたか否かを調べ、オンされたことが検出されればステップＳ２４８（図１３）に、一方、オンされたことが検出されないのであればステップＳ２４６に、それぞれ進む。
【００７８】
ステップＳ２４６では、終了スイッチ２４がオンされたか否かを調べ、オンされたことが検出されればステップＳ２４７に進む。一方、オンされたことが検出されないのであればステップＳ２３９へ戻り、前述した処理を繰り返す。
【００７９】
ステップＳ２４７では、画面２１の現在の表示をクリアし、その後ステップＳ２２２（図１０）へ戻り、前述した処理を繰り返す。
図１３に移り、ステップＳ２４８では、変数ｍに改めて１を代入する。
【００８０】
ステップＳ２４９では、変数ｋに０を代入する。
ステップＳ２５０からステップＳ２５７にかけての処理は、音高Ｎｋと音高Ｎ（ｋ＋１）との間の各音高についての第ｍ次高調波の高調波係数ＫＥＩＳＵを、ユーザが直接設定せずに直線補間により自動的に求め、設定する処理である。
【００８１】
ステップＳ２５０では、音高Ｎｋと音高Ｎ（ｋ＋１）との間の音高差をもとめ、変数Ｌに代入する。
ステップＳ２５１では、ＫＥＩＳＵ（Ｎｋ，ｍ）とＫＥＩＳＵ（Ｎ（ｋ＋１），ｍ）との間の、音高差に対する傾きを求め、変数ｌに代入する。
【００８２】
ステップＳ２５２では、変数Ｓに１を代入する。
ステップＳ２５３では、ＫＥＩＳＵ（（Ｎｋ）＋Ｓ，ｍ）の値を、ＫＥＩＳＵ（Ｎｋ，ｍ）及び傾きｌより求め、波形合成情報ＲＡＭ１４の高調波係数エリアの所定の記憶領域に格納する。
【００８３】
ステップＳ２５４では、変数Ｓの値を１だけ増加させる。
ステップＳ２５５では、変数Ｓの値と変数Ｌ−１の値とを比較して、音高Ｎｋと音高Ｎ（ｋ＋１）との間の音高の楽音についての第ｍ次高調波の高調波係数の設定を終えたかどうかを調べる。Ｓの値がＬ−１の値を超えているのであればステップＳ２５６に進み、一方そうでなければステップＳ２５３へ戻り、上述した処理を繰り返す。
【００８４】
ステップＳ２５６では、変数ｋの値を１だけ増加させる。
ステップＳ２５７では、変数ｋの値を調べて、鍵盤１５の全ての鍵に対応する音高の楽音についての第ｍ次高調波の高調波係数の設定を終えたかどうかを調べる。ｋが７を超えているのであればステップＳ２５８に進み、一方そうでなければステップＳ２５０へ戻り、上述した処理を繰り返す。
【００８５】
ステップＳ２５８では、変数ｍの値を１だけ増加させる。
ステップＳ２５９では、変数ｍと前述の最大設定数とを比較し、ｍが最大設定数を超えていればステップＳ２６０に進む。一方、ｍが未だ最大設定数を超えていなければステップＳ２４９へ戻り、前述した処理を繰り返す。
【００８６】
ステップＳ２６０では、画面２１の現在の表示をクリアし、その後ステップＳ２２２（図１０）へ戻り、前述した処理を繰り返す。
以上までの処理が高調波係数設定処理である。
【００８７】
なお、ここで説明した高調波係数設定処理において、音高Ｎｋと音高Ｎ（ｋ＋１）との間の各音高についての高調波係数ＫＥＩＳＵを、ユーザが直接設定せずに自動的に求めて設定するために、直線補間を用いたが、他の補間方式を用いてもよく、例えば、鍵盤１５の各鍵に対応する楽音の音高の基音の周波数は指数的な間隔で並べられていることを考慮し、指数補間を用いることも可能である。
【００８８】
次に図７のステップＳ２０９で行われる音域フラグ設定処理について説明する。
音域フラグ設定処理は、この楽音合成装置により発生させる楽音に折り返しひずみを持たせて発生させるか否かの設定を分割音域毎に行なうものであり、折り返しひずみを含む楽音の発生の選択を可能とする本発明の特徴に関連する処理である。
【００８９】
音域フラグ設定処理をＣＰＵ１１が行なうことにより表示部１７の画面２１に表示させる音域フラグ設定画面の画面表示を図１４に示し、また、ＣＰＵ１１により行われる音域フラグ設定処理の処理内容を示すフローチャートを図１５に示す。以下、音域フラグ設定処理の処理内容を図１５に従って説明する。
【００９０】
まず、ステップＳ２８１では、画面２１の現在の表示をクリアする。
ステップＳ２８２では、表示部１７を制御し、図１４の画面２１に示す音域フラグ設定画面、すなわち、図１４の画面２１の表の枠及び文字を表示させる。なお、同図において、表の右欄の「×」印は、フラグデータＯＣＴＦに基づいて設定されるものであって、その分割帯域に含まれる音高の楽音を発生させる際に折り返しひずみを含ませない設定がＯＣＴＦになされていることを意味し、発生させる楽音に折り返しひずみを含ませる設定がＯＣＴＦに行なわれている場合には、対応する表の右欄に「○」印が表示される。
【００９１】
ステップＳ２８３では、ＯＣＴＦ（０）の表示欄（表の「Ｎ０〜Ｎ１」が表示されている欄の右隣の欄）を変更表示する。
ステップＳ２８４では、変数ｎに０を代入する。
【００９２】
ステップＳ２８５では、カーソルスイッチ２２のいずれかが操作されたか否かを調べ、操作が検出されればステップＳ２８６に、また、操作が検出されないのであればステップＳ２８８に、それぞれ進む。
【００９３】
ステップＳ２８６では、操作されたカーソルスイッチ２２に示されている矢印に応じ、上向き若しくは左向きの矢印のスイッチが操作されていたのであれば変数ｎの値を１だけ減少させ、一方、下向き若しくは右向きの矢印のスイッチが操作されていたのであれば変数ｎの値を１だけ増加させる。なお、値の増減の結果、変数ｎの値が、０以下、もしくは、前述した最大設定数を超えてしまう場合には、変数ｎの値の増減は行なわないようにする。
【００９４】
ステップＳ２８７では、画面２１の表において、フラグＯＣＴＦ（ｎ）の内容を表示させた欄を変更表示させ、現在変更表示させている他の欄を通常表示へ戻す。
【００９５】
ステップＳ２８８では、確定スイッチ２３がオンされたか否かを調べ、オンされたことが検出されればステップＳ２８９に、一方、オンされたことが検出されないのであればステップＳ２９０に、それぞれ進む。
【００９６】
ステップＳ２８９では、フラグ情報であるＯＣＴＦ（ｎ）の内容を反転させると共に、反転させたＯＣＴＦ（ｎ）の内容を画面２１の表に反映させ、その後、ステップＳ２８５へ戻り、前述した処理を繰り返す。
【００９７】
ステップＳ２９０では、終了スイッチ２４がオンされたか否かを調べ、オンされたことが検出されればステップＳ２９１に進む。一方、オンされたことが検出されないのであればステップＳ２８５へ戻り、前述した処理を繰り返す。
【００９８】
ステップＳ２９１では、画面２１の現在の表示をクリアし、その後、今回の音域フラグ設定処理を終了し、図７に示す設定処理へ戻る。
以上までに説明した処理が音域フラグ設定処理である。
【００９９】
ここまでに説明した各設定処理によって、発生させる楽音の合成に関する設定はすべて完了する。なお、本実施の形態では、波形合成情報ＲＡＭ１４の音域分割音高エリアに格納されている分割音域の範囲を示す音高データＮＯＴＥについて、図５のステップＳ１０１におけるイニシャライズ処理において音域分割音高エリアに格納される、ＲＯＭ１２に予め格納されている初期設定データをそのまま使用するようにしている。もちろん、ユーザがＮＯＴＥの内容を自由に設定できるようにする設定処理を追加してもよい。
【０１００】
次に、図５のステップＳ１０９で行われる発音処理について説明する。
発音処理は、楽音の合成に関する各種の設定情報及び発音／消音のタイミングについての情報を音源１８に伝える処理である。
【０１０１】
ＣＰＵ１１により行われる発音処理の処理内容を示すフローチャートを図１６乃至図１８に示す。以下、発音処理の処理内容を図１６乃至図１８に従って説明する。
【０１０２】
まず、図１６において、ステップＳ３０１では、画面２１の現在の表示をクリアする。
ステップＳ３０２では、発音処理を実行していることをユーザに通知するために、表示部１７を制御して画面２１に「発音中」の文字を表示させる。
【０１０３】
ステップＳ３０３では、変数ｎに０を代入する。
ステップＳ３０４では、変数ｎの値の番号が定義されている鍵盤１５の鍵の操作状況の変化を調べる。この鍵の押鍵状態への変化が検出されればステップＳ３０５に、離鍵状態への変化が検出されればステップＳ３２４に、また、鍵の操作状況の変化が検出されないのであればステップＳ３２５（図１８）に、それぞれ進む。
【０１０４】
ステップＳ３０５では、鍵の操作状況が押鍵状態に変化したことを示すフラグＯＮＴＦに１を代入する。このフラグＯＮＴＦの格納場所は、音源１８の有するレジスタに設けられている。
【０１０５】
ステップＳ３０６からステップＳ３０８にかけての処理は、変数ｎの値の番号の鍵に対応する楽音の音高が波形合成情報ＲＡＭ１４の音域分割音高エリアに格納されているデータにより定められている分割音域のいずれに属するものであるかを調べるものである。ステップＳ３０７における判断処理の結果、変数ｎの番号の鍵は音高Ｎｋと音高Ｎ（ｋ＋１）との間の分割音域内にあることが分かり、その後、ステップＳ３０９に進む。
【０１０６】
ステップＳ３０９では、波形合成情報ＲＡＭ１４の音域フラグエリアに格納されている音域フラグＯＣＴＦ（ｋ）を調べ、ＯＣＴＦ（ｋ）が１であるとき、すなわち、発生させる楽音に折り返しひずみを含ませる設定がＯＣＴＦ（ｋ）に行なわれている場合にはステップＳ３１０（図１７）に進む。一方、ＯＣＴＦ（ｋ）が１でないとき、すなわち、発生させる楽音に折り返しひずみを含ませない設定がＯＣＴＦ（ｋ）に行なわれている場合にはステップＳ３１５（図１８）に進む。
【０１０７】
図１７に移り、ステップＳ３１０では、押鍵状態へと変化した鍵盤１５の鍵を特定する変数ｎを音源１８に送付する。
ステップＳ３１１からステップＳ３１４にかけての処理は、波形合成情報ＲＡＭ１４の高調波係数エリアに格納されている音高ｎについての高調波係数ＫＥＩＳＵ（ｎ，ｍ）（ｍ＝１，２，…，前述の最大設定数）の値を音源１８に送付するものである。そして、ステップＳ３１４の判断処理により、高調波係数の送付を終えたと判断された場合にはステップＳ３２５（図１７）に進む。
【０１０８】
図１８に移り、ステップＳ３０９（図１６）の判断処理の結果、ＯＣＴＦ（ｋ）が１でないとき、すなわち、発生させる楽音に折り返しひずみを含ませない設定がＯＣＴＦ（ｋ）に行なわれている場合には、まず、ステップＳ３１５において、押鍵状態へと変化した鍵盤１５の鍵を特定する変数ｎを音源１８に送付する。
【０１０９】
ステップＳ３１６では、変数ｎの値で特定される鍵盤１５の鍵の基音の周波数を、その基音の周波数が予め格納されているＲＯＭ１２を参照することにより取得し、変数Ｆに代入する。
【０１１０】
ステップＳ３１７では、変数ｍに１を代入する。
ステップＳ３１８では、Ｆ×（ｍ＋１）を計算し、計算結果を変数ｆに代入する。
【０１１１】
ステップＳ３１９では、音源１８における楽音合成処理で用いられるサンプリング周波数Ｆｓを、Ｆｓの値が予め格納されているＲＯＭ１２を参照することにより取得してＦｓ／２を計算し、その計算結果を変数ｆの値と比較する。ｆの値がＦｓ／２よりも小さいのであればステップＳ３２０に、一方、ｆの値がＦｓ／２よりも小さくないのであればステップＳ３２１に、それぞれ進む。
【０１１２】
ステップＳ３２０では、波形合成情報ＲＡＭ１４の高調波係数エリアに格納されている音高ｎについての高調波係数ＫＥＩＳＵ（ｎ，ｍ）の値を音源１８に送付し、ステップＳ３２２に進む。
【０１１３】
ステップＳ３２１では、音高ｎについての高調波係数ＫＥＩＳＵ（ｎ，ｍ）の値として０を音源１８に送付し、この高調波係数に対応する第ｎ次高調波である正弦波を、加算合成により発生させる楽音には含ませないようにして、折り返しひずみの発生を防止する。
【０１１４】
ステップＳ３２２では、変数ｍの値を１だけ増加させる。
ステップＳ３２３では、変数ｍと前述の最大設定数とを比較し、ｍが最大設定数を超えていればステップＳ３２５に進む。一方、ｍが未だ最大設定数を超えていなければステップＳ３１８へ戻り、前述した処理を繰り返す。
【０１１５】
ところで、図１６のステップＳ３０４において、変数ｎの番号が定義されている鍵盤１５の鍵の操作状況について離鍵状態への変化が検出された場合には、ステップＳ３２４で、鍵の操作状況が離鍵状態に変化したことを示すフラグＯＦＴＦに１を代入し、その後、ステップＳ３２５（図１８）に進み、前述した処理を行なう。このフラグＯＦＴＦの格納場所は、フラグＯＮＴＦと同様に、音源１８の有するレジスタに設けられている。
【０１１６】
図１８の説明に戻り、ステップＳ３２５では、変数ｎの値を１だけ増加させる。
ステップＳ３２６では、変数ｎと鍵盤１５の有する鍵の総数とを比較する。ｎが鍵の総数に達したのであればステップＳ３２７に進む。一方、ｎが未だ鍵の総数に達していなければステップＳ３０４（図１６）へ戻り、前述した処理を繰り返す。
【０１１７】
ステップＳ３２７では、終了スイッチ２４がオンされたか否かを調べ、オンされたことが検出されればステップＳ３２８に進む。一方、オンされたことが検出されないのであればステップＳ３０３（図１６）へ戻り、前述した処理を繰り返す。
【０１１８】
ステップＳ３２８では、画面２１の現在の表示をクリアし、今回の設定処理を終了して図５の制御処理へ戻る。
以上までの処理が発音処理である。
【０１１９】
次に、音源１８が行なう処理について説明する。音源１８は、ＣＰＵ１１から送付される各種情報の受信、正弦波合成方式による楽音の発生、及び発生させた楽音の発音・消音、等の処理を行なう。
【０１２０】
まず、音源処理について説明する。この処理では、ＣＰＵ１１から送付される各種情報の受信処理と、鍵盤１５への押鍵発生に応じた発音動作のための初期設定処理が行われる。
【０１２１】
音源１８により行われる音源処理の処理内容を示すフローチャートを図１９及び図２０に示す。以下、音源処理の処理内容を図１９及び図２０に従って説明する。
【０１２２】
まず、図１９において、ステップＳ４０１では、鍵盤１５の鍵の操作状況の押鍵状態への変化の有無を示す前述したフラグＯＮＴＦの内容を調べ、ＯＮＴＦが１、すなわち、鍵の押鍵状態への変化が検出されているのであればステップＳ４０２に、一方、検出されていないのであればステップＳ４１７（図２０）に、それぞれ進む。
【０１２３】
ステップＳ４０２では、ＣＰＵ１１が前述した発音処理を行なうことにより音源１８へ送付されてくる、押鍵状態へと変化した鍵盤１５の鍵を特定する変数ｎを受信する。
【０１２４】
ステップＳ４０３からステップＳ４０６にかけての処理は、ＣＰＵ１１が前述した発音処理を行なうことにより音源１８へ送付されてくる、高調波係数ＫＥＩＳＵ（ｎ，ｍ）（ｍ＝１，２，…，前述の最大設定数）の値を受信するものである。そして、ステップＳ４０６の判断処理により、高調波係数の受信を終えたと判断された場合にはステップＳ４０７に進む。
【０１２５】
ステップＳ４０７では、変数ｎの値で特定される鍵盤１５の鍵の基音の周波数を、音源１８が予め有している対応データより取得し、変数ｆに代入する。
ステップＳ４０８では、変数ＣＨに０を代入する。
【０１２６】
ステップＳ４０９では、変数ｍに０を代入する。
ステップＳ４１０では、ｆ×（ｍ）を計算し、計算結果を変数Ｆ（ＣＨ）に代入する。この処理により、変数Ｆ（ＣＨ）には、合成楽音のＣＨ次高調波である正弦波の周波数値が格納される。なお、Ｆ（０）には、合成楽音の基音である正弦波の周波数値が格納される。
【０１２７】
ステップＳ４１１では、変数ｍの値を１だけ増加させる。
ステップＳ４１２では、変数ＡＤＤ（ＣＨ）に０を代入する。変数ＡＤＤ（ＣＨ）については、後述する。
【０１２８】
図２０に移り、ステップＳ４１３では、変数ｍの値を１だけ増加させる。
ステップＳ４１４では、変数ｍと前述の最大設定数とを比較し、ｍが最大設定数を超えていればステップＳ４１５に進む。一方、ｍが未だ最大設定数を超えていなければステップＳ４１０（図１９）へ戻り、前述した処理を繰り返す。
【０１２９】
ステップＳ４１５では、鍵盤１５の鍵の押鍵状態への変化の検出時に行なう必要のある処理を終えたので、フラグＯＮＴＦに０を代入する。
ステップＳ４１６では、楽音の発音／消音を指示するフラグＯＮＦに、発音指示を示す１を代入する。
【０１３０】
ステップＳ４１７では、鍵盤１５の鍵の操作状況の離鍵状態への変化の有無を示す前述したフラグＯＦＴＦの内容を調べ、ＯＦＴＦが１、すなわち、鍵の離鍵状態への変化が検出されているのであればステップＳ４１８に進む。一方、検出されていないのであればステップＳ４０１（図１９）へ戻り、前述した処理を繰り返す。
【０１３１】
ステップＳ４１８では、フラグＯＮＦに、消音指示を示す０を代入する。
ステップＳ４１９では、鍵盤１５の鍵の離鍵状態への変化の検出時に行なう必要のある処理を終えたので、フラグＯＦＴＦに０を代入し、その後、ステップＳ４０１（図１９）へ戻り、前述した処理を繰り返す。
【０１３２】
以上までの処理が音源処理である。
次に、音源１８の行なうタイマインタラプト処理について説明する。
本実施の形態では、正弦波合成方式による楽音の発生、及び発生させた楽音の発音並びに消音の動作を音源１８の有するタイマに基づく割込み処理によって一定時間間隔ごとに処理するようにしている。
【０１３３】
タイマインタラプト処理を実行させるためのタイマ割込みの発生間隔は、他の各処理の処理時間を考慮し、ある程度は長くする必要があるが、その間隔が長すぎると、楽音の発音／消音のタイミングがユーザによる鍵盤１５の操作に合わないなどといった弊害が発生するので、両者のバランスを考慮して設定する。
【０１３４】
音源１８により行われるタイマインタラプト処理の処理内容を示すフローチャートを図２１に示す。以下、タイマインタラプト処理の処理内容を図２１に従って説明する。
【０１３５】
ステップＳ５０１では、フラグＯＮＦを調べ、その内容が発音指示を示している１であればステップＳ５０２に、一方、そうでないのであればステップＳ５１０に、それぞれ進む。
【０１３６】
ステップＳ５０２では、正弦波のデジタルデータが格納されている正弦波データファイルＭＥＭを参照し、アドレスＡＤＤ（０）に対応するファイルＭＥＭの格納データＭＥＭ（ＡＤＤ（０））を出力バッファＯＵＴ（０）に代入する。
【０１３７】
ステップＳ５０３では、音源１８が予め有しているアドレス変分テーブルＴＡＢＬＥを参照し、合成する楽音の基音である周波数Ｆ（０）に対応するアドレス変分ＴＡＢＬＥ（Ｆ（０））だけ、アドレスＡＤＤ  （０）を移動させる。
【０１３８】
前述したように、音源１８は、正弦波データファイルＭＥＭより一定間隔毎にデータを読み出すことで、所望の周波数の正弦波データを得るのであるが、アドレス変分テーブルＴＡＢＬＥは、このデータ読み出し間隔を、所望する正弦波の周波数に対応させて予め格納しているテーブルである。
【０１３９】
ステップＳ５０４からステップＳ５０９にかけての処理は、発生させる楽音の基音に、前述した各種設定に従って他の周波数の正弦波を順次加算合成する処理である。
【０１４０】
ステップＳ５０４では、変数ＣＨ及び変数ｍのそれぞれに１を代入する。
ステップＳ５０５では、正弦波データファイルＭＥＭよりアドレスＡＤＤ（ＣＨ）に対応するファイルＭＥＭの格納データＭＥＭ（ＡＤＤ（ＣＨ））の値を取得し、取得した値に前述した音源処理で受信している高調波係数ＫＥＩＳＵ（ｋ，ｍ）を乗じ、計算結果を出力バッファＯＵＴ（ＣＨ）に代入する。
【０１４１】
ステップＳ５０６では、アドレス変分テーブルＴＡＢＬＥを参照し、周波数Ｆ（ＣＨ）の正弦波に対応するアドレス変分ＴＡＢＬＥ（Ｆ（ＣＨ））だけアドレスＡＤＤ（ＣＨ）を移動させる。
【０１４２】
ステップＳ５０７では、出力バッファＯＵＴ（０）の値にＯＵＴ（ＣＨ）の値を加算し、計算結果をＯＵＴ（０）に代入する。
ステップＳ５０８では、変数ＣＨ及び変数ｍのそれぞれを共に１だけ増加させる。
【０１４３】
ステップＳ５０９では、変数ｍと前述の最大設定数とを比較し、ｍが最大設定数を超えていればステップＳ５１１に進む。一方、ｍが未だ最大設定数を超えていなければステップＳ５０５へ戻り、前述した処理を繰り返す。
【０１４４】
ところで、ステップＳ５０１における処理で、ＯＮＦが１ではないと判断された場合に処理されるステップＳ５１０では、フラグＯＮＦの消音指示に応じ、出力バッファＯＵＴ（０）に０を代入する。
【０１４５】
ステップＳ５１１では、ＯＵＴ（０）の値を出力し、ＤＡ変換の後に発音回路１９へ楽音信号を送出し、今回のタイマインタラプト処理を終了する。
以上までの処理が、タイマインタラプト処理である。
【０１４６】
【発明の効果】
本発明に係る楽音発生装置は、以上詳細に説明したように構成されているので、一種のエフェクトとして、折り返しひずみを積極的に持たせた楽音を出力することができ、このエフェクトを利かせた楽音を、テクノポップやラップなどの音楽ジャンルの演奏に用いると好適である。
【図面の簡単な説明】
【図１】本発明の原理構成を示すブロック図である。
【図２】本発明を実施する楽音発生装置の構成を示す図である。
【図３】波形合成情報ＲＡＭの記憶領域の利用状況を示す図である。
【図４】楽音発生装置の操作パネルの構成を示す図である。
【図５】楽音発生装置全体の制御処理のフローチャートである。
【図６】設定モード選択画面の画面表示を示す図である。
【図７】設定処理のフローチャートである。
【図８】音高選択画面の画面表示を示す図である。
【図９】高調波係数設定画面の画面表示を示す図である。
【図１０】高調波係数設定処理のフローチャート（その１）である。
【図１１】高調波係数設定処理のフローチャート（その２）である。
【図１２】高調波係数設定処理のフローチャート（その３）である。
【図１３】高調波係数設定処理のフローチャート（その４）である。
【図１４】音域フラグ設定画面の画面表示を示す図である。
【図１５】音域フラグ設定処理のフローチャートである。
【図１６】発音処理のフローチャート（その１）である。
【図１７】発音処理のフローチャート（その２）である。
【図１８】発音処理のフローチャート（その３）である。
【図１９】音源処理のフローチャート（その１）である。
【図２０】音源処理のフローチャート（その２）である。
【図２１】タイマインタラプト処理のフローチャートである。
【符号の説明】
１ａ、１ｂ  正弦波データ出力手段
２  周波数設定手段
３  加算手段
４  折り返しひずみ許可手段
５  出力
【図１】
0004221791.tif 000002
【図２】
0004221791.tif 000003
【図３】
0004221791.tif 000004
【図４】
0004221791.tif 000005
【図５】
0004221791.tif 000006
【図６】
0004221791.tif 000007
【図７】
0004221791.tif 000008
【図８】
0004221791.tif 000009
【図９】
0004221791.tif 000010
【図１０】
0004221791.tif 000011
【図１１】
0004221791.tif 000012
【図１２】
0004221791.tif 000013
【図１３】
0004221791.tif 000014
【図１４】
0004221791.tif 000015
【図１５】
0004221791.tif 000016
【図１６】
0004221791.tif 000017
【図１７】
0004221791.tif 000018
【図１８】
0004221791.tif 000019
【図１９】
0004221791.tif 000020
【図２０】
0004221791.tif 000021
【図２１】
0004221791.tif 000022