JPH0764544A - Device and method for generating tempo data - Google Patents
Device and method for generating tempo dataInfo
- Publication number
- JPH0764544A JPH0764544A JP5234103A JP23410393A JPH0764544A JP H0764544 A JPH0764544 A JP H0764544A JP 5234103 A JP5234103 A JP 5234103A JP 23410393 A JP23410393 A JP 23410393A JP H0764544 A JPH0764544 A JP H0764544A
- Authority
- JP
- Japan
- Prior art keywords
- peak value
- value
- peak
- stored
- tempo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
- Auxiliary Devices For Music (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明はテンポデータ生成装置及
びテンポデータ生成方法に関し、詳細には、実際の演奏
の音響信号からテンポを検出して、テンポデータを生成
するテンポデータ生成装置及びテンポデータ生成方法に
関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a tempo data generating device and a tempo data generating method, and more particularly to a tempo data generating device and tempo data generating device for detecting tempo from an acoustic signal of an actual performance. Regarding the generation method.
【0002】[0002]
【従来の技術】近時、電子楽器の普及に伴い、演奏形態
も多様化し、複数の機器を同期させて演奏することが行
われている。2. Description of the Related Art Recently, with the widespread use of electronic musical instruments, playing styles have been diversified, and a plurality of devices are playing in synchronization with each other.
【0003】この場合、演奏の同期をとるために、演奏
のテンポを検出してテンポデータを生成し、そのテンポ
データにより同期させることが必要となる。In this case, in order to synchronize the performance, it is necessary to detect the tempo of the performance, generate tempo data, and synchronize with the tempo data.
【0004】そこで、従来では、複数のパートで構成さ
れた演奏データのうち、制御トラックに入っているテン
ポデータを取り出して、このテンポデータにより外部機
器、例えば、シーケンサ等を同期させている。Therefore, conventionally, out of the performance data composed of a plurality of parts, the tempo data contained in the control track is taken out, and an external device such as a sequencer is synchronized with this tempo data.
【0005】[0005]
【発明が解決しようとする課題】しかしながら、このよ
うな従来のテンポデータ生成装置にあっては、演奏デー
タのテンポデータを取り出すのみであったため、人が演
奏する場合のような生の演奏の音響信号に基づいてテン
ポを正確に検出して、テンポデータを生成することがで
きず、このような生の演奏の音響信号により外部機器と
同期を取ることができないという問題があった。However, in such a conventional tempo data generation device, since only the tempo data of the performance data is taken out, the acoustic sound of a live performance such as when a person plays is performed. There is a problem in that the tempo cannot be accurately detected based on the signal to generate the tempo data, and the acoustic signal of the live performance cannot synchronize with the external device.
【0006】そこで、本発明は、テンポデータを有しな
い生の演奏の音響信号であっても、テンポデータを生成
することのできるテンポデータ生成装置及びテンポデー
タ生成方法を提供することを目的としている。Therefore, it is an object of the present invention to provide a tempo data generating device and a tempo data generating method capable of generating tempo data even for a live performance acoustic signal having no tempo data. .
【0007】[0007]
【課題を解決するための処理】本発明のテンポデータ生
成装置は、入力される音響信号の特定周波数帯のレベル
を抽出する抽出手段と、前記抽出手段で抽出されたレベ
ルのピーク値と発生時間を順次記憶する記憶手段と、前
記記憶手段に記憶されたレベルのピーク値の平均値を算
出する算出手段と、前記記憶手段に記憶されたレベルの
ピーク値のうち、前記算出手段により算出された平均値
を超えるピーク値のレベルを2個選択する選択手段と、
前記記憶手段に記憶された他のレベルが前記選択手段に
より選択された2個のレベルの発生間隔毎に存在するか
否かを検索する検索手段と、前記検索手段が他のレベル
が前記発生間隔毎に存在していると検知したときに、該
発生間隔に基づいてテンポデータを生成するテンポデー
タ生成手段と、前記検索手段が他のレベルが前記発生間
隔毎に存在しないと検知したときに、前記選択手段に前
記記憶手段から他のレベルを選択させる再選択手段と、
を備えることとにより、上記目的を達成している。The tempo data generation apparatus of the present invention is an extraction means for extracting the level of a specific frequency band of an input acoustic signal, a peak value of the level extracted by the extraction means, and an occurrence time. Of the peak values of the levels stored in the storage means, the calculation means for calculating the average value of the peak values of the levels stored in the storage means, and the calculation means of the peak values of the levels stored in the storage means. Selecting means for selecting two peak value levels exceeding the average value;
Search means for searching whether or not another level stored in the storage means exists at every occurrence interval of the two levels selected by the selection means; and the search means has another level for the occurrence interval. When it is detected that each level exists, when the tempo data generation unit that generates tempo data based on the occurrence interval, and the search unit detects that another level does not exist at each occurrence interval, Reselection means for causing the selection means to select another level from the storage means,
With the provision of the above, the above object is achieved.
【0008】この場合、前記記憶手段は、例えば、請求
項2に記載するように、前記抽出手段により抽出された
レベルのうち、特定値以上のピーク値を有するレベルの
ピーク値のみを記憶するものであってもよい。In this case, the storage means stores only the peak value of a level having a peak value of a specific value or more among the levels extracted by the extraction means, for example. May be
【0009】また、本発明のテンポデータ生成方法は、
入力される音響信号の特定周波数帯のレベルを抽出する
抽出処理と、前記抽出処理により抽出されたレベルのピ
ーク値と発生時間を順次記憶する記憶処理と、前記記憶
処理により記憶されたレベルのピーク値の平均値を算出
する算出処理と、前記記憶処理により記憶されたレベル
のピーク値のうち、前記算出処理により算出された平均
値を超えるピーク値のレベルを2個選択する選択処理
と、前記記憶処理により記憶された他のレベルが前記選
択処理により選択された2個のレベルの発生間隔毎に存
在するか否かを検索する検索処理と、前記検索処理で他
のレベルが前記発生間隔毎に存在していると検知された
ときに、該発生間隔に基づいてテンポデータを生成する
テンポデータ生成処理と、前記検索処理で他のレベルが
前記発生間隔毎に存在しないと検知されたときに、前記
選択処理により前記記憶処理で記憶された他のレベルを
選択させる再選択処理と、を備えることにより、上記目
的を達成している。The tempo data generation method of the present invention is
Extraction processing for extracting the level of a specific frequency band of the input acoustic signal, storage processing for sequentially storing the peak value and generation time of the level extracted by the extraction processing, and peak of the level stored by the storage processing A calculation process for calculating an average value of the values, a selection process for selecting two peak value levels exceeding the average value calculated by the calculation process among the peak values of the levels stored by the storage process, A search process for searching whether or not another level stored by the storage process exists at each occurrence interval of the two levels selected by the selection process; and another level in the search process at each occurrence interval. When it is detected that the tempo data is present, the tempo data generation process for generating tempo data based on the occurrence interval and another level in the search process for each occurrence interval. When it is detected not with, by providing a re-selection process for selecting the other level stored in the storing process by the selection process, we have achieved the above objects.
【0010】この場合、前記記憶処理は、例えば、請求
項4に記載するように、前記抽出処理により抽出された
レベルのうち、特定値以上のピーク値を有するレベルの
ピーク値のみを記憶してもよい。In this case, for example, as described in claim 4, the storage processing stores only the peak value of a level having a peak value of a specific value or more among the levels extracted by the extraction processing. Good.
【0011】[0011]
【作用】本発明のテンポデータ生成装置及びテンポデー
タ生成方法によれば、入力される音響信号の特定周波数
帯のレベルを抽出し、この抽出したレベルのピーク値と
発生時間を順次記憶する。この記憶されたレベルのピー
ク値の平均値を算出し、該記憶されたレベルのピーク値
のうち、算出した平均値を超えるピーク値のレベルを2
個選択する。そして、この選択した2個のレベルの発生
間隔毎に、前記記憶した他のレベルが存在するか否かを
検索して、他のレベルが該発生間隔毎に存在していると
きには、該発生間隔に基づいてテンポデータを生成し、
他のレベルが該発生間隔毎に存在しないときには、前記
記憶した他のレベルを選択して、同様に検索する。According to the tempo data generation device and the tempo data generation method of the present invention, the level of a specific frequency band of the input acoustic signal is extracted, and the peak value of this extracted level and the generation time are sequentially stored. The average value of the peak values of the stored levels is calculated, and the peak value level exceeding the calculated average value among the peak values of the stored levels is set to 2
Select one. Then, at each occurrence interval of the two selected levels, it is searched whether or not there is another stored level, and when another level exists at each occurrence interval, the occurrence interval is determined. Generate tempo data based on
When another level does not exist at each occurrence interval, the stored other level is selected and similarly searched.
【0012】したがって、楽器等の生の演奏の音響信号
から正確にテンポを検出して、テンポデータを生成する
ことができ、このテンポデータに基づいてシーケンサ等
の外部機器の同期を取ることができる。Therefore, the tempo can be accurately detected from the live performance acoustic signal of the musical instrument or the like to generate the tempo data, and the external equipment such as the sequencer can be synchronized based on the tempo data. .
【0013】[0013]
【実施例】以下、本発明を実施例に基づいて具体的に説
明する。EXAMPLES The present invention will be specifically described below based on examples.
【0014】図1〜図16は、本発明のテンポデータ生
成装置及びテンポデータ生成方法の一実施例を示す図で
ある。1 to 16 are views showing an embodiment of the tempo data generating apparatus and tempo data generating method of the present invention.
【0015】図1は、テンポデータ生成装置1のブロッ
ク構成図である。FIG. 1 is a block diagram of the tempo data generator 1.
【0016】テンポデータ生成装置1は、CPU(Cent
ral Processing Unit) 2、周波数フィルタ3、音量レ
ベルフィルタ4、メモリ5、データメモリ6、クロック
シーケンスコンポーザ7及びクロック生成部8等を備
え、テンポデータ生成装置1には、音響信号を発生する
プレイヤー9、例えば、楽器あるいは演奏された音を再
生する再生装置等とテンポデータ生成装置1の出力する
テンポデータにより同期を取る外部機器10、例えば、
シーケンサ等が接続される。The tempo data generator 1 is a CPU (Cent
Ral Processing Unit) 2, a frequency filter 3, a volume level filter 4, a memory 5, a data memory 6, a clock sequence composer 7, a clock generation unit 8 and the like, and the tempo data generation device 1 includes a player 9 that generates an acoustic signal. For example, an external device 10 that synchronizes with a tempo data output from the tempo data generation device 1 with a playback device or the like that plays back a musical instrument or a played sound, for example,
A sequencer etc. is connected.
【0017】周波数フィルタ3には、プレイヤー9が接
続され、周波数フィルタ3は、プレイヤー9から入力さ
れる音響信号のうち特定周波数帯の音響信号のみを通過
させて、音量レベルフィルタ4に出力する。A player 9 is connected to the frequency filter 3, and the frequency filter 3 allows only a sound signal in a specific frequency band among sound signals input from the player 9 to pass therethrough and outputs the sound signal to the volume level filter 4.
【0018】音量レベルフィルタ4は、周波数フィルタ
3から入力される音響信号のうち、所定レベル以上の音
響信号のみを透過させてメモリ5に出力する。すなわ
ち、音量レベルフィルタ4は、周波数フィルタ3を通過
した音響信号のピーク値を取り出して、メモリ5に出力
する。The volume level filter 4 transmits only the acoustic signal of a predetermined level or higher among the acoustic signals input from the frequency filter 3 and outputs it to the memory 5. That is, the volume level filter 4 extracts the peak value of the acoustic signal that has passed through the frequency filter 3 and outputs it to the memory 5.
【0019】メモリ5は、RAM等で構成され、音量レ
ベルフィルタ4を通過した音響信号のピーク値とそのピ
ーク値の発生時間を記憶するピーク値領域PAと、後述
するように、このピーク値の平均値を超えるレベルのピ
ーク値とそのピーク値の発生時間を記憶する平均値領域
AAと、を有している。The memory 5 is composed of a RAM or the like, and has a peak value area PA for storing the peak value of the acoustic signal that has passed through the volume level filter 4 and the time of occurrence of the peak value. It has a peak value at a level exceeding the average value and an average value area AA for storing the time of occurrence of the peak value.
【0020】メモリ5に記憶されたピーク値は、クロッ
クシーケンスコンポーザ7に読み出され、クロックシー
ケンスコンポーザ7で演算処理される。The peak value stored in the memory 5 is read by the clock sequence composer 7 and processed by the clock sequence composer 7.
【0021】すなわち、クロックシーケンスコンポーザ
7は、ピーク値領域PAに書き込まれたピーク値の平均
値を算出して、算出した平均値をメモリ5の平均値領域
AAに書き込むとともに、この平均値を超えるピーク値
を2個選択して、選択した2個のピーク値の発生時間間
隔に選択した以外のピーク値がピーク値領域PAに存在
するかどうか検索し、存在するときには、その発生時間
間隔によりテンポデータを生成して、データメモリ6に
書き込む。また、クロックシーケンスコンポーザ7は、
上記選択した2個のピーク値の発生時間間隔に選択した
以外のピーク値が存在しないときには、ピーク値の選択
をやり直し、同様に、処理して、テンポデータを生成す
る。That is, the clock sequence composer 7 calculates the average value of the peak values written in the peak value area PA, writes the calculated average value in the average value area AA of the memory 5, and exceeds the average value. Two peak values are selected, and it is searched whether or not there is a peak value other than the selected peak value in the peak value area PA in the occurrence time interval of the two selected peak values. Data is generated and written in the data memory 6. Also, the clock sequence composer 7
When there is no peak value other than the selected peak value in the time interval of occurrence of the two selected peak values, the peak value is selected again, and similarly processed to generate tempo data.
【0022】データメモリ6は、RAM等で構成され、
データメモリ6には、クロックシーケンスコンポーザ7
の生成したテンポデータと発生時間が書き込まれる。The data memory 6 is composed of a RAM or the like,
The data memory 6 includes a clock sequence composer 7
The tempo data generated and the occurrence time are written.
【0023】クロック生成部8は、CPU2の制御下で
動作し、データメモリ6に書き込まれたテンポデータに
対応するテンポのクロック信号を生成して、外部機器1
0に出力する。The clock generator 8 operates under the control of the CPU 2 and generates a clock signal of a tempo corresponding to the tempo data written in the data memory 6 to generate the external device 1
Output to 0.
【0024】CPU2は、内部ROMに格納されたプロ
グラムに従ってテンポデータ生成装置1の各部を制御
し、テンポデータ生成装置1としての処理を行わせる。The CPU 2 controls each part of the tempo data generation device 1 according to the program stored in the internal ROM, and causes the tempo data generation device 1 to perform processing.
【0025】次に作用について説明する。Next, the operation will be described.
【0026】テンポデータ生成装置1は、図1に示すよ
うに、楽器あるいは演奏された音を再生する再生装置等
の音響信号を発生するプレイヤー9と、テンポデータ生
成装置1の出力するクロック信号により同期を取るシー
ケンサ等の外部機器10に接続され、プレイヤー9で発
生された音響信号のテンポを検出し、そのテンポのテン
ポデータを生成し、外部機器10に出力して、外部機器
10の同期を取る。As shown in FIG. 1, the tempo data generating apparatus 1 uses a player 9 for generating an acoustic signal of a musical instrument or a reproducing apparatus for reproducing a played sound, and a clock signal output from the tempo data generating apparatus 1. It is connected to an external device 10 such as a sequencer for synchronization, detects the tempo of the audio signal generated by the player 9, generates tempo data for that tempo, outputs it to the external device 10, and synchronizes the external device 10. take.
【0027】以下、このテンポデータ生成処理について
説明する。The tempo data generation process will be described below.
【0028】〈メイン処理〉テンポデータ生成装置1
は、電源が投入されると、図2に示すように、まず、各
種レジスタ等への初期値の設定等のイニシャライズ処理
を行い(ステップS1)、イニシャライズ処理が完了す
ると、プレイヤー9からの音響信号が入力されたかどう
かにより曲がスタートしたかどうかチェックする(ステ
ップS2)。<Main Processing> Tempo Data Generation Device 1
When the power is turned on, first, as shown in FIG. 2, first, initialization processing such as setting initial values to various registers and the like is performed (step S1), and when the initialization processing is completed, a sound signal from the player 9 is transmitted. It is checked whether or not the song has started depending on whether or not is input (step S2).
【0029】曲がスタートすると、プレイヤー9からの
音響信号に対して、後述するピーク検出処理(ステップ
S3)、平均値算出処理(ステップS4)、テンポ算出
処理(ステップS5)を順次行って、テンポデータを生
成し、生成したテンポデータを外部機器10に出力する
(ステップS6)。When the music starts, a peak detection process (step S3), an average value calculation process (step S4), and a tempo calculation process (step S5), which will be described later, are sequentially performed on the acoustic signal from the player 9 to obtain a tempo. Data is generated and the generated tempo data is output to the external device 10 (step S6).
【0030】以下、ピーク検出処理、平均値算出処理、
テンポ算出処理について、詳細に説明する。Hereinafter, peak detection processing, average value calculation processing,
The tempo calculation process will be described in detail.
【0031】〈ピーク検出処理〉ピーク検出処理では、
図3に示すように、まず、ポインタIに「0」をセット
し(ステップP1)、データ(音響信号)が入力された
かどうかチェックする(ステップP2)。<Peak Detection Processing> In the peak detection processing,
As shown in FIG. 3, first, "0" is set to the pointer I (step P1), and it is checked whether data (acoustic signal) is input (step P2).
【0032】ステップP2で、データが入力されていな
いときには、ピーク検出するデータが入力されていない
のであるから、そのままピーク検出処理を終了する。In step P2, when the data is not input, since the data for peak detection is not input, the peak detection processing is ended as it is.
【0033】ステップP2で、データが入力されると、
バンドパスフィルタ(BPF)処理を行って、特定周波
数帯のデータのみを取り込むエンベロープ処理を行い
(ステップP3)、この検出したエンベロープ値をレジ
スタE0にストアする(ステップP4)。At step P2, when data is input,
A band pass filter (BPF) process is performed to perform an envelope process for taking in only data of a specific frequency band (step P3), and the detected envelope value is stored in the register E0 (step P4).
【0034】すなわち、BPF処理では、図4に示すよ
うなデータ(音響信号)が入力されると、このデータの
特定周波数帯のデータのみを取り込み、図5に示すよう
なエンベロープを抽出する。That is, in the BPF processing, when the data (acoustic signal) as shown in FIG. 4 is input, only the data in the specific frequency band of this data is taken in and the envelope as shown in FIG. 5 is extracted.
【0035】このレジスタE0にストアしたエンベロー
プ値が前回の処理で検出してレジスタE1に格納したエ
ンベロープ値よりも小さいかどうかチェックし(ステッ
プP5)、NOのとき、すなわち、レジスタE1の値が
レジスタE0の値よりも小さいか、同じときには、エン
ベロープ値が増大傾向にあると判断して、ピークフラグ
を「0」にセットして(ステップP13)、レジスタE
0の値をレジスタE1にストアする(ステップP1
1)。It is checked whether the envelope value stored in the register E0 is smaller than the envelope value detected in the previous process and stored in the register E1 (step P5). If NO, that is, the value of the register E1 is registered. When the value is smaller than or equal to the value of E0, it is determined that the envelope value tends to increase, and the peak flag is set to "0" (step P13).
The value of 0 is stored in the register E1 (step P1
1).
【0036】そして、全てのデータについてピーク検出
(抽出)が完了したかどうかチェックし(ステップP1
2)、完了していないときには、ステップP2に戻っ
て、データ入力があるのを待って、次のデータについて
BPF処理を行い(ステップP3)。Then, it is checked whether peak detection (extraction) has been completed for all data (step P1).
2) If not completed, the process returns to step P2, waits for data input, and performs BPF processing for the next data (step P3).
【0037】同様に、順次、検出したエンベロープ値を
レジスタE0にストアし(ステップP4)、レジスタE
1の値と比較して(ステップP5)、ステップP5での
判断がNOである限り、エンベロープ値が増大傾向にあ
ると判断して、上記同様の処理を行う。Similarly, the detected envelope values are sequentially stored in the register E0 (step P4), and the register E0 is stored.
As compared with the value of 1 (step P5), as long as the determination in step P5 is NO, it is determined that the envelope value tends to increase, and the same processing as above is performed.
【0038】そして、ステップP5での判断がYESと
なると、今回検出したエンベロープ値(E0)よりも、
前回検出したエンベロープ値(E1)の方が大きいの
で、ピークフラグが「1」であるかどうかチェックする
(ステップP6)。When the determination in step P5 is YES, the envelope value (E0) detected at this time is
Since the envelope value (E1) detected last time is larger, it is checked whether the peak flag is "1" (step P6).
【0039】いま、ピークフラグには、ステップP13
の処理で「0」がセットされているので、前回検出した
エンベロープ値E1がピーク値であると判断して、ピー
クフラグに「1」をセットし(ステップP7)、レジス
タE1の値が予め設定された特定値Eth以上かどうかチ
ェックする(ステップP8)。Now, in the peak flag, step P13
Since "0" is set in the processing of step 1, it is judged that the envelope value E1 detected last time is the peak value, "1" is set to the peak flag (step P7), and the value of the register E1 is preset. It is checked whether or not it is equal to or more than the specified value Eth (step P8).
【0040】ステップP8で、NOのときには、テンポ
検出の対象となる音ではないと判断して、レジスタE0
の値をレジスタE1にストアし(ステップP11)、抽
出処理が終了したかどうかチェックする(ステップP1
2)。If NO at step P8, it is determined that the sound is not the tempo detection target sound, and the register E0 is selected.
Is stored in the register E1 (step P11), and it is checked whether the extraction process is completed (step P1).
2).
【0041】ステップP8で、YESのときには、テン
ポ検出の対象となる音であると判断して、レジスタE1
の値とタイムカウンタTMの値をメモリ5のピーク値領
域PAにストアし(ステップP9)、ポインタIを
「1」だけインクリメントして(ステップP10)、レ
ジスタE0の値をレジスタE1にストアする(ステップ
P11)。If YES in step P8, it is determined that the sound is the target of tempo detection, and the register E1 is selected.
And the value of the time counter TM are stored in the peak value area PA of the memory 5 (step P9), the pointer I is incremented by "1" (step P10), and the value of the register E0 is stored in the register E1 ( Step P11).
【0042】上記タイムカウンタTMは、所定時間毎に
処理されるクロックインタラプト処理によりインクリメ
ントされる。The time counter TM is incremented by the clock interrupt process which is performed every predetermined time.
【0043】すなわち、クロックインタラプト処理は、
図6に示すように、所定時間毎にインタラプトが入る
と、タイムカウンタTMの値に「1」を加算し、その加
算結果をタイムカウンタTMにストアする(ステップT
1)。That is, the clock interrupt processing is
As shown in FIG. 6, when an interrupt occurs at every predetermined time, "1" is added to the value of the time counter TM, and the addition result is stored in the time counter TM (step T
1).
【0044】上記ピーク検出処理を順次繰り返し行い、
入力データの全てについて処理すると、ステップT12
での判断がYESとなり、処理を終了する。The above peak detection processing is sequentially repeated,
When all the input data are processed, step T12
The determination is YES, and the process ends.
【0045】すなわち、ピーク検出処理では、図4に示
すような音響信号が入力されたとき、BPF処理を施し
て、図5に示すような、エンベロープを得る。そして、
図7に示すように、このエンベロープのピーク値を順次
検出し、さらに、図8に示すように、検出したピーク値
を特定値Ethと比較して、特定値Ethよりも大きいピー
ク値(図8中実線で表示するピーク値E)とそのときの
発生時間を順次メモリ5のピーク値領域PAに格納して
いる。That is, in the peak detection process, when the acoustic signal as shown in FIG. 4 is input, the BPF process is performed to obtain the envelope as shown in FIG. And
As shown in FIG. 7, the peak value of this envelope is sequentially detected, and as shown in FIG. 8, the detected peak value is compared with the specific value Eth, and a peak value larger than the specific value Eth (see FIG. The peak value E) indicated by the solid line and the generation time at that time are sequentially stored in the peak value area PA of the memory 5.
【0046】〈平均値算出処理〉ピーク検出処理が完了
すると、次に、図2に示したように、平均値算出処理を
行う。<Average Value Calculation Processing> When the peak detection processing is completed, next, as shown in FIG. 2, average value calculation processing is performed.
【0047】平均値算出処理は、図9に示すように、ま
ず、ポインタI、ピーク値の累算値を格納するレジスタ
SE及びピーク値の平均値を格納するレジスタMをそれ
ぞれ「0」にセットし(ステップQ1)、ポインタIを
アドレスとしてメモリ5のピーク値領域PAからピーク
値Eを読み出す(ステップQ2)。In the average value calculation processing, as shown in FIG. 9, first, the pointer I, the register SE for storing the accumulated peak value and the register M for storing the average peak value are set to "0". Then, the peak value E is read from the peak value area PA of the memory 5 by using the pointer I as an address (step Q2) (step Q2).
【0048】この読み出したピーク値EをレジスタSE
の値に加算して、レジスタSEに格納し(ステップQ
3)、ポインタIを「1」だけインクリメントして(ス
テップQ4)、メモリ5のピーク値領域PAの全データ
について加算処理が終了したかどうかチェックする(ス
テップQ5)。The read peak value E is stored in the register SE.
Stored in register SE (step Q
3) The pointer I is incremented by "1" (step Q4), and it is checked whether or not the addition processing has been completed for all the data in the peak value area PA of the memory 5 (step Q5).
【0049】ステップQ5で全データについて加算処理
が終了していないときには、ステップQ2に戻って、イ
ンクリメントしたポインタIをアドレスにして、メモリ
5のピーク値領域PAからピーク値Eを読み出し(ステ
ップQ2)、レジスタSEの値に加算して(ステップQ
3)、ポインタIをインクリメントする(ステップQ
4)。When the addition process is not completed for all the data in step Q5, the process returns to step Q2, and the incremented pointer I is used as an address to read the peak value E from the peak value area PA of the memory 5 (step Q2). , Register SE value (step Q
3) Increment pointer I (step Q
4).
【0050】すなわち、ピーク検出処理で検出したピー
ク値Eを全てメモリ5から読み出して、累算し、その累
算結果をレジスタSEに格納している。That is, all the peak values E detected in the peak detection process are read out from the memory 5, accumulated, and the accumulated result is stored in the register SE.
【0051】ステップQ5で、全てのデータについて加
算処理が終了すると、レジスタSEの値をポインタIの
値で除算し、その除算結果(SE/I)をレジスタMに
格納する(ステップQ6)。When the addition process is completed for all the data in step Q5, the value of the register SE is divided by the value of the pointer I, and the division result (SE / I) is stored in the register M (step Q6).
【0052】すなわち、ピーク値Eの累算値をデータ数
で除算することにより、ピーク値Eの平均値を算出し、
その平均値をレジスタMに格納している。That is, the average value of the peak values E is calculated by dividing the accumulated value of the peak values E by the number of data,
The average value is stored in the register M.
【0053】次に、ポインタIとポインタJを「0」に
セットし(ステップQ7)、ポインタIをアドレスとし
てメモリ5のピーク値領域PAからピーク値Eを読み出
す(ステップQ8)。Next, the pointers I and J are set to "0" (step Q7), and the peak value E is read from the peak value area PA of the memory 5 with the pointer I as an address (step Q8).
【0054】そして、この読み出したピーク値Eがレジ
スタMの値、すなわち、平均値以下かどうかチェックし
(ステップQ9)、NOのときには、ピーク値Eが平均
値よりも大きいと判断して、ポインタJの値をアドレス
として、当該ピーク値Eとそのピーク値Eの発生時間を
メモリ5の平均値領域AAに書き込む(ステップQ1
0)。Then, it is checked whether the read peak value E is equal to or less than the value of the register M, that is, the average value (step Q9). If NO, it is judged that the peak value E is larger than the average value, and the pointer is set. Using the value of J as an address, the peak value E and the time of occurrence of the peak value E are written in the average value area AA of the memory 5 (step Q1).
0).
【0055】次に、ポインタJを「1」だけインクリメ
ントして、全データについて処理が終了したかどうかチ
ェックし(ステップQ12)、全データについて処理が
終了していないときには、ポインタIを「1」だけイン
クリメントして(ステップQ13)、ステップQ8に戻
る。Next, the pointer J is incremented by "1" and it is checked whether the processing is completed for all the data (step Q12). When the processing is not completed for all the data, the pointer I is set to "1". Incremented only (step Q13) and the process returns to step Q8.
【0056】同様に、ポインタIをアドレスとして、メ
モリ5のピーク値領域PAからピーク値Eを読み出し
(ステップQ8)、そのピーク値Eが平均値を超えてい
るかどうかチェックする(ステップQ9)。Similarly, using the pointer I as an address, the peak value E is read from the peak value area PA of the memory 5 (step Q8), and it is checked whether the peak value E exceeds the average value (step Q9).
【0057】平均値を超えていないときには、メモリ5
の平均値領域AAへのピーク値Eの書き込みを行うこと
なく、全データが終了したかどうかチェックし(ステッ
プQ12)、全データの処理が終了していないときに
は、ポインタIをインクリメントして(ステップQ1
3)、同様にインクリメントしたポインタIをアドレス
としてメモリ5から次のピーク値Eを読み出して、同様
に処理する(ステップQ8〜ステップQ13)。When the average value is not exceeded, the memory 5
It is checked whether or not all the data is completed without writing the peak value E to the average value area AA (step Q12), and when the processing of all the data is not completed, the pointer I is incremented (step S12). Q1
3) Similarly, the next peak value E is read from the memory 5 with the pointer I incremented similarly as an address, and the same processing is performed (steps Q8 to Q13).
【0058】そして、ステップQ12で、全データの処
理が終了すると、平均値算出処理を終了する。Then, in step Q12, when the processing of all data is completed, the average value calculation processing is completed.
【0059】すなわち、メモリ5のピーク値領域PAに
は、図10に示すように、ポインタIをアドレスとし
て、検出したピーク値EとそのタイムカウンタTMの値
(発生時間)が記憶されており、平均値算出処理では、
このピーク検出処理で検出したピーク値Eの平均値を算
出し、算出した平均値を超えているピーク値Eを、図1
1に示すように、ポインタJをアドレスとして順次メモ
リ5の平均値領域AAに書き込んでいる。That is, in the peak value area PA of the memory 5, as shown in FIG. 10, the detected peak value E and the value (occurrence time) of the time counter TM are stored with the pointer I as an address. In the average value calculation process,
The average value of the peak values E detected in this peak detection process is calculated, and the peak value E exceeding the calculated average value is calculated as shown in FIG.
As shown in 1, the pointer J is sequentially written in the average value area AA of the memory 5 as an address.
【0060】〈テンポ算出処理〉平均値算出処理が終了
すると、図2に示すように、次に、テンポ算出処理を行
う。<Tempo Calculation Process> When the average value calculation process is completed, next, as shown in FIG. 2, the tempo calculation process is performed.
【0061】テンポ算出処理では、図12に示すよう
に、まず、ポインタI、ポインタJ、ポインタG及びポ
インタQをそれぞれ「0」にセットし(ステップR
1)、ポインタJをアドレスにしてメモリ5の平均値領
域AAから発生時間を読み出して、レジスタAにストア
する(ステップR2)。In the tempo calculation process, as shown in FIG. 12, first, the pointer I, the pointer J, the pointer G, and the pointer Q are set to "0" (step R).
1) Using the pointer J as an address, the generation time is read from the average value area AA of the memory 5 and stored in the register A (step R2).
【0062】さらに、ポインタJに「1」を加算した値
をアドレスとして、メモリ5の平均値領域AAから発生
時間を読み出し、レジスタBにストアする(ステップR
3)。Further, using the value obtained by adding "1" to the pointer J as an address, the generation time is read from the average value area AA of the memory 5 and stored in the register B (step R).
3).
【0063】そして、レジスタBの発生時間からレジス
タAの発生時間を減算して、その減算結果(B−A)の
発生時間間隔をレジスタC0に格納し(ステップR
4)、このレジスタC0の値をレジスタCにストアする
(ステップR5)。Then, the generation time of the register A is subtracted from the generation time of the register B, and the generation time interval of the subtraction result (BA) is stored in the register C0 (step R
4) The value of the register C0 is stored in the register C (step R5).
【0064】次に、このレジスタCの発生時間間隔で
「60」を除算して、その除算結果(60/C)をレジ
スタDにストアし(ステップR6)、このレジスタDの
値とレジスタBの発生時間をポインタGをアドレスとし
てデータメモリ6にストアする(ステップR7)。Next, "60" is divided by the generation time interval of the register C, the division result (60 / C) is stored in the register D (step R6), and the value of the register D and the value of the register B are stored. The generation time is stored in the data memory 6 using the pointer G as an address (step R7).
【0065】すなわち、本実施例では、テンポを1分間
の4分音符の数としているので、上記平均値算出処理で
メモリ5の平均値領域AAに格納した平均値を超えるピ
ーク値Eの発生時間間隔を算出し(ステップR4)、こ
の発生時間間隔で「60」を除算して、テンポを算出し
ている(ステップR6)。この算出したテンポとこのテ
ンポの元になる発生時間(レジスタBの値)をデータメ
モリ6に格納している(ステップR7)。That is, in the present embodiment, since the tempo is the number of quarter notes in one minute, the generation time of the peak value E exceeding the average value stored in the average value area AA of the memory 5 in the above average value calculation processing. The interval is calculated (step R4), and "60" is divided by this occurrence time interval to calculate the tempo (step R6). The calculated tempo and the generation time (value of the register B) which is the basis of this tempo are stored in the data memory 6 (step R7).
【0066】そして、レジスタKに「1」をセットし
(ステップR8)、レジスタCの値にレジスタC0の値
を加算して、その加算結果をレジスタCに格納する(ス
テップR9)。Then, "1" is set in the register K (step R8), the value of the register C0 is added to the value of the register C, and the addition result is stored in the register C (step R9).
【0067】次に、ポインタIの値をアドレスとして、
メモリ5のピーク値領域PAから発生時間を読み出し
て、レジスタHにストアし(ステップR10)、レジス
タCの値が、「15」をレジスタDの値で除算した値を
レジスタHの値から減算した値(H−15/D)と、レ
ジスタHの値に「15」をレジスタDの値で除算した値
を加算した値(H+15/D)と、の間にあるかどうか
チェックする(ステップR11)。Next, using the value of the pointer I as an address,
The occurrence time is read from the peak value area PA of the memory 5, stored in the register H (step R10), and the value of the register C is obtained by dividing "15" by the value of the register D and subtracting the value from the value of the register H. It is checked whether it is between the value (H-15 / D) and the value (H + 15 / D) obtained by adding "15" divided by the value of the register D to the value of the register H (step R11). .
【0068】すなわち、普通の演奏においては、テンポ
が正確に一定していることはなく、多少乱れることとな
るが、この演奏中のテンポの乱れは、通常、15/テン
ポ前後である。そこで、ステップR11により、次のピ
ーク値Eが、このテンポの乱れの許容範囲内にあるかど
うかチェックしている。That is, in an ordinary performance, the tempo is not exactly constant and is somewhat disturbed, but the disturbance of the tempo during the performance is usually around 15 / tempo. Therefore, in step R11, it is checked whether or not the next peak value E is within the permissible range of the disturbance of the tempo.
【0069】例えば、図13に示すように、いま、メモ
リ5のピーク値領域PAにピーク値としてp1、p2、
・・・・が格納されており、平均値を超えるピーク値と
してp1、p2、p3、p6、p8、p9・・・・がメ
モリ5の平均値領域AAに格納されているとすると、こ
のメモリ5の平均値領域AAの最初のアドレスとその次
のアドレスに格納されているピーク値p1とピーク値p
2の発生時間を読み出して、この2つのピーク値p1、
p2間の発生時間間隔であるレジスタC0の値から求め
たテンポをレジスタDに格納するとともに、このテンポ
とピーク値p2の発生時間をデータメモリ6に格納し
(ステップR1〜ステップR6)、音符を設定するKを
「1」にして(ステップR8)、ピーク値p1とピーク
値p2の時間間隔に、さらに、ピーク値p1とピーク値
p2の時間間隔を加算した時間が、ポインタIをアドレ
スとしてメモリ5のピーク値領域PAから読み出したピ
ーク値、例えば、ピーク値p1の発生時間を中心とした
上記許容範囲内にあるかどうかチェックしている(ステ
ップR11)。For example, as shown in FIG. 13, in the peak value area PA of the memory 5, the peak values p1, p2,
... is stored, and p1, p2, p3, p6, p8, p9 ... Are stored in the average value area AA of the memory 5 as peak values exceeding the average value. 5, the peak value p1 and the peak value p stored at the first address and the next address of the average value area AA
2 occurrence time is read out and these two peak values p1,
The tempo obtained from the value of the register C0, which is the generation time interval between p2, is stored in the register D, and the tempo and the generation time of the peak value p2 are stored in the data memory 6 (steps R1 to R6). The K to be set is set to "1" (step R8), and the time obtained by adding the time interval between the peak value p1 and the peak value p2 to the time interval between the peak value p1 and the peak value p2 is stored in the memory using the pointer I as an address. It is checked whether or not the peak value read from the peak value area PA of No. 5, for example, the peak value p1 is within the above-mentioned permissible range centered on the generation time (step R11).
【0070】ステップR11で、NOのときには、ポイ
ンタIを「1」だけインクリメントして(ステップR1
2)、レジスタCの値がレジスタHの値に「15」をレ
ジスタDの値で除算した値を加算した値(H+15/
D)よりも大きいかどうか、すなわち、上記ピーク値p
2からピーク値p1を減算した時間間隔がメモリ5のピ
ーク値領域PAから読み出したピーク値p1の発生時間
よりも大きいかどうかチェックし(ステップR13)、
YESのときには、メモリ5のピーク値領域PAから読
み出したピーク値(例えば、ピーク値p1)が検索対象
となっているピーク値ではないと判断して、ステップR
10に戻る。If NO at step R11, the pointer I is incremented by "1" (step R1
2), the value of register C is the value of register H added with the value of "15" divided by the value of register D (H + 15 /
D), that is, the above-mentioned peak value p
It is checked whether the time interval obtained by subtracting the peak value p1 from 2 is longer than the generation time of the peak value p1 read from the peak value area PA of the memory 5 (step R13),
If YES, it is determined that the peak value (for example, the peak value p1) read from the peak value area PA of the memory 5 is not the peak value to be searched, and step R
Return to 10.
【0071】同様に、インクリメントしたポインタIを
アドレスとして次のピーク値の発生時間をメモリ5のピ
ーク値領域PAから読み出してレジスタHにストアし
(ステップR10)、上記同様に、この読み出したピー
ク値の発生時間がテンポとしての許容時間内かどうかチ
ェックする(ステップR11)。Similarly, using the incremented pointer I as an address, the time of occurrence of the next peak value is read from the peak value area PA of the memory 5 and stored in the register H (step R10), and the read peak value is read in the same manner as above. It is checked whether the occurrence time of is within the allowable time as the tempo (step R11).
【0072】ステップR11で、YESのときには、テ
ンポの乱れの許容範囲内に次のピーク値があると判断し
て、レジスタKの値に「60」を乗算して、その乗算結
果をレジスタCの値からレジスタC0の値を減算した値
で除算[60×K(C−C0)]することによりテンポ
を算出し、その算出したテンポをレジスタDに格納する
(ステップR23)。If YES in step R11, it is determined that the next peak value is within the permissible range of tempo disorder, the value in register K is multiplied by "60", and the multiplication result is stored in register C. A value obtained by subtracting the value of the register C0 from the value is divided [60 × K (C−C0)] to calculate the tempo, and the calculated tempo is stored in the register D (step R23).
【0073】次に、ポインタGを「1」だけインクリメ
ントし(ステップR24)、インクリメントしたポイン
タGをアドレスとして、上記レジスタDのテンポ及び発
生時間をデータメモリ6に格納する(ステップR2
5)。Next, the pointer G is incremented by "1" (step R24), and the tempo and generation time of the register D are stored in the data memory 6 with the incremented pointer G as an address (step R2).
5).
【0074】そして、全データについてテンポ算出処理
が終了したかどうかチェックし(ステップR26)、処
理が終了していないときには、ポインタIを「1」だけ
インクリメントして(ステップR27)、ステップR8
に戻る。Then, it is checked whether or not the tempo calculation processing has been completed for all the data (step R26). If the processing has not been completed, the pointer I is incremented by "1" (step R27) and step R8.
Return to.
【0075】上記同様に、ポインタKに「1」をセット
し(ステップR8)、レジスタCの値にレジスタC0の
値を加算した結果をレジスタCに格納して(ステップR
9)、上記インクリメントしたポインタIをアドレスと
して、メモリ5のピーク値領域PAから発生時間を読み
出してレジスタHに格納する(ステップR10)。Similarly, the pointer K is set to "1" (step R8), and the result of adding the value of the register C0 to the value of the register C is stored in the register C (step R8).
9) The generation time is read from the peak value area PA of the memory 5 and stored in the register H using the incremented pointer I as an address (step R10).
【0076】上記同様に、メモリ5のピーク値領域PA
から読み出したピーク値の発生時間がテンポの許容範囲
内にあると、同様に、テンポを算出してレジスタDにス
トアし(ステップR23)、ポインタGをインクリメン
トした後(ステップR24)、ポインタGをアドレスと
してデータメモリ6に算出したレジスタD内のテンポと
発生時間をストアする(ステップR25)。Similarly to the above, the peak value area PA of the memory 5
If the occurrence time of the peak value read from is within the allowable range of the tempo, similarly, the tempo is calculated and stored in the register D (step R23), the pointer G is incremented (step R24), and then the pointer G is set. The calculated tempo and occurrence time in the register D are stored in the data memory 6 as an address (step R25).
【0077】また、ステップR26で、全データが終了
していないと、ポインタIをインクリメントして、同様
に、次のピーク値の発生時間がテンポの許容時間内にあ
るかどうかチェックする(ステップR8〜ステップR1
1)。If all the data are not completed in step R26, the pointer I is incremented and similarly, it is checked whether or not the time when the next peak value occurs is within the tempo allowable time (step R8). ~ Step R1
1).
【0078】ステップR11で、NOのときには、上記
同様に、ポインタIをインクリメントして(ステップR
12)、レジスタCの値がレジスタHの値に、「15」
をレジスタDの値で除算した値を加算した値(H+15
/D)よりも大きいかどうかチェックする(ステップR
13)。If NO at step R11, the pointer I is incremented in the same manner as described above (step R11).
12), the value of register C is set to the value of register H by “15”
Value obtained by dividing the value by the value of register D (H + 15
/ D) is checked (step R)
13).
【0079】ステップR13で、NOのときには、ポイ
ンタKを「1」だけインクリメントして、音符を大きな
値にし(ステップR14)、ポインタKの値が「4」を
超えたかどうかチェックする(ステップR15)。If NO in step R13, the pointer K is incremented by "1" to increase the note value (step R14), and it is checked whether or not the value of the pointer K exceeds "4" (step R15). .
【0080】ステップR15で、NOのときには、ポイ
ンタIを「0」に戻して(ステップR16)、ステップ
R9に戻る。If NO in step R15, the pointer I is returned to "0" (step R16), and the process returns to step R9.
【0081】そして、レジスタCの値を上記ピーク値の
発生時間間隔が格納されているレジスタC0を加算して
(ステップR9)、次のピーク値の発生時間をメモリ5
のピーク値領域PAから読み出して(ステップR1
0)、同様に、テンポの発生許容範囲内にあるかどうか
チェックする(ステップR11)。Then, the value of the register C is added to the register C0 in which the peak value generation time interval is stored (step R9), and the generation time of the next peak value is stored in the memory 5
Read from the peak value area PA (step R1
0), similarly, it is checked whether the tempo is within the allowable generation range (step R11).
【0082】ステップR11で、NOのときには、ポイ
ンタIをインクリメントして(ステップR12)、上記
同様に、レジスタHの発生時間の大きさをチェックし
(ステップR13)、ステップR13でNOのときに
は、ポインタKをインクリメントして(ステップR1
4)、ポインタKの値が「4」を超えたかチェックする
(ステップR15)。If NO in step R11, the pointer I is incremented (step R12), and similarly to the above, the size of the generation time of the register H is checked (step R13). If NO in step R13, the pointer I is set. Increment K (step R1
4) It is checked whether the value of the pointer K exceeds "4" (step R15).
【0083】ステップR15で、ポインタKの値が
「4」を超えているときには、ピーク値の発生間隔が音
符の時間間隔の限度を超えたと判断して、ポインタJを
「1」だけインクリメントし(ステップR17)、ポイ
ンタJの値がメモリ5の平均値領域AAに格納されてい
る全データ数を超えたかどうかチェックする(ステップ
R18)。In step R15, when the value of the pointer K exceeds "4", it is determined that the peak value generation interval exceeds the time interval limit of the note, and the pointer J is incremented by "1" ( At step R17), it is checked whether the value of the pointer J exceeds the total number of data stored in the average value area AA of the memory 5 (step R18).
【0084】ステップR18で、NOのときには、ポイ
ンタJを「1」だけディクリメントして(ステップR1
9)、ステップR3に戻り、「J+1」をアドレスにし
て、メモリ5の平均値領域AAから発生時間を読み出し
て、レジスタBにストアする(ステップR3)。If NO at step R18, the pointer J is decremented by "1" (step R1).
9) Returning to step R3, the occurrence time is read from the average value area AA of the memory 5 using "J + 1" as an address and stored in the register B (step R3).
【0085】このレジスタBにストアした発生時間から
レジスタAにストアされている発生時間を減算して、レ
ジスタC0に格納し(ステップR4)、レジスタCにス
トアし直して(ステップR5)、このレジスタCの発生
時間間隔に対応する位置に、上記同様に、順次メモリ5
のピーク値領域PAに格納されているピーク値があるか
どうかチェックする。The occurrence time stored in the register A is subtracted from the occurrence time stored in the register B, and the result is stored in the register C0 (step R4) and stored again in the register C (step R5). At the position corresponding to the time interval of occurrence of C, the memory 5
It is checked whether or not there is a peak value stored in the peak value area PA.
【0086】そして、該当するピーク値があると、レジ
スタCの発生時間間隔から演算したテンポをデータメモ
リ6に格納し(ステップR22〜ステップR25)、ポ
インタIをインクリメントして(ステップR27)、順
次メモリ5のピーク値領域PA内のピーク値について同
様に検索する(ステップR8〜R11)。Then, when there is a corresponding peak value, the tempo calculated from the generation time interval of the register C is stored in the data memory 6 (steps R22 to R25), the pointer I is incremented (step R27), and sequentially. Similarly, the peak value in the peak value area PA of the memory 5 is searched (steps R8 to R11).
【0087】また、該当するピーク値がないときには、
上記ステップR12からステップR19の処理を順次行
う。When there is no corresponding peak value,
The processing from step R12 to step R19 is sequentially performed.
【0088】ステップR18で、ポインタJの値が全デ
ータ数に達すると、ポインタQを「1」だけインクリメ
ントし(ステップR20)、ポインタJを「0」にリセ
ットする(ステップR21)。When the value of the pointer J reaches the total number of data in step R18, the pointer Q is incremented by "1" (step R20) and the pointer J is reset to "0" (step R21).
【0089】このポインタJの値とポインタQの値を加
算して、ポインタJにセットし(ステップR22)、ス
テップR2に戻って、加算したポインタJの値をアドレ
スとして、メモリ5の平均値領域AAから発生時間間隔
を読み出して、レジスタAにストアする(ステップR
2)。The value of the pointer J and the value of the pointer Q are added and set to the pointer J (step R22). Then, the process returns to step R2 and the added value of the pointer J is used as an address, and the average value area of the memory 5 is set. The occurrence time interval is read from AA and stored in register A (step R
2).
【0090】すなわち、メモリ5の平均値領域AAの先
頭アドレスと次のアドレスに格納されているピーク値の
発生時間の時間間隔に基づいてテンポを求め、このテン
ポに対応する発生時間にメモリ5のピーク値領域PAに
ピーク値が格納されていると、そのテンポと発生時間を
データメモリ6に格納する。That is, the tempo is calculated based on the time interval of the peak value generation time stored at the start address and the next address of the average value area AA of the memory 5, and the memory 5 is stored at the generation time corresponding to this tempo. When the peak value is stored in the peak value area PA, the tempo and the time of occurrence are stored in the data memory 6.
【0091】そして、このテンポに対応する発生時間に
メモリ5のピーク値領域PAにピーク値が格納されてい
ないと、音符が異なる発生時間にピーク値が格納されて
いるかどうかチェックし、ピーク値があると、その発生
時間とテンポをデータメモリ6に格納する。If the peak value is not stored in the peak value area PA of the memory 5 at the time of occurrence corresponding to this tempo, it is checked whether the peak value is stored at the time of occurrence of different notes. If there is, the occurrence time and tempo are stored in the data memory 6.
【0092】また、音符が異なる発生時間についての検
索が終了すると、先頭アドレスと次の次のアドレスに格
納されている発生時間の時間間隔に基づいて同様に処理
し、この処理を先頭アドレスを固定して、発生時間間隔
が広がるように順次加算したアドレスのピーク値の発生
時間との時間間隔について同様に処理する。Further, when the search for the time of occurrence of different notes is completed, the same processing is performed based on the time interval of the time of occurrence stored at the start address and the next next address, and this process is fixed at the start address. Then, the same processing is performed with respect to the time interval with the time of occurrence of the peak value of the address which is sequentially added so that the time interval of occurrence is widened.
【0093】そして、アドレスの加算がメモリ5の平均
値領域AAに格納されている最後のピーク値のアドレス
まで進むと、先頭アドレスを1つ繰り上げ、この先頭ア
ドレスと次のアドレスのピーク値の発生時間について上
記同様に処理する。When the address addition proceeds to the address of the last peak value stored in the average value area AA of the memory 5, the head address is incremented by one and the peak value of this head address and the next address is generated. The time is processed in the same manner as above.
【0094】この先頭アドレスの繰り上げを順次行いつ
つ、処理を行って、ステップR26で、全データの処理
が完了すると、テンポ算出処理を終了する。The processing is carried out while carrying out the carry-over of the leading address in sequence, and when the processing of all the data is completed in step R26, the tempo calculation processing is ended.
【0095】すなわち、テンポ算出処理では、例えば、
図13に示すように、メモリ5の平均値領域AAに格納
されているピーク値p1とピーク値p2との発生時間間
隔に対応するテンポについてメモリ5のピーク値領域P
Aに格納されているピーク値p1からピーク値p9の発
生時間が、許容範囲内にあるかを検索し、該当する発生
時間のピーク値があると、その発生時間とテンポをデー
タメモリ6に格納する。That is, in the tempo calculation process, for example,
As shown in FIG. 13, regarding the tempo corresponding to the time interval between the peak value p1 and the peak value p2 stored in the average value area AA of the memory 5, the peak value area P of the memory 5
The occurrence time of the peak value p1 to the peak value p9 stored in A is searched for within the allowable range, and if there is a peak value of the corresponding occurrence time, the occurrence time and tempo are stored in the data memory 6. To do.
【0096】そして、メモリ5のピーク値領域PAに格
納されている全データについて処理が終了すると、メモ
リ5の平均値領域AAに格納されているピーク値p1と
ピーク値p3との発生時間間隔について同様に処理し、
この処理が終了すると、ピーク値p1とピーク値p4と
の発生時間間隔について同様に処理する。When all the data stored in the peak value area PA of the memory 5 are processed, the time interval between the peak value p1 and the peak value p3 stored in the average value area AA of the memory 5 is determined. Do the same,
When this process ends, the same process is performed for the time interval between the peak value p1 and the peak value p4.
【0097】上記処理をメモリ5の平均値領域AAに格
納されている最終データまで処理すると、次に、ピーク
値p2とピーク値p3との発生時間間隔について同様に
処理する。When the above processing is performed up to the final data stored in the average value area AA of the memory 5, next, the same processing is performed for the time interval between the peak value p2 and the peak value p3.
【0098】このようにして、メモリ5の平均値領域A
Aに格納されている全データについて順次処理を行っ
て、全データの処理を完了すると、図14示すように、
データメモリ6には、横実線で示すテンポとその発生時
間との関係のデータが格納される。In this way, the average value area A of the memory 5 is
When all the data stored in A are sequentially processed and the processing of all the data is completed, as shown in FIG.
The data memory 6 stores data on the relationship between the tempo indicated by the horizontal solid line and the time of occurrence thereof.
【0099】こうしてメモリ6に格納されたテンポのデ
ータに基づいてクロック生成部8からテンポに対応する
クロック信号を外部機器10に出力し、外部機器10の
同期を取ることができる。In this way, the clock signal corresponding to the tempo can be output from the clock generator 8 to the external device 10 based on the tempo data stored in the memory 6, and the external device 10 can be synchronized.
【0100】このように、テンポデータ生成装置1によ
れば、プレイヤー9から入力される音響信号の特定周波
数帯のレベルを周波数フィルタ3で抽出し、抽出したレ
ベルのうち所定レベル以上の音響信号のピーク値と発生
時間を順次メモリ5のピーク値領域PAに記憶する。こ
の記憶されたピーク値の平均値をクロックシーケンスコ
ンポーザ7で算出し、メモリ5のピーク値領域PAに記
憶されたレベルのピーク値のうち、算出した平均値を超
えるピーク値をメモリ5の平均値領域AAに記憶する。
そして、このメモリ5の平均値領域AAのピーク値をア
ドレス順に2個選択し、選択した2個のレベルの発生間
隔毎に、メモリ5のピーク値領域PAに記憶した他のレ
ベルが存在するか否かを検索する。他のレベルのピーク
値が該発生間隔毎に存在しているときには、該発生間隔
に基づいてテンポデータを生成し、他のレベルが該発生
間隔毎に存在しないときには、メモリ5のピーク値領域
PAに記憶した他のレベルを選択して、同様に検索す
る。As described above, according to the tempo data generation device 1, the level of the specific frequency band of the audio signal input from the player 9 is extracted by the frequency filter 3, and the audio signal of a predetermined level or higher is extracted from the extracted levels. The peak value and the generation time are sequentially stored in the peak value area PA of the memory 5. The average value of the stored peak values is calculated by the clock sequence composer 7, and among the peak values of the levels stored in the peak value area PA of the memory 5, the peak value exceeding the calculated average value is the average value of the memory 5. Store in area AA.
Then, two peak values in the average value area AA of the memory 5 are selected in the order of addresses, and there is another level stored in the peak value area PA of the memory 5 at every occurrence interval of the selected two levels. Search whether or not. When a peak value of another level exists at each occurrence interval, tempo data is generated based on the occurrence interval, and when no other level exists at each occurrence interval, the peak value area PA of the memory 5 is generated. Select another level stored in and search in the same manner.
【0101】したがって、楽器等のプレイヤー9の生の
演奏の音響信号から正確にテンポを検出して、テンポデ
ータを生成することができ、このテンポデータに基づい
てシーケンサ等の外部機器10の同期を取ることができ
る。Therefore, the tempo can be accurately detected from the acoustic signal of the live performance of the player 9 such as a musical instrument, and tempo data can be generated. Based on this tempo data, the external device 10 such as a sequencer can be synchronized. Can be taken.
【0102】[0102]
【発明の効果】本発明によれば、楽器等の生の演奏の音
響信号から正確にテンポを検出して、テンポデータを生
成することができ、このテンポデータに基づいてシーケ
ンサ等の外部機器の同期を取ることができる。According to the present invention, it is possible to accurately detect the tempo from an acoustic signal of a live performance of a musical instrument or the like and generate tempo data, and based on the tempo data, an external device such as a sequencer can be used. Can be synchronized.
【図面の簡単な説明】[Brief description of drawings]
【図1】本発明のテンポデータ生成装置の一実施例のブ
ロック構成図。FIG. 1 is a block configuration diagram of an embodiment of a tempo data generation device of the present invention.
【図2】図1のテンポデータ生成装置のメイン処理を示
すフローチャート。FIG. 2 is a flowchart showing main processing of the tempo data generation device of FIG.
【図3】図2のピーク検出処理の詳細な処理を示すフロ
ーチャート。FIG. 3 is a flowchart showing detailed processing of peak detection processing of FIG.
【図4】入力される音響信号の波形図。FIG. 4 is a waveform diagram of an input acoustic signal.
【図5】図4の音響信号のエンベロープ信号の波形図。5 is a waveform diagram of the envelope signal of the acoustic signal of FIG.
【図6】図1のテンポデータ生成装置によるクロックイ
ンタラプト処理を示すフローチャート。6 is a flowchart showing a clock interrupt process by the tempo data generation device of FIG.
【図7】図5のエンベロープ信号のピーク値を検出する
処理を説明する図。FIG. 7 is a diagram illustrating a process of detecting a peak value of the envelope signal of FIG.
【図8】図7のピーク値のうち特定値Ethを超えるピー
ク値を抽出する処理を説明する図。FIG. 8 is a diagram illustrating a process of extracting a peak value that exceeds a specific value Eth among the peak values in FIG. 7.
【図9】図2の平均値算出処理の詳細な処理を示すフロ
ーチャート。FIG. 9 is a flowchart showing detailed processing of the average value calculation processing of FIG.
【図10】図1のメモリのピーク値領域PAのピーク値
Eと発生時間の格納状態を示す図。10 is a diagram showing a storage state of a peak value E and an occurrence time in a peak value area PA of the memory of FIG.
【図11】図1のメモリの平均値領域AAのピーク値E
と発生時間の格納状態を示す図。11 is a peak value E of the average value area AA of the memory of FIG.
The figure which shows the storage state of the occurrence time.
【図12】図2のテンポ算出処理の詳細な処理を示すフ
ローチャート。FIG. 12 is a flowchart showing detailed processing of the tempo calculation processing of FIG.
【図13】図1のメモリ5の平均値領域AAに格納され
ているピーク値Eと平均値及び発生時間の関係を示す
図。13 is a diagram showing a relationship between a peak value E stored in an average value area AA of the memory 5 of FIG. 1, an average value and an occurrence time.
【図14】図13のピーク値Eから算出したテンポと発
生時間との関係を示す図。14 is a diagram showing the relationship between the tempo calculated from the peak value E of FIG. 13 and the time of occurrence.
1 テンポデータ生成装置 2 CPU 3 周波数フィルタ 4 音量レベルフィルタ 5 メモリ 6 データメモリ 7 クロックシーケンスコンポーザ 8 クロック生成部 9 外部機器 1 Tempo Data Generator 2 CPU 3 Frequency Filter 4 Volume Level Filter 5 Memory 6 Data Memory 7 Clock Sequence Composer 8 Clock Generator 9 External Equipment
Claims (4)
ルを抽出する抽出手段と、 前記抽出手段で抽出されたレベルのピーク値と発生時間
を順次記憶する記憶手段と、 前記記憶手段に記憶されたレベルのピーク値の平均値を
算出する算出手段と、 前記記憶手段に記憶されたレベルのピーク値のうち、前
記算出手段により算出された平均値を超えるピーク値の
レベルを2個選択する選択手段と、 前記記憶手段に記憶された他のレベルが前記選択手段に
より選択された2個のレベルの発生間隔毎に存在するか
否かを検索する検索手段と、 前記検索手段が他のレベルが前記発生間隔毎に存在して
いると検知したときに、該発生間隔に基づいてテンポデ
ータを生成するテンポデータ生成手段と、 前記検索手段が他のレベルが前記発生間隔毎に存在しな
いと検知したときに、前記選択手段に前記記憶手段から
他のレベルを選択させる再選択手段と、 を備えたことを特徴とするテンポデータ生成装置。1. Extraction means for extracting a level of a specific frequency band of an input acoustic signal, storage means for sequentially storing a peak value and an occurrence time of the level extracted by the extraction means, and the storage means Calculating means for calculating an average value of the peak values of the level thus selected, and two peak value levels exceeding the average value calculated by the calculating means are selected from among the peak values of the levels stored in the storage means. Selecting means, searching means for searching whether or not another level stored in the storing means exists at every occurrence interval of the two levels selected by the selecting means; and the searching means for another level When it is detected that each of the occurrence intervals is present, tempo data generating means for generating tempo data based on the occurrence interval; And without upon detection, tempo data generating apparatus being characterized in that and a re-selecting means for selecting the other levels from the storage means to the selection means.
されたレベルのうち、特定値以上のピーク値を有するレ
ベルのピーク値のみを記憶することを特徴とする請求項
1記載のテンポデータ生成装置。2. The tempo data generation according to claim 1, wherein the storage means stores only a peak value of a level having a peak value of a specific value or more among the levels extracted by the extraction means. apparatus.
ルを抽出する抽出処理と、 前記抽出処理により抽出されたレベルのピーク値と発生
時間を順次記憶する記憶処理と、 前記記憶処理により記憶されたレベルのピーク値の平均
値を算出する算出処理と、 前記記憶処理により記憶されたレベルのピーク値のう
ち、前記算出処理により算出された平均値を超えるピー
ク値のレベルを2個選択する選択処理と、 前記記憶処理により記憶された他のレベルが前記選択処
理により選択された2個のレベルの発生間隔毎に存在す
るか否かを検索する検索処理と、 前記検索処理で他のレベルが前記発生間隔毎に存在して
いると検知されたときに、該発生間隔に基づいてテンポ
データを生成するテンポデータ生成処理と、 前記検索処理で他のレベルが前記発生間隔毎に存在しな
いと検知されたときに、前記選択処理により前記記憶処
理で記憶された他のレベルを選択させる再選択処理と、 を備えたことを特徴とするテンポデータ生成方法。3. An extraction process for extracting a level of a specific frequency band of an input acoustic signal, a storage process for sequentially storing a peak value and an occurrence time of the level extracted by the extraction process, and a storage process for the storage process. A calculation process for calculating the average value of the peak values of the selected levels, and two peak value levels exceeding the average value calculated by the calculation process are selected from the peak values of the levels stored by the storage process. A selection process; a search process for searching whether or not another level stored by the storage process exists at every two-level occurrence interval selected by the selection process; and another level in the search process. When it is detected that each is present at each of the occurrence intervals, tempo data generation processing for generating tempo data based on the occurrence interval; When it is detected that does not exist in every generation interval, the tempo data generating method, characterized in that it and a re-selecting process to select another level stored in the storing process by the selection process.
されたレベルのうち、特定値以上のピーク値を有するレ
ベルのピーク値のみを記憶することを特徴とする請求項
3記載のテンポデータ生成方法。4. The tempo data generation according to claim 3, wherein the storage processing stores only the peak value of a level having a peak value of a specific value or more among the levels extracted by the extraction processing. Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23410393A JP3455757B2 (en) | 1993-08-25 | 1993-08-25 | Tempo data generation device and tempo data generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23410393A JP3455757B2 (en) | 1993-08-25 | 1993-08-25 | Tempo data generation device and tempo data generation method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0764544A true JPH0764544A (en) | 1995-03-10 |
JP3455757B2 JP3455757B2 (en) | 2003-10-14 |
Family
ID=16965682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23410393A Expired - Fee Related JP3455757B2 (en) | 1993-08-25 | 1993-08-25 | Tempo data generation device and tempo data generation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3455757B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003263162A (en) * | 2002-03-07 | 2003-09-19 | Yamaha Corp | Method and device for estimating tempo of musical data |
JP2005274708A (en) * | 2004-03-23 | 2005-10-06 | Sony Corp | Signal processor and signal processing method, program, and recording medium |
US7373209B2 (en) | 2001-03-22 | 2008-05-13 | Matsushita Electric Industrial Co., Ltd. | Sound features extracting apparatus, sound data registering apparatus, sound data retrieving apparatus, and methods and programs for implementing the same |
JP2009014978A (en) * | 2007-07-04 | 2009-01-22 | Yamaha Corp | Musical performance clock generating device, data reproducing device, musical performance clock generating method, data reproducing method, and program |
JP2009020179A (en) * | 2007-07-10 | 2009-01-29 | Yamaha Corp | Performance clock generation device, data reproducing device, performance clock generation method, data reproducing method, and program |
-
1993
- 1993-08-25 JP JP23410393A patent/JP3455757B2/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373209B2 (en) | 2001-03-22 | 2008-05-13 | Matsushita Electric Industrial Co., Ltd. | Sound features extracting apparatus, sound data registering apparatus, sound data retrieving apparatus, and methods and programs for implementing the same |
JP2003263162A (en) * | 2002-03-07 | 2003-09-19 | Yamaha Corp | Method and device for estimating tempo of musical data |
JP2005274708A (en) * | 2004-03-23 | 2005-10-06 | Sony Corp | Signal processor and signal processing method, program, and recording medium |
US7868240B2 (en) | 2004-03-23 | 2011-01-11 | Sony Corporation | Signal processing apparatus and signal processing method, program, and recording medium |
JP4650662B2 (en) * | 2004-03-23 | 2011-03-16 | ソニー株式会社 | Signal processing apparatus, signal processing method, program, and recording medium |
JP2009014978A (en) * | 2007-07-04 | 2009-01-22 | Yamaha Corp | Musical performance clock generating device, data reproducing device, musical performance clock generating method, data reproducing method, and program |
JP2009020179A (en) * | 2007-07-10 | 2009-01-29 | Yamaha Corp | Performance clock generation device, data reproducing device, performance clock generation method, data reproducing method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP3455757B2 (en) | 2003-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3245890B2 (en) | Beat detection device and synchronization control device using the same | |
JP2004533016A (en) | Music score tracking method and apparatus | |
WO2004029927A2 (en) | System and method for generating an audio thumbnail of an audio track | |
JPS619883A (en) | Device for generating synchronizing signal | |
KR950004253A (en) | Karaoke device back chorus playback device | |
CA1130922A (en) | Digital waveform generating apparatus | |
JP3455757B2 (en) | Tempo data generation device and tempo data generation method | |
JPH0926791A (en) | Musical sound generating method and waveform storing method | |
US6169243B1 (en) | Automatic performance apparatus with quick start by accelerated loading of setting data | |
JPH07121181A (en) | Sound information processor | |
JP3132038B2 (en) | Chord discriminating apparatus and automatic accompaniment apparatus using the same | |
JP3127406B2 (en) | Tempo detection device | |
JP3185266B2 (en) | Music generator | |
JP3714397B2 (en) | Waveform data processing apparatus and waveform data processing method | |
JP3118863B2 (en) | Musical tone generator using scale detection device | |
JP3740717B2 (en) | Tone generator and musical sound generation method | |
JP3120468B2 (en) | Scale detecting device and musical tone generating device using the same | |
JPH04141693A (en) | Synchronizing signal generator for music | |
US6421637B1 (en) | Pitch shifting apparatus and method | |
JP2797632B2 (en) | Music image information processing device | |
JPH0413187A (en) | Musical sound generating device with voice changer function | |
JPH052391A (en) | Signal processor | |
JPH048081A (en) | Music picture information processing unit | |
JPH0916169A (en) | Automatic playing device | |
JP2604695B2 (en) | Computer device with intermediate address interrupt |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080801 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080801 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090801 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100801 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120801 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |