JP3772430B2 - Performance data editing device - Google Patents

Performance data editing device Download PDF

Info

Publication number
JP3772430B2
JP3772430B2 JP00705797A JP705797A JP3772430B2 JP 3772430 B2 JP3772430 B2 JP 3772430B2 JP 00705797 A JP00705797 A JP 00705797A JP 705797 A JP705797 A JP 705797A JP 3772430 B2 JP3772430 B2 JP 3772430B2
Authority
JP
Japan
Prior art keywords
key
event
performance data
editing
data
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
JP00705797A
Other languages
Japanese (ja)
Other versions
JPH09258732A (en
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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP00705797A priority Critical patent/JP3772430B2/en
Publication of JPH09258732A publication Critical patent/JPH09258732A/en
Application granted granted Critical
Publication of JP3772430B2 publication Critical patent/JP3772430B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、演奏データの編集を行う演奏データ編集装置に関する。
【0002】
【従来の技術】
最近は、音源を備えたパーソナルコンピュータや演奏データを取り扱うソフトウエアが各種提供されており、誰もが簡単にコンピュータミュージックを楽しむことができるようになっている。すなわち、この種のコンピュータミュージックに対応したパーソナルコンピュータによれば、使用者はキーボード等を操作して1ステップずつ演奏データを入力し、音楽的にまとまった一連の演奏データを編集することができる。従って、楽器演奏に不慣れな者あるいは楽器演奏をすることが全くできない者であっても、作曲、編曲等の音楽的創作行為を楽しむことができる。
【0003】
【発明が解決しようとする課題】
さて、パーソナルコンピュータに搭載されるような音源は、いわゆる細い音しか出せないものが多い。一方、シンセサイザ等の電子楽器においては、複数の発音チャネルを使用して同一の楽音を同時に発音させることにより芯のある太い音を発音させる技術が利用されている。コンピュータを利用した自動演奏においても、特定のパート(例えばメロディパート)を太い音で演奏したいという要求が強く、上記技術の適用が望まれている。この要求に応えるための一方法として、例えば特定のパートに対応した演奏データ中のすべてのキーオンイベントについてこれらと同一内容のキーオンイベントを複製して演奏データに付加するという方法が考えられる。しかしながら、このような単純な方法を採った場合、新たに付加したキーオンイベントに対応した発音が行われることによって音源の発音チャネルの数が不足し、本来発音されるべき他の楽音が発音されなくなるという事態が生じるおそれがある。
【0004】
この発明は以上の背景のもとでなされたものであり、かかる問題を解決し、所望のパートについて芯のある太い音が再生されるように演奏データの編集をすることができる演奏データ編集装置を提供することを目的としている。
【0005】
【課題を解決するための手段】
この発明は、発音する楽音がパート毎に定められた演奏データを編集する演奏データ編集装置であって、
前記演奏データにおける複数パートの中から1のパートを指定する指定手段と、
前記演奏データを分析して、前記指定手段によって指定されたパートにおける各楽音の発音期間を調査し、前記パートにおける1の楽音の発音期間内において、同時に発音中となる前記パート内の楽音の最大数を求め、当該最大数が所定数よりも少なかった場合に前記1の楽音の発音期間と同じ発音期間を有する楽音を発音するためのデータを前記演奏データに付加する付加手段と
を具備することを特徴とする演奏データ編集装置を要旨とする。
【0006】
また、請求項2に係る発明は、請求項1に記載の演奏データ編集装置において、前記付加手段は、前記最大数が所定数よりも少なかった場合に、前記1の楽音と同じ楽音を、前記1の楽音と同じ発音期間において発音するためのデータを前記演奏データに付加することを要旨とする。
【0007】
【発明の実施の形態】
以下、本発明を更に理解しやすくするため、実施の形態について説明する。
かかる実施の形態は、本発明の一態様を示すものであり、この発明を限定するものではなく、本発明の範囲で任意に変更可能である。
【0008】
A.構成
図1はこの発明の一実施形態である演奏データ編集装置の外観を示す図である。本実施形態は、音源を内蔵した一般的なパーソナルコンピュータに対し、演奏データの編集のためのソフトウエアをインストールして構成したものである。図1を参照し、各構成要素について説明すると、1はコンピュータ本体、2はCRTディスプレイ、3はキーボード、4はマウス、5Lおよび5Rはスピーカである。6は複数の発音チャネルにより同時に複数の音を発音し得る複音式の音源ボードであり、コンピュータ本体1内に収容される。また、図1に示す例では、コンピュータ本体1に対し、MIDIケーブル7を介して鍵盤電子楽器8が接続されている。
【0009】
コンピュータ本体1の内部の電気的構成を図2に示す。図2において、11はこの演奏データ編集装置の各部の制御を行うCPUである。12は表示部であり、CPU11による制御の下、CRTディスプレイ2等の表示手段の表示制御を行う。13は操作部であり、CPU11はこの操作部13を介してキーボード3,マウス4等の操作手段に対してなされる操作を検知する。14はCPU11のワークエリアとして設けられたRAMであり、CPU11が各種制御を行う上で必要な制御用のレジスタが設定される。図3はこれらの制御用レジスタのうち主要なものを図示したものである。また、RAM14には、自動演奏あるいは演奏データの編集の際に演奏データの記憶手段として使用される。15はROMであり、図4に示すように、演奏データの編集を行うための編集プログラムの他、CPU11によって実行される各種制御プログラムを記憶している。
【0010】
16はハードディスク装置であり、演奏データの他、種々の情報を記憶するために設けられた大容量の記憶手段である。17はMIDIインタフェースであり、CPU11はこのMIDIインタフェース17を介して外部の電子楽器等との間でMIDIデータの授受を行う。図1におけるMIDIケーブル7はこのMIDIインタフェース17に接続されている。また、図1に示した音源ボード6、スピーカ5Lおよび5Rからなる楽音発生手段もCPU11の制御下に置かれている。
【0011】
この演奏データ編集装置の動作モードとして次の4種類のものがある。いずれの動作モードも、CPU11がROM15内に記憶された各モードに対応した制御プログラムを実行することにより提供されるものである。
【0012】
▲1▼記憶モード
記憶モードが設定された場合、CPU11はROM15内の記憶プログラムを実行する。この記憶モードにおいては、後述するMIDIデータ作成モードにおいてステップ入力により逐次入力される演奏データあるいは外部の電子楽器等からMIDIインタフェース17経由で入力される演奏データがRAM14に格納される。
【0013】
▲2▼再生モード
再生モードが設定された場合、CPU11はROM15内の再生プログラムを実行する。この再生モードにおいては、CPU11による制御の下、RAM14内に格納された演奏データに従って音源ボード6に各種制御情報が送られ、演奏データに基づく自動演奏が行われる。
【0014】
▲3▼編集モード
編集モードが設定された場合、CPU11はROM15内の編集プログラムを実行する。この編集モードにおいては、演奏データの変更・削除・追加を行うことが可能である他、以下の特徴的な編集処理を実行することが可能である。いずれも使用者が特定のMIDIチャネルを指定することにより、全演奏データのうち当該特定MIDIチャネルに対応したもののみがその編集処理の処理対象となる。
【0015】
(a)ベロシティエキスパンダ編集処理
演奏データの構成要素の1つとして発音の際の音量を決定するベロシティデータ(音量データ)がある。このベロシティエキスパンダ編集処理は、特定のMIDIチャネルに対応したベロシティデータを処理対象とし、処理対象たるベロシティデータ全体が所定の範囲内に収るように各ベロシティデータの分布範囲を拡大するものである。すなわち、このベロシティエキスパンダ編集処理は、自動演奏時における特定パートの音量の変化の起伏を大きくし、その特定パートを際立たせる効果を奏するものである。
【0016】
(b)発音重複化編集処理
音源ボード6の複数の発音チャネルにより同じ楽音を重複して形成すると、1つの発音チャネルを使用した場合に比べて芯のある太い楽音が得られる。発音重複化編集処理は、特定のパートについてこの効果を得るために行われる処理である。すなわち、この発音重複化編集処理は、特定のMIDIチャネルに対応したキーオンイベントを処理対象とするものであり、既にあるキーオンイベントに対し、これと重複するキーオンイベントを付加するものである。ここで、この重複するキーオンイベントの付加を全く無条件に行った場合には発音チャネルが不足するおそれがある。そこで、本実施形態においては、既存のキーオンイベントの発生状況を時系列的に把握し、各時点において発音チャネルの不足が生じないという条件を満たす限りにおいて、重複したキーオンイベントの付加を行う。
【0017】
(c)タイミングチューナ編集処理
タイミングチューナ編集処理は、実際の楽器演奏を記録した実演奏データあるいはキーボード3の操作によって作成される実演奏データに基づき、特定のMIDIチャネルに対応したキーオンイベントの再生タイミングを調整する編集処理である。
【0018】
▲4▼MIDIデータ作成モード
キーボード3,マウス4等の操作手段を操作して1ステップずつ演奏データを順次作成してゆく動作モードである。
【0019】
次に図3を参照し、RAM14内に設定された制御用レジスタのうち主要なものについて説明する。
【0020】
(a)モードレジスタ
使用者は、キーボード3またはマウス4を操作することにより、記憶モード、再生モード、編集モードおよびMIDIデータ作成モードのうち所望のものを指定することができる。各動作モードにはモード指定情報「0」〜「3」が各々割り当てられており、これらのモード指定情報のうち使用者により指定された動作モードに対応したものがこのモードレジスタに設定される。
【0021】
(b)エキスパンダレジスタEXP,MIN,MAX
このエキスパンダレジスタは、上述したベロシティエキスパンダ編集処理を制御するための情報を記憶する手段であり、3種類のレジスタEXP、MAXおよびMINによって構成されている。レジスタEXP(CH)(CH=0〜15)は、ベロシティエキスパンダ編集処理を適用するか否かを示す情報を各MIDIチャネル毎に記憶するレジスタであり、チャネル番号CHのMIDIチャネルに対しベロシティエキスパンダ編集処理を適用する場合にはEXP(CH)=“1”とされ、適用しない場合にはEXP(CH)=“0”とされる。レジスタMAX(CH)(CH=0〜15)およびMIN(CH)(CH=0〜15)は、ベロシティエキスパンダ編集処理実行後のベロシティデータの分布範囲の上限値および下限値を各MIDIチャネル毎に各々記憶するレジスタである。各MIDIチャネルに対応したベロシティデータの上限値および下限値は使用者がキーボード3等の操作手段を介して設定することができるが、この使用者による設定がない場合はデフォルト値が設定される。
【0022】
(c)ダブラレジスタDBL
ダブラレジスタDBL(CH)(CH=0〜15)は、上述した発音重複化編集処理を適用するか否かを示す情報を各MIDIチャネル毎に記憶するレジスタであり、チャネル番号CHのMIDIチャネルに対し発音重複化編集処理を適用する場合にはDBL(CH)=“1”とされ、適用しない場合にはDBL(CH)=“0”とされる。
【0023】
(d)チューナレジスタTUN
チューナレジスタTUN(CH)(CH=0〜15)は、上述したタイミングチューナ編集処理を適用するか否かを示す情報を各MIDIチャネル毎に記憶するレジスタであり、チャネル番号CHのMIDIチャネルに対しタイミングチューナ編集処理を適用する場合にはTUN(CH)=“1”とされ、適用しない場合にはTUN(CH)=“0”とされる。
【0024】
B.動作
以下、本実施形態の動作を説明する。
(1)全般的動作
キーボード3,マウス4等の操作手段の操作がなされると、操作部13からCPU11に対して割込み要求がなされる。この結果、CPU11は、ROM15内に記憶された操作検出プログラム(図4)を割込み処理として実行する。
【0025】
この操作検出プログラムのフローは図5に示す通りである。まず、ステップS101に進み、CPU11は、操作部13を介して操作の内容を検知し、その操作がモード設定を要求する操作か否かを判断する。この判断結果が「YES」の場合はステップS106に進み、記憶モード、再生モード、編集モードおよびMIDIデータ作成モードのモード指定情報(「0」〜「3」)のうち、操作によって要求された動作モードに対応した情報をモードレジスタに設定し、この操作検出プログラムを終了する。
【0026】
ステップS101の判断結果が「NO」の場合はステップS102に進み、操作部3を介して検知した操作がベロシティエキスパンダ編集処理を指示する操作か否かを判断する。この判断結果が「YES」の場合は、ステップS107に進み、ベロシティエキスパンダ編集処理の実行に必要な制御情報の設定を行う。すなわち、上記ベロシティエキスパンダ編集処理を指示する操作においては、その処理対象となるMIDIチャネルの番号、ベロシティエキスパンダ編集処理後のベロシティデータの分布範囲の上限値および下限値の指定が入力されるので、そのMIDIチャネルの番号CHに対応したレジスタEXP(CH)に“1”を設定し、レジスタMAX(CH)およびMIN(CH)に上限値および下限値を設定する。なお、使用者は上限値および下限値の指定を省略することができるが、その場合にはレジスタMAX(CH)およびMIN(CH)に対し所定のデフォルト値(例えば「120」および「10」)を設定する。各レジスタへのデータ設定を終えると、操作検出プログラムを終了する。
【0027】
ステップS102の判断結果が「NO」の場合はステップS103に進み、操作部3を介して検知した操作が発音重複化編集処理を指示する操作か否かを判断する。この判断結果が「YES」の場合はステップS108に進み、使用者が発音重複化編集処理の処理対象として指定するMIDIチャネルの番号を操作部13を介して検知し、そのMIDIチャネルの番号CHに対応したダブラレジスタDBL(CH)に“1”を設定し、操作検出プログラムを終了する。
【0028】
ステップS103の判断結果が「NO」の場合はステップS104に進み、操作部3を介して検知した操作がタイミングチューナ編集処理を指示する操作か否かを判断する。この判断結果が「YES」の場合はステップS109に進み、使用者がタイミングチューナ編集処理の処理対象として指定するMIDIチャネルの番号を操作部13を介して検知し、そのMIDIチャネルの番号CHに対応したチューナレジスタTUN(CH)に“1”を設定し、操作検出プログラムを終了する。
【0029】
そして、ステップS104の判断結果が「NO」の場合は、以上説明したステップS102〜S104において判断した指示内容とは別の種類の指示内容に対応した操作検出処理(ステップS105)を実行し、操作検出プログラムを終了する。
【0030】
編集モードが設定されると、CPU11はROM15内の編集プログラムを実行する。この編集プログラムは、図6に示すようにベロシティエキスパンダ編集処理、発音重複化編集処理およびタイミングチューナ編集処理に各々対応した3種類の編集用サブプログラムによって構成される。
【0031】
各編集用サブプログラムは、いずれも図7に示すようにアナライザとチェンジャによって構成されている。これらのうちチェンジャは、各編集用サブプログラムの本来の目的である演奏データの編集処理を行うためのプログラムである。そして、アナライザは、処理対象となる演奏データの分析を行い、チェンジャの実行に必要な情報を演奏データから抽出するプログラムであり、チェンジャの実行に先立って実行される。
【0032】
アナライザおよびチェンジャの具体的な処理内容は各編集用サブプログラムにより異なるが、いずれの編集用サブプログラムのアナライザも基本的には図8に示すフローに従って演奏データの分析および編集処理に必要な情報の抽出を行うものである。すなわち、MIDIチャネルの番号CHを「0」〜「15」まで変化させ(ステップS201,S205,S206)、各チャネル番号CHに対応した各MIDIチャネルが編集処理の対象であるか否か、すなわち、例えば当該アナライザがベロシティエキスパンダ編集処理のためのアナライザである場合にはレジスタEXP(CH)の内容が“1”か否かを判断する(ステップS202)。そして、この判断結果が「YES」となったチャネル番号CHについては、そのチャネル番号CHのMIDIチャネルに対応した演奏データをRAM14内のワークエリアに取り込み(ステップS203)、この取り込んだ演奏データを分析して後続のチェンジャが必要とする情報を抽出する(ステップS204)。このようにしてアナライザに対応した各処理が終了すると、これにより得られた情報に従ってチェンジャに対応した各処理が実行され、ベロシティエキスパンダ編集処理、発音重複化編集処理あるいはタイミングチューナ編集処理が完了するのである。
【0033】
以下、ベロシティエキスパンダ編集処理、発音重複化編集処理、タイミングチューナ編集処理の順に各々の具体的な処理内容を詳述する。
【0034】
(2)ベロシティエキスパンダ編集処理
図9は、処理対象として指定されたMIDIチャネルのうち1つのMIDIチャネル(チャネル番号CH)に対応したベロシティデータを演奏の進行順に並べてグラフ化したものであり、実線の曲線Pはベロシティエキスパンダ編集処理がなされる前のベロシティデータの変化を、破線の曲線Qはベロシティエキスパンダ編集処理後のベロシティデータの変化を表したものである。この図に例示するように、ベロシティエキスパンダ編集処理においては、ベロシティデータ全体がレジスタMAX(CH)に設定された上限値とレジスタMIN(CH)に設定された下限値によって限られた範囲内に収るように各ベロシティデータの分布範囲を拡大する。
【0035】
ベロシティエキスパンダ編集処理用のアナライザにおいては、処理対象として指定されている各MIDIチャネル(すなわち、EXP(CH)=“1”となっているMIDIチャネル)について、ベロシティデータの最大値maxおよび最小値min(図9参照)を求める分析処理を行う。
【0036】
分析処理の直接の対象はベロシティデータであるが、このベロシティデータは演奏データの一部をなすキーオンイベントに含まれている。このキーオンイベントのデータフォーマットを図10に示す。同図に示すように、キーオンイベントは3バイトの情報によって構成されている。まず、第1バイトはキーオンステータスを表示するものであり、上位4ビットがキーオンイベントの識別コード「9」を表し、下位4ビットは当該キーオンイベントのMIDIチャネルの番号CHを表している。次に第2バイトは、当該キーオンイベントにより発音する楽音のノートナンバを表している。そして、キーオンイベントの第3バイトがこの分析処理の直接の処理対象であるベロシティデータとなっている。そこで、ベロシティデータの最大値maxおよび最小値minを求めるに当たっては、演奏データのうちキーオンイベントに対応したもののみに着目し、その第3バイト目のベロシティデータの大小判定を行うという手順を踏む。図11はこの手順に従って実行される分析処理のフローを示している。なお、この分析処理は、図8に示すステップS204に相当するものである。以下、図11に示すフローチャートを参照し、分析処理について詳述する。
【0037】
まず、最大値maxおよび最小値minの初期設定を行う(ステップS301)。次いで処理対象となっているMIDIチャネルに対応した演奏データの中から先頭のイベントを取り込む(ステップS302)。次に、この取り込んだイベントの第1バイトの上位4ビットの値が「9」か否か、すなわち、当該イベントがキーオンイベントか否かを判断する(ステップS303)。この判断結果が「YES」である場合にはステップS304に進み、「NO」の場合はステップS308に進む。
【0038】
次にステップS304に進むと、今回取り込んだキーオンイベントの第3バイト目にあるベロシティデータVelを参照し、このベロシティデータVelが現在の最大値max以上か否かを判断する。そして、この判断結果が「YES」である場合には、そのベロシティデータVelによって最大値maxを更新し(ステップS305)、ステップS308へ進む。一方、ステップS304の判断結果が「NO」の場合には、今回取り込んだキーオンイベントのベロシティデータVelが現在の最小値min以下か否かを判断する(ステップS306)。そして、この判断結果が「YES」の場合はそのベロシティデータVelによって最小値minを更新し(ステップS307)、その後、ステップS308へ進み、「NO」の場合はステップS307を実行することなくステップS308に進む。
【0039】
次にステップS308に進むと、処理対象となっているMIDIチャネルに対応した全てのイベントについて以上説明した処理を実行したか否か、すなわち、分析を終了してよいか否かを判断する。この判断結果が「NO」の場合は、今回取り込んだイベントの次のイベントを取り込み(ステップS309)、この取り込んだイベントについてステップS303〜S308からなる処理を実行する。以下、同様にして処理対象たるMIDIチャネルに対応した全てのイベントについてステップS303〜S308からなる処理が実行される。そして、ステップS308の判断結果が「YES」になると、その時点における最大値maxおよび最小値minをRAM14内の所定のエリアに格納し(ステップS310)、当該MIDIチャネルに対応した処理を終了する。
【0040】
チェンジャとしての処理は、図12に示すフローに従って実行される。まず、MIDIチャネルのチャネル番号CHを「0」に初期設定する(ステップS401)。次いでレジスタEXP(CH)の内容が“1”か否か、すなわち、現在のチャネル番号CHに対応したMIDIチャネルがベロシティエキスパンダ編集処理の処理対象となっているか否かを判断する(ステップS402)。そして、この判断結果が「NO」である場合はチャネル番号CHを1だけ増加させた後(ステップS403)、チャネル番号CHが「15」を超えているか否かを判定し(ステップS407)、超えていなければステップS402の判断を再び行う。
【0041】
一方、レジスタEXP(CH)の内容が“1”となっている場合には、そのチャネル番号CHに対応したMIDIチャネルのベロシティデータVelをRAM14から1個ずつ順次読み出す(ステップS404)。そして、このベロシティデータVelを以下の式(1)に従って更新し、更新後のベロシティデータVelをRAM14内の元の位置に戻す(ステップS405)。

Figure 0003772430
【0042】
ただし、この式(1)において、maxおよびminは、チャネル番号CHに対応したMIDIチャネルにおけるベロシティデータの最大値および最小値であり、既に図11を参照して説明した処理により求められ、RAM14内に格納されていた情報である。
【0043】
次に、チャネル番号CHのMIDIチャネルに対応した全てのベロシティデータを読み終えたか否かを判断する(ステップS406)。そして、この判断結果が「NO」の場合はステップS404に戻り、後続のベロシティデータについて同様の処理を行う。そして、ステップS406の判断結果が「YES」となった場合には、チャネル番号CHを増加させた後(ステップS403)、ステップS407に進んでチャネル番号CHが「15」を超えているか否かを判断する。この判断結果が「NO」の場合はステップS402に進み、ステップS402において他に処理対象となっているMIDIチャネルが見つかった場合には、そのMIDIチャネルについて上述の処理を行う。そして、すべてのMIDIチャネルについての処理が終了すると、ステップS407の判断結果が「YES」となり、チェンジャとしての処理が終了する。
【0044】
以上の処理により、処理対象となったMIDIチャネルに対応した全ベロシティデータは、レジスタMAX(CH)およびMIN(CH)に設定された上限値および下限値によって限られた範囲内に分布範囲が拡大される。図13は、このベロシティデータの分布範囲の拡大の様子を図示したものである。この図に示すように、最大値maxから最小値minまでの範囲に分布していた各ベロシティデータは、前掲式(1)の適用により、各々相互の大小関係をそのまま維持した状態で、上限値MAX(CH)および下限値MIN(CH)によって挟まれた広い範囲内にその分布範囲が拡大されるのである。
【0045】
このように本実施形態によれば、指定したMIDIチャネルについてベロシティデータの分布範囲を任意に広げることができるので、自動演奏時における特定パートの音量の変化の起伏を任意に大きくし、演奏に表情を持たせることができる。
【0046】
(3)発音重複化編集処理
発音重複化編集処理においては、処理対象となっている各MIDIチャネル(DBL(CH)=“1”となっているMIDIチャネル)について、当該MIDIチャネルに対応した既存のキーオンイベントに対し、これと重複するキーオンイベントを付加する処理を行う。この重複するキーオンイベントの付加を全く無条件に行った場合には発音チャネルが不足するおそれがある。そこで、既存のキーオンイベントの発生状況を時系列的に把握する分析処理を行った後、各時点において発音チャネルの不足が生じないという条件を満たす限りにおいて、重複したキーオンイベントを付加する処理を行う。前者の分析処理はアナライザの実行により行われ、後者の処理はチェンジャの実行により行われる。
【0047】
アナライザの分析処理(図8のステップS204に相当する処理)においては、処理対象たるMIDIチャネルに対応した各キーオンイベントについて、各々と同一のキーオンイベントを付加した場合に発音チャネルが不足しないか否かを判定する。この処理の概要を図14を参照して説明する。図14(a)(b)において、KON1,KON2,…等は各々キーオンイベントを表しており、KOFF1,KOFF2,…等はこれらのキーオンイベントによって開始された発音動作を終了させるキーオフイベントを表している。これらの各キーオンイベントおよび各キーオフイベントは、RAM14内に記憶された演奏データの中から抽出されたものであり、図面横方向を時間の進行方向とし、各々の再生順序に従って時系列的に並べられている。
【0048】
ここで、図14(a)および(b)に示す各状況について、発音チャネル不足の有無を如何にして判定するか、その例を説明する。なお、以下では音源ボードが4個の発音チャネルを有していることを前提とする。また、図示されたキーオンイベントおよびキーオフイベントは、すべて発音重複化編集処理の処理対象となっているMIDIチャネルに対応したものであるとする。
【0049】
まず、図14(a)に示す状況においては、各キーオンイベントKON1〜KON3によって開始される各発音期間は時間軸上において重複しない。従って、各キーオンイベントKON1〜KON3はいずれも各々に重複したキーオンイベントを付加することが可能である。
【0050】
次に、図14(b)に示す状況について検討する。この場合、各キーオンイベントKON1〜KON5によって開始される各発音期間の中には時間軸上において相互に重複するものがある。そこで、各キーオンイベントについて重複したキーオンイベントを付加可能か否かを検討する。
【0051】
まず、キーオンイベントKON1について検討すると、このキーオンイベントの発生タイミングにおいては他のキーオンイベントによる発音は行われていない。また、キーオンイベントKON1による発音がキーオフイベントKOFF1によって終了するまでの間にキーオンイベントKON2およびKON3が生じるが、これらのキーオンイベントに対応した発音を行ったとしても、依然として発音チャネルが1個余る。従って、キーオンイベントKON1による発音が行われる期間、さらに1個の発音チャネルを使用して発音を行ったとしても、発音チャネル不足は生じない。よって、キーオンイベントKON1については、これと同じキーオンイベントを付加し、同一音について発音チャネルを2個使用した重複発音を行ってもよいという判定結果となる。
【0052】
次に、キーオンイベントKON2について検討する。上記判定の結果に従うとすると、キーオンイベントKON1に関しては発音チャネルを2個使用して重複した発音が行われるため、キーオンイベントKON2に対応した発音を行う際には発音チャネルを3個使用することとなる。そして、キーオンイベントKON2による発音がキーオフイベントKOFF2によって終了するまでの間に、キーオンイベントKON3に対応した発音が開始される。ここで、キーオンイベントKON3に対応した発音開始時点においては、依然としてキーオンイベントKON1に対応した発音が行われているので、この時点において発音チャネルを4個使用することとなる。従って、仮にキーオンイベントKON2について発音チャネルを2個使用した発音を行ってしまうと、キーオンイベントKON3に対応した発音を開始する時点において発音チャネルが不足してしまう。よって、キーオンイベントKON2については、発音チャネルを2個使用した重複発音は許可できないという判定結果となる。
【0053】
次に、キーオンイベントKON3について検討する。上記各判定の結果に従うとすると、キーオンイベントKON1に関しては発音チャネルを2個使用して重複した発音が行われ、キーオンイベントKON2に関しては発音チャネルを1個使用した発音が行われるため、キーオンイベントKON3に対応した発音を行う際には発音チャネルを4個使用することとなる。従って、キーオンイベントKON3に関しては、発音チャネルを2個使用した重複発音をすることができないのは明らかである。
【0054】
次に、キーオンイベントKON4について検討する。このキーオンイベントKON4に対応した発音を開始する時点においては、キーオンイベントKON1に対応した発音が既に終了している。従って、この時点においては、キーオンイベントKON2、KON3およびKON4に対応した発音を行うために3個の発音チャネルを使用することとなり、発音チャネルが1個余る。また、キーオンイベントKON4による発音がキーオフイベントKOFF4によって終了するまでの間、他のキーオンイベントに対応した発音は開始されない。よって、キーオンイベントKON4については、発音チャネルを2個使用した重複発音を認めてよいという判定結果となる。
【0055】
以上説明した判定は、複数のキーオンイベントに対応した発音期間が時間軸上において重複し、いずれかのキーオンイベントについて重複発音を行うと発音チャネルの不足が生じる場合には、時間的に先に再生されるキーオンイベントを優先して重複発音を許可するというルールに従って行われるものである。なお、このようなルールの他、発音重複化についての各キーオンイベントの競合を回避する各種のルールが考えられるが、その説明は省略する。
【0056】
発音重複化編集処理の分析処理においては、以上のような原理に従い、重複発音の適用の可否の判定を処理対象たるMIDIチャネルに対応した各キーオンイベントについて行うのである。
【0057】
この分析処理を行うためには、各キーオンイベントおよび各キーオフイベントの発生状況を時系列的に捉える必要がある。そこで、本実施形態においては、演奏データに含まれているステップタイムを参照し、各キーオンイベントに対応した発音期間の時間軸上での占有位置を求める。すなわち、演奏データ中の各イベントの前には、図15に例示するようにステップタイムを表すデータが付加されている。このステップタイムは、その直前のイベントを再生してから当該イベント(ステップタイムの直後のイベント)を再生するまでの待機時間である。従って、任意のイベントについて当該イベントよりも前に存在する全てのステップタイムの合計値を演算すれば、自動演奏の開始時刻を基準とした当該イベントの相対的な再生時刻を求めることができる。本実施形態においては、各キーオンイベントおよび各キーオフイベントについてこのような演算を行うことにより、各キーオンイベントに対応した発音期間の時間軸上での占有位置を求めるのである。
【0058】
次に図16を参照し、発音重複化編集処理の分析処理の具体的なフローについて説明する。まず、処理対象となっているMIDIチャネルに対応した演奏データの中から先頭のイベントを取り込む(ステップS501)。次に、この取り込んだイベントがキーオンイベントか否かを判断する(ステップS502)。この判断結果が「YES」である場合にはステップS503に進み、「NO」の場合はステップS508に進む。
【0059】
次にステップS503に進むと、今回取り込んだキーオンイベントの周辺イベントの調査を行う。すなわち、上述したようにステップタイムに基づいて把握される各キーオンイベントに対応した各発音期間に着目し、次の事項の調査を行う。
【0060】
a.今回取り込んだキーオンイベントに対応した発音期間が他のキーオンイベントに対応した発音期間と時間軸上において重複していないかどうか。
b.発音期間の重複が認められる場合において、今回取り込んだキーオンイベントに重複発音を適用した場合に発音チャネルの不足が生じないかどうか。
【0061】
次にステップS504に進み、上記ステップS503での調査結果に基づき、今回取り込んだキーオンイベントに対し、重複発音を適用可能か否かを判断する。この判断の結果は、次の3通りに分れる。
【0062】
a.無条件に重複発音を認めて構わない。
この判断がなされる状況を図17(a)に例示する。この例では、キーオンイベントKON1およびKON2に対応した各発音期間は、他のキーオンイベントに対応した発音期間と全く重複していない。よって、今回取り込んだキーオンイベントがこの例に示すキーオンイベントKON1およびKON2のような状況に置かれている場合には、無条件に重複発音を適用可能という判定結果となる。
【0063】
b.条件付きで重複発音を認めてもよい。すなわち、今回取り込んだキーオンイベントと競合する他のキーオンイベントがあるため、今回取り込んだキーオンイベントに重複発音を適用可能か否かはこれらの他のキーオンイベントに重複発音を適用するか否かによる。
【0064】
この判断がなされる状況を図17(b)に例示する。この例では、キーオンイベントKON1、KON2およびKON3は各々の発音期間が時間軸上において重複しているため、これらのうち1個のみについて重複発音を適用することが許される。また、キーオンイベントKON4は、キーオンイベントKON2およびKON3と発音期間が重複している。従って、キーオンイベントKON4については、キーオンイベントKON2およびKON3のいずれについても重複発音が適用されていない場合に限り、重複発音を認めてよい。今回取り込んだキーオンイベントがこの例に示すキーオンイベントKON1〜KON4のような状況に置かれている場合には、これらに対し重複発音を適用可能か否かは競合する他のキーオンイベントに対する重複発音の適用如何によることとなる。
【0065】
c.今回取り込んだキーオンイベントに重複発音を認める余地は全くない。
キーオンイベントの追加を行わなくても既に発音チャネルが全て使用されており、重複発音を行うと必ず発音チャネルが不足してしまう状況である。
【0066】
ステップS504の判定において、判定結果が上記aまたはbに該当する場合にはステップS505に進み、上記cに該当する場合にはステップS508に進む。
【0067】
次にステップS505に進むと、ステップS504の判定結果が上記bであるか否かを判断する。この判断結果が「YES」の場合はステップS506に進み、今回取り込んだキーオンイベントの内容と時間軸上での位置を示す情報をRAM14内に記録する。そして、ステップS508に進む。
【0068】
一方、ステップS504の判定結果が「NO」の場合、すなわち、今回取り込んだキーオンイベントが上記の状況bに置かれている場合にはステップS507に進み、競合を回避するための調整を行う。この調整は、例えば既に図14を参照して説明したように先に再生されるキーオンイベントを優先して重複発音を適用するルールに従って行う。この方法の他、例えば競合しているキーオンイベントをCRTディスプレイ2に表示し、いずれのキーオンイベントに重複発音を適用するかを使用者に選択させるようにしてもよい。重複発音を適用するキーオンイベントを決定すると、そのキーオンイベントの内容および時間軸上での位置を示す情報をRAM14内に記録し、ステップS508に進む。
【0069】
次にステップS508に進むと、処理対象となっているMIDIチャネルに対応した全てのイベントについて以上説明した処理を実行したか否か、すなわち、分析を終了してよいか否かを判断する。この判断結果が「NO」の場合は、次のイベントを取り込み(ステップS509)、ステップS502へ戻る。以下、同様にして処理対象たるMIDIチャネルに対応した全てのイベントについてステップS502〜S508からなる処理が実行される。そして、ステップS508の判断結果が「YES」になることを以て、このアナライザとしての処理を終了する。
【0070】
チェンジャとしての処理は、図18に示すフローに従って実行される。まず、MIDIチャネルのチャネル番号CHを「0」に初期設定する(ステップS601)。次いでダブラレジスタDBL(CH)の内容が“1”か否か、すなわち、現在のチャネル番号CHに対応したMIDIチャネルが発音重複化編集処理の処理対象となっているか否かを判断する(ステップS602)。そして、この判断結果が「NO」である場合はチャネル番号CHを1だけ増加させた後(ステップS605)、チャネル番号CHが「15」を超えているか否かを判定し(ステップS604)、超えていなければステップS602の判断を再び行う。
【0071】
一方、レジスタDBL(CH)の内容が“1”となっている場合には、ステップS603に進んでキーオンイベント挿入処理を実行する。すなわち、チャネル番号CHに対応したMIDIチャネルのイベントをRAM14から1個ずつ順次読み出し、読み出したイベントをRAM14内の別のエリアに順次書込んでゆく。その際に、上述したアナライザの実行の際にRAM14に格納した各キーオンイベントに関する情報を参照し、RAM14から読み出した各イベントが重複発音を適用することとしたキーオンイベントであるか否かを判定する。そして、重複発音を適用することとしたキーオンイベントについては、これと同一内容のキーオンイベントを付加し、RAM14へ書込む。このキーオンイベント挿入処理が終わると、ステップS605に進んでチャネル番号CHを1増加させる。そして、ステップS604に進んで、チャネル番号CHが「15」を超えたか否かを判断する。この判断結果が「NO」の場合はステップS602に戻る。その後、処理が進んでチャネル番号CHが「15」を超えることにより、ステップS604の判断結果が「YES」となり、チェンジャとしての処理が終了する。
【0072】
以上のように、本実施形態によれば、所望のMIDIチャネルのキーオンイベントに対し重複発音を適用することができるため、所望のパートの音を芯のある太い音とすることができる。
【0073】
(4)タイミングチューナ編集処理
最初に、図19を参照し、タイミングチューナ編集処理の概要を説明する。図19において、横方向の直線は時間軸を示しており、この時間軸の上側に並べられた一連の白抜きの三角マークは各々、このタイミングチューナ編集処理の処理対象たるキーオンイベントの再生タイミングを示している。また、時間軸の下側には一連の黒塗りの三角マークが記されているが、これらは使用者が発音を望んでいるタイミングを示している。
【0074】
このタイミングチューナ編集処理においては、処理対象たるMIDIチャネル(TUN(CH)=“1”となっているMIDIチャネル)に対応したキーオンイベントまたはキーオフイベントについて、各々が使用者の望むタイミングで再生されるように再生タイミングの補正を行うものである。タイミングチューナ編集処理は、既存のキーオンイベントまたはキーオフイベントの再生タイミングと使用者が望む再生タイミングとのずれ時間、すなわち、図19に示すΔt1,Δt2,…を求める分析処理と、この分析処理の結果に基づいて各キーオンイベントおよびキーオフイベントの再生タイミングを補正する処理とにより構成される。前者の分析処理を行うためのプログラムがアナライザであり、後者の処理を行うためのプログラムがチェンジャである。
【0075】
アナライザを実行するに当たり、使用者が望む再生タイミングを表すデータを予め準備する必要がある。このデータを得るための方法としては次の2通りがある。
【0076】
a.使用者が実演奏をすることによる方法
例えば使用者が他の電子楽器を使用して特定パート(例えばリズムパート)の演奏を行う。その際に得られる実演奏データをMIDIインタフェース17からこの演奏データ編集装置に供給し、実演奏データ中のキーオンイベントまたはキーオフイベントの再生タイミングを使用者が望む再生タイミングとして使用する。
【0077】
b.図20に示すように使用者がキーボード3のスペースキーを叩くことにより所望の再生タイミングを指定する実演奏データを作成する方法
この方法を利用する場合、使用者は、演奏データ編集装置の動作モードをMIDIデータ作成モードに設定した後、スペースキーのみを使用したリズム演奏をする。すなわち、発音を開始させたいタイミングにおいてスペースキーをオンとし、発音を終了させたいタイミングにおいてスペースキーをオフとすればよい。従って、この方法は、電子楽器演奏に不慣れな使用者にとっては便利である。
【0078】
図21は、この方法に従ってリズム系の楽音のキーオンイベントの再生タイミングを表す実演奏データを作成する実演奏データ作成プログラムのフローを示すものである。以下、このプログラムの処理内容を説明する。
【0079】
このプログラムは所定のコマンドが入力されることにより開始される。まず、ステップS701に進むと、スペースキーのオンイベントがあったか否かを判断する。この判断結果が「NO」の場合にはステップS704に進み、処理終了の指示がなされたか否か(図示しない終了ボタンが押されたか否か)を判断する。そして、この判断結果が「NO」の場合はステップS701に戻る。
【0080】
スペースキーのオンイベントが発生すると、ステップS701の判断結果が「YES」となってステップS702に進む。そして、現在の動作モードがMIDIデータ作成モードか否かを判断する。この判断結果が「NO」の場合は何等のデータを作成することもなくこのプログラムを終了する。
【0081】
一方、ステップS702の判断結果が「YES」の場合はステップS703に進み、MIDIエンコード処理を実行する。すなわち、このプログラムの実行を開始してからの経過時間に相当するステップタイムと所定のキーオンイベントを作成し、RAM14内の所定のエリアに書込む。そして、この書込みを終えた後、ステップS701に戻る。
【0082】
その後、再びスペースキーのオンイベントが発生すると、ステップS701,S702を介してステップS703に進み、再びMIDIエンコード処理を実行することとなる。この場合には、前回、ステップタイムおよびキーオンイベントの書込みを行ってから現在に至るまでの経過時間に相当するステップタイムと所定のキーオンイベントを作成し、RAM14内の所定のエリアに書込む。以後、同様に、スペースキーのオンイベントが検知される毎に、ステップタイムとキーオンイベントのRAM14への記録を行ってゆく。そして、スペースキーの操作が途絶え、処理終了の指示がなされるとステップS704の判断結果が「YES」となり、処理が終了する。
【0083】
以上の処理により、使用者が望むキーオンイベントの再生タイミングを表す実演奏データがRAM14内に得られる。
【0084】
なお、持続系の音のキーオンイベントおよびキーオフイベントの両方の再生タイミングを指定するデータをスペースキー操作によって作成したい場合には、図21に示すプログラムに対し、スペースキーのオンイベントだけでなくオフイベントも判定するように処理を追加すればよい。
【0085】
このようにして実演奏データが得られると、次にアナライザが実行され、タイミングチューナ編集処理の処理対象となっているMIDIチャネル(TUN(CH)=“1”となっているMIDIチャネル)について、図22に示す分析処理が実行される。まず、ステップS801に進むと、RAM14内の演奏データからキーオンイベント以外のイベントの除去された楽譜データを作成する。すなわち、処理対象たるMIDIチャネルに対応した一連のイベントとこれらの各イベント間に介挿されたステップタイムをRAM14から順次読み出してゆく。そして、この読み出しを行うのと並行し、次の処理を行う。
【0086】
a.キーオンイベントが読み出されるまでの間は、その間に読み出されるステップタイムを累算してゆく。
b.キーオンイベントが読み出された時点でステップタイムの累算値と当該キーオンイベントをRAM14内の楽譜データ用の記憶エリアに書込む。
c.この書込みを行った後は、ステップタイムの累算値を0に戻し、aの処理を行う。
【0087】
以上の処理が行われる結果、処理対象たるMIDIチャネルに対応したイベントが全て読み出された時点で、RAM14内にキーオンイベント以外のイベントを含まない楽譜データが得られる。
【0088】
次にステップS802に進み、RAM14内の楽譜データおよび実演奏データの各々からイベントおよびその前に置かれたステップタイムを順次取り出してゆく。次いでステップS803に進み、このようにして取り出された楽譜データの各ステップタイムと実演奏データの各ステップタイムとを各々対応するもの同士について比較し、差分(すなわち、前掲図19に示すΔt1,Δt2,…等のずれ時間)を求める。そして、この差分を各キーオンイベントに対応させてRAM14内に書込み、分析処理を終了する。
【0089】
チェンジャとしての処理は、図23に示すフローに従って実行される。まず、MIDIチャネルのチャネル番号CHを「0」に初期設定する(ステップS901)。次いでチューナレジスタTUN(CH)の内容が“1”か否か、すなわち、現在のチャネル番号CHに対応したMIDIチャネルがタイミングチューナ編集処理の処理対象となっているか否かを判断する(ステップS902)。そして、この判断結果が「NO」である場合はチャネル番号CHを1だけ増加させ(ステップS905)、ステップS904に進んでチャネル番号CHが「15」を超えたか否かが判断される。この判断が「NO」の場合は、再びステップS902の処理を行う。
【0090】
一方、レジスタTUN(CH)の内容が“1”となっている場合には、ステップS903に進んでステップタイム変更処理を実行する。すなわち、チャネル番号CHに対応したMIDIチャネルのイベントをRAM14から1個ずつ順次読み出し、読み出したイベントをRAM14内の別のエリアに順次書込んでゆく。この間、キーオンイベントが読み出された場合には、RAM14に格納された当該キーオンイベントに対応したステップタイムの差分を参照する。そして、当該キーオンイベントの直前のステップタイムについては、この差分に相当するだけ値の補正を行い、この補正後のステップタイムを当該キーオンイベントと共にRAM14に書込む。この処理が行われる結果、処理対象たるMIDIチャネルに対応した各キーオンイベントの再生タイミングは、実演奏データの各キーオンイベントの再生タイミングと一致するように補正される。なお、上記差分をそのまま補正に使用するのではなく、1より小さい所定の係数を差分に乗じたものを補正に使用し、キーオンイベントの再生タイミングを実演奏データのキーオンタイミングに近づけるようにしてもよい。
【0091】
このステップタイム変更処理が終わるとステップS905に進み、チャネル番号CHを増加させる。そして、ステップS904に進み、チャネル番号CHが「15」を超えたか否かを判断する。この判断結果が「NO」の場合は、ステップS902に戻る。その後、処理が進んでチャネル番号CHが「15」を超えると、ステップS904の判断結果が「YES」となり、チェンジャとしての処理が終了する。
【0092】
以上のように、本実施形態によれば、上記タイミングチューナ編集処理により、特定のパートに対応した楽音の再生タイミングを使用者の望むタイミングに微調整することができるため、自動演奏に使用者の好みの乗りを持たせることができる。
【0093】
【発明の効果】
以上説明したように、この発明によれば、自動演奏の際、本来発音されるべき他の楽音が発音チャネル数不足により発音されなくなるという弊害を招くことなく、所望のパートについて芯のある太い音が再生されるように演奏データを編集することができる。
【図面の簡単な説明】
【図1】 この発明の一実施形態である演奏データ編集装置の外観を示す図である。
【図2】 同実施形態の電気的構成を示すブロック図である。
【図3】 同実施形態の制御用レジスタを示す図である。
【図4】 同実施形態のROM15内の制御プログラムを示す図である。
【図5】 同実施形態の動作を示すフローチャートである。
【図6】 同実施形態の動作を示すフローチャートである。
【図7】 同実施形態の動作を示すフローチャートである。
【図8】 同実施形態の動作を示すフローチャートである。
【図9】 同実施形態のベロシティエキスパンダ編集処理を説明する図である。
【図10】 ベロシティエキスパンダ編集処理の処理対象であるキーオンイベントを示す図である。
【図11】 同実施形態の動作を示すフローチャートである。
【図12】 同実施形態の動作を示すフローチャートである。
【図13】 ベロシティエキスパンダ編集処理の効果を示す図である。
【図14】 同実施形態の発音重複化編集処理を説明する図である。
【図15】 発音重複化編集処理の処理対象を示す図である。
【図16】 同実施形態の動作を示すフローチャートである。
【図17】 発音重複化編集処理の分析処理を説明する図である。
【図18】 同実施形態の動作を示すフローチャートである。
【図19】 同実施形態のタイミングチューナ編集処理を説明する図である。
【図20】 同実施形態における実演奏データの作成方法を説明する図である。
【図21】 同実施形態の動作を示すフローチャートである。
【図22】 同実施形態の動作を示すフローチャートである。
【図23】 同実施形態の動作を示すフローチャートである。
【符号の説明】
11……CPU(演奏データ付加手段)、
12……表示部、13……操作部(パート指定手段)、
14……RAM(演奏データ記憶手段)、
15……ROM、16……ハードディスク装置、
17……MIDIインタフェース、
6………音源ボード、5L,5R……スピーカ。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a performance data editing apparatus for editing performance data.
[0002]
[Prior art]
Recently, various personal computers equipped with a sound source and software for handling performance data have been provided so that anyone can easily enjoy computer music. That is, according to the personal computer corresponding to this type of computer music, the user can edit the series of musical performance data by inputting performance data step by step by operating a keyboard or the like. Therefore, even a person who is not accustomed to playing a musical instrument or who cannot play a musical instrument can enjoy musical compositions such as composition and arrangement.
[0003]
[Problems to be solved by the invention]
Now, many sound sources such as those mounted on personal computers can only produce so-called thin sounds. On the other hand, in an electronic musical instrument such as a synthesizer, a technique for generating a thick core sound by simultaneously generating the same musical sound using a plurality of sound generation channels is used. Even in automatic performance using a computer, there is a strong demand for playing a specific part (for example, a melody part) with a thick sound, and application of the above technique is desired. One method for meeting this requirement is, for example, a method of duplicating and adding to the performance data the same key-on event for all key-on events in the performance data corresponding to a specific part. However, when such a simple method is adopted, the sound generation corresponding to the newly added key-on event is performed, so that the number of sound generation channels of the sound source is insufficient, and other musical sounds that should be originally generated cannot be generated. This may happen.
[0004]
The present invention has been made under the background described above, and solves such a problem, and a performance data editing apparatus capable of editing performance data so that a thick core sound is reproduced for a desired part. The purpose is to provide.
[0005]
[Means for Solving the Problems]
  This inventionA performance data editing device for editing performance data for each part to be generated,
  SaidIn performance dataMultipleofPart of1 from the insideSpecify a partFingerMeans,
  Analyzing the performance data, in the part designated by the designation meansInvestigate the pronunciation period of each tone,Within the pronunciation period of one musical tone in the part,at the same timeWithin the part that is being pronouncedMusicalFind the maximum number, the maximum numberIs a predetermined numberIf less than,For generating a musical tone having the same pronunciation period as that of the first musical tonedataTo the performance dataAdditionDoWith additional means
  The gist of the present invention is a performance data editing apparatus comprising:
[0006]
  Further, the invention according to claim 2 is the performance data editing apparatus according to claim 1, wherein when the maximum number is less than a predetermined number, the adding means outputs the same musical sound as the first musical sound. The gist is to add to the performance data data for sound generation in the same sound generation period as one musical sound.
[0007]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments will be described below for easier understanding of the present invention.
Such an embodiment shows one aspect of the present invention, and is not intended to limit the present invention, and can be arbitrarily changed within the scope of the present invention.
[0008]
A. Constitution
FIG. 1 is a view showing an appearance of a performance data editing apparatus according to an embodiment of the present invention. In this embodiment, software for editing performance data is installed in a general personal computer with a built-in sound source. Each component will be described with reference to FIG. 1. 1 is a computer main body, 2 is a CRT display, 3 is a keyboard, 4 is a mouse, 5L and 5R are speakers. Reference numeral 6 denotes a multi-tone sound source board that can simultaneously generate a plurality of sounds through a plurality of sound generation channels, and is accommodated in the computer main body 1. In the example shown in FIG. 1, a keyboard electronic musical instrument 8 is connected to the computer main body 1 via a MIDI cable 7.
[0009]
An internal electrical configuration of the computer main body 1 is shown in FIG. In FIG. 2, 11 is a CPU for controlling each part of the performance data editing apparatus. Reference numeral 12 denotes a display unit which controls display of display means such as the CRT display 2 under the control of the CPU 11. Reference numeral 13 denotes an operation unit, and the CPU 11 detects an operation performed on the operation means such as the keyboard 3 and the mouse 4 via the operation unit 13. Reference numeral 14 denotes a RAM provided as a work area for the CPU 11, in which control registers necessary for the CPU 11 to perform various controls are set. FIG. 3 shows the main ones of these control registers. The RAM 14 is used as a storage means for performance data during automatic performance or editing of performance data. A ROM 15 stores various control programs executed by the CPU 11 in addition to an editing program for editing performance data, as shown in FIG.
[0010]
Reference numeral 16 denotes a hard disk device which is a large-capacity storage means provided for storing various information in addition to performance data. Reference numeral 17 denotes a MIDI interface, and the CPU 11 exchanges MIDI data with an external electronic musical instrument or the like via the MIDI interface 17. The MIDI cable 7 in FIG. 1 is connected to the MIDI interface 17. Further, a musical sound generating means including the sound source board 6 and the speakers 5L and 5R shown in FIG. 1 is also placed under the control of the CPU 11.
[0011]
There are the following four types of operation modes of the performance data editing apparatus. Any of the operation modes is provided when the CPU 11 executes a control program corresponding to each mode stored in the ROM 15.
[0012]
(1) Memory mode
When the storage mode is set, the CPU 11 executes the storage program in the ROM 15. In this storage mode, performance data sequentially input by step input in the MIDI data creation mode described later or performance data input from an external electronic musical instrument or the like via the MIDI interface 17 is stored in the RAM 14.
[0013]
(2) Playback mode
When the reproduction mode is set, the CPU 11 executes the reproduction program in the ROM 15. In this playback mode, under the control of the CPU 11, various control information is sent to the tone generator board 6 according to the performance data stored in the RAM 14, and automatic performance based on the performance data is performed.
[0014]
(3) Edit mode
When the editing mode is set, the CPU 11 executes the editing program in the ROM 15. In this editing mode, performance data can be changed, deleted, and added, and the following characteristic editing processing can be executed. In any case, when the user designates a specific MIDI channel, only the performance data corresponding to the specific MIDI channel among all performance data is subjected to the editing process.
[0015]
(A) Velocity expander editing process
One component of the performance data is velocity data (volume data) that determines the volume at the time of pronunciation. In this velocity expander editing process, velocity data corresponding to a specific MIDI channel is processed, and the distribution range of each velocity data is expanded so that the entire velocity data to be processed falls within a predetermined range. . That is, the velocity expander editing process has the effect of increasing the undulation of the change in volume of a specific part during automatic performance and making the specific part stand out.
[0016]
(B) Overlapping pronunciation editing process
When the same musical tone is formed by overlapping a plurality of tone generation channels of the tone generator board 6, a thick tone with a core can be obtained as compared with the case where one tone generation channel is used. The pronunciation duplication editing process is a process performed to obtain this effect for a specific part. In other words, the pronunciation duplication editing process is for processing a key-on event corresponding to a specific MIDI channel, and adds a key-on event that overlaps the existing key-on event. Here, if the addition of the duplicate key-on event is performed unconditionally, there is a possibility that the sound generation channel is insufficient. Therefore, in the present embodiment, the occurrence state of an existing key-on event is grasped in a time series, and duplicate key-on events are added as long as the condition that a sound channel does not run out at each time point is satisfied.
[0017]
(C) Timing tuner editing process
The timing tuner editing process is an editing process for adjusting the playback timing of a key-on event corresponding to a specific MIDI channel based on actual performance data that records actual musical instrument performance or actual performance data created by operating the keyboard 3. .
[0018]
(4) MIDI data creation mode
This is an operation mode in which operation data such as a keyboard 3 and a mouse 4 are operated to sequentially create performance data step by step.
[0019]
Next, with reference to FIG. 3, the main ones of the control registers set in the RAM 14 will be described.
[0020]
(A) Mode register
The user can designate a desired one of the storage mode, the playback mode, the edit mode, and the MIDI data creation mode by operating the keyboard 3 or the mouse 4. Mode designation information “0” to “3” is assigned to each operation mode, and the mode designation information corresponding to the operation mode designated by the user is set in this mode register.
[0021]
(B) Expander register EXP, MIN, MAX
This expander register is means for storing information for controlling the above-described velocity expander editing process, and is constituted by three types of registers EXP, MAX, and MIN. The register EXP (CH) (CH = 0 to 15) is a register for storing information indicating whether or not to apply the velocity expander editing process for each MIDI channel. When applying the panda editing process, EXP (CH) = “1”, and when not applying, EXP (CH) = “0”. Registers MAX (CH) (CH = 0 to 15) and MIN (CH) (CH = 0 to 15) indicate the upper limit value and lower limit value of the distribution range of velocity data after execution of the velocity expander editing process for each MIDI channel. Is a register for storing each. The upper limit value and the lower limit value of the velocity data corresponding to each MIDI channel can be set by the user via the operation means such as the keyboard 3, but if there is no setting by the user, a default value is set.
[0022]
(C) Doubler register DBL
The doubler register DBL (CH) (CH = 0 to 15) is a register for storing information indicating whether or not the above-described pronunciation duplication editing process is applied for each MIDI channel. On the other hand, DBL (CH) = “1” is set when the pronunciation overlapping editing process is applied, and DBL (CH) = “0” is set when not applied.
[0023]
(D) Tuner register TUN
The tuner register TUN (CH) (CH = 0 to 15) is a register that stores information indicating whether or not to apply the timing tuner editing process described above for each MIDI channel. When the timing tuner editing process is applied, TUN (CH) = “1”, and when not applied, TUN (CH) = “0”.
[0024]
B. Action
The operation of this embodiment will be described below.
(1) General operation
When operating means such as the keyboard 3 and mouse 4 are operated, an interrupt request is made from the operation unit 13 to the CPU 11. As a result, the CPU 11 executes the operation detection program (FIG. 4) stored in the ROM 15 as an interrupt process.
[0025]
The flow of this operation detection program is as shown in FIG. First, proceeding to step S101, the CPU 11 detects the content of the operation via the operation unit 13, and determines whether or not the operation is an operation requesting mode setting. If the determination result is “YES”, the process proceeds to step S106, and the operation requested by the operation among the mode designation information (“0” to “3”) of the storage mode, the reproduction mode, the edit mode, and the MIDI data creation mode. Information corresponding to the mode is set in the mode register, and the operation detection program is terminated.
[0026]
If the determination result in step S101 is “NO”, the process proceeds to step S102, and it is determined whether or not the operation detected via the operation unit 3 is an operation instructing the velocity expander editing process. If this determination is “YES”, the flow proceeds to step S107, and control information necessary for executing the velocity expander editing process is set. That is, in the operation for instructing the velocity expander editing process, the specification of the MIDI channel number to be processed, the upper limit value and the lower limit value of the velocity data distribution range after the velocity expander editing process are input. Then, “1” is set in the register EXP (CH) corresponding to the MIDI channel number CH, and the upper limit value and the lower limit value are set in the registers MAX (CH) and MIN (CH). The user can omit the specification of the upper limit value and the lower limit value. In this case, predetermined default values (for example, “120” and “10”) are set for the registers MAX (CH) and MIN (CH). Set. When the data setting for each register is completed, the operation detection program is terminated.
[0027]
If the determination result in step S102 is “NO”, the process proceeds to step S103, and it is determined whether or not the operation detected via the operation unit 3 is an operation instructing the pronunciation overlapping editing process. If the determination result is “YES”, the process proceeds to step S108, where the number of the MIDI channel designated as the processing target of the pronunciation duplication editing process is detected via the operation unit 13, and the MIDI channel number CH is set. “1” is set in the corresponding doubler register DBL (CH), and the operation detection program is terminated.
[0028]
If the determination result in step S103 is “NO”, the process proceeds to step S104, and it is determined whether or not the operation detected via the operation unit 3 is an operation instructing timing tuner editing processing. If the determination result is “YES”, the process proceeds to step S109, the number of the MIDI channel designated as the processing target of the timing tuner editing process is detected via the operation unit 13, and the number corresponds to the MIDI channel number CH. The tuner register TUN (CH) is set to “1”, and the operation detection program is terminated.
[0029]
If the determination result in step S104 is “NO”, an operation detection process (step S105) corresponding to the instruction content different from the instruction content determined in steps S102 to S104 described above is executed. Exit the detection program.
[0030]
When the editing mode is set, the CPU 11 executes the editing program in the ROM 15. As shown in FIG. 6, this editing program is composed of three types of editing subprograms respectively corresponding to velocity expander editing processing, pronunciation duplication editing processing, and timing tuner editing processing.
[0031]
Each of the editing subprograms includes an analyzer and a changer as shown in FIG. Among these, the changer is a program for performing editing processing of performance data, which is the original purpose of each editing subprogram. The analyzer is a program that analyzes performance data to be processed and extracts information necessary for execution of the changer from the performance data, and is executed prior to execution of the changer.
[0032]
The specific processing contents of the analyzer and changer differ depending on each editing subprogram, but the analyzer of any editing subprogram basically stores information necessary for performance data analysis and editing processing according to the flow shown in FIG. Extraction is performed. That is, the MIDI channel number CH is changed from “0” to “15” (steps S201, S205, S206), and whether or not each MIDI channel corresponding to each channel number CH is an object of editing processing, that is, For example, if the analyzer is an analyzer for velocity expander editing processing, it is determined whether or not the content of the register EXP (CH) is “1” (step S202). For the channel number CH for which the determination result is “YES”, the performance data corresponding to the MIDI channel of the channel number CH is loaded into the work area in the RAM 14 (step S203), and the captured performance data is analyzed. Then, information required by the subsequent changer is extracted (step S204). When each process corresponding to the analyzer is completed in this way, each process corresponding to the changer is executed according to the information obtained thereby, and the velocity expander editing process, pronunciation duplication editing process, or timing tuner editing process is completed. It is.
[0033]
Hereinafter, specific processing contents will be described in detail in the order of velocity expander editing processing, pronunciation duplication editing processing, and timing tuner editing processing.
[0034]
(2) Velocity expander editing process
FIG. 9 is a graph in which velocity data corresponding to one MIDI channel (channel number CH) among the MIDI channels designated as processing targets is arranged in the order of performance, and the solid curve P is edited by velocity expander. A change in velocity data before the processing is performed, and a broken curve Q represents a change in velocity data after the velocity expander editing processing. As illustrated in this figure, in the velocity expander editing process, the entire velocity data is within a range limited by the upper limit value set in the register MAX (CH) and the lower limit value set in the register MIN (CH). The distribution range of each velocity data is expanded so as to fit.
[0035]
In the analyzer for the velocity expander editing process, the maximum value max and the minimum value of the velocity data for each MIDI channel designated as a processing target (that is, a MIDI channel with EXP (CH) = “1”). Analysis processing for obtaining min (see FIG. 9) is performed.
[0036]
The direct object of the analysis processing is velocity data, but this velocity data is included in the key-on event that forms part of the performance data. The data format of this key-on event is shown in FIG. As shown in the figure, the key-on event is composed of 3-byte information. First, the first byte indicates the key-on status, and the upper 4 bits represent the identification code “9” of the key-on event, and the lower 4 bits represent the MIDI channel number CH of the key-on event. Next, the second byte represents a note number of a musical sound that is generated by the key-on event. The third byte of the key-on event is velocity data that is a direct processing target of this analysis processing. Therefore, in obtaining the maximum value max and the minimum value min of the velocity data, only the performance data corresponding to the key-on event is focused, and the procedure for determining the magnitude of the velocity data of the third byte is performed. FIG. 11 shows the flow of analysis processing executed according to this procedure. This analysis process corresponds to step S204 shown in FIG. Hereinafter, the analysis process will be described in detail with reference to the flowchart shown in FIG.
[0037]
First, initial setting of the maximum value max and the minimum value min is performed (step S301). Next, the first event is fetched from the performance data corresponding to the MIDI channel to be processed (step S302). Next, it is determined whether or not the value of the upper 4 bits of the first byte of the captured event is “9”, that is, whether or not the event is a key-on event (step S303). If this determination is “YES”, the flow proceeds to step S304, and if “NO”, the flow proceeds to step S308.
[0038]
Next, in step S304, the velocity data Vel at the third byte of the key-on event fetched this time is referred to, and it is determined whether or not the velocity data Vel is equal to or greater than the current maximum value max. If the determination result is “YES”, the maximum value max is updated with the velocity data Vel (step S305), and the process proceeds to step S308. On the other hand, if the determination result in step S304 is “NO”, it is determined whether or not the velocity data Vel of the key-on event captured this time is equal to or less than the current minimum value min (step S306). If the determination result is “YES”, the minimum value min is updated by the velocity data Vel (step S307), and then the process proceeds to step S308. If “NO”, step S307 is not executed and step S308 is not executed. Proceed to
[0039]
Next, in step S308, it is determined whether or not the processing described above has been executed for all events corresponding to the MIDI channel to be processed, that is, whether or not the analysis can be terminated. If the determination result is “NO”, the next event after the currently captured event is captured (step S309), and the processing including steps S303 to S308 is executed for the captured event. In the same manner, the processing including steps S303 to S308 is executed for all events corresponding to the MIDI channel to be processed. When the determination result in step S308 is “YES”, the maximum value max and the minimum value min at that time are stored in a predetermined area in the RAM 14 (step S310), and the process corresponding to the MIDI channel is ended.
[0040]
The changer process is executed according to the flow shown in FIG. First, the channel number CH of the MIDI channel is initialized to “0” (step S401). Next, it is determined whether or not the content of the register EXP (CH) is “1”, that is, whether or not the MIDI channel corresponding to the current channel number CH is the processing target of the velocity expander editing process (step S402). . If the determination result is “NO”, after incrementing the channel number CH by 1 (step S403), it is determined whether the channel number CH exceeds “15” (step S407). If not, the determination in step S402 is performed again.
[0041]
On the other hand, if the content of the register EXP (CH) is “1”, the velocity data Vel of the MIDI channel corresponding to the channel number CH is sequentially read out one by one from the RAM 14 (step S404). Then, the velocity data Vel is updated according to the following equation (1), and the updated velocity data Vel is returned to the original position in the RAM 14 (step S405).
Figure 0003772430
[0042]
However, in this equation (1), max and min are the maximum and minimum values of velocity data in the MIDI channel corresponding to the channel number CH, and are obtained by the processing already described with reference to FIG. This is the information stored in.
[0043]
Next, it is determined whether or not all velocity data corresponding to the MIDI channel of channel number CH has been read (step S406). If the determination result is “NO”, the process returns to step S404, and the same processing is performed on the subsequent velocity data. If the determination result in step S406 is “YES”, after increasing the channel number CH (step S403), the process proceeds to step S407 to determine whether the channel number CH exceeds “15”. to decide. If the determination result is “NO”, the process proceeds to step S402. If another MIDI channel to be processed is found in step S402, the above-described processing is performed for the MIDI channel. When the processes for all the MIDI channels are completed, the determination result in step S407 is “YES”, and the process as the changer is completed.
[0044]
With the above processing, the distribution range of all velocity data corresponding to the processed MIDI channel is expanded within the range limited by the upper and lower limits set in the registers MAX (CH) and MIN (CH). Is done. FIG. 13 illustrates the manner in which the velocity data distribution range is expanded. As shown in this figure, each velocity data distributed in the range from the maximum value max to the minimum value min is the upper limit value while maintaining the mutual magnitude relationship as it is by applying the above formula (1). The distribution range is expanded within a wide range between MAX (CH) and the lower limit value MIN (CH).
[0045]
As described above, according to the present embodiment, the distribution range of velocity data for the specified MIDI channel can be arbitrarily expanded, so that the undulation of the change in volume of a specific part during automatic performance can be arbitrarily increased, Can be given.
[0046]
(3) Overlapping pronunciation editing processing
In the pronunciation duplication editing process, for each MIDI channel to be processed (MIDI channel in which DBL (CH) = “1”), an existing key-on event corresponding to the MIDI channel is Performs processing to add duplicate key-on events. If the duplicate key-on event is added unconditionally, there is a possibility that the sound generation channel will be insufficient. Therefore, after performing analysis processing that grasps the occurrence of existing key-on events in time series, processing is performed to add duplicate key-on events as long as the condition that there is no shortage of pronunciation channels at each time point is satisfied. . The former analysis process is performed by executing the analyzer, and the latter process is performed by executing the changer.
[0047]
In the analysis process of the analyzer (the process corresponding to step S204 in FIG. 8), whether or not there is a shortage of sound generation channels when the same key-on event is added to each key-on event corresponding to the MIDI channel to be processed. Determine. The outline of this process will be described with reference to FIG. 14A and 14B, KON1, KON2,... Each represent a key-on event, and KOFF1, KOFF2,... Represent a key-off event that terminates the sounding operation started by these key-on events. Yes. Each of these key-on events and each key-off event is extracted from the performance data stored in the RAM 14, and is arranged in time series according to each reproduction order, with the horizontal direction of the drawing as the direction of time progression. ing.
[0048]
Here, an example of how to determine the presence / absence of a sound channel shortage for each situation shown in FIGS. 14 (a) and 14 (b) will be described. In the following, it is assumed that the sound source board has four sound generation channels. Also, it is assumed that the illustrated key-on event and key-off event correspond to the MIDI channel that is the processing target of the pronunciation duplication editing process.
[0049]
First, in the situation shown in FIG. 14A, the sound generation periods started by the key-on events KON1 to KON3 do not overlap on the time axis. Accordingly, each of the key-on events KON1 to KON3 can add a duplicate key-on event to each.
[0050]
Next, consider the situation shown in FIG. In this case, some sound generation periods started by the key-on events KON1 to KON5 overlap each other on the time axis. Therefore, it is examined whether or not a duplicate key-on event can be added for each key-on event.
[0051]
First, considering the key-on event KON1, no sound is generated by another key-on event at the timing of occurrence of this key-on event. In addition, key-on events KON2 and KON3 occur before the sounding by the key-on event KON1 is ended by the key-off event KOFF1, but even if sounding corresponding to these key-on events is performed, one sounding channel still remains. Therefore, even if sound generation is performed using one sound generation channel during the sound generation by the key-on event KON1, there is no shortage of sound generation channels. Therefore, for the key-on event KON1, the same key-on event is added, and a determination result is obtained that duplicate sound generation using two sound generation channels for the same sound may be performed.
[0052]
Next, consider the key-on event KON2. According to the result of the above determination, two sound generation channels are used for the key-on event KON1, and duplicate sound generation is performed. Therefore, when sound generation corresponding to the key-on event KON2 is performed, three sound generation channels are used. Become. Then, sound generation corresponding to the key-on event KON3 is started until sound generation by the key-on event KON2 is ended by the key-off event KOFF2. Here, since the sound generation corresponding to the key-on event KON1 is still performed at the sound generation start time corresponding to the key-on event KON3, four sound generation channels are used at this time. Therefore, if sound generation using two sound generation channels is performed for the key-on event KON2, sound generation channels are insufficient when sound generation corresponding to the key-on event KON3 is started. Therefore, for the key-on event KON2, the determination result indicates that duplicate sound generation using two sound generation channels cannot be permitted.
[0053]
  Next, the key-on event KON3 will be examined. If the results of the above determinations are followed, the key-on event KON1 is generated using two sound generation channels, and the key-on event KON2 is sounded using one sound channel. When sounding corresponding to is performed, four sounding channels are used. Therefore, for the key-on event KON3, there are two sound channels.useObviously, you can't make the same pronunciation.
[0054]
Next, consider the key-on event KON4. At the point of time when the sound corresponding to the key-on event KON4 is started, the sound corresponding to the key-on event KON1 has already ended. Therefore, at this time, three sound generation channels are used to generate sound corresponding to the key-on events KON2, KON3, and KON4, and one sound generation channel remains. Further, until the sound generation by the key-on event KON4 is ended by the key-off event KOFF4, the sound generation corresponding to another key-on event is not started. Therefore, for the key-on event KON4, a determination result is obtained that it is possible to recognize duplicate pronunciation using two tone generation channels.
[0055]
In the above-described determination, if sound generation periods corresponding to a plurality of key-on events overlap on the time axis, and there is a shortage of sound channels when sound generation is overlapped for any of the key-on events, playback is performed first in time. This is performed in accordance with a rule that allows duplicate pronunciation with priority given to key-on events. In addition to such rules, various rules for avoiding conflicts between key-on events for overlapping pronunciations can be considered, but the description thereof is omitted.
[0056]
In the analysis process of the pronunciation duplication editing process, according to the principle as described above, whether to apply the duplicate pronunciation is determined for each key-on event corresponding to the MIDI channel to be processed.
[0057]
In order to perform this analysis process, it is necessary to grasp the occurrence state of each key-on event and each key-off event in time series. Therefore, in the present embodiment, the step time included in the performance data is referred to determine the occupied position on the time axis of the sound generation period corresponding to each key-on event. That is, data representing the step time is added before each event in the performance data as illustrated in FIG. This step time is a waiting time from the reproduction of the event immediately before it to the reproduction of the event (the event immediately after the step time). Therefore, by calculating the total value of all the step times existing before an event for an arbitrary event, it is possible to obtain the relative reproduction time of the event based on the start time of the automatic performance. In this embodiment, by performing such calculation for each key-on event and each key-off event, the occupied position on the time axis of the sound generation period corresponding to each key-on event is obtained.
[0058]
Next, a specific flow of the analysis process of the pronunciation duplication editing process will be described with reference to FIG. First, the first event is fetched from the performance data corresponding to the MIDI channel to be processed (step S501). Next, it is determined whether or not the captured event is a key-on event (step S502). If this determination is “YES”, the flow proceeds to step S503, and if “NO”, the flow proceeds to step S508.
[0059]
Next, when proceeding to step S503, the peripheral events of the key-on event captured this time are investigated. That is, as described above, paying attention to each sound generation period corresponding to each key-on event grasped based on the step time, the following items are investigated.
[0060]
a. Whether the pronunciation period corresponding to the key-on event imported this time does not overlap on the time axis with the pronunciation period corresponding to other key-on events.
b. Whether or not there is a shortage of pronunciation channels when overlapping pronunciations are applied to the key-on event imported this time when overlapping pronunciation periods are recognized.
[0061]
Next, the process proceeds to step S504, and it is determined whether or not duplicate pronunciation can be applied to the key-on event captured this time based on the investigation result in step S503. The result of this determination can be divided into the following three types.
[0062]
a. It does not matter to allow duplicate pronunciation unconditionally.
The situation in which this determination is made is illustrated in FIG. In this example, the sound generation periods corresponding to the key-on events KON1 and KON2 do not overlap at all with the sound generation periods corresponding to other key-on events. Therefore, when the key-on event captured this time is placed in a situation such as the key-on events KON1 and KON2 shown in this example, a determination result is obtained that duplicate pronunciation can be applied unconditionally.
[0063]
b. Conditional duplicate pronunciation may be allowed. That is, since there are other key-on events that compete with the key-on event captured this time, whether or not the duplicate pronunciation can be applied to the key-on event captured this time depends on whether or not the duplicate pronunciation is applied to these other key-on events.
[0064]
The situation in which this determination is made is illustrated in FIG. In this example, the key-on events KON1, KON2, and KON3 have their respective sound generation periods overlapping on the time axis, and therefore it is allowed to apply overlap sounding to only one of them. Further, the key-on event KON4 has the same sound generation period as the key-on events KON2 and KON3. Accordingly, for the key-on event KON4, duplicate pronunciation may be recognized only when duplicate pronunciation is not applied to any of the key-on events KON2 and KON3. If the key-on event captured this time is placed in a situation such as the key-on events KON1 to KON4 shown in this example, whether or not the duplicate pronunciation can be applied to these is determined by the duplicate pronunciation for other competing key-on events. It depends on the application.
[0065]
c. There is no room to allow duplicate pronunciation in the key-on event that was imported this time.
Even if the key-on event is not added, all the sound generation channels are already used, and there is always a shortage of sound generation channels when duplicate sound generation is performed.
[0066]
If it is determined in step S504 that the determination result corresponds to a or b, the process proceeds to step S505. If the determination result corresponds to c, the process proceeds to step S508.
[0067]
Next, in step S505, it is determined whether or not the determination result in step S504 is b. If this determination is “YES”, the flow proceeds to step S 506, and information indicating the content of the key-on event captured this time and the position on the time axis is recorded in the RAM 14. Then, the process proceeds to step S508.
[0068]
On the other hand, if the determination result in step S504 is “NO”, that is, if the key-on event captured this time is placed in the above-described situation b, the process proceeds to step S507, and adjustment is performed to avoid contention. For example, this adjustment is performed according to a rule for applying overlapping pronunciations with priority given to a key-on event that is reproduced first, as already described with reference to FIG. In addition to this method, for example, competing key-on events may be displayed on the CRT display 2, and the user may be allowed to select which key-on event the overlapping pronunciation is applied to. When the key-on event to which the overlapping pronunciation is applied is determined, information indicating the content of the key-on event and the position on the time axis is recorded in the RAM 14, and the process proceeds to step S508.
[0069]
Next, in step S508, it is determined whether or not the processing described above has been executed for all events corresponding to the MIDI channel to be processed, that is, whether or not the analysis can be terminated. If the determination result is “NO”, the next event is captured (step S509), and the process returns to step S502. In the same manner, the processing including steps S502 to S508 is executed for all events corresponding to the MIDI channel to be processed. Then, when the determination result in step S508 is “YES”, the processing as the analyzer is terminated.
[0070]
The changer process is executed according to the flow shown in FIG. First, the channel number CH of the MIDI channel is initialized to “0” (step S601). Next, it is determined whether or not the content of the doubler register DBL (CH) is “1”, that is, whether or not the MIDI channel corresponding to the current channel number CH is the processing target of the pronunciation duplication editing process (step S602). ). If the determination result is “NO”, after incrementing the channel number CH by 1 (step S605), it is determined whether the channel number CH exceeds “15” (step S604). If not, the determination in step S602 is performed again.
[0071]
On the other hand, if the content of the register DBL (CH) is “1”, the process proceeds to step S603 to execute a key-on event insertion process. That is, the MIDI channel events corresponding to the channel number CH are sequentially read from the RAM 14 one by one, and the read events are sequentially written to another area in the RAM 14. At that time, the information on each key-on event stored in the RAM 14 when the analyzer is executed is referred to, and it is determined whether or not each event read from the RAM 14 is a key-on event to which duplicate pronunciation is applied. . Then, the key-on event having the same contents as the key-on event to which the duplicate pronunciation is applied is added to the RAM 14 and written. When this key-on event insertion process ends, the process proceeds to step S605, and the channel number CH is incremented by one. Then, the process proceeds to step S604, and it is determined whether or not the channel number CH has exceeded “15”. If this determination is “NO”, the flow returns to step S602. Thereafter, the process proceeds and the channel number CH exceeds “15”, so that the determination result in step S604 is “YES”, and the process as the changer ends.
[0072]
As described above, according to the present embodiment, it is possible to apply overlapping pronunciation to a key-on event of a desired MIDI channel, so that the sound of a desired part can be made thick with a core.
[0073]
(4) Timing tuner editing process
First, the outline of the timing tuner editing process will be described with reference to FIG. In FIG. 19, the horizontal straight line indicates the time axis, and a series of white triangle marks arranged above the time axis indicate the reproduction timing of the key-on event to be processed by this timing tuner editing process. Show. In addition, a series of black triangle marks are written on the lower side of the time axis, and these indicate timings when the user wants to pronounce.
[0074]
In this timing tuner editing process, each key-on event or key-off event corresponding to the MIDI channel to be processed (MIDI channel with TUN (CH) = “1”) is reproduced at the timing desired by the user. Thus, the reproduction timing is corrected. The timing tuner editing process includes an analysis process for obtaining a time difference between the playback timing of the existing key-on event or key-off event and the playback timing desired by the user, that is, Δt1, Δt2,... Shown in FIG. And a process for correcting the reproduction timing of each key-on event and key-off event. The program for performing the former analysis processing is an analyzer, and the program for performing the latter processing is a changer.
[0075]
In executing the analyzer, it is necessary to prepare in advance data representing the reproduction timing desired by the user. There are the following two methods for obtaining this data.
[0076]
a. Method by the user performing a real performance
For example, a user plays a specific part (for example, a rhythm part) using another electronic musical instrument. The actual performance data obtained at this time is supplied from the MIDI interface 17 to the performance data editing apparatus, and the reproduction timing of the key-on event or key-off event in the actual performance data is used as the reproduction timing desired by the user.
[0077]
b. As shown in FIG. 20, a method for creating actual performance data for designating a desired reproduction timing by hitting the space key of the keyboard 3 by the user.
When this method is used, the user performs a rhythm performance using only the space key after setting the operation mode of the performance data editing apparatus to the MIDI data creation mode. In other words, the space key may be turned on at the timing at which sounding is to be started, and the space key may be turned off at the time at which sounding is to be ended. Therefore, this method is convenient for a user who is not familiar with playing electronic musical instruments.
[0078]
FIG. 21 shows a flow of an actual performance data creation program for creating actual performance data representing the reproduction timing of a key-on event of a rhythmic musical tone according to this method. The processing contents of this program will be described below.
[0079]
This program is started by inputting a predetermined command. First, in step S701, it is determined whether there is a space key on event. If this determination is “NO”, the flow proceeds to step S 704, where it is determined whether an instruction to end the process has been given (whether an end button (not shown) has been pressed). If this determination is “NO”, the flow returns to step S701.
[0080]
When the space key ON event occurs, the determination result in step S701 is “YES”, and the flow advances to step S702. Then, it is determined whether or not the current operation mode is the MIDI data creation mode. If the determination result is “NO”, the program is terminated without creating any data.
[0081]
On the other hand, if the determination result in step S702 is “YES”, the process advances to step S703 to execute the MIDI encoding process. That is, a step time corresponding to the elapsed time from the start of execution of this program and a predetermined key-on event are created and written in a predetermined area in the RAM 14. Then, after this writing is completed, the process returns to step S701.
[0082]
Thereafter, when the space key ON event occurs again, the process proceeds to steps S703 via steps S701 and S702, and the MIDI encoding process is executed again. In this case, a step time and a predetermined key-on event corresponding to the elapsed time from the previous writing of the step time and the key-on event to the present are created and written in a predetermined area in the RAM 14. Thereafter, similarly, every time a space key on event is detected, the step time and the key on event are recorded in the RAM 14. When the operation of the space key is interrupted and an instruction to end the process is given, the determination result in step S704 is “YES”, and the process ends.
[0083]
Through the above processing, actual performance data representing the reproduction timing of the key-on event desired by the user is obtained in the RAM 14.
[0084]
When data for designating the playback timing of both the key-on event and the key-off event of a continuous sound is to be created by the space key operation, not only the space key on event but also the off event for the program shown in FIG. It is sufficient to add processing so as to also determine.
[0085]
When the actual performance data is obtained in this way, the analyzer is executed next, and the MIDI channel (MIDI channel where TUN (CH) = “1”) that is the target of the timing tuner editing process is The analysis process shown in FIG. 22 is executed. First, in step S801, musical score data from which events other than key-on events have been removed from performance data in the RAM 14 is created. That is, a series of events corresponding to the MIDI channel to be processed and the step times inserted between these events are sequentially read from the RAM 14. In parallel with this reading, the following processing is performed.
[0086]
a. Until the key-on event is read, the step time read during that time is accumulated.
b. When the key-on event is read out, the accumulated step time value and the key-on event are written into the storage area for the score data in the RAM 14.
c. After this writing, the accumulated value of the step time is returned to 0 and the process a is performed.
[0087]
As a result of the above processing, at the time when all the events corresponding to the MIDI channel to be processed are read, score data that does not include any event other than the key-on event is obtained in the RAM 14.
[0088]
In step S802, the event and the step time set before it are sequentially extracted from each of the score data and the actual performance data in the RAM. In step S803, each step time of the musical score data extracted in this way and each step time of the actual performance data are compared with each other, and the differences (that is, Δt1, Δt2 shown in FIG. 19) are compared. , ..., etc.). Then, this difference is written in the RAM 14 in correspondence with each key-on event, and the analysis process is terminated.
[0089]
The changer process is executed according to the flow shown in FIG. First, the channel number CH of the MIDI channel is initialized to “0” (step S901). Next, it is determined whether or not the content of the tuner register TUN (CH) is “1”, that is, whether or not the MIDI channel corresponding to the current channel number CH is the processing target of the timing tuner editing process (step S902). . If the determination result is “NO”, the channel number CH is incremented by 1 (step S905), and the process proceeds to step S904 to determine whether the channel number CH exceeds “15”. If this determination is “NO”, the process of step S902 is performed again.
[0090]
On the other hand, when the content of the register TUN (CH) is “1”, the process proceeds to step S903 to execute a step time change process. That is, the MIDI channel events corresponding to the channel number CH are sequentially read from the RAM 14 one by one, and the read events are sequentially written to another area in the RAM 14. During this time, when a key-on event is read out, the difference in step time corresponding to the key-on event stored in the RAM 14 is referred to. The step time immediately before the key-on event is corrected by a value corresponding to the difference, and the corrected step time is written in the RAM 14 together with the key-on event. As a result of this processing, the reproduction timing of each key-on event corresponding to the MIDI channel to be processed is corrected to coincide with the reproduction timing of each key-on event of the actual performance data. The difference is not used as it is for correction, but a difference obtained by multiplying the difference by a predetermined coefficient smaller than 1 is used for correction so that the reproduction timing of the key-on event approaches the key-on timing of the actual performance data. Good.
[0091]
When this step time changing process is completed, the process proceeds to step S905, and the channel number CH is increased. The process advances to step S904 to determine whether or not the channel number CH has exceeded “15”. If this determination is “NO”, the flow returns to step S902. Thereafter, when the process proceeds and the channel number CH exceeds “15”, the determination result in step S904 is “YES”, and the process as the changer is terminated.
[0092]
As described above, according to the present embodiment, it is possible to finely adjust the reproduction timing of the musical sound corresponding to a specific part to the timing desired by the user by the timing tuner editing process. You can have your favorite ride.
[0093]
【The invention's effect】
  As explained above, according to the present invention,TheDuring dynamic performance, the desired part can be played without causing the harmful effect that other musical sounds that should be pronounced are not pronounced due to insufficient number of sound channels.aboutThick sound with a coreEdit performance data so thatcan do.
[Brief description of the drawings]
FIG. 1 is a diagram showing an appearance of a performance data editing apparatus according to an embodiment of the present invention.
FIG. 2 is a block diagram showing an electrical configuration of the embodiment.
FIG. 3 is a diagram showing a control register according to the embodiment;
FIG. 4 is a diagram showing a control program in a ROM 15 of the same embodiment.
FIG. 5 is a flowchart showing the operation of the embodiment.
FIG. 6 is a flowchart showing the operation of the embodiment.
FIG. 7 is a flowchart showing the operation of the embodiment.
FIG. 8 is a flowchart showing the operation of the embodiment.
FIG. 9 is a diagram illustrating a velocity expander editing process according to the embodiment.
FIG. 10 is a diagram showing a key-on event that is a processing target of velocity expander editing processing;
FIG. 11 is a flowchart showing the operation of the embodiment.
FIG. 12 is a flowchart showing the operation of the embodiment.
FIG. 13 is a diagram illustrating an effect of a velocity expander editing process.
FIG. 14 is a diagram illustrating pronunciation duplication editing processing according to the embodiment;
FIG. 15 is a diagram illustrating a processing target of pronunciation duplication editing processing;
FIG. 16 is a flowchart showing the operation of the embodiment.
FIG. 17 is a diagram for explaining analysis processing of pronunciation duplication editing processing;
FIG. 18 is a flowchart showing the operation of the embodiment.
FIG. 19 is a diagram illustrating timing tuner editing processing according to the embodiment;
FIG. 20 is a diagram illustrating a method for creating actual performance data in the embodiment.
FIG. 21 is a flowchart showing the operation of the embodiment.
FIG. 22 is a flowchart showing the operation of the embodiment.
FIG. 23 is a flowchart showing the operation of the embodiment.
[Explanation of symbols]
11: CPU (performance data adding means),
12 …… Display section, 13 …… Operation section (part designation means),
14: RAM (performance data storage means),
15 ... ROM, 16 ... hard disk drive,
17 …… MIDI interface,
6: Sound board, 5L, 5R: Speaker.

Claims (2)

発音する楽音がパート毎に定められた演奏データを編集する演奏データ編集装置であって、
前記演奏データにおける複数パートの中から1のパートを指定する指定手段と、
前記演奏データを分析して、前記指定手段によって指定されたパートにおける各楽音の発音期間を調査し、前記パートにおける1の楽音の発音期間内において、同時に発音中となる前記パート内の楽音の最大数を求め、当該最大数が所定数よりも少なかった場合に前記1の楽音の発音期間と同じ発音期間を有する楽音を発音するためのデータを前記演奏データに付加する付加手段と
を具備することを特徴とする演奏データ編集装置。
A performance data editing device for editing performance data for each part to be generated,
A specifying unit that specifies one part from a plurality of parts in the performance data,
The performance data is analyzed to investigate the tone generation period of each musical tone in the part designated by the designation means , and the maximum of the musical sounds in the part that are simultaneously producing sound during the musical tone production period of one musical tone in the part. And adding means for adding, to the performance data, data for generating a musical tone having the same sounding period as the sounding period of the first musical sound when the maximum number is less than a predetermined number. A performance data editing apparatus characterized by that.
前記付加手段は、前記最大数が所定数よりも少なかった場合に、前記1の楽音と同じ楽音を、前記1の楽音と同じ発音期間において発音するためのデータを前記演奏データに付加するThe adding means adds, to the performance data, data for generating the same musical tone as the first musical tone in the same pronunciation period as the first musical tone when the maximum number is less than a predetermined number.
ことを特徴とする請求項1に記載の演奏データ編集装置。The performance data editing apparatus according to claim 1, wherein:
JP00705797A 1996-01-17 1997-01-17 Performance data editing device Expired - Fee Related JP3772430B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP00705797A JP3772430B2 (en) 1996-01-17 1997-01-17 Performance data editing device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP618796 1996-01-17
JP8-6187 1996-01-17
JP00705797A JP3772430B2 (en) 1996-01-17 1997-01-17 Performance data editing device

Publications (2)

Publication Number Publication Date
JPH09258732A JPH09258732A (en) 1997-10-03
JP3772430B2 true JP3772430B2 (en) 2006-05-10

Family

ID=26340269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00705797A Expired - Fee Related JP3772430B2 (en) 1996-01-17 1997-01-17 Performance data editing device

Country Status (1)

Country Link
JP (1) JP3772430B2 (en)

Also Published As

Publication number Publication date
JPH09258732A (en) 1997-10-03

Similar Documents

Publication Publication Date Title
JP2006030414A (en) Timbre setting device and program
US10325581B2 (en) Singing voice edit assistant method and singing voice edit assistant device
US20050257667A1 (en) Apparatus and computer program for practicing musical instrument
JPH04128796A (en) Music reproduction device
US5990404A (en) Performance data editing apparatus
EP3462442B1 (en) Singing voice edit assistant method and singing voice edit assistant device
JP3484719B2 (en) Performance guide device with voice input function and performance guide method
JP3579927B2 (en) Automatic performance device
JP3772430B2 (en) Performance data editing device
JP3791087B2 (en) Performance data editing device
JP3849528B2 (en) Electronic music apparatus and program
JP3062784B2 (en) Music player
JP4192936B2 (en) Automatic performance device
JP4270102B2 (en) Automatic performance device and program
JP4123242B2 (en) Performance signal processing apparatus and program
JP4305315B2 (en) Automatic performance data characteristic changing device and program thereof
JP2001013964A (en) Playing device and recording medium therefor
JPH09258727A (en) Performance data editing device
JP7070538B2 (en) Programs, methods, electronic devices, and performance data display systems
JP2002244657A (en) Playing signal processor, storage medium, and method and program for playing signal processing
WO2022209557A1 (en) Electronic musical instrument, electronic musical instrument control method, and program
JP3651428B2 (en) Performance signal processing apparatus and method, and program
JP3736101B2 (en) Automatic performance device and recording medium
JP2570214B2 (en) Performance information input device
JP3637782B2 (en) Data generating apparatus and recording medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051018

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060206

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090224

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100224

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110224

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120224

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130224

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees