JP2021156975A - Tempo detector, method, and program - Google Patents

Tempo detector, method, and program Download PDF

Info

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
Application number
JP2020055114A
Other languages
Japanese (ja)
Inventor
裕二 田畑
Yuji Tabata
裕二 田畑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2020055114A priority Critical patent/JP2021156975A/en
Publication of JP2021156975A publication Critical patent/JP2021156975A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

To more accurately detect a tempo on technique for detecting the tempo from waveform data of music.SOLUTION: In steps from a step S101 to S104, music waveform intensity data indicating distribution of waveform intensity is acquired from waveform data of music. In a step S105, autocorrelation on the basis of the music waveform intensity data is detected, and a basic autocorrelation value indicating intensity for each period is calculated. In the step S105, an autocorrelation value for calculation, which is obtained by changing a period of the basic autocorrelation value by a magnification ratio determined on the basis of a designated rhythm, is calculated. In a step S106, a portion where an autocorrelation value for detection, which is obtained by weighting and adding the autocorrelation value for calculation to the basic autocorrelation value, becomes the maximum is specified and a period corresponding to the specified portion is detected as a tempo of the music.SELECTED DRAWING: Figure 1

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).

特開2002−116754号公報JP-A-2002-116754

しかしながら、上記の従来技術においては、楽曲に特有の強度変化を含む場合などでは正確にテンポを検出するのが難しかった。 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.

テンポ検出方法の処理ブロック図である。It is a processing block diagram of a tempo detection method. ビート波形データ、自己相関値、及び重み付け加算した自己相関値の例を示すグラフ図である。It is a graph which shows the example of the beat waveform data, the autocorrelation value, and the weighted autocorrelation value. タイミング同期方法の処理ブロック図である。It is a processing block diagram of the timing synchronization method. 3拍子の楽曲例におけるタイミングレベルの例を示すグラフ図である。It is a graph which shows the example of the timing level in the music example of 3 beats. 4拍子の楽曲例におけるタイミングレベルの例を示すグラフ図である。It is a graph which shows the example of the timing level in the music example of 4 beats. テンポ検出及びタイミング同期の処理を実行するコンピュータのハードウェア構成例を示すブロック図である。It is a block diagram which shows the hardware configuration example of the computer which executes the process of tempo detection and timing synchronization. テンポ検出/タイミング同期処理の例を示すメインフローチャートである。It is a main flowchart which shows an example of tempo detection / timing synchronization processing. テンポ検出処理の詳細例を示すフローチャートである。It is a flowchart which shows the detailed example of a tempo detection process. テンポ決定処理の詳細例を示すフローチャートである。It is a flowchart which shows the detailed example of a tempo determination process. タイミング同期処理及び拍子検出処理の詳細例を示すフローチャートである。It is a flowchart which shows the detailed example of the timing synchronization processing and the time signature detection processing. 同期オフセット時間検出処理の詳細例を示すフローチャートである。It is a flowchart which shows the detailed example of the synchronous offset time detection processing.

以下、本発明を実施するためのテンポ検出方法およびタイミング同期方法の実施形態について図面を参照しながら詳細に説明する。図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 bar graph 201 is the envelope waveform. The part of the line graph 202 shows the result of executing the low-pass filter processing strong against the music waveform intensity, and the line graph 203 is obtained by subtracting the result 202 of the strong low-pass filter processing from the envelope waveform 201 between the corresponding samples. It is a beat waveform (double magnification). It is understood that the beat waveform is the result of removing the standing wave portion having a low correlation with the tempo from the envelope waveform.

ステップ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 position 204 of the original tempo value of 130 bpm (4 beat time length) of the music, a strong correlation appears at positions such as 104 bpm (5 beat time length) and 173 bpm (3 beat time length), and the position 205 of 173 bpm. Is the maximum value of the autocorrelation value in this graph, and the tempo cannot be detected accurately as it is.

そこで、図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 position 206. It is understood that the tempo detection was performed accurately because the position 207 where the autocorrelation value had the maximum value coincided with the position 207.

上述したテンポ決定処理は、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 memory 602, an input device 603, an output device 604, an auxiliary information storage device 605, a medium drive device 606 into which a portable recording medium 609 is inserted, and a network connection. It has a device 607. These components are connected to each other by bus 608. The configuration shown in FIG. 6 is an example of a computer 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. 3, and such a computer is not limited to this configuration.

メモリ602は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。 The memory 602 is a semiconductor memory such as a Read Only Memory (ROM), a Random Access Memory (RAM), or a flash memory, and stores a program and data used for processing.

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 memory 602, for example, the flowcharts of FIGS. 8 to 11. By executing the program corresponding to the processing of FIG. 1, it operates as each processing block of FIGS. 1 and 2.

入力装置603は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置604は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問合せ又は処理結果の出力に用いられる。 The input device 603 is, for example, a keyboard, a pointing device, or the like, and is used for inputting an instruction or information from an operator or a user. The output device 604 is, for example, a display device, a printer, a speaker, or the like, and is used for making an inquiry to an operator or a user or outputting a processing result.

補助情報記憶装置605は、例えば、ハードディスク記憶装置、磁気ディスク記憶装置、光ディスク装置、光磁気ディスク装置、テープ装置、又は半導体記憶装置である。図1のテンポ検出方法の処理ブロック及び図3のタイミング同期方法の処理ブロックは、補助情報記憶装置605に図1及び図3の各処理ブロックに用いられる例えば図7乃至図11のフローチャートの処理を実行するプログラム及びデータを格納しておき、それらをメモリ602にロードして使用することができる。 The auxiliary information storage device 605 is, for example, a hard disk storage device, a magnetic disk storage device, an optical disk device, a magneto-optical disk device, a tape device, or a semiconductor storage device. The processing block of the tempo detection method of FIG. 1 and the processing block of the timing synchronization method of FIG. 3 are used in the auxiliary information storage device 605 to process the flowcharts of FIGS. The program and data to be executed can be stored and loaded into the memory 602 for use.

媒体駆動装置606は、可搬型記録媒体609を駆動し、その記録内容にアクセスする。可搬型記録媒体609は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体609は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体609に上述のプログラム及びデータを格納しておき、メモリ602にロードして使用することができる。 The medium driving device 606 drives the portable recording medium 609 and accesses the recorded contents. The portable recording medium 609 is a memory device, a flexible disk, an optical disk, a magneto-optical disk, or the like. The portable recording medium 609 may be a Compact Disk Read Only Memory (CD-ROM), a Digital Versaille Disk (DVD), a Universal Social Bus (USB) memory, or the like. The operator or the user can store the above-mentioned program and data in the portable recording medium 609 and load it into the memory 602 for use.

このように、上述のプログラム及びデータを格納するコンピュータ読取り可能な記録媒体は、メモリ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 memory 602, an auxiliary information storage device 605, or a portable recording medium 609. Is.

ネットワーク接続装置607は、例えばLocal Area Network(LAN)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。図6のコンピュータは、上述のプログラム又はデータを外部の装置からネットワーク接続装置607を介して受信し、それらをメモリ602にロードして使用することができる。 The network connection device 607 is a communication interface that is connected to a communication network such as Local Area Network (LAN) and performs data conversion associated with communication. The computer of FIG. 6 can receive the above-mentioned programs or data from an external device via the network connection device 607, load them into the memory 602, and use them.

なお、図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 input device 603 may be omitted if it is not necessary to input instructions or information from the operator or user. When the portable recording medium 609 or the communication network is not used, the medium driving device 606 or the network connecting device 607 may be omitted.

図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 CPU 601 loads the tempo detection / timing synchronization processing program stored in the auxiliary information storage device 605 or the like into the memory 602 and executes it. Hereinafter, description will be made with reference to FIG. 6 as needed.

図7において、CPU601はまず、テンポ変数値を0(未定)に、拍子変数値を4拍子を示す値4に、また、同期オフセット時間変数値を0に、それぞれ初期設定する(ステップS701)。これらの変数値は、メモリ602に記憶される。 In FIG. 7, the CPU 601 first initializes the tempo variable value to 0 (undecided), the time signature variable value to the value 4 indicating four beats, and the synchronization offset time variable value to 0 (step S701). These variable values are stored in the memory 602.

その後、CPU601は、ステップS702からステップS705の一連の処理を繰り返し実行する。 After that, the CPU 601 repeatedly executes a series of processes from step S702 to step S705.

上記一連の処理において、CPU601はまず、テンポ検出処理を実行し、メモリ602に記憶されているテンポ変数に、未定値0、或いは、60bpmから180bpmの間の値を算出して設定する(ステップS702)。この処理の詳細例については、図8を用いて後述する。 In the above series of processes, the CPU 601 first executes a tempo detection process, calculates and sets an undetermined value 0 or a value between 60 bpm and 180 bpm in the tempo variable stored in the memory 602 (step S702). ). A detailed example of this process will be described later with reference to FIG.

上記一連の処理において、次にCPU601は、ユーザが入力装置603を構成する一部の特には図示しないスイッチなどにより、テンポ検出/タイミング同期処理の終了を指示したか否かを判定する(ステップS703)。 In the above series of processes, the CPU 601 then determines whether or not the user has instructed the end of the tempo detection / timing synchronization process by a switch (not shown) or the like that constitutes the input device 603 (step S703). ).

ステップS703の判定がYESならば、CPU601は、図7のメインフローチャートで示されるテンポ検出/タイミング同期処理を終了し、特には図示しない上位に制御プログラムの処理に戻る。 If the determination in step S703 is YES, the CPU 601 ends the tempo detection / timing synchronization process shown in the main flowchart of FIG. 7, and returns to the process of the control program, which is not particularly shown.

ステップS703の判定がNOならば、CPU601は、ステップS702のテンポ検出処理により検出されたメモリ602上のテンポ変数値が0でないか否かを判定する(ステップS704)。 If the determination in step S703 is NO, the CPU 601 determines whether or not the tempo variable value on the memory 602 detected by the tempo detection process in step S702 is not 0 (step S704).

テンポ変数値が未定値0(ステップS704の判定がNO)である場合には、CPU601は、制御をステップS702に戻して前述した一連の処理の繰返しを続行する。 When the tempo variable value is an undecided value 0 (the determination in step S704 is NO), the CPU 601 returns the control to step S702 and continues repeating the series of processes described above.

テンポ変数値が未定値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 CPU 601 executes the timing synchronization process to add 3 beats, 4 beats, and the beat variable stored in the memory 602. Alternatively, the values 3, 4, or 5 indicating any of the five beats are acquired, and any of the values 0 to n (n is a natural number) is calculated in the synchronization offset time variable stored in the memory 602. Set.

その後、CPU601は、制御をステップS702に戻して前述した一連の処理の繰返しを続行する。 After that, the CPU 601 returns the control to step S702 and continues the repetition of the series of processes described above.

図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 CPU 601 executes the same tempo detection process as described in each process block of FIG.

即ちまず、CPU601は、図1のステップS101と同様の、音声入力処理を実行する(ステップS801)。ステップS801の処理において、CPU601は、ユーザが入力装置603の一部を構成するマイク入力装置等から入力した音声を、同じく入力装置603の一部を構成する特には図示しないA/D(アナログ/デジタル)コンバータによって、一定のサンプリング周期(例えば、44.1KHz(キロヘルツ))でA/D変換し、楽曲波形データを取得し、メモリ602に記憶させる。 That is, first, the CPU 601 executes the same voice input process as in step S101 of FIG. 1 (step S801). In the process of step S801, the CPU 601 inputs the sound input by the user from the microphone input device or the like that constitutes a part of the input device 603, and A / D (analog / analog /) (not particularly shown) that also constitutes a part of the input device 603. The digital) converter performs A / D conversion at a constant sampling period (for example, 44.1 KHz (kilohertz)), acquires music waveform data, and stores it in the memory 602.

次に、CPU601は、図1のステップS102と同様の、エンベロープ検出処理を実行する(ステップS802)。ステップS802の処理において、CPU601は、ステップS801の音声入力処理が取得しメモリ602に記憶させた楽曲波形データを、一定のサンプル数(例えば、128サンプル)毎にブロック分割し、各ブロック毎に楽曲波形データの絶対値の平均である楽曲波形強度データを順次算出し、メモリ602に記憶させる。更に、CPU601は、算出しメモリ602に記憶させた楽曲波形強度データを順次読み出しながら、それに対して弱い(カットオフ周波数の高い)ローパスフィルタ処理を実行し、そのローパスフィルタ処理の演算結果として、エンベロープ波形データを順次取得し、メモリ602に記憶させる。 Next, the CPU 601 executes an envelope detection process similar to step S102 in FIG. 1 (step S802). In the process of step S802, the CPU 601 divides the music waveform data acquired by the voice input process of step S801 and stored in the memory 602 into blocks for each fixed number of samples (for example, 128 samples), and music for each block. The music waveform intensity data, which is the average of the absolute values of the waveform data, is sequentially calculated and stored in the memory 602. Further, the CPU 601 sequentially reads out the music waveform intensity data calculated and stored in the memory 602, executes a weak (high cutoff frequency) low-pass filter processing, and results in an envelope as a calculation result of the low-pass filter processing. Waveform data is sequentially acquired and stored in the memory 602.

次に、CPU601は、ステップS103と同様のビート波形検出処理を実行する(ステップS803)。ステップS803の処理において、CPU601は、ステップS802のエンベロープ検出処理で算出しメモリ602に記憶させた楽曲波形強度データを順次読出しながら、それに対して強い(カットオフ周波数の低い)ローパスフィルタ処理を実行し、サンプリング時刻が一致するサンプル同士で、メモリ602から順次読み出したエンベロープ波形データのサンプルから上記強いローパスフィルタ処理の演算結果データのサンプルを減算することで、その減算結果としてビート波形データを順次取得し、メモリ602に記憶させる。 Next, the CPU 601 executes the same beat waveform detection process as in step S103 (step S803). In the process of step S803, the CPU 601 sequentially reads the music waveform intensity data calculated in the envelope detection process of step S802 and stored in the memory 602, and executes a strong (low cutoff frequency) low-pass filter process. By subtracting the sample of the calculation result data of the above strong low-pass filter processing from the sample of the envelope waveform data sequentially read from the memory 602 among the samples having the same sampling time, the beat waveform data is sequentially acquired as the subtraction result. , Stored in memory 602.

続いて、CPU601は、図1のステップS104と同様の、ビート強度検出処理を実行する(ステップS804)。ステップS804の処理において、CPU601は、ステップS803で算出しメモリ602に記憶させたビート波形データを順次読み出し、その各サンプルの絶対値を算出し、その絶対値にローパスフィルタ処理を実行し、その処理結果としてビート強度データを算出し、メモリ602に記憶させる。 Subsequently, the CPU 601 executes the beat intensity detection process similar to the step S104 of FIG. 1 (step S804). In the process of step S804, the CPU 601 sequentially reads the beat waveform data calculated in step S803 and stored in the memory 602, calculates the absolute value of each sample, executes low-pass filter processing on the absolute value, and performs the process. As a result, the beat intensity data is calculated and stored in the memory 602.

続いて、CPU601は、図1のステップS105と同様の、自己相関検出処理を実行する(ステップS805)。ステップS805の処理において、CPU601は、想定されるテンポ範囲の各bpm値から算出される楽曲の1小節分の時間長でのビート波形の自己相関値を算出する。 Subsequently, the CPU 601 executes an autocorrelation detection process similar to step S105 in FIG. 1 (step S805). In the process of step S805, the CPU 601 calculates the autocorrelation value of the beat waveform at the time length of one bar of the music calculated from each bpm value in the assumed tempo range.

そして、CPU601は、図1のステップS106と同様の、テンポ決定処理を実行する(ステップS806)。ステップS806の処理の後、CPU601は、図8のフローチャートで示される図7のステップS702のテンポ検出処理を終了する。 Then, the CPU 601 executes the tempo determination process similar to the step S106 of FIG. 1 (step S806). After the process of step S806, the CPU 601 ends the tempo detection process of step S702 of FIG. 7 shown in the flowchart of FIG.

図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 CPU 601 first determines whether or not the value of the time signature variable set in the memory 602 is 3 by the user designating the time signature by a switch forming a part of the input device 603. (Step S901).

ステップS901の判定がYESならば、CPU601は、図8のステップS805の自己相関検出処理にて算出されメモリ602に記憶されている各bpm位置の自己相関値に、3/2倍bpm及び3/4倍のbpmの自己相関値を重み付け加算する(ステップS902)。 If the determination in step S901 is YES, the CPU 601 sets the autocorrelation value of each bpm position calculated in the autocorrelation detection process of step S805 of FIG. 8 and stored in the memory 602 to 3/2 times bpm and 3 /. The autocorrelation value of 4 times bpm is weighted and added (step S902).

ステップS901の判定がNOならば、CPU601は、ユーザが入力装置603の一部を構成するスイッチによって5拍子を指定することにより、メモリ602に設定された拍子変数の値が、5であるか否かを判定する(ステップS903)。 If the determination in step S901 is NO, the CPU 601 determines whether or not the value of the time signature variable set in the memory 602 is 5 by the user designating the time signature by a switch forming a part of the input device 603. (Step S903).

ステップS903の判定がYESならば、CPU601は、図8のステップS805の自己相関検出処理にて算出されメモリ602に記憶されている各bpm位置の自己相関値に、5/4倍bpm及び5/6倍のbpmの自己相関値を重み付け加算する(ステップS904)。 If the determination in step S903 is YES, the CPU 601 increases the autocorrelation value of each bpm position calculated by the autocorrelation detection process in step S805 of FIG. 8 and stored in the memory 602 by 5.4 times bpm and 5 /. The autocorrelation value of 6 times bpm is weighted and added (step S904).

ステップ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 memory 602 is set to 4 by the user designating the time signature by a switch forming a part of the input device 603. In this case, the CPU 601 has 4/3 times bpm and 4/5 times bpm self in the autocorrelation value of each bpm position calculated by the autocorrelation detection process in step S805 of FIG. 8 and stored in the memory 602. The correlation values are weighted and added (step S905).

ステップS902、S904、又はS905の処理の後、CPU601は、ステップS902、S904、又はS905の処理での重み付け加算の結果得られる自己相関値が最大となるbpm値を検出する(ステップS906)。 After the processing of steps S902, S904, or S905, the CPU 601 detects the bpm value that maximizes the autocorrelation value obtained as a result of the weighting addition in the processing of steps S902, S904, or S905 (step S906).

そして、CPU601は、ステップS906で検出したbpm値を、新たなテンポ値として、メモリ602に記憶されているテンポ変数の値を上記bpm値で置き換えて更新する(ステップS907)。 Then, the CPU 601 updates the bpm value detected in step S906 as a new tempo value by replacing the value of the tempo variable stored in the memory 602 with the above bpm value (step S907).

その後、CPU601は、図9のフローチャートで示される図8のステップS806のテンポ決定処理を終了する。 After that, the CPU 601 ends the tempo determination process of step S806 of FIG. 8 shown in the flowchart of FIG.

図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 CPU 601 first executes the same time signature detection process as in step S301 of FIG. 3 (step S1001), and then executes the same synchronization offset time detection process as in step S302 of FIG. 3 (step S1002). ), After that, the process of step S705 of FIG. 7 shown in the flowchart of FIG. 10 is completed.

図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 CPU 601 first has a time length of 1/3 (3 beats) of 1 bar obtained by the tempo detection process of step S702 of FIG. 7, as described in step S301 of FIG. The timing level is detected and stored in the memory 602 by repeating the above (step S1011).

図10(b)において、次にCPU601は、図3のステップS301で説明したようにして、図7のステップS702のテンポ検出処理により得られた1小節の1/4(4拍子)の時間長での繰返しで、タイミングレベルを検出し、メモリ602に記憶させる(ステップS1012)。 In FIG. 10B, the CPU 601 then has a time length of 1/4 (4 beats) of 1 bar obtained by the tempo detection process in step S702 of FIG. 7 as described in step S301 of FIG. The timing level is detected and stored in the memory 602 (step S1012).

図10(b)において、次にCPU601は、上記と同様にして、図7のステップS702のテンポ検出処理により得られた1小節の1/5(5拍子)の時間長での繰返しで、タイミングレベルを検出し、メモリ602に記憶させる(ステップS1013)。 In FIG. 10B, the CPU 601 then repeats the timing in the same manner as above with a time length of 1/5 (5 beats) of 1 bar obtained by the tempo detection process of step S702 in FIG. The level is detected and stored in the memory 602 (step S1013).

その後、CPU601は、ステップS1011、S1012、及びS1013で検出されメモリ602に記憶された各タイミングレベル値の偏差(又はステップS301で説明した最大値−最小値)が最も大きいタイミングレベル値が検出されたときの拍子を検出する(ステップS1014)。 After that, the CPU 601 detected the timing level value having the largest deviation (or the maximum value-minimum value described in step S301) of each timing level value detected in steps S1011, S1012, and S1013 and stored in the memory 602. The time signature is detected (step S1014).

そして、CPU601は、ステップS1014で検出した拍子の値を、新たな拍子値として、メモリ602に記憶されている拍子変数の値を上記拍子値で置き換えて更新する(ステップS1015)。 Then, the CPU 601 updates the value of the time signature detected in step S1014 as a new time signature value by replacing the value of the time signature variable stored in the memory 602 with the above time signature value (step S1015).

その後、CPU601は、図10(b)のフローチャートで示される図10(a)のステップS1001の拍子検出処理を終了する。 After that, the CPU 601 ends the time signature detection process of step S1001 of FIG. 10 (a) shown in the flowchart of FIG. 10 (b).

図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 CPU 601 first detects the timing level for each bar time length calculated from the tempo bpm value detected by the tempo detection process in step S702 of FIG. 7, as described in step S302 of FIG. (Step S1101).

次に、CPU601は、図3のステップS302で説明したようにして、ステップS1101で検出されたタイミングレベル値が最大値となるタイミングを、同期オフセット時間として検出する(ステップS1102)。 Next, the CPU 601 detects the timing at which the timing level value detected in step S1101 becomes the maximum value as the synchronization offset time, as described in step S302 of FIG. 3 (step S1102).

そして、CPU601は、ステップS1102で検出した最大値を、新たな同期オフセット時間として、メモリ602に記憶されている同期オフセット時間変数の値を上記最大値で置き換えて更新する(ステップS1103)。 Then, the CPU 601 updates the maximum value detected in step S1102 as a new synchronization offset time by replacing the value of the synchronization offset time variable stored in the memory 602 with the above maximum value (step S1103).

その後、CPU601は、図11のフローチャートで示される図10(a)のステップS1002の同期オフセット時間検出処理を終了する。 After that, the CPU 601 ends the synchronization offset time detection process of step S1002 of FIG. 10A shown in the flowchart of FIG.

以上説明した実施形態により、例えばフーリエ変換を用いる方法よりも少ない処理量でテンポ検出および、小節や拍のタイミング同期がより正確に行えるようになり、楽曲に対してリアルタイムにフィルインやテンポ同期エフェクト等を付加することなどが可能となる。 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 Tempo determination processing 201 Envelope waveform 202 Music waveform intensity 203 Beat waveform 204, 206 Original tempo value of music 205, 207 Autocorrelation Maximum value S301 Beat detection processing S302 Synchronous offset time detection processing 601 CPU
602 Memory 603 Input device 604 Output device 605 Auxiliary information storage device 606 Media drive device 607 Network connection device 608 Bus 609 Portable recording medium

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.
請求項1に記載のテンポ検出装置において、
前記指定された拍子を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.
請求項1又は2に記載のテンポ検出装置において、
前記制御部は更に、前記重み付け加算を行う場合の重み値を、前記楽曲の波形データの強度により調整するテンポ検出装置。
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.
請求項1乃至3に記載のテンポ検出装置において、
前記制御部は更に、前記楽曲の波形データから取得した前記楽曲波形強度データに対してカットオフ周波数の高いローパスフィルタ処理を行った結果としてエンベロープ波形データを取得し、取得した前記エンベロープ波形データに対してカットオフ周波数の低いローパスフィルタ処理を行った結果を前記エンベロープ波形データから減算することでビート波形を取得し、前記ビート波形の自己相関を検出して前記基本自己相関値を算出するテンポ検出装置。
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. ..
請求項1乃至4に記載のテンポ検出装置において、
前記制御部は更に、前記重み付け加算を行う場合の重み値を、前記ビート波形の強度により調整するテンポ検出装置。
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乃至5に記載のテンポ検出装置において、
前記制御部は更に、
検出された前記楽曲のテンポに基づいて、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.
JP2020055114A 2020-03-25 2020-03-25 Tempo detector, method, and program Pending JP2021156975A (en)

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)

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