JP2017161858A - Sound production controller - Google Patents

Sound production controller Download PDF

Info

Publication number
JP2017161858A
JP2017161858A JP2016048719A JP2016048719A JP2017161858A JP 2017161858 A JP2017161858 A JP 2017161858A JP 2016048719 A JP2016048719 A JP 2016048719A JP 2016048719 A JP2016048719 A JP 2016048719A JP 2017161858 A JP2017161858 A JP 2017161858A
Authority
JP
Japan
Prior art keywords
threshold
envelope
value
sound
sound generation
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
JP2016048719A
Other languages
Japanese (ja)
Inventor
増田 英之
Hideyuki Masuda
英之 増田
中村 純
Jun Nakamura
純 中村
右士 三浦
Yuji Miura
右士 三浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2016048719A priority Critical patent/JP2017161858A/en
Publication of JP2017161858A publication Critical patent/JP2017161858A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a technique capable of more accurately detecting a trigger in sound production control of a performance sound of a percussion instrument by an electronic sound source such as an MIDI sound source.SOLUTION: A sound production controller for an electronic percussion instrument comprises: movement detection means; vibration detection means; sound production control means; and threshold update means. The movement detection means detects a movement of an impact body such as a stick, and outputs a signal indicating the detection result. The vibration detection means detects vibration generated on a percussion surface, and outputs a signal expressing a wave form of the vibration. The sound production control means causes an electronic sound source to produce a sound with a fact that, an amplitude of an envelope of the output signal of the vibration detection means exceeds a first threshold, as a momentum, in a silent state, and causes the electronic sound source to stop a sound production, with a fact that, the amplitude becomes lower than a second threshold in a sound production state. The threshold update means updates the second threshold to a larger value when it is determined that, at least one impact body is moving to a percussion surface in the sound production state.SELECTED DRAWING: Figure 1

Description

この発明は、MIDI音源などの電子音源による打楽器の演奏音の発音制御に関する。   The present invention relates to sound generation control of percussion instrument performance sounds using an electronic sound source such as a MIDI sound source.

電子ドラムなどの電子打楽器は打撃(以下、アタック)によりパッド等の打面に発生した振動を検出してオーディオ信号を出力するセンサを有することが一般的である。電子打楽器における発音制御は以下の要領で実現される。放音停止状態において上記センサの出力信号のエンベロープの振幅が所定の閾値を上回ったことを契機としてノートオン信号をMIDI音源等に与えることで電子打楽器は放音停止状態から放音状態へ遷移し、放音状態において上記エンベロープの振幅が上記閾値を下回ったことを契機として放音状態から放音停止状態へ遷移する、といった具合である。この種の発音制御技術に関する先行技術の一例としては、特許文献1に開示の技術が挙げられる。   In general, an electronic percussion instrument such as an electronic drum has a sensor that detects vibration generated on a hitting surface such as a pad by hitting (hereinafter referred to as an attack) and outputs an audio signal. Sound control in electronic percussion instruments is realized as follows. The electronic percussion instrument transitions from the sound emission stop state to the sound emission state by giving a note-on signal to a MIDI sound source or the like when the amplitude of the envelope of the output signal of the sensor exceeds a predetermined threshold in the sound emission stop state. In the sound emission state, when the amplitude of the envelope falls below the threshold value, the sound emission state is changed to the sound emission stop state. As an example of the prior art relating to this type of sound generation control technique, there is a technique disclosed in Patent Document 1.

特開2010−271428号公報JP 2010-271428 A

この種の発音制御技術では、トリガの検出ミスに起因して種々の問題が発生する。例えば、この種の発音制御技術には、打面が連打された場合にアタックの検出漏れに起因する音抜け(ノートオンの欠落)が発生し易いといった問題がある。これは、打面が連打された場合には、センサの出力信号のエンベロープの振幅が上記閾値を下回らないうちに増加に転じるといった事態が発生し易いことに起因する。センサの出力信号のエンベロープの振幅が上記閾値を下回らないうちに増加に転じると放音状態から放音停止状態への遷移が発生せず、次のノートオン信号の出力契機となる事象(すなわち、無音状態においてセンサの出力信号のエンベロープの振幅が上記閾値を上回ること)が発生しないからである。   In this type of sound generation control technique, various problems occur due to a trigger detection error. For example, this type of sound generation control technique has a problem that sound omission (missing note-on) due to attack detection omission is likely to occur when the hitting surface is continuously hit. This is because when the hitting surface is continuously hit, a situation in which the amplitude of the envelope of the output signal of the sensor tends to increase before it falls below the threshold is likely to occur. If the amplitude of the envelope of the sensor output signal starts to increase before falling below the threshold, a transition from the sound emission state to the sound emission stop state does not occur, and an event that triggers the output of the next note-on signal (i.e., This is because the amplitude of the envelope of the sensor output signal does not exceed the threshold value in the silent state.

この種の発音制御技術は、生ドラムにミュートを施して演奏するミュート演奏の際にも利用されるが、生ドラムのミュート演奏では上記音抜けはより顕著になってしまう場合がある。ミュート演奏とは、生ドラムのヘッドにミュートを施して振動を抑えつつ、当該振動に応じて電子音源の発音制御を行う演奏態様を言う。このような演奏態様によれば、演奏者はヘッドホンを装着して生ドラムの演奏を行うとともに、電子音源の出力信号を当該ヘッドホンに与えることで、周囲に迷惑をかけることなく生ドラムの演奏練習を行うことができる。生ドラムのミュート演奏において上記音抜けがより顕著になってしまうのは、電子ドラムのパッドは発泡ウレタンなど振動の減衰の大きい素材で形成されていることが多く、音抜けの発生頻度は比較的に小さいが、生ドラムのヘッドは振動の減衰がより緩やかであるからである。   This type of sound generation control technique is also used in a mute performance in which a raw drum is muted and played, but the above-mentioned sound omission may become more noticeable in a live drum mute performance. The mute performance refers to a performance mode in which sound generation of an electronic sound source is controlled according to the vibration while muting the head of the raw drum to suppress the vibration. According to such a performance mode, the performer plays the live drum while wearing the headphones, and gives the output signal of the electronic sound source to the headphones, so that the performance of playing the live drum is not disturbed. It can be performed. The reason why the above-mentioned sound omission becomes more noticeable in the mute performance of a live drum is that the pads of the electronic drum are often made of a material having a large vibration attenuation, such as urethane foam, and the frequency of omission of sound is relatively low. This is because the vibration of the raw drum head is more gradual.

また、この種の発音制御技術には、ノートオン信号をMIDI音源等に与える際に遅延(以下、レーテンシ)が発生し易いといった問題がある。この理由は、以下に示すとおりである。通常、MIDI音源等にノートオン信号を与える際には、当該ノートオン信号に音の強さを示す情報、すなわちベロシティを付加する。ベロシティは、センサの出力信号のエンベロープの振幅が所定の閾値を上回った時点における当該エンベロープの傾きに基づき決定される。より詳細には、この傾きは、上記所定の閾値を上回った時点における上記エンベロープの振幅に対する、当該閾値の近傍の値(以下、所定値)を上回った時点における上記エンベロープの振幅の変化の割合として表される。この種の発音制御技術では、上記所定値に小さな値を設定した場合、上記エンベロープの振幅がその値を上回ったか否かの判定において、ノイズに起因する誤判定が発生するおそれがある。このため、通常、上記所定値には大きな値が設定される。しかし、この場合、上記エンベロープの振幅が所定の閾値を上回った後、上記エンベロープの振幅が上記所定値を上回ったと判定されるまでに要する時間が長くなる。この結果、アタックが発生してからベロシティを算出するまでに要する時間が長期化し、上記問題が発生するのである。   Further, this type of sound generation control technique has a problem that a delay (hereinafter referred to as latency) is likely to occur when a note-on signal is supplied to a MIDI sound source or the like. The reason for this is as follows. Normally, when giving a note-on signal to a MIDI sound source or the like, information indicating the intensity of sound, that is, velocity is added to the note-on signal. The velocity is determined based on the slope of the envelope at the time when the amplitude of the envelope of the sensor output signal exceeds a predetermined threshold. More specifically, the inclination is expressed as a ratio of a change in the amplitude of the envelope at a time point when a value in the vicinity of the threshold value (hereinafter, a predetermined value) is exceeded with respect to an amplitude value of the envelope at a time point when the predetermined threshold value is exceeded. expressed. In this type of sound generation control technique, when a small value is set as the predetermined value, there is a possibility that an erroneous determination due to noise may occur in determining whether or not the amplitude of the envelope exceeds the value. For this reason, a large value is usually set as the predetermined value. However, in this case, after the amplitude of the envelope exceeds a predetermined threshold, it takes a long time to determine that the amplitude of the envelope exceeds the predetermined value. As a result, it takes a long time to calculate the velocity after the attack occurs, and the above problem occurs.

本発明は上記課題に鑑みて為されたものであり、MIDI音源などの電子音源による打楽器の演奏音の発音制御において、従来よりも高い精度でトリガを検出することを可能にする技術を提供することを目的とする。   The present invention has been made in view of the above problems, and provides a technique that makes it possible to detect a trigger with higher accuracy than before in the sound generation control of percussion instrument performance sounds using an electronic sound source such as a MIDI sound source. For the purpose.

上記課題を解決するために本発明は、打楽器の打面を打撃するための1または複数の打撃体の動きを検出し、その検出結果を示す信号を出力する動作検出手段と、1または複数の打撃体による打撃に応じて打面に生じた振動を検出し、当該振動の波形を表す信号を出力する振動検出手段と、振動検出手段の出力信号のエンベロープの振幅が第1の閾値を上回ったことを契機として発音状態に遷移するとともに電子音源に発音を指示し、当該エンベロープの振幅が第2の閾値を下回ったことを契機として無音状態に遷移するとともに上記電子音源に発音の停止を指示する発音制御手段と、動作検出手段の出力信号を解析し、発音状態において少なくとも1つの打撃体が打面に向かって移動中であると判定された場合に第2の閾値をより大きな値に更新する閾値更新手段と、を有する発音制御装置、を提供する。   In order to solve the above-mentioned problems, the present invention detects motion of one or a plurality of percussion bodies for striking the percussion surface of a percussion instrument, and outputs a signal indicating the detection result, and one or a plurality of percussion objects A vibration detection unit that detects vibration generated on the hitting surface in response to a hit by the hitting body and outputs a signal representing a waveform of the vibration, and an amplitude of an envelope of an output signal of the vibration detection unit exceeds a first threshold. In response to this, a transition is made to a sounding state and sound generation is instructed to the electronic sound source, and when the amplitude of the envelope falls below the second threshold value, a soundless state is entered and the electronic sound source is instructed to stop sounding. When the output signals of the sound generation control means and the motion detection means are analyzed and it is determined that at least one striking body is moving toward the hitting surface in the sound generation state, the second threshold value is set to a larger value. Sound generation control apparatus comprising: a threshold updating means for updating, and provides.

電子音源の具体例としてはMIDI音源が挙げられ、電子音源としてMIDI音源を用いた場合の発音の指示(発音制御信号)の具体例としては当該MIDI音源に対してノートオンを指示する信号やノートオフを指示する信号が挙げられる。また、打撃体の具体例としては、演奏者の指先やスティックが挙げられる。本発明によれば、発音状態において少なくとも1つの打撃体が打楽器の打面に向かって移動中であると判定された場合には、発音状態から無音状態への遷移を発生させるか否かの判定基準となる第2の閾値がより大きな値へと更新される。打面を連打する際には発音状態において打撃体が打楽器の打面に向かって移動することとなるのであるから、連打が発生する場合には上記第2の閾値はより大きな値に更新され、先行する打撃により打面に生じた振動が充分に減衰しなくとも発音状態から無音状態への遷移が発生し、電子音源が放音状態から放音停止状態に遷移して前述した音抜けの発生が防止される。このように、本発明によれば、打楽器の演奏音をMIDI音源などの電子音源に発音させる発音制御において、連打に起因する音抜けが発生しないようにすることが可能になる。   A specific example of an electronic sound source is a MIDI sound source. As a specific example of a sound generation instruction (sound generation control signal) when a MIDI sound source is used as an electronic sound source, a signal or note for instructing the MIDI sound source to turn on a note. For example, a signal that indicates turning off may be used. Specific examples of the striking body include a player's fingertip and stick. According to the present invention, when it is determined that at least one impacting body is moving toward the percussion surface of the percussion instrument in the sounding state, it is determined whether or not a transition from the sounding state to the silent state is generated. The second reference threshold value is updated to a larger value. When hitting the hitting surface repeatedly, the hitting body moves toward the hitting surface of the percussion instrument in the sounding state. Therefore, when consecutive hitting occurs, the second threshold value is updated to a larger value, Even if the vibration generated on the hitting surface is not sufficiently attenuated by the preceding hit, the transition from the sounding state to the silent state occurs, and the electronic sound source changes from the sound emitting state to the sound emitting stop state, and the above-mentioned sound omission occurs. Is prevented. As described above, according to the present invention, it is possible to prevent sound omission due to repeated hits from occurring in sound generation control in which a percussion instrument performance sound is generated by an electronic sound source such as a MIDI sound source.

より好ましい態様においては、上記エンベロープの振幅が第1の閾値を上回ったことを契機として当該振幅に基づきベロシティを算出するベロシティ算出手段を有し、発音制御手段は、ベロシティ算出手段により算出されたベロシティを上記発音の指示に付加し、閾値更新手段は、少なくとも1つの打撃体が打楽器の打面に向かって移動中であると判定された場合に第1の閾値をより小さな値に更新することを特徴とする。このような態様によれば、第1の閾値に小さな値が設定されるため、上記エンベロープの振幅が所定の閾値を上回ったか否かの判定において、当該閾値を上回った振幅を検出するのに要する時間が短縮される。したがって、ノートオン信号をMIDI音源等に与える際のレーテンシの発生を防止することが可能になる。   In a more preferred aspect, the apparatus has velocity calculation means for calculating a velocity based on the amplitude when the amplitude of the envelope exceeds a first threshold, and the sound generation control means includes the velocity calculated by the velocity calculation means. Is added to the pronunciation instruction, and the threshold value updating means updates the first threshold value to a smaller value when it is determined that at least one percussion body is moving toward the percussion surface of the percussion instrument. Features. According to such an aspect, since a small value is set for the first threshold value, it is necessary to detect the amplitude that exceeds the threshold value in determining whether or not the amplitude of the envelope exceeds the predetermined threshold value. Time is shortened. Therefore, it is possible to prevent the occurrence of latency when a note-on signal is supplied to a MIDI sound source or the like.

また別の好ましい態様においては、振動検出手段の出力信号に補間処理を施し、上記エンベロープを表すエンベロープデータを出力するエンベロープ抽出手段と、動作検出手段の出力信号を解析し、上記少なくとも1つの打撃体が上記打楽器の打面に向かって移動中であると判定された場合にエンベロープ抽出手段における補間速度をより小さな値に更新する補間速度更新手段とをさらに有することを特徴とする。このような態様によれば、エンベロープ波形にノイズが含まれる確率が減少するため、第1の閾値に小さな値を設定しても、エンベロープの振幅が所定値を上回ったか否かの判定において、ノイズに起因する誤判定が発生することを防止することが可能となる。   In another preferred embodiment, the output signal of the vibration detection means is subjected to interpolation processing, envelope extraction means for outputting envelope data representing the envelope, and the output signal of the motion detection means is analyzed, and the at least one impacting body Is further provided with interpolation speed updating means for updating the interpolation speed in the envelope extraction means to a smaller value when it is determined that the movement is toward the percussion surface of the percussion instrument. According to such an aspect, since the probability that noise is included in the envelope waveform is reduced, even if a small value is set for the first threshold, it is possible to determine whether the envelope amplitude exceeds a predetermined value. It is possible to prevent an erroneous determination due to the occurrence of the error.

さらに好ましい態様においては、本発明の発音制御装置は、打面に向かって打撃体が移動中に動作検出手段から出力される出力信号または当該出力信号の特徴を示す特徴量を記録する記録手段を備え、閾値更新手段は、発音状態において少なくとも1つの打撃体が打面に向かって移動中であるか否かの判定を記録手段の記録内容を参照して行うことを特徴とする。このような態様によれば、打楽器の演奏に先立ってその演奏者特有の演奏動作を記録しておくことで、演奏者の演奏動作の個性を加味しつつ連打に起因する音抜けを確実に防止することが可能になる。   In a further preferred aspect, the sound generation control device of the present invention comprises a recording means for recording an output signal output from the motion detection means or a feature amount indicating the feature of the output signal while the impacting body is moving toward the hitting surface. The threshold update means is characterized in that it is determined whether or not at least one striking body is moving toward the hitting surface in the sounding state with reference to the recorded content of the recording means. According to such an aspect, by recording a performance action peculiar to the performer prior to the performance of the percussion instrument, sound omission caused by repeated strikes can be surely prevented while taking into account the individual performance characteristics of the performer. It becomes possible to do.

本発明の第1実施形態である発音制御装置1の構成例を示すブロック図である。It is a block diagram which shows the structural example of the sound generation control apparatus 1 which is 1st Embodiment of this invention. 本発明の第2実施形態である発音制御装置1Aの構成例を示すブロック図である。It is a block diagram which shows the structural example of 1 A of sound generation control apparatuses which are 2nd Embodiment of this invention. 同実施形態におけるエンベロープ抽出部24bの構成を示す図である。It is a figure which shows the structure of the envelope extraction part 24b in the same embodiment. 同実施形態において、エンベロープ抽出部24bが生成するエンベロープデータBの表すエンベロープ波形および当該エンベロープデータBの変化に応じて遷移する各種データの詳細を示す図である。In the same embodiment, it is a figure which shows the detail of the various data which change according to the envelope waveform which the envelope extraction part 24b produces | generates the envelope waveform B and the said envelope data B change. 同実施形態において、周知のトリガ検出処理の内容を示すフローチャートである。In the same embodiment, it is a flowchart which shows the content of the well-known trigger detection process. 同実施形態において、エンベロープ抽出部24bが生成するエンベロープデータBの表すエンベロープ波形にノイズが重畳されている様子を示す図である。In the same embodiment, it is a figure which shows a mode that noise is superimposed on the envelope waveform which the envelope data B which the envelope extraction part 24b produces | generates represents. 同実施形態において、閾値更新部26cが実行する閾値更新処理の内容を示すフローチャートである。In the same embodiment, it is a flowchart which shows the content of the threshold value update process which the threshold value update part 26c performs. 同実施形態において、補間速度更新部26dが実行する補間速度更新処理の内容を示すフローチャートである。In the same embodiment, it is a flowchart which shows the content of the interpolation speed update process which the interpolation speed update part 26d performs. 同実施形態において、エンベロープ抽出部24bが生成するエンベロープデータBの表すエンベロープ波形および当該エンベロープデータBの変化に応じて遷移する各種データの詳細を示す図である。In the same embodiment, it is a figure which shows the detail of the various data which change according to the envelope waveform which the envelope extraction part 24b produces | generates the envelope waveform B and the said envelope data B change.

<第1実施形態>
以下、図面を参照しつつ、本発明の実施形態について説明する。
図1は、本発明の第1実施形態である発音制御装置1の構成例を示すブロック図である。発音制御装置1は、生ドラムなどの打楽器2のミュート演奏を実現するためのものであり、サウンドシステム3に接続されている。サウンドシステム3は、電子音源と、この電子音源から出力されるオーディオ信号に応じて音を放射するスピーカとを含んでいる。本実施形態では上記電子音源としてMIDI音源が採用されている。
<First Embodiment>
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram showing a configuration example of a sound generation control device 1 according to the first embodiment of the present invention. The sound generation control device 1 is for realizing a mute performance of a percussion instrument 2 such as a raw drum, and is connected to a sound system 3. The sound system 3 includes an electronic sound source and a speaker that emits sound in accordance with an audio signal output from the electronic sound source. In the present embodiment, a MIDI sound source is adopted as the electronic sound source.

発音制御装置1は、打楽器2に対する演奏動作に応じてサウンドシステム3に発音制御信号を出力する装置である。打楽器2に対する演奏動作とは、スティックなどの打撃体により打楽器2の打面を打撃する動作のことをいい、発音制御信号とは、電子音源、すなわちMIDI音源に対してノートオンやノートオフを指示するMIDI信号のことを言う。本実施形態の発音制御装置1は、打楽器2の打面を連打するような演奏動作が為された場合であっても、音抜けが発生しないように構成されており、この点に本実施形態の特徴がある。より詳細に説明すると、発音制御装置1は、図1に示すように、動作検出手段10、振動検出手段12、発音制御手段14、および閾値更新手段16を有する。発音制御装置1を構成する各手段の役割および具体的な構成は以下の通りである。   The sound generation control device 1 is a device that outputs a sound generation control signal to the sound system 3 in accordance with a performance operation with respect to the percussion instrument 2. The performance operation with respect to the percussion instrument 2 refers to the operation of hitting the percussion surface of the percussion instrument 2 with an impacting body such as a stick. This is the MIDI signal to be used. The sound generation control device 1 according to the present embodiment is configured so that no sound is lost even when a performance operation is performed such that the percussion surface of the percussion instrument 2 is repeatedly hit. There are features. More specifically, the sound generation control device 1 includes a motion detection means 10, a vibration detection means 12, a sound generation control means 14, and a threshold update means 16, as shown in FIG. The role and specific configuration of each means constituting the sound generation control device 1 are as follows.

動作検出手段10は、打楽器2の打面を打撃するための打撃体の動きを検出し、その検出結果を示すデータを閾値更新手段16に出力する。前述したように本実施形態では、打楽器2の打面を打撃するための打撃体としてスティックが用いられている。動作検出手段10は、当該スティックに内蔵された3軸の加速度センサ10aと、加速度センサ10aの出力信号にA/D変換を施してデジタル形式の波形データに変換し閾値更新手段16に与えるA/D変換器10bと、を含んでいる。加速度センサ10aは、演奏者の演奏動作に応じてスティックに発生した加速度を検出し、上記3つの軸に沿った加速度の大きさおよび方向を示すアナログ信号を出力する処理を周期的に繰り返す。   The motion detection means 10 detects the movement of the hitting body for hitting the hitting surface of the percussion instrument 2 and outputs data indicating the detection result to the threshold update means 16. As described above, in the present embodiment, a stick is used as a hitting body for hitting the hitting surface of the percussion instrument 2. The motion detection means 10 is a three-axis acceleration sensor 10a built in the stick, and A / D conversion is performed on the output signal of the acceleration sensor 10a to convert it into digital waveform data, which is supplied to the threshold update means 16 D converter 10b. The acceleration sensor 10a periodically repeats the process of detecting the acceleration generated on the stick in accordance with the performance operation of the performer and outputting an analog signal indicating the magnitude and direction of the acceleration along the three axes.

振動検出手段12は、打楽器2に対する演奏者の演奏動作に応じて当該打楽器2の打面に生じた振動を検出し、その振動波形を表す信号を、その振幅値が0〜1の範囲に収まるように規格化して出力する。図1に示すように、振動検出手段12は、打楽器2の打面に取り付けられ、当該打面に生じた振動の波形を示すアナログ信号を出力する処理を周期的に繰り返す振動センサ12aと、振動センサ12aの出力信号にA/D変換を施してデジタル形式の波形データに変換し発音制御手段14に与えるA/D変換器12bと、を含んでいる。   The vibration detecting means 12 detects the vibration generated on the percussion surface of the percussion instrument 2 in accordance with the player's performance of the percussion instrument 2, and the signal representing the vibration waveform falls within the range of 0 to 1. So that the output is normalized. As shown in FIG. 1, the vibration detection means 12 is attached to the hitting surface of the percussion instrument 2, and the vibration sensor 12 a periodically repeats the process of outputting an analog signal indicating the waveform of the vibration generated on the hitting surface. And an A / D converter 12b that performs A / D conversion on the output signal of the sensor 12a to convert it into digital waveform data and supplies it to the sound generation control means 14.

発音制御手段14は、振動検出手段12の出力データに応じてサウンドシステム3の発音制御を行う。発音制御手段14は、サウンドシステム3による放音(発音)が行われていない放音停止状態と、同放音が行われている放音状態のそれぞれにおいて以下の処理を実行する。放音停止状態においては、発音制御手段14は、振動検出手段12の出力データの表す波形のエンベロープの振幅が第1の閾値を上回ったことを契機として、発音制御装置1の内部状態を無音状態から発音状態に遷移させ、発音を指示する発音指示信号をサウンドシステム3へ出力し当該サウンドシステム3を発音させる。一方、放音状態においては、発音制御手段14は、上記振幅が第2の閾値を下回ったことを契機として、上記内部状態を発音状態から無音状態へ遷移させ、発音の停止を指示する停止指示信号をサウンドシステム3へ出力し当該サウンドシステム3の発音を停止させる。このような役割を果たすため、発音制御手段14は、図1に示すように、記憶部14a、エンベロープ抽出部14b、閾値判定部14c、および発音制御信号生成部14dを含んでいる。   The sound generation control unit 14 performs sound generation control of the sound system 3 according to the output data of the vibration detection unit 12. The sound generation control means 14 performs the following processing in each of the sound emission stop state where sound emission (sound generation) is not performed by the sound system 3 and the sound emission state where the sound emission is performed. In the sound emission stop state, the sound generation control unit 14 changes the internal state of the sound generation control device 1 to the silent state when the amplitude of the envelope of the waveform represented by the output data of the vibration detection unit 12 exceeds the first threshold value. , The sound generation instruction signal is output to the sound system 3 to generate sound. On the other hand, in the sound emission state, the sound generation control unit 14 causes the internal state to transition from the sound generation state to the silence state when the amplitude falls below the second threshold value, and a stop instruction for instructing the sound generation to stop. The signal is output to the sound system 3 and the sound generation of the sound system 3 is stopped. In order to fulfill such a role, the sound generation control means 14 includes a storage unit 14a, an envelope extraction unit 14b, a threshold value determination unit 14c, and a sound generation control signal generation unit 14d as shown in FIG.

記憶部14aは、例えばRAM(Random Access Memory)などの揮発性メモリと、フラッシュROM(Read
Only Memory)などの不揮発性メモリとを含んでいる。揮発性メモリには、発音制御装置1の内部状態を表す状態データS、前述した第1および第2の閾値の各々を表す閾値データTh1およびTh2が格納される。不揮発性メモリには、状態データS、閾値データTh1およびTh2の各々の初期値が格納される。本実施形態では、状態データSの初期値として無音状態を表す値が上記不揮発性メモリに格納されており、閾値データTh1およびTh2の各々の初期値を表す値Th0が格納されている。これら初期値を表す各データは、発音制御装置1の電源投入を契機として閾値判定部14cによって不揮発性メモリから読み出され、状態データS、閾値データTh1およびTh2として揮発性メモリに格納される。
The storage unit 14a includes a volatile memory such as a RAM (Random Access Memory) and a flash ROM (Read
Non-volatile memory such as “Only Memory”. The volatile memory stores state data S representing the internal state of the sound generation control device 1 and threshold data Th1 and Th2 representing the first and second threshold values described above. In the nonvolatile memory, initial values of the state data S and the threshold data Th1 and Th2 are stored. In the present embodiment, a value representing a silent state is stored in the nonvolatile memory as an initial value of the state data S, and a value Th0 representing each initial value of the threshold data Th1 and Th2 is stored. Each data representing these initial values is read from the nonvolatile memory by the threshold value determination unit 14c when the sounding control device 1 is turned on, and is stored in the volatile memory as the state data S and threshold value data Th1 and Th2.

エンベロープ抽出部14bは、例えば全波整流回路およびローパスフィルタであり、振動検出手段12の出力データからその出力データの表す波形のエンベロープ(包絡線)を表すエンベロープデータを生成し、閾値判定部14cに与える。閾値判定部14cは、発音制御装置1の内部状態が無音状態の場合と発音状態の場合とで異なる処理を実行する。発音制御装置1の内部状態が無音状態である場合には、閾値判定部14cは、上記エンベロープデータを受け取る毎に、そのエンベロープデータの表す振幅値が閾値データth1の表す第1の閾値を上回ったか否かを判定し、その判定結果がYesである場合に、上記内部状態を無音状態から発音状態に更新するとともに発音制御信号生成部14dに発音指示信号の生成を指示する。発音制御信号生成部14dは、閾値判定部14cによる制御の下、発音指示信号を生成しサウンドシステム3に与える。これに対して、発音制御装置1の内部状態が発音状態である場合には、閾値判定部14cは、上記エンベロープデータを受け取る毎に、そのエンベロープデータの表す振幅値が閾値データth2の表す第2の閾値を下回ったか否かを判定し、その判定結果がYesである場合に、上記内部状態を発音状態から無音状態に更新するとともに発音制御信号生成部14dに停止指示信号の生成を指示する。発音制御信号生成部14dは、閾値判定部14cによる制御の下、停止指示信号を生成しサウンドシステム3に与える。   The envelope extraction unit 14b is, for example, a full-wave rectifier circuit and a low-pass filter. The envelope extraction unit 14b generates envelope data representing an envelope (envelope) of the waveform represented by the output data from the output data of the vibration detection unit 12, and sends the envelope data to the threshold determination unit 14c. give. The threshold determination unit 14c executes different processes depending on whether the internal state of the sound generation control device 1 is a silent state or a sound generation state. When the internal state of the sound generation control device 1 is a silent state, the threshold value determination unit 14c receives the envelope data and has the amplitude value represented by the envelope data exceed the first threshold value represented by the threshold data th1? If the determination result is Yes, the internal state is updated from the silent state to the sounding state, and the sounding control signal generating unit 14d is instructed to generate the sounding instruction signal. The sound generation control signal generation unit 14d generates a sound generation instruction signal and gives it to the sound system 3 under the control of the threshold value determination unit 14c. On the other hand, when the internal state of the sound generation control device 1 is the sound generation state, the threshold value determination unit 14c receives the second envelope data, and the amplitude value represented by the envelope data represents the second value represented by the threshold data th2. If the determination result is Yes, the internal state is updated from the sounding state to the silent state, and the sounding control signal generation unit 14d is instructed to generate a stop instruction signal. The sound generation control signal generation unit 14d generates a stop instruction signal and gives it to the sound system 3 under the control of the threshold determination unit 14c.

閾値更新手段16は、動作検出手段10の出力データを解析し、発音状態において少なくとも1つの打撃体が打楽器2の打面に向かって移動中であると判定された場合に第2の閾値を初期値よりも大きな値に更新する。このような役割を果たすため、閾値更新手段16は、図1に示すように、モーション検出部16a、動作判定部16b、および閾値更新部16cを含んでいる。これら各部の役割は以下の通りである。   The threshold update unit 16 analyzes the output data of the motion detection unit 10 and sets the second threshold as an initial value when it is determined that at least one percussion body is moving toward the percussion surface of the percussion instrument 2 in the sounding state. Update to a value greater than the value. In order to fulfill such a role, the threshold update unit 16 includes a motion detection unit 16a, an operation determination unit 16b, and a threshold update unit 16c, as shown in FIG. The role of each part is as follows.

モーション検出部16aは、動作検出手段10の出力データの表す加速度を積分した速度の大きさを算出し、算出された値が所定の閾値を上回っていた場合にのみ、上記出力データを動作判定部16bに与える。前述したように動作検出手段10に含まれる加速度センサは3軸の加速度センサであり、上記出力データは各軸に沿った加速度を積分した速度成分の大きさおよび方向を表すデータである。モーション検出部16aは、各速度成分の二乗和(或いは当該二乗和の平方根)を算出し、その算出結果が上記閾値を上回っている場合にのみ、上記出力データを動作判定部16bに与える。このようなモーション検出部16aを設けたのは、演奏動作とは無関係な打撃体の微細な動きが演奏動作であると誤判断されることを回避するためである。   The motion detection unit 16a calculates the magnitude of the speed obtained by integrating the acceleration represented by the output data of the motion detection means 10, and only when the calculated value exceeds a predetermined threshold value, the motion detection unit 16b. As described above, the acceleration sensor included in the motion detection means 10 is a triaxial acceleration sensor, and the output data is data representing the magnitude and direction of the velocity component obtained by integrating the acceleration along each axis. The motion detection unit 16a calculates the sum of squares of each speed component (or the square root of the sum of the squares), and gives the output data to the motion determination unit 16b only when the calculation result exceeds the threshold value. The reason for providing such a motion detection unit 16a is to avoid erroneously determining that a fine movement of the impacting body that is unrelated to the performance operation is a performance operation.

動作判定部16bは、記憶部14aに格納されている状態データSとモーション検出部16aから与えられた出力データとを参照し、前者が発音状態を表し、かつ、後者の示す鉛直方向の速度が正の値(すなわち、鉛直下向きである)であるか否かを判定する。そして、動作判定部16bは、上記判定結果が“Yes”であれば、前述した第2の閾値の更新を指示する制御信号を閾値更新部16cに与える。閾値更新部16cは、この制御信号の受信を契機として、記憶部14aの揮発性メモリに格納されている閾値データTh2を初期値Th0よりも所定量Δ(Δ>0)だけ大きな値に更新する。なお、第2の閾値の更新量Δについては適宜実験を行い、好適な値(すなわち、連打の際に音漏れを確実に防止できる値)に設定するようにすれば良い。
以上が発音制御装置1の構成である。
The motion determination unit 16b refers to the state data S stored in the storage unit 14a and the output data provided from the motion detection unit 16a, the former indicates a sound generation state, and the vertical speed indicated by the latter is It is determined whether or not it is a positive value (that is, vertically downward). Then, when the determination result is “Yes”, the operation determination unit 16b provides the threshold update unit 16c with a control signal instructing the update of the second threshold. The threshold update unit 16c is triggered by the reception of this control signal to update the threshold data Th2 stored in the volatile memory of the storage unit 14a to a value larger than the initial value Th0 by a predetermined amount Δ (Δ> 0). . It should be noted that the second threshold update amount Δ may be appropriately tested and set to a suitable value (that is, a value that can reliably prevent sound leakage during repeated hits).
The above is the configuration of the sound generation control device 1.

演奏者がスティックを用いて打楽器2の打面の連打を行う場合、その最初の打撃の際に発音制御装置1の内部状態は発音状態となっており、当該打撃に後続する打撃のためにスティックを振り下ろした段階では、動作判定部16bの判定結果は“Yes”となり、第2の閾値th2は初期値th0よりも所定量Δだけ大きな値に更新されている。第2の閾値th2は初期値th0よりも所定量Δだけ大きな値に更新されるため、発音状態から無音状態の遷移が発生しやすくなる。このため、エンベロープ検出部14bの出力するエンベロープデータの表す振幅値が第2の閾値(すなわち、th0+Δ)を下回れば、発音制御装置1の内部状態は無音状態に更新され、上記後続の打撃により上記振幅値が第1の閾値を上回ったことを契機として発音指示信号がサウンドシステム3へ出力される。   When the player performs a continuous hitting of the percussion surface of the percussion instrument 2 using a stick, the internal state of the sound generation control device 1 is in a sounding state at the time of the first hitting, and the stick is used for a hit following the hitting. At the stage of swinging down, the determination result of the operation determination unit 16b is “Yes”, and the second threshold th2 is updated to a value larger by a predetermined amount Δ than the initial value th0. Since the second threshold th2 is updated to a value larger than the initial value th0 by a predetermined amount Δ, a transition from the sound generation state to the silence state is likely to occur. For this reason, if the amplitude value represented by the envelope data output from the envelope detector 14b falls below the second threshold value (ie, th0 + Δ), the internal state of the sound generation control device 1 is updated to the silent state, and the above-described subsequent hitting causes the above-described impact to occur. A sound generation instruction signal is output to the sound system 3 when the amplitude value exceeds the first threshold value.

このように本実施形態によれば、電子音源による打楽器の演奏音の発音制御において、打面の連打に起因する音抜の発生を回避することが可能になる。本実施形態では、生ドラムのミュート演奏の際の発音制御への適用例を説明したが、電子ドラムなどの電子打楽器に発音制御装置1を組み込み、当該電子打楽器における発音制御に発音制御装置1を適用しても勿論良い。   As described above, according to the present embodiment, it is possible to avoid the occurrence of sound removal due to the hitting of the hitting surface in the sound generation control of the percussion instrument performance sound by the electronic sound source. In the present embodiment, an example of application to sound generation control during mute performance of a live drum has been described. However, the sound generation control device 1 is incorporated in an electronic percussion instrument such as an electronic drum, and the sound generation control device 1 is used for sound generation control in the electronic percussion instrument. Of course, it may be applied.

<B:第2実施形態>
図2は、本発明の第2実施形態である発音制御装置1Aの構成例を示すブロック図である。第2実施形態の発音制御装置1Aは、第1の閾値Th1を上回った後、ベロシティを付加した発音指示信号を迅速に出力することができるように構成されており、この点に本実施形態の特徴がある。図2と図1とを対比すれば明らかなように、発音制御装置1Aは発音制御手段14に換えて発音制御手段24を有する点と、閾値更新手段16に換えて閾値更新手段26を有する点が、発音制御装置1と異なる。
<B: Second Embodiment>
FIG. 2 is a block diagram illustrating a configuration example of the sound generation control device 1A according to the second embodiment of the present invention. The sound generation control device 1A of the second embodiment is configured to be able to quickly output a sound generation instruction signal to which velocity has been added after exceeding the first threshold value Th1. There are features. As is clear from the comparison between FIG. 2 and FIG. 1, the sound generation control device 1 </ b> A has a sound generation control means 24 instead of the sound generation control means 14, and has a threshold update means 26 instead of the threshold update means 16. However, the sound generation control device 1 is different.

第2実施形態による発音制御手段24は、記憶部14aに換えて記憶部24aを、エンベロープ抽出部14bに換えてエンベロープ抽出部24bを、閾値判定部14cに換えて閾値判定部24cを、発音制御信号生成部14dに換えて発音制御信号生成部24dを有し、さらに上記各部に加えてベロシティ算出部24eを有する点において発音制御手段14と異なる。エンベロープ抽出部24bは、例えばエンベロープフォロワであり、振動検出手段12の出力データに補間処理を施し、その出力データの表す波形のエンベロープを表すエンベロープデータを生成し、閾値判定部24cに与える。   The sound generation control means 24 according to the second embodiment performs sound generation control on the storage unit 24a instead of the storage unit 14a, the envelope extraction unit 24b instead of the envelope extraction unit 14b, and the threshold value determination unit 24c instead of the threshold value determination unit 14c. It differs from the sound generation control means 14 in that it has a sound generation control signal generation section 24d in place of the signal generation section 14d, and further has a velocity calculation section 24e in addition to the above-mentioned sections. The envelope extraction unit 24b is, for example, an envelope follower, performs interpolation processing on the output data of the vibration detection means 12, generates envelope data representing the waveform envelope represented by the output data, and supplies the envelope data to the threshold determination unit 24c.

図3は、エンベロープ抽出部24bの構成を示す図である。図3に示すように、エンベロープ抽出部24bは、全波整流部241と補間部242とを有する。全波整流部241は、振動検出手段12の出力データを全波整流し、そのエンベロープ波形を表すエンベロープデータを補間部242に出力する。補間部242は、増幅部2421および2422と、加算部2423および2424と、遅延処理部2425とを有し、全波整流部241から出力されたエンベロープデータに対し補間処理を実行する。   FIG. 3 is a diagram illustrating a configuration of the envelope extraction unit 24b. As illustrated in FIG. 3, the envelope extraction unit 24 b includes a full wave rectification unit 241 and an interpolation unit 242. The full wave rectification unit 241 performs full wave rectification on the output data of the vibration detection unit 12 and outputs envelope data representing the envelope waveform to the interpolation unit 242. The interpolation unit 242 includes amplification units 2421 and 2422, addition units 2423 and 2424, and a delay processing unit 2425, and performs an interpolation process on the envelope data output from the full wave rectification unit 241.

増幅部2421は、全波整流部241から受け取ったエンベロープデータの振幅値をα(0<α≦1)倍し、増幅後のエンベロープデータを加算部2423に出力する。遅延処理部2425は、加算部2423から出力されたエンベロープデータに対し1サンプル分の遅延処理を施し、遅延処理後のエンベロープデータを増幅部2422、加算部2424および閾値判定部24cに与える。増幅部2422は、遅延処理部2425から出力されたエンベロープデータの振幅値を(1−α)倍し、増幅後のエンベロープデータを加算部2423に出力する。加算部2423は、増幅部2421および増幅部2422から出力されたエンベロープデータを加算し、その算出結果を遅延処理部2425に与える。つまり、増幅部2422から加算部2423に出力されるエンベロープデータは、増幅部2421から加算部2423に出力されるエンベロープデータよりも1サンプル前のエンベロープデータに対応する。従って、上記各エンベロープデータをαに応じた割合で混合することにより、滑らかなエンベロープ波形を表すエンベロープデータを生成することが可能となる。以下、補間部242が生成するエンベロープデータを構成するサンプルデータの各々を「エンベロープデータB」と呼ぶ。ここで、上記αはエンベロープデータBの表すエンベロープ波形の滑らかさの度合いを示す指標(補間係数)であり、αが1に近づくほど、加算部2423に入力されるエンベロープデータのうち、1サンプル前のエンベロープデータの割合が少なくなり、補間処理の効果が小さくなる。一方、αが0に近づくほど、加算部2423に入力されるエンベロープデータのうち、1サンプル前のエンベロープデータの割合が多くなり、補間処理の効果が大きくなる。従って、補間係数αの値を適宜設定することにより、補間処理の効果を最適化することが可能となる。   The amplifying unit 2421 multiplies the amplitude value of the envelope data received from the full-wave rectifying unit 241 by α (0 <α ≦ 1), and outputs the amplified envelope data to the adding unit 2423. The delay processing unit 2425 performs a delay process for one sample on the envelope data output from the adding unit 2423, and provides the envelope data after the delay processing to the amplifying unit 2422, the adding unit 2424, and the threshold value determining unit 24c. The amplifying unit 2422 multiplies the amplitude value of the envelope data output from the delay processing unit 2425 by (1−α), and outputs the amplified envelope data to the adding unit 2423. The adding unit 2423 adds the envelope data output from the amplifying unit 2421 and the amplifying unit 2422 and gives the calculation result to the delay processing unit 2425. That is, the envelope data output from the amplifying unit 2422 to the adding unit 2423 corresponds to the envelope data one sample before the envelope data output from the amplifying unit 2421 to the adding unit 2423. Accordingly, it is possible to generate envelope data representing a smooth envelope waveform by mixing the envelope data at a ratio corresponding to α. Hereinafter, each of the sample data constituting the envelope data generated by the interpolation unit 242 is referred to as “envelope data B”. Here, α is an index (interpolation coefficient) indicating the degree of smoothness of the envelope waveform represented by the envelope data B, and the closer α is to 1, the more one sample of the envelope data input to the adder 2423 The ratio of the envelope data is reduced, and the effect of the interpolation process is reduced. On the other hand, as α approaches 0, the ratio of envelope data one sample before the envelope data input to the adder 2423 increases, and the effect of the interpolation process increases. Therefore, the effect of the interpolation process can be optimized by appropriately setting the value of the interpolation coefficient α.

本実施形態では、補間係数αとして、アタック時とリリース時とで異なる値が設定される。より詳細に説明すると、図3に示すように、全波整流部241から出力されたエンベロープデータと遅延処理部2425から出力されたエンベロープデータは、加算部2424に出力され、前者のエンベロープデータと後者のエンベロープデータ(その振幅値を−1倍したデータ)とが加算される。加算部2424から出力されるエンベロープデータの振幅値の上昇時、すなわちアタック時には、上記加算結果の符号が正となり、アタック時の補間係数(補間係数αi)が設定される。一方、加算部2424から出力されるエンベロープデータの振幅値の下降時、すなわちリリース時には、上記加算結果の符号が負となり、リリース時の補間係数(補間係数αd)が設定される。   In the present embodiment, a different value is set as the interpolation coefficient α at the time of attack and at the time of release. More specifically, as shown in FIG. 3, the envelope data output from the full-wave rectifying unit 241 and the envelope data output from the delay processing unit 2425 are output to the adding unit 2424, and the former envelope data and the latter Envelope data (data obtained by multiplying the amplitude value by -1) is added. When the amplitude value of the envelope data output from the adder 2424 increases, that is, when an attack is performed, the sign of the addition result is positive, and an interpolation coefficient (interpolation coefficient αi) at the time of attack is set. On the other hand, when the amplitude value of the envelope data output from the adding unit 2424 is lowered, that is, at the time of release, the sign of the addition result is negative, and the interpolation coefficient (interpolation coefficient αd) at the time of release is set.

記憶部24aの揮発性メモリには、第1の閾値を表す閾値データTh1、増加フラグIncFlag、最小値Bmin、係数Bmul、最大値Bmax、トリガ検出フラグTrigFlag、アタック補間速度AtkItpSpeedおよびリリース補間速度RelItpSpeedが格納される。不揮発性メモリには、上記各データの初期値が格納される。増加フラグIncFlagは、トリガ検出される直前までの状態においてエンベロープデータBの表す振幅値が増加状態にあるか否かを示すフラグである。最小値Bminは、エンベロープデータBの最小値を示すデータである。係数Bmulは、エンベロープデータBの表す振幅値が最小値Bminに対して何倍であるかを示すデータである。最大値Bmaxは、エンベロープデータBの最大値を示すデータである。トリガ検出フラグTrigFlagは、トリガが検出されたか否かを示すフラグである。より詳細には、トリガ検出フラグTrigFlagは、エンベロープデータBの表す振幅値が閾値データTh1(図4:Bmin1およびBmin2に対応)の表す第1の閾値よりも大きな所定値(Bmul×Bmin)を上回ったか否かを示す。アタック補間速度AtkItpSpeedは、アタック発生後のエンベロープデータBの表す振幅値が増加状態にある場合において、エンベロープ抽出部24bが補間処理を実行する際に設定される補間係数αiに応じた値である。リリース補間速度RelItpSpeedは、アタック発生後のエンベロープデータBの表す振幅値が減少状態にある場合において、エンベロープ抽出部24bが補間処理を実行する際に設定される補間係数αdに応じた値である。本実施形態では、上記各データの初期値として、閾値データTh1には0.0001が、増加フラグIncFlagには0が、最小値Bminには1.0が、最大値Bmaxには0.0が、トリガ検出フラグTrigFlagには0が、係数Bmul、アタック補間速度AtkItpSpeedおよびリリース補間速度RelItpSpeedには所定値が記憶部24aの不揮発性メモリに格納されている。   In the volatile memory of the storage unit 24a, threshold data Th1 representing a first threshold, an increase flag IncFlag, a minimum value Bmin, a coefficient Bmul, a maximum value Bmax, a trigger detection flag TrigFlag, an attack interpolation speed AtkItpSpeed, and a release interpolation speed RelItSpeed Stored. The initial value of each data is stored in the nonvolatile memory. The increase flag IncFlag is a flag indicating whether or not the amplitude value represented by the envelope data B is in an increasing state until immediately before the trigger is detected. The minimum value Bmin is data indicating the minimum value of the envelope data B. The coefficient Bmul is data indicating how many times the amplitude value represented by the envelope data B is larger than the minimum value Bmin. The maximum value Bmax is data indicating the maximum value of the envelope data B. The trigger detection flag TrigFlag is a flag indicating whether or not a trigger is detected. More specifically, in the trigger detection flag TrigFlag, the amplitude value represented by the envelope data B exceeds the predetermined value (Bmul × Bmin) larger than the first threshold value represented by the threshold data Th1 (corresponding to Bmin1 and Bmin2 in FIG. 4). Indicates whether or not The attack interpolation speed AtkItpSpeed is a value corresponding to the interpolation coefficient αi set when the envelope extraction unit 24b executes the interpolation process when the amplitude value represented by the envelope data B after the attack is in an increasing state. The release interpolation speed RelItpSpeed is a value corresponding to the interpolation coefficient αd set when the envelope extraction unit 24b executes the interpolation process when the amplitude value represented by the envelope data B after the occurrence of the attack is in a decreasing state. In the present embodiment, the initial value of each data is 0.0001 for the threshold data Th1, 0 for the increase flag IncFlag, 1.0 for the minimum value Bmin, and 0.0 for the maximum value Bmax. Further, 0 is stored in the trigger detection flag TrigFlag, and predetermined values are stored in the nonvolatile memory of the storage unit 24a for the coefficient Bmul, the attack interpolation speed AtkItpSpeed, and the release interpolation speed RelItpSpeed.

閾値判定部24cは、エンベロープデータBを受け取る毎に、その振幅値を閾値データTh1、最小値Bmin、最大値BmaxおよびBmul×Bminと比較し、その比較結果に基づき上記各フラグの値を決定する。また、閾値判定部24cは、トリガ検出フラグTrigFlagを1に更新すると、その時点の振幅値Bをベロシティ算出部24eに通知しベロシティVelの算出を指示する。ベロシティ算出部24eは、上記通知を受け取ると、上記振幅値v(ただし、v=B)を所定の式f(v)に代入してベロシティVelを算出し、算出結果を発音制御信号生成部24dに与える。発音制御信号生成部24dは、トリガ検出フラグTrigFlagを監視し、その値が1に更新され、かつ、ベロシティ算出部24eからベロシティVelの算出結果を受け取った場合、当該算出結果を付加した発音指示信号を生成しサウンドシステム3に与える。   Every time the threshold value determination unit 24c receives envelope data B, the threshold value value is compared with the threshold value data Th1, the minimum value Bmin, the maximum value Bmax, and Bmul × Bmin, and the value of each flag is determined based on the comparison result. . Further, when the threshold detection unit 24c updates the trigger detection flag TrigFlag to 1, the threshold value determination unit 24c notifies the velocity calculation unit 24e of the amplitude value B at that time and instructs the calculation of the velocity Vel. When the velocity calculation unit 24e receives the notification, the velocity calculation unit 24e calculates the velocity Vel by substituting the amplitude value v (where v = B) into a predetermined expression f (v), and the calculation result is used as the sound generation control signal generation unit 24d. To give. The sound generation control signal generation unit 24d monitors the trigger detection flag TrigFlag, and when the value is updated to 1 and the calculation result of the velocity Vel is received from the velocity calculation unit 24e, the sound generation instruction signal to which the calculation result is added Is generated and given to the sound system 3.

第2実施形態による閾値更新手段26は、モーション検出部16aに換えてモーション検出部26aを、動作判定部16bに換えて動作判定部26bを、閾値更新部16cに換えて閾値更新部26cを有し、さらに上記各部に加えて補間速度更新部26dを有する点において閾値更新手段16と異なる。モーション検出部26aは、動作検出手段10の出力データの表すX、YおよびZの各軸方向の速度を軸ごとに積分した速度データVmotionを算出し、算出結果を動作判定部26bに与える。動作判定部26bは、モーション検出部26aから与えられた速度データVmotionを参照し、当該速度データが示す鉛直方向(Z軸方向)の速度が負の値(すなわち、鉛直下向きである)であるか否かを判定する。そして、動作判定部26bは、上記判定結果がYesであれば、前述した係数Bmulの更新を指示する制御信号(以下、閾値更新指示信号と呼ぶ)を閾値更新部26cに与える。また、動作判定部26bは、上記判定結果がYesであれば、前述したアタック補間速度AtkItpSpeedの更新を指示する制御信号(以下、補間速度更新指示信号と呼ぶ)を補間速度更新部26dに与える。閾値更新部26cは、閾値更新指示信号の受信を契機として、記憶部24aに格納されている係数Bmulの設定値を初期値よりも所定量だけ小さな値に更新する。補間速度更新部26dは、補間速度更新指示信号の受信を契機として、記憶部24aに格納されているアタック補間速度AtkItpSpeedの設定値を所定量だけ小さな値に更新する。なお、係数Bmulの更新量については適宜実験を行い、好適な値に設定するようにすれば良い。同様に、アタック補間速度AtkItpSpeedの更新量についても適宜実験を行い、好適な値(すなわち、上記ノイズに起因する誤判定が発生しない値)に設定するようにすれば良い。
以上が発音制御装置1Aの構成である。
The threshold update unit 26 according to the second embodiment includes a motion detection unit 26a instead of the motion detection unit 16a, an operation determination unit 26b instead of the operation determination unit 16b, and a threshold update unit 26c instead of the threshold update unit 16c. In addition to the above-described units, the difference from the threshold update unit 16 is that an interpolation speed update unit 26d is provided. The motion detection unit 26a calculates speed data Vmotion obtained by integrating the speeds in the X, Y, and Z axial directions represented by the output data of the motion detection unit 10 for each axis, and gives the calculation result to the motion determination unit 26b. The motion determination unit 26b refers to the speed data Vmotion given from the motion detection unit 26a, and whether the speed in the vertical direction (Z-axis direction) indicated by the speed data is a negative value (that is, vertically downward). Determine whether or not. If the determination result is Yes, the operation determination unit 26b provides the threshold update unit 26c with a control signal (hereinafter referred to as a threshold update instruction signal) instructing the update of the coefficient Bmul. If the determination result is Yes, the operation determination unit 26b gives a control signal (hereinafter referred to as an interpolation speed update instruction signal) for instructing the update of the attack interpolation speed AtkItpSpeed to the interpolation speed update unit 26d. The threshold update unit 26c updates the set value of the coefficient Bmul stored in the storage unit 24a to a value smaller than the initial value by a predetermined amount, triggered by reception of the threshold update instruction signal. The interpolation speed update unit 26d updates the set value of the attack interpolation speed AtkItpSpeed stored in the storage unit 24a to a value that is smaller by a predetermined amount when receiving the interpolation speed update instruction signal. Note that the update amount of the coefficient Bmul may be appropriately set to a suitable value by performing an experiment. Similarly, the update amount of the attack interpolation speed AtkItpSpeed may be appropriately tested and set to a suitable value (that is, a value that does not cause erroneous determination due to the noise).
The above is the configuration of the sound generation control device 1A.

次いで、発音制御装置1Aが実行するトリガ検出処理について説明する。以下では、発音制御装置1Aの特徴の理解を容易にするため、まず従来のトリガ検出処理を発音制御装置1Aに実行させた場合について説明する。図4は、エンベロープ抽出部24bが生成するエンベロープデータBの表すエンベロープ波形および当該エンベロープデータBの変化に応じて遷移する各種データの詳細を示す図である。図4(a)は、エンベロープ抽出部24bにより生成されたエンベロープデータBの表す振幅値の時間変化を示す図である。この図において、「アタック1」は、打撃体により打楽器2の打面に1回目の打撃が与えられた時刻を示す。「アタック2」は、打撃体により打楽器2の打面に2回目の打撃が与えられた時刻を示す。図4(b)は増加フラグIncFlagの時間変化を示す図である。図4(c)は最小値Bminの時間変化を示す図である。図4(d)は最大値Bmaxの時間変化を示す図である。図4(e)はトリガ検出フラグTrigFlagの時間変化を示す図である。発音制御装置1の電源投入を契機として、閾値判定部24cは、記憶部24aの不揮発性メモリから各種データの初期値を読み出して、揮発性メモリの所定領域に設定する。この結果、図4(b)〜(e)に示すように、アタック1の発生前の時刻において、増加フラグIncFlag、最小値Bmin、最大値Bmaxおよびトリガ検出フラグTrigFlagには各々の初期値が設定される。   Next, trigger detection processing executed by the sound generation control device 1A will be described. In the following, in order to facilitate understanding of the features of the sound generation control device 1A, a case where the conventional sound generation control device 1A is first executed will be described. FIG. 4 is a diagram showing details of the envelope waveform represented by the envelope data B generated by the envelope extraction unit 24b and various data that transitions according to changes in the envelope data B. FIG. 4A is a diagram illustrating a temporal change in the amplitude value represented by the envelope data B generated by the envelope extraction unit 24b. In this figure, “Attack 1” indicates the time when the first strike was applied to the strike surface of the percussion instrument 2 by the striker. “Attack 2” indicates the time at which the second strike was given to the strike surface of the percussion instrument 2 by the striker. FIG. 4B is a diagram showing a time change of the increase flag IncFlag. FIG. 4C is a diagram showing the change over time of the minimum value Bmin. FIG. 4D is a diagram showing the change over time of the maximum value Bmax. FIG. 4E is a diagram showing a change over time of the trigger detection flag TrigFlag. When the sound generation control device 1 is turned on, the threshold determination unit 24c reads initial values of various data from the nonvolatile memory of the storage unit 24a and sets them in a predetermined area of the volatile memory. As a result, as shown in FIGS. 4B to 4E, the initial values are set in the increase flag IncFlag, the minimum value Bmin, the maximum value Bmax, and the trigger detection flag TrigFlag at the time before the occurrence of the attack 1, respectively. Is done.

閾値判定部24cは、エンベロープデータBを受け取る毎にトリガ検出処理を実行する。図5は、従来のトリガ検出処理の内容を示すフローチャートである。閾値判定部24cは、まず、エンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値を横切って増加したか否かを判定する(ステップSA10)。具体的には、閾値判定部24cは、受け取ったエンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値以上であり、かつ、前回受け取ったエンベロープデータBの表す振幅値(以下、Bold)が上記第1の閾値未満であるか否かを判定する。ステップSA10の判定結果が“Yes”であれば、閾値判定部24cは、増加フラグIncFlagを1に更新し、さらに最小値Bminおよび最大値Bmaxをその時点の振幅値Bに更新して(ステップSA20)、ステップSA30の処理を実行する。ステップSA10の判定結果が“No”であれば、閾値判定部24cはステップSA20の処理を実行することなく、ステップSA30の処理を実行する。   The threshold value determination unit 24c performs a trigger detection process every time the envelope data B is received. FIG. 5 is a flowchart showing the contents of a conventional trigger detection process. The threshold determination unit 24c first determines whether or not the amplitude value represented by the envelope data B has increased across the first threshold represented by the threshold data Th1 (step SA10). Specifically, the threshold value determination unit 24c has an amplitude value represented by the received envelope data B that is greater than or equal to the first threshold value represented by the threshold data Th1, and the amplitude value represented by the previously received envelope data B (hereinafter, Bold). ) Is less than the first threshold value. If the determination result in step SA10 is “Yes”, the threshold determination unit 24c updates the increase flag IncFlag to 1, and further updates the minimum value Bmin and the maximum value Bmax to the current amplitude value B (step SA20). ), The process of step SA30 is executed. If the determination result of step SA10 is “No”, the threshold determination unit 24c executes the process of step SA30 without executing the process of step SA20.

ステップSA30では、閾値判定部24cは、エンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値を横切って減少したか否かを判定する。具体的には、閾値判定部24cは、受け取ったエンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値以下であり、かつ、Boldの表す振幅値が上記第1の閾値よりも大きいか否かを判定する。ステップSA30の判定結果が“Yes”であれば、閾値判定部24cは、増加フラグIncFlagを0、トリガ検出フラグTrigFlagを0、最小値Bminを1.0、最大値Bmaxを0.0にそれぞれ更新し(ステップSA40)、ステップSA50の処理を実行する。ステップSA30の判定結果が“No”であれば、閾値判定部24cはステップSA40の処理を実行することなく、ステップSA50の処理を実行する。   In step SA30, the threshold determination unit 24c determines whether the amplitude value represented by the envelope data B has decreased across the first threshold represented by the threshold data Th1. Specifically, the threshold value determination unit 24c has an amplitude value represented by the received envelope data B that is equal to or smaller than a first threshold value represented by the threshold data Th1, and an amplitude value represented by Bold is greater than the first threshold value. It is determined whether or not. If the determination result in step SA30 is “Yes”, the threshold determination unit 24c updates the increase flag IncFlag to 0, the trigger detection flag TrigFlag to 0, the minimum value Bmin to 1.0, and the maximum value Bmax to 0.0, respectively. (Step SA40), the process of step SA50 is executed. If the determination result of step SA30 is “No”, the threshold determination unit 24c executes the process of step SA50 without executing the process of step SA40.

ステップSA50では、閾値判定部24cは、エンベロープデータBの表す振幅値が増加から減少に転じたか否か(極大となったか否か)を判定する。具体的には、閾値判定部24cは、エンベロープデータBの表す振幅値が最大値Bmax未満であり、かつ、Boldが最大値Bmaxに等しいか否かを判定する。ステップSA50の判定結果が“Yes”であれば、閾値判定部24cは、最小値Bminを初期値(1.0)に更新し(ステップSA60)、ステップSA70の処理を実行する。ステップSA50の判定結果が“No”であれば、閾値判定部24cは、ステップSA60の処理を実行することなく、ステップSA70の処理を実行する。   In step SA50, the threshold determination unit 24c determines whether or not the amplitude value represented by the envelope data B has changed from increasing to decreasing (whether or not it has reached a maximum). Specifically, the threshold determination unit 24c determines whether or not the amplitude value represented by the envelope data B is less than the maximum value Bmax, and that Bold is equal to the maximum value Bmax. If the determination result of step SA50 is “Yes”, the threshold determination unit 24c updates the minimum value Bmin to the initial value (1.0) (step SA60), and executes the process of step SA70. If the determination result of step SA50 is “No”, the threshold determination unit 24c executes the process of step SA70 without executing the process of step SA60.

ステップSA70では、閾値判定部24cは、エンベロープデータBの表す振幅値が減少から増加に転じたか否か(極小となったか否か)を判定する。具体的には、閾値判定部24cは、エンベロープデータBの表す振幅値が最小値Bminより大きく、かつ、Boldが最小値Bminに等しいか否かを判定する。ステップSA70の判定結果が“Yes”であれば、閾値判定部24cは、最大値Bmaxを0.0、増加フラグIncFlagを1、トリガ検出フラグTrigFlagを0にそれぞれ更新し(ステップSA80)、ステップSA90の処理を実行する。ステップSA70の判定結果が“No”であれば、閾値判定部24cは、ステップSA80の処理を実行することなく、ステップSA90の処理を実行する。   In step SA70, the threshold determination unit 24c determines whether or not the amplitude value represented by the envelope data B has started to increase from a decrease (whether or not it has become a minimum). Specifically, the threshold value determination unit 24c determines whether the amplitude value represented by the envelope data B is greater than the minimum value Bmin and whether Bold is equal to the minimum value Bmin. If the determination result in step SA70 is “Yes”, the threshold determination unit 24c updates the maximum value Bmax to 0.0, the increase flag IncFlag to 1, and the trigger detection flag TrigFlag to 0 (step SA80), and step SA90. Execute the process. If the determination result of step SA70 is “No”, the threshold determination unit 24c executes the process of step SA90 without executing the process of step SA80.

ステップSA90では、閾値判定部24cは、エンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値以上か否かを判定する。ステップSA90の判定結果が“No”であれば、閾値判定部24cは増加フラグIncFlagの値が“1”であるか否かを判定する(ステップSA140)。これに対してステップSA90の判定結果が“Yes”であれば、閾値判定部24cは、エンベロープデータBの表す振幅値が最小値Bminよりも小さいか否かを判定する(ステップSA100)。ステップSA100の判定結果が“Yes”であれば、閾値判定部24cは、最小値Bminをその時点の振幅値Bに更新し(ステップSA110)、ステップSA120の処理を実行する。ステップSA100の判定結果が“No”であれば、閾値判定部24cは、ステップSA110の処理を実行することなく、ステップSA120の処理を実行する。   In step SA90, the threshold determination unit 24c determines whether or not the amplitude value represented by the envelope data B is equal to or greater than the first threshold represented by the threshold data Th1. If the determination result in step SA90 is “No”, the threshold determination unit 24c determines whether or not the value of the increase flag IncFlag is “1” (step SA140). On the other hand, if the determination result in step SA90 is “Yes”, the threshold determination unit 24c determines whether or not the amplitude value represented by the envelope data B is smaller than the minimum value Bmin (step SA100). If the determination result in step SA100 is “Yes”, the threshold determination unit 24c updates the minimum value Bmin to the current amplitude value B (step SA110), and executes the process in step SA120. If the determination result of step SA100 is “No”, the threshold determination unit 24c executes the process of step SA120 without executing the process of step SA110.

ステップSA120では、閾値判定部24cは、エンベロープデータBの表す振幅値が最大値Bmax以上であるか否かを判定する。ステップSA120の判定結果が“Yes”であれば、閾値判定部24cは、最大値Bmaxをその時点の振幅値Bに更新し(ステップSA130)、前述したステップSA140の処理を実行する。ステップSA120の判定結果が“No”であれば、閾値判定部24cは、ステップSA130の処理を実行することなく、前述したステップSA140の処理を実行する。   In step SA120, the threshold determination unit 24c determines whether or not the amplitude value represented by the envelope data B is greater than or equal to the maximum value Bmax. If the determination result of step SA120 is “Yes”, the threshold determination unit 24c updates the maximum value Bmax to the current amplitude value B (step SA130), and executes the above-described processing of step SA140. If the determination result of step SA120 is “No”, the threshold determination unit 24c executes the process of step SA140 described above without executing the process of step SA130.

ステップSA140の判定結果が“Yes”である場合は、閾値判定部24cは、エンベロープデータBの表す振幅値がBmul×Bmin以上であるか否かを判定する(ステップSA150)。ステップSA150の判定結果が“No”であれば、閾値判定部24cは、BoldをエンベロープデータBの表す振幅値に更新し(ステップSA170)、トリガ検出処理を終了する。これに対して、ステップSA150の判定結果が“Yes”であれば、トリガ検出フラグTrigFlagを1、増加フラグIncFlagを0にそれぞれ更新(ステップSA160)した後に、ステップSA170の処理を実行する。
以上がトリガ検出処理の流れである。
If the determination result in step SA140 is “Yes”, the threshold determination unit 24c determines whether or not the amplitude value represented by the envelope data B is greater than or equal to Bmul × Bmin (step SA150). If the determination result in step SA150 is “No”, the threshold determination unit 24c updates Bold to the amplitude value represented by the envelope data B (step SA170), and ends the trigger detection process. On the other hand, if the determination result in step SA150 is “Yes”, the trigger detection flag TrigFlag is updated to 1 and the increase flag IncFlag is updated to 0 (step SA160), and then the process of step SA170 is executed.
The above is the flow of the trigger detection process.

図4(a)において、アタック1の発生後、時刻t1までの区間(区間S0)では、Boldの更新のみが行われる。この区間では、エンベロープデータBの表す振幅値は時間の経過とともに順次増加するものの閾値データTh1の表す第1の閾値未満であるためステップSA10の判定結果は‘No’となり、ステップSA30の判定結果も‘No’となる。このため、増加フラグIncFlagの更新は行われず、増加フラグIncFlagは初期値(0)のままとなる(図4(b):区間S0参照)。また、区間S0では、エンベロープデータBの表す振幅値は極大または極小となることはないため、ステップSA50の判定結果は“No”となり、ステップSA70の判定結果も“No”となる。また、エンベロープデータBの表す振幅値は閾値データTh1の表す第1の閾値未満であるためステップSA90の判定結果も“No”となる。また、増加フラグIncFlagの値は0であるため、ステップSA140の判定結果も“No”となるからである。   In FIG. 4A, only the update of the Bold is performed in the section (section S0) from the occurrence of attack 1 to the time t1. In this section, although the amplitude value represented by the envelope data B sequentially increases with the passage of time, it is less than the first threshold value represented by the threshold data Th1, so the determination result in step SA10 is “No”, and the determination result in step SA30 is also “No”. Therefore, the increase flag IncFlag is not updated, and the increase flag IncFlag remains at the initial value (0) (see FIG. 4B: section S0). Further, in the section S0, the amplitude value represented by the envelope data B does not become the maximum or the minimum, so the determination result in Step SA50 is “No”, and the determination result in Step SA70 is also “No”. Further, since the amplitude value represented by the envelope data B is less than the first threshold value represented by the threshold data Th1, the determination result in step SA90 is also “No”. Also, since the value of the increase flag IncFlag is 0, the determination result in step SA140 is also “No”.

時刻t1においてエンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値に達すると、ステップSA10の判定結果は‘Yes’となり、ステップSA20が実行されるため、増加フラグIncFlagは1に更新され、最小値Bminおよび最大値Bmaxの各値はその時点の振幅値Th1(=B)に更新される(図4(b),(c),(d)参照)。時刻t1から時刻t2までの区間(区間S1)では、エンベロープデータBの表す振幅値が極大または極小となることはなく、ステップSA50の判定結果は“No”となり、ステップSA70の判定結果も“No”となり、ステップSA60および80の処理が実行されることなくステップSA90の処理が実行される。区間S1では、エンベロープデータBの表す振幅値は閾値データTh1の表す第1の閾値以上となるため、ステップSA90の判定結果は‘Yes’となり、ステップSA100の処理が実行される。区間S1では、エンベロープデータBの表す振幅値はBmin(当該区間ではBmin=Th1)以上であるため、ステップSA100の判定結果は‘No’となり、ステップSA110の処理を実行することなく、ステップSA120の処理が実行される。区間S1では、エンベロープデータBの表す振幅値は最大値Bmax以上であるため、ステップSA120の判定結果は常に“Yes”となり、次いで実行されるステップSA130においてBmaxがその時点のエンベロープデータBの表す振幅値に更新され、ステップSA140の処理が実行される。区間S1では、増加フラグIncFlagの値は1であるため、ステップSA140の判定結果は‘Yes’となり、ステップSA150の処理が実行される。エンベロープデータBの表す振幅値はBmul×Bmin(ただし、Bmin=Th1)未満であるため、ステップSA150の判定結果は‘No’となり、ステップSA160の処理を実行することなく、ステップSA170の処理が実行され、Boldの更新処理が行われる。つまり、区間S1では、増加フラグIncFlagは1に、最小値BminはTh1に、トリガ検出フラグTrigFlagは0に維持され、最大値BmaxおよびBoldの更新のみが行われる(図4(b),(c),(e),(d):区間S1参照)。   When the amplitude value represented by the envelope data B reaches the first threshold value represented by the threshold data Th1 at time t1, the determination result in step SA10 is “Yes”, and step SA20 is executed, so the increase flag IncFlag is updated to 1. Then, each value of the minimum value Bmin and the maximum value Bmax is updated to the amplitude value Th1 (= B) at that time (see FIGS. 4B, 4C, and 4D). In the section from time t1 to time t2 (section S1), the amplitude value represented by the envelope data B does not become maximum or minimum, the determination result in step SA50 is “No”, and the determination result in step SA70 is also “No”. Thus, the process of step SA90 is executed without executing the processes of steps SA60 and 80. In the section S1, the amplitude value represented by the envelope data B is equal to or greater than the first threshold value represented by the threshold data Th1, so that the determination result in step SA90 is “Yes”, and the processing in step SA100 is executed. In the section S1, the amplitude value represented by the envelope data B is equal to or greater than Bmin (in this section, Bmin = Th1). Therefore, the determination result in step SA100 is “No”, and the processing in step SA120 is not performed without executing the processing in step SA110. Processing is executed. In the section S1, since the amplitude value represented by the envelope data B is equal to or greater than the maximum value Bmax, the determination result in step SA120 is always “Yes”, and in step SA130 to be executed next, Bmax is the amplitude represented by the envelope data B at that time. The value is updated, and the process of step SA140 is executed. In the section S1, since the value of the increase flag IncFlag is 1, the determination result in step SA140 is “Yes”, and the process in step SA150 is executed. Since the amplitude value represented by the envelope data B is less than Bmul × Bmin (Bmin = Th1), the determination result at step SA150 is “No”, and the process at step SA170 is executed without executing the process at step SA160. Then, the update process of the Bold is performed. That is, in the section S1, the increase flag IncFlag is maintained at 1, the minimum value Bmin is maintained at Th1, the trigger detection flag TrigFlag is maintained at 0, and only the maximum values Bmax and Bold are updated (FIGS. 4B and 4C). ), (E), (d): see section S1).

時刻t1以降、エンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値を横切って増加することはないため、以降ステップSA10の判定結果は常に‘No’となる。また、時刻t7に至るまで、エンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値を横切って減少することはないため、時刻t7に至るまでステップSA30の判定結果は常に‘No’となる。また、時刻t7に至るまで、エンベロープデータBの表す振幅値は常に閾値データTh1の表す第1の閾値以上となるため、ステップSA90の判定結果は常に“Yes”となる。また、時刻t3およびt6を除いて、エンベロープデータBの表す振幅値は極大となることがないため、ステップSA50の判定結果は常に“No”となる。また、時刻t4を除いて、エンベロープデータBの表す振幅値は極小となることがないため、ステップSA70の判定結果は常に“No”となる。   After time t1, the amplitude value represented by the envelope data B does not increase across the first threshold value represented by the threshold data Th1, and hence the determination result in step SA10 is always “No”. Since the amplitude value represented by the envelope data B does not decrease across the first threshold value represented by the threshold data Th1 until the time t7, the determination result in step SA30 is always “No” until the time t7. It becomes. Further, since the amplitude value represented by the envelope data B is always equal to or greater than the first threshold value represented by the threshold data Th1 until the time t7, the determination result in step SA90 is always “Yes”. Also, except for the times t3 and t6, the amplitude value represented by the envelope data B does not become maximal, so the determination result in step SA50 is always “No”. Since the amplitude value represented by the envelope data B does not become minimum except for the time t4, the determination result in step SA70 is always “No”.

時刻t2では、エンベロープデータBの表す振幅値は最小値Bmin以上であるため、ステップSA100の判定結果は“No”となり、ステップSA110の処理が実行されることなく、ステップSA120の処理が実行される。時刻t2では、エンベロープデータBの表す振幅値は最大値Bmax以上であるため、ステップSA120の判定結果は“Yes”となり、次いで実行されるステップSA130においてBmaxが更新され、ステップSA140が実行される。上記各処理は、時刻t3に至るまで実行される。時刻t2では、増加フラグIncFlagの値は1であるため、ステップSA140の判定結果は‘Yes’となり、ステップSA150の処理が実行される。時刻t2では、エンベロープデータBの表す振幅値がBmul×Bmin(ただし、Bmin=Th1)に達するため、ステップSA150の判定結果は‘Yes’となり、ステップSA160の処理が実行される。すなわち、トリガ検出フラグTrigFlagが1、増加フラグIncFlagが0にそれぞれ更新される(図4(e),(b)参照)。その結果、発音制御装置1Aの内部状態は無音状態から発音状態へ遷移する。このとき、閾値判定部24cは、時刻t2におけるエンベロープデータBの表す振幅値をベロシティ算出部24eに通知する。ベロシティ算出部24eは、通知された値を所定の式f(v)に代入し(ただし、v=B)、ベロシティVelを算出すると、その算出結果を発音制御信号生成部24dに与える。発音制御信号生成部24dは、上記算出結果を発音指示信号に付加し、サウンドシステム3に出力する。ステップSA160の処理が実行されると、次いでステップSA170の処理が実行され、Boldの更新が行われる。   At time t2, since the amplitude value represented by the envelope data B is equal to or greater than the minimum value Bmin, the determination result of step SA100 is “No”, and the process of step SA120 is executed without executing the process of step SA110. . At time t2, since the amplitude value represented by the envelope data B is equal to or greater than the maximum value Bmax, the determination result in step SA120 is “Yes”, and Bmax is updated in step SA130 to be executed next, and step SA140 is executed. Each of the above processes is executed until time t3. At time t2, since the value of the increase flag IncFlag is 1, the determination result in step SA140 is “Yes”, and the process in step SA150 is executed. At time t2, since the amplitude value represented by the envelope data B reaches Bmul × Bmin (where Bmin = Th1), the determination result in step SA150 is “Yes”, and the processing in step SA160 is executed. That is, the trigger detection flag TrigFlag is updated to 1 and the increase flag IncFlag is updated to 0 (see FIGS. 4E and 4B). As a result, the internal state of the sound generation control device 1A transitions from the silent state to the sound generation state. At this time, the threshold determination unit 24c notifies the velocity calculation unit 24e of the amplitude value represented by the envelope data B at time t2. The velocity calculation unit 24e substitutes the notified value into a predetermined formula f (v) (where v = B), and calculates the velocity Vel, and gives the calculation result to the sound generation control signal generation unit 24d. The sound generation control signal generation unit 24d adds the calculation result to the sound generation instruction signal and outputs it to the sound system 3. When the process of step SA160 is executed, the process of step SA170 is then executed, and the Bold is updated.

増加フラグIncFlagが0に更新されるため、時刻t2から時刻t3までの区間(区間S2)では、ステップSA140の判定結果は‘No’となり、ステップSA150および160の処理を実行することなく、ステップSA170の処理が実行される。つまり、区間S2では、増加フラグIncFlagは0に、最小値Bminは時刻t1におけるエンベロープデータBの表す振幅値(Th1)に、トリガ検出フラグTrigFlagは1にそれぞれ維持され、最大値BmaxおよびBoldの更新のみが行われる(図4(b),(c),(e),(d):区間S2参照)。   Since the increase flag IncFlag is updated to 0, in the section (section S2) from time t2 to time t3, the determination result of step SA140 is “No”, and the processing of steps SA150 and 160 is not performed, and step SA170 is performed. The process is executed. That is, in the section S2, the increase flag IncFlag is maintained at 0, the minimum value Bmin is maintained at the amplitude value (Th1) represented by the envelope data B at time t1, the trigger detection flag TrigFlag is maintained at 1, and the maximum values Bmax and Bold are updated. Only is performed (see FIGS. 4B, 4C, 4E, and 4D: section S2).

時刻t3では、エンベロープデータBの表す振幅値が増加から減少に転じる。すなわち、エンベロープデータBの表す振幅値は極大となるため、ステップSA50の判定結果が“Yes”となり、次いで実行されるステップSA60の処理において最小値Bminの値が1.0に更新される(図4(c))。また、時刻t3から時刻t4までの区間(区間S3)では、エンベロープデータBの表す振幅値は最小値Bmin未満であるため、ステップSA100の判定結果は“Yes”となり、最小値Bminはその時点のエンベロープデータBの表す振幅値に更新され、ステップSA120の処理が実行される。区間S3では、エンベロープデータBの表す振幅値は最大値Bmax未満であるため、ステップSA120の判定結果は“No”となり、ステップSA130の処理を実行することなく、ステップSA140の処理が実行される。区間S3では、増加フラグIncFlagの値は0であるため、ステップSA140の判定結果は“No”となり、ステップSA150の処理を実行することなく、ステップSA170の処理が実行される。つまり、区間S3では、増加フラグIncFlagは0に、最大値Bmaxは時刻t3におけるエンベロープデータBの表す振幅値(1)に、トリガ検出フラグTrigFlagは1にそれぞれ維持され、最小値BminおよびBoldの更新のみが行われる(図4(b),(d),(e),(c):区間S3参照)。   At time t3, the amplitude value represented by envelope data B changes from increasing to decreasing. That is, since the amplitude value represented by the envelope data B is maximum, the determination result in step SA50 is “Yes”, and the value of the minimum value Bmin is updated to 1.0 in the process of step SA60 to be executed next (FIG. 4 (c)). In the section from time t3 to time t4 (section S3), the amplitude value represented by the envelope data B is less than the minimum value Bmin. Therefore, the determination result in step SA100 is “Yes”, and the minimum value Bmin is the current value. The amplitude value represented by the envelope data B is updated, and the process of step SA120 is executed. In the section S3, since the amplitude value represented by the envelope data B is less than the maximum value Bmax, the determination result of step SA120 is “No”, and the process of step SA140 is executed without executing the process of step SA130. In the section S3, since the value of the increase flag IncFlag is 0, the determination result of step SA140 is “No”, and the process of step SA170 is executed without executing the process of step SA150. That is, in the section S3, the increase flag IncFlag is maintained at 0, the maximum value Bmax is maintained at the amplitude value (1) represented by the envelope data B at time t3, the trigger detection flag TrigFlag is maintained at 1, and the minimum values Bmin and Bold are updated. Only (see FIGS. 4B, 4D, 4E, and 4C: section S3).

時刻t4では2回目のアタック(アタック2)が発生し、エンベロープデータBの表す振幅値が減少から増加に転じる。すなわち、時刻t4では、エンベロープデータBの表す振幅値は極小となるため、ステップSA70の判定結果は“Yes”となり、ステップSA80の処理が実行される。すなわち、最大値Bmaxが0.0、増加フラグIncFlagが1、トリガ検出フラグTrigFlagが0にそれぞれ更新され(図4(d),(b),(e)参照)、発音制御装置1Aの内部状態は発音状態から無音状態へ遷移する。   At time t4, a second attack (attack 2) occurs, and the amplitude value represented by the envelope data B changes from decreasing to increasing. That is, at time t4, since the amplitude value represented by the envelope data B is minimal, the determination result of step SA70 is “Yes”, and the process of step SA80 is executed. That is, the maximum value Bmax is updated to 0.0, the increase flag IncFlag is updated to 1, and the trigger detection flag TrigFlag is updated to 0 (see FIGS. 4D, 4B, and 4E), and the internal state of the sound generation control device 1A is updated. Transitions from a sounding state to a silent state.

時刻t4では、エンベロープデータBの表す振幅値は最小値Bmin以上であるため、ステップ100の判定結果は“No”となり、ステップ110の処理を実行することなく、ステップSA120の処理が実行される。時刻t4では、エンベロープデータBの表す振幅値が最大値Bmax以上であるため、ステップSA120の判定結果は“Yes”となり、次いで実行されるステップ130において、最大値Bmaxがその時点の振幅値Bに更新され、ステップSA140の処理が実行される。増加フラグIncFlagの値が1に更新されるため、時刻t4では、ステップSA140の判定結果は“Yes”となり、ステップSA150の処理が実行される。時刻t4では、エンベロープデータBの表す振幅値がBmul×Bmin(ただし、Bmin=Bmin2)未満であるため、ステップSA150の判定結果は‘No’となり、ステップSA160の処理を実行することなく、ステップSA170の処理が実行され、Boldの更新が行われる。   At time t4, since the amplitude value represented by the envelope data B is equal to or greater than the minimum value Bmin, the determination result of step 100 is “No”, and the process of step SA120 is executed without executing the process of step 110. At time t4, since the amplitude value represented by the envelope data B is equal to or greater than the maximum value Bmax, the determination result in step SA120 is “Yes”. Next, in step 130, the maximum value Bmax is changed to the amplitude value B at that time. It is updated and the process of step SA140 is executed. Since the value of the increase flag IncFlag is updated to 1, the determination result in step SA140 is “Yes” at time t4, and the process in step SA150 is executed. At time t4, since the amplitude value represented by the envelope data B is less than Bmul × Bmin (where Bmin = Bmin2), the determination result at step SA150 is “No”, and the process at step SA160 is not executed. The above process is executed, and the Bold is updated.

時刻t4から時刻5までの区間(区間S4)では、上記時刻t4におけるステップSA100からステップSA170までの処理と同様の処理が実行される。つまり、区間S4では、増加フラグIncFlagは1に、トリガ検出フラグTrigFlagは0に、最小値Bminは時刻t4におけるエンベロープデータBの表す振幅値(Bmin2)にそれぞれ維持され、最大値BmaxおよびBoldの更新のみが行われる(図4(b),(e),(c),(d):区間S4参照)。   In a section from time t4 to time 5 (section S4), processing similar to the processing from step SA100 to step SA170 at time t4 is executed. That is, in the section S4, the increase flag IncFlag is maintained at 1, the trigger detection flag TrigFlag is maintained at 0, the minimum value Bmin is maintained at the amplitude value (Bmin2) represented by the envelope data B at time t4, and the maximum values Bmax and Bold are updated. Only (see FIGS. 4B, 4E, 4C, and 4D: section S4).

時刻t5では、上記区間S4におけるステップSA100からステップSA150までの処理と同様の処理が実行される。時刻t5では、エンベロープデータBの表す振幅値がBmul×Bmin(ただし、Bmin=Bmin2)に達するため、ステップSA150の判定結果は‘Yes’となり、ステップSA160の処理が実行される。すなわち、トリガ検出フラグTrigFlagが1、増加フラグIncFlagが0にそれぞれ更新される(図4(e),(b)参照)。その結果、発音制御装置1Aの内部状態は無音状態から発音状態へ遷移する。以降、時刻t2で行われた処理と同様、閾値判定部24cによるベロシティ算出部24eへの時刻t5におけるエンベロープデータBの表す振幅値の通知、ベロシティ算出部24eによるベロシティ算出処理、および発音制御信号生成部24dによるサウンドシステム3への発音指示信号の出力が行われる。   At time t5, processing similar to the processing from step SA100 to step SA150 in the section S4 is executed. At time t5, since the amplitude value represented by the envelope data B reaches Bmul × Bmin (where Bmin = Bmin2), the determination result in step SA150 is “Yes”, and the process in step SA160 is executed. That is, the trigger detection flag TrigFlag is updated to 1 and the increase flag IncFlag is updated to 0 (see FIGS. 4E and 4B). As a result, the internal state of the sound generation control device 1A transitions from the silent state to the sound generation state. Thereafter, similar to the processing performed at time t2, the threshold value determination unit 24c notifies the velocity calculation unit 24e of the amplitude value represented by the envelope data B at time t5, the velocity calculation processing by the velocity calculation unit 24e, and the sound generation control signal generation. The sound generation instruction signal is output to the sound system 3 by the unit 24d.

時刻t5から時刻t6までの区間(区間S5)では、区間S2における処理と同様の処理が行われる。このため、区間S5では、増加フラグIncFlagは0に、最小値Bminは時刻t4におけるエンベロープデータBの表す振幅値(Bmin2)に、トリガ検出フラグTrigFlagは1にそれぞれ維持され、最大値BmaxおよびBoldの更新のみが行われる(図4(b),(c),(e),(d):区間S5参照)。   In a section from time t5 to time t6 (section S5), processing similar to that in section S2 is performed. Therefore, in the section S5, the increase flag IncFlag is maintained at 0, the minimum value Bmin is maintained at the amplitude value (Bmin2) represented by the envelope data B at the time t4, the trigger detection flag TrigFlag is maintained at 1, and the maximum values Bmax and Bold are maintained. Only updating is performed (see FIGS. 4B, 4C, 4E, and 4D: section S5).

時刻t6では、エンベロープデータBの表す振幅値が増加から減少に転じる。すなわち、エンベロープデータBの表す振幅値は極大となるため、ステップSA50の判定結果が“Yes”となり、次いで実行されるステップSA60の処理において最小値Bminの値が1.0に更新される(図4(c))。また、時刻t6から時刻t7までの区間(区間S6)では、エンベロープデータBの表す振幅値は最小値Bmin未満であるため、ステップSA100の判定結果は“Yes”となり、最小値Bminはその時点のエンベロープデータBの表す振幅値に更新され、ステップSA120の処理が実行される。区間S6では、エンベロープデータBの表す振幅値は最大値Bmax未満であるため、ステップSA120の判定結果は“No”となり、ステップSA130の処理を実行することなく、ステップSA140の処理が実行される。区間S6では、増加フラグIncFlagの値は0であるため、ステップSA140の判定結果は“No”となり、ステップSA150の処理を実行することなく、ステップSA170の処理が実行される。つまり、区間S6では、増加フラグIncFlagは0に、最大値Bmaxは時刻t6におけるエンベロープデータBの表す振幅値(1)に、トリガ検出フラグTrigFlagは1にそれぞれ維持され、最小値BminおよびBoldの更新のみが行われる(図4(b),(d),(e),(c):区間S6参照)。   At time t6, the amplitude value represented by envelope data B changes from increasing to decreasing. That is, since the amplitude value represented by the envelope data B is maximum, the determination result in step SA50 is “Yes”, and the value of the minimum value Bmin is updated to 1.0 in the process of step SA60 to be executed next (FIG. 4 (c)). In the section from time t6 to time t7 (section S6), the amplitude value represented by the envelope data B is less than the minimum value Bmin. Therefore, the determination result in step SA100 is “Yes”, and the minimum value Bmin is the current value. The amplitude value represented by the envelope data B is updated, and the process of step SA120 is executed. In the section S6, since the amplitude value represented by the envelope data B is less than the maximum value Bmax, the determination result in step SA120 is “No”, and the process in step SA140 is executed without executing the process in step SA130. In section S6, since the value of the increase flag IncFlag is 0, the determination result in step SA140 is “No”, and the process in step SA170 is executed without executing the process in step SA150. That is, in the section S6, the increase flag IncFlag is maintained at 0, the maximum value Bmax is maintained at the amplitude value (1) represented by the envelope data B at time t6, the trigger detection flag TrigFlag is maintained at 1, and the minimum values Bmin and Bold are updated. Only (see FIGS. 4B, 4D, 4E, and 4C: section S6).

時刻t7においてエンベロープデータBの表す振幅値が閾値データTh1の表す第1の閾値に達すると、ステップSA30の判定結果は‘Yes’となり、ステップSA40が実行され、増加フラグIncFlagは0に、トリガ検出フラグTrigFlagは0に、最小値Bminは1.0に、最大値Bmaxは0.0に更新される(図4(b),(e),(c),(d)参照)。時刻t7では、エンベロープデータBの表す振幅値は極大または極小となることはないため、ステップSA50の判定結果は“No”となり、ステップSA70の判定結果も“No”となり、ステップSA90の処理が実行される。エンベロープデータBの表す振幅値は閾値データTh1の表す第1の閾値以下であるため、ステップSA90の判定結果も“No”となり、ステップSA140の処理が実行される。時刻t7では、増加フラグIncFlagの値は0であるため、ステップSA140の判定結果は“No”となり、ステップSA150の処理を実行することなく、ステップSA170の処理が実行されBoldの更新のみが行われる。   When the amplitude value represented by the envelope data B reaches the first threshold value represented by the threshold data Th1 at time t7, the determination result in step SA30 is “Yes”, step SA40 is executed, the increase flag IncFlag is set to 0, and the trigger is detected. The flag TrigFlag is updated to 0, the minimum value Bmin is updated to 1.0, and the maximum value Bmax is updated to 0.0 (see FIGS. 4B, 4E, 4C, and 4D). At time t7, since the amplitude value represented by the envelope data B does not become maximum or minimum, the determination result of step SA50 is “No”, the determination result of step SA70 is also “No”, and the process of step SA90 is executed. Is done. Since the amplitude value represented by the envelope data B is equal to or less than the first threshold value represented by the threshold data Th1, the determination result in step SA90 is also “No”, and the process in step SA140 is executed. At time t7, since the value of the increase flag IncFlag is 0, the determination result in step SA140 is “No”, so that the process in step SA170 is executed and only the Bold is updated without executing the process in step SA150. .

上記トリガ検出処理では、エンベロープ抽出部24bが閾値判定部24cに与えるエンベロープデータBの表すエンベロープ波形にノイズが重畳される場合がある。図6は、エンベロープ抽出部24bが生成するエンベロープデータBの表すエンベロープ波形にノイズが重畳されている様子を示す図である。この図において、「Δt」は、図4における区間S4に対応する時間であり、Δt=t5−t4となる。図6に示す例では、エンベロープ波形の区間S4に対応する領域にノイズが重畳されている。従来のトリガ検出処理では、閾値判定部24cが実行するステップSA150(図5参照)の処理、すなわちエンベロープデータBの表す振幅値がBmul×Bmin以上か否かの判定において、ノイズに起因する誤判定が発生することを防止するために、係数Bmulに大きな値を設定している。しかし、係数Bmulに大きな値を設定した場合、エンベロープデータBの表す振幅値が減少から増加に転じてから、ステップSA150の判定結果が‘Yes’となるまでに要する時間Δtが長くなる。エンベロープデータBの表す振幅値が閾値データTh1を横切って増加してから、ステップSA150の判定結果が‘Yes’となるまでに要する時間についても同様である。このように、ノイズに起因する誤判定を避けるために係数Bmulに大きな値を設定すると、ベロシティを付加したノートオン信号を迅速に出力することができず、ノートオン信号をMIDI音源等に与える際にレーテンシが発生する。   In the trigger detection process, noise may be superimposed on the envelope waveform represented by the envelope data B given by the envelope extraction unit 24b to the threshold determination unit 24c. FIG. 6 is a diagram illustrating a state in which noise is superimposed on the envelope waveform represented by the envelope data B generated by the envelope extraction unit 24b. In this figure, “Δt” is the time corresponding to the section S4 in FIG. 4, and Δt = t5−t4. In the example shown in FIG. 6, noise is superimposed on a region corresponding to the section S4 of the envelope waveform. In the conventional trigger detection process, an erroneous determination caused by noise in the process of step SA150 (see FIG. 5) executed by the threshold determination unit 24c, that is, whether or not the amplitude value represented by the envelope data B is greater than or equal to Bmul × Bmin. Is set to a large value for the coefficient Bmul. However, when a large value is set for the coefficient Bmul, the time Δt required until the determination result in step SA150 becomes “Yes” after the amplitude value represented by the envelope data B starts from decreasing to increasing increases. The same applies to the time required for the determination result in step SA150 to be “Yes” after the amplitude value represented by the envelope data B increases across the threshold data Th1. As described above, if a large value is set for the coefficient Bmul in order to avoid erroneous determination due to noise, a note-on signal with velocity cannot be output quickly, and a note-on signal is applied to a MIDI sound source or the like. Latency occurs.

本実施形態による発音制御装置1Aは、本発明の特徴を顕著に示す処理を実行することにより、上記レーテンシの発生を防止する。以下、図7〜図9を参照しながら、本発明の特徴を顕著に示す処理の詳細について説明する。図7は、閾値更新部26cが実行する閾値更新処理の内容を示すフローチャートである。図8は、補間速度更新部26dが実行する補間速度更新処理の内容を示すフローチャートである。図9は、エンベロープ抽出部24bが生成するエンベロープデータBの表すエンベロープ波形および当該エンベロープデータBの変化に応じて遷移する各種データの詳細を示す図である。図9(a)は、エンベロープ抽出部24bが生成するエンベロープデータBの表わすエンベロープ波形を示す図である。図9(b)は、モーション検出部26aが出力する速度データVmotionの時間変化を示す図である。図9(c)は、係数Bmulの時間変化を示す図である。図9(d)は、アタック補間速度AtkItpSpeedの時間変化を示す図である。本実施形態による閾値更新部26cおよび補間速度更新部26dは、それぞれ図7に示すステップSB10および図8に示すステップSC10を実行する。   The sound generation control device 1A according to the present embodiment prevents the occurrence of the latency by executing a process that clearly shows the characteristics of the present invention. Hereinafter, the details of the processing that remarkably shows the features of the present invention will be described with reference to FIGS. FIG. 7 is a flowchart showing the contents of the threshold update process executed by the threshold update unit 26c. FIG. 8 is a flowchart showing the contents of the interpolation speed update process executed by the interpolation speed update unit 26d. FIG. 9 is a diagram showing details of the envelope waveform represented by the envelope data B generated by the envelope extraction unit 24b and various data that transition in accordance with the change of the envelope data B. FIG. 9A is a diagram showing an envelope waveform represented by envelope data B generated by the envelope extraction unit 24b. FIG. 9B is a diagram showing a time change of the speed data Vmotion output from the motion detection unit 26a. FIG. 9C is a diagram showing a change with time of the coefficient Bmul. FIG. 9D is a diagram showing a change over time in the attack interpolation speed AtkItpSpeed. The threshold update unit 26c and the interpolation speed update unit 26d according to the present embodiment execute step SB10 shown in FIG. 7 and step SC10 shown in FIG.

より詳細に説明すると、図9(b)に示すように、アタック2が発生する直前において、少なくとも1つの打撃体が打楽器2に向かって移動中であるとき、モーション検出部26aが出力する速度データVmotionは負方向に変化する。動作判定部26bは、モーション検出部26aから速度データVmotionを受け取る毎に、速度データVmotionが負方向に変化しているか否かを判定し、その判定結果がYesである場合に、閾値更新部26cに閾値更新指示信号を与える。閾値更新部26cは、閾値更新指示信号を受け取ると、図9(c)に示すように、係数Bmulをより小さな値に更新し(図7:ステップSB10)、その値を記憶部24aの揮発性メモリに格納する。このため、閾値判定部24cが実行する図5に示す一連の処理において、Bmul×Bminの表す値は係数Bmulの更新前よりも小さくなり、エンベロープデータBの表す振幅値が減少から増加に転じた後、ステップSA150の判定結果が‘Yes’となるまでに要する時間が、Δt’(Δt’<Δt)まで短縮される。この点は、エンベロープデータBの表す振幅値が閾値データTh1を横切って増加してから、ステップSA150の判定結果が‘Yes’となるまでに要する時間についても同様である。したがって、エンベロープデータBの表す振幅値が第1の閾値を上回った後、発音制御信号生成部24dはベロシティを付加した発音指示信号を迅速に出力することができるため、ノートオン信号をMIDI音源等に与える際に発生するレーテンシを防止することが可能となる。なお、閾値更新部26cは、その後モーション検出部26aから受け取った速度データVmotionが正方向に変化していると判定した場合、係数Bmulをより大きな値に更新する。   More specifically, as shown in FIG. 9B, the velocity data output by the motion detection unit 26a when at least one percussion body is moving toward the percussion instrument 2 immediately before the attack 2 is generated. Vmotion changes in the negative direction. Whenever the speed data Vmotion is received from the motion detection unit 26a, the motion determination unit 26b determines whether or not the speed data Vmotion has changed in the negative direction. If the determination result is Yes, the threshold update unit 26c Is given a threshold update instruction signal. When the threshold update unit 26c receives the threshold update instruction signal, the threshold update unit 26c updates the coefficient Bmul to a smaller value as shown in FIG. 9C (FIG. 7: step SB10), and the value is stored in the storage unit 24a. Store in memory. For this reason, in the series of processing shown in FIG. 5 executed by the threshold determination unit 24c, the value represented by Bmul × Bmin is smaller than that before the coefficient Bmul is updated, and the amplitude value represented by the envelope data B has started to increase from the decrease. Thereafter, the time required until the determination result of step SA150 becomes “Yes” is shortened to Δt ′ (Δt ′ <Δt). This also applies to the time required for the determination result in step SA150 to be “Yes” after the amplitude value represented by the envelope data B increases across the threshold data Th1. Therefore, after the amplitude value represented by the envelope data B exceeds the first threshold value, the sound generation control signal generation unit 24d can quickly output the sound generation instruction signal to which the velocity is added. Thus, it is possible to prevent the latency that occurs when applying to the. If the threshold value update unit 26c determines that the speed data Vmotion received from the motion detection unit 26a has subsequently changed in the positive direction, the threshold value update unit 26c updates the coefficient Bmul to a larger value.

係数Bmulをより小さな値に更新すると、ステップSA150において、ノイズに起因する誤判定が発生するおそれがある。そこで、動作判定部26bは、モーション検出部26aから受け取った速度データVmotionが負方向に変化しているか否かの判定結果がYesである場合に、補間速度更新部26dに補間速度更新指示信号を与える。補間速度更新部26dは、補間速度更新指示信号を受け取ると、図9(d)に示すように、アタック補間速度AtkItpSpeedをより小さな値に更新する(図8:ステップSC10)ことによりアタック補間速度を遅くし(サンプリングの時間間隔を大きくし)、その値を記憶部24aの揮発性メモリに格納する。エンベロープ抽出部24bは、この更新されたアタック補間速度AtkItpSpeedに基づき、振動検出手段12の出力データに補間処理を施し、当該補間処理後の出力データの表す波形のエンベロープを表すエンベロープデータを生成し、閾値判定部24cに与える。この結果、閾値判定部24cに与えるエンベロープデータBにノイズが含まれる確率が減少し、係数Bmulの設定値をより小さな値に更新したとしても上記誤判定の発生を防止することが可能となる。加えて、閾値判定部24cは上記エンベロープデータBを基に図5に示すステップSA150を実行するため、ベロシティVelの値の正確性を向上させることが可能となる。なお、補間速度更新部26dは、その後モーション検出部26aから受け取った速度データVmotionが正方向に変化していると判定した場合、アタック補間速度AtkItpSpeedをより大きな値に更新する。   If the coefficient Bmul is updated to a smaller value, an erroneous determination due to noise may occur in step SA150. Therefore, when the determination result of whether or not the speed data Vmotion received from the motion detection unit 26a has changed in the negative direction is Yes, the motion determination unit 26b sends an interpolation speed update instruction signal to the interpolation speed update unit 26d. give. When the interpolation speed update unit 26d receives the interpolation speed update instruction signal, the attack interpolation speed is updated by updating the attack interpolation speed AtkItpSpeed to a smaller value as shown in FIG. 9D (FIG. 8: step SC10). The time is delayed (the sampling time interval is increased), and the value is stored in the volatile memory of the storage unit 24a. Based on the updated attack interpolation speed AtkItpSpeed, the envelope extraction unit 24b performs an interpolation process on the output data of the vibration detection unit 12, and generates envelope data representing an envelope of a waveform represented by the output data after the interpolation process. This is given to the threshold determination unit 24c. As a result, the probability that the envelope data B given to the threshold value determination unit 24c includes noise is reduced, and the occurrence of the erroneous determination can be prevented even if the set value of the coefficient Bmul is updated to a smaller value. In addition, since the threshold value determination unit 24c executes step SA150 shown in FIG. 5 based on the envelope data B, it is possible to improve the accuracy of the value of the velocity Vel. If the interpolation speed update unit 26d determines that the velocity data Vmotion received from the motion detection unit 26a has subsequently changed in the positive direction, the interpolation velocity update unit 26d updates the attack interpolation speed AtkItpSpeed to a larger value.

このように本実施形態によれば、電子音源による打楽器の演奏音の発音制御において、レーテンシの発生を回避することが可能になる。本実施形態でも、生ドラムのミュート演奏の際の発音制御への適用例を説明したが、電子ドラムなどの電子打楽器に発音制御装置1Aを組み込み、当該電子打楽器における発音制御に発音制御装置1Aを適用しても勿論良い。   Thus, according to the present embodiment, it is possible to avoid the occurrence of latency in the sound generation control of the percussion instrument performance sound by the electronic sound source. In this embodiment, the application example to the sound generation control in the mute performance of the live drum has been described. However, the sound generation control device 1A is incorporated in an electronic percussion instrument such as an electronic drum, and the sound generation control device 1A is used for sound generation control in the electronic percussion instrument. Of course, it may be applied.

以上本発明の第1および第2実施形態について説明したが、この実施形態に以下の変形を加えても勿論良い。
(1)上記実施形態では打楽器2の演奏態様として、一本のスティックで打面を打撃する態様、すなわち打撃体を1つだけ用いる態様について説明したが、複数の打撃体を用いる態様であっても良い。例えば、演奏者が左右の手にスティックを一本ずつ持って、これら2本のスティックを用いて打楽器2の打面を打撃するといった具合である。このような態様では、連打の局面では2本のスティックのうちの一方は打面に向かって移動し、他方は打面から離れるように移動する。そこで、このような態様においては、発音状態において一方の打撃体が打面に向かって移動中であり、かつ他方の打撃体が打面から離れる方向に移動中であると判定された場合に第2の閾値をより大きな値に更新する処理を閾値更新手段16に実行させるようにすれば良い。
Although the first and second embodiments of the present invention have been described above, the following modifications may of course be added to this embodiment.
(1) In the above embodiment, as a performance mode of the percussion instrument 2, a mode in which the hitting surface is hit with a single stick, that is, a mode in which only one hitting body is used has been described. Also good. For example, the performer may hold one stick in each of his left and right hands and hit the percussion surface of the percussion instrument 2 using these two sticks. In such a mode, one of the two sticks moves toward the striking surface and the other moves away from the striking surface in the continuous striking phase. Therefore, in such a mode, when it is determined that one striking body is moving toward the striking surface and the other striking body is moving in a direction away from the striking surface in the sounding state, What is necessary is just to make the threshold value update means 16 perform the process which updates the threshold value of 2 to a larger value.

(2)上記実施形態では、閾値更新部16による第2の閾値th2の更新量Δを固定の値としたが、直近の打撃により打面に生じた振動の波形のエンベロープのピーク値に応じて更新量Δを定めるようにしても良い。具体的には、上記ピーク値が大きいほど更新量Δを大きくするのである。直近の打撃が強い程、上記ピーク値は大きくなり、時間経過に伴う上記振動の減衰量は小さくなる。このため、直近の打撃の強さによらずに上記更新量Δを一定値としておくと、直近の打撃が強く、次の打撃までに打面の振動が充分に減衰しなかった場合(すなわち、第2の閾値th2を下回らなかった場合)には音抜けが発生する。本態様によれば、このような音抜けの発生を防止することができる。 (2) In the above embodiment, the update amount Δ of the second threshold th2 by the threshold update unit 16 is a fixed value. However, according to the peak value of the envelope of the waveform of vibration generated on the hitting surface due to the most recent hit The update amount Δ may be determined. Specifically, the update amount Δ is increased as the peak value increases. The stronger the most recent impact, the larger the peak value and the smaller the vibration attenuation with time. For this reason, if the renewal amount Δ is set to a constant value regardless of the strength of the latest hit, the latest hit is strong, and the vibration of the hitting surface is not sufficiently attenuated until the next hit (that is, If the value does not fall below the second threshold th2), sound omission occurs. According to this aspect, occurrence of such sound omission can be prevented.

(3)上記実施形態では、モーション検出部14の出力データの表す示す鉛直方向の速度が正の値である場合に打撃体が打面に向かって移動中と判定した。しかし、打面に向かって打撃体が移動中である状況下で動作検出手段10から出力される出力信号または当該出力信号の特徴を示す特徴量を記憶し、その記憶内容に応じて動作判定部16bに上記判定を行わせるようにしても良い。例えば動作検出手段10から出力される出力信号を記憶する態様であれば、当該記録済みの信号の表す波形とモーション検出部14の出力データの表す波形の相互相関値を算出し、当該相互相関値が予め定められた値以上である場合に、打撃体が打面に向かって移動中であると判定する、といった具合である。このような態様によれば、打楽器の演奏に先立ってその演奏者特有の演奏動作を記録しておくことで、演奏者の演奏動作の個性を加味しつつ連打に起因する音抜けを確実に防止することが可能になる。 (3) In the above embodiment, when the vertical velocity indicated by the output data of the motion detector 14 is a positive value, it is determined that the impacting body is moving toward the hitting surface. However, it stores the output signal output from the motion detection means 10 or the feature quantity indicating the feature of the output signal under the situation where the impacting body is moving toward the hitting surface, and the motion determination unit according to the stored contents You may make it make 16b perform the said determination. For example, if the output signal output from the motion detection means 10 is stored, the cross-correlation value between the waveform represented by the recorded signal and the waveform represented by the output data of the motion detection unit 14 is calculated, and the cross-correlation value is calculated. Is equal to or greater than a predetermined value, it is determined that the hitting body is moving toward the hitting surface. According to such an aspect, by recording a performance action peculiar to the performer prior to the performance of the percussion instrument, sound omission caused by repeated strikes can be surely prevented while taking into account the individual performance characteristics of the performer. It becomes possible to do.

(4)上記実施形態では、打楽器2の打面を打撃するための1または複数の打撃体(上記実施形態では1本のスティック)の動きを検出し、その検出結果を示す信号を出力する動作検出手段として、上記スティックに内蔵された加速度センサを用いたが、演奏者の手首にリストバンドなどを用いて装着される加速度センサを上記動作検出手段として用いても良い。また、打楽器1を演奏する演奏者の様子を撮像するビデオカメラを上記動作検出手段として用いても良い。このようなビデオカメラの出力信号(打楽器1を演奏する様子を表す映像信号)に画像解析を施すことで演奏者の動作を判別することができるからである。 (4) In the above embodiment, the operation of detecting the movement of one or a plurality of percussion bodies (one stick in the above embodiment) for hitting the striking surface of the percussion instrument 2, and outputting a signal indicating the detection result Although the acceleration sensor built in the stick is used as the detection means, an acceleration sensor attached to the player's wrist using a wristband or the like may be used as the motion detection means. Further, a video camera that captures the state of the performer who plays the percussion instrument 1 may be used as the motion detection means. This is because the player's action can be determined by performing image analysis on the output signal of the video camera (a video signal representing the performance of the percussion instrument 1).

(5)上記実施形態では、発音制御装置1Aに補間速度更新部26dを設けたが、補間速度更新部26dを省略してもよい。この態様によれば、エンベロープ波形に重畳されたノイズが少なければ上記実施形態と同様の効果が得られる。また、この態様によれば、発音制御装置1Aの処理負荷や消費電力を低減することも可能となる。 (5) Although the interpolation speed update unit 26d is provided in the sound generation control device 1A in the above embodiment, the interpolation speed update unit 26d may be omitted. According to this aspect, if the noise superimposed on the envelope waveform is small, the same effect as in the above embodiment can be obtained. Further, according to this aspect, it is possible to reduce the processing load and power consumption of the sound generation control device 1A.

(6)上記実施形態では、発音制御信号生成部24では、図5におけるステップSA160の処理の時点におけるエンベロープデータBの表す振幅値に基づきベロシティ算出部24eが算出したベロシティVelをノートオン信号に付加したが、当該ベロシティVelと上記時点の近傍における速度データVmotionの値を係数r(0≦r≦1)を用いて重みづけ加算した値、すなわちVmotion×r+Vel×(1−r)をノートオン信号に付加しても良い。 (6) In the above embodiment, the sound generation control signal generation unit 24 adds the velocity Vel calculated by the velocity calculation unit 24e to the note-on signal based on the amplitude value represented by the envelope data B at the time of the process of step SA160 in FIG. However, a value obtained by weighting and adding the velocity Vel and the value of the velocity data Vmotion in the vicinity of the above time using a coefficient r (0 ≦ r ≦ 1), that is, Vmotion × r + Vel × (1-r) is a note-on signal. May be added.

(7)上記実施形態では、打撃体に加速度センサ10aを取り付け、打楽器2の打面を打撃する際の打撃体の動きを検出したが、バスドラムやハイハットのペダルに加速度センサ10aを取り付け、バスドラムやシンバルの打面を打撃する際のペダルの動きを検出してもよい。この場合も、第1および第2実施形態と同様の効果が得られる。 (7) In the above embodiment, the acceleration sensor 10a is attached to the hitting body, and the movement of the hitting body when hitting the hitting surface of the percussion instrument 2 is detected. However, the acceleration sensor 10a is attached to the bass drum or hi-hat pedal. The movement of the pedal when striking the drum or cymbal striking surface may be detected. Also in this case, the same effect as the first and second embodiments can be obtained.

1,1A…発音制御装置、10…動作検出手段、12…振動検出手段、14,24…発音制御手段、14a,24a…記憶部、14b,24b…エンベロープ抽出部、241…全波整流部、242…補間部、2421,2422…増幅部、2423,2424…加算部、2425…遅延処理部、14c,24c…閾値判定部、14d,24d…発音制御信号生成部、16,26…閾値更新手段、16a,26a…モーション検出部、16b,26b…動作判定部、16c,26c…閾値更新部、26d…補間速度更新部、2…打楽器、3…サウンドシステム。   DESCRIPTION OF SYMBOLS 1,1A ... Sound generation control apparatus, 10 ... Motion detection means, 12 ... Vibration detection means, 14, 24 ... Sound generation control means, 14a, 24a ... Memory | storage part, 14b, 24b ... Envelope extraction part, 241 ... Full wave rectification part, 242: Interpolation unit, 2421, 2422 ... Amplification unit, 2423, 2424 ... Addition unit, 2425 ... Delay processing unit, 14c, 24c ... Threshold determination unit, 14d, 24d ... Sound generation control signal generation unit, 16, 26 ... Threshold update means , 16a, 26a ... motion detection unit, 16b, 26b ... motion determination unit, 16c, 26c ... threshold update unit, 26d ... interpolation speed update unit, 2 ... percussion instrument, 3 ... sound system.

Claims (5)

打楽器の打面を打撃するための1または複数の打撃体の動きを検出し、その検出結果を示す信号を出力する動作検出手段と、
前記1または複数の打撃体による打撃に応じて前記打面に生じた振動を検出し、当該振動の波形を表す信号を出力する振動検出手段と、
前記振動検出手段の出力信号のエンベロープの振幅が第1の閾値を上回ったことを契機として発音状態に遷移するとともに電子音源に発音を指示し、前記振幅が第2の閾値を下回ったことを契機として無音状態に遷移するとともに前記電子音源に発音の停止を指示する発音制御手段と、
前記動作検出手段の出力信号を解析し、発音状態において少なくとも1つの打撃体が前記打面に向かって移動中であると判定された場合に前記第2の閾値をより大きな値に更新する閾値更新手段と、
を有する発音制御装置。
Motion detecting means for detecting the movement of one or a plurality of hitting bodies for hitting the percussion surface of the percussion instrument, and outputting a signal indicating the detection result;
Vibration detecting means for detecting vibration generated on the hitting surface in response to hitting by the one or more hitting bodies, and outputting a signal representing a waveform of the vibration;
When the amplitude of the envelope of the output signal of the vibration detecting means exceeds the first threshold, the sound transitions to the sounding state and the sound source is instructed to sound, and the amplitude falls below the second threshold. Sound generation control means for instructing the electronic sound source to stop sound generation while transitioning to a silent state as
Threshold update that analyzes the output signal of the motion detection means and updates the second threshold value to a larger value when it is determined that at least one impacting body is moving toward the hitting surface in the sounding state Means,
A sound generation control device.
前記エンベロープの振幅が前記第1の閾値を上回ったことを契機として当該振幅に基づきベロシティを算出するベロシティ算出手段をさらに有し、
前記発音制御手段は、前記ベロシティ算出手段により算出されたベロシティを発音の指示に付加し、
前記閾値更新手段は、前記少なくとも1つの打撃体が前記打楽器の打面に向かって移動中であると判定された場合に前記第1の閾値をより小さな値に更新することを特徴とする請求項1に記載の発音制御装置。
Velocity calculating means for calculating the velocity based on the amplitude when the amplitude of the envelope exceeds the first threshold,
The sound generation control means adds the velocity calculated by the velocity calculation means to the sound generation instruction,
The threshold value updating means updates the first threshold value to a smaller value when it is determined that the at least one impacting body is moving toward the percussion surface of the percussion instrument. 2. The sound generation control device according to 1.
打楽器の打面を打撃するための1または複数の打撃体の動きを検出し、その検出結果を示す信号を出力する動作検出手段と、
前記1または複数の打撃体による打撃に応じて前記打面に生じた振動を検出し、当該振動の波形を表す信号を出力する振動検出手段と、
前記振動検出手段の出力信号のエンベロープの振幅が第1の閾値を上回ったことを契機として当該振幅に基づきベロシティを算出するベロシティ算出手段と、
前記エンベロープの振幅が前記第1の閾値を上回ったことを契機として、発音状態に遷移するとともに前記ベロシティ算出手段により算出されたベロシティを発音の指示に付加して電子音源に与える発音制御手段と、
前記動作検出手段の出力信号を解析し、少なくとも1つの打撃体が前記打面に向かって移動中であると判定された場合に前記第1の閾値をより小さな値に更新する閾値更新手段と、
を有することを特徴とする発音制御装置。
Motion detecting means for detecting the movement of one or a plurality of hitting bodies for hitting the percussion surface of the percussion instrument, and outputting a signal indicating the detection result;
Vibration detecting means for detecting vibration generated on the hitting surface in response to hitting by the one or more hitting bodies, and outputting a signal representing a waveform of the vibration;
Velocity calculating means for calculating the velocity based on the amplitude when the amplitude of the envelope of the output signal of the vibration detecting means exceeds a first threshold;
Sound generation control means for giving an electronic sound source the sound velocity by adding the velocity calculated by the velocity calculation means to the sound generation instruction when the amplitude of the envelope exceeds the first threshold value,
Analyzing the output signal of the motion detection means, and when it is determined that at least one hitting body is moving toward the hitting surface, the threshold update means for updating the first threshold value to a smaller value;
A pronunciation control apparatus characterized by comprising:
前記振動検出手段の出力信号に補間処理を施し、前記エンベロープを表すエンベロープデータを出力するエンベロープ抽出手段と、
前記動作検出手段の出力信号を解析し、前記少なくとも1つの打撃体が前記打楽器の打面に向かって移動中であると判定された場合に前記エンベロープ抽出手段における補間速度をより小さな値に更新する補間速度更新手段とをさらに有することを特徴とする請求項1〜3の何れか1項に記載の発音制御装置。
An envelope extracting means for performing an interpolation process on the output signal of the vibration detecting means and outputting envelope data representing the envelope;
The output signal of the motion detection means is analyzed, and when it is determined that the at least one impacting body is moving toward the percussion surface of the percussion instrument, the interpolation speed in the envelope extraction means is updated to a smaller value. The sound generation control device according to claim 1, further comprising an interpolation speed update unit.
前記打面に向かって打撃体が移動中に前記動作検出手段から出力される出力信号または当該出力信号の特徴を示す特徴量を記録する記録手段を備え、
前記閾値更新手段は、前記記録手段の記録内容を参照して前記判定を行うことを特徴とする請求項1〜4の何れか1項に記載の発音制御装置。
A recording means for recording an output signal output from the motion detection means while the impacting body is moving toward the hitting surface or a feature value indicating a feature of the output signal;
5. The sound generation control device according to claim 1, wherein the threshold value updating unit performs the determination with reference to a recording content of the recording unit.
JP2016048719A 2016-03-11 2016-03-11 Sound production controller Pending JP2017161858A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016048719A JP2017161858A (en) 2016-03-11 2016-03-11 Sound production controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016048719A JP2017161858A (en) 2016-03-11 2016-03-11 Sound production controller

Publications (1)

Publication Number Publication Date
JP2017161858A true JP2017161858A (en) 2017-09-14

Family

ID=59853173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016048719A Pending JP2017161858A (en) 2016-03-11 2016-03-11 Sound production controller

Country Status (1)

Country Link
JP (1) JP2017161858A (en)

Similar Documents

Publication Publication Date Title
CN107863094B (en) Electronic wind instrument, musical sound generation device, musical sound generation method
US8653350B2 (en) Performance apparatus and electronic musical instrument
US8525006B2 (en) Input device and recording medium with program recorded therein
US11694665B2 (en) Sound source, keyboard musical instrument, and method for generating sound signal
JP5912483B2 (en) Music control device
US9966051B2 (en) Sound production control apparatus, sound production control method, and storage medium
JP5151401B2 (en) Audio processing device
JP7140083B2 (en) Electronic wind instrument, control method and program for electronic wind instrument
JP6677265B2 (en) Sound processing device and sound processing method
JP2017161858A (en) Sound production controller
JP2021067752A (en) Electronic percussion instrument, electronic music instrument, information processor, and information processing method
JP6443093B2 (en) Signal processing apparatus and signal processing system
WO2015111657A1 (en) Acoustic effect setting method
JP2014238550A (en) Musical sound producing apparatus, musical sound producing method, and program
CN114981881A (en) Playback control method, playback control system, and program
JP6572916B2 (en) Pronunciation control device and method, program
JP2010271440A (en) Performance control device and program
JP2985427B2 (en) Electronic percussion instrument
WO2023080080A1 (en) Performance analysis method, performance analysis system, and program
JP4855202B2 (en) Electronic keyboard instrument
JP2012013725A (en) Musical performance system and electronic musical instrument
JP5029729B2 (en) Performance device and electronic musical instrument
JP3430585B2 (en) Electronic percussion instrument
JPH0755596Y2 (en) Electronic percussion input device
JP2006030476A (en) Electronic percussion instrument, hit sound generating program