電子楽音発生装置
【課題】 発音リソースへの発音割り当て処理を簡素化する。
【解決手段】 リソース13に空きがあった場合、第1割り当て部191によってその空きリソースに発音が割り当てられる。リソース13に発音が割り当てられると、リソース13の識別情報がリングバッファ(FIFO)12に書き込まれる。FIFOメモリ12は音色系列の最低保証同時発音数に対応した数の領域が設けられるので、この領域分つまり最低保証同時発音数以上の発音リソースが使用されると、識別情報がFIFOメモリ12から溢れる。溢れ情報はアサインメントメモリ11にステータスとして書き込まれるので、第1割り当て部191で空きリソースが検索されない場合、第2割り当て部192が、溢れ情報で代表されるリソース13に発音を割り当てる。
【解決手段】 リソース13に空きがあった場合、第1割り当て部191によってその空きリソースに発音が割り当てられる。リソース13に発音が割り当てられると、リソース13の識別情報がリングバッファ(FIFO)12に書き込まれる。FIFOメモリ12は音色系列の最低保証同時発音数に対応した数の領域が設けられるので、この領域分つまり最低保証同時発音数以上の発音リソースが使用されると、識別情報がFIFOメモリ12から溢れる。溢れ情報はアサインメントメモリ11にステータスとして書き込まれるので、第1割り当て部191で空きリソースが検索されない場合、第2割り当て部192が、溢れ情報で代表されるリソース13に発音を割り当てる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子楽音発生装置に関し、特に、複数の音色系列毎に所定の同時発音数を保証する電子楽音発生装置に関する。
【背景技術】
【0002】
電子楽音を同時発音することができる電子楽器において、複数の音色系列、例えば複数のパート毎に所定の同時発音数を保証するものが知られる。複数の音色系列の電子楽音を同時発生する場合の例として、1台の電子楽器で複数音色の楽音を同時出力する場合や、MIDIシステムのように、他の電子楽器から複数の音色を含む楽音情報が入力されて、その楽音情報を再生する場合等がある。
【0003】
特開平4−93999号公報には、楽音パート毎にリソース割当数を固定することによる不都合を解消した電子楽器が開示されている。従来、リソース割当数を固定することによって、演奏が休止している楽音パートに係るリソースがその休止中は全く使用されずに無駄になってしまう不都合があったことに対応するものである。
【0004】
上記電子楽器は、楽音パート毎の同時発音数を確保しながら、この同時発音数を超えて発音することも可能にすることによって楽音発生チャンネルを効率的に使用することができるリソース割り当て手段を有している。具体的にはイベントに応じてリソース毎の記憶エリアを有するアサインメントメモリに楽音データを書き込み、この楽音データを参照しつつ、効率的なリソースの割り当てを行う。
【特許文献1】特開平4−93999号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1に開示された電子楽器では、予定された同時楽音数を保証しつつリソースの無駄を生じないようにすることができる。しかし、リソース割り当て手段はアサインメントメモリを参照する動作が必要であるため、特に、リソース数が多い場合には処理が煩雑であるという問題が依然としてあった。
【0006】
本発明は、上記課題に鑑み、アサインメントメモリの参照処理を簡素化しつつ、予め設定された最低限の同時発音数を保証することができる電子楽音発生装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決し、目的を達成するための本発明は、複数の発音リソースを備え、かつ複数の音色系列で発音が可能である電子楽音発生装置において、発音開始指示に応答して複数の発音リソースの一つに発音を割り当てる割り当て制御手段と、前記音色系列毎に設けられ、各音色系列毎に設定された同時発音数に対応する記憶領域を有し、前記割り当て手段で該音色系列の発音用に発音リソースが割り当てられたときに該発音リソースを表す識別情報を記憶する第1記憶手段と、前記発音リソース毎に、該発音リソースの割り当て状況および前記第1記憶手段から前記識別情報が溢れたことを示すステータスを記憶する領域を有する第2記憶手段とを具備し、前記割り当て制御手段が、前記第2記憶手段を走査して前記ステータスに基づいて空き発音リソースを検索し、該発音リソースに発音を割り当てる第1割り当て手段と、前記空き発音リソースが検出されなかったときに、前記第2記憶手段を走査して前記ステータスに基づいて前記第1記憶手段から溢れた前記識別情報に対応する発音リソースを検出し、該発音リソースに発音を割り当てる第2割り当て手段と、前記第1割り当て手段または前記第2割り当て手段で発音が割り当てられた発音リソースの前記識別情報を前記第1記憶手段に記憶する記憶制御手段とからなる点に第1の特徴がある。
【0008】
また、本発明は、前記記憶制御手段が、前記同時発音数に対応する数を超えて発音リソースの前記識別情報を前記第1記憶手段に記憶する場合は、該第1記憶手段に記憶された前記識別情報のうち第1記憶手段に最先に記憶された識別情報を記憶溢れとして削除することによって前記第1記憶手段の記憶領域を確保する第1制御機能と、前記割り当て手段によって発音リソースに発音が割り当てられたときに該発音リソースが使用中であることを前記ステータスとして前記第2記憶手段に記憶するとともに、前記記憶溢れにより前記第1記憶手段から削除された情報が示す発音リソースに関する情報の記憶溢れが生じたことを第2記憶手段に記憶する第2制御機能とを有し、かつ前記第2制御機能が、発音終了指示に応答して該指示に対応する発音中の発音リソースのステータスとして該発音リソースが空きであることを示す情報を前記第2記憶手段に記憶するように構成されている点に第2の特徴がある。
【0009】
また、本発明は、前記割り当て制御手段が、前記第1割り当て手段による割り当てに先立ち、発音開始が指示された楽音の音色系列に対応する楽音情報に基づいて該楽音情報と同一音程の楽音情報を検出し、該同一音程の楽音情報が予定数以上あった場合に、これらの楽音情報が割り当てられている発音リソースのうち優先順位が最も高いものに発音を割り当てる手段をさらに具備している点に第3の特徴がある。
【0010】
また、本発明は、前記第1の記憶手段が、少なくとも前記予定の同時発音数以上の数の記憶領域を有する点に第4の特徴があり、特に前記第1の記憶手段がFIFOメモリである点に第5の特徴がある。
【発明の効果】
【0011】
上記特徴を有する本発明によれば、発音リソースに空きがあった場合は第1割り当て手段によってその空き発音リソースに発音が割り当てられる。発音リソースに発音が割り当てられたならば、記憶制御手段によって発音リソースの識別情報が第1記憶手段に書き込まれる。第1記憶手段には音色系列の同時発音数に対応した数の領域が設けられるので、この領域分つまり最低保証同時発音数以上の発音リソースが使用されると、前記識別情報は第1記憶手段から溢れる。この溢れ情報は第2記憶手段に書き込まれるので、空き発音リソースが検索されない場合、この溢れ情報で代表される発音リソースに発音を割り当てる。こうして、発音リソースに空きがない場合、第2割り当て手段により溢れ情報から発音リソースを容易に検索することができる。
【0012】
特に、第1記憶手段をFIFOにより実現することによって、予定数の記憶領域を有する第1記憶手段から発音リソースの識別情報が溢れたことを判別して、割り当てに適した発音リソースを選択することができる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して本発明を詳細に説明する。図2は本発明の一実施形態に係る電子楽器のブロック図である。同図において、電子楽器1は、例えば、電子オルガンであり、指示を入力するのに用いられる鍵盤2および操作パネル3を備える。鍵盤2は、上鍵盤2a、下鍵盤2b、およびペダル鍵盤2cを含むが、鍵盤2の構成はこれに限らない。鍵盤2は押鍵・離鍵を検出する図示しないキーセンサを備え、演奏者の演奏を演奏情報(キーナンバおよびベロシティを含む)としてリアルタイムに出力する。
【0014】
操作パネル3は、操作スイッチ3aと表示器3bとを含む。鍵盤2はキースキャン回路4を介してバス5に接続される。操作パネル3の操作スイッチ3aはパネルスキャン回路6を介して、表示器3bは表示回路7を介してそれぞれバス5に接続される。表示器3bはLED表示灯やLCD(液晶表示器)である。
【0015】
鍵盤2や操作パネル3から入力された指示に従って処理を実行するCPU8が設けられ、このCPU8での処理に使用されるプログラムやデータを格納するRAM9、ROM10、アサインメントメモリ11、およびFIFOメモリ12がバス5に接続される。なお、アサインメントメモリ11はRAM9と一体に構成することもでき、FIFOメモリ12はリングバッファ形式のRAMで構成される。FIFOメモリ12は本発明の第1記憶手段に対応し、アサインメントメモリ11には、本発明の第2記憶手段に対応する記憶エリアを含む。
【0016】
ROM10には、CPU8が各種処理を行うためのプログラムや、値の変わらない固定データ、場合によっては楽音波形データやエンベロープ波形データが記憶される。RAM9には、各種処理データ等の値が変わる変更データが記憶される。
【0017】
CPU8で処理されたデータに基づいて楽音信号を出力する音源つまり発音リソース(以下、単に「リソース」という)13がバス5に接続され、リソース13はサウンドシステム14に接続される。リソース13は、複数の楽音を同時発音できるように複数設けられる。本実施形態では後で例を示すように、64個のリソースを設ける。サウンドシステム14は楽音信号のD/A変換器15、増幅器16およびスピーカ17を備える。
【0018】
さらに、電子楽器1では、追加の機能として鍵盤2から入力される演奏情報だけでなく外部から供給されるMIDI楽音情報に従って楽音を発生することができるようにするのが好ましい。そのためにMIDI楽音情報の入出力インタフェース(MIDI I/O)18を設けることができる。
【0019】
操作スイッチ3aの各スイッチは、上鍵盤2a、下鍵盤2b、およびペダル鍵盤2cに設定される音色、リズム等の選択を行うもので、各スイッチの状態は、パネルスキャン回路6によってスキャンされる。スキャンによって認識された音色、リズム等に関するデータは、CPU8によって、リソース13に送られる。スキャン結果は、表示回路7にセットされ、表示器3bの、対応する表示素子(例えば発光ダイオード)が点灯される。
【0020】
リソース13では、CPU8によって送られてきた各種データや、アサインメントメモリ11にセットされた楽音情報に応じた楽音信号が生成され、サウンドシステム14へ送られて、楽音が生成発音される。アサインメントメモリ11に設定されるリソース13毎の記憶領域には楽音情報が記憶される。
【0021】
複数の音色系列毎に最低保証される数の楽音を同時発音可能にするため、音色系列毎に予定数のリソース13を割り当てている。予定数つまり最低保証同時発音数の例を図3に示す。図3において、上鍵盤(Upper)2aおよび下鍵盤(Lower)2bに、特定の音色(Special)、ティビア(Tibia)、およびオーケストラ(Orchestra)音色をそれぞれ設定し、ペダル鍵盤(pedal)2cには、ティビア、およびオーケストラ音色を設定される。各鍵盤毎の音色系列は予め固定的に設定してあってもよいし、演奏に先立って操作スイッチ3aに設けられる音色系列設定スイッチを操作して設定するのであってもよい。
【0022】
上鍵盤2aおよび下鍵盤2bの各音色系列には、最低同時発音数が12音ずつ割り当てられ、ペダル鍵盤2cの音色系列には最低保証同時発音数が2音ずつ割り当てられる。
【0023】
このように各鍵盤毎に割り当てられる最低同時発音数を保証するためには40個のリソース13を設ける。さらに自動演奏(Auto-Play)に対応する音色系列にオーケストラ音色を24音割り当て、合計64音を同時発音できるように、同数のリソース13を設ける。
【0024】
図4は、アサインメントメモリ11の記憶例としてのマップを示す図である。各リソース13は、リソース13の識別情報であるリソース番号で表され、アサインメントメモリ11には、このリソース13を表すリソース番号毎に楽音情報が記憶される。さらに、各リソース毎の記憶領域には、当該リソースが使用されているか使用されている(使用中)か、使用されていない(空き)かを示す情報であるステータスを記憶するステータス領域が設けられる。さらにこのステータスには、FIFOメモリ12上における各リソース13に関する記憶情報の状況を示す情報も含まれる。FIFOメモリ12には、リソース13が使用中になったときに、そのリソースのリソース番号を記憶する。アサインメントメモリ11のステータスとして、使用中か空きかを示す情報とともに、FIFOメモリ12に記憶されたリソース番号がFIFOメモリ12から溢れたか、つまり、音色系列毎の最低保証同時発音数以上のリソースが使用中か、FIFOメモリ12内に記憶されているかの区別を示す情報を記憶する。つまり後からFIFOメモリ12に入力された情報によってメモリフルとなって先に入力された情報が溢れたか否かが記憶される。つまりステータスには、当該リソースが使用中であることを示す情報に加えて、FIFOメモリ12上に使用中であるということが表示されていることを示す情報(溢れ無し)と、FIFOメモリ12から溢れてしまって使用中であることが表示されなくなっていることを示す情報(溢れ)とに区別される。FIFOメモリ12の使用方法は後述する。このステータスを記憶する領域が本発明における第2記憶手段の例である。
【0025】
さらに、アサインメントメモリ11には、各リソースに優先順位が付与される。空きリソース、および使用中でFIFOメモリ12から溢れている溢れリソースのそれぞれについて、その内部で優先順位が付与される。図4に記載した優先順位の数字は、空きリソースおよび溢れリソース毎の優先順位である。例えば、空きリソースの中でもリソース番号「3」のリソースが最も優先順位が高く、リソース番号「1」のリソースが最も優先順位が低い。
【0026】
空きリソースおよび溢れリソース毎の優先順位は、例えば、最も古い順にそのステータスに変化したものを高くする。例えば空きリソースでは、リソース番号の小さい順に初期値を「1」から降順に設定しておき、リソースが使用される毎に優先順位が繰り上げていく。そして、一旦使用されて再び空きリソースに戻ったものにはその時点で最も低い優先順位を設定する。同様に、溢れリソースでは、最も古く溢れリソースに変化したリソース13が最も優先順位が高くなり、最新にFIFOメモリ12から溢れたリソース13には最も低い優先順位が設定される。但し、優先順位はこれに限らず、予め任意に設定できる。
【0027】
なお、FIFOメモリ12から溢れていない溢れ無しリソースに対して優先的に割り当てられることはなく、他のリソース13つまり空きリソースや溢れリソースから優先的に使用される。したがって、例えば、溢れ無しリソースつまりFIFOメモリ12にリソース番号が依然として記憶されているリソース13には優先順位を設定しない。
【0028】
こうして、空きリソース、溢れリソース、および溢れ無しリソースの順でリソース13が割り当てられて、そのリソース13に対応するステータスが設定され、楽音情報等が書き込まれて発音が割り当てられる。空きリソースがある場合は空きリソースに発音が割り当てられる。空きリソースがない場合に、溢れリソースに発音が割り当てられる。
【0029】
アサインメントメモリ11には、使用中のリソース13に対応して音色系列名とキーナンバと、ベロシティとが楽音情報として書き込まれている。例えば、リソース番号「2」のリソース13は、ペダル鍵盤のティビア音色系列でキーナンバ「17」の音を、ベロシティ「94」で発音中であることがわかる。
【0030】
図1は、電子楽器1の要部である発音割り当て部の機能を示すブロック図である。図1において、アサインメントメモリ11は、図4に関して述べたように複数のリソース13にそれぞれ対応づけられた記憶領域を有する。FIFOメモリ12は音色系列に対応した個数分が設けられる。図3の例に対応するためには7つのFIFOメモリ12が設けられる。そして、各FIFOメモリ12は少なくとも音色系列毎の最低保証同時発音数分の記憶領域を有する。例えば、最低保証同時発音数が「12」のUpper/Lower Tibia音色系列では、12個以上のデータ領域を確保したFIFOメモリ12が設けられる。
【0031】
割り当て制御部19の第1割り当て部191は、発音開始指示に応答してアサインメントメモリ11のステータス記憶領域を走査して空きリソースを検索し、検索された空きリソース13に発音を割り当てる。第1割り当て部191は、割り当てたリソース13のリソース番号をFIFOメモリ12に記憶する。なお、発音開始指示は鍵盤2からの押鍵情報や自動演奏機能からの演奏データ等の楽音情報が入力されたときに発音開始指示があったと判断される。
【0032】
割り当て制御部19の第2割り当て部192は、空きリソースがない場合に、アサインメントメモリ11のステータス記憶領域を走査して溢れリソースを検索し、溢れリソースのうち優先順位の高いリソース13つまりステータスが溢れリソースに変化した時期が最も古いリソース13を検索する。第2割り当て部192も、第1割り当て部191と同様、割り当てたリソース13のリソース番号をFIFOメモリ12に記憶する機能を有する。
【0033】
割り当て制御部19は、こうして発音を割り当てるリソース13が検索されたならば、そのリソース13に対応するアサインメントメモリ11のステータス領域にステータス(使用中/溢れ無し)を記憶するほか、割り当てによって優先順位を繰り上げ更新する機能を有する。
【0034】
割り当て制御部19は、FIFOメモリ12を監視していて、FIFOメモリ12から溢れたデータを検出する。そして、FIFOメモリ12からデータが溢れたことを検出したならば、そのデータ内のリソース番号を読み取り、そのリソース番号で示されるリソース13のステータスを「使用中/溢れ」に変更する。
【0035】
このように、割り当て制御部は、アサインメントメモリ11のステータス領域のみの走査によってリソース13の空き状態を検出することができる。また、空きリソースが無い場合に、割り当てられるのに適した優先順位の高い使用中リソースを検出することができる。
【0036】
続いて、フローチャートを参照して、割り当て制御部19を含む電子楽器1の動作を説明する。図5は、電子楽器1のメインルーチンを示すフローチャートである。ステップS1では、各種レジスタ、カウンタ、フラグなどの初期化を行う。ステップS2では、鍵盤2の操作(鍵盤イベント)や操作パネル3の操作(パネルイベント)等、イベントの有無を判別するイベント検出処理を行う。なお、鍵盤イベントは、鍵盤2を用いた押鍵・離鍵イベントに限らず、例えば、MIDI楽音情報に含まれて入力される鍵盤楽器以外の楽器音の発音・消音指示や、自動演奏データに含まれる鍵盤楽器以外の楽器の発音・消音指示も総称する。したがって、例えば、打楽器の打撃イベントも、押鍵イベントに含めて説明する。パネルイベントの有無は、操作パネル3の操作スイッチ3aの操作に基づいて判別される。鍵盤イベントの有無判別は、鍵盤3の各鍵毎に設けられるキーセンサの出力監視動作によって行われ、各鍵毎に押鍵・離鍵の有無、ならびにベロシティが検出される。
【0037】
ステップS3では、検出されたイベントに対応する処理が実行される。ステップS4では恒常処理が行われる。恒常処理はイベントの有無にかかわらず行われる処理であり、楽音信号に対するビブラートの付与やエンベロープのフェーズを進行させる処理等が含まれる。
【0038】
図6は、イベント処理のフローチャートである。ステップS10では、検出されたイベントが押鍵イベントか否かが判断される。押鍵イベントでなければステップS11に進み、検出されたイベントが離鍵イベントか、つまり発音終了指示か否かが判断される。イベントが押鍵でも離鍵でもなければ、ステップS12に進んでその他の処理を行う。その他の処理には、音色変更やテンポの変更などが含まれる。
【0039】
ステップS10で、イベントが押鍵と判断されれば、ステップS13に進んでリソース13の割り当てを行う。リソース13が割り当てられればステップS14に進んでその割り当てられたリソース13に楽音情報をセットして発音処理を行う。
【0040】
ステップS11でイベントが離鍵と判断されれば、ステップS15に進んで離鍵すべきキーに対応する発音中のリソース13を検索するためアサインメントメモリ11を走査する。離鍵イベントに係るリソース13が検索されたならば、ステップS16に進んで消音処理を行う。
【0041】
図7は、リソース割り当て(ステップS13)の詳細を示すフローチャートである。ステップS130では、同一音の押鍵が予定回数(n回)繰り返されたか否かが判断される。通常、鍵盤楽器では押鍵をしたら必ず離鍵をしない限り、繰り返し押鍵されることはないが、打楽器音色で打楽器を連打する発音を行う場合のように同一音の繰り返しが考えられる。この場合、離鍵イベントなしで、押鍵イベントが連続して検出されるので、その都度リソース13を割り当てていたのではリソース13がすぐに足りなくなる。そこで、ステップS130の判断で同一音の繰り返しを予定回数に制限できるようにしている。
【0042】
ステップS130が肯定であれば、ステップS131に進んで、最も古い同一音が割り当てられているリソース13を割り当てる。
【0043】
ステップS130が否定であったならば、ステップS132に進んで、アサインメントメモリ11のステータス領域を走査して空きリソースがあるかどうかを判断する。空きリソースがあればステップS133でそのリソース13に発音を割り当てる。空きリソースがなければステップS134に進んで、アサインメントメモリ11のステータスを走査して溢れリソースがあるかどうかを判断する。溢れリソースがあればステップS135でそのリソース13に発音を割り当てる。溢れリソースがなければステップS136に進んで、FIFOメモリ12内に記憶されている最も古いリソース13に発音を割り当てる。但し、ステップS132またはステップS134が肯定になってリソースが割り当てられることがほとんどであり、ステップS136に移行することはほとんどない。
【0044】
ステップS131,S133,S135およびステップS136でリソース13に発音が割り当てられたならば、ステップS137に進んでFIFOメモリ12を改訂する。ステップS138ではアサインメントメモリ11のステータスを含むマップを改訂する。FIFOメモリ12およびマップの改訂は図9,図10に関して後述する。
【0045】
図8は消音処理のフローチャートである。ステップS160では、消音データをリソース13に送出する。ステップS161では、消音対象の発音が割り当てられているリソース13が溢れリソースであったか否かが判断される。溢れリソースでなければ、FIFOメモリ12に記憶されていたリソース13であるので、ステップS162でFIFOメモリ12の改訂を行う。ステップS163ではアサインメントメモリ11のマップを改訂する。すでに溢れリソースであったものならば、FIFOメモリ12の改訂は必要ないので、処理は、ステップS162をスキップしてステップS161からステップS163に進む。
【0046】
図9は、FIFOメモリ改訂の処理を示すフローチャートである。ステップS20では、発音処理中のFIFOメモリ12の改訂か否かを判断する。発音処理中であればステップS21に進んで、新たに発音が割り当てられたリソース13のリソース番号をFIFOメモリ12に書き込む。ステップS22では、溢れリソースに割り当てられたのか否かが判断される。溢れリソースに割り当てがなされたのであれば、ステップS23に進んでアサインメントメモリ11のマップを改訂する。
【0047】
発音処理中のFIFOメモリ12の改訂でない場合、つまり消音処理中のFIFOメモリ12の改訂であったならば、ステップS24に進んで、ステップS15で検索されたリソース13の割り当て解消に伴ってFIFOメモリ12から該リソース13に関する情報つまりリソースに番号を消去する。ステップS25では、FIFOメモリ12のデータを詰める。つまり消音されたリソース13のリソース番号を記憶しているFIFOメモリ12の領域が消去によって空になったので、その空きをなくすように、空にされた領域の後のデータをすべて一つ先に進める。
【0048】
図10は、マップ改訂のフローチャートである。ステップS26では、アサインメントメモリ11上のマップを書き替える。例えば、空きリソースが割り当てられたときは「空き」を「溢れ無し」に改訂するし、FIFOメモリ12に溢れが生じたときは、溢れたデータに表示されているリソース番号に対応するステータスを「溢れ無し」から「溢れ」に改訂する。
【0049】
図11は、FIFOメモリ12の例を示す図である。同図においてFIFOメモリ12はRAMアレイに指示された書き込みポインタWPと読み出しポインタRPとの間で指定された領域からなるリングバッファである。FIFOメモリ12には、リソース13を示す情報つまりリソース番号RSCが順に書き込まれ、先に書き込まれたものから順に、FIFOメモリ12から溢れていく。リソース番号RSCは書き込みポインタWPを制御することによってデータを順次書き込んでいく。図11(a)ではあと一つのデータを書き込めば書き込みポインタWPと読み出しポインタRPとは一致する。さらに、ここから書き込みポインタWPを進ませると、図11(b)に示すように書き込みポインタWPと読み出しポインタRPとが重なる。このポインタの重なりによってリソース番号RSCがFIFOメモリ12から溢れたことを判断できる。そして、その時点の書き込みポインタWPの左隣りのデータが溢れ情報である。このようにリングバッファ形式でFIFOメモリ12を設定し、音色系列の最低保証同時発音数に「1」加算した記憶領域を設ければ、溢れ情報はリングバッファ形式のFIFOメモリ12に少なくとも一つの溢れ情報を保持可能である。また、音色系列の最低保証同時発音数に「2」加算した記憶領域を設ければ、溢れ情報はリングバッファ形式のFIFOメモリ12に少なくとも二つの溢れデータを保持可能である。
【0050】
FIFOメモリ12をリングバッファ形式として溢れ情報をFIFOメモリ12上に保持できるようにすることで、発音リソース13に空きがない場合、このFIFOメモリ12を参照して発音リソースを選択することができる。この場合、アサインメントメモリ11のステータス領域には、単に「空き」か「使用中」を示すステータスが記憶されていればよい。
【0051】
以上、本発明を最良の実施形態に従って説明したが、本発明はこれに限定されない。例えば、本発明は電子楽器に限らず、入力された楽音情報に基づいて電子楽音を発生する装置に広く適用することができる。
【図面の簡単な説明】
【0052】
【図1】本発明の一実施形態に係る電子楽器の要部機能ブロック図である。
【図2】本発明の一実施形態に係る電子楽器のハード構成を示すブロック図である。
【図3】音色系列毎の最低保証同時発音数に例を示す図である。
【図4】第2記憶手段を含むアサインメントメモリの記憶情報の例を示す図である。
【図5】電子楽器のメインフローチャートである。
【図6】イベント処理のフローチャートである。
【図7】リソース割り当て処理のフローチャートである。
【図8】消音処理のフローチャートである。
【図9】FIFO改訂処理のフローチャートである。
【図10】マップ改訂処理のフローチャートである。
【図11】リングバッファ形式のFIFOメモリの模式図である。
【符号の説明】
【0053】
1…電子楽器、 2…鍵盤、 11…アサインメントメモリ、 12…FIFOメモリ、 13…リソース、 19…割り当て制御部
【技術分野】
【0001】
本発明は、電子楽音発生装置に関し、特に、複数の音色系列毎に所定の同時発音数を保証する電子楽音発生装置に関する。
【背景技術】
【0002】
電子楽音を同時発音することができる電子楽器において、複数の音色系列、例えば複数のパート毎に所定の同時発音数を保証するものが知られる。複数の音色系列の電子楽音を同時発生する場合の例として、1台の電子楽器で複数音色の楽音を同時出力する場合や、MIDIシステムのように、他の電子楽器から複数の音色を含む楽音情報が入力されて、その楽音情報を再生する場合等がある。
【0003】
特開平4−93999号公報には、楽音パート毎にリソース割当数を固定することによる不都合を解消した電子楽器が開示されている。従来、リソース割当数を固定することによって、演奏が休止している楽音パートに係るリソースがその休止中は全く使用されずに無駄になってしまう不都合があったことに対応するものである。
【0004】
上記電子楽器は、楽音パート毎の同時発音数を確保しながら、この同時発音数を超えて発音することも可能にすることによって楽音発生チャンネルを効率的に使用することができるリソース割り当て手段を有している。具体的にはイベントに応じてリソース毎の記憶エリアを有するアサインメントメモリに楽音データを書き込み、この楽音データを参照しつつ、効率的なリソースの割り当てを行う。
【特許文献1】特開平4−93999号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1に開示された電子楽器では、予定された同時楽音数を保証しつつリソースの無駄を生じないようにすることができる。しかし、リソース割り当て手段はアサインメントメモリを参照する動作が必要であるため、特に、リソース数が多い場合には処理が煩雑であるという問題が依然としてあった。
【0006】
本発明は、上記課題に鑑み、アサインメントメモリの参照処理を簡素化しつつ、予め設定された最低限の同時発音数を保証することができる電子楽音発生装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決し、目的を達成するための本発明は、複数の発音リソースを備え、かつ複数の音色系列で発音が可能である電子楽音発生装置において、発音開始指示に応答して複数の発音リソースの一つに発音を割り当てる割り当て制御手段と、前記音色系列毎に設けられ、各音色系列毎に設定された同時発音数に対応する記憶領域を有し、前記割り当て手段で該音色系列の発音用に発音リソースが割り当てられたときに該発音リソースを表す識別情報を記憶する第1記憶手段と、前記発音リソース毎に、該発音リソースの割り当て状況および前記第1記憶手段から前記識別情報が溢れたことを示すステータスを記憶する領域を有する第2記憶手段とを具備し、前記割り当て制御手段が、前記第2記憶手段を走査して前記ステータスに基づいて空き発音リソースを検索し、該発音リソースに発音を割り当てる第1割り当て手段と、前記空き発音リソースが検出されなかったときに、前記第2記憶手段を走査して前記ステータスに基づいて前記第1記憶手段から溢れた前記識別情報に対応する発音リソースを検出し、該発音リソースに発音を割り当てる第2割り当て手段と、前記第1割り当て手段または前記第2割り当て手段で発音が割り当てられた発音リソースの前記識別情報を前記第1記憶手段に記憶する記憶制御手段とからなる点に第1の特徴がある。
【0008】
また、本発明は、前記記憶制御手段が、前記同時発音数に対応する数を超えて発音リソースの前記識別情報を前記第1記憶手段に記憶する場合は、該第1記憶手段に記憶された前記識別情報のうち第1記憶手段に最先に記憶された識別情報を記憶溢れとして削除することによって前記第1記憶手段の記憶領域を確保する第1制御機能と、前記割り当て手段によって発音リソースに発音が割り当てられたときに該発音リソースが使用中であることを前記ステータスとして前記第2記憶手段に記憶するとともに、前記記憶溢れにより前記第1記憶手段から削除された情報が示す発音リソースに関する情報の記憶溢れが生じたことを第2記憶手段に記憶する第2制御機能とを有し、かつ前記第2制御機能が、発音終了指示に応答して該指示に対応する発音中の発音リソースのステータスとして該発音リソースが空きであることを示す情報を前記第2記憶手段に記憶するように構成されている点に第2の特徴がある。
【0009】
また、本発明は、前記割り当て制御手段が、前記第1割り当て手段による割り当てに先立ち、発音開始が指示された楽音の音色系列に対応する楽音情報に基づいて該楽音情報と同一音程の楽音情報を検出し、該同一音程の楽音情報が予定数以上あった場合に、これらの楽音情報が割り当てられている発音リソースのうち優先順位が最も高いものに発音を割り当てる手段をさらに具備している点に第3の特徴がある。
【0010】
また、本発明は、前記第1の記憶手段が、少なくとも前記予定の同時発音数以上の数の記憶領域を有する点に第4の特徴があり、特に前記第1の記憶手段がFIFOメモリである点に第5の特徴がある。
【発明の効果】
【0011】
上記特徴を有する本発明によれば、発音リソースに空きがあった場合は第1割り当て手段によってその空き発音リソースに発音が割り当てられる。発音リソースに発音が割り当てられたならば、記憶制御手段によって発音リソースの識別情報が第1記憶手段に書き込まれる。第1記憶手段には音色系列の同時発音数に対応した数の領域が設けられるので、この領域分つまり最低保証同時発音数以上の発音リソースが使用されると、前記識別情報は第1記憶手段から溢れる。この溢れ情報は第2記憶手段に書き込まれるので、空き発音リソースが検索されない場合、この溢れ情報で代表される発音リソースに発音を割り当てる。こうして、発音リソースに空きがない場合、第2割り当て手段により溢れ情報から発音リソースを容易に検索することができる。
【0012】
特に、第1記憶手段をFIFOにより実現することによって、予定数の記憶領域を有する第1記憶手段から発音リソースの識別情報が溢れたことを判別して、割り当てに適した発音リソースを選択することができる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して本発明を詳細に説明する。図2は本発明の一実施形態に係る電子楽器のブロック図である。同図において、電子楽器1は、例えば、電子オルガンであり、指示を入力するのに用いられる鍵盤2および操作パネル3を備える。鍵盤2は、上鍵盤2a、下鍵盤2b、およびペダル鍵盤2cを含むが、鍵盤2の構成はこれに限らない。鍵盤2は押鍵・離鍵を検出する図示しないキーセンサを備え、演奏者の演奏を演奏情報(キーナンバおよびベロシティを含む)としてリアルタイムに出力する。
【0014】
操作パネル3は、操作スイッチ3aと表示器3bとを含む。鍵盤2はキースキャン回路4を介してバス5に接続される。操作パネル3の操作スイッチ3aはパネルスキャン回路6を介して、表示器3bは表示回路7を介してそれぞれバス5に接続される。表示器3bはLED表示灯やLCD(液晶表示器)である。
【0015】
鍵盤2や操作パネル3から入力された指示に従って処理を実行するCPU8が設けられ、このCPU8での処理に使用されるプログラムやデータを格納するRAM9、ROM10、アサインメントメモリ11、およびFIFOメモリ12がバス5に接続される。なお、アサインメントメモリ11はRAM9と一体に構成することもでき、FIFOメモリ12はリングバッファ形式のRAMで構成される。FIFOメモリ12は本発明の第1記憶手段に対応し、アサインメントメモリ11には、本発明の第2記憶手段に対応する記憶エリアを含む。
【0016】
ROM10には、CPU8が各種処理を行うためのプログラムや、値の変わらない固定データ、場合によっては楽音波形データやエンベロープ波形データが記憶される。RAM9には、各種処理データ等の値が変わる変更データが記憶される。
【0017】
CPU8で処理されたデータに基づいて楽音信号を出力する音源つまり発音リソース(以下、単に「リソース」という)13がバス5に接続され、リソース13はサウンドシステム14に接続される。リソース13は、複数の楽音を同時発音できるように複数設けられる。本実施形態では後で例を示すように、64個のリソースを設ける。サウンドシステム14は楽音信号のD/A変換器15、増幅器16およびスピーカ17を備える。
【0018】
さらに、電子楽器1では、追加の機能として鍵盤2から入力される演奏情報だけでなく外部から供給されるMIDI楽音情報に従って楽音を発生することができるようにするのが好ましい。そのためにMIDI楽音情報の入出力インタフェース(MIDI I/O)18を設けることができる。
【0019】
操作スイッチ3aの各スイッチは、上鍵盤2a、下鍵盤2b、およびペダル鍵盤2cに設定される音色、リズム等の選択を行うもので、各スイッチの状態は、パネルスキャン回路6によってスキャンされる。スキャンによって認識された音色、リズム等に関するデータは、CPU8によって、リソース13に送られる。スキャン結果は、表示回路7にセットされ、表示器3bの、対応する表示素子(例えば発光ダイオード)が点灯される。
【0020】
リソース13では、CPU8によって送られてきた各種データや、アサインメントメモリ11にセットされた楽音情報に応じた楽音信号が生成され、サウンドシステム14へ送られて、楽音が生成発音される。アサインメントメモリ11に設定されるリソース13毎の記憶領域には楽音情報が記憶される。
【0021】
複数の音色系列毎に最低保証される数の楽音を同時発音可能にするため、音色系列毎に予定数のリソース13を割り当てている。予定数つまり最低保証同時発音数の例を図3に示す。図3において、上鍵盤(Upper)2aおよび下鍵盤(Lower)2bに、特定の音色(Special)、ティビア(Tibia)、およびオーケストラ(Orchestra)音色をそれぞれ設定し、ペダル鍵盤(pedal)2cには、ティビア、およびオーケストラ音色を設定される。各鍵盤毎の音色系列は予め固定的に設定してあってもよいし、演奏に先立って操作スイッチ3aに設けられる音色系列設定スイッチを操作して設定するのであってもよい。
【0022】
上鍵盤2aおよび下鍵盤2bの各音色系列には、最低同時発音数が12音ずつ割り当てられ、ペダル鍵盤2cの音色系列には最低保証同時発音数が2音ずつ割り当てられる。
【0023】
このように各鍵盤毎に割り当てられる最低同時発音数を保証するためには40個のリソース13を設ける。さらに自動演奏(Auto-Play)に対応する音色系列にオーケストラ音色を24音割り当て、合計64音を同時発音できるように、同数のリソース13を設ける。
【0024】
図4は、アサインメントメモリ11の記憶例としてのマップを示す図である。各リソース13は、リソース13の識別情報であるリソース番号で表され、アサインメントメモリ11には、このリソース13を表すリソース番号毎に楽音情報が記憶される。さらに、各リソース毎の記憶領域には、当該リソースが使用されているか使用されている(使用中)か、使用されていない(空き)かを示す情報であるステータスを記憶するステータス領域が設けられる。さらにこのステータスには、FIFOメモリ12上における各リソース13に関する記憶情報の状況を示す情報も含まれる。FIFOメモリ12には、リソース13が使用中になったときに、そのリソースのリソース番号を記憶する。アサインメントメモリ11のステータスとして、使用中か空きかを示す情報とともに、FIFOメモリ12に記憶されたリソース番号がFIFOメモリ12から溢れたか、つまり、音色系列毎の最低保証同時発音数以上のリソースが使用中か、FIFOメモリ12内に記憶されているかの区別を示す情報を記憶する。つまり後からFIFOメモリ12に入力された情報によってメモリフルとなって先に入力された情報が溢れたか否かが記憶される。つまりステータスには、当該リソースが使用中であることを示す情報に加えて、FIFOメモリ12上に使用中であるということが表示されていることを示す情報(溢れ無し)と、FIFOメモリ12から溢れてしまって使用中であることが表示されなくなっていることを示す情報(溢れ)とに区別される。FIFOメモリ12の使用方法は後述する。このステータスを記憶する領域が本発明における第2記憶手段の例である。
【0025】
さらに、アサインメントメモリ11には、各リソースに優先順位が付与される。空きリソース、および使用中でFIFOメモリ12から溢れている溢れリソースのそれぞれについて、その内部で優先順位が付与される。図4に記載した優先順位の数字は、空きリソースおよび溢れリソース毎の優先順位である。例えば、空きリソースの中でもリソース番号「3」のリソースが最も優先順位が高く、リソース番号「1」のリソースが最も優先順位が低い。
【0026】
空きリソースおよび溢れリソース毎の優先順位は、例えば、最も古い順にそのステータスに変化したものを高くする。例えば空きリソースでは、リソース番号の小さい順に初期値を「1」から降順に設定しておき、リソースが使用される毎に優先順位が繰り上げていく。そして、一旦使用されて再び空きリソースに戻ったものにはその時点で最も低い優先順位を設定する。同様に、溢れリソースでは、最も古く溢れリソースに変化したリソース13が最も優先順位が高くなり、最新にFIFOメモリ12から溢れたリソース13には最も低い優先順位が設定される。但し、優先順位はこれに限らず、予め任意に設定できる。
【0027】
なお、FIFOメモリ12から溢れていない溢れ無しリソースに対して優先的に割り当てられることはなく、他のリソース13つまり空きリソースや溢れリソースから優先的に使用される。したがって、例えば、溢れ無しリソースつまりFIFOメモリ12にリソース番号が依然として記憶されているリソース13には優先順位を設定しない。
【0028】
こうして、空きリソース、溢れリソース、および溢れ無しリソースの順でリソース13が割り当てられて、そのリソース13に対応するステータスが設定され、楽音情報等が書き込まれて発音が割り当てられる。空きリソースがある場合は空きリソースに発音が割り当てられる。空きリソースがない場合に、溢れリソースに発音が割り当てられる。
【0029】
アサインメントメモリ11には、使用中のリソース13に対応して音色系列名とキーナンバと、ベロシティとが楽音情報として書き込まれている。例えば、リソース番号「2」のリソース13は、ペダル鍵盤のティビア音色系列でキーナンバ「17」の音を、ベロシティ「94」で発音中であることがわかる。
【0030】
図1は、電子楽器1の要部である発音割り当て部の機能を示すブロック図である。図1において、アサインメントメモリ11は、図4に関して述べたように複数のリソース13にそれぞれ対応づけられた記憶領域を有する。FIFOメモリ12は音色系列に対応した個数分が設けられる。図3の例に対応するためには7つのFIFOメモリ12が設けられる。そして、各FIFOメモリ12は少なくとも音色系列毎の最低保証同時発音数分の記憶領域を有する。例えば、最低保証同時発音数が「12」のUpper/Lower Tibia音色系列では、12個以上のデータ領域を確保したFIFOメモリ12が設けられる。
【0031】
割り当て制御部19の第1割り当て部191は、発音開始指示に応答してアサインメントメモリ11のステータス記憶領域を走査して空きリソースを検索し、検索された空きリソース13に発音を割り当てる。第1割り当て部191は、割り当てたリソース13のリソース番号をFIFOメモリ12に記憶する。なお、発音開始指示は鍵盤2からの押鍵情報や自動演奏機能からの演奏データ等の楽音情報が入力されたときに発音開始指示があったと判断される。
【0032】
割り当て制御部19の第2割り当て部192は、空きリソースがない場合に、アサインメントメモリ11のステータス記憶領域を走査して溢れリソースを検索し、溢れリソースのうち優先順位の高いリソース13つまりステータスが溢れリソースに変化した時期が最も古いリソース13を検索する。第2割り当て部192も、第1割り当て部191と同様、割り当てたリソース13のリソース番号をFIFOメモリ12に記憶する機能を有する。
【0033】
割り当て制御部19は、こうして発音を割り当てるリソース13が検索されたならば、そのリソース13に対応するアサインメントメモリ11のステータス領域にステータス(使用中/溢れ無し)を記憶するほか、割り当てによって優先順位を繰り上げ更新する機能を有する。
【0034】
割り当て制御部19は、FIFOメモリ12を監視していて、FIFOメモリ12から溢れたデータを検出する。そして、FIFOメモリ12からデータが溢れたことを検出したならば、そのデータ内のリソース番号を読み取り、そのリソース番号で示されるリソース13のステータスを「使用中/溢れ」に変更する。
【0035】
このように、割り当て制御部は、アサインメントメモリ11のステータス領域のみの走査によってリソース13の空き状態を検出することができる。また、空きリソースが無い場合に、割り当てられるのに適した優先順位の高い使用中リソースを検出することができる。
【0036】
続いて、フローチャートを参照して、割り当て制御部19を含む電子楽器1の動作を説明する。図5は、電子楽器1のメインルーチンを示すフローチャートである。ステップS1では、各種レジスタ、カウンタ、フラグなどの初期化を行う。ステップS2では、鍵盤2の操作(鍵盤イベント)や操作パネル3の操作(パネルイベント)等、イベントの有無を判別するイベント検出処理を行う。なお、鍵盤イベントは、鍵盤2を用いた押鍵・離鍵イベントに限らず、例えば、MIDI楽音情報に含まれて入力される鍵盤楽器以外の楽器音の発音・消音指示や、自動演奏データに含まれる鍵盤楽器以外の楽器の発音・消音指示も総称する。したがって、例えば、打楽器の打撃イベントも、押鍵イベントに含めて説明する。パネルイベントの有無は、操作パネル3の操作スイッチ3aの操作に基づいて判別される。鍵盤イベントの有無判別は、鍵盤3の各鍵毎に設けられるキーセンサの出力監視動作によって行われ、各鍵毎に押鍵・離鍵の有無、ならびにベロシティが検出される。
【0037】
ステップS3では、検出されたイベントに対応する処理が実行される。ステップS4では恒常処理が行われる。恒常処理はイベントの有無にかかわらず行われる処理であり、楽音信号に対するビブラートの付与やエンベロープのフェーズを進行させる処理等が含まれる。
【0038】
図6は、イベント処理のフローチャートである。ステップS10では、検出されたイベントが押鍵イベントか否かが判断される。押鍵イベントでなければステップS11に進み、検出されたイベントが離鍵イベントか、つまり発音終了指示か否かが判断される。イベントが押鍵でも離鍵でもなければ、ステップS12に進んでその他の処理を行う。その他の処理には、音色変更やテンポの変更などが含まれる。
【0039】
ステップS10で、イベントが押鍵と判断されれば、ステップS13に進んでリソース13の割り当てを行う。リソース13が割り当てられればステップS14に進んでその割り当てられたリソース13に楽音情報をセットして発音処理を行う。
【0040】
ステップS11でイベントが離鍵と判断されれば、ステップS15に進んで離鍵すべきキーに対応する発音中のリソース13を検索するためアサインメントメモリ11を走査する。離鍵イベントに係るリソース13が検索されたならば、ステップS16に進んで消音処理を行う。
【0041】
図7は、リソース割り当て(ステップS13)の詳細を示すフローチャートである。ステップS130では、同一音の押鍵が予定回数(n回)繰り返されたか否かが判断される。通常、鍵盤楽器では押鍵をしたら必ず離鍵をしない限り、繰り返し押鍵されることはないが、打楽器音色で打楽器を連打する発音を行う場合のように同一音の繰り返しが考えられる。この場合、離鍵イベントなしで、押鍵イベントが連続して検出されるので、その都度リソース13を割り当てていたのではリソース13がすぐに足りなくなる。そこで、ステップS130の判断で同一音の繰り返しを予定回数に制限できるようにしている。
【0042】
ステップS130が肯定であれば、ステップS131に進んで、最も古い同一音が割り当てられているリソース13を割り当てる。
【0043】
ステップS130が否定であったならば、ステップS132に進んで、アサインメントメモリ11のステータス領域を走査して空きリソースがあるかどうかを判断する。空きリソースがあればステップS133でそのリソース13に発音を割り当てる。空きリソースがなければステップS134に進んで、アサインメントメモリ11のステータスを走査して溢れリソースがあるかどうかを判断する。溢れリソースがあればステップS135でそのリソース13に発音を割り当てる。溢れリソースがなければステップS136に進んで、FIFOメモリ12内に記憶されている最も古いリソース13に発音を割り当てる。但し、ステップS132またはステップS134が肯定になってリソースが割り当てられることがほとんどであり、ステップS136に移行することはほとんどない。
【0044】
ステップS131,S133,S135およびステップS136でリソース13に発音が割り当てられたならば、ステップS137に進んでFIFOメモリ12を改訂する。ステップS138ではアサインメントメモリ11のステータスを含むマップを改訂する。FIFOメモリ12およびマップの改訂は図9,図10に関して後述する。
【0045】
図8は消音処理のフローチャートである。ステップS160では、消音データをリソース13に送出する。ステップS161では、消音対象の発音が割り当てられているリソース13が溢れリソースであったか否かが判断される。溢れリソースでなければ、FIFOメモリ12に記憶されていたリソース13であるので、ステップS162でFIFOメモリ12の改訂を行う。ステップS163ではアサインメントメモリ11のマップを改訂する。すでに溢れリソースであったものならば、FIFOメモリ12の改訂は必要ないので、処理は、ステップS162をスキップしてステップS161からステップS163に進む。
【0046】
図9は、FIFOメモリ改訂の処理を示すフローチャートである。ステップS20では、発音処理中のFIFOメモリ12の改訂か否かを判断する。発音処理中であればステップS21に進んで、新たに発音が割り当てられたリソース13のリソース番号をFIFOメモリ12に書き込む。ステップS22では、溢れリソースに割り当てられたのか否かが判断される。溢れリソースに割り当てがなされたのであれば、ステップS23に進んでアサインメントメモリ11のマップを改訂する。
【0047】
発音処理中のFIFOメモリ12の改訂でない場合、つまり消音処理中のFIFOメモリ12の改訂であったならば、ステップS24に進んで、ステップS15で検索されたリソース13の割り当て解消に伴ってFIFOメモリ12から該リソース13に関する情報つまりリソースに番号を消去する。ステップS25では、FIFOメモリ12のデータを詰める。つまり消音されたリソース13のリソース番号を記憶しているFIFOメモリ12の領域が消去によって空になったので、その空きをなくすように、空にされた領域の後のデータをすべて一つ先に進める。
【0048】
図10は、マップ改訂のフローチャートである。ステップS26では、アサインメントメモリ11上のマップを書き替える。例えば、空きリソースが割り当てられたときは「空き」を「溢れ無し」に改訂するし、FIFOメモリ12に溢れが生じたときは、溢れたデータに表示されているリソース番号に対応するステータスを「溢れ無し」から「溢れ」に改訂する。
【0049】
図11は、FIFOメモリ12の例を示す図である。同図においてFIFOメモリ12はRAMアレイに指示された書き込みポインタWPと読み出しポインタRPとの間で指定された領域からなるリングバッファである。FIFOメモリ12には、リソース13を示す情報つまりリソース番号RSCが順に書き込まれ、先に書き込まれたものから順に、FIFOメモリ12から溢れていく。リソース番号RSCは書き込みポインタWPを制御することによってデータを順次書き込んでいく。図11(a)ではあと一つのデータを書き込めば書き込みポインタWPと読み出しポインタRPとは一致する。さらに、ここから書き込みポインタWPを進ませると、図11(b)に示すように書き込みポインタWPと読み出しポインタRPとが重なる。このポインタの重なりによってリソース番号RSCがFIFOメモリ12から溢れたことを判断できる。そして、その時点の書き込みポインタWPの左隣りのデータが溢れ情報である。このようにリングバッファ形式でFIFOメモリ12を設定し、音色系列の最低保証同時発音数に「1」加算した記憶領域を設ければ、溢れ情報はリングバッファ形式のFIFOメモリ12に少なくとも一つの溢れ情報を保持可能である。また、音色系列の最低保証同時発音数に「2」加算した記憶領域を設ければ、溢れ情報はリングバッファ形式のFIFOメモリ12に少なくとも二つの溢れデータを保持可能である。
【0050】
FIFOメモリ12をリングバッファ形式として溢れ情報をFIFOメモリ12上に保持できるようにすることで、発音リソース13に空きがない場合、このFIFOメモリ12を参照して発音リソースを選択することができる。この場合、アサインメントメモリ11のステータス領域には、単に「空き」か「使用中」を示すステータスが記憶されていればよい。
【0051】
以上、本発明を最良の実施形態に従って説明したが、本発明はこれに限定されない。例えば、本発明は電子楽器に限らず、入力された楽音情報に基づいて電子楽音を発生する装置に広く適用することができる。
【図面の簡単な説明】
【0052】
【図1】本発明の一実施形態に係る電子楽器の要部機能ブロック図である。
【図2】本発明の一実施形態に係る電子楽器のハード構成を示すブロック図である。
【図3】音色系列毎の最低保証同時発音数に例を示す図である。
【図4】第2記憶手段を含むアサインメントメモリの記憶情報の例を示す図である。
【図5】電子楽器のメインフローチャートである。
【図6】イベント処理のフローチャートである。
【図7】リソース割り当て処理のフローチャートである。
【図8】消音処理のフローチャートである。
【図9】FIFO改訂処理のフローチャートである。
【図10】マップ改訂処理のフローチャートである。
【図11】リングバッファ形式のFIFOメモリの模式図である。
【符号の説明】
【0053】
1…電子楽器、 2…鍵盤、 11…アサインメントメモリ、 12…FIFOメモリ、 13…リソース、 19…割り当て制御部
【特許請求の範囲】
【請求項1】
複数の発音リソースを備え、かつ複数の音色系列で発音が可能である電子楽音発生装置において、
発音開始指示に応答して複数の発音リソースの一つに発音を割り当てる割り当て制御手段と、
前記音色系列毎に設けられ、各音色系列毎に設定された同時発音数に対応する記憶領域を有し、前記割り当て手段で該音色系列の発音用に発音リソースが割り当てられたときに該発音リソースを表す識別情報を記憶する第1記憶手段と、
前記発音リソース毎に、該発音リソースの割り当て状況および前記第1記憶手段から前記識別情報が溢れたことを示すステータスを記憶する領域を有する第2記憶手段とを具備し、
前記割り当て制御手段が、
前記第2記憶手段を走査して前記ステータスに基づいて空き発音リソースを検索し、該発音リソースに発音を割り当てる第1割り当て手段と、
前記空き発音リソースが検出されなかったときに、前記第2記憶手段を走査して前記ステータスに基づいて前記第1記憶手段から溢れた前記識別情報に対応する発音リソースを検出し、該発音リソースに発音を割り当てる第2割り当て手段と、
前記第1割り当て手段または前記第2割り当て手段で発音が割り当てられた発音リソースの前記識別情報を前記第1記憶手段に記憶する記憶制御手段とからなることを特徴とする電子楽音発生装置。
【請求項2】
前記記憶制御手段が、
前記同時発音数に対応する数を超えて発音リソースの前記識別情報を前記第1記憶手段に記憶する場合は、該第1記憶手段に記憶された前記識別情報のうち第1記憶手段に最先に記憶された識別情報を記憶溢れとして削除することによって前記第1記憶手段の記憶領域を確保する第1制御機能と、
前記割り当て手段によって発音リソースに発音が割り当てられたときに該発音リソースが使用中であることを前記ステータスとして前記第2記憶手段に記憶するとともに、前記記憶溢れにより前記第1記憶手段から削除された情報が示す発音リソースに関する情報の記憶溢れが生じたことを第2記憶手段に記憶する第2制御機能とを有し、
かつ前記第2制御機能が、発音終了指示に応答して該指示に対応する発音中の発音リソースのステータスとして該発音リソースが空きであることを示す情報を前記第2記憶手段に記憶するように構成されていることを特徴とする請求項1記載の電子楽音発生装置。
【請求項3】
前記割り当て制御手段が、
前記第1割り当て手段による割り当てに先立ち、発音開始が指示された楽音の音色系列に対応する楽音情報に基づいて該楽音情報と同一音程の楽音情報を検出し、該同一音程の楽音情報が予定数以上あった場合に、これらの楽音情報が割り当てられている発音リソースのうち優先順位が最も高いものに発音を割り当てる手段をさらに具備していることを特徴とする請求項1または2記載の電子楽音発生装置。
【請求項4】
前記第1の記憶手段が、少なくとも前記予定の同時発音数以上の数の記憶領域を有することを特徴とする請求項1〜3のいずれかに記載の電子楽音発生装置。
【請求項5】
前記第1の記憶手段がFIFOメモリであることを特徴とする請求項1〜4のいずれかに記載の電子楽音発生装置。
【請求項1】
複数の発音リソースを備え、かつ複数の音色系列で発音が可能である電子楽音発生装置において、
発音開始指示に応答して複数の発音リソースの一つに発音を割り当てる割り当て制御手段と、
前記音色系列毎に設けられ、各音色系列毎に設定された同時発音数に対応する記憶領域を有し、前記割り当て手段で該音色系列の発音用に発音リソースが割り当てられたときに該発音リソースを表す識別情報を記憶する第1記憶手段と、
前記発音リソース毎に、該発音リソースの割り当て状況および前記第1記憶手段から前記識別情報が溢れたことを示すステータスを記憶する領域を有する第2記憶手段とを具備し、
前記割り当て制御手段が、
前記第2記憶手段を走査して前記ステータスに基づいて空き発音リソースを検索し、該発音リソースに発音を割り当てる第1割り当て手段と、
前記空き発音リソースが検出されなかったときに、前記第2記憶手段を走査して前記ステータスに基づいて前記第1記憶手段から溢れた前記識別情報に対応する発音リソースを検出し、該発音リソースに発音を割り当てる第2割り当て手段と、
前記第1割り当て手段または前記第2割り当て手段で発音が割り当てられた発音リソースの前記識別情報を前記第1記憶手段に記憶する記憶制御手段とからなることを特徴とする電子楽音発生装置。
【請求項2】
前記記憶制御手段が、
前記同時発音数に対応する数を超えて発音リソースの前記識別情報を前記第1記憶手段に記憶する場合は、該第1記憶手段に記憶された前記識別情報のうち第1記憶手段に最先に記憶された識別情報を記憶溢れとして削除することによって前記第1記憶手段の記憶領域を確保する第1制御機能と、
前記割り当て手段によって発音リソースに発音が割り当てられたときに該発音リソースが使用中であることを前記ステータスとして前記第2記憶手段に記憶するとともに、前記記憶溢れにより前記第1記憶手段から削除された情報が示す発音リソースに関する情報の記憶溢れが生じたことを第2記憶手段に記憶する第2制御機能とを有し、
かつ前記第2制御機能が、発音終了指示に応答して該指示に対応する発音中の発音リソースのステータスとして該発音リソースが空きであることを示す情報を前記第2記憶手段に記憶するように構成されていることを特徴とする請求項1記載の電子楽音発生装置。
【請求項3】
前記割り当て制御手段が、
前記第1割り当て手段による割り当てに先立ち、発音開始が指示された楽音の音色系列に対応する楽音情報に基づいて該楽音情報と同一音程の楽音情報を検出し、該同一音程の楽音情報が予定数以上あった場合に、これらの楽音情報が割り当てられている発音リソースのうち優先順位が最も高いものに発音を割り当てる手段をさらに具備していることを特徴とする請求項1または2記載の電子楽音発生装置。
【請求項4】
前記第1の記憶手段が、少なくとも前記予定の同時発音数以上の数の記憶領域を有することを特徴とする請求項1〜3のいずれかに記載の電子楽音発生装置。
【請求項5】
前記第1の記憶手段がFIFOメモリであることを特徴とする請求項1〜4のいずれかに記載の電子楽音発生装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2006−113367(P2006−113367A)
【公開日】平成18年4月27日(2006.4.27)
【国際特許分類】
【出願番号】特願2004−301536(P2004−301536)
【出願日】平成16年10月15日(2004.10.15)
【出願人】(000001410)株式会社河合楽器製作所 (563)
【Fターム(参考)】
【公開日】平成18年4月27日(2006.4.27)
【国際特許分類】
【出願日】平成16年10月15日(2004.10.15)
【出願人】(000001410)株式会社河合楽器製作所 (563)
【Fターム(参考)】
[ Back to top ]