Nothing Special   »   [go: up one dir, main page]

JP4513625B2 - 楽音発生装置および楽音発生処理のプログラム - Google Patents

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

Info

Publication number
JP4513625B2
JP4513625B2 JP2005090371A JP2005090371A JP4513625B2 JP 4513625 B2 JP4513625 B2 JP 4513625B2 JP 2005090371 A JP2005090371 A JP 2005090371A JP 2005090371 A JP2005090371 A JP 2005090371A JP 4513625 B2 JP4513625 B2 JP 4513625B2
Authority
JP
Japan
Prior art keywords
port
sounding
priority
channels
channel
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.)
Expired - Fee Related
Application number
JP2005090371A
Other languages
English (en)
Other versions
JP2006276086A (ja
Inventor
健 寺尾
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 JP2005090371A priority Critical patent/JP4513625B2/ja
Priority to KR1020077012378A priority patent/KR100901555B1/ko
Priority to CN2006800013541A priority patent/CN101080764B/zh
Priority to PCT/JP2006/305630 priority patent/WO2006103980A1/en
Priority to US11/378,654 priority patent/US7465865B2/en
Publication of JP2006276086A publication Critical patent/JP2006276086A/ja
Application granted granted Critical
Publication of JP4513625B2 publication Critical patent/JP4513625B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/18Selecting circuits
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/18Selecting circuits
    • G10H1/183Channel-assigning means for polyphonic instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

本発明は、楽音発生装置および楽音発生処理のプログラムに関し、特に、複数のポートの各々に対して楽音発生の用途が設定される楽音発生装置および楽音発生処理のプログラムに関するものである。
電子楽器などの楽音発生装置においては、1つのポートに複数のチャンネルを割り当てて、チャンネルごとに楽音の音色を設定して同時に発音させるような構成になっている。例えば、MIDIの1.0規格によれば、1つのポートに対して最大16チャンネルに対してジェネレータ(音源)の割り当てが設定可能であり、同時に16種類の音色で楽音を発生できる。さらに、近年においては、32種類ないし64種類の音色のジェネレータを複数のポートで共有して、各ポートの複数のチャンネルにジェネレータを割り当てることが行われている。例えば、曲の複数のパートであるメロディパート、リズムパート、コードパート、ベースパートを、楽音発生の用途として各ポートに設定して、多種類の音色(ポリフォニック)で豊かな音楽性の発音が可能になっている。一方、鍵盤装置やその他の外部MIDI機器から入力される楽音データに対して、任意の用途であるパートのジェネレータを割り当てるチャンネル数が不足する場合がある。このような場合に、他のパートのチャンネルを一時的に使用することが行われている。
ただし、音楽的に重要なパート、例えばメロディパートについては、他のパートのチャンネルが不足した場合でも、メロディパートのチャンネルを一時的に不足したチャンネルとして使用しないように、ポートごとに優先順位を設定するように構成されている。すなわち、優先順位の高いパートに対して新たに発音が要求された場合に、そのパートに空きチャンネルがない場合には、優先順位の低いパートで発音中のチャンネルのジェネレータを消音して空きチャンネルとし、その空きチャンネルを優先順位の高いパートに対する新たに発音に割り当てる。
さらに近年においては、携帯電話機のような移動通信端末の内部に楽音発生装置を設けて、着信音のメロディ(着メロ)、ゲームの擬似音、ネットワークからダウンロードした曲の再生音などを発音させることが行われている。携帯電話機は年々進化しているので、近い将来においては、電子楽器と同じ程度の音楽的な性能が要求されるようになることが予想される。
ある特許文献の電子楽器の提案においては、発音タイミングが到来したときに空いている発音チャンネルがあるか否かを判定し、空きチャンネルがない場合に、消音優先順位の最も高いパートから順に、そのパートで発音中のチャンネルが存在するか否かを判定する。発音中のチャンネルが検出されたパートにおいて、所定の条件に従って1つの発音中チャンネルを選択して、そのチャンネルの発音を停止させ、開放したチャンネルを新たなキーオン情報に割り当てる。さらに、実施例の変形例として、ユーザの操作、自動演奏データの中のコマンド、MIDIのエクスクルーシブ・メッセージ等により、消音優先順位を変更可能にすることが記述されている。このように構成することにより、発音チャンネル数が不足する状態が発生しても、必要な音が消去されない。(特許文献1参照)
また、ある特許文献の電子楽器のアサイナの発明においては、複数のパートの1つを演奏するための演奏データが新たに入力されたときに、その新たな演奏データを割り当てる楽音発音チャンネルを選定する際に、その新たな演奏データを割り当てる楽音発生チャンネルが不足する場合には、記憶手段に記憶されたパートの優先順位に基づいて、優先順位が低いパートが割り当てられている楽音発音チャンネルの方から順に選定する。このように構成することにより、各パートが使用する楽音発生チャンネルの数が各パートごとに固定配分されていないので、新たに入力されるパートは必要な数の楽音発生チャンネルを獲得でき、よって演奏音が制限されず、演奏表現を豊かにすることができる。(特許文献2参照)
特開平8−202361号公報 特許第2562260号公報(特開平5−210386号公報)
上記特許文献1および特許文献2においては、あるパートに対して新たに発音すべき要求があったときに、発音するチャンネルが不足した場合には、優先順位が低く設定されているパートが常に犠牲になってしまう。しかしながら、複数のポートの各々に設定されている用途に対して、優先順位が付けられない場合もある。例えば、近年の携帯電話機においては、ポリフォニックな楽音を用いてゲームを行う機能になっているが、ゲーム中に着信があったときに、ゲームを中断することなく着信を受けたい場合もある。ところが、着信の用途に設定されているポートの優先順位が低い場合には着信を認知できず、逆にゲームの用途に設定されているポートの優先順位が低い場合にはゲームが中断されてしまう。
なお、特許文献1においては、1つの優先順位に複数のパートあるいはMIDIチャンネルが割り当てられていてもよいと記載され、同じ優先順位内においては最も発音数の多いパートの中から消音チャンネルを選択してもよいし、各パートのチャンネルを順番に選択するようにしてもよいと記載されている。しかしながら、この構成は、1つの優先順位に1つのパートあるいはMIDIチャンネルが割り当てられている構成と実質的に同じであり、1つの優先順位に複数のパートあるいはMIDIチャンネルを割り当てても、優先順位が低く設定されているパートが常に犠牲になってしまう状態は同じである。
本発明は、このような従来の課題を解決するためのものであり、複数のポートの各々に用途が設定されている場合に、あるポートに対して新しい発音の要求があったときに、そのポートのチャンネルだけでは不足する場合でも、他のポートが犠牲になる確率を低くしながら、新しい発音の要求に応えるようにすることを目的とする。
請求項1に記載の楽音発生装置は、複数のポートの各々に対して楽音発生の用途を設定する用途設定手段と、前記用途設定手段によって設定された用途に対して優先順位を設定する順位設定手段と、各ポートに対して複数種類の音源の中から任意の音源を割り当てて発音するチャンネルの最大数を設定するチャンネル設定手段と、任意のポートに対して新たに発音を増加する要求があったときに、当該任意のポートに設定されている用途の優先順位と同じ優先順位の他の用途が設定されているポートが存在するか否か判別する第1の判別手段と、この第1の判別手段によりポートが存在しないと判別された場合は、前記任意のポートに含まれる発音中のチャンネルの数と、当該任意のポートに設定されたチャンネルの最大数とが一致するか否かを判別する第2の判別手段と、この第2の判別手段により一致すると判別された場合に、前記任意のポートの発音中のチャンネルの発音を停止して新たな発音を割り当てる第1の割り当て手段と、前記第1の判別手段により前記ポートが存在すると判別された場合は、前記同じ優先順位の用途が設定されているポート夫々における発音中のチャンネルの総数と当該ポート夫々に設定されたチャンネルの最大数の総数とが一致するか否かを判別する第3の判別手段と、この第3の判別手段により一致すると判別された場合に、前記同じ優先順位の用途が設定されているポートに含まれる発音中のチャンネルを停止して新たな発音を割り当てる第2の割り当て手段と、前記第2の判別手段あるいは第3の判別手段にて一致しないと判別された場合に前記同じ優先順位の用途が設定されているポートに含まれる発音中でないチャンネルのいずれかに新たな発音を割り当てる第3の割り当て手段と、を備えた構成になっている。
請求項1の楽音発生装置において、請求項2に記載したように、前記第3の割り当て手段は、前記同じ優先順位の用途が設定されているポートに含まれる発音中でないチャンネルの数が新たに増加する発音の数より少ない場合に、当該同じ優先順位よりも低い優先順位の他の用途が設定されているポートを求め、当該ポートにおけるチャンネルに前記新たに増加する発音を割り当てる第4の割り当て手段を有するような構成にしてもよい。
請求項の楽音発生装置において、請求項3に記載したように、前記第4の割り当て手段は、前記同じ優先順位よりも低い優先順位の用途の中で最も低い優先順位の用途が設定されているポートを求めるような構成にしてもよい。
請求項2の楽音発生装置において、請求項4に記載したように、前記第4の割り当て手段は、当該同じ優先順位よりも低い優先順位の用途が設定されている他のポートを求める場合に、発音中のチャンネルを含まないポートを除外するような構成にしてもよい。
請求項5に記載の楽音発生処理のプログラムは、コンピュータに、複数のポートの各々に対して楽音発生の用途を設定するステップAと、前記ステップAによって設定された用途に対して優先順位を設定するステップBと、各ポートに対して複数種類の音源の中から任意の音源を割り当てて発音するチャンネルの最大数を設定するステップCと、任意のポートに対して新たに発音を増加する要求があったときに、当該任意のポートに設定されている用途の優先順位と同じ優先順位の他の用途が設定されているポートが存在するか否か判別するステップDと、このステップDによりポートが存在しないと判別された場合は、前記任意のポートに含まれる発音中のチャンネルの数と、当該任意のポートに設定されたチャンネルの最大数とが一致するか否かを判別するステップEと、このステップEにより一致すると判別された場合に、前記任意のポートの発音中のチャンネルの発音を停止して新たな発音を割り当てるステップFと、前記ステップDにより前記ポートが存在すると判別された場合は、前記同じ優先順位の用途が設定されているポート夫々における発音中のチャンネルの総数と当該ポート夫々に設定されたチャンネルの最大数の総数とが一致するか否かを判別するステップGと、このステップGにより一致すると判別された場合に、前記同じ優先順位の用途が設定されているポートに含まれる発音中のチャンネルを停止して新たな発音を割り当てるステップHと、前記ステップEあるいはステップGにて一致しないと判別された場合に前記同じ優先順位の用途が設定されているポートに含まれる発音中でないチャンネルのいずれかに新たな発音を割り当てるステップIと、を実行させる。
本発明の楽音発生装置および楽音発生処理のプログラムによれば、複数のポートの各々に用途が設定されている場合に、あるポートに対して新しい発音の要求があったときに、そのポートのチャンネルだけでは不足する場合でも、他のポートが犠牲になる確率を低くしながら、新しい発音の要求に応えることができるという効果が得られる。
以下、本発明による楽音発生装置の実施形態について図を参照して説明する。
図1は、実施形態における楽音発生楽器の構成を示すブロック図である。CPU1は、システムバスを介して、ROM2、RAM3、スイッチ部(Switch)4、表示部(Display)5、音源6に接続され、これら各部との間でコマンドおよびデータの授受を行って、この楽音発生を制御する。例えば、音源6は、CPU1の発音指示に応じて、波形ROM7から波形データを読み出して楽音信号を生成し、D/A変換器(DAC)8によってアナログのオーディオ出力信号に変換して、サウンドシステム(図示せず)に送出するとともに、CPU1から消音指示があると消音処理を行う。
CPU1は、MAX_GEN個のジェネレータを有し、MIDIインタフェース(I/F)9を介して、MAX_PORT個の複数のMIDI INポートによって、鍵盤装置などの外部のMIDI機器から発音を要求するMIDIデータを受信する。また、各ポートに対して楽音発生の用途および使用できるジェネレータの最大数、すなわち使用できるチャンネルの最大数が設定されている。
MAX_PORT個のポートにおける最大同時発音数の変数配列をmax_poly[ ]とすると、0からMAX_PORT−1までの各ポートの変数配列は、max_poly[0]〜max_poly[MAX_PORT−1]で表わされる。各ポートに対する用途としては、例えば、携帯電話機の場合には、発信元に応じてメロディが変化する複数種類の着信音の用途、ゲームの複数種類の擬似音の用途、音楽再生の用途、スイッチの操作音の用途などがある。
また、MAX_PORT個のポートにおける現在発音中のチャンネル数の変数配列をcrnt_poly[ ]とすると、0からMAX_PORT−1までの各ポートの変数配列は、crnt_poly[0]〜crnt_poly[MAX_PORT−1]で表わされる。
さらに、MAX_PORT個のポートにおける優先順位の変数配列をpriority[ ]とすると、0からMAX_PORT−1までの各ポートの変数配列は、priority[0]〜priority[MAX_PORT−1]で表わされる。
次に、図1の楽音発生装置の動作について、図2ないし図7に示すフローチャートに基づいて説明する。
図2は、CPU1のメインルーチンのフローチャートである。まず、初期化処理を行う(ステップSA1)。初期化処理においては、各ポートにおける最大同時発音数の変数配列max_poly[0]〜max_poly[MAX_PORT−1]のすべてにMAX_GENをセットし、各ポートの現在発音中のチャンネル数の変数配列crnt_poly[0]〜crnt_poly[MAX_PORT−1]のすべてに0をセットし、各ポートの優先順位の変数配列priority[0]〜priority[MAX_PORT−1]に0をセットする。
初期化処理の後は、ステップSA2からステップSA8までのループ処理を繰り返す。スイッチ入力があるか否かを判別し(ステップSA2)、スイッチ入力があったときは、スイッチ処理を実行する(ステップSA3)。スイッチ処理についてはさらに後述する。表示更新が必要か否かを判別し(ステップSA4)、表示更新が必要な場合には表示更新処理を実行する(ステップSA5)。例えば、スイッチ処理によって設定が変更されたときは、その変更内容を表示する。MIDI入力があるか否かを判別し(ステップSA6)、MIDI入力があったときは、MIDI処理を実行する(ステップSA7)。MIDI処理の中には、発音指示、消音指示、エフェクタ指示などがある。次に、音源発音処理を行う(ステップSA8)。音源発音処理についてはさらに後述する。
図3は、メインルーチンにおけるステップSA3のスイッチ処理のフローチャートである。指定されたポートnの同時発音数の設定スイッチが押されたか否かを判別し(ステップSB1)、このスイッチが押されたときは、max_poly[n]に設定された同時発音数をセットする(ステップSB2)。指定されたポートnの優先順位の設定スイッチが押されたか否かを判別し(ステップSB3)、このスイッチが押されたときは、priority[n]に設定された優先順位をセットする(ステップSB4)。なお、優先順位は設定される数値が小さいほど順位は高い。
例えば、携帯電話機の場合において、4つのポート0〜3が、それぞれ着信音の用途(ポート0)、ゲームの用途(ポート1)、音楽再生の用途(ポート2)、スイッチ操作の用途(ポート3)に設定されていたとする。ポート0〜3に対して同時発音数が32、32、32、8に設定され、優先順位が0、0、1、2に設定された場合には、下記のような変数配列になる。
max_poly[0]=32
max_poly[1]=32
max_poly[2]=32
max_poly[3]=8
priority[0]=0
priority[1]=0
priority[2]=1
priority[3]=2
この例のように、複数のポートに同じ優先順位を設定してもよい。
図4は、図2のメインルーチンにおけるステップSA8の音源発音処理のフローチャートである。まず、各ポートのチャンネルに割り当てられている発音中のジェネレータに対して音高や音量を更新する制御を行う(ステップSC1)。次に、任意のMIDI INポートpに対して新しい発音の要求があるか否かを判別する(ステップSC2)。新しい発音の要求がない場合にはメインルーチンに戻るが、新しい発音の要求があったときは、そのポートのpriority[p]と同じ値のpriorityのポートがあるか否かを判別する(ステップSC3)。同じ値のpriorityのポートがない場合には、単ポート時のジェネレータ割り当てを行う(ステップSC4)。一方、同じ値のpriorityのポートがある場合には、複数ポート時のジェネレータ割り当てを行う(ステップSC5)。いずれかのジェネレータ割り当てを行った後は、該当するポートのチャンネルにジェネレータが割り当てられたか否かを判別し(ステップSC6)、ジェネレータが割り当てられた場合には、そのチャンネルによって新しい発音を音源6に対して指示する(ステップSC7)。発音を指示した後、又は、該当するポートのチャンネルにジェネレータが割り当てられない場合には、メインルーチンに戻る。
図5は、図4におけるステップSC4の単ポート時のジェネレータ割り当て処理のフローチャートである。ポートpのmax_poly[p]とcrnt_poly[p]とが同じであるか否かを判別する(ステップSD1)。すなわち、MIDI INポートpの全てのチャンネルにジェネレータが割り当てられて、ポートpが最大発音数に達しているか否かを判別する。最大発音数に達していて、新たなジェネレータを割り当てる空きチャンネルがない場合には、MIDI INポートpのチャンネルに割り当てられて発音をしているジェネレータを新しい発音の必要数分だけ消音して、新しい発音のジェネレータを割り当てる(ステップSD2)。すなわち、任意のポートが最大発音数に達していて空きチャンネルが全くない場合に、さらにそのポートに対して新しい発音が要求されたときは、他のポートの発音状況にかかわらず、そのポートの中だけでチャンネルを調整して、新しい発音のジェネレータを割り当てる。
一方、MIDI INポートpの全てのチャンネルに割り当てられているジェネレータが最大発音数に達してなく、ジェネレータを割り当てていない空きチャンネルが存在する場合には、他のジェネレータのサーチ処理を実行する(ステップSD3)。すなわち、ポートpの空きチャンネルを含め、新しい発音に対して必要数分のチャンネルをサーチする。
図6は、他のジェネレータのサーチ処理のフローチャートである。新しい発音が要求されているポートpに発音していないチャンネルが必要数あるか否かを判別し(ステップSE1)、必要数ある場合には、発音していないチャンネルにジェネレータを新しい発音に対して割り当て(ステップSE2)、crnt_poly[p]に新規発音ジェネレータ数を加算する(ステップSE3)。そして、メインルーチンに戻る。
一方、ステップSE1において、ポートpに発音していないチャンネルが必要数ない場合には、ポートpのpriority[p]よりも低い優先順位のpriority[n]を満たすポートnを全て求める(ステップSE4)。ポートnのチャンネルで発音中のジェネレータがない場合には、そのポートnを除外する(ステップSE5)。残りのポートnの中で、priority[i]が最大(優先順位が最低)のポートiを求める(ステップSE6)。そして、ポートiの発音をしているチャンネルのジェネレータを必要数だけ消音して、新しい発音のために割り当てる(ステップSE7)。そして、メインルーチンに戻る。
上記した携帯電話機の場合を例に採ると、着信音の用途(ポート0)、ゲームの用途(ポート1)、音楽再生の用途(ポート2)、スイッチ操作の用途(ポート3)で、音楽再生のポート2の最大発音数(最大チャンネル数)が32で優先順位が1である。いま、ポート2のチャンネルで発音中のジェネレータ数が28であるときに、さらに新しい発音が要求された場合には、ポート2のpriority[2]=1と同じ優先順位の他のポートがない。この場合には、単ポート時のジェネレータ割り当てになる。この場合において、必要なジェネレータが4である場合には、ポート2だけでその新しい発音に対応できる。しかし、必要なジェネレータが8である場合には、低い優先順位priority[2]=2のポート3において、発音をしている4個のジェネレータを消音して、その空きチャンネルをポート2の新しい発音のために割り当てる。
図7は、図4における複数ポート時のジェネレータ割り当て処理のフローチャートである。この場合のジェネレータ割り当てにおいては、ポートpと同じ優先順位のポートqのそれぞれの最大発音数であるmax_poly[p]とmax_poly[q]を合算して、その値を変数max_sumにストアする(ステップSF1)。次に、ポートpおよびポートqにおいてそれぞれ発音中のチャンネルであるcrnt_poly[p]とcrnt_poly[q]を合算して、その値を変数crnt_sumにストアする(ステップSF2)。そして、max_sumの値とcrnt_sumの値が同じであるか否かを判別する(ステップSF3)。すなわち、ポートpおよびポートqにおいて合算した発音中のジェネレータ数が、合算した最大発音数(最大チャンネル数)に達しているか否かを判別する。合算した発音中のジェネレータ数が合算した最大発音数に達している場合には、crnt_sumのカウントに入ったジェネレータから、新しい発音に必要数分のジェネレータを消音して新しい発音のために割り当てる(ステップSF4)。そして、メインルーチンに戻る。すなわち、ポートpおよびポートqに発音中でない空きチャンネルが全くない場合には、低い優先順位の他のポートを犠牲にすることなく、ポートpおよびポートqだけでチャンネルを調整して新しい発音に対処する。
一方、合算した発音中のジェネレータ数が最大発音数に達してない場合には、単ポート時のジェネレータ割り当ての場合と同様に、図6に示した他のジェネレータのサーチ処理を実行する(ステップSF5)。そして、メインルーチンに戻る。
上記した携帯電話機の場合を例に採ると、着信音の用途(ポート0)、ゲームの用途(ポート1)、音楽再生の用途(ポート2)、スイッチ操作の用途(ポート3)で、着信音のポート0の最大発音数(ジェネレータ)が32で優先順位が0である。いま、ポート0のチャンネルで発音中のジェネレータ数が28であるときに、さらに新しい発音が要求された場合には、ポート0のpriority[0]=0と同じ優先順位のポート1がある。この場合には、複数ポート時のジェネレータ割り当てになる。この場合において、ポート1の発音中のジェネレータが28とすると、必要なジェネレータが8である場合には、ポート0およびポート1だけでその新しい発音に対応できる。しかし、必要なジェネレータが16である場合には、低い優先順位priority[2]=2のポート3において、発音をしている8個のジェネレータを消音して、ポート0の新しい発音のために割り当てる。必要なジェネレータが24である場合には、低い優先順位priority[2]=2のポート3において、発音をしている8個のジェネレータを消音し、さらに、priority[2]=1のポート2において、発音をしている8個のジェネレータを消音して、不足している16個のジェネレータを低い優先順位のポート3およびポート2からサーチして、ポート0の新しい発音のために割り当てる。
以上のように、この実施形態によれば、CPU1は、複数のポートの各々に対して楽音発生の用途を設定し、設定した用途に対して優先順位を設定し、さらに、各ポートに対して複数種類の音源の中から任意の音源を割り当てて発音するチャンネルの最大数を設定する。そして、任意のポートに対して新たに発音を増加する要求があったときに、当該発音の増加によって発音すべきチャンネルが不足した場合には、同じ優先順位の用途が設定されている他のポートにおける発音中でないチャンネルを不足するチャンネルに割り当てる。
したがって、複数のポートの各々に用途が設定されている場合に、あるポートに対して新しい発音の要求があったときに、そのポートのチャンネルだけでは不足する場合でも、他のポートが犠牲になる確率を低くしながら、新しい発音の要求に応えることができる。
この場合において、CPU1は、任意のポートに対して新たに発音を増加する要求があったときは、当該ポートにおいて発音中でないチャンネルと同じ優先順位の用途が設定されている他のポートにおいて、発音中でないチャンネルを合算して不足するチャンネルに割り当てる。
したがって、あるポートに対して新しい発音の要求があったときに、そのポートのチャンネルだけでは不足する場合に、同じ優先順位のポート同士でチャンネルを融通し、低い優先順位他のポートがやみくもに犠牲になるような事態を回避する。
また、CPU1は、任意のポートに対して新たに発音を増加する要求があったときに、当該ポートがすでに最大数のチャンネルによって楽音発生中であるときは、当該ポートにおけるチャンネルの発音を停止して不足するチャンネルに割り当てる。
したがって、あるポートに対して新しい発音の要求があったときに、そのポートに空きチャンネルが全くない場合には、他のポートを犠牲にしてまでそのポートをバックアップする必要性はないので、そのポートだけでチャンネルを融通して新しい発音に対処する。
また、CPU1は、同じ優先順位の用途が設定されている他のポートにおける発音中でないチャンネルによっては不足するチャンネルのすべてを補うことができない場合には、同じ優先順位よりも低い優先順位の用途が設定されている他のポートにおけるチャンネルを当該補うことができないチャンネルに割り当てる。
したがって、あるポートに対して新しい発音の要求があったときに、そのポートの空きチャンネルと同じ優先順位の他のポートの空きチャンネルを合算しても、新しい発音の要求に応えることができない状況は、発生する頻度も少なく、優先順位が低い他のポートを一時的に犠牲にしても特に支障がないので、優先順位が低い他のポートのチャンネルで不足するチャンネルを補う。
なお、上記実施形態においては、複数のポートの各々に対して楽音発生の用途を設定する構成の楽音発生装置を例に採って本発明を説明したが、このように物理的に分離したポートでなく、共通のポートを時分割で用いて複数のポートとする構成においても、本発明を適用することができる。
上記実施形態においては、ROM2にあらかじめ記憶された楽音発生処理のプログラムをCPU1が実行する装置の発明について説明したが、汎用のパソコンと鍵盤装置とを組み合わせたシステムによって本発明を実現することも可能である。すなわち、フレキシブルディスク(FD)、CD、MDなどの記憶媒体に記録されている楽音発生処理のプログラム、又は、インターネットなどのネットワークからダウンロードした楽音発生処理のプログラムを、パソコンのハードディスクやフラッシュメモリなどの不揮発性メモリにインストールして、そのプログラムをパソコンが実行することも可能である。この場合には、プログラムの発明やそのプログラムを記録した記録媒体の発明を実現できる。
すなわち、本発明による楽音発生処理のプログラムは、コンピュータに、
複数のポートの各々に対して楽音発生の用途を設定するステップAと、前記ステップAによって設定された用途に対して優先順位を設定するステップBと、各ポートに対して複数種類の音源の中から任意の音源を割り当てて発音するチャンネルの最大数を設定するステップCと、任意のポートに対して新たに発音を増加する要求があったときに、当該発音の増加によって発音すべきチャンネルが不足した場合には、前記ステップBによって同じ優先順位の用途が設定されている他のポートにおける発音中でないチャンネルを不足するチャンネルに割り当てるステップDと、を実行させる。
前記ステップDは、前記任意のポートに対して新たに発音を増加する要求があったときは、当該ポートにおいて発音中でないチャンネルと前記ステップBによって同じ優先順位の用途が設定されている他のポートにおいて発音中でないチャンネルを合算して不足するチャンネルに割り当てる。
前記ステップDは、前記任意のポートに対して新たに発音を増加する要求があったときに、当該ポートがすでに最大数のチャンネルによって楽音発生中であるときは、当該ポートにおけるチャンネルの発音を停止して不足するチャンネルに割り当てる。
前記ステップDは、前記ステップBによって同じ優先順位の用途が設定されている他のポートにおける発音中でないチャンネルによっては不足するチャンネルのすべてを補うことができない場合には、前記ステップBによって当該同じ優先順位よりも低い優先順位の用途が設定されている他のポートにおけるチャンネルを当該補うことができないチャンネルに割り当てる。
本発明の実施形態における楽音発生装置の構成を示すブロック図。 図1のCPUのメインルーチンのフローチャート。 図2におけるスイッチ処理のフローチャート。 図2における音源発音処理のフローチャート。 図4における単ポート時のジェネレータ割り当て処理のフローチャート。 図5における他のジェネレータのサーチ処理のフローチャート。 図4における複数ポート時のジェネレータ割り当て処理のフローチャート。
符号の説明
1 CPU
2 ROM
3 RAM
4 スイッチ
5 表示部
6 音源
7 波形メモリ
8 D/A変換器
9 MIDIインターフェース

Claims (5)

  1. 複数のポートの各々に対して楽音発生の用途を設定する用途設定手段と、
    前記用途設定手段によって設定された用途に対して優先順位を設定する順位設定手段と、
    各ポートに対して複数種類の音源の中から任意の音源を割り当てて発音するチャンネルの最大数を設定するチャンネル設定手段と、
    任意のポートに対して新たに発音を増加する要求があったときに、当該任意のポートに設定されている用途の優先順位と同じ優先順位の他の用途が設定されているポートが存在するか否か判別する第1の判別手段と、
    この第1の判別手段によりポートが存在しないと判別された場合は、前記任意のポートに含まれる発音中のチャンネルの数と、当該任意のポートに設定されたチャンネルの最大数とが一致するか否かを判別する第2の判別手段と、
    この第2の判別手段により一致すると判別された場合に、前記任意のポートの発音中のチャンネルの発音を停止して新たな発音を割り当てる第1の割り当て手段と、
    前記第1の判別手段により前記ポートが存在すると判別された場合は、前記同じ優先順位の用途が設定されているポート夫々における発音中のチャンネルの総数と当該ポート夫々に設定されたチャンネルの最大数の総数とが一致するか否かを判別する第3の判別手段と、
    この第3の判別手段により一致すると判別された場合に、前記同じ優先順位の用途が設定されているポートに含まれる発音中のチャンネルを停止して新たな発音を割り当てる第2の割り当て手段と、
    前記第2の判別手段あるいは第3の判別手段にて一致しないと判別された場合に前記同じ優先順位の用途が設定されているポートに含まれる発音中でないチャンネルのいずれかに新たな発音を割り当てる第3の割り当て手段と、
    を備えた楽音発生装置。
  2. 前記第3の割り当て手段は、前記同じ優先順位の用途が設定されているポートに含まれる発音中でないチャンネルの数が新たに増加する発音の数より少ない場合に、当該同じ優先順位よりも低い優先順位の他の用途が設定されているポートを求め、当該ポートにおけるチャンネルに前記新たに増加する発音を割り当てる第4の割り当て手段を有する請求項1に記載の楽音発生装置。
  3. 前記第4の割り当て手段は、前記同じ優先順位よりも低い優先順位の用途の中で最も低い優先順位の用途が設定されているポートを求める請求項2に記載の楽音発生装置。
  4. 前記第4の割り当て手段は、当該同じ優先順位よりも低い優先順位の用途が設定されている他のポートを求める場合に、発音中のチャンネルを含まないポートを除外する請求項2に記載の楽音発生装置。
  5. コンピュータに、
    複数のポートの各々に対して楽音発生の用途を設定するステップAと、
    前記ステップAによって設定された用途に対して優先順位を設定するステップBと、
    各ポートに対して複数種類の音源の中から任意の音源を割り当てて発音するチャンネルの最大数を設定するステップCと、
    任意のポートに対して新たに発音を増加する要求があったときに、当該任意のポートに設定されている用途の優先順位と同じ優先順位の他の用途が設定されているポートが存在するか否か判別するステップDと、
    このステップDによりポートが存在しないと判別された場合は、前記任意のポートに含まれる発音中のチャンネルの数と、当該任意のポートに設定されたチャンネルの最大数とが一致するか否かを判別するステップEと、
    このステップEにより一致すると判別された場合に、前記任意のポートの発音中のチャンネルの発音を停止して新たな発音を割り当てるステップFと、
    前記ステップDにより前記ポートが存在すると判別された場合は、前記同じ優先順位の用途が設定されているポート夫々における発音中のチャンネルの総数と当該ポート夫々に設定されたチャンネルの最大数の総数とが一致するか否かを判別するステップGと、
    このステップGにより一致すると判別された場合に、前記同じ優先順位の用途が設定されているポートに含まれる発音中のチャンネルを停止して新たな発音を割り当てるステップHと、
    前記ステップEあるいはステップGにて一致しないと判別された場合に前記同じ優先順位の用途が設定されているポートに含まれる発音中でないチャンネルのいずれかに新たな発音を割り当てるステップIと、
    を実行させる楽音発生処理のプログラム。
JP2005090371A 2005-03-28 2005-03-28 楽音発生装置および楽音発生処理のプログラム Expired - Fee Related JP4513625B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005090371A JP4513625B2 (ja) 2005-03-28 2005-03-28 楽音発生装置および楽音発生処理のプログラム
KR1020077012378A KR100901555B1 (ko) 2005-03-28 2006-03-15 사운드 발생 할당 장치, 음악 사운드 발생기 및 사운드 발생 할당 처리 프로그램을 기록한 컴퓨터 판독가능한 기록매체
CN2006800013541A CN101080764B (zh) 2005-03-28 2006-03-15 声音生成分配设备、乐音生成器和声音生成分配处理方法
PCT/JP2006/305630 WO2006103980A1 (en) 2005-03-28 2006-03-15 Sound generation assignment device, music sound generator and sound generation assignment process program
US11/378,654 US7465865B2 (en) 2005-03-28 2006-03-16 Sound generation assignment device, music sound generator and sound generation assignment process program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005090371A JP4513625B2 (ja) 2005-03-28 2005-03-28 楽音発生装置および楽音発生処理のプログラム

Publications (2)

Publication Number Publication Date
JP2006276086A JP2006276086A (ja) 2006-10-12
JP4513625B2 true JP4513625B2 (ja) 2010-07-28

Family

ID=36602646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005090371A Expired - Fee Related JP4513625B2 (ja) 2005-03-28 2005-03-28 楽音発生装置および楽音発生処理のプログラム

Country Status (5)

Country Link
US (1) US7465865B2 (ja)
JP (1) JP4513625B2 (ja)
KR (1) KR100901555B1 (ja)
CN (1) CN101080764B (ja)
WO (1) WO2006103980A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4395845B2 (ja) * 2007-01-18 2010-01-13 株式会社カシオ日立モバイルコミュニケーションズ 電子機器及びプログラム
US20090293505A1 (en) * 2008-05-29 2009-12-03 Cryomech, Inc. Low vibration liquid helium cryostat
US9418641B2 (en) * 2013-07-26 2016-08-16 Audio Impressions Swap Divisi process
JP2017080352A (ja) * 2015-10-30 2017-05-18 株式会社大一商会 遊技機
CN107863093B (zh) * 2017-11-03 2022-01-07 得理电子(上海)有限公司 发音管理方法、装置、电子乐器及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000315085A (ja) * 1999-04-30 2000-11-14 Yamaha Corp 楽音信号発生装置、楽音信号発生方法及び楽音信号を発生させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003311019A (ja) * 2002-04-23 2003-11-05 Konami Co Ltd ゲーム装置及びプログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0634169B2 (ja) * 1985-12-10 1994-05-02 ヤマハ株式会社 発音割当て機能付電子楽器
JPS6475046A (en) * 1987-09-16 1989-03-20 Mouri Seikoku Kenkyusho Ltd Rice mill
JPH02167598A (ja) * 1989-01-26 1990-06-27 Yamaha Corp 電子楽器
JP2641605B2 (ja) * 1990-08-06 1997-08-20 株式会社河合楽器製作所 電子楽器のチャンネル割り当て装置及びチャンネル割り当て方法
JP2562260B2 (ja) * 1992-07-16 1996-12-11 ローランド株式会社 電子楽器のアサイナ
JP3493737B2 (ja) * 1994-08-12 2004-02-03 ヤマハ株式会社 送信ノードおよび受信ノード
JP3372124B2 (ja) 1995-01-20 2003-01-27 株式会社河合楽器製作所 電子楽器
EP0743631B1 (en) * 1995-05-19 2002-03-06 Yamaha Corporation Tone generating method and device
US6263061B1 (en) * 1996-02-13 2001-07-17 Kabushiki Kaish Toshiba Digital button telephone system and extension terminal for the same
JP3329176B2 (ja) * 1996-02-21 2002-09-30 ヤマハ株式会社 発音割当て装置
SG67993A1 (en) * 1996-08-30 1999-10-19 Yamaha Corp Sound source system based on computer software and method of generating acoustic waveform data
JP3671545B2 (ja) * 1996-09-20 2005-07-13 ヤマハ株式会社 電子楽器
JPH10198370A (ja) * 1996-12-28 1998-07-31 Casio Comput Co Ltd 音源制御方法、及び音源装置
US7109406B2 (en) * 2003-10-10 2006-09-19 Stone Christopher L System and method for dynamic note assignment for musical synthesizers
US7728213B2 (en) * 2003-10-10 2010-06-01 The Stone Family Trust Of 1992 System and method for dynamic note assignment for musical synthesizers
KR100678929B1 (ko) * 2003-11-24 2007-02-07 삼성전자주식회사 다채널 디지털 사운드 재생방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000315085A (ja) * 1999-04-30 2000-11-14 Yamaha Corp 楽音信号発生装置、楽音信号発生方法及び楽音信号を発生させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003311019A (ja) * 2002-04-23 2003-11-05 Konami Co Ltd ゲーム装置及びプログラム

Also Published As

Publication number Publication date
KR20070073960A (ko) 2007-07-10
US7465865B2 (en) 2008-12-16
JP2006276086A (ja) 2006-10-12
KR100901555B1 (ko) 2009-06-08
CN101080764B (zh) 2011-08-24
CN101080764A (zh) 2007-11-28
US20060213355A1 (en) 2006-09-28
WO2006103980A1 (en) 2006-10-05

Similar Documents

Publication Publication Date Title
KR100882064B1 (ko) 악음 신호 발생 장치, 방법, 및 컴퓨터 판독가능 기록 매체
JP4513625B2 (ja) 楽音発生装置および楽音発生処理のプログラム
US10475425B2 (en) Musical sound generation device
US5192824A (en) Electronic musical instrument having multiple operation modes
JP3372124B2 (ja) 電子楽器
US6956160B2 (en) Tone generator apparatus sharing parameters among channels
JP3646703B2 (ja) 音声メロディ楽曲生成装置およびそれを用いた携帯端末装置
JP3795495B2 (ja) 音源装置
JP3230265B2 (ja) 電子楽器の発音チャンネル割当装置
JP3537783B2 (ja) 音源装置
JP3285984B2 (ja) マイナス・ワン演奏装置
JP2817521B2 (ja) 電子楽器
JP3430731B2 (ja) 楽音制御システム
JP2007279696A (ja) 合奏システム、コントローラ、およびプログラム
JP2529227Y2 (ja) 電子楽器
JPH1091160A (ja) 電子楽器の効果付与装置
JPH09230860A (ja) 発音割当て装置
JP2022140812A (ja) 電子楽器、方法及びプログラム
JPH10228282A (ja) 音源装置
JP2019168645A (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器
JPH05134671A (ja) 電子楽器
JPH0642146B2 (ja) 楽音発生装置
JP2003044050A (ja) 楽音発生装置及び楽音発生処理のプログラム
JP2000338968A (ja) ステレオ出力電子楽器
JP2000293173A (ja) 楽音発生装置及び楽音発生処理プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070827

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091020

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: 20100420

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100503

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees