JP2021156975A - Tempo detector, method, and program - Google Patents
Tempo detector, method, and program Download PDFInfo
- Publication number
- JP2021156975A JP2021156975A JP2020055114A JP2020055114A JP2021156975A JP 2021156975 A JP2021156975 A JP 2021156975A JP 2020055114 A JP2020055114 A JP 2020055114A JP 2020055114 A JP2020055114 A JP 2020055114A JP 2021156975 A JP2021156975 A JP 2021156975A
- Authority
- JP
- Japan
- Prior art keywords
- tempo
- music
- value
- autocorrelation value
- waveform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title abstract description 110
- 238000001514 detection method Methods 0.000 claims abstract description 120
- 238000004364 calculation method Methods 0.000 claims abstract description 26
- 239000006185 dispersion Substances 0.000 claims description 2
- 238000001914 filtration Methods 0.000 claims description 2
- 230000002194 synthesizing effect Effects 0.000 claims description 2
- 230000033764 rhythmic process Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000000470 constituent Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
Description
本発明は、楽曲の波形データからテンポを検出する技術に関する。 The present invention relates to a technique for detecting a tempo from waveform data of a musical piece.
楽曲の波形データから楽曲のテンポを検出する場合に、楽曲の波形データに係る入力データに対する自己相関演算により算出された周期性に基づいて、楽曲のテンポを判定する技術が知られている(例えば、特許文献1)。 When detecting the tempo of a musical piece from the musical piece waveform data, a technique for determining the tempo of the musical piece is known based on the periodicity calculated by the autocorrelation calculation for the input data related to the musical piece waveform data (for example). , Patent Document 1).
しかしながら、上記の従来技術においては、楽曲に特有の強度変化を含む場合などでは正確にテンポを検出するのが難しかった。 However, in the above-mentioned conventional technique, it is difficult to accurately detect the tempo when the intensity change peculiar to the music is included.
そこで、本発明は、テンポをより正確に検出することを目的とする。 Therefore, an object of the present invention is to detect the tempo more accurately.
態様の一例では、楽曲の波形データから波形強度の分布を示す楽曲波形強度データを取得し、楽曲波形強度データに基づく自己相関を検出して周期毎の強度を示す基本自己相関値を算出し、楽曲に対応する拍子を指定し、基本自己相関値の周期を指定された拍子に基づいて決められる倍率で変更した計算用自己相関値を算出し、基本自己相関値に対して計算用自己相関値を重み付け加算した検出用自己相関値が最大となる部分を特定し、特定した部分に対応する周期を楽曲のテンポとして検出する、制御部を備える。 In one example of the embodiment, music waveform intensity data indicating the distribution of waveform intensity is acquired from music waveform data, autocorrelation based on music waveform intensity data is detected, and a basic autocorrelation value indicating intensity for each cycle is calculated. The calculation autocorrelation value is calculated by specifying the beat corresponding to the music and changing the period of the basic autocorrelation value at a magnification determined based on the specified beat, and the calculation autocorrelation value with respect to the basic autocorrelation value. A control unit is provided that identifies the portion where the autocorrelation value for detection is maximized by weighting and adding the above, and detects the period corresponding to the identified portion as the tempo of the music.
本発明によれば、テンポをより正確に検出することが可能となる。 According to the present invention, the tempo can be detected more accurately.
以下、本発明を実施するためのテンポ検出方法およびタイミング同期方法の実施形態について図面を参照しながら詳細に説明する。図1は、本実施形態におけるテンポ検出方法の処理ブロック図である。テンポ検出方法は、
ステップS101:音声入力処理
ステップS102:エンベロープ検出処理
ステップS103:ビート波形検出処理
ステップS104:ビート強度検出処理
ステップS105:自己相関検出処理
ステップS106:テンポ決定処理
から構成される。
Hereinafter, embodiments of the tempo detection method and the timing synchronization method for carrying out the present invention will be described in detail with reference to the drawings. FIG. 1 is a processing block diagram of the tempo detection method in the present embodiment. The tempo detection method is
Step S101: Voice input processing Step S102: Envelope detection processing Step S103: Beat waveform detection processing Step S104: Beat intensity detection processing Step S105: Autocorrelation detection processing Step S106: Tempo determination processing.
まず、ステップS101の音声入力処理は、マイク入力装置等から入力した音声を、一定のサンプリング周期(例えば、44.1KHz(キロヘルツ))でA/D(アナログ/デジタル)変換し、楽曲波形データを取得する。 First, in the audio input process of step S101, the audio input from the microphone input device or the like is A / D (analog / digital) converted at a constant sampling cycle (for example, 44.1 KHz (kilohertz)), and the music waveform data is converted. get.
次に、ステップS102のエンベロープ検出処理は、ステップS101の音声入力処理が取得した楽曲波形データを、一定のサンプル数(例えば、128サンプル)毎にブロック分割し、各ブロック毎に楽曲波形データの絶対値の平均である楽曲波形強度を算出する。更に、エンベロープ検出処理は、算出した楽曲波形強度に、弱い(カットオフ周波数の高い)ローパスフィルタ処理を実行することで、そのローパスフィルタ処理の演算結果として、エンベロープ波形を取得する。 Next, in the envelope detection process of step S102, the music waveform data acquired by the voice input process of step S101 is divided into blocks for each fixed number of samples (for example, 128 samples), and the absolute music waveform data is absolute for each block. Calculate the music waveform intensity, which is the average of the values. Further, the envelope detection process executes a weak (high cutoff frequency) low-pass filter process on the calculated music waveform intensity, and acquires an envelope waveform as a calculation result of the low-pass filter process.
次に、ステップS103のビート波形検出処理は、ステップS102のエンベロープ検出処理が算出した楽曲波形強度に対して、強い(カットオフ周波数の低い)ローパスフィルタ処理を実行し、サンプリング時刻が一致するサンプル同士で、エンベロープ波形から上記強いローパスフィルタ処理の演算結果を減算することで、その減算結果としてビート波形を取得する。 Next, in the beat waveform detection process of step S103, a strong (low cutoff frequency) low-pass filter process is executed on the music waveform intensity calculated by the envelope detection process of step S102, and the samples having the same sampling time are used. Then, by subtracting the calculation result of the strong low-pass filter processing from the envelope waveform, the beat waveform is acquired as the subtraction result.
図2(a)は、ビート波形の例を示すグラフ図である。棒グラフ201の部分がエンベロープ波形である。折れ線グラフ202の部分が楽曲波形強度に強いローパスフィルタ処理を実行した結果を示しており、折れ線グラフ203がエンベロープ波形201から上記強いローパスフィルタ処理の結果202を対応するサンプル同士で減算して得られたビート波形(2倍拡大)である。ビート波形はエンベロープ波形からテンポと相関の低い定常波部が取り除かれた結果となっていることが理解される。
FIG. 2A is a graph showing an example of a beat waveform. The part of the
ステップS104のビート強度検出処理は、ステップS103で算出されたビート波形の絶対値にローパスフィルタ処理を実行し、その処理結果としてビート強度を算出する。 In the beat intensity detection process of step S104, a low-pass filter process is executed on the absolute value of the beat waveform calculated in step S103, and the beat intensity is calculated as the processing result.
ここで、楽曲のテンポを、1分間あたりの拍数の単位:bpm(beats per minute)で表し、「テンポは60bpmである。」というような言い方をする。これは、1分間に60拍がカウントされる楽曲のテンポ(速さ)を示す。そして、図1において、ステップS105の自己相関検出処理は、テンポのbpm値から算出される楽曲の1小節分の時間長でのビート波形の自己相関値(基本自己相関値)を算出する。例えば、楽曲を4拍子とし、テンポ値をBPMとすると、1小節分の時間長TL(秒)は、
TL=60×4/BPM
となる。そして、楽曲の波形強度を算出する際の1ブロックのサンプル数をSPBとし、サンプリング周期(サンプル数/秒)をSPRとすると、ビート波形での1小節分のブロック数BLは、
BL=SPR×TL/SPB
として算出される。そして、ステップS105では、ビート波形のBL間隔での自己相関値が算出される。
Here, the tempo of the music is expressed by the unit of the number of beats per minute: bpm (beats per minute), and is expressed as "the tempo is 60 bpm." This indicates the tempo (speed) of a musical piece in which 60 beats are counted per minute. Then, in FIG. 1, the autocorrelation detection process in step S105 calculates the autocorrelation value (basic autocorrelation value) of the beat waveform at the time length of one bar of the music calculated from the bpm value of the tempo. For example, if the music is in 4 beats and the tempo value is BPM, the time length TL (seconds) for one measure is
TL = 60 × 4 / BPM
Will be. Then, assuming that the number of samples in one block when calculating the waveform intensity of the music is SPB and the sampling period (number of samples / second) is SPR, the number of blocks BL for one bar in the beat waveform is
BL = SPR x TL / SPB
Is calculated as. Then, in step S105, the autocorrelation value of the beat waveform at the BL interval is calculated.
図2(b)は、ステップS105で算出される自己相関値の例を示すグラフ図で、テンポ値130bpmのダンスミュージック曲の解析結果例である。横軸はbpm値で、検出範囲を60bpmから180bpmとしている。楽曲本来のテンポ値130bpm(4拍時間長)の位置204の他に、104bpm(5拍時間長)や173bpm(3拍時間長)等の位置にも強い相関が現れており、173bpmの位置205がこのグラフ図における自己相関値の最大値となってしまい、このままでは正確にテンポ検出することはできない。
FIG. 2B is a graph showing an example of the autocorrelation value calculated in step S105, and is an example of an analysis result of a dance music song having a tempo value of 130 bpm. The horizontal axis is the bpm value, and the detection range is from 60 bpm to 180 bpm. In addition to the
そこで、図1のステップS106のテンポ決定処理では、ステップS105の自己相関検出処理にて算出された各bpm位置の自己相関値に4/5倍bpm及び4/3倍bpmの自己相関値(計算用自己相関値)を重み付け加算し、この重み付け加算の結果得られる自己相関値(検出用自己相関値)が最大となるbpm値がテンポとして決定される。 Therefore, in the tempo determination process of step S106 of FIG. 1, the autocorrelation values of 4/5 times bpm and 4/3 times bpm (calculation) are added to the autocorrelation values of each bpm position calculated by the autocorrelation detection process of step S105. The autocorrelation value for detection) is weighted and added, and the bpm value at which the autocorrelation value (autocorrelation value for detection) obtained as a result of this weighting addition is maximized is determined as the tempo.
いま、あるbpm位置での自己相関値をACR[bpm]とすると、重み付け加算された自己相関値WACR[bpm]は、
計算例1:WACR[bpm]=ACR[bpm]
+((ACR[bpm×4/5]
+ACR[bpm×4/3])/2
−ACR[bpm])×WCF
計算例2:WACR[bpm]=ACR[bpm]
+((ACR[bpm×4/5]
+ACR[bpm×4/3])/2×WCF
となる。なお、bpm×4/5がbpmの検出範囲の下限未満の場合は、
WACR[bpm]=ACR[bpm]
+(ACR[bpm×4/3]
−ACR[bpm])×WCF
とし、bpm×4/3がbpmの検出範囲の上限を超える場合は、
WACR[bpm]=ACR[bpm]
+(ACR[bpm×4/5]
−ACR[bpm])×WCF
とする。
ここで、WCFは、ステップS104で算出されたビート強度に基づいて決定される0.0以上0.5以下の重み付け係数である。例えば、ビート強度(以下、この値を「BS」と呼ぶ)が0から4095の値を取るとすると、
BSが1024以下の場合は、WCF=0.0
BSが3096以上の場合は、WCF=0.5
BSが上記以外の場合は、WCF=(BS−1024)/4096
などとしてよい。
Now, assuming that the autocorrelation value at a certain bpm position is ACR [bpm], the weighted autocorrelation value WACR [bpm] is
Calculation example 1: WACR [bpm] = ACR [bpm]
+ ((ACR [bpm x 4/5]]
+ ACR [bpm x 4/3]) / 2
-ACR [bpm]) x WCF
Calculation example 2: WACR [bpm] = ACR [bpm]
+ ((ACR [bpm x 4/5]]
+ ACR [bpm x 4/3]) / 2 x WCF
Will be. If bpm x 4/5 is less than the lower limit of the bpm detection range,
WACR [bpm] = ACR [bpm]
+ (ACR [bpm x 4/3]
-ACR [bpm]) x WCF
If bpm x 4/3 exceeds the upper limit of the detection range of bpm,
WACR [bpm] = ACR [bpm]
+ (ACR [bpm x 4/5]
-ACR [bpm]) x WCF
And.
Here, WCF is a weighting coefficient of 0.0 or more and 0.5 or less, which is determined based on the beat intensity calculated in step S104. For example, if the beat intensity (hereinafter, this value is referred to as "BS") takes a value from 0 to 4095,
If BS is 1024 or less, WCF = 0.0
If BS is 3096 or more, WCF = 0.5
If BS is other than the above, WCF = (BS-1024) / 4096
And so on.
図2(c)は、ステップS106により重み付け加算された自己相関値の例を示すグラフ図であり、図2(b)の場合と同じ楽曲の解析結果例である。4/5倍bpm位置(5拍時間長)や4/3倍bpm位置(3拍時間長)での自己相関値が抑えられ、楽曲本来のテンポ値130bpm(4拍時間長)の位置206と自己相関値が最大値をとる位置207とが一致し、正確にテンポ検出が行われたことが理解される。
FIG. 2C is a graph showing an example of autocorrelation values weighted and added in step S106, and is an example of analysis results of the same music as in FIG. 2B. The self-correlation value at the 4/5 times bpm position (5 beat time length) and the 4/3 times bpm position (3 beat time length) is suppressed, and the original tempo value of the song is 130 bpm (4 beat time length) at
上述したテンポ決定処理は、4拍子を前提として4/5倍bpm位置及び4/3倍bpm位置の自己相関値を重み付け加算したが、後述のタイミング同期方法における拍子検出処理にて3拍子と判定された場合は、3/4倍bpm位置及び3/2倍bpm位置の自己相関値が重み付け加算される。 In the tempo determination process described above, the autocorrelation values of the 4/5 times bpm position and the 4/3 times bpm position were weighted and added on the premise of 4 beats, but it was determined to be 3 beats by the beat detection process in the timing synchronization method described later. If so, the autocorrelation values of the 3/4 times bpm position and the 3/4 times bpm position are weighted and added.
図3は、本実施形態におけるタイミング同期方法の処理ブロック図である。タイミング同期方法は、
ステップS301:拍子検出処理(1拍時間タイミングレベル算出)
ステップS302:同期オフセット時間検出処理(1小節タイミングレベル算出)
から構成される。
FIG. 3 is a processing block diagram of the timing synchronization method in the present embodiment. The timing synchronization method is
Step S301: Beat detection process (calculation of 1 beat time timing level)
Step S302: Synchronous offset time detection process (1 bar timing level calculation)
Consists of.
まず、ステップS301の拍子検出処理は、図1のテンポ検出処理により得られた1小節の1/3(3拍子)および1/4(4拍子)の時間長での繰返しで、タイミングレベルを検出する。 First, in the time signature detection process of step S301, the timing level is detected by repeating the time signature of 1/3 (3 beats) and 1/4 (4 beats) of one bar obtained by the tempo detection process of FIG. do.
ステップS301で、タイミングレベルは、図1のステップS103のビート波形検出処理で検出されたビート波形(例えば、図2(a)の203)の現在値から前回値を減算して得られる値が、負の場合は値0、正の場合はその値に対して1拍時間分解能毎にローパスフィルタをかけて得られる値である。 In step S301, the timing level is a value obtained by subtracting the previous value from the current value of the beat waveform (for example, 203 in FIG. 2A) detected by the beat waveform detection process in step S103 of FIG. If it is negative, the value is 0, and if it is positive, it is a value obtained by applying a low-pass filter to the value for each beat time resolution.
ステップS301で、例えば1拍の時間分解能を96とすると、1/3時間長(3拍子)では1小節時間長が96×3=288のタイミングに分解され、1/4時間長(4拍子)では1小節時間長が96×4=384のタイミングに分解されて、1拍の時間分解能(96)毎の各タイミングレベル値が算出される。 In step S301, for example, assuming that the time resolution of one beat is 96, the time length of one bar is decomposed into the timing of 96 × 3 = 288 for 1/3 hour length (3 beats), and 1/4 hour length (4 beats). Then, the time length of one bar is decomposed into the timing of 96 × 4 = 384, and each timing level value for each time resolution (96) of one beat is calculated.
そして、ステップS301において、得られたタイミングレベルの最大値と最小値との差の大小が比較され、拍子が決定される。つまり、1/3時間長のタイミングレベル値の最大値−最小値の方が、1/4時間長のタイミングレベル値の最大値−最小値よりも大きい場合は楽曲は3拍子であると決定される。逆に、1/4時間長のタイミングレベル値の最大値−最小値の方が、1/3時間長のタイミングレベル値の最大値−最小値よりも大きい場合は楽曲は4拍子であると決定される。 Then, in step S301, the magnitude of the difference between the maximum value and the minimum value of the obtained timing level is compared, and the time signature is determined. That is, if the maximum value-minimum value of the timing level value of 1/3 hour length is larger than the maximum value-minimum value of the timing level value of 1/4 hour length, the music is determined to be in triple time. NS. On the contrary, if the maximum value-minimum value of the timing level value of 1/4 hour length is larger than the maximum value-minimum value of the timing level value of 1/3 hour length, it is determined that the music is in 4 beats. Will be done.
なお、ステップS301の拍子検出処理は、上記タイミングレベルの偏差によって楽曲の拍子を決定してもよい。更に、上記と同様の方法で、5拍子、7拍子等も検出可能である。 In the time signature detection process of step S301, the time signature of the music may be determined by the deviation of the timing level. Further, 5 beats, 7 beats and the like can be detected by the same method as described above.
図4は、3拍子の楽曲例に対して、図3のステップS301の拍子検出処理で検出されたタイミングレベルの例を示すグラフ図である。図4(a)は、1小節長、図4(b)は1/2小節長、図4(c)は1/3小節長、図4(d)は1/4小節長である。図4(c)に示される1小節の1/3時間長におけるタイミングレベル値の最大値−最小値は、図4(d)に示される1/4時間長におけるタイミングレベル値の最大値−最小値よりも大きいことから、楽曲は3拍子であると判定され、正しく楽曲の拍子が検出される。 FIG. 4 is a graph showing an example of the timing level detected by the time signature detection process in step S301 of FIG. 3 with respect to an example of a musical piece having three beats. 4 (a) is 1 bar length, FIG. 4 (b) is 1/2 bar length, FIG. 4 (c) is 1/3 bar length, and FIG. 4 (d) is 1/4 bar length. The maximum value-minimum value of the timing level value in the 1/3 hour length of one bar shown in FIG. 4 (c) is the maximum value-minimum value of the timing level value in the 1/4 hour length shown in FIG. 4 (d). Since it is larger than the value, it is determined that the music has three beats, and the beat of the music is detected correctly.
図5は、4拍子の楽曲例に対して、図3のステップS301の拍子検出処理で検出されたタイミングレベルの例を示すグラフ図である。図5(a)は、1小節長、図5(b)は1/2小節長、図5(c)は1/3小節長、図5(d)は1/4小節長である。図5(d)に示される1小節の1/4時間長におけるタイミングレベル値の最大値−最小値は、図5(c)に示される1/3時間長におけるタイミングレベル値の最大値−最小値よりも大きいことから、楽曲は4拍子であると判定され、正しく楽曲の拍子が検出される。 FIG. 5 is a graph showing an example of the timing level detected by the time signature detection process in step S301 of FIG. 3 with respect to an example of a four-beat music piece. 5 (a) is 1 bar length, FIG. 5 (b) is 1/2 bar length, FIG. 5 (c) is 1/3 bar length, and FIG. 5 (d) is 1/4 bar length. The maximum value-minimum value of the timing level value in the 1/4 hour length of one bar shown in FIG. 5 (d) is the maximum value-minimum value of the timing level value in the 1/3 hour length shown in FIG. 5 (c). Since it is larger than the value, it is determined that the music has four beats, and the beat of the music is detected correctly.
図3の説明に戻り、ステップS302の同期オフセット時間検出処理は、図1のテンポ検出処理により検出されたテンポbpm値により算出される1小節時間長(図1のステップS104の説明を参照)毎にタイミングレベルを検出する。 Returning to the description of FIG. 3, the synchronous offset time detection process of step S302 is performed for each bar time length (see the description of step S104 of FIG. 1) calculated from the tempo bpm value detected by the tempo detection process of FIG. Detects the timing level.
ステップS302において、例えば1拍の分解能を96とすると、図3のステップS301の拍子検出処理の結果が3拍子の場合には、1小節時間長が96×3=288のタイミングに分解され、その結果が4拍子の場合には、1小節時間長が96×4=384のタイミングに分解されて、各タイミング毎のタイミングレベル値が算出される。 In step S302, for example, assuming that the resolution of one beat is 96, when the result of the time signature detection process of step S301 in FIG. 3 is three beats, the time length of one bar is decomposed into the timing of 96 × 3 = 288, which is the timing. When the result is four beats, the time length of one bar is decomposed into timings of 96 × 4 = 384, and the timing level value for each timing is calculated.
そして、ステップS302において、上述のようにして得られたタイミングレベル値が最大値となるタイミングが、同期オフセット時間として検出される。ここで、同期オフセット時間は1小節時間長の繰返しで処理されるタイミングレベル検出における、楽曲本来の1小節先頭の開始時間である。 Then, in step S302, the timing at which the timing level value obtained as described above becomes the maximum value is detected as the synchronization offset time. Here, the synchronization offset time is the start time of the beginning of one bar, which is the original of the music, in the timing level detection processed by repeating the time length of one bar.
また、図3のステップS301の拍子検出処理で、楽曲が4拍子であると判定された場合、ステップS302の同期オフセット時間検出処理は、1小節の1/2時間長でタイミングレベルが検出され、そのレベル値が最大値となるタイミングT1と、T1から更に1小節の1/2時間を加算したタイミングT2における1小節時間長でのタイミングレベル値を比較し、大きい方のタイミングレベル値を同期オフセット時間としてもよい。このようなアルゴリズムにより、4拍裏等に定常的に入るアクセントから同期オフセット時間を誤検知する可能性を軽減することができる。 Further, when the time signature detection process of step S301 in FIG. 3 determines that the music has four beats, the synchronization offset time detection process of step S302 detects the timing level at a length of 1/2 hour of one bar. The timing T1 at which the level value becomes the maximum value and the timing level value at the timing T2 at which 1/2 hour of one bar is added from T1 are compared, and the larger timing level value is synchronized offset. It may be time. With such an algorithm, it is possible to reduce the possibility of erroneously detecting the synchronization offset time from an accent that constantly enters the back of the 4th beat.
上述のステップS302の同期オフセット時間検出処理では、同期単位が1小節時間長とされたが、同期単位が1拍時間長とされる場合は、ステップS301の拍子検出処理における1拍時間長でタイミングレベル値が最大となるタイミングが同期オフセット時間とされてよい。 In the synchronization offset time detection process of step S302 described above, the synchronization unit is set to one bar time length, but when the synchronization unit is set to one beat time length, the timing is set to one beat time length in the beat detection process of step S301. The timing at which the level value becomes maximum may be the synchronization offset time.
図3の拍/小節のタイミング同期方法は図1のテンポ検出処理で検出された1小節の時間長に基づいて処理を実行するため、検出されたテンポが変化した場合、処理がやり直しとなることにより、同期が完了するまでに時間がかかってしまうという問題がある。 Since the beat / bar timing synchronization method of FIG. 3 executes the process based on the time length of one bar detected by the tempo detection process of FIG. 1, if the detected tempo changes, the process will be redone. Therefore, there is a problem that it takes time to complete the synchronization.
このため、図3のテンポ検出処理のステップS103のビート波形検出処理にて得られるビート波形を、検出可能とする最低テンポ値のn(nは2以上の整数)小節時間分バッファリングしておき、テンポが変化したタイミングで新しいテンポのn小節時間分の処理を、バッファリングしておいたデータを用いて遡って実行し直すことにより、速やかに同期を再開することができるようになる。 Therefore, the beat waveform obtained by the beat waveform detection process in step S103 of the tempo detection process of FIG. 3 is buffered for the bar time of n (n is an integer of 2 or more), which is the lowest tempo value that can be detected. By re-executing the processing for n measures of the new tempo at the timing when the tempo changes, using the buffered data, the synchronization can be resumed promptly.
図3のステップS301の拍子検出処理にて楽曲が3拍子であると判定された場合、本実施形態における図1のテンポ検出方法の自己相関検出処理の検出単位は4拍子を前提とするテンポbpm値であるため、検出bpm値を3/4倍して報告するものとする。 When it is determined in the beat detection process of step S301 of FIG. 3 that the music has 3 beats, the detection unit of the autocorrelation detection process of the tempo detection method of FIG. 1 in the present embodiment is tempo bpm assuming 4 beats. Since it is a value, the detected bpm value shall be multiplied by 3/4 and reported.
図6は、図1のテンポ検出方法の処理ブロック及び図3のタイミング同期方法の処理ブロックを実現可能なコンピュータのハードウェア構成の一例を示す図である。このコンピュータは、通常のパーソナルコンピュータのほか、スマートフォン、タブレット端末、デジタルカメラなどを含む。図6に示されるコンピュータは、CPU(Central Processing Unit)601、メモリ602、入力装置603、出力装置604、補助情報記憶装置605、可搬型記録媒体609が挿入される媒体駆動装置606、及びネットワーク接続装置607を有する。これらの構成要素は、バス608により相互に接続されている。図6に示される構成は図1のテンポ検出方法の処理ブロック及び図3のタイミング同期方法の処理ブロックを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
FIG. 6 is a diagram showing an example of a computer hardware configuration capable of realizing the processing block of the tempo detection method of FIG. 1 and the processing block of the timing synchronization method of FIG. This computer includes a smartphone, a tablet terminal, a digital camera, etc. in addition to a normal personal computer. The computer shown in FIG. 6 includes a CPU (Central Processing Unit) 601, a
メモリ602は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。
The
CPU(プロセッサ)601(制御部)は、例えば、メモリ602を利用して、図1のテンポ検出方法の処理ブロック及び図3のタイミング同期方法の処理ブロックに用いられる例えば図8乃至図11のフローチャートの処理に対応するプログラムを実行することにより、図1及び図2の各処理ブロックとして動作する。
The CPU (processor) 601 (control unit) is used, for example, in the processing block of the tempo detection method of FIG. 1 and the processing block of the timing synchronization method of FIG. 3, using the
入力装置603は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置604は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問合せ又は処理結果の出力に用いられる。
The
補助情報記憶装置605は、例えば、ハードディスク記憶装置、磁気ディスク記憶装置、光ディスク装置、光磁気ディスク装置、テープ装置、又は半導体記憶装置である。図1のテンポ検出方法の処理ブロック及び図3のタイミング同期方法の処理ブロックは、補助情報記憶装置605に図1及び図3の各処理ブロックに用いられる例えば図7乃至図11のフローチャートの処理を実行するプログラム及びデータを格納しておき、それらをメモリ602にロードして使用することができる。
The auxiliary
媒体駆動装置606は、可搬型記録媒体609を駆動し、その記録内容にアクセスする。可搬型記録媒体609は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体609は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体609に上述のプログラム及びデータを格納しておき、メモリ602にロードして使用することができる。
The
このように、上述のプログラム及びデータを格納するコンピュータ読取り可能な記録媒体は、メモリ602、補助情報記憶装置605、又は可搬型記録媒体609のような、物理的な(非一時的な)記録媒体である。
As described above, the computer-readable recording medium for storing the above-mentioned programs and data is a physical (non-temporary) recording medium such as a
ネットワーク接続装置607は、例えばLocal Area Network(LAN)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。図6のコンピュータは、上述のプログラム又はデータを外部の装置からネットワーク接続装置607を介して受信し、それらをメモリ602にロードして使用することができる。
The
なお、図1及び図3の各処理ブロックが図6の全ての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、オペレータ又はユーザからの指示又は情報を入力する必要がない場合は、入力装置603が省略されてもよい。可搬型記録媒体609又は通信ネットワークを利用しない場合は、媒体駆動装置606又はネットワーク接続装置607が省略されてもよい。
It is not necessary for each of the processing blocks of FIGS. 1 and 3 to include all the components of FIG. 6, and some components may be omitted depending on the application or conditions. For example, the
図7は、図6の構成例を有するコンピュータによって実行される、テンポ検出/タイミング同期処理の例を示すメインフローチャートである。この処理は、図6において、CPU601が、補助情報記憶装置605などに記憶されたテンポ検出/タイミング同期処理プログラムをメモリ602にロードして実行する処理である。以下、随時図6を参照して説明する。
FIG. 7 is a main flowchart showing an example of tempo detection / timing synchronization processing executed by a computer having the configuration example of FIG. In FIG. 6, this process is a process in which the
図7において、CPU601はまず、テンポ変数値を0(未定)に、拍子変数値を4拍子を示す値4に、また、同期オフセット時間変数値を0に、それぞれ初期設定する(ステップS701)。これらの変数値は、メモリ602に記憶される。
In FIG. 7, the
その後、CPU601は、ステップS702からステップS705の一連の処理を繰り返し実行する。
After that, the
上記一連の処理において、CPU601はまず、テンポ検出処理を実行し、メモリ602に記憶されているテンポ変数に、未定値0、或いは、60bpmから180bpmの間の値を算出して設定する(ステップS702)。この処理の詳細例については、図8を用いて後述する。
In the above series of processes, the
上記一連の処理において、次にCPU601は、ユーザが入力装置603を構成する一部の特には図示しないスイッチなどにより、テンポ検出/タイミング同期処理の終了を指示したか否かを判定する(ステップS703)。
In the above series of processes, the
ステップS703の判定がYESならば、CPU601は、図7のメインフローチャートで示されるテンポ検出/タイミング同期処理を終了し、特には図示しない上位に制御プログラムの処理に戻る。
If the determination in step S703 is YES, the
ステップS703の判定がNOならば、CPU601は、ステップS702のテンポ検出処理により検出されたメモリ602上のテンポ変数値が0でないか否かを判定する(ステップS704)。
If the determination in step S703 is NO, the
テンポ変数値が未定値0(ステップS704の判定がNO)である場合には、CPU601は、制御をステップS702に戻して前述した一連の処理の繰返しを続行する。
When the tempo variable value is an undecided value 0 (the determination in step S704 is NO), the
テンポ変数値が未定値0以外(ステップS704の判定がYES)である場合には、CPU601は、タイミング同期処理を実行することにより、メモリ602に記憶されている拍子変数に3拍子、4拍子、又は5拍子の何れかを示す値3、4、又は5を取得し、また、メモリ602に記憶されている同期オフセット時間変数に、値0からn(nは自然数)の何れかを算出して設定する。
When the tempo variable value is other than the undecided value 0 (the determination in step S704 is YES), the
その後、CPU601は、制御をステップS702に戻して前述した一連の処理の繰返しを続行する。
After that, the
図8は、図7のステップS702のテンポ検出処理の詳細例を示すフローチャートである。ここでは、CPU601は、図1の各処理ブロックで説明したのと同様のテンポ検出処理を実行する。
FIG. 8 is a flowchart showing a detailed example of the tempo detection process in step S702 of FIG. Here, the
即ちまず、CPU601は、図1のステップS101と同様の、音声入力処理を実行する(ステップS801)。ステップS801の処理において、CPU601は、ユーザが入力装置603の一部を構成するマイク入力装置等から入力した音声を、同じく入力装置603の一部を構成する特には図示しないA/D(アナログ/デジタル)コンバータによって、一定のサンプリング周期(例えば、44.1KHz(キロヘルツ))でA/D変換し、楽曲波形データを取得し、メモリ602に記憶させる。
That is, first, the
次に、CPU601は、図1のステップS102と同様の、エンベロープ検出処理を実行する(ステップS802)。ステップS802の処理において、CPU601は、ステップS801の音声入力処理が取得しメモリ602に記憶させた楽曲波形データを、一定のサンプル数(例えば、128サンプル)毎にブロック分割し、各ブロック毎に楽曲波形データの絶対値の平均である楽曲波形強度データを順次算出し、メモリ602に記憶させる。更に、CPU601は、算出しメモリ602に記憶させた楽曲波形強度データを順次読み出しながら、それに対して弱い(カットオフ周波数の高い)ローパスフィルタ処理を実行し、そのローパスフィルタ処理の演算結果として、エンベロープ波形データを順次取得し、メモリ602に記憶させる。
Next, the
次に、CPU601は、ステップS103と同様のビート波形検出処理を実行する(ステップS803)。ステップS803の処理において、CPU601は、ステップS802のエンベロープ検出処理で算出しメモリ602に記憶させた楽曲波形強度データを順次読出しながら、それに対して強い(カットオフ周波数の低い)ローパスフィルタ処理を実行し、サンプリング時刻が一致するサンプル同士で、メモリ602から順次読み出したエンベロープ波形データのサンプルから上記強いローパスフィルタ処理の演算結果データのサンプルを減算することで、その減算結果としてビート波形データを順次取得し、メモリ602に記憶させる。
Next, the
続いて、CPU601は、図1のステップS104と同様の、ビート強度検出処理を実行する(ステップS804)。ステップS804の処理において、CPU601は、ステップS803で算出しメモリ602に記憶させたビート波形データを順次読み出し、その各サンプルの絶対値を算出し、その絶対値にローパスフィルタ処理を実行し、その処理結果としてビート強度データを算出し、メモリ602に記憶させる。
Subsequently, the
続いて、CPU601は、図1のステップS105と同様の、自己相関検出処理を実行する(ステップS805)。ステップS805の処理において、CPU601は、想定されるテンポ範囲の各bpm値から算出される楽曲の1小節分の時間長でのビート波形の自己相関値を算出する。
Subsequently, the
そして、CPU601は、図1のステップS106と同様の、テンポ決定処理を実行する(ステップS806)。ステップS806の処理の後、CPU601は、図8のフローチャートで示される図7のステップS702のテンポ検出処理を終了する。
Then, the
図9は、図8のステップS906のテンポ決定処理の詳細例を示すフローチャートである。 FIG. 9 is a flowchart showing a detailed example of the tempo determination process in step S906 of FIG.
図9において、まずCPU601は、ユーザが入力装置603の一部を構成するスイッチによって3拍子を指定することにより、メモリ602に設定された拍子変数の値が、3であるか否かを判定する(ステップS901)。
In FIG. 9, the
ステップS901の判定がYESならば、CPU601は、図8のステップS805の自己相関検出処理にて算出されメモリ602に記憶されている各bpm位置の自己相関値に、3/2倍bpm及び3/4倍のbpmの自己相関値を重み付け加算する(ステップS902)。
If the determination in step S901 is YES, the
ステップS901の判定がNOならば、CPU601は、ユーザが入力装置603の一部を構成するスイッチによって5拍子を指定することにより、メモリ602に設定された拍子変数の値が、5であるか否かを判定する(ステップS903)。
If the determination in step S901 is NO, the
ステップS903の判定がYESならば、CPU601は、図8のステップS805の自己相関検出処理にて算出されメモリ602に記憶されている各bpm位置の自己相関値に、5/4倍bpm及び5/6倍のbpmの自己相関値を重み付け加算する(ステップS904)。
If the determination in step S903 is YES, the
ステップS903の判定がNOならば、ユーザが入力装置603の一部を構成するスイッチによって4拍子を指定することにより、メモリ602に設定された拍子変数の値が4になっている。この場合、CPU601は、図8のステップS805の自己相関検出処理にて算出されメモリ602に記憶されている各bpm位置の自己相関値に、4/3倍bpm及び4/5倍のbpmの自己相関値を重み付け加算する(ステップS905)。
If the determination in step S903 is NO, the value of the time signature variable set in the
ステップS902、S904、又はS905の処理の後、CPU601は、ステップS902、S904、又はS905の処理での重み付け加算の結果得られる自己相関値が最大となるbpm値を検出する(ステップS906)。
After the processing of steps S902, S904, or S905, the
そして、CPU601は、ステップS906で検出したbpm値を、新たなテンポ値として、メモリ602に記憶されているテンポ変数の値を上記bpm値で置き換えて更新する(ステップS907)。
Then, the
その後、CPU601は、図9のフローチャートで示される図8のステップS806のテンポ決定処理を終了する。
After that, the
図10(a)は、図7のステップS705のタイミング同期処理を示すフローチャートである。このタイミング同期処理において、CPU601はまず、図3のステップS301と同様の拍子検出処理を実行し(ステップS1001)、次に図3のステップS302と同様の同期オフセット時間検出処理を実行し(ステップS1002)、その後、図10のフローチャートで示される図7のステップS705の処理を終了する。
FIG. 10A is a flowchart showing the timing synchronization process of step S705 of FIG. 7. In this timing synchronization process, the
図10(b)は、図10(a)の拍子検出処理の詳細例を示すフローチャートである。図10(b)において、CPU601はまず、図3のステップS301で説明したようにして、図7のステップS702のテンポ検出処理により得られた1小節の1/3(3拍子)の時間長での繰返しで、タイミングレベルを検出し、メモリ602に記憶させる(ステップS1011)。
FIG. 10B is a flowchart showing a detailed example of the time signature detection process of FIG. 10A. In FIG. 10B, the
図10(b)において、次にCPU601は、図3のステップS301で説明したようにして、図7のステップS702のテンポ検出処理により得られた1小節の1/4(4拍子)の時間長での繰返しで、タイミングレベルを検出し、メモリ602に記憶させる(ステップS1012)。
In FIG. 10B, the
図10(b)において、次にCPU601は、上記と同様にして、図7のステップS702のテンポ検出処理により得られた1小節の1/5(5拍子)の時間長での繰返しで、タイミングレベルを検出し、メモリ602に記憶させる(ステップS1013)。
In FIG. 10B, the
その後、CPU601は、ステップS1011、S1012、及びS1013で検出されメモリ602に記憶された各タイミングレベル値の偏差(又はステップS301で説明した最大値−最小値)が最も大きいタイミングレベル値が検出されたときの拍子を検出する(ステップS1014)。
After that, the
そして、CPU601は、ステップS1014で検出した拍子の値を、新たな拍子値として、メモリ602に記憶されている拍子変数の値を上記拍子値で置き換えて更新する(ステップS1015)。
Then, the
その後、CPU601は、図10(b)のフローチャートで示される図10(a)のステップS1001の拍子検出処理を終了する。
After that, the
図11は、図10(a)の同期オフセット時間検出処理の詳細例を示すフローチャートである。図11において、CPU601はまず、図3のステップS302で説明したようにして、図7のステップS702のテンポ検出処理により検出されたテンポbpm値により算出される1小節時間長毎にタイミングレベルを検出する(ステップS1101)。
FIG. 11 is a flowchart showing a detailed example of the synchronization offset time detection process of FIG. 10A. In FIG. 11, the
次に、CPU601は、図3のステップS302で説明したようにして、ステップS1101で検出されたタイミングレベル値が最大値となるタイミングを、同期オフセット時間として検出する(ステップS1102)。
Next, the
そして、CPU601は、ステップS1102で検出した最大値を、新たな同期オフセット時間として、メモリ602に記憶されている同期オフセット時間変数の値を上記最大値で置き換えて更新する(ステップS1103)。
Then, the
その後、CPU601は、図11のフローチャートで示される図10(a)のステップS1002の同期オフセット時間検出処理を終了する。
After that, the
以上説明した実施形態により、例えばフーリエ変換を用いる方法よりも少ない処理量でテンポ検出および、小節や拍のタイミング同期がより正確に行えるようになり、楽曲に対してリアルタイムにフィルインやテンポ同期エフェクト等を付加することなどが可能となる。 According to the above-described embodiment, tempo detection and bar and beat timing synchronization can be performed more accurately with a smaller amount of processing than, for example, a method using a Fourier transform, and fill-in, tempo synchronization effect, etc. for music can be performed in real time. Can be added.
以上、開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができる。 Although the embodiments of the disclosure and their advantages have been described in detail above, those skilled in the art can make various changes, additions and omissions without departing from the scope of the present invention clearly described in the claims. ..
その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。 In addition, the present invention is not limited to the above-described embodiment, and can be variously modified at the implementation stage without departing from the gist thereof. In addition, the functions executed in the above-described embodiment may be combined as appropriate as possible. The above-described embodiments include various steps, and various inventions can be extracted by an appropriate combination according to a plurality of disclosed constitutional requirements. For example, even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, if the effect is obtained, the configuration in which the constituent requirements are deleted can be extracted as an invention.
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
楽曲の波形データから波形強度の分布を示す楽曲波形強度データを取得し、
前記楽曲波形強度データに基づく自己相関を検出して周期毎の強度を示す基本自己相関値を算出し、
前記楽曲に対応する拍子を指定し、
前記基本自己相関値の周期を前記指定された拍子に基づいて決められる倍率で変更した計算用自己相関値を算出し、
前記基本自己相関値に対して前記計算用自己相関値を重み付け加算した検出用自己相関値が最大となる部分を特定し、
前記特定した部分に対応する周期を前記楽曲のテンポとして検出する、
制御部を備えたテンポ検出装置。
(付記2)
付記1に記載のテンポ検出装置において、
前記指定された拍子をXとした場合に、前記倍率はX/(X−1)倍及びX/(X+1)倍であり、
前記制御部は更に、前記基本自己相関値の周期をX/(X−1)倍した前記計算用自己相関値と、前記基本自己相関値の周期をX/(X+1)倍した前記計算用自己相関値と、を前記基本自己相関値に対して重み付け加算して前記検出用自己相関値を算出するテンポ検出装置。
(付記3)
付記1又は2に記載のテンポ検出装置において、
前記制御部は更に、前記重み付け加算を行う場合の重み値を、前記楽曲の波形データの強度により調整するテンポ検出装置。
(付記4)
付記1乃至3に記載のテンポ検出装置において、
前記制御部は更に、前記楽曲の波形データから取得した前記楽曲波形強度データに対してカットオフ周波数の高いローパスフィルタ処理を行った結果としてエンベロープ波形データを取得し、取得した前記エンベロープ波形データに対してカットオフ周波数の低いローパスフィルタ処理を行った結果を前記エンベロープ波形データから減算することでビート波形を取得し、前記ビート波形の自己相関を検出して前記基本自己相関値を算出するテンポ検出装置。
(付記5)
付記1乃至4に記載のテンポ検出装置において、
前記制御部は更に、前記重み付け加算を行う場合の重み値を、前記ビート波形の強度により調整するテンポ検出装置。
(付記6)
付記1乃至5に記載のテンポ検出装置において、
前記制御部は更に、
検出された前記楽曲のテンポに基づいて、1小節の1/3時間長及び1小節の1/4時間長を含む複数の時間長を指定し、
前記ビート波形の微分値に基づく波形を、前記指定されたそれぞれの時間長で周期的に合成することで複数のタイミングレベル値を算出し、
前記タイミングレベル値の分散が最大となる時間長に対応する拍子を、前記楽曲の拍子として検出するテンポ検出装置。
(付記7)
楽曲の波形データから波形強度の分布を示す楽曲波形強度データを取得し、
前記楽曲波形強度データに基づく自己相関を検出して周期毎の強度を示す基本自己相関値を算出し、
前記楽曲に対応する拍子を指定し、
前記基本自己相関値の周期を前記指定された拍子に基づいて決められる倍率で変更した計算用自己相関値を算出し、
前記基本自己相関値に対して前記計算用自己相関値を重み付け加算した検出用自己相関値が最大となる部分を特定し、
前記特定した部分に対応する周期を前記楽曲のテンポとして検出する、
テンポ検出方法。
(付記8)
楽曲の波形データから振幅強度のエンベロープを取得し、
前記エンベロープに基づく自己相関を検出して周期毎の強度を示す基本自己相関値を算出し、
前記楽曲に対応する拍子を指定し、
前記基本自己相関値の周期を前記指定された拍子に基づいて決められる倍率で変更した計算用自己相関値を算出し、
前記基本自己相関値に対して前記計算用自己相関値を重み付け加算した検出用自己相関値が最大となる部分を特定し、
前記特定した部分に対応する周期を前記楽曲のテンポとして検出する、
処理をコンピュータに実行させるためのプログラム。
The following additional notes will be further disclosed with respect to the above embodiments.
(Appendix 1)
Acquire music waveform intensity data showing the distribution of waveform intensity from music waveform data,
The autocorrelation based on the music waveform intensity data is detected, and the basic autocorrelation value indicating the intensity for each cycle is calculated.
Specify the time signature corresponding to the song,
A calculation autocorrelation value obtained by changing the period of the basic autocorrelation value at a magnification determined based on the specified time signature is calculated.
The part where the detection autocorrelation value is maximized by weighting and adding the calculation autocorrelation value to the basic autocorrelation value is specified.
The period corresponding to the specified portion is detected as the tempo of the music.
A tempo detector with a control unit.
(Appendix 2)
In the tempo detection device according to Appendix 1,
When the designated time signature is X, the magnifications are X / (X-1) times and X / (X + 1) times.
The control unit further multiplies the period of the basic autocorrelation value by X / (X-1) to multiply the period of the basic autocorrelation value by X / (X-1), and the period of the basic autocorrelation value is multiplied by X / (X + 1). A tempo detection device that calculates the autocorrelation value for detection by weighting and adding the correlation value to the basic autocorrelation value.
(Appendix 3)
In the tempo detection device according to Appendix 1 or 2,
The control unit is a tempo detection device that further adjusts the weight value when performing the weighting addition according to the intensity of the waveform data of the music.
(Appendix 4)
In the tempo detection device according to the appendices 1 to 3,
The control unit further acquires envelope waveform data as a result of performing low-pass filter processing having a high cutoff frequency on the music waveform intensity data acquired from the waveform data of the music, and with respect to the acquired envelope waveform data. A tempo detection device that acquires a beat waveform by subtracting the result of low-pass filtering with a low cutoff frequency from the envelope waveform data, detects the autocorrelation of the beat waveform, and calculates the basic autocorrelation value. ..
(Appendix 5)
In the tempo detection device according to the appendices 1 to 4,
The control unit is a tempo detection device that further adjusts the weight value when performing the weighting addition according to the intensity of the beat waveform.
(Appendix 6)
In the tempo detection device according to the appendices 1 to 5,
The control unit further
Based on the detected tempo of the music, a plurality of time lengths including 1/3 hour length of 1 bar and 1/4 hour length of 1 bar are specified.
A plurality of timing level values are calculated by periodically synthesizing a waveform based on the differential value of the beat waveform for each of the specified time lengths.
A tempo detection device that detects the time signature corresponding to the time length that maximizes the dispersion of the timing level value as the time signature of the music.
(Appendix 7)
Acquire music waveform intensity data showing the distribution of waveform intensity from music waveform data,
The autocorrelation based on the music waveform intensity data is detected, and the basic autocorrelation value indicating the intensity for each cycle is calculated.
Specify the time signature corresponding to the song,
A calculation autocorrelation value obtained by changing the period of the basic autocorrelation value at a magnification determined based on the specified time signature is calculated.
The part where the detection autocorrelation value is maximized by weighting and adding the calculation autocorrelation value to the basic autocorrelation value is specified.
The period corresponding to the specified portion is detected as the tempo of the music.
Tempo detection method.
(Appendix 8)
Obtain the amplitude intensity envelope from the waveform data of the music and
The autocorrelation based on the envelope is detected, and the basic autocorrelation value indicating the intensity for each cycle is calculated.
Specify the time signature corresponding to the song,
A calculation autocorrelation value obtained by changing the period of the basic autocorrelation value at a magnification determined based on the specified time signature is calculated.
The part where the detection autocorrelation value is maximized by weighting and adding the calculation autocorrelation value to the basic autocorrelation value is specified.
The period corresponding to the specified portion is detected as the tempo of the music.
A program that lets a computer perform processing.
S101 音声入力処理
S102 エンベロープ検出処理
S103 ビート波形検出処理
S104 ビート強度検出処理
S105 自己相関検出処理
S106 テンポ決定処理
201 エンベロープ波形
202 楽曲波形強度
203 ビート波形
204、206 楽曲本来のテンポ値
205、207 自己相関値の最大値
S301 拍子検出処理
S302 同期オフセット時間検出処理
601 CPU
602 メモリ
603 入力装置
604 出力装置
605 補助情報記憶装置
606 媒体駆動装置
607 ネットワーク接続装置
608 バス
609 可搬型記録媒体
S101 Voice input processing S102 Envelope detection processing S103 Beat waveform detection processing S104 Beat intensity detection processing S105 Self-correlation detection processing S106
602
Claims (8)
前記楽曲波形強度データに基づく自己相関を検出して周期毎の強度を示す基本自己相関値を算出し、
前記楽曲に対応する拍子を指定し、
前記基本自己相関値の周期を前記指定された拍子に基づいて決められる倍率で変更した計算用自己相関値を算出し、
前記基本自己相関値に対して前記計算用自己相関値を重み付け加算した検出用自己相関値が最大となる部分を特定し、
前記特定した部分に対応する周期を前記楽曲のテンポとして検出する、
制御部を備えたテンポ検出装置。 Acquire music waveform intensity data showing the distribution of waveform intensity from music waveform data,
The autocorrelation based on the music waveform intensity data is detected, and the basic autocorrelation value indicating the intensity for each cycle is calculated.
Specify the time signature corresponding to the song,
A calculation autocorrelation value obtained by changing the period of the basic autocorrelation value at a magnification determined based on the specified time signature is calculated.
The part where the detection autocorrelation value is maximized by weighting and adding the calculation autocorrelation value to the basic autocorrelation value is specified.
The period corresponding to the specified portion is detected as the tempo of the music.
A tempo detector with a control unit.
前記指定された拍子をXとした場合に、前記倍率はX/(X−1)倍及びX/(X+1)倍であり、
前記制御部は更に、前記基本自己相関値の周期をX/(X−1)倍した前記計算用自己相関値と、前記基本自己相関値の周期をX/(X+1)倍した前記計算用自己相関値と、を前記基本自己相関値に対して重み付け加算して前記検出用自己相関値を算出するテンポ検出装置。 In the tempo detection device according to claim 1,
When the designated time signature is X, the magnifications are X / (X-1) times and X / (X + 1) times.
The control unit further multiplies the period of the basic autocorrelation value by X / (X-1) to multiply the period of the basic autocorrelation value by X / (X-1), and the period of the basic autocorrelation value is multiplied by X / (X + 1). A tempo detection device that calculates the autocorrelation value for detection by weighting and adding the correlation value to the basic autocorrelation value.
前記制御部は更に、前記重み付け加算を行う場合の重み値を、前記楽曲の波形データの強度により調整するテンポ検出装置。 In the tempo detection device according to claim 1 or 2.
The control unit is a tempo detection device that further adjusts the weight value when performing the weighting addition according to the intensity of the waveform data of the music.
前記制御部は更に、前記楽曲の波形データから取得した前記楽曲波形強度データに対してカットオフ周波数の高いローパスフィルタ処理を行った結果としてエンベロープ波形データを取得し、取得した前記エンベロープ波形データに対してカットオフ周波数の低いローパスフィルタ処理を行った結果を前記エンベロープ波形データから減算することでビート波形を取得し、前記ビート波形の自己相関を検出して前記基本自己相関値を算出するテンポ検出装置。 In the tempo detection device according to claims 1 to 3,
The control unit further acquires envelope waveform data as a result of performing low-pass filter processing having a high cutoff frequency on the music waveform intensity data acquired from the waveform data of the music, and with respect to the acquired envelope waveform data. A tempo detection device that acquires a beat waveform by subtracting the result of low-pass filtering with a low cutoff frequency from the envelope waveform data, detects the autocorrelation of the beat waveform, and calculates the basic autocorrelation value. ..
前記制御部は更に、前記重み付け加算を行う場合の重み値を、前記ビート波形の強度により調整するテンポ検出装置。 In the tempo detection device according to claims 1 to 4,
The control unit is a tempo detection device that further adjusts the weight value when performing the weighting addition according to the intensity of the beat waveform.
前記制御部は更に、
検出された前記楽曲のテンポに基づいて、1小節の1/3時間長及び1小節の1/4時間長を含む複数の時間長を指定し、
前記ビート波形の微分値に基づく波形を、前記指定されたそれぞれの時間長で周期的に合成することで複数のタイミングレベル値を算出し、
前記タイミングレベル値の分散が最大となる時間長に対応する拍子を、前記楽曲の拍子として検出するテンポ検出装置。 In the tempo detection device according to claims 1 to 5,
The control unit further
Based on the detected tempo of the music, a plurality of time lengths including 1/3 hour length of 1 bar and 1/4 hour length of 1 bar are specified.
A plurality of timing level values are calculated by periodically synthesizing a waveform based on the differential value of the beat waveform for each of the specified time lengths.
A tempo detection device that detects the time signature corresponding to the time length that maximizes the dispersion of the timing level value as the time signature of the music.
前記楽曲波形強度データに基づく自己相関を検出して周期毎の強度を示す基本自己相関値を算出し、
前記楽曲に対応する拍子を指定し、
前記基本自己相関値の周期を前記指定された拍子に基づいて決められる倍率で変更した計算用自己相関値を算出し、
前記基本自己相関値に対して前記計算用自己相関値を重み付け加算した検出用自己相関値が最大となる部分を特定し、
前記特定した部分に対応する周期を前記楽曲のテンポとして検出する、
テンポ検出方法。 Acquire music waveform intensity data showing the distribution of waveform intensity from music waveform data,
The autocorrelation based on the music waveform intensity data is detected, and the basic autocorrelation value indicating the intensity for each cycle is calculated.
Specify the time signature corresponding to the song,
A calculation autocorrelation value obtained by changing the period of the basic autocorrelation value at a magnification determined based on the specified time signature is calculated.
The part where the detection autocorrelation value is maximized by weighting and adding the calculation autocorrelation value to the basic autocorrelation value is specified.
The period corresponding to the specified portion is detected as the tempo of the music.
Tempo detection method.
前記エンベロープに基づく自己相関を検出して周期毎の強度を示す基本自己相関値を算出し、
前記楽曲に対応する拍子を指定し、
前記基本自己相関値の周期を前記指定された拍子に基づいて決められる倍率で変更した計算用自己相関値を算出し、
前記基本自己相関値に対して前記計算用自己相関値を重み付け加算した検出用自己相関値が最大となる部分を特定し、
前記特定した部分に対応する周期を前記楽曲のテンポとして検出する、
処理をコンピュータに実行させるためのプログラム。
Obtain the amplitude intensity envelope from the waveform data of the music and
The autocorrelation based on the envelope is detected, and the basic autocorrelation value indicating the intensity for each cycle is calculated.
Specify the time signature corresponding to the song,
A calculation autocorrelation value obtained by changing the period of the basic autocorrelation value at a magnification determined based on the specified time signature is calculated.
The part where the detection autocorrelation value is maximized by weighting and adding the calculation autocorrelation value to the basic autocorrelation value is specified.
The period corresponding to the specified portion is detected as the tempo of the music.
A program that lets a computer perform processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020055114A JP2021156975A (en) | 2020-03-25 | 2020-03-25 | Tempo detector, method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020055114A JP2021156975A (en) | 2020-03-25 | 2020-03-25 | Tempo detector, method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021156975A true JP2021156975A (en) | 2021-10-07 |
Family
ID=77918198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020055114A Pending JP2021156975A (en) | 2020-03-25 | 2020-03-25 | Tempo detector, method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021156975A (en) |
-
2020
- 2020-03-25 JP JP2020055114A patent/JP2021156975A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6017687B2 (en) | Audio signal analysis | |
US8889976B2 (en) | Musical score position estimating device, musical score position estimating method, and musical score position estimating robot | |
JP4672613B2 (en) | Tempo detection device and computer program for tempo detection | |
JP4650662B2 (en) | Signal processing apparatus, signal processing method, program, and recording medium | |
JP4916947B2 (en) | Rhythm detection device and computer program for rhythm detection | |
WO2017058387A1 (en) | Automatic composer | |
JP2007199306A (en) | Beat extracting device and method | |
US20140260911A1 (en) | Sound signal analysis apparatus, sound signal analysis method and sound signal analysis program | |
US9646592B2 (en) | Audio signal analysis | |
JP7105880B2 (en) | Beat sound generation timing generator | |
JP6252147B2 (en) | Acoustic signal analysis apparatus and acoustic signal analysis program | |
JP6123574B2 (en) | Code extraction apparatus, method, and program | |
JPH10307580A (en) | Music searching method and device | |
JP4799333B2 (en) | Music classification method, music classification apparatus, and computer program | |
JP2021156975A (en) | Tempo detector, method, and program | |
JP4483561B2 (en) | Acoustic signal analysis apparatus, acoustic signal analysis method, and acoustic signal analysis program | |
JP4347815B2 (en) | Tempo extraction device and tempo extraction method | |
JP6232916B2 (en) | Code power calculation device, method and program, and code determination device | |
JP5879813B2 (en) | Multiple sound source identification device and information processing device linked to multiple sound sources | |
WO2017164216A1 (en) | Acoustic processing method and acoustic processing device | |
JP2013015601A (en) | Sound source identification apparatus and information processing apparatus interlocked with sound source | |
JP4930608B2 (en) | Acoustic signal analysis apparatus, acoustic signal analysis method, and acoustic signal analysis program | |
CN113674723B (en) | Audio processing method, computer equipment and readable storage medium | |
JP2010032809A (en) | Automatic musical performance device and computer program for automatic musical performance | |
CN113674723A (en) | Audio processing method, computer equipment and readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230315 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20231005 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240319 |