(57)【要約】【課題】 発音リソースへの発音割り当て処理を簡素化する。【解決手段】 リソース１３に空きがあった場合、第１割り当て部１９１によってその空きリソースに発音が割り当てられる。リソース１３に発音が割り当てられると、リソース１３の識別情報がリングバッファ（ＦＩＦＯ）１２に書き込まれる。ＦＩＦＯメモリ１２は音色系列の最低保証同時発音数に対応した数の領域が設けられるので、この領域分つまり最低保証同時発音数以上の発音リソースが使用されると、識別情報がＦＩＦＯメモリ１２から溢れる。溢れ情報はアサインメントメモリ１１にステータスとして書き込まれるので、第１割り当て部１９１で空きリソースが検索されない場合、第２割り当て部１９２が、溢れ情報で代表されるリソース１３に発音を割り当てる。【選択図】        図１
2006113367.tif 000002
【特許請求の範囲】
【請求項１】
複数の発音リソースを備え、かつ複数の音色系列で発音が可能である電子楽音発生装置において、
発音開始指示に応答して複数の発音リソースの一つに発音を割り当てる割り当て制御手段と、
前記音色系列毎に設けられ、各音色系列毎に設定された同時発音数に対応する記憶領域を有し、前記割り当て手段で該音色系列の発音用に発音リソースが割り当てられたときに該発音リソースを表す識別情報を記憶する第１記憶手段と、
前記発音リソース毎に、該発音リソースの割り当て状況および前記第１記憶手段から前記識別情報が溢れたことを示すステータスを記憶する領域を有する第２記憶手段とを具備し、
前記割り当て制御手段が、
前記第２記憶手段を走査して前記ステータスに基づいて空き発音リソースを検索し、該発音リソースに発音を割り当てる第１割り当て手段と、
前記空き発音リソースが検出されなかったときに、前記第２記憶手段を走査して前記ステータスに基づいて前記第１記憶手段から溢れた前記識別情報に対応する発音リソースを検出し、該発音リソースに発音を割り当てる第２割り当て手段と、
前記第１割り当て手段または前記第２割り当て手段で発音が割り当てられた発音リソースの前記識別情報を前記第１記憶手段に記憶する記憶制御手段とからなることを特徴とする電子楽音発生装置。
【請求項２】
前記記憶制御手段が、
前記同時発音数に対応する数を超えて発音リソースの前記識別情報を前記第１記憶手段に記憶する場合は、該第１記憶手段に記憶された前記識別情報のうち第１記憶手段に最先に記憶された識別情報を記憶溢れとして削除することによって前記第１記憶手段の記憶領域を確保する第１制御機能と、
前記割り当て手段によって発音リソースに発音が割り当てられたときに該発音リソースが使用中であることを前記ステータスとして前記第２記憶手段に記憶するとともに、前記記憶溢れにより前記第１記憶手段から削除された情報が示す発音リソースに関する情報の記憶溢れが生じたことを第２記憶手段に記憶する第２制御機能とを有し、
かつ前記第２制御機能が、発音終了指示に応答して該指示に対応する発音中の発音リソースのステータスとして該発音リソースが空きであることを示す情報を前記第２記憶手段に記憶するように構成されていることを特徴とする請求項１記載の電子楽音発生装置。
【請求項３】
前記割り当て制御手段が、
前記第１割り当て手段による割り当てに先立ち、発音開始が指示された楽音の音色系列に対応する楽音情報に基づいて該楽音情報と同一音程の楽音情報を検出し、該同一音程の楽音情報が予定数以上あった場合に、これらの楽音情報が割り当てられている発音リソースのうち優先順位が最も高いものに発音を割り当てる手段をさらに具備していることを特徴とする請求項１または２記載の電子楽音発生装置。
【請求項４】
前記第１の記憶手段が、少なくとも前記予定の同時発音数以上の数の記憶領域を有することを特徴とする請求項１〜３のいずれかに記載の電子楽音発生装置。
【請求項５】
前記第１の記憶手段がＦＩＦＯメモリであることを特徴とする請求項１〜４のいずれかに記載の電子楽音発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽音発生装置に関し、特に、複数の音色系列毎に所定の同時発音数を保証する電子楽音発生装置に関する。
【背景技術】
【０００２】
電子楽音を同時発音することができる電子楽器において、複数の音色系列、例えば複数のパート毎に所定の同時発音数を保証するものが知られる。複数の音色系列の電子楽音を同時発生する場合の例として、１台の電子楽器で複数音色の楽音を同時出力する場合や、ＭＩＤＩシステムのように、他の電子楽器から複数の音色を含む楽音情報が入力されて、その楽音情報を再生する場合等がある。
【０００３】
特開平４−９３９９９号公報には、楽音パート毎にリソース割当数を固定することによる不都合を解消した電子楽器が開示されている。従来、リソース割当数を固定することによって、演奏が休止している楽音パートに係るリソースがその休止中は全く使用されずに無駄になってしまう不都合があったことに対応するものである。
【０００４】
上記電子楽器は、楽音パート毎の同時発音数を確保しながら、この同時発音数を超えて発音することも可能にすることによって楽音発生チャンネルを効率的に使用することができるリソース割り当て手段を有している。具体的にはイベントに応じてリソース毎の記憶エリアを有するアサインメントメモリに楽音データを書き込み、この楽音データを参照しつつ、効率的なリソースの割り当てを行う。
【特許文献１】特開平４−９３９９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された電子楽器では、予定された同時楽音数を保証しつつリソースの無駄を生じないようにすることができる。しかし、リソース割り当て手段はアサインメントメモリを参照する動作が必要であるため、特に、リソース数が多い場合には処理が煩雑であるという問題が依然としてあった。
【０００６】
本発明は、上記課題に鑑み、アサインメントメモリの参照処理を簡素化しつつ、予め設定された最低限の同時発音数を保証することができる電子楽音発生装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決し、目的を達成するための本発明は、複数の発音リソースを備え、かつ複数の音色系列で発音が可能である電子楽音発生装置において、発音開始指示に応答して複数の発音リソースの一つに発音を割り当てる割り当て制御手段と、前記音色系列毎に設けられ、各音色系列毎に設定された同時発音数に対応する記憶領域を有し、前記割り当て手段で該音色系列の発音用に発音リソースが割り当てられたときに該発音リソースを表す識別情報を記憶する第１記憶手段と、前記発音リソース毎に、該発音リソースの割り当て状況および前記第１記憶手段から前記識別情報が溢れたことを示すステータスを記憶する領域を有する第２記憶手段とを具備し、前記割り当て制御手段が、前記第２記憶手段を走査して前記ステータスに基づいて空き発音リソースを検索し、該発音リソースに発音を割り当てる第１割り当て手段と、前記空き発音リソースが検出されなかったときに、前記第２記憶手段を走査して前記ステータスに基づいて前記第１記憶手段から溢れた前記識別情報に対応する発音リソースを検出し、該発音リソースに発音を割り当てる第２割り当て手段と、前記第１割り当て手段または前記第２割り当て手段で発音が割り当てられた発音リソースの前記識別情報を前記第１記憶手段に記憶する記憶制御手段とからなる点に第１の特徴がある。
【０００８】
また、本発明は、前記記憶制御手段が、前記同時発音数に対応する数を超えて発音リソースの前記識別情報を前記第１記憶手段に記憶する場合は、該第１記憶手段に記憶された前記識別情報のうち第１記憶手段に最先に記憶された識別情報を記憶溢れとして削除することによって前記第１記憶手段の記憶領域を確保する第１制御機能と、前記割り当て手段によって発音リソースに発音が割り当てられたときに該発音リソースが使用中であることを前記ステータスとして前記第２記憶手段に記憶するとともに、前記記憶溢れにより前記第１記憶手段から削除された情報が示す発音リソースに関する情報の記憶溢れが生じたことを第２記憶手段に記憶する第２制御機能とを有し、かつ前記第２制御機能が、発音終了指示に応答して該指示に対応する発音中の発音リソースのステータスとして該発音リソースが空きであることを示す情報を前記第２記憶手段に記憶するように構成されている点に第２の特徴がある。
【０００９】
また、本発明は、前記割り当て制御手段が、前記第１割り当て手段による割り当てに先立ち、発音開始が指示された楽音の音色系列に対応する楽音情報に基づいて該楽音情報と同一音程の楽音情報を検出し、該同一音程の楽音情報が予定数以上あった場合に、これらの楽音情報が割り当てられている発音リソースのうち優先順位が最も高いものに発音を割り当てる手段をさらに具備している点に第３の特徴がある。
【００１０】
また、本発明は、前記第１の記憶手段が、少なくとも前記予定の同時発音数以上の数の記憶領域を有する点に第４の特徴があり、特に前記第１の記憶手段がＦＩＦＯメモリである点に第５の特徴がある。
【発明の効果】
【００１１】
上記特徴を有する本発明によれば、発音リソースに空きがあった場合は第１割り当て手段によってその空き発音リソースに発音が割り当てられる。発音リソースに発音が割り当てられたならば、記憶制御手段によって発音リソースの識別情報が第１記憶手段に書き込まれる。第１記憶手段には音色系列の同時発音数に対応した数の領域が設けられるので、この領域分つまり最低保証同時発音数以上の発音リソースが使用されると、前記識別情報は第１記憶手段から溢れる。この溢れ情報は第２記憶手段に書き込まれるので、空き発音リソースが検索されない場合、この溢れ情報で代表される発音リソースに発音を割り当てる。こうして、発音リソースに空きがない場合、第２割り当て手段により溢れ情報から発音リソースを容易に検索することができる。
【００１２】
特に、第１記憶手段をＦＩＦＯにより実現することによって、予定数の記憶領域を有する第１記憶手段から発音リソースの識別情報が溢れたことを判別して、割り当てに適した発音リソースを選択することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明を詳細に説明する。図２は本発明の一実施形態に係る電子楽器のブロック図である。同図において、電子楽器１は、例えば、電子オルガンであり、指示を入力するのに用いられる鍵盤２および操作パネル３を備える。鍵盤２は、上鍵盤２ａ、下鍵盤２ｂ、およびペダル鍵盤２ｃを含むが、鍵盤２の構成はこれに限らない。鍵盤２は押鍵・離鍵を検出する図示しないキーセンサを備え、演奏者の演奏を演奏情報（キーナンバおよびベロシティを含む）としてリアルタイムに出力する。
【００１４】
操作パネル３は、操作スイッチ３ａと表示器３ｂとを含む。鍵盤２はキースキャン回路４を介してバス５に接続される。操作パネル３の操作スイッチ３ａはパネルスキャン回路６を介して、表示器３ｂは表示回路７を介してそれぞれバス５に接続される。表示器３ｂはＬＥＤ表示灯やＬＣＤ（液晶表示器）である。
【００１５】
鍵盤２や操作パネル３から入力された指示に従って処理を実行するＣＰＵ８が設けられ、このＣＰＵ８での処理に使用されるプログラムやデータを格納するＲＡＭ９、ＲＯＭ１０、アサインメントメモリ１１、およびＦＩＦＯメモリ１２がバス５に接続される。なお、アサインメントメモリ１１はＲＡＭ９と一体に構成することもでき、ＦＩＦＯメモリ１２はリングバッファ形式のＲＡＭで構成される。ＦＩＦＯメモリ１２は本発明の第１記憶手段に対応し、アサインメントメモリ１１には、本発明の第２記憶手段に対応する記憶エリアを含む。
【００１６】
ＲＯＭ１０には、ＣＰＵ８が各種処理を行うためのプログラムや、値の変わらない固定データ、場合によっては楽音波形データやエンベロープ波形データが記憶される。ＲＡＭ９には、各種処理データ等の値が変わる変更データが記憶される。
【００１７】
ＣＰＵ８で処理されたデータに基づいて楽音信号を出力する音源つまり発音リソース（以下、単に「リソース」という）１３がバス５に接続され、リソース１３はサウンドシステム１４に接続される。リソース１３は、複数の楽音を同時発音できるように複数設けられる。本実施形態では後で例を示すように、６４個のリソースを設ける。サウンドシステム１４は楽音信号のＤ／Ａ変換器１５、増幅器１６およびスピーカ１７を備える。
【００１８】
さらに、電子楽器１では、追加の機能として鍵盤２から入力される演奏情報だけでなく外部から供給されるＭＩＤＩ楽音情報に従って楽音を発生することができるようにするのが好ましい。そのためにＭＩＤＩ楽音情報の入出力インタフェース（ＭＩＤＩ  Ｉ／Ｏ）１８を設けることができる。
【００１９】
操作スイッチ３ａの各スイッチは、上鍵盤２ａ、下鍵盤２ｂ、およびペダル鍵盤２ｃに設定される音色、リズム等の選択を行うもので、各スイッチの状態は、パネルスキャン回路６によってスキャンされる。スキャンによって認識された音色、リズム等に関するデータは、ＣＰＵ８によって、リソース１３に送られる。スキャン結果は、表示回路７にセットされ、表示器３ｂの、対応する表示素子（例えば発光ダイオード）が点灯される。
【００２０】
リソース１３では、ＣＰＵ８によって送られてきた各種データや、アサインメントメモリ１１にセットされた楽音情報に応じた楽音信号が生成され、サウンドシステム１４へ送られて、楽音が生成発音される。アサインメントメモリ１１に設定されるリソース１３毎の記憶領域には楽音情報が記憶される。
【００２１】
複数の音色系列毎に最低保証される数の楽音を同時発音可能にするため、音色系列毎に予定数のリソース１３を割り当てている。予定数つまり最低保証同時発音数の例を図３に示す。図３において、上鍵盤（Upper）２ａおよび下鍵盤(Lower）２ｂに、特定の音色（Special)、ティビア(Tibia）、およびオーケストラ（Orchestra)音色をそれぞれ設定し、ペダル鍵盤(pedal)２ｃには、ティビア、およびオーケストラ音色を設定される。各鍵盤毎の音色系列は予め固定的に設定してあってもよいし、演奏に先立って操作スイッチ３ａに設けられる音色系列設定スイッチを操作して設定するのであってもよい。
【００２２】
上鍵盤２ａおよび下鍵盤２ｂの各音色系列には、最低同時発音数が１２音ずつ割り当てられ、ペダル鍵盤２ｃの音色系列には最低保証同時発音数が２音ずつ割り当てられる。
【００２３】
このように各鍵盤毎に割り当てられる最低同時発音数を保証するためには４０個のリソース１３を設ける。さらに自動演奏（Auto-Play）に対応する音色系列にオーケストラ音色を２４音割り当て、合計６４音を同時発音できるように、同数のリソース１３を設ける。
【００２４】
図４は、アサインメントメモリ１１の記憶例としてのマップを示す図である。各リソース１３は、リソース１３の識別情報であるリソース番号で表され、アサインメントメモリ１１には、このリソース１３を表すリソース番号毎に楽音情報が記憶される。さらに、各リソース毎の記憶領域には、当該リソースが使用されているか使用されている（使用中）か、使用されていない（空き）かを示す情報であるステータスを記憶するステータス領域が設けられる。さらにこのステータスには、ＦＩＦＯメモリ１２上における各リソース１３に関する記憶情報の状況を示す情報も含まれる。ＦＩＦＯメモリ１２には、リソース１３が使用中になったときに、そのリソースのリソース番号を記憶する。アサインメントメモリ１１のステータスとして、使用中か空きかを示す情報とともに、ＦＩＦＯメモリ１２に記憶されたリソース番号がＦＩＦＯメモリ１２から溢れたか、つまり、音色系列毎の最低保証同時発音数以上のリソースが使用中か、ＦＩＦＯメモリ１２内に記憶されているかの区別を示す情報を記憶する。つまり後からＦＩＦＯメモリ１２に入力された情報によってメモリフルとなって先に入力された情報が溢れたか否かが記憶される。つまりステータスには、当該リソースが使用中であることを示す情報に加えて、ＦＩＦＯメモリ１２上に使用中であるということが表示されていることを示す情報（溢れ無し）と、ＦＩＦＯメモリ１２から溢れてしまって使用中であることが表示されなくなっていることを示す情報（溢れ）とに区別される。ＦＩＦＯメモリ１２の使用方法は後述する。このステータスを記憶する領域が本発明における第２記憶手段の例である。
【００２５】
さらに、アサインメントメモリ１１には、各リソースに優先順位が付与される。空きリソース、および使用中でＦＩＦＯメモリ１２から溢れている溢れリソースのそれぞれについて、その内部で優先順位が付与される。図４に記載した優先順位の数字は、空きリソースおよび溢れリソース毎の優先順位である。例えば、空きリソースの中でもリソース番号「３」のリソースが最も優先順位が高く、リソース番号「１」のリソースが最も優先順位が低い。
【００２６】
空きリソースおよび溢れリソース毎の優先順位は、例えば、最も古い順にそのステータスに変化したものを高くする。例えば空きリソースでは、リソース番号の小さい順に初期値を「１」から降順に設定しておき、リソースが使用される毎に優先順位が繰り上げていく。そして、一旦使用されて再び空きリソースに戻ったものにはその時点で最も低い優先順位を設定する。同様に、溢れリソースでは、最も古く溢れリソースに変化したリソース１３が最も優先順位が高くなり、最新にＦＩＦＯメモリ１２から溢れたリソース１３には最も低い優先順位が設定される。但し、優先順位はこれに限らず、予め任意に設定できる。
【００２７】
なお、ＦＩＦＯメモリ１２から溢れていない溢れ無しリソースに対して優先的に割り当てられることはなく、他のリソース１３つまり空きリソースや溢れリソースから優先的に使用される。したがって、例えば、溢れ無しリソースつまりＦＩＦＯメモリ１２にリソース番号が依然として記憶されているリソース１３には優先順位を設定しない。
【００２８】
こうして、空きリソース、溢れリソース、および溢れ無しリソースの順でリソース１３が割り当てられて、そのリソース１３に対応するステータスが設定され、楽音情報等が書き込まれて発音が割り当てられる。空きリソースがある場合は空きリソースに発音が割り当てられる。空きリソースがない場合に、溢れリソースに発音が割り当てられる。
【００２９】
アサインメントメモリ１１には、使用中のリソース１３に対応して音色系列名とキーナンバと、ベロシティとが楽音情報として書き込まれている。例えば、リソース番号「２」のリソース１３は、ペダル鍵盤のティビア音色系列でキーナンバ「１７」の音を、ベロシティ「９４」で発音中であることがわかる。
【００３０】
図１は、電子楽器１の要部である発音割り当て部の機能を示すブロック図である。図１において、アサインメントメモリ１１は、図４に関して述べたように複数のリソース１３にそれぞれ対応づけられた記憶領域を有する。ＦＩＦＯメモリ１２は音色系列に対応した個数分が設けられる。図３の例に対応するためには７つのＦＩＦＯメモリ１２が設けられる。そして、各ＦＩＦＯメモリ１２は少なくとも音色系列毎の最低保証同時発音数分の記憶領域を有する。例えば、最低保証同時発音数が「１２」のUpper/Lower Tibia音色系列では、１２個以上のデータ領域を確保したＦＩＦＯメモリ１２が設けられる。
【００３１】
割り当て制御部１９の第１割り当て部１９１は、発音開始指示に応答してアサインメントメモリ１１のステータス記憶領域を走査して空きリソースを検索し、検索された空きリソース１３に発音を割り当てる。第１割り当て部１９１は、割り当てたリソース１３のリソース番号をＦＩＦＯメモリ１２に記憶する。なお、発音開始指示は鍵盤２からの押鍵情報や自動演奏機能からの演奏データ等の楽音情報が入力されたときに発音開始指示があったと判断される。
【００３２】
割り当て制御部１９の第２割り当て部１９２は、空きリソースがない場合に、アサインメントメモリ１１のステータス記憶領域を走査して溢れリソースを検索し、溢れリソースのうち優先順位の高いリソース１３つまりステータスが溢れリソースに変化した時期が最も古いリソース１３を検索する。第２割り当て部１９２も、第１割り当て部１９１と同様、割り当てたリソース１３のリソース番号をＦＩＦＯメモリ１２に記憶する機能を有する。
【００３３】
割り当て制御部１９は、こうして発音を割り当てるリソース１３が検索されたならば、そのリソース１３に対応するアサインメントメモリ１１のステータス領域にステータス（使用中／溢れ無し）を記憶するほか、割り当てによって優先順位を繰り上げ更新する機能を有する。
【００３４】
割り当て制御部１９は、ＦＩＦＯメモリ１２を監視していて、ＦＩＦＯメモリ１２から溢れたデータを検出する。そして、ＦＩＦＯメモリ１２からデータが溢れたことを検出したならば、そのデータ内のリソース番号を読み取り、そのリソース番号で示されるリソース１３のステータスを「使用中／溢れ」に変更する。
【００３５】
このように、割り当て制御部は、アサインメントメモリ１１のステータス領域のみの走査によってリソース１３の空き状態を検出することができる。また、空きリソースが無い場合に、割り当てられるのに適した優先順位の高い使用中リソースを検出することができる。
【００３６】
続いて、フローチャートを参照して、割り当て制御部１９を含む電子楽器１の動作を説明する。図５は、電子楽器１のメインルーチンを示すフローチャートである。ステップＳ１では、各種レジスタ、カウンタ、フラグなどの初期化を行う。ステップＳ２では、鍵盤２の操作（鍵盤イベント）や操作パネル３の操作（パネルイベント）等、イベントの有無を判別するイベント検出処理を行う。なお、鍵盤イベントは、鍵盤２を用いた押鍵・離鍵イベントに限らず、例えば、ＭＩＤＩ楽音情報に含まれて入力される鍵盤楽器以外の楽器音の発音・消音指示や、自動演奏データに含まれる鍵盤楽器以外の楽器の発音・消音指示も総称する。したがって、例えば、打楽器の打撃イベントも、押鍵イベントに含めて説明する。パネルイベントの有無は、操作パネル３の操作スイッチ３ａの操作に基づいて判別される。鍵盤イベントの有無判別は、鍵盤３の各鍵毎に設けられるキーセンサの出力監視動作によって行われ、各鍵毎に押鍵・離鍵の有無、ならびにベロシティが検出される。
【００３７】
ステップＳ３では、検出されたイベントに対応する処理が実行される。ステップＳ４では恒常処理が行われる。恒常処理はイベントの有無にかかわらず行われる処理であり、楽音信号に対するビブラートの付与やエンベロープのフェーズを進行させる処理等が含まれる。
【００３８】
図６は、イベント処理のフローチャートである。ステップＳ１０では、検出されたイベントが押鍵イベントか否かが判断される。押鍵イベントでなければステップＳ１１に進み、検出されたイベントが離鍵イベントか、つまり発音終了指示か否かが判断される。イベントが押鍵でも離鍵でもなければ、ステップＳ１２に進んでその他の処理を行う。その他の処理には、音色変更やテンポの変更などが含まれる。
【００３９】
ステップＳ１０で、イベントが押鍵と判断されれば、ステップＳ１３に進んでリソース１３の割り当てを行う。リソース１３が割り当てられればステップＳ１４に進んでその割り当てられたリソース１３に楽音情報をセットして発音処理を行う。
【００４０】
ステップＳ１１でイベントが離鍵と判断されれば、ステップＳ１５に進んで離鍵すべきキーに対応する発音中のリソース１３を検索するためアサインメントメモリ１１を走査する。離鍵イベントに係るリソース１３が検索されたならば、ステップＳ１６に進んで消音処理を行う。
【００４１】
図７は、リソース割り当て（ステップＳ１３）の詳細を示すフローチャートである。ステップＳ１３０では、同一音の押鍵が予定回数（ｎ回）繰り返されたか否かが判断される。通常、鍵盤楽器では押鍵をしたら必ず離鍵をしない限り、繰り返し押鍵されることはないが、打楽器音色で打楽器を連打する発音を行う場合のように同一音の繰り返しが考えられる。この場合、離鍵イベントなしで、押鍵イベントが連続して検出されるので、その都度リソース１３を割り当てていたのではリソース１３がすぐに足りなくなる。そこで、ステップＳ１３０の判断で同一音の繰り返しを予定回数に制限できるようにしている。
【００４２】
ステップＳ１３０が肯定であれば、ステップＳ１３１に進んで、最も古い同一音が割り当てられているリソース１３を割り当てる。
【００４３】
ステップＳ１３０が否定であったならば、ステップＳ１３２に進んで、アサインメントメモリ１１のステータス領域を走査して空きリソースがあるかどうかを判断する。空きリソースがあればステップＳ１３３でそのリソース１３に発音を割り当てる。空きリソースがなければステップＳ１３４に進んで、アサインメントメモリ１１のステータスを走査して溢れリソースがあるかどうかを判断する。溢れリソースがあればステップＳ１３５でそのリソース１３に発音を割り当てる。溢れリソースがなければステップＳ１３６に進んで、ＦＩＦＯメモリ１２内に記憶されている最も古いリソース１３に発音を割り当てる。但し、ステップＳ１３２またはステップＳ１３４が肯定になってリソースが割り当てられることがほとんどであり、ステップＳ１３６に移行することはほとんどない。
【００４４】
ステップＳ１３１，Ｓ１３３，Ｓ１３５およびステップＳ１３６でリソース１３に発音が割り当てられたならば、ステップＳ１３７に進んでＦＩＦＯメモリ１２を改訂する。ステップＳ１３８ではアサインメントメモリ１１のステータスを含むマップを改訂する。ＦＩＦＯメモリ１２およびマップの改訂は図９，図１０に関して後述する。
【００４５】
図８は消音処理のフローチャートである。ステップＳ１６０では、消音データをリソース１３に送出する。ステップＳ１６１では、消音対象の発音が割り当てられているリソース１３が溢れリソースであったか否かが判断される。溢れリソースでなければ、ＦＩＦＯメモリ１２に記憶されていたリソース１３であるので、ステップＳ１６２でＦＩＦＯメモリ１２の改訂を行う。ステップＳ１６３ではアサインメントメモリ１１のマップを改訂する。すでに溢れリソースであったものならば、ＦＩＦＯメモリ１２の改訂は必要ないので、処理は、ステップＳ１６２をスキップしてステップＳ１６１からステップＳ１６３に進む。
【００４６】
図９は、ＦＩＦＯメモリ改訂の処理を示すフローチャートである。ステップＳ２０では、発音処理中のＦＩＦＯメモリ１２の改訂か否かを判断する。発音処理中であればステップＳ２１に進んで、新たに発音が割り当てられたリソース１３のリソース番号をＦＩＦＯメモリ１２に書き込む。ステップＳ２２では、溢れリソースに割り当てられたのか否かが判断される。溢れリソースに割り当てがなされたのであれば、ステップＳ２３に進んでアサインメントメモリ１１のマップを改訂する。
【００４７】
発音処理中のＦＩＦＯメモリ１２の改訂でない場合、つまり消音処理中のＦＩＦＯメモリ１２の改訂であったならば、ステップＳ２４に進んで、ステップＳ１５で検索されたリソース１３の割り当て解消に伴ってＦＩＦＯメモリ１２から該リソース１３に関する情報つまりリソースに番号を消去する。ステップＳ２５では、ＦＩＦＯメモリ１２のデータを詰める。つまり消音されたリソース１３のリソース番号を記憶しているＦＩＦＯメモリ１２の領域が消去によって空になったので、その空きをなくすように、空にされた領域の後のデータをすべて一つ先に進める。
【００４８】
図１０は、マップ改訂のフローチャートである。ステップＳ２６では、アサインメントメモリ１１上のマップを書き替える。例えば、空きリソースが割り当てられたときは「空き」を「溢れ無し」に改訂するし、ＦＩＦＯメモリ１２に溢れが生じたときは、溢れたデータに表示されているリソース番号に対応するステータスを「溢れ無し」から「溢れ」に改訂する。
【００４９】
図１１は、ＦＩＦＯメモリ１２の例を示す図である。同図においてＦＩＦＯメモリ１２はＲＡＭアレイに指示された書き込みポインタＷＰと読み出しポインタＲＰとの間で指定された領域からなるリングバッファである。ＦＩＦＯメモリ１２には、リソース１３を示す情報つまりリソース番号ＲＳＣが順に書き込まれ、先に書き込まれたものから順に、ＦＩＦＯメモリ１２から溢れていく。リソース番号ＲＳＣは書き込みポインタＷＰを制御することによってデータを順次書き込んでいく。図１１（ａ）ではあと一つのデータを書き込めば書き込みポインタＷＰと読み出しポインタＲＰとは一致する。さらに、ここから書き込みポインタＷＰを進ませると、図１１（ｂ）に示すように書き込みポインタＷＰと読み出しポインタＲＰとが重なる。このポインタの重なりによってリソース番号ＲＳＣがＦＩＦＯメモリ１２から溢れたことを判断できる。そして、その時点の書き込みポインタＷＰの左隣りのデータが溢れ情報である。このようにリングバッファ形式でＦＩＦＯメモリ１２を設定し、音色系列の最低保証同時発音数に「１」加算した記憶領域を設ければ、溢れ情報はリングバッファ形式のＦＩＦＯメモリ１２に少なくとも一つの溢れ情報を保持可能である。また、音色系列の最低保証同時発音数に「２」加算した記憶領域を設ければ、溢れ情報はリングバッファ形式のＦＩＦＯメモリ１２に少なくとも二つの溢れデータを保持可能である。
【００５０】
ＦＩＦＯメモリ１２をリングバッファ形式として溢れ情報をＦＩＦＯメモリ１２上に保持できるようにすることで、発音リソース１３に空きがない場合、このＦＩＦＯメモリ１２を参照して発音リソースを選択することができる。この場合、アサインメントメモリ１１のステータス領域には、単に「空き」か「使用中」を示すステータスが記憶されていればよい。
【００５１】
以上、本発明を最良の実施形態に従って説明したが、本発明はこれに限定されない。例えば、本発明は電子楽器に限らず、入力された楽音情報に基づいて電子楽音を発生する装置に広く適用することができる。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施形態に係る電子楽器の要部機能ブロック図である。
【図２】本発明の一実施形態に係る電子楽器のハード構成を示すブロック図である。
【図３】音色系列毎の最低保証同時発音数に例を示す図である。
【図４】第２記憶手段を含むアサインメントメモリの記憶情報の例を示す図である。
【図５】電子楽器のメインフローチャートである。
【図６】イベント処理のフローチャートである。
【図７】リソース割り当て処理のフローチャートである。
【図８】消音処理のフローチャートである。
【図９】ＦＩＦＯ改訂処理のフローチャートである。
【図１０】マップ改訂処理のフローチャートである。
【図１１】リングバッファ形式のＦＩＦＯメモリの模式図である。
【符号の説明】
【００５３】
１…電子楽器、  ２…鍵盤、  １１…アサインメントメモリ、  １２…ＦＩＦＯメモリ、  １３…リソース、  １９…割り当て制御部
【図１】
2006113367.tif 000003
【図２】
2006113367.tif 000004
【図３】
2006113367.tif 000005
【図４】
2006113367.tif 000006
【図５】
2006113367.tif 000007
【図６】
2006113367.tif 000008
【図７】
2006113367.tif 000009
【図８】
2006113367.tif 000010
【図９】
2006113367.tif 000011
【図１０】
2006113367.tif 000012
【図１１】
2006113367.tif 000013