JP2013160870A - 楽音発生装置およびプログラム - Google Patents

楽音発生装置およびプログラム Download PDF

Info

Publication number
JP2013160870A
JP2013160870A JP2012021513A JP2012021513A JP2013160870A JP 2013160870 A JP2013160870 A JP 2013160870A JP 2012021513 A JP2012021513 A JP 2012021513A JP 2012021513 A JP2012021513 A JP 2012021513A JP 2013160870 A JP2013160870 A JP 2013160870A
Authority
JP
Japan
Prior art keywords
sound
section
channel
assigned
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012021513A
Other languages
English (en)
Other versions
JP5896128B2 (ja
Inventor
Hiroshi Iwase
広 岩瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2012021513A priority Critical patent/JP5896128B2/ja
Publication of JP2013160870A publication Critical patent/JP2013160870A/ja
Application granted granted Critical
Publication of JP5896128B2 publication Critical patent/JP5896128B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】CPUのメモリアクセス待ちに起因する発音遅れや音切れを回避する楽音発生装置を実現する。
【解決手段】CPU14は、音源17が有する複数の発音チャンネルの中から発音割り当てされていない空きチャンネルが最も長く連続する空きチャンネル区間(END−BEGIN)を取得し、その取得した空きチャンネル区間(END−BEGIN)の中央に該当するチャンネル番号(BEGIN+END)/2の発音チャンネルに新たな発音を割り当て、これにより連続的に発音割り当てされる発音チャンネルを減らすことで音源と共用するメモリへのアクセス待ち時間を最小化するので、メモリアクセス待ちに起因する発音遅れや音切れを回避することが出来る。
【選択図】図1

Description

本発明は、CPUのメモリアクセス待ちに起因する発音遅れや音切れを回避する楽音発生装置およびプログラムに関する。
CPUおよび音源がメモリを共用するように構成された楽音発生装置が知られている。この種の技術として、例えば特許文献1には、外部メモリを共用するCPUおよびDSP(音源)を備え、DSPのサンプリング周期毎にバス解放をCPUに要求すると共に、その要求に応じてCPUが解放するバスを占有してDSPに外部メモリをアクセスさせるDSPアクセス期間を設け、当該DSPアクセス期間中にDSPが外部メモリに対してリード・ライト処理を実行する装置が開示されている。
特開2007−219942号公報
ところで、上記特許文献1に開示の装置では、DSPアクセス期間中のリード・ライト処理とは別進行でDSP(音源)が自己の内部メモリに記憶される波形データに基づき楽音形成する為、共用メモリに対するアクセス競合は発生しないが、共用メモリに記憶される波形データに基づき音源が楽音形成する一方でCPUが共用メモリに記憶される所定のデータに基づいて装置各部を制御する方式であると、音源およびCPUの双方から同時に共用メモリへのアクセス要求が生じてアクセス競合することも起こり得る。
アクセス競合する場合には、一般的に楽音形成する音源側からのアクセス要求を優先することが多い。この為、音源側からのアクセス要求が連続すると、その期間はCPUのメモリアクセスが待たされてしまい、これにより例えばCPUが制御する自動伴奏や自動演奏における曲再生テンポが遅れて「発音遅れ」したり、あるいはCPUが周期変調演算で生成するビブラートが一瞬止まって「音切れ」したりする等の弊害も起こり得る。
本発明は、このような事情に鑑みてなされたもので、CPUのメモリアクセス待ちに起因する発音遅れや音切れを回避することができる楽音発生装置およびプログラムを提供することを目的としている。
上記目的を達成するため、メモリを共用するCPUおよび音源を備えるとともに、当該音源は複数のタイムスロット夫々に対応して割り当てられ、発音要求割り当てに応答して楽音を生成して発音させる発音チャンネルを複数有する楽音発生装置において、新たな発音要求発生に応答して、発音していない空きの発音チャンネルが連続して割り当てられているタイムスロットが存在する区間の有無を判別する区間判別手段と、前記区間判別手段により区間が有ると判別された場合は、当該区間を取得するとともに、取得された区間の中で、発音中の発音チャンネルが割り当てられている区間と隣り合わない区間に割り当てられている空きの発音チャンネルに前記新たな発音要求を割り当てる発音割り当て手段と、を有することを特徴とする。
本発明では、CPUのメモリアクセス待ちに起因する発音遅れや音切れを回避することができる。
実施の一形態による楽音発生装置100の全体構成を示すブロック図である。 本実施形態におけるRAM15(共用メモリ)の読み出し動作を説明するためのタイミングチャートである。 先頭の発音チャンネルから順番に発音割当した場合における、RAM15(共用メモリ)の読み出し動作を説明するためのタイミングチャートである。 初期化処理の動作を示すフローチャートである。 発音要求発生処理の動作を示すフローチャートである。 発音要求発生処理の動作を示すフローチャートである。 COUNT_INC処理の動作を示すフローチャートである。
以下、図面を参照して本発明の実施形態について説明する。
A.構成
図1は、実施の一形態による楽音発生装置100の全体構成を示すブロック図である。この図において、鍵盤10は、演奏操作(押離鍵操作)に応じたノートオン/ノートオフイベント、鍵番号およびベロシティ等を含む演奏情報を発生する。スイッチ部11は、装置パネルに配設される各種スイッチから構成され、各スイッチ操作に応じたスイッチイベントを発生する。表示部13は、例えばカラー液晶パネル等から構成され、CPU14から供給される表示制御信号に応じて装置各部の設定状態や動作状態などを画面表示する。
ROM13には、CPU14にロードされる各種プログラムが記憶される。各種プログラムとは、後述する初期化処理、発音要求発生処理およびCOUNT_INC処理を含む。CPU14は、ROM13に記憶される各種プログラムを実行し、操作部11が発生するスイッチイベントに応じて装置各部を制御すると共に、鍵盤10から出力される演奏情報に応じて音源17に発音/消音指示する。本発明の要旨に係わるCPU14の特徴的な処理動作(発音要求発生処理)については追って詳述する。
CPU14と音源17とが共用するRAM15は、ワークエリアおよび波形データエリアを備える。RAM15のワークエリアには、CPU14の処理に用いられる各種レジスタ・フラグデータが一時記憶され、一方、波形データエリアには、各種音色の波形データが記憶される。音源17は、周知の波形メモリ読み出し方式にて構成され、複音同時発音可能な複数の発音チャンネル(本実施形態では32チャンネル)を備え、演奏情報に応じてCPU14が生成する発音/消音指示(ノートイベント)に従って楽音形成する。サウンドシステム18は、音源17から出力される楽音波形をアナログ信号形式に変換した後、不要ノイズ除去やレベル増幅を施してからスピーカから発音させる。
次に、図2を参照してRAM15を共用するCPU14および音源17の読み出しタイミングについて説明する。図2は、音源17が備える発音チャンネル(32チャンネル)に割り当てられたタイムスロットTS1〜TS32の内、例えば三和音(第1音〜第3音)を発音させる際に、後述する発音要求発生処理によって一つおきの発音チャンネルのタイムスロットTS1,TS3,TS5に各発音を割り当てた時に、CPU14がタイムスロットTS1においてRAM15の読み出し要求を発生した場合の処理を示している。
図2において、先ずタイムスロットTS1では、音源17が第1音を形成する為の波形データをRAM15の波形データエリアから読み出すべく、第1音の波形アドレスをRAM15に供給すると共に、CPU14にWAIT信号を出力する。CPU14では、WAIT信号が有効になると、RAM15の読み出し要求が生じても当該WAIT信号が無効になるまでアクセス待ち状態を維持する。この状態では、CPU14の読み出しアドレスはハイインピーダンス状態を保つ。そして、CPU14がアクセス待ちの状態になると、OR回路16を介して読み出し要求READをRAM15に入力し、これに応じてRAM15が読み出し有効になると、第1音の波形アドレスで指定された波形データがRAM15から読み出されて音源17に取り込まれる。
一方、CPU14では、タイムスロットTS1においてRAM15の読み出し要求を発生するが、音源17からのWAIT信号が無効になるまでアクセス待ちの状態となる。そして、次のタイムスロットTS2になると、音源17からのWAIT信号が無効になる為、CPU14がワークエリアのデータを読み出す為のRAM読み出しアドレスをRAM15に供給すると共に、OR回路16を介して読み出し要求READをRAM15に入力する。これによりRAM15が読み出し有効になり、RAM読み出しアドレスで指定されたデータがRAM15から読み出されてCPU14に取り込まれる。
次のタイムスロットTS3では、音源17が第2音を形成する為の波形データをRAM15の波形データエリアから読み出すべく、第2音の波形アドレスをRAM15に供給すると共に、CPU14にWAIT信号を出力してアクセス待ちの状態に設定した後、OR回路16を介して読み出し要求READをRAM15に供給する。すると、RAM15が読み出し有効になり、第2音の波形アドレスで指定された波形データが読み出されて音源17に取り込まれる。そして、タイムスロットTS5になると、上記タイムスロットTS3と同様、音源17が第3音の波形アドレスをRAM15に供給すると共に、CPU14にWAIT信号を出力した後、OR回路16を介して読み出し要求READをRAM15に供給すると、RAM15から第3音の波形アドレスで指定された波形データが読み出されて音源17に取り込まれる。
このように、発音割り当てされていない複数の空きチャンネルが存在し、それらの中から連続した空きチャンネルのタイムスロットTSに発音割り当てを行わないようにし、例えば上述の一例のように、一つおきの空きチャンネルのタイムスロットTS1,TS3,TS5に三和音(第1音〜第3音)の発音を割り当てれば、音源17およびCPU14の読み出し要求が競合しても、CPU14は読み出し要求が競合した1タイムスロットTSの期間だけ待機すれば、次の空きチャンネルのタイムスロットTSにおいてRAM15にアクセス出来、こうすることでCPUのメモリアクセス待ちに起因する発音遅れや音切れを回避することが可能になる。
なお、図3に図示する従来の発音割り当て形態、すなわち発音割り当てされていない複数の空きチャンネルが存在し、それらの中から順番に連続したタイムスロットTS1〜TS3に三和音(第1音〜第3音)の発音を割り当てた場合に、CPU14がタイムスロットTS1においてRAM15の読み出し要求を発生するケースでは、タイムスロットTS1〜TS3において音源17がRAM15からそれぞれ第1音〜第3音の波形データを読み出し終え、次の空きチャンネルのタイムスロットTS4においてCPU14がRAM15にアクセスするので、上述した一つおきの発音割り当てを行った場合に比べて3倍のアクセス待ち時間を要することになる。
B.動作
次に、図4〜図7を参照して実施形態の動作について説明する。以下では、CPU14が実行する初期化処理、発音要求発生処理およびCOUNT_INC処理の各動作について述べる。
(1)初期化処理の動作
図4は初期化処理の動作を示すフローチャートである。初期化処理は、楽音発生装置100のパワーオン時に実行される。初期化処理が実行されると、CPU4は図4に図示するステップSA1において、音源17が備える各発音チャンネル(1ch〜32ch)の状態をそれぞれ表す状態フラグSTATUS(1)〜STATUS(32)をゼロリセットする。状態フラグSTATUSは「1」の場合に発音状態を表し、「0」の場合に発音割り当てされていない空き状態を表す。また、ステップSA1では、レジスタBEGIN、レジスタEND、レジスタBEGINWKおよびレジスタENDWKをそれぞれゼロリセットして本処理を終える。
(2)発音要求発生処理の動作
図5〜図6は発音要求発生処理の動作を示すフローチャート、図7は発音要求発生処理からコールされるCOUNT_INC処理の動作を示すフローチャートである。発音要求発生処理は、ノートオンイベントの発生(鍵盤10の押鍵)に応じて実行される。発音要求発生処理が実行されると、CPU14は図5に図示されるステップSB1に処理を進め、チャンネル数をカウントするカウンタCOUNTERおよび現在チャンネル番号NOWCHに初期値「1」をセットする。
続いて、ステップSB2では、現在チャンネル番号NOWCHで指定される発音チャンネルの状態フラグSTATUS(NOWCH)が「0」、つまり発音割り当てされていない空きチャンネルであるか否かを判断する。空きチャンネルでなければ、ここでの判断結果は「NO」になり、図6に図示するステップSB3を介してCOUNT_INC処理を実行する。
COUNT_INC処理が実行されると、CPU14は図7に図示されるステップSC1に進み、カウンタCOUNTERおよび現在チャンネル番号NOWCHをインクリメントして歩進させる。次いで、ステップSC2では、歩進された現在チャンネル番号NOWCHの値が「32」、つまりチャンネルサーチが一巡したかどうかを判断する。チャンネルサーチが一巡していなければ、判断結果は「NO」になり、COUNT_INC処理を終えるが、チャンネルサーチが一巡すると、上記ステップSC2の判断結果は「YES」になり、ステップSC3に進み、現在チャンネル番号NOWCHを初期値「1」にリセットしてCOUNT_INC処理を終える。
ステップSB3のCOUNT_INC処理が完了すると、CPU14はステップSB4に進み、歩進されたカウンタCOUNTERが「32」を超えたか否か、つまり全ての発音チャンネルの中から空きチャンネルを探し終えたかどうか否かを判断する。空きチャンネルを探し終えていなければ、ステップSB4の判断結果は「NO」になり、図5のステップSB2に処理を戻す。以後、ステップSB2〜SB4を繰り返すことによって、全発音チャンネルの中から空きチャンネルを探し出す。
そして、歩進された現在チャンネル番号NOWCHで指定される発音チャンネルの状態フラグSTATUS(NOWCH)が「0」の空きチャンネルが見つかると、上記ステップSB2の判断結果は「YES」になり、ステップSB5に進む。ステップSB5では、カウンタCOUNTERの値を、レジスタBEGINWKおよびレジスタENDWKにストアする。すなわち、空きチャンネルとなっている区間を検出する為に、最初に見つけた空きチャンネルの番号(空きチャンネル先頭番号)をレジスタBEGINWKおよびレジスタENDWKの双方にストアしておく。
次いで、ステップSB6では、カウンタCOUNTERおよび現在チャンネル番号NOWCHを歩進させ、歩進させた現在チャンネル番号NOWCHの値が「32」に達してチャンネルサーチが一巡していれば現在チャンネル番号NOWCHを初期値「1」にリセットするCOUNT_INC処理を実行する。続いて、ステップSB7では、レジスタENDWKの値(空きチャンネル終端番号)からレジスタBEGINWKの値(空きチャンネル先頭番号)を減算した値が「31」、つまり全ての発音チャンネルが発音割り当てされていない空きチャンネルであるかどうかを判断する。
レジスタENDWKに、空きチャンネル終端番号がストアされていない状況では、上記ステップSB7の判断結果は「NO」になり、ステップSB8に進む。ステップSB8では、歩進された現在チャンネル番号NOWCHで指定される発音チャンネルの状態フラグSTATUS(NOWCH)が「0」、つまり空きチャンネルであるか否かを判断する。空きチャンネルであると、判断結果は「YES」になり、ステップSB9に進み、歩進されたカウンタCOUNTERの値を空きチャンネル終端番号としてレジスタENDWKにストアした後、上述のステップSB6に処理を戻す。
以後、ステップSB6〜SB9では、カウンタCOUNTERおよび現在チャンネル番号NOWCHの歩進に応じて空きチャンネルを見つける毎に、その空きチャンネルの番号をレジスタENDWKにストアして空きチャンネル終端番号を更新する。
そして、チャンネルサーチが一巡した時に、レジスタENDWKの値(空きチャンネル終端番号)からレジスタBEGINWKの値(空きチャンネル先頭番号)を減算して得られる空きチャンネル区間(ENDWK−BEGINWK)が「31」であった場合、すなわち全ての発音チャンネルが空きチャンネルであると、上述したステップSB7の判断結果が「YES」になり、ステップSB10に進み、レジスタCHに「1」をセットし、続くステップSB11では、レジスタCHの値で指定される発音チャンネル(CH)の発音を音源17に指示して本処理を終える。
一方、歩進された現在チャンネル番号NOWCHで指定される発音チャンネルの状態フラグSTATUS(NOWCH)が「1」、つまり発音中のチャンネルを検出すると、上記ステップSB8の判断結果は「NO」になり、ステップSB12に進む。ステップSB12では、空きチャンネル区間(ENDWK−BEGINWK)が、レジスタENDとレジスタBEGINとの減算値以上であるか否かを判断する。
ステップSB12に進む最初のパスでは、レジスタENDおよびレジスタBEGINの初期値が共に「0」なので、ステップSB12の判断結果は「YES」になり、ステップSB13に進む。ステップSB13では、レジスタBEGINWKの値(空きチャンネル先頭番号)をレジスタBEGINに、レジスタENDWKの値(空きチャンネル終端番号)をレジスタENDにストアする。これにより、チャンネルサーチで最初に得られた空きチャンネル区間(ENDWK−BEGINWK)が、最も長く連続する空きチャンネル区間(END−BEGIN)として保存される。
そして、2回目以降のパスでは、上記ステップSB6〜SB9のチャンネルサーチで新たに得られた空きチャンネル区間(ENDWK−BEGINWK)が、最も長く連続する空きチャンネル区間(END−BEGIN)以上であるかどうかを判断し、ENDWK−BEGINWK<END−BEGINであれば、ステップSB12の判断結果は「NO」になり、図6のステップSB3に処理を戻す。
一方、ENDWK−BEGINWK≧END−BEGINならば、ステップSB12の判断結果は「YES」になり、上述したステップSB13に進み、チャンネルサーチで新たに得られた空きチャンネル区間(ENDWK−BEGINWK)を、最も長く連続する空きチャンネル区間(END−BEGIN)に更新して保存した後、図6のステップSB3に処理を戻す。
そして、図6のステップSB3で歩進されたカウンタCOUNTERが「32」を超えた場合、すなわち全ての発音チャンネルの中から空きチャンネルを探し終えると、前述したステップSB4の判断結果が「YES」になり、ステップSB14に進む。ステップSB14では、レジスタBEGINの値が初期値「0」であるか否かを判断する。レジスタBEGINの値が初期値「0」のままであると、判断結果は「YES」となり、この場合、最も長く連続する空きチャンネル区間(END−BEGIN)が取得されていない状態であるとして本処理を終える。
これに対し、レジスタBEGINの値が初期値「0」でない場合、すなわち最も長く連続する空きチャンネル区間(END−BEGIN)が取得済みであると、上記ステップSB14の判断結果は「NO」になり、ステップSB15に進み、最も長く連続する空きチャンネル区間(END−BEGIN)の中央に該当するチャンネル番号(BEGIN+END)/2を算出してレジスタCHにストアする。
次いで、ステップSB16では、レジスタCHにストアしたチャンネル番号(BEGIN+END)/2が、音源17の発音チャンネル数(32チャンネル)を超えているかどうかを判断する。チャンネル番号(BEGIN+END)/2が、音源17の発音チャンネル数(32チャンネル)を超えていると、判断結果は「YES」となり、ステップSB17に進み、レジスタCHにストアされたチャンネル番号(BEGIN+END)/2から32チャンネル分を減算した後、ステップSB18に進む。
一方、レジスタCHにストアしたチャンネル番号(BEGIN+END)/2が、音源17の発音チャンネル数(32チャンネル)を超えていなければ、上記ステップSB16の判断結果は「NO」になり、ステップSB18に進む。ステップSB18では、レジスタCHの値で指定される発音チャンネル(CH)の発音を音源17に指示して本処理を終える。
このように、発音要求発生処理では、音源17が有する複数の発音チャンネルの中から発音割り当てされていない空きチャンネルが最も長く連続する空きチャンネル区間(END−BEGIN)を抽出し、その抽出した空きチャンネル区間(END−BEGIN)の中央に該当するチャンネル番号(BEGIN+END)/2の発音チャンネルに新たな発音を割り当てるようになっている。
以上説明したように、本実施形態では、CPUおよび音源がメモリを共用するように構成された楽音発生装置において、音源17が有する複数の発音チャンネルの中から発音割り当てされていない空きチャンネルが最も長く連続する空きチャンネル区間(END−BEGIN)を抽出し、その抽出した空きチャンネル区間(END−BEGIN)の中央に該当するチャンネル番号(BEGIN+END)/2の発音チャンネルに新たな発音を割り当て、これにより連続的に発音割り当てされる発音チャンネルを減らすことで音源と共用するメモリへのアクセス待ち時間を最小化するので、メモリアクセス待ちに起因する発音遅れや音切れを回避することが出来る。
なお、上述した実施形態では、発音割り当てされていない空きチャンネルが最も長く連続する空きチャンネル区間(END−BEGIN)を探し出し、その区間の中央に該当する空きチャンネルに新たな発音を割り当てるようにしたが、これに限らず、空きチャンネル区間の中で新たに発音割り当てしようとする空きチャンネルが発音中の他の発音チャンネルと隣り合わないようにチャンネル指定する態様や、乱数を用いて使用されるチャンネルが特定の区間に偏らないようにする態様であっても構わない。
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
(付記)
[請求項1]
メモリを共用するCPUおよび音源を備えるとともに、当該音源は複数のタイムスロット夫々に対応して割り当てられ、発音要求割り当てに応答して楽音を生成して発音させる発音チャンネルを複数有する楽音発生装置において、
新たな発音要求発生に応答して、発音していない空きの発音チャンネルが連続して割り当てられているタイムスロットが存在する区間の有無を判別する区間判別手段と、
前記区間判別手段により区間が有ると判別された場合は、当該区間を取得するとともに、取得された区間の中で、発音中の発音チャンネルが割り当てられている区間と隣り合わない区間に割り当てられている空きの発音チャンネルに前記新たな発音要求を割り当てる発音割り当て手段と、
を有する楽音発生装置。
[請求項2]
前記発音割り当て手段は、前記複数のタイムスロットの中から発音していない空きの発音チャンネルが連続して割り当てられているタイムスロットが存在する区間を全て抽出し、抽出した区間の内で最も長い区間を取得する請求項1記載の楽音発生装置。
[請求項3]
前記発音割り当て手段は、前記取得された区間の中央に位置するスロットに割り当てられている空きの発音チャンネルに前記新たな発音を割り当てる請求項1記載の楽音発生装置。
[請求項4]
メモリを共用するCPUおよび音源を備えるとともに、当該音源は複数のタイムスロット夫々に対応して割り当てられ、発音要求割り当てに応答して楽音を生成して発音させる発音チャンネルを複数有する楽音発生装置において、前記CPUに、
新たな発音要求に応答して、発音していない空きの発音チャンネルが連続して割り当てられているタイムスロットが存在する区間の有無を判別する区間判別ステップと、
前記区間が有ると判別された場合は、当該区間を取得するとともに、取得された区間の中で、発音中の発音チャンネルが割り当てられている区間と隣り合わない区間に割り当てられている空きの発音チャンネルに前記新たな発音要求を割り当てる発音割り当てステップと、
を実行させるプログラム。
10 鍵盤
11 スイッチ部
12 表示部
13 ROM
14 CPU
15 RAM(共用メモリ)
16 OR回路
17 音源
18 サウンドシステム
100 楽音発生装置

Claims (4)

  1. メモリを共用するCPUおよび音源を備えるとともに、当該音源は複数のタイムスロット夫々に対応して割り当てられ、発音要求割り当てに応答して楽音を生成して発音させる発音チャンネルを複数有する楽音発生装置において、
    新たな発音要求発生に応答して、発音していない空きの発音チャンネルが連続して割り当てられているタイムスロットが存在する区間の有無を判別する区間判別手段と、
    前記区間判別手段により区間が有ると判別された場合は、当該区間を取得するとともに、取得された区間の中で、発音中の発音チャンネルが割り当てられている区間と隣り合わない区間に割り当てられている空きの発音チャンネルに前記新たな発音要求を割り当てる発音割り当て手段と、
    を有する楽音発生装置。
  2. 前記発音割り当て手段は、前記複数のタイムスロットの中から発音していない空きの発音チャンネルが連続して割り当てられているタイムスロットが存在する区間を全て抽出し、抽出した区間の内で最も長い区間を取得する請求項1記載の楽音発生装置。
  3. 前記発音割り当て手段は、前記取得された区間の中央に位置するスロットに割り当てられている空きの発音チャンネルに前記新たな発音を割り当てる請求項1記載の楽音発生装置。
  4. メモリを共用するCPUおよび音源を備えるとともに、当該音源は複数のタイムスロット夫々に対応して割り当てられ、発音要求割り当てに応答して楽音を生成して発音させる発音チャンネルを複数有する楽音発生装置において、前記CPUに、
    新たな発音要求に応答して、発音していない空きの発音チャンネルが連続して割り当てられているタイムスロットが存在する区間の有無を判別する区間判別ステップと、
    前記区間が有ると判別された場合は、当該区間を取得するとともに、取得された区間の中で、発音中の発音チャンネルが割り当てられている区間と隣り合わない区間に割り当てられている空きの発音チャンネルに前記新たな発音要求を割り当てる発音割り当てステップと、
    を実行させるプログラム。
JP2012021513A 2012-02-03 2012-02-03 楽音発生装置およびプログラム Active JP5896128B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012021513A JP5896128B2 (ja) 2012-02-03 2012-02-03 楽音発生装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012021513A JP5896128B2 (ja) 2012-02-03 2012-02-03 楽音発生装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2013160870A true JP2013160870A (ja) 2013-08-19
JP5896128B2 JP5896128B2 (ja) 2016-03-30

Family

ID=49173170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012021513A Active JP5896128B2 (ja) 2012-02-03 2012-02-03 楽音発生装置およびプログラム

Country Status (1)

Country Link
JP (1) JP5896128B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244478A (ja) * 1994-03-03 1995-09-19 Roland Corp 作曲装置
JPH1097258A (ja) * 1996-08-02 1998-04-14 Yamaha Corp 波形メモリ音源装置および楽音発生装置
JP2005266662A (ja) * 2004-03-22 2005-09-29 Kawai Musical Instr Mfg Co Ltd 音源装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244478A (ja) * 1994-03-03 1995-09-19 Roland Corp 作曲装置
JPH1097258A (ja) * 1996-08-02 1998-04-14 Yamaha Corp 波形メモリ音源装置および楽音発生装置
JP2005266662A (ja) * 2004-03-22 2005-09-29 Kawai Musical Instr Mfg Co Ltd 音源装置

Also Published As

Publication number Publication date
JP5896128B2 (ja) 2016-03-30

Similar Documents

Publication Publication Date Title
JP5534388B2 (ja) 楽音生成装置
JP5614420B2 (ja) 楽音発生装置、電子楽器、プログラム及び楽音発生方法
KR960042327A (ko) 악음생성방법 및 장치
CN105590620B (zh) 处理装置、处理方法以及电子乐器
JP4025501B2 (ja) 楽音発生装置
KR920001424A (ko) 악음 파형 발생장치
JPS634195B2 (ja)
JP2008249756A (ja) 楽音発生装置
JP5915420B2 (ja) 楽音発生装置、楽音発生方法、電子楽器及びプログラム
JP5896128B2 (ja) 楽音発生装置およびプログラム
JPS5922238B2 (ja) キ−アサイナ
JPH09258737A (ja) コンピュータソフトウェアを用いた音源システム
JP2773648B2 (ja) 電子楽器及び自動演奏装置
JPS6340319B2 (ja)
JP4353225B2 (ja) 楽音形成装置
JP2008015315A (ja) 楽音発生装置および楽音発生処理プログラム
US11042380B2 (en) Apparatus, method and computer program for processing instruction
JP3978928B2 (ja) 楽音生成装置
JP3050779B2 (ja) 信号処理装置
JP4063286B2 (ja) 音源装置
JP3740717B2 (ja) 音源装置及び楽音生成方法
JP2713107B2 (ja) 自動演奏装置
JPH09244653A (ja) 外部波形を入力可能な波形メモリ型楽音発生装置
JP2970372B2 (ja) 音源パラメータ供給装置
JPH10177388A (ja) サウンドメモリアクセス制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150730

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150916

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160216

R150 Certificate of patent or registration of utility model

Ref document number: 5896128

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150