JPH0736459A - 電子楽器のアサイン装置 - Google Patents

電子楽器のアサイン装置

Info

Publication number
JPH0736459A
JPH0736459A JP5201223A JP20122393A JPH0736459A JP H0736459 A JPH0736459 A JP H0736459A JP 5201223 A JP5201223 A JP 5201223A JP 20122393 A JP20122393 A JP 20122393A JP H0736459 A JPH0736459 A JP H0736459A
Authority
JP
Japan
Prior art keywords
priority
tone
voice
tone generation
musical
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.)
Pending
Application number
JP5201223A
Other languages
English (en)
Inventor
Takeshi Sakata
毅 坂田
Keiji Ikegami
圭二 池上
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.)
Roland Corp
Original Assignee
Roland Corp
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 Roland Corp filed Critical Roland Corp
Priority to JP5201223A priority Critical patent/JPH0736459A/ja
Publication of JPH0736459A publication Critical patent/JPH0736459A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】持続音型エンベロープを有する楽音と減衰音型
エンベロープを有する楽音とが混在して生成される場合
であっても、合理的なアサイン処理を行う。 【構成】複数の楽音生成手段と、複数の楽音生成手段の
各々が、優先度が異なる複数の選択モードの中のいずれ
の選択モードに属するかを判別する選択モード判別手段
と、複数の楽音生成手段の各々の楽音生成状態に基づい
て、複数の楽音生成手段間の優先度を設定する優先度設
定手段と、選択モード判別手段によって判別された各楽
音生成手段の属する選択モードの優先度および優先度設
定手段によって設定された楽音生成手段間の優先度に基
づいて、複数の楽音生成手段の中から新たな発音指示を
割り当てる楽音生成手段を選択する選択手段と、選択手
段によって選択された楽音生成手段に、新たな発音指示
を割り当てることにより、新たな発音指示に対応する楽
音を生成させる割り当て手段とを有するようにした。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子楽器のアサイン装
置に関し、さらに詳細には、新たな楽音を発音するため
に、複数の楽音生成器の中から所定の楽音生成器を選択
する際に用いる電子楽器のアサイン装置に関する。
【0002】
【発明の背景および従来の技術】一般に多くの電子楽器
においては、楽音を生成するための複数の楽音生成器を
備えている。そして、鍵盤装置の押鍵操作などの発音指
示に対応して、これら複数の楽音生成器の中からいずれ
かの楽音生成器を選択し、選択した楽音生成器に対し
て、発音指示に基づいた音高、音色、音量、エンベロー
プなどの楽音制御パラメータを与え、発音指示に基づく
所望の楽音を生成する処理を行っている。
【0003】上記したような処理を行う装置は、複数の
楽音生成器の中のいずれかの楽音生成器に、発音指示に
対応する楽音制御パラメータを割り当てる(assig
n:アサイン)処理を行うものであることから、「as
signor:アサイナ」(アサイン装置)と称されて
いる。
【0004】ところで、楽音生成器に楽音制御パラメー
タをアサインする場合に、楽音生成を行っていない楽音
生成器が存在すれば、その楽音生成器を選択して楽音制
御パラメータを割り当て、楽音の生成を行えばよい。し
かしながら、全ての楽音生成器が楽音生成中であった場
合には、いずれかの楽音生成器を選択し、選択した楽音
生成器で生成中の楽音を消去した後に、その楽音生成器
で新たな楽音の生成を行わせている。この場合には、楽
音生成器で生成中の楽音を消去することになるので、楽
音制御パラメータをアサインする楽音生成器として、い
ずれの楽音生成器を選択するかが音楽的に重要な問題と
なっていた。
【0005】従来、新たな楽音の生成を行うために、楽
音生成中の楽音生成器の中からいずれの楽音生成器を選
択するかの選択処理方法に関しては、種々の方法が提案
されてきているが、その主なものとしては、以下に説明
する二つの方法がある。
【0006】(1)ヒストリー・アサイン この方法は、時間的に最も古く楽音の生成を開始した楽
音生成器を選択するなどのように、楽音生成に関する履
歴に基づいて楽音生成器を選択する方法である。
【0007】(2)レベル・アサイン この方法は、楽音生成器で生成されている楽音のレベル
を比較し、最もレベルの小さい楽音を生成中の楽音生成
器を選択する方法である。
【0008】上記した方法の中で、ヒストリー・アサイ
ンは、図15(a)に示す持続音型エンベロープを有す
るオルガンなどの音色の楽音をアサインするのに適して
いる。持続音型エンベロープを有する楽音は、押鍵中に
楽音が減衰しきらないため、押鍵の古さにかかわらず同
じレベルの楽音が複数存在し得るので、レベルで評価を
することが困難である。このため、持続音型エンベロー
プを有する楽音は、時間的に最も古く楽音の生成を開始
した楽音生成器を選択するなどのヒストリー・アサイン
によりアサインを行うことが適している。
【0009】また、レベル・アサインは、図15(b)
に示す減衰音型エンベロープを有するピアノなどの音色
の楽音をアサインするのに適している。即ち、減衰音型
エンベロープを有する楽音は、押鍵中でも楽音が減衰し
きるとともに、減衰途中で離鍵された場合には離鍵に対
応する減衰速度となるので、レベルによって評価するレ
ベル・アサインによりアサインを行うことが適してい
る。
【0010】
【発明が解決しようとする課題】ところで、持続音型エ
ンベロープを有する楽音と減衰音型エンベロープを有す
る楽音とを生成できる電子楽器が、従来より知られてい
る。そして、こうした電子楽器におけるアサインの方法
としては、ヒストリー・アサインかレベル・アサインか
のどちらか一方を選択的に用いるようにしていた。
【0011】このため、当該電子楽器において、持続音
型エンベロープを有する楽音と減衰音型エンベロープを
有する楽音とが混在して生成される場合には、それに適
したアサイン処理がなされているとは言えず、このよう
な場合に合理的なアサイン処理を行うことができる電子
楽器のアサイン装置の案出が望まれていた。
【0012】また、上記したように従来の電子楽器にお
いては、アサイン時において楽音生成中でない楽音生成
器が存在する場合には、その楽音生成器にアサインする
ことが行われていた。このため、従来の電子楽器におい
ては、アサイン処理に関して、楽音生成中の楽音生成器
に対する処理と楽音生成中でない楽音生成器に対する処
理とが異なっており、その処理内容が複雑になっていた
という問題点があった。
【0013】本発明は、従来の技術の有するこのような
問題点に鑑みてなされたものであり、その目的とすると
ころは、持続音型エンベロープを有する楽音と減衰音型
エンベロープを有する楽音とが混在して生成される場合
であっても、合理的なアサイン処理を行うことができる
電子楽器のアサイン装置を提供しようとするものであ
る。
【0014】また、本発明の他の目的は、アサイン処理
に関して、楽音生成中の楽音生成器に対する処理と楽音
生成中でない楽音生成器に対する処理の処理内容を同一
にして、アサイン処理を簡素化した電子楽器のアサイン
装置を提供しようとするものである。
【0015】
【課題を解決するための手段】上記目的を達成するため
に、本発明による電子楽器のアサイン装置は、複数の楽
音生成手段と、上記複数の楽音生成手段の各々が、優先
度が異なる複数の選択モードの中のいずれの選択モード
に属するかを判別する選択モード判別手段と、上記複数
の楽音生成手段の各々の楽音生成状態に基づいて、上記
複数の楽音生成手段間の優先度を設定する優先度設定手
段と、上記選択モード判別手段によって判別された各楽
音生成手段の属する選択モードの優先度および上記優先
度設定手段によって設定された楽音生成手段間の優先度
に基づいて、上記複数の楽音生成手段の中から新たな発
音指示を割り当てる楽音生成手段を選択する選択手段
と、上記選択手段によって選択された楽音生成手段に、
上記新たな発音指示を割り当てることにより、上記新た
な発音指示に対応する楽音を生成させる割り当て手段と
を有するようにしたものである。
【0016】また、本発明による電子楽器のアサイン装
置は、予め優先順位を設定された複数のパートのそれぞ
れに、適宜属するようにされた複数の楽音生成手段と、
上記複数の楽音生成手段の中で楽音生成中でない楽音生
成手段を、上記複数のパートの中の最も優先順位の低い
パートに属させる配属手段と、上記優先順位に従って、
上記最も優先順位の低いパートに属する上記配属手段に
よって配属された楽音生成中でない楽音生成手段から、
優先順位の高いパートに属する楽音生成手段へと、新た
な発音指示を割り当てる楽音生成手段を順次選択する選
択手段と、上記選択手段によって選択された楽音生成手
段に、上記新たな発音指示を割り当てることにより、上
記新たな発音指示に対応する楽音を生成させる割り当て
手段とを有するようにしたものである。
【0017】
【作用】本発明の前者によれば、選択モード判別手段に
よって、各楽音生成手段が優先度が異なるいずれの選択
モードに属するかが判定される。また、優先度設定手段
によって、各楽音生成手段の楽音生成状態に基づいて、
各楽音生成手段間の優先度が設定されることになる。そ
して、選択手段は、選択モードの優先度および楽音生成
手段間の優先度に基づいて、複数の楽音生成手段の中か
ら新たな発音指示を割り当てる楽音生成手段を選択する
ので、選択モードならびに楽音生成状態に応じた合理的
なアサイン処理を行うことができる。
【0018】また、本発明の後者によれば、配属手段に
よって、楽音生成中でない楽音生成手段を最も優先順位
の低いパートに属するようにするとともに、選択手段に
よって優先順位に基づき、最も優先順位の低いパートに
属する配属手段によって配属された楽音生成中でない楽
音生成手段から、優先順位の高いパートに属する楽音生
成手段へと、新たな発音指示を割り当てる楽音生成手段
を順次選択するので、楽音生成中でない楽音生成手段に
関する処理を別途行うことなく、楽音生成中でない楽音
生成手段に関する処理と楽音生成中である楽音生成手段
に関する処理とを共通化して、一連に行うことができる
ようになる。
【0019】
【実施例】以下、図面に基づいて、本発明による電子楽
器のアサイン装置を詳細に説明する。
【0020】図1には、本発明の一実施例による電子楽
器のアサイン装置を備えた電子楽器のブロック構成図が
示されている。
【0021】この電子楽器10は、電子楽器10に接続
された外部鍵盤機器12の押鍵操作/離鍵操作に基づき
発生されるMIDIデータを入力されて、当該MIDI
データに基づき動作するように構成されている。また、
外部鍵盤機器12は、アコースティック・ピアノのホー
ルド・ペダルと同様な効果を楽音に付与するための操作
子たるホールド・ペダルを備えており、このホールド・
ペダルのオン操作(ホールド・ペダルを踏む)/オフ操
作(ホールド・ペダルを踏まない)も、MIDIデータ
として、電子楽器10に入力される。
【0022】そして、電子楽器10は制御装置14と音
源装置16とを備え、その全体の動作を、制御装置14
の中央処理装置(CPU)14aを用いて制御するよう
に構成されている。
【0023】さらに、制御装置14には、CPU14a
による全体の動作のための所定のプログラムなどが格納
されたリード・オンリ・メモリ(ROM)14bと、後
述するCPU10によるROM14bに記憶されたプロ
グラムの実行に必要な各種のバッファやレジスタなどが
設定されたワーキング・エリアとしてのランダム・アク
セス・メモリ(RAM)14cとを備えている。
【0024】音源装置16は、外部鍵盤機器12の押鍵
操作に基づく発音要求、あるいは外部演奏機器12の離
鍵操作に基づく消音要求を制御装置14から入力される
ことにより、それぞれの発音要求/消音要求において指
定された該当するボイス(発音チャンネル)の発音動作
/消音動作を行うものである。即ち、各ボイスは、発音
にともなう楽音信号を生成し、生成した楽音信号を、図
示しない放音装置によって楽音として放音する。なお、
この音源装置16においては、ボイスは32個設定され
ているものとする。
【0025】また、各ボイスに関して、その現在の状態
を示す「history priority(ヒストリ
ー・プライオリティー)」、「level prior
ity(レベル・プライオリティー)」ならびに「en
velope point(エンベロープ・ポイン
ト)」(これら、「history priorit
y」、「level priority」ならびに「e
nvelope point」については後に詳述す
る。)の各値を、制御装置14のRAM14cの所定の
領域に常に書き込んでいて、CPU14aはいつでもこ
れらの値を参照することができる。
【0026】即ち、音源装置16は、各ボイスを指定す
る「voice number(ボイス・ナンバー)」
と、図2に示すようなエンベロープを示す「attac
ktime(アタック・タイム)」、「attack
level(アタック・レベル)」、「decay t
ime(ディケイ・タイム)」、「sustinele
vel(サスティン・レベル)」および「releas
e time(リリース・タイム)」と、「veloc
ity(ベロシティ)」と、「notenumber
(ノート・ナンバー:音高)」およびその他の音色パラ
メータをともなった発音要求を入力されることにより、
「voice number」によって指定される発音
要求のあったボイスの発音を開始する。
【0027】従って、この音源装置16は、発音要求と
ともに入力された「velocity」、「attac
k time」、「attack level」、「d
ecay time」、「sustine leve
l」および「releasetime」に従って、図2
に示すようなエンベロープを付加するものであり、「a
ttack level」および「sustine l
evel」は、「velocity」が大きければ大き
いほど、大きな値となるようになされている。
【0028】こうした発音要求があったときには、各ボ
イスに対して発音要求のあった順番が古いほど小さな値
がそれぞれ割り当てられて、当該割り当てられた値が、
「history priority(ヒストリー・プ
ライオリティー)」としてRAM14cの後述する領域
に書き込まれる。
【0029】また、音源装置16は、「voice n
umber」をともなった消音要求を入力されることに
より、「voice number」によって指定され
る消音要求のあったボイスの消音を開始する。このとき
に、消音要求のあったボイスはリリース状態になり、そ
の後「release time」が経過すると、「e
nd(発音終了状態)」になる。
【0030】そして、例えば、10msec毎などの一
定時間毎に、現在のエンベロープのレベルの値が、「l
evel priority(レベル・プライオリティ
ー)」としてRAM14cの後述する領域に書き込ま
れ、また現在のエンベロープの状態(attack(ア
タック)/decay(ディケイ)/release
(リリース)/end(エンド))が、「envelo
pe point(エンベロープ・ポイント)」として
RAM14cの後述する領域に書き込まれる。
【0031】次に、図3乃至図5を参照しながら、RA
M14cの記憶領域の構造について説明する。上記した
ように、RAM14cには、CPU14aがROM14
bに記憶されたプログラムを実行する際に必要とされる
バッファやレジスタなどが設定されている。本発明の実
施に関連するバッファやレジスタなどには、以下に示す
ものがある。なお、以下の説明においては、各バッファ
やレジスタの内容(データなど)は、特に断らない限
り、同一のラベル名で表すものとする。
【0032】即ち、RAM14cには、CPU14aの
計算などに使用される領域たるテンポラリー領域(図3
(a))と、外部鍵盤機器12から入力されたMIDI
データ(受信データ)を保持する領域たる受信データ・
バッファ領域(図3(b))と、MIDIチャンネルと
一対一の関係で設定された複数のパートの情報を、各パ
ート毎に記憶するパート・データ領域(図4)と、ボイ
ス・ナンバー毎に各ボイスの情報を記憶するボイス・デ
ータ領域(図5)とを備えて構成されている。以下、各
領域毎に詳細に説明する。
【0033】〔テンポラリー領域〕「PART」と、
「VOICE」と、「ASSIGN_VOICE1,A
SSIGN_VOICE2」とより構成されている。
【0034】1.PART 各パートの処理を行うためのループ・カウンターであ
る。
【0035】2.VOICE 各ボイスの処理を行うためのループ・カウンターであ
る。
【0036】3.ASSIGN_VOICE1,ASS
IGN_VOICE2 新たな楽音を発音するために獲得したボイスのボイス・
ナンバーを記憶しておくバッファである。
【0037】〔受信データ・バッファ領域〕「rx s
tatus」と、「rx part number」
と、「rxnote number」と、「rx ve
locity」とより構成されている。
【0038】1.rx status 受信データの種類を記憶するバッファである。本実施例
においては理解を容易にするために、受信データの種類
を「note on(ノート・オン)」、「note
off(ノート・オフ)」、「hold on(ホール
ド・オン)」および「hold off(ホールド・オ
フ)」に限定して説明することとする。
【0039】従って、「rx status」には、
「note on」、「note off」、「hol
d on」および「hold off」のいずれかが記
憶されることになる。
【0040】なお、「note on」は外部鍵盤機器
12の押鍵による発音指示を示し、「note of
f」は外部鍵盤機器12の離鍵による消音指示を示し、
「hold on」はホールド・ペダルが踏まれている
状態を示し、「hold off」はホールド・ペダル
が踏まれていない状態を示す。
【0041】2.rx part number 受信データのパートのパート・ナンバーを記憶するバッ
ファである。上記したように本実施例においては、MI
DIチャンネルとパートとは一対一の対応関係とされて
おり、MIDIチャンネルが16チャンネルあるので、
パートも16パート設定されているものである。従っ
て、「rx part number」は、「1」乃至
「16」の値が記憶される。
【0042】3.rx note number 受信データがノート情報(「note on」および
「note off」)であったときに、当該ノート情
報のノート・ナンバーを記憶するバッファであり、
「0」乃至「127」の値をとる。
【0043】4.rx velocity 受信データがノート情報であったときに、当該ノート情
報のベロシティを記憶するバッファであり、「0」乃至
「127」の値をとる。
【0044】〔パート・データ領域〕上記したように本
実施例においては、16チャンネルのMIDIチャンネ
ルに対応して16個のパートが設定されることになる
が、さらにこれら通常の楽音生成のための16パートに
加えて、通常の楽音生成のためには用いない17番目の
パートを設け、この17番目のパートを仮想パートと称
することとする。
【0045】パート・データ領域は、各パート毎に、
「voice cue」と、「tone parame
ter(音色パラメータ) #1」と、「tone p
arameter(音色パラメータ) #2」と、「c
urrent hold」とより構成されている。
【0046】なお、本実施例においては、1個のノート
・オンに対して音色の異なる二つのボイスにより楽音を
生成するようにしており、このため音色パラメータとし
て、各パートにおいて二種類の音色パラメータ(「to
ne parameter#1」および「tone p
arameter #2」)が設定されている。
【0047】また、本実施例においては、仮想パートの
記憶領域としては、「voicecue」のみが読み出
されることになるが、仮想パートに対する処理を他の1
6パートに対する処理と共通化するために、仮想パート
も他の16パートと同じデータ構造とされている。この
ため、仮想パートには、ダミーの「tone para
meter #1」、「tone parameter
#2」および「current hold」が設定さ
れている。
【0048】1.voice cue 当該パートに属するボイスを、その優先順位に従って並
べたものであって、ボイス・ナンバーにより記憶してい
る。「voice cue」の終わりには、「voic
e cue」がそれ以上ないことを示すものとして「−
1」が記憶されている。
【0049】なお、初期状態においては、パート17
(part #17:仮想パート)の「voice c
ue」に、全てのボイス(32ボイス)が積まれてい
る。
【0050】2.tone parameter #1 3.tone parameter #2 「tone parameter #1」ならびに「t
one parameter #2」には、「assi
gn type」、「attack time」、「a
ttack level」、「decay tim
e」、「sustine level」および「rel
ease time」などがそれぞれ記憶されている。
【0051】「assign type」は、「his
t(ヒストリー・アサイン)」か「level(レベル
・アサイン)」かを記憶する領域である。
【0052】また、「attack time」、「a
ttack level」、「decay tim
e」、「sustine level」および「rel
easetime」は、エンベロープを示すパラメータ
であって、それぞれ「0」乃至「127」の値をとるこ
とができる。
【0053】なお、「tone parameter
#1」ならびに「tone parameter #
2」には、上記した「attack time」などの
エンベロープを示すパラメータの他に、楽音の音色を定
義する種々のパラメータが記憶されている。
【0054】また、こうした楽音の音色を定義する種々
のパラメータは、ROM14bに予め記憶されており、
外部鍵盤機器12の操作により音色が切り換えられたと
きに、所定のパラメータがROM14bから「tone
parameter #1」ならびに「tone p
arameter #2」にコピーされて記憶される。
【0055】4.current hold 上記したアコースティック・ピアノのホールド・ペダル
と同様な効果を楽音に付与するための操作子たる、外部
鍵盤機器12のホールド・ペダルの操作状態を記憶する
領域であり、「hold on」によりホールド・ペダ
ルが踏まれている状態を示し、「hold off」に
よりホールド・ペダルが踏まれていない状態を示す。
【0056】〔ボイス・データ領域〕各ボイス毎に、
「part number」と、「tone numb
er」と、「note number」と、「velo
city」と、「note status」と、「ho
ld status」と、「assign prior
ity」と、「history priority」
と、「level priority」と、「enve
lope point」とより構成されている。
【0057】1.part number 当該ボイスが属するパートのパート・ナンバーを記憶す
る領域であり、「1」乃至「17」の値をとる。
【0058】2.tone number 当該ボイスが属する音色パラメータ(「tone pa
rameter #1」ならびに「tone para
meter #2」)のナンバーたるトーン・ナンバー
(「#1」および「#2」)を記憶する領域である。従
って、とりうる値は、「1」あるいは「2」となる。
【0059】3.note number ノート・ナンバーを記憶する領域であり、「0」乃至
「127」の値をとる。
【0060】4.velocity ベロシティを記憶する領域であり、「0」乃至「12
7」の値をとる。
【0061】5.note status ノート・ナンバーに該当する外部鍵盤機器12の鍵盤の
操作状態(押鍵:note on/離鍵:note o
ff)を記憶する領域である。
【0062】6.hold status 外部鍵盤機器12の現在のホールド・ペダルの操作状態
(ペダルを踏む:hold on/ペダルを踏まない:
hold off)を記憶する。
【0063】7.assign priority アサインの優先度を記憶する領域である。そして、値が
大きいほど、優先度が高い(新たな楽音の発音のために
使用されにくい)ことを示している。「0」乃至「11
200」の値をとる。
【0064】8.history priority ヒストリー・アサインにおける優先度を記憶する領域で
ある。現在発音中のボイスのうち、古いものから小さな
番号が順番に優先度として付与されるものであり、この
番号は音源装置16によって更新される。そして、値が
大きいほど、優先度が高い(新たな楽音の発音のために
使用されにくい)ことを示している。「0」乃至「10
0」の値をとる。
【0065】9.レベル・アサインにおける優先度を記
憶する領域である。現在発音中のボイスのうち、音量の
小さなものから小さな番号が順番に優先度として付与さ
れるものであり、この番号は音源装置16によって更新
される。そして、値が大きいほど、優先度が高いことを
示している。「0」乃至「100」の値をとる。
【0066】10.envelope point 現在のエンベロープの状態(attack/decay
/release/end)を記憶する領域であり、音
源装置16によって更新される。「attack」、
「decay」、「release」、「end」のい
ずれかが記憶される。
【0067】以上の構成において、図6乃至図14に示
すフローチャートを参照しながら、本発明による電子楽
器のアサイン装置の作用について説明する。
【0068】この電子楽器のアサイン装置は、外部鍵盤
機器12よりMIDIデータを受信すると図6に示すメ
イン・ルーチンを起動し、受信したMIDIデータに基
づき処理を行い、当該処理を終了すると、次のMIDI
データを受信するまで動作を停止しているものである。
【0069】まず、MIDIデータを受信することによ
りメイン・ルーチンが起動されると、まずステップS6
02においてMIDI受信ルーチンが実行されることに
なる。
【0070】図7には、MIDI受信ルーチンが示され
ており、まずステップS702において、受信したMI
DIデータをRAM14cの受信データ・バッファ領域
のそれぞれの領域に格納する。
【0071】ステップS702の処理を終了すると、ス
テップS704へ進み、ステップS702で格納したR
AM14cの受信データ・バッファの「rx stat
us」が「hold on」であるか、否かを判断す
る。
【0072】このステップS704の判断結果が肯定
(Y)、即ち、「rx status」が「hold
on」である場合には、図12に示すホールド・オン処
理ルーチン(ステップS604)へ分岐し、ホールド・
オン処理ルーチンを終了すると、次のMIDIデータを
受信するまで動作を停止しているものである。
【0073】一方、ステップS704の判断結果が否定
(N)、即ち、「rx status」が「hold
on」でない場合には、ステップS706へ進み、「r
xstatus」が「hold off」であるか、否
かを判断する。
【0074】このステップS706の判断結果が肯定、
即ち、「rx status」が「hold off」
である場合には、図13に示すホールド・オフ処理ルー
チン(ステップS606)へ分岐し、ホールド・オフ処
理ルーチンを終了すると、次のMIDIデータを受信す
るまで動作を停止しているものである。
【0075】一方、ステップS706の判断結果が否
定、即ち、「rx status」が「hold of
f」でない場合には、ステップS708へ進み、「rx
status」が「note off」であるか、否
かを判断する。
【0076】このステップS708の判断結果が肯定、
即ち、「rx status」が「note off」
である場合には、図14に示すノート・オフ処理ルーチ
ン(ステップS608)へ分岐し、ノート・オフ処理ル
ーチンを終了すると、次のMIDIデータを受信するま
で動作を停止しているものである。
【0077】一方、ステップS708の判断結果が否定
の場合には、「rx status」は「hold o
n」、「hold off」あるいは「note of
f」のいずれでもないことになり、従って「rx st
atus」は、「holdon」、「hold of
f」および「note off」以外の「noteo
n」であると判定され、図8に示すボイス・データ処理
ルーチン(ステップS610)へ分岐する。
【0078】そして、ボイス・データ処理ルーチンを終
了すると、図9に示すプライオリティー処理ルーチン
(ステップS612)、図10に示すボイス獲得ルーチ
ン(ステップS614)、図11に示す発音開始ルーチ
ン(ステップS616)へと進み、発音開始ルーチンを
終了すると、次のMIDIデータを受信するまで動作を
停止しているものである。
【0079】次に、図8を参照しながら、「rx st
atus」が「note on」であった場合に処理す
るボイス・データ処理ルーチンを詳細に説明する。
【0080】このボイス・データ処理ルーチンにおいて
は、まずステップS802において、RAM14cのテ
ンポラリー領域の「VOICE」に「1」を記憶して、
ボイス・ナンバー「1」から32個の全てのボイスにつ
いて、以降の処理を順次を行う準備をする。そして、ス
テップS802の処理を終了すると、ステップS804
へ進む。
【0081】ステップS804では、現在処理中のボイ
スの「envelope point」が「end」で
あるか、否かを判断する。
【0082】このステップS804の判断結果が肯定、
即ち、「envelope point」が「end」
であるならば、ステップS806へ進み、RAM14c
のボイス・データ領域における当該ボイス・ナンバーの
領域の「assign priority」に「0」を
記憶するとともに、「part number」に「1
7」を記憶する。即ち、「envelope poin
t」が「end」である発音終了状態においては、「a
ssign priority」を「0」に設定すると
ともに、「part number」に、仮想パートの
パート・ナンバー「17」を記憶するものであり、従っ
て、「envelope point」が「end」の
ボイスは、全て仮想パートたるパート「17」に属する
ものとされる。
【0083】こうしたステップS806の処理を終了す
ると、プライオリティー処理ルーチンへ進むことにな
る。
【0084】一方、ステップS804の判断結果が否
定、即ち、「envelope point」が「en
d」でないならば、ステップS808へ進み、現在処理
中のボイスの「assign type」が「leve
l」であるか、否かを判断する。即ち、現在処理中のボ
イスの「part number」と「tone nu
mber」とに基づいてパート・データ領域を参照し、
現在処理中のボイスの「assign type」を読
み出し、レベル・アサインたる「level」である
か、否かを判断するものである。
【0085】このステップS808の判断結果が否定、
即ち、「assign type」がヒストリー・アサ
インたる「hist」である場合には、ステップS81
0へ進み、現在処理中のボイスの「assign pr
iority」に、「history priorit
y」の値に「100」加算した値を代入する。このよう
に「assign priority」の値を嵩上げし
て、「assigntype」が「hist」のボイス
の方が、「assign type」が「level」
のボイスより優先度が必ず高くなるようにする。
【0086】一方、ステップS808の判断結果が肯
定、即ち、「assign type」が「leve
l」である場合には、ステップS812へ進み、現在処
理中のボイスの「envelope point」が
「attack」であるか、否かを判断する。
【0087】このステップS812の判断結果が否定、
即ち、「assign type」が「level」で
あって、「envelope point」が「att
ack」でない場合には、ステップS814へ進み、
「assign priority」に「level
priority」を代入する。
【0088】一方、ステップS808の判断結果が肯
定、即ち、「assign type」が「leve
l」であって、「envelope point」が
「attack」である場合には、ステップS810へ
進み、上記したと同じ処理を行う。
【0089】つまり、「envelope poin
t」が「attack」であるということは、エンベロ
ープが立ち上がる状態にあることを示している。こうし
た場合には、「assign type」に従ってエン
ベロープが立ち上がるまでのアタック期間中にレベル・
アサインを用いると、エンベロープの立ち上がりの遅い
音色などでは、当該アタック期間中のボイスの「ass
ign priority」が低くなってしまって、新
たな楽音の発音用に割り当てるために消音されやすくな
り、音楽的に極めて不自然な聴感を与えることになる。
【0090】このため、アタック期間中のボイスに関し
ては、たとえ「assign type」が「leve
l」であっても、ヒストリー・アサインとして処理を行
って「assign priority」の値を嵩上げ
し、優先度が高くなるようにしたものである。これによ
り、音楽的に不自然なアサインが行われることを防止し
ている。
【0091】上記したステップS810ならびにステッ
プS814の処理を終了すると、ステップS816へ進
み、現在処理中のボイスの「note status」
が「note on」であるか、否かを判断する。
【0092】ステップS816の判断結果が肯定、即
ち、「note status」が「note on」
であるならば、ステップS818へ進み、現在の「as
sign priority」の値に「10000」を
加算して、「assign priority」の値を
更新する。
【0093】一方、ステップS816の判断結果が否
定、即ち、「note status」が「note
off」であるならば、ステップS820へ進み、現在
処理中のボイスの「hold status」が「ho
ld on」であるか、否かを判断する。
【0094】このステップS820の判断結果が肯定、
即ち、「note status」が「note of
f」であり、かつ「hold status」が「ho
ldon」であるならば、ステップS822へ進み、現
在の「assign priority」の値に「10
00」を加算して、「assign priorit
y」の値を更新する。
【0095】そして、ステップS818の処理を終了し
たとき、ステップS822の処理を終了したとき、およ
びステップS820の判断結果が否定、即ち、「hol
dstatus」が「hold off」であるときに
は、ステップS824へ進み、「VOICE」を「1」
インクリメントして、ステップS826へ進み、「VO
ICE」が「32」以下であるか、否かを判断する。
【0096】このステップS826の判断結果が肯定、
即ち、「VOICE」が「32」以下である場合には、
未だ32個のボイスの全てに対して、ステップS804
乃至ステップS822の処理を行っていないものである
ので、ステップS804へ戻って、以降の処理を繰り返
す。
【0097】一方、ステップS826の判断結果が否
定、即ち、「VOICE」が「33」になったときは、
32個の全てのボイスに対して、ステップS804乃至
ステップS822の処理を完了したことになるので、ボ
イス・データ処理ルーチンを終了して、プライオリティ
ー処理ルーチンへ進むことになる。
【0098】従って、上記したボイス・データ処理ルー
チンによって、 1.assign type=hist かつ not
e status=note on 2.assign type=level かつ no
te status=note on 3.assign type=hist かつ not
e status=note off かつ hold
status=hold on 4.assign type=level かつ no
te status=note off かつ hol
d status=hold on 5.assign type=hist かつ not
e status=note off かつ hold
status=hold off 6.assign type=level かつ no
te status=note off かつ hol
d status=hold off 7.envelope point=end の順番で値が小さくなるように、各ボイスの「assi
gn priority」に値が記憶されることにな
る。即ち、上記「1」の場合が最も優先度が高くなり、
順次優先度が低くなって、上記「7」の場合が最も優先
度が低くなるものであって、新たな楽音を発音するため
のボイスとしては、優先度の低い順に順次選択されるこ
とになる。
【0099】次に、図9を参照しながら、ボイス・デー
タ処理ルーチンに引き続くプライオリティー処理ルーチ
ンについて説明する。
【0100】このプライオリティー処理ルーチンにおい
ては、まずステップS902において、RAM14cの
テンポラリー領域の「PART」に「1」を記憶して、
パート・ナンバー「1」から17個の全てのパートにつ
いて、以降の処理を順次行う準備をする。そして、ステ
ップS902の処理を終了すると、ステップS904へ
進む。
【0101】ステップS904では、「PART」によ
って示される現在処理中のパートに属する全ボイスを対
象として、「assign priority」の値の
小さい順にソートし、各ボイスの「voice num
ber」を、「PART」によって示される現在処理中
のパートの「voice cue」に積む。
【0102】ステップS904の処理を終了すると、ス
テップS906へ進み、「PART」を「1」インクリ
メントして、ステップS908へ進み、「PART」が
「17」以下であるか、否かを判断する。
【0103】このステップS908の判断結果が肯定、
即ち、「PART」が「17」以下である場合には、未
だ仮想パートを含む17個のパートの全てに対して、ス
テップS904の処理を行っていないものであるので、
ステップS904へ戻って以降の処理を繰り返す。
【0104】一方、ステップS908の判断結果が否
定、即ち、「PART」が「18」になったときは、仮
想パートを含む17個の全てのパートに対して、ステッ
プS904の処理を完了したことになるので、プライオ
リティー処理ルーチンを終了して、ボイス獲得ルーチン
へ進むことになる。
【0105】ボイス獲得ルーチンは図10に示されてお
り、まずステップS1002において、RAM14cの
テンポラリー領域の「PART」に「17」を記憶し
て、パート・ナンバーの大きい順から、順次17個の全
てのパートについて処理を行う準備をする。そして、ス
テップS1002の処理を終了すると、ステップS10
04へ進む。
【0106】ステップS1004では、「PART」に
よって示される現在処理中のパートの「voice c
ue」に、何もボイスが積まれていない「空(vaca
nt)」の状態であるか、否かが判断される。
【0107】このステップS1004の判断結果が肯
定、即ち、「voice cue」が「vacant」
の状態であるならば、ステップS1006へ進み、「P
ART」を「1」デクリメントして、ステップS100
4へ戻り、ステップS1004の処理を繰り返し行う。
【0108】一方、ステップS1004の判断結果が否
定、即ち、「voice cue」にボイスが積まれて
いるならば、ステップS1008へ進み、当該「voi
cecue」から、最も先に積まれている「assig
n priority」の値が最も小さなボイスを1個
獲得し、そのボイスのボイス・ナンバーをRAM14c
のテンポラリー領域の「ASSIGN_VOICE1」
に記憶し、ステップS1010へ進む。
【0109】ステップS1010においては、ステップ
S1002と同様に、RAM14cのテンポラリー領域
の「PART」に「17」を記憶して、パート・ナンバ
ーの大きい順から、順次17個の全てのパートについて
以降の処理を行う準備をする。そして、ステップS10
10の処理を終了すると、ステップS1012へ進む。
【0110】ステップS1012では、「PART」に
よって示される現在処理中のパートの「voice c
ue」が、何もボイスが積まれていない「vacan
t」の状態であるか、否かが判断される。
【0111】このステップS1012の判断結果が肯
定、即ち、「voice cue」が「vacant」
の状態であるならば、ステップS1014へ進み、「P
ART」を「1」デクリメントして、ステップS101
2へ戻り、ステップS1012の処理を繰り返し行う。
【0112】一方、ステップS1012の判断結果が否
定、即ち、「voice cue」にボイスが積まれて
いるならば、ステップS1016へ進み、当該「voi
cecue」から、最も先に積まれている「assig
n priority」の値が最も小さなボイスを1個
獲得し(ステップS1008において獲得されたボイス
は除外する。)、そのボイスのボイス・ナンバーをRA
M14cのテンポラリー領域の「ASSIGN_VOI
CE2」に記憶し、発音開始ルーチンへ進む。
【0113】従って、このボイス獲得ルーチンにおいて
は、パート・ナンバーの大きい順に当該パート・ナンバ
ーによって示されるパートの「voice cue」を
検索し、ボイスを2個獲得することになる。ここにおい
て、ボイスを2個獲得する必要があるのは、上記したよ
うにこの電子楽器においては、1つのノート・オンに対
して、2つのボイスにより楽音を生成する構成となされ
ているからである。
【0114】次に、図11を参照しながら、発音開始ル
ーチンについて説明すると、まず、ステップS1102
において、「ASSIGN VOICE1」に該当する
ボイスに対して、「tone number」に「1」
を代入し、「part number」に「rx pa
rt number」を代入し、「note numb
er」に「rx note number」を代入し、
「velocity」に「rx velocity」を
代入し、「note status」に「note o
n」を代入し、ステップS1104へ進む。
【0115】ステップS1104では、「ASSIGN
VOICE2」に該当するボイスに対して、「ton
e number」に「2」を代入し、「part n
umber」に「rx part number」を代
入し、「note number」に「rx note
number」を代入し、「velocity」に
「rx velocity」を代入し、「note s
tatus」に「note on」を代入し、ステップ
S1106へ進む。
【0116】ステップS1106では、「part n
umber」に示されるパートの「current h
old」が「hold on」であるか、否かを判断す
る。
【0117】ステップS1106の判断結果が肯定、即
ち、「current hold」が「hold o
n」であるならば、ステップS1108へ進み、「AS
SIGN VOICE1」および「ASSIGN VO
ICE2」に該当するボイスに対して、「hold s
tatus」に「hold on」を記憶し、ステップ
S1112へ進むことになる。
【0118】一方、ステップS1106の判断結果が否
定、即ち、「current hold」が「hold
off」であるならば、ステップS1110へ進み、
「ASSIGN VOICE1」および「ASSIGN
VOICE2」に該当するボイスに対して、「hol
d status」に「hold off」を記憶し、
ステップS1112へ進むことになる。
【0119】ステップS1112では、「ASSIGN
VOICE1」に該当するボイスに対して、「par
t number」に該当するパートの「tone p
arameter #1」で発音するように、ボイスを
指定するボイス・ナンバーと、エンベロープの状態を示
すアタック・タイム(attack time)、アタ
ック・レベル(attack level)、ディケイ
・タイム(decaytime)、サスティン・レベル
(sustine level)およびリリース・タイ
ム(release time)と、ベロシティ(ve
locity)と、ノート・ナンバー(note nu
mber)およびその他の音色パラメータとをともなっ
た発音要求を、音源装置16に出力する。これにより音
源装置16は、発音要求のあったボイス(ボイス・ナン
バーにより指定されるボイス)の発音を開始する。
【0120】ステップS1112の処理を終了すると、
ステップS1114へ進み、「ASSIGN VOIC
E2」に該当するボイスに対して、「part num
ber」に該当するパートの「tone parame
ter #2」で発音するように、ボイスを指定するボ
イス・ナンバーと、エンベロープの状態を示すアタック
・タイム(attack time)、アタック・レベ
ル(attack level)、ディケイ・タイム
(decay time)、サスティン・レベル(su
stine level)およびリリース・タイム(r
elease time)と、ベロシティ(veloc
ity)と、ノート・ナンバー(notenumbe
r)およびその他の音色パラメータとをともなった発音
要求を、音源装置16に出力する。これにより音源装置
16は、発音要求のあったボイス(ボイス・ナンバーに
より指定されるボイス)の発音を開始する。
【0121】上記のようにして、音源装置16におい
て、獲得したボイスでの発音が行われることになる。
【0122】ステップS1112の処理を終了すると、
発音開始ルーチンを終了することになり、この電子楽器
は次のMIDIデータを受信するまで、その動作を停止
する。
【0123】次に、受信したMIDIデータが「hol
d on」であった場合に実行されるホールド・オン処
理ルーチンについて説明する。
【0124】図12には、ホールド・オン処理ルーチン
のフローチャートが示されており、まず、ステップS1
202において、「rx part number」に
該当するパート・データ領域の「current ho
ld」に「hold on」を記憶し、ステップS12
04へ進む。
【0125】ステップS1204では、RAM14cの
テンポラリー領域の「VOICE」に「1」を記憶し
て、ボイス・ナンバー「1」から32個の全てのボイス
について、以降の処理を順次を行う準備をする。そし
て、ステップS1204の処理を終了すると、ステップ
S1206へ進む。
【0126】ステップS1206では、現在処理中のボ
イスの「part number」が、「rx par
t number」と同じであるか、否かを判断する。
【0127】ステップS1206の判断結果が肯定、即
ち、「part number」と「rx part」
とが同じであるならば、ステップS1208へ進み、現
在処理中のボイスの「note status」が「n
ote on」であるか、否かを判断する。
【0128】ステップS1208の判断結果が肯定、即
ち、「note status」が「note on」
であるならば、ステップS1210へ進み、現在処理中
のボイスの「hold status」に「hold
on」を代入して、ステップS1212へ進む。
【0129】また、ステップS1206ならびにステッ
プS1208の判断結果が否定の場合にも、ステップS
1212へ進むことになり、ステップS1212では、
「VOICE」を「1」インクリメントして、ステップ
S1214へ進み、「VOICE」が「32」以下であ
るか、否かを判断する。
【0130】このステップS1214の判断結果が肯
定、即ち、「VOICE」が「32」以下である場合に
は、未だ32個のボイスの全てに対して、ステップS1
206乃至ステップ1210の処理を行っていないもの
であるので、ステップS1206へ戻って、以降の処理
を繰り返す。
【0131】一方、ステップS1214の判断結果が否
定、即ち、「VOICE」が「33」になったときは、
32個の全てのボイスに対して、ステップS1206乃
至ステップS1210の処理を完了したことになるの
で、ホールド・オン処理ルーチンを終了して、次のMI
DIデータを受信するまで、この電子楽器はその動作を
停止する。
【0132】次に、受信したMIDIデータが「hol
d off」であった場合に実行されるホールド・オフ
処理ルーチンについて説明する。
【0133】図13には、ホールド・オフ処理ルーチン
のフローチャートが示されており、まず、ステップS1
302において、「rx part number」に
該当するパート・データ領域の「current ho
ld」に「hold off」を記憶し、ステップS1
304へ進む。
【0134】ステップS1304では、RAM14cの
テンポラリー領域の「VOICE」に「1」を記憶し
て、ボイス・ナンバー「1」から32個の全てのボイス
について、以降の処理を順次を行う準備をする。そし
て、ステップS1304の処理を終了すると、ステップ
S1306へ進む。
【0135】ステップS1306では、現在処理中のボ
イスの「part number」が、「rx par
t number」と同じであるか、否かを判断する。
【0136】ステップS1306の判断結果が肯定、即
ち、「part number」と「rx part
number」とが同じであるならば、ステップS13
08へ進み、現在処理中のボイスの「hold sta
tus」に「hold off」を代入して、ステップ
S1310へ進む。
【0137】ステップS1310では、現在処理中のボ
イスの「note status」が「note of
f」であるか、否かを判断する。
【0138】ステップS1310の判断結果が肯定、即
ち、「note status」が「note of
f」であるならば、ステップS1312へ進み、音源装
置16に対して処理対象のボイスのボイス・ナンバーを
ともなった消音要求を出力して、ステップS1314へ
進む。
【0139】また、ステップS1306ならびにステッ
プS1310の判断結果が否定の場合にも、ステップS
1314へ進むことになり、ステップS1314では、
「VOICE」を「1」インクリメントして、ステップ
S1316へ進み、「VOICE」が「32」以下であ
るか、否かを判断する。
【0140】このステップS1316の判断結果が肯
定、即ち、「VOICE」が「32」以下である場合に
は、未だ32個のボイスの全てに対して、ステップS1
306乃至ステップS1312の処理を行っていないも
のであるので、ステップS1306へ戻って、以降の処
理を繰り返す。
【0141】一方、ステップS1316の判断結果が否
定、即ち、「VOICE」が「33」になったときは、
32個の全てのボイスに対して、ステップS1306乃
至ステップS1312の処理を完了したことになるの
で、ホールド・オフ処理ルーチンを終了して、次のMI
DIデータを受信するまで、この電子楽器はその動作を
停止する。
【0142】従って、このホールド・オフ処理ルーチン
により、発音中のボイスの中で、「note stat
us」が「note off」であり、かつ「part
number」が「rx part number」
であるボイスに対しては、消音要求が出力されることに
なる。
【0143】さらに、受信したMIDIデータが「no
te off」であった場合に実行されるノート・オフ
処理ルーチンについて説明する。
【0144】図14には、ホールド・オフ処理ルーチン
のフローチャートが示されており、まず、ステップS1
402において、RAM14cのテンポラリー領域の
「VOICE」に「1」を記憶して、ボイス・ナンバー
「1」から32個の全てのボイスについて、以降の処理
を順次を行う準備をする。そして、ステップS1402
の処理を終了すると、ステップS1404へ進む。
【0145】ステップS1404では、現在処理中のボ
イスの「part number」が、「rx par
t number」と同じであるか、否かを判断する。
【0146】ステップS1404の判断結果が肯定、即
ち、「part number」と「rx part
number」とが同じであるならば、ステップS14
05へ進む。
【0147】ステップS1405では、現在処理中のボ
イスの「note number」が「rx note
number」と同じであるか、否かを判断する。
【0148】ステップS1405の判断結果が肯定、即
ち、「note number」が「rx note
number」と同じであるならば、ステップS140
6へ進み、「note status」に「note
off」を記憶する。
【0149】ステップS1406の処理を終了すると、
ステップS1408へ進み、「hold statu
s」が「hold off」であるか、否かを判断す
る。
【0150】ステップS1408の判断結果が肯定、即
ち、「hold status」が「hold of
f」であるならば、ステップS1410へ進み、音源装
置16に対して消音要求を出力して、ステップS141
2へ進む。
【0151】また、ステップS1404ならびにステッ
プS1408の判断結果が否定の場合にも、ステップS
1412へ進むことになり、ステップS1412では、
「VOICE」を「1」インクリメントして、ステップ
S1414へ進み、「VOICE」が「32」以下であ
るか、否かを判断する。
【0152】このステップS1414の判断結果が肯
定、即ち、「VOICE」が「32」以下である場合に
は、未だ32個のボイスの全てに対して、ステップS1
404乃至ステップS1410の処理を行っていないも
のであるので、ステップS1404へ戻って、以降の処
理を繰り返す。
【0153】一方、ステップS1414の判断結果が否
定、即ち、「VOICE」が「33」になったときは、
32個の全てのボイスに対して、ステップS1404乃
至ステップS1410の処理を完了したことになるの
で、ノート・オフ処理ルーチンを終了して、次のMID
Iデータを受信するまで、この電子楽器はその動作を停
止する。
【0154】従って、このノート・オフ処理ルーチンに
より、発音中のボイスの中で、「part numbe
r」が「rx part number」であり、かつ
「note number」が「rx note nu
mber」であり、かつ「hold status」が
「hold off」であるボイスに対して、消音要求
が出力されることになる。
【0155】以上により、本実施例の説明を終了する
が、ボイス・データ処理ルーチンにおいて、各ボイスの
「assign priorty」の値を設定して優先
度を決定する際に、「assign type」が「h
ist」のボイスの優先度を、「assign typ
e」が「level」のボイスよりさらに上げたい場合
などには、 1.assign type=hist かつ not
e status=note on 2.assign type=hist かつ not
e status=note off かつ hold
status=hold on 3.assign type=hist かつ not
e status=note off かつ hold
status=hold off 4.assign type=level かつ no
te status=note on 5.assign type=level かつ no
te status=note off かつ hol
d status=hold on 6.assign type=level かつ no
te status=note off かつ hol
d status=hold off 7.envelope point=end の順番で値が小さくなるように、優先度を決めるように
処理してもよい。このように処理する場合には、「as
sign priority」に加算する値を、 assign type : 10000 note on/off : 1000 hold on/off : 100 のように設定すればよい。
【0156】なお、いずれにしても、持続音系(ass
ign type:hist)の音色の楽音が、ボイス
不足により新たな楽音の発音のために消音されることに
なると、一般的に不自然に聴こえやすいため、「ass
ign type」が「hist」の音色、即ち、持続
音系の楽音が、「assign type」が「lev
el」の音色、即ち、減衰音系の楽音よりも、優先度が
高くなるように設定することが好ましい。
【0157】また、上記実施例においては、ヒストリー
・アサインとレベル・アサインとの関係に関して説明し
たが、音高順アサイン(発音している音高順に優先度を
設定するものであり、低音ほど優先度が高くなるように
するものである。)を加えて、ヒストリー・アサイン、
レベル・アサインおよび音高順アサインとの関係におい
て、上記実施例と同様な処理を行うようにしてもよいこ
とは勿論である。
【0158】即ち、上記した実施例においては、アサイ
ンの方式としてレベル・アサインとヒストリー・アサイ
ンとを取り上げて説明したが、他のアサインの方式を適
宜取り上げてもよい。
【0159】さらに、上記実施例においては、通常の楽
音生成のパートとは異なるパートたる仮想パートを設け
るようにしたが、これに限られることなしに、通常の楽
音生成のパートの中から予め最も優先順位の低いパート
を設定しておき、そのパートに「envelope p
oint」が「end」のボイス、即ち、「assig
n priority」の値が「0」のボイスを属させ
るようにしてもよい。
【0160】つまり、上記実施例において説明すれ
ば、、仮想パートとして17番目のパートを設けること
なしに、16番目のパートに「assign prio
rity」の値が「0」のボイスを属させるようにして
もよい。
【0161】
【発明の効果】本発明は、以上説明したように構成され
ているので、以下に記載されるような効果を奏する。
【0162】複数の楽音生成手段と、複数の楽音生成手
段の各々が、優先度が異なる複数の選択モードの中のい
ずれの選択モードに属するかを判別する選択モード判別
手段と、複数の楽音生成手段の各々の楽音生成状態に基
づいて、複数の楽音生成手段間の優先度を設定する優先
度設定手段と、選択モード判別手段によって判別された
各楽音生成手段の属する選択モードの優先度および優先
度設定手段によって設定された楽音生成手段間の優先度
に基づいて、複数の楽音生成手段の中から新たな発音指
示を割り当てる楽音生成手段を選択する選択手段と、選
択手段によって選択された楽音生成手段に、新たな発音
指示を割り当てることにより、新たな発音指示に対応す
る楽音を生成させる割り当て手段とを有するようにした
ため、選択モード判別手段によって、各楽音生成手段が
優先度が異なるいずれの選択モードに属するかが判定さ
れるものであり、また、優先度設定手段によって、各楽
音生成手段の楽音生成状態に基づいて、各楽音生成手段
間の優先度が設定されることになる。
【0163】そして、選択手段は、選択モードの優先度
および楽音生成手段間の優先度に基づいて、複数の楽音
生成手段の中から新たな発音指示を割り当てる楽音生成
手段を選択するので、選択モードならびに楽音生成状態
に応じた合理的なアサイン処理を行うことができるよう
になる。
【0164】また、予め優先順位を設定された複数のパ
ートのそれぞれに、適宜属するようにされた複数の楽音
生成手段と、複数の楽音生成手段の中で楽音生成中でな
い楽音生成手段を、複数のパートの中の最も優先順位の
低いパートに属させる配属手段と、優先順位に従って、
最も優先順位の低いパートに属する配属手段によって配
属された楽音生成中でない楽音生成手段から、優先順位
の高いパートに属する楽音生成手段へと、新たな発音指
示を割り当てる楽音生成手段を順次選択する選択手段
と、選択手段によって選択された楽音生成手段に、新た
な発音指示を割り当てることにより、新たな発音指示に
対応する楽音を生成させる割り当て手段とを有するよう
にしたため、配属手段によって、楽音生成中でない楽音
生成手段を最も優先順位の低いパートに属するようにす
るとともに、選択手段によって優先順位に基づき、最も
優先順位の低いパートに属する配属手段によって配属さ
れた楽音生成中でない楽音生成手段から、優先順位の高
いパートに属する楽音生成手段へと、新たな発音指示を
割り当てる楽音生成手段を順次選択できるので、楽音生
成中でない楽音生成手段に関する処理を別途行うことな
く、楽音生成中でない楽音生成手段に関する処理と楽音
生成中である楽音生成手段に関する処理とを共通化し
て、一連に行うことができるようになり、処理の簡素化
を図ることができる。
【0165】従って、本発明によれば、持続音型エンベ
ロープを有する楽音と減衰音型エンベロープを有する楽
音とが混在して生成される場合であっても、合理的なア
サイン処理を行うことができ、また、アサイン処理に関
して、楽音生成中の楽音生成器に対する処理と楽音生成
中でない楽音生成器に対する処理の処理内容を同一にし
て、アサイン処理を簡素化することができる。
【図面の簡単な説明】
【図1】本発明の一実施例による電子楽器のアサイン装
置を備えた電子楽器を示すブロック構成図である。
【図2】エンベロープの説明図である。
【図3】RAMのテンポラリー領域および受信データ・
バッファ領域を図表的に示す説明図である。
【図4】RAMのパート・データ領域を図表的に示す説
明図である。
【図5】RAMのボイス・データ領域を図表的に示す説
明図である。
【図6】メイン・ルーチンのフローチャートである。
【図7】MIDI受信ルーチンのフローチャートであ
る。
【図8】ボイス・データ処理ルーチンのフローチャート
である。
【図9】プライオリティー処理ルーチンのフローチャー
トである。
【図10】ボイス獲得ルーチンのフローチャートであ
る。
【図11】発音開始ルーチンのフローチャートである。
【図12】ホールド・オン処理ルーチンのフローチャー
トである。
【図13】ホールド・オフ処理ルーチンのフローチャー
トである。
【図14】ノート・オフ処理ルーチンのフローチャート
である。
【図15】エンベロープの形状を示す説明図であり、
(a)は持続音型エンベロープを示し、(b)は減衰音
型エンベロープを示す。
【符号の説明】
10 電子楽器 12 外部鍵盤機器 14 制御装置 14a CPU 14b ROM 14c RAM 16 音源装置

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数の楽音生成手段と、 前記複数の楽音生成手段の各々が、優先度が異なる複数
    の選択モードの中のいずれの選択モードに属するかを判
    別する選択モード判別手段と、 前記複数の楽音生成手段の各々の楽音生成状態に基づい
    て、前記複数の楽音生成手段間の優先度を設定する優先
    度設定手段と、 前記選択モード判別手段によって判別された各楽音生成
    手段の属する選択モードの優先度および前記優先度設定
    手段によって設定された楽音生成手段間の優先度に基づ
    いて、前記複数の楽音生成手段の中から新たな発音指示
    を割り当てる楽音生成手段を選択する選択手段と、 前記選択手段によって選択された楽音生成手段に、前記
    新たな発音指示を割り当てることにより、前記新たな発
    音指示に対応する楽音を生成させる割り当て手段とを有
    することを特徴とする電子楽器のアサイン装置。
  2. 【請求項2】 前記選択手段は、前記複数の楽音生成手
    段の中で所定の楽音生成状態にある楽音生成手段に関し
    ては、前記所定の楽音生成状態にある楽音生成手段の前
    記選択モードに関わらず、所定選択モードに属するもの
    として処理を行う請求項1記載の電子楽器のアサイン装
    置。
  3. 【請求項3】 予め優先順位を設定された複数のパート
    のそれぞれに、適宜属するようにされた複数の楽音生成
    手段と、 前記複数の楽音生成手段の中で楽音生成中でない楽音生
    成手段を、前記複数のパートの中の最も優先順位の低い
    パートに属させる配属手段と、 前記優先順位に従って、前記最も優先順位の低いパート
    に属する前記配属手段によって配属された楽音生成中で
    ない楽音生成手段から、優先順位の高いパートに属する
    楽音生成手段へと、新たな発音指示を割り当てる楽音生
    成手段を順次選択する選択手段と、 前記選択手段によって選択された楽音生成手段に、前記
    新たな発音指示を割り当てることにより、前記新たな発
    音指示に対応する楽音を生成させる割り当て手段とを有
    することを特徴とする電子楽器のアサイン装置。
JP5201223A 1993-07-21 1993-07-21 電子楽器のアサイン装置 Pending JPH0736459A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5201223A JPH0736459A (ja) 1993-07-21 1993-07-21 電子楽器のアサイン装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5201223A JPH0736459A (ja) 1993-07-21 1993-07-21 電子楽器のアサイン装置

Publications (1)

Publication Number Publication Date
JPH0736459A true JPH0736459A (ja) 1995-02-07

Family

ID=16437382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5201223A Pending JPH0736459A (ja) 1993-07-21 1993-07-21 電子楽器のアサイン装置

Country Status (1)

Country Link
JP (1) JPH0736459A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281723B2 (en) 2011-07-08 2016-03-08 Kabushiki Kaisha Yaskawa Denki Rotary electric machine with tapered permanent magnet

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000154363A (ja) * 1998-11-18 2000-06-06 Toyo Mooton Kk 接着剤組成物
US20050228096A1 (en) * 2000-09-28 2005-10-13 Henkel Kommanditgesellschaft Auf Aktien (Henkel Kgaa) Adhesives having barrier properties
WO2011162160A1 (ja) * 2010-06-21 2011-12-29 Dic株式会社 酸素バリア性フィルム、及び接着剤

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000154363A (ja) * 1998-11-18 2000-06-06 Toyo Mooton Kk 接着剤組成物
US20050228096A1 (en) * 2000-09-28 2005-10-13 Henkel Kommanditgesellschaft Auf Aktien (Henkel Kgaa) Adhesives having barrier properties
WO2011162160A1 (ja) * 2010-06-21 2011-12-29 Dic株式会社 酸素バリア性フィルム、及び接着剤

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281723B2 (en) 2011-07-08 2016-03-08 Kabushiki Kaisha Yaskawa Denki Rotary electric machine with tapered permanent magnet

Similar Documents

Publication Publication Date Title
US6576828B2 (en) Automatic composition apparatus and method using rhythm pattern characteristics database and setting composition conditions section by section
KR950002946B1 (ko) 악음 발생 제어장치
JPH0634169B2 (ja) 発音割当て機能付電子楽器
US4969385A (en) Reassignment of digital oscillators according to amplitude
JP2641605B2 (ja) 電子楽器のチャンネル割り当て装置及びチャンネル割り当て方法
JP3372124B2 (ja) 電子楽器
JP2500489B2 (ja) 電子楽器
JP2565069B2 (ja) 電子楽器
JPH0736459A (ja) 電子楽器のアサイン装置
EP0333451A1 (en) Electronic musical instrument
KR930007833B1 (ko) 전자악기
JP2698942B2 (ja) 楽音発生装置
JP3405020B2 (ja) 電子楽器
JP2555569B2 (ja) 電子楽器
JP2715795B2 (ja) 発音割当手段を有する楽音合成装置
JP3285986B2 (ja) 電子楽器のアサイン装置
JP2705444B2 (ja) ダンパペダル付電子楽器
JP3841520B2 (ja) 電子鍵盤楽器におけるボイス割り当て装置
JP2814479B2 (ja) 電子楽器
JP4306138B2 (ja) 楽音発生装置及び楽音発生処理のプログラム
JP2513003B2 (ja) 電子楽器
JPH06259073A (ja) 電子楽器のアサイナ
JPH0727374B2 (ja) 電子楽器
JP2001265340A (ja) 楽音発生装置
JP3392451B2 (ja) 電子楽器の楽音制御装置