The present invention relates to a sound source used for an electronic percussion instrument. In particular, the present invention relates to a sound source for an electronic percussion instrument capable of reproducing consistent sounds of a percussion instrument with no phase interference while realizing a smooth change in volume and tone color in accordance with a change in beating conditions.
In a conventional electronic percussion instrument, a plurality of pieces of waveform data in accordance with the dynamics in performance information (beating) are prepared and the waveform data to be output is switched in accordance with a velocity of the beating. When the velocity of beating is positioned between two pieces of waveform data among the plurality of pieces of waveform data, cross-fading for synthesizing the two pieces of waveform data is performed to generate sound.
However, when two pieces of waveform data are synthesized in a cross-fade section in which two pieces of waveform data are mixed, there is a problem that they may cancel each other out due to mutual phase interference to generate so-called “sound thinning.” In addition, when waveform data to be used is switched from a plurality of pieces of waveform data in accordance with the velocity of the beating, there is a problem in which the tone color of the sound may suddenly change at the switching point of the waveform data.
Patent Literature 1 discloses an electronic percussion instrument in which a performance starts by striking pads. In detail, an electronic percussion instrument is disclosed in which, for example, sounds when hitting a central portion of a cymbal and sounds when hitting an outer peripheral portion of the cymbal are stored in each pad, and by changing a volume balance between the two kinds of musical sound in accordance with the hitting points of beating, a tone color change can be realized in the same way as when actually hitting a cymbal. The electronic percussion instrument of Patent Literature 1 also has the aforementioned problem.
Patent Literature 2 discloses a method of synthesizing musical sounds using addition synthesis of sine waves. Patent Literature 3 discloses an electronic musical instrument in which a tone color is changed by controlling a mixing ratio and an attenuation amount of harmonic overtones in accordance with a pitch and a touch in an addition synthesis sound source of a pitched musical instrument such as a piano or a guitar. Although these are based on an addition synthesis of sine waves for every harmonic overtone, a pitched musical instrument that has a stable overtone frequency with respect to elapse of playing time is assumed so that control of temporal change in pitch is not considered. Therefore, this is insufficient for synthesizing sounds of a percussion instrument with a large temporal change in frequency.
The present invention has been made to solve the above problems, and it is an object of the present invention to provide a sound source of an electronic percussion instrument which can reproduce consistent sounds of a percussion instrument with no phase interference and can create a smooth change in volume and tone color in accordance with a change in beating conditions.
In order to achieve this object, a sound source of an electronic percussion instrument of the present invention is a sound source used for an electronic percussion instrument including a struck surface and a struck sensor for detecting hits on the struck surface. The sound source includes a waveform data storage means for storing waveform data of musical sounds, and a sound generation control means for generating musical sounds by using the waveform data stored in the waveform data storage means in accordance with the results of detection by the struck sensor. The waveform data storage means has two or more pieces of waveform data which have different beating conditions from each other, one of the pieces of waveform data having, with respect to each beating condition, pitch envelope data and amplitude envelope data for one or a plurality of sine wave components separated from an original waveform of a musical sound, and a residual component of the original waveform from which the one or the plurality of sine wave components are separated. The sound generation control means generates a sine wave component based on the pitch envelope data and the amplitude envelope data of the two or more pieces of waveform data stored in the waveform data storage means in accordance with detection results of the struck sensor and synthesizes the sine wave component with the residual component to generate musical sounds.
According to the sound source of the electronic percussion instrument of the present invention, one sine wave component is generated based on the pitch envelope data and amplitude envelope data of the two or more pieces of waveform data for the main sine wave components which are likely to cause phase interference. Although the sine wave component and the residual component are synthesized, the two or more pieces of waveform data are not synthesized and therefore “sound thinning” due to phase interference can be prevented. That is, it is possible to reproduce consistent sounds of a percussion instrument with no phase interference.
Further, by performing a weighting operation on the pitch envelope data and the amplitude envelope data of the sine wave components in accordance with the beating conditions and continuously changing these envelopes, it is possible to create a smooth change in volume and tone color in accordance with a change in beating conditions as with an actual percussion instrument.
Furthermore, since the sine wave component generated by the weighting operation is generated based on the pitch envelope data and the amplitude envelope data, sounds of a percussion instrument with a large temporal change in frequency can be suitably reproduced. Also, since the pitch envelope data and the amplitude envelope data which are elements constituting sounds of a percussion instrument are stored by being differentiated from each other in the waveform data storage means, it is possible to easily perform tone color editing.
Since start phase data is further stored in addition to the pitch envelope data and the amplitude envelope data and the sine wave component is generated based on the start phase data, it is possible to reproduce sounds of a percussion instrument with even better quality.
Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. In the present embodiment, an electronic drum 1 will be described, in which four pieces of waveform information approximating to velocities and hitting point positions with respect to an electronic drum pad 3 are selected from the waveform information obtained by sampling nine different performance sounds of a drum where the hitting strength (velocity) has three levels and the hitting point position (struck position) has three positions, a weighting operation is performed thereon and then musical sounds (sounds of a percussion instrument) are generated. First, with reference to
The electronic drum 1 has an electronic drum sound source device 2 and an electronic drum pad 3. The electronic drum sound source device 2 and the electronic drum pad 3 are connected by a cable C. The electronic drum sound source device 2 is a device that generates musical sounds based on hits on the electronic drum pad 3 and outputs the generated musical sounds to a speaker 27 (see
The electronic drum pad 3 is an electronic percussion instrument that transmits beating signals corresponding to the hits on a struck surface 30 of a user to the electronic drum sound source device 2. The electronic drum pad 3 has the struck surface 30 which receives hits of a user. When the struck surface 30 is hit by a user, a struck sensor 31 (see
The PC 4 is an information processing device for editing waveform information used by the electronic drum 1 for performance. As will be described in detail later, the PC 4 executes standard waveform generation processing (see
The calculated pitch envelope, amplitude envelope, and start phase are stored in an area corresponding to the velocity and hitting point position of the recorded waveform data in a waveform table 41c. The waveform table 41c is transmitted to the electronic drum sound source device 2 via an external input/output terminal 48 (see
Next, with reference to
The CPU 40 is an arithmetic device that controls each unit connected via the bus line 43. The HDD 41 is a rewritable nonvolatile storage device. The HDD 41 is provided with a waveform information generation program 41a, the waveform data 41b, and the waveform table 41c. When the waveform information generation program 41a is executed by the CPU 40, standard waveform generation processing of
Waveform data 41b (that is, original waveforms of sounds of a percussion instrument) obtained by sampling musical sounds of a drum (sounds of a percussion instrument) is stored in the waveform data 41b. Although not shown, a total of nine pieces of waveform data including three levels of velocity and three positions of hitting point position are stored by being mapped in association with each other in the waveform data 41b. As will be described in detail later, three levels of velocity of “127,” “70,” and “40” are provided. The hitting point position is a distance from a center position CP (see
In the present embodiment, each piece of waveform data in the waveform data 41b is acquired from another PC or another audio device via the external input/output terminal 48 which will be described later. Also, the waveform data in the waveform data 41b may be data obtained by the PC 4 by sampling performance sounds of a drum acquired from a microphone (not shown) connected to the PC 4 and making them into waveform data. Further, in the present embodiment, a sampling frequency of each piece of waveform data of the waveform data 41b is set to 44,100 Hz.
The waveform table 41c is a table in which waveform information corresponding to a plurality of velocities and a plurality of hitting point positions is stored. The waveform information is information in which standard waveform tables SW1 to SW9 (see
The standard waveform tables SW1 to SW9 are tables in which the pitch envelope, the amplitude envelope, and the start phase of the “noticeable” frequency band among the waveform data stored in the waveform data 41b are stored for each frequency. In the present embodiment, the “noticeable” frequency band is a frequency band in which the amplitude of the frequency spectrum calculated from the waveform data of the velocity “127” and the hitting point position “0 mm” is large, and six frequency bands are selected in descending order of amplitude. The standard waveform tables SW1 to SW9 will be described with reference to
At the frequency SW1a, a central frequency in the “noticeable” frequency band acquired from the waveform data of the velocity “127” and the hitting point position “0 mm” in the waveform data 41b is stored. Six frequencies are extracted as the “noticeable” frequency band from the frequency spectrum of the waveform data corresponding to the velocity “127” and the hitting point position “0 mm” in descending order of amplitude, and the central frequency thereof is stored in the frequency SW1a. The pitch envelope data SW1b, the amplitude envelope data SW1c and the start phase data SW1d, which correspond to the frequency SW1a, are stored in the standard waveform table SW1. Also, the same frequencies are stored in the frequencies SW1a to SW9a of the standard waveform tables SW1 to SW9.
A pitch envelope for each frequency of the frequency SW1a is stored in the pitch envelope data SW1b. The pitch envelope is a value representing an envelope curve (envelope) of a temporal change of the pitch. In the present embodiment, the pitch envelope data P1 to P6 are mapped in association with the respective frequencies of the frequency SW1a and are stored in the pitch envelope data SW1b. The pitch envelope data P1 will be described with reference to
At time P11, a time (the unit is ms) for taking a pitch envelope point is stored. The pitch envelope point indicates a certain point on the pitch envelope. Also, the same time P11 is stored in the pitch envelope data SW1b to SW9b of the same frequencies SW1a to SW9a in the standard waveform tables SW1 to SW9. Specifically, 128 pitch envelope points are extracted from the entire waveform data in the waveform data 41b, including a start time (0 ms) and an end time (3000 ms) of the pitch envelope, and the times to take the pitch envelope points are acquired. The acquired 128 times are stored at time P11 of the respective pitch envelope data SW1b to SW9b of the same frequency. Also, time intervals of the 128 pitch envelope points are set to be shorter in an attack section and set to be longer in a release section. This is to faithfully reproduce sounds of a percussion instrument. Various sine wave components can be reproduced by setting the pitch envelope points (amplitude envelope points which will be described later) in this way.
In the pitch data P12, the values (the unit is cent) of the pitch envelope points at time P11 acquired from the waveform data of the corresponding velocity at the hitting point position in the waveform data 41b are stored. That is, 128 values for the pitch envelope points corresponding to the time P11 are stored in the pitch data P12 exemplified in
Returning to
At time A11, a time (the unit is ms) for taking an amplitude envelope point is stored. The amplitude envelope point indicates a certain point on the amplitude envelope. Also, the same time A11 is stored in the amplitude envelope data SW1c to SW9c of the same frequencies SW1a to SW9a in the standard waveform tables SW1 to SW9. Specifically, 128 amplitude envelope points are extracted from the entire waveform data in the waveform data 41b, including a start time (0 ms) and an end time (3000 ms) of the amplitude envelope, and the times to take the amplitude envelope points are acquired. The acquired 128 times are stored at time A11 of the respective amplitude envelope data SW1c to SW9c of the same frequency. Also, time intervals of the 128 amplitude envelope points are set to be shorter in an attack section and set to be longer in a release section.
In the amplitude level data A12, the values (the unit is dB) of the amplitude envelope points at time A11 acquired from the waveform data of the corresponding velocity the hitting point position in the waveform data 41b are stored. That is, 128 values for the amplitude envelope points corresponding to the time A11 are stored in the amplitude level data A12 exemplified in
Generally, when a drum sound begins to sound, the tone color changes greatly, and then the change gradually becomes gentle. A change of the pitch in a certain frequency component becomes gentle as time elapses from the beginning of sounding, and a change of the amplitude level (that is, the volume) also becomes gentle as time elapses from the beginning of sounding. For that reason, in the present embodiment, by generating musical sounds based on the pitch envelope data SW1b representing the temporal change of the pitch and the amplitude envelope data SW1c representing the temporal change of the amplitude level, it is possible to reproduce more drum-like tone color changes.
Returning to
Returning to
This waveform table 41c is transmitted to the electronic drum sound source device 2 and stored in the waveform table 22a (
The RAM 42 is a memory in which the CPU 40 rewritably stores various pieces of work data, flags, etc., when the CPU 40 executes programs such as the waveform information generation program 41a and the like. The RAM 42 is provided with a spectrum memory 42a, a spectrum differential value memory 42b, and a residual spectrum memory 42c.
The spectrum memory 42a is a memory for storing the frequency spectrum of the waveform data. When the power of the PC 4 is turned on and immediately after the standard waveform generation processing of
The spectrum differential value memory 42b is a memory that stores differential values of the frequency spectrum of the waveform data. A “differential value of a frequency spectrum” refers to the difference in amplitude between adjacent frequencies in the frequency spectrum. When the power of the PC 4 is turned on and immediately after the standard waveform generation processing of
The residual spectrum memory 42c is a memory for storing the frequency spectrum from which the frequency bands stored in the standard waveform tables SW1 to SW9 are removed from the value of the spectrum memory 42a. The residual spectrum memory 42c is initialized to “0” indicating that no frequency spectrum is stored when the power of the PC 4 is turned on and immediately after the standard waveform generation processing of
The LCD 45 is a display for displaying a display screen. The mouse 46 and the keyboard 47 are input devices for inputting instructions from the user and various kinds of information to the PC 4. The external input/output terminal 48 is an interface for transmitting and receiving data between the PC 4 and the electronic drum sound source device 2 or another computer. The waveform table 41c of the PC 4 is transmitted to the electronic drum sound source device 2 via the external input/output terminal 48. In addition, the PC 4 receives the waveform data generated by another PC or another audio device via the external input/output terminal 48. Also, in place of the external input/output terminal 48, data may be transmitted and received via a network connection via a local area network (LAN) (not shown), or data may be transmitted and received via the Internet.
Next, standard waveform generation processing executed by the CPU 40 of the PC 4 will be described with reference to
In the standard waveform generation processing, first, m is set to 1 (S1). m is a natural number and is a value indicating the position of the waveform data stored in the waveform data 41b and the positions of the standard waveform tables SW1 to SW9 and the residual waveform data RW1 to RW9. Hereinafter, “m-th” means “1st” when the value of m is 1, “2nd” when the value of m is 2, . . . , “9th” when the value of m is 9, respectively. Also, the “standard waveform table SWm” has a value of “standard waveform table SW1” when the value of m is 1, “standard waveform table SW2” when the value of m is 2, . . . , “standard waveform table SW9” when the value of m is 9, respectively (hereinafter, the frequencies SW1a to SW9a and the like, and the residual waveform data RW1 to RW9 are also similarly expressed).
After the processing of S1, the frequency spectrum of the m-th waveform data in the waveform data 41b is calculated and stored in the spectrum memory 42a and the residual spectrum memory 42c (S2). The frequency spectrum is calculated by performing well-known discrete Fourier transformation on the m-th waveform data in the waveform data 41b. In the following processing, the spectrum memory 42a is used for calculating the pitch envelope, the amplitude envelope, and the start phase of the “noticeable” frequency band. The residual spectrum memory 42c is used to create a waveform of the frequency component from which the “noticeable” frequency band has been removed.
After the processing of S2, the difference between the amplitudes of adjacent frequencies of the frequency spectrum of the m-th waveform data in the waveform data 41b is stored in the spectrum differential value memory 42b (S3). More specifically, the differential value of the above-described frequency spectrum is obtained from the smoothed value of the spectrum memory 42a, and the results are stored in the spectrum differential value memory 42b. Smoothing the value of the spectrum memory 42a is for removing noise of the value of the spectrum memory 42a. In the processing of S7 which will be described later, a frequency at which the sign of the value of the spectrum differential value memory 42b changes from minus to plus before and after the frequency SWma of the m-th standard waveform table SWm as a center is retrieved from the spectrum differential value memory 42b in order to acquire the “noticeable” frequency band. Accordingly, if the difference between the amplitudes of adjacent frequencies is calculated while including minute fluctuations in the value of the spectrum memory 42a, a frequency band which is not originally the “noticeable” frequency band is erroneously determined to be a “noticeable” frequency band. For that reason, by obtaining the differential value of the frequency spectrum from the smoothed value of the spectrum memory 42a, it is possible to more accurately acquire the “noticeable” frequency band.
After the processing of S3, it is checked whether or not the m-th waveform data in the waveform data 41b is the waveform data of the velocity “127” and the hitting point position “0 mm” (S4). When the m-th waveform data in the waveform data 41b is at the velocity “127” and the hitting point position “0 mm” (S4: Yes), the frequencies are acquired in descending order of amplitude from the value of the spectrum memory 42a and are stored in the frequencies SW1a to SW9a of the standard waveform tables SW1 to SW9 in ascending order of frequency, respectively (S5). On the other hand, if the m-th waveform data in the waveform data 41b is not at the velocity “127” and the hitting point position “0 mm” (S4: No), the processing of S5 is skipped. As a result, the frequency which is the center of the “noticeable” frequency band is acquired from the waveform data of the velocity “127” and the hitting point position “0 mm” in the waveform data 41b, and the obtained frequencies are stored in the frequencies SW1a to SW9a of the standard waveform tables SW1 to SW9, respectively.
After the processing of S4 and S5, n is set to 1 (S6). n is a natural number and is a value indicating the position of the acquisition/storage destination of the standard waveform table SWm. Hereinafter, “n-th” means “1st” when the value of n is 1, “2nd” when the value of n is 2, . . . , “6th” when the value of n is 6, respectively.
After the processing of S6, a frequency closest to the frequency SWma of the n-th standard waveform table SWm is selected. Two frequencies at which the sign of the value of the spectrum differential value memory 42b changes from minus to plus before and after the selected frequency as a center are searched for in the spectrum differential value memory 42b. The pitch envelope, the amplitude envelope, and the start phase of the frequency band in that range are calculated from the m-th waveform data in the waveform data 41b and stored in each memory of the standard waveform table SWm (S7).
Specifically, in the processing of S5, the frequency SWma of the n-th standard waveform table SWm is specified as a “mountain top” of a curve connecting adjacent frequencies in the spectrum memory 42a. A lump of a mountain including the “mountain top” is made into the “noticeable” frequency band. Therefore, two frequencies at which the sign of the value of the spectrum differential value memory 42b changes from minus to plus before and after the frequency closest to the frequency SWma, that is, two frequencies which are the “valley bottoms” at both ends around the mountain peak are searched. The frequency band between these “valley bottoms” is the “noticeable” frequency band. By performing a well-known Hilbert transformation on the m-th waveform data in the waveform data 41b for the frequency band between the “valley bottoms,” the pitch envelope, amplitude envelope and start phase are calculated. At this time, the lengths of the pitch envelope and amplitude envelope are adjusted to be 3 seconds each. Also, during the time when the pitch envelope and the amplitude envelope are stored (that is, the time P11 and the time A11), 128 times acquired as a result of analyzing all the waveform data in the waveform data 41b are provided in advance. In addition, based on the time P11 and the time A11, the pitch envelope and the amplitude envelope are calculated.
The pitch envelope, amplitude envelope, and start phase are stored in the pitch envelope data SWmb, the amplitude envelope data SWmc, and the start phase data SWmd of the corresponding frequency SWma of the standard waveform table SWm, respectively. As a result, it is possible to acquire the pitch envelope, the amplitude envelope, and the start phase of the “noticeable” frequency band for each frequency. In this way, since a lump of the mountain including the “mountain top” is set as the “noticeable” frequency band rather than the frequency of the “mountain top” of the curve connecting adjacent frequencies in the spectrum memory 42a, it is possible to store changes in pitch and amplitude for a wider frequency band. Therefore, it is possible to reproduce more drum-like sounds when musical sounds are generated using the electronic drum 1.
After the processing of S7, the frequency component of the frequency band stored in the standard waveform table SWm is removed from the residual spectrum memory 42c (S8). Specifically, in the residual spectrum memory 42c, frequency components in the frequency band stored in the standard waveform table SWm in the processing of S8 are removed. As a result, frequency components in the “noticeable” frequency band can be removed from the residual waveform data RWm created from the residual spectrum memory 42c in S11 which will be described later.
Here, the processing of S5 to S8 will be described with reference to
In the standard waveform generation processing, first, six “mountain tops” having large amplitudes are searched from the value of the spectrum memory 42a (S5). When the “mountain tops” are found, two “valley bottoms” at which the sign of the value of the spectrum differential value memory 42b changes from minus to plus before and after the frequency closest to the mountain top frequency are found. That is, both ends of the dotted line on the horizontal axis in M1 to M6 in
In addition, note that the “sine wave component” described in the claims means the pitch envelope, amplitude envelope and the start phase of the “noticeable” frequency band of the waveform data. Also, the “residual component” means a component other than the “sine wave component” of the waveform data 41b.
Returning to
In the processing of S10, if n is 6 or less (S10: No), the processing of S7 is performed. After the processing of S11, 1 is added tom (S12). After the processing of S12, it is checked whether or not m is larger than 9 (S13). Since the number of waveform data in the waveform data 41b and the number of the standard waveform table SWm and the residual waveform data RWm stored in the waveform table 41c are 9 each, it is checked whether or not m is larger than the upper limit of “9.” When m is larger than 9 (S13: Yes), the standard waveform generation processing is terminated. On the other hand, if m is less than or equal to 9 (S13: No), the processing of S2 is performed.
As described above, in the standard waveform generation processing, the “noticeable” frequency band (that is, the main sine wave component) is specified from the spectrum memory 42a which is the frequency spectrum of the waveform data of the waveform data 41b and the spectrum differential value memory 42b which is the differential value of the spectrum memory 42a, and the pitch envelope, the amplitude envelope and the start phase of the frequency band are stored in the standard waveform tables SW1 to SW9. On the other hand, the waveform data (that is, the residual components) of frequency bands not stored in the standard waveform tables SW1 to SW9 are stored in the residual waveform data RW1 to RW9. Since the pitch envelope and the amplitude envelope of the characteristic “noticeable” frequency band, that is, the temporal changes of the pitch and amplitude are stored in this way, it is possible to suitably reproduce drum-like tone color changes. In addition, since the frequency band from which the “noticeable” frequency band is removed is also stored in the residual waveform data RW1 to RW9, by matching it with the musical sounds resulting from the standard waveform tables SW1 to SW9, sounds of the entire frequency band of the drum sound can be reproduced.
Next, an electrical configuration of the electronic drum 1 will be described with reference to
The CPU 20 is an arithmetic device that controls each unit connected via the bus line 28. The ROM 21 is a non-rewritable memory. The ROM 21 stores a control program 21a to be executed by the CPU 20 and fixed value data (not shown) and the like referenced by the CPU 20 when the control program 21a is executed. When the control program 21a is executed by the CPU 20, beating detection processing of
The flash memory 22 is a rewritable nonvolatile memory, and is provided with the waveform table 22a. The waveform table 22a is a table that stores waveform information of the electronic drum pad 3 which correspond to a plurality of velocities and a plurality of hitting point positions. The waveform table 22a stores the above-described waveform table 41c (see
Returning to
The velocity memory 23a is a memory for storing the velocity of the musical sound detected from the output value (the result of detection) of the struck sensor 31 of the electronic drum pad 3 which will be described later. When the power of the electronic drum sound source device 2 is turned on, the velocity memory 23a is initialized to “0” indicating that the velocity is not stored. In the beating detection processing of
The hitting point position memory 23b is a memory for storing the hitting point position (the unit is mm) of the musical sound detected from the output value of the struck sensor 31. When the power of the electronic drum sound source device 2 is turned on, the hitting point position memory 23b is initialized to “0” indicating that the hitting point position is not stored. In the beating detection processing of
The selected waveform table 23c is a table for storing waveform information approximating to the value of the velocity memory 23a and the value of the hitting point position memory 23b acquired from the waveform table 22a and its weighting coefficients. The selected waveform table 23c will be described with reference to
The waveform memory 23c1 is a memory for storing waveform information approximating to the value of the velocity memory 23a and the value of the hitting point position memory 23b in the waveform table 22a. The waveform memory 23c1 is initialized to “0” indicating that waveform information is not stored when the power of the electronic drum sound source device 2 is turned on and immediately after the beating detection processing of
For example, when the value of the velocity memory 23a is “75” and the value of the hitting point position memory 23b is “50 mm,” the velocity values of the waveform table 22a approximating to the case where the value of the velocity memory 23a is “75” are “127” and “70.” Also, the hitting point positions of the waveform table 22a approximating to the case where the value of the hitting point position memory 23b is “50 mm” are “0 mm” (that is, the hitting point position AP1) and “75 mm” (that is, the hitting point position AP2). Therefore, in this case, the waveform information of the waveform table 22a stored in the waveform memory 23c1 is four, i.e., “(SW1, RW1),” “(SW2, RW2),” “(SW4, RW4),” and “(SW5, RW5).” Also, the standard waveform tables SW1 to SW9 and the residual waveform data RW1 to RW9 are stored in No. 1 to No. 4 of the waveform memory 23c1 in ascending order of the suffix numbers.
The weighting factor memory 23c2 is a memory for storing the weighting coefficients of the waveform information stored in the waveform memory 23c1. When the power of the electronic drum sound source device 2 is turned on and immediately after the beating detection processing of
Returning to
The frequency 23d1 stores the frequencies SW1a to SW9a at the same storage position in the standard waveform tables SW1 to SW9 of the waveform information which are stored in the waveform memory 23c1 of the selected waveform table 23c. The value of the frequency 23d1 is used as the frequency of each sine wave sounded by a sine wave generator of the sound source 25 in the beating detection processing of
The pitch envelope data 23d2 stores the pitch envelope on which a weighting operation is performed by the weighting coefficient memory 23c2 of the selected waveform table 23c. When the power of the electronic drum sound source device 2 is turned on and immediately after the beating detection processing of
The amplitude envelope data 23d3 stores the amplitude envelope on which a weighting operation is performed by the weighting coefficient memory 23c2 of the selected waveform table 23c. When the power of the electronic drum sound source device 2 is turned on and immediately after the beating detection processing of
The start phase data 23d4 stores the start phase data SW1d to SW9d at the same storage position in the standard waveform tables SW1 to SW9 of the waveform information calculated by the start phase interpolation processing. When the power of the electronic drum sound source device 2 is turned on and immediately after the beating detection processing of
Returning to
Returning to
In the present embodiment, a weighting operation is performed on the values of the start phase memory 23e1 of the start phase calculation table 23e with the values of the weighting coefficient memory 23e2, and then the respective values are added and stored in the start phase data 23d4 of the corresponding frequency of the weighted waveform table 23d. When the difference between the values of the start phase memory 23e1 is large, for example, in the value of a certain start phase data 23d4, when No. 1 is “⅛π,” No. 2 is “¼π,” No. 3 is “3/2π,” and No. 4 is “15/8π,” the value of the phase difference between No. 2 and No. 3 is “5/4π” but the angular difference is “¾π.” This is because the phase is a value that periodically repeats in the range of 0 to 2π, so that the difference value of the phase does not become the angular difference as it is. Depending on the value of the start phase, when interpolation of the start phase is performed using a weighting operation without changing the value of the start phase, it becomes a start phase on a side opposite to the expected start phase, thereby causing a discomfort on hearing sense. Therefore, the value of the start phase memory 23e1 which takes the maximum value of the difference between the values of the adjacent start phase memories 23e1 sorted in descending order is stored in the phase interpolation threshold memory 23f, and is subtracted by 2n from the value of the start phase memory 23e1 equal to or greater than the value of the phase interpolation threshold memory 23f. In the above example, the maximum value of the differences between the values of the adjacent start phase data 23d4 in No. 1 to No. 4 is “5/4π” between No. 2 and No. 3. Therefore, 2π is subtracted from No. 3 and No. 4 to be “−½π” and “−⅛π.” As a result, since the difference value of the start phase and the angular difference become equal, the interpolation of the start phase using the weighting operation also accords with the angular difference so that a discomfort on hearing sense can be reduced.
Returning to
The electronic drum pad 3 is an electronic percussion instrument that transmits beating signals corresponding to hits on the struck surface 30 by the user to the electronic drum sound source device 2. The electronic drum pad 3 has the struck surface 30 for receiving hitting of the user (see
The sound source 25 is a device for controlling a tone color of a musical sound and various effects in accordance with instructions from the CPU 20. The sound source 25 incorporates a digital signal processor (DSP) 25a that performs envelope processing of musical sounds and arithmetic processing of filters, effects and the like. Also, the sound source 25 is provided with six sine wave generators that generate sine waves with specified frequencies and amplitudes. The sound source 25 performs tone color control using the waveform obtained by performing weighting operation on the waveform memory 23c1 stored in the selected waveform table 23c in the weighting coefficient memory 23c2. At this time, the waveform based on the pitch envelope data, the amplitude envelope data, and the start phase of the standard waveform tables SW1 to SW9 of the waveform memory 23c1 are output as sine waves by the sine wave generator. Then, the waveforms of the residual waveform data RW1 to RW9 and these sine waves are mixed, and the digital musical sound signals thereof are converted into analog musical sound signals by a D/A converter (not shown) and are output to the amplifier 26.
The amplifier 26 amplifies the analog musical sound signals output from the sound source 25 and outputs the amplified analog musical sound signals to the speaker 27. The speaker 27 generates (outputs) the analog musical sound signals amplified by the amplifier 26 as musical sounds.
Next, beating detection processing and start phase interpolation processing executed by the CPU 20 of the electronic drum sound source device 2 will be described with reference to
First, the hitting point position and the velocity are detected from the output value of the struck sensor 31 and are stored in the velocity memory 23a and the hitting point position memory 23b (S20). Specifically, the waveform of the output value of the struck sensor 31 is analyzed, and the velocity (hitting strength) and the hitting point position (the distance from the center of the struck surface 30) are detected and stored in the velocity memory 23a and the hitting point position memory 23b, respectively.
After the processing of S20, the waveform information approximating to the value of the velocity memory 23a and the value of the hitting point position memory 23b is acquired from the waveform table 22a and is stored in the waveform memory 23c1 of the selected waveform table 23c (S21). A total of four pieces of waveform information in which two sets of velocities of the waveform table 22a approximating to the values of the velocity memory 23a and two sets of the hitting point positions AP1 to AP3 of the waveform table 22a approximating to the values of the hitting point position memory 23b are respectively combined are stored in the waveform memory 23c1.
After the processing of S21, the weighting coefficients are calculated from the value of the velocity memory 23a and the value of the hitting point position memory 23b and stored in the weighting coefficient memory 23c2 of the selected waveform table 23c (S22). Specifically, in response to all of the waveform information stored in the waveform memory 23c1 of the selected waveform table 23c, the velocities and hitting point positions AP1 to AP3 corresponding to the waveform information are acquired from the waveform table 22a. The weighting coefficients are calculated from the velocities, the hitting point positions AP1 to AP3, the value of the velocity memory 23a, and the value of the hitting point position memory 23b and stored in the weighting coefficient memory 23c2 of the selected waveform table 23c.
Here, the selection of the waveform information corresponding to the hits on the struck surface 30 from the waveform table 22a and the calculation of the weighting coefficients for those waveform information in the processing of S21 and S22 will be described with reference to
Taking as an example the case of
The calculated C01, C02, C11 and C12 are stored in the weighting coefficient memory 23c2 of the waveform memory 23c1. Also, the weighting coefficients may be obtained by converting the values calculated by Equations 1 to 4 in accordance with a plurality of velocities and hitting point positions in advance into a data table and then designating the velocity and the hitting point position with respect to the data table to acquire the weighting coefficients.
Returning to
After the processing of S23, the start phase interpolation processing is performed (S24). The start phase interpolation processing will be described with reference to
Since the standard waveform tables SW1 to SW9 are generated by individually recorded drum sounds, the start phases of the standard waveform tables SW1 to SW9 are not necessarily all the same. In S24 of
In
After the processing of S40, the values of the n-th start phase data SW1d to SW9d and the weighting coefficient memory 23c2 of the corresponding selected waveform table 23c are acquired from the waveform memory 23c1 of the selected waveform table 23c, and stored in the start phase calculation table 23e in the order of arrangement of the selected waveform table 23c (S41). More specifically, the n-th start phase data SW1d to SW9d are acquired from all the standard waveform tables SW1 to SW9 stored in the waveform memory 23c1 of the selected waveform table 23c. These values are stored in the same order as the waveform memory 23c1 corresponding to the standard waveform tables SW1 to SW9 from which the start phase data SW1d to SW9d of the start phase memory 23e1 of the start phase calculation table 23e are acquired. Also, the value stored in the weighting coefficient memory 23c2 of the selected waveform table 23c is stored in the start phase memory 23e1 of the start phase calculation table 23e in the order stored in the selected waveform table 23c. As described above, the start phase calculation table 23e stores the start phase memory 23e1 and the weighting coefficient memory 23e2 in the same order as the selected waveform table 23c.
After the processing of S41, the start phase calculation table 23e is sorted in descending order based on the value of the start phase memory 23e1, the differences between the values of adjacent start phase memories 23e1 are calculated, and the value of the start phase memory 23e1 taking the maximum value is stored in the phase interpolation threshold memory 23f (S42). After S42, 2π is subtracted from the value of the start phase memory 23e1 of the start phase calculation table 23e equal to or larger than the value of the phase interpolation threshold value memory 23f (S43). Depending on the values of the start phase memory 23e1 possibly to be taken, the difference between the values of the start phase memory 23e1 increases. Accordingly, if the start phase is calculated through the weighting operation, which will be described later, without a change, it becomes a start phase on a side opposite to the expected start phase, thereby causing a discomfort on hearing sense. Thus, adjustment is made by storing the value of the start phase memory 23e1 that takes the maximum value of the differences between the values of the adjacent start phase memories 23e1 sorted in descending order in the phase interpolation threshold memory 23f and subtracting 2π from the value of the start phase memory 23e1 that takes a value greater than the phase interpolation threshold value memory 23f. As a result, since the difference value of the start phases is equal to the angle difference, the interpolation of the start phase using the weighting operation also accords with the angle difference so that a discomfort on hearing sense can be reduced.
After the processing of S43, the weighting operation is performed on the value of the start phase memory 23e1 of the start phase calculation table 23e, and stored at the n-th position in the start phase data 23d4 of the weighted waveform table 23d (S44). Specifically, the result of multiplying the values of all the start phase memories 23e1 stored in the weighted waveform table 23d by the values of the weighting coefficient memory 23e2 is added. The addition result is set as the start phase at the n-th position and stored in the n-th position in the start phase data 23d4 of the weighted waveform table 23d. Also, when the addition result is a negative value, a value obtained by further adding 2π is stored in the n-th position in the start phase data 23d4 of the weighted waveform table 23d.
After the processing of S44, 1 is added to n (S45) to prepare for the processing of S40 to S44 for the next frequency. After the processing of S45, it is checked whether or not n is larger than 6 (S46). In the present embodiment, since the number of data stored in the standard waveform tables SW1 to SW9 is six, it is checked whether or not n is larger than the upper limit of “6.” When n is 6 or less (S46: No), the process returns to S40. On the other hand, if n is larger than 6 (S46: Yes), the start phase interpolation processing is terminated and the process returns to the beating detection processing (
Returning to
Then, these sine waves (that is, sine wave components) and the waveform obtained by performing a weighting operation on the residual waveform data RW1 to RW9 (that is, residual components) are mixed by the sound source 25 to generate musical sounds (sounds of a percussion instrument). In this manner, by selecting the waveform information in accordance with the velocity and the hitting point position onto the electronic drum pad 3 and performing a weighting operation on the waveform information, it is possible to generate musical sounds approximating to the velocity and hitting point position. In addition, since the start phase for each frequency uses the value of the start phase data 23d4 of the weighted waveform table 23d calculated in advance, phase interference due to the start phases disappears. Thus, since the “sound thinning” occurring, for example, in the case of reverse phase can be suppressed, it is possible to reproduce a drum sound with less discomfort on hearing sense. Also, the “sound thinning” may occur because the waveforms obtained by performing a weighting operation on the residual waveform data RW1 to RW9 are added as they are (that is, the cross-fade processing). However, the residual waveform data RW1 to RW9 are waveforms of frequency components other than the “noticeable” standard waveform tables SW1 to SW9. Thus, even if the “sound thinning” occurs, it is not so much as to cause a discomfort on hearing sense.
After the processing of S25, n is set to 1 (S26). n is a natural number and is a value indicating the acquisition position of the weighted waveform table 23d. After the processing of S26, it is checked whether or not the update time of the pitch envelope or the amplitude envelope has elapsed (S27). Specifically, in the pitch envelope data 23d2 and/or the amplitude envelope data 23d3 of the n-th weighted waveform table 23d, it is checked whether or not the time until the pitch data P12 and the amplitude level data A12 (
When the update time of the pitch envelope or the amplitude envelope has elapsed (S27: Yes), the acquisition position of the pitch envelope data 23d2 and/or the amplitude envelope data 23d3 of the n-th weighted waveform table 23d is advanced by one, and the pitch data P12 and/or amplitude level data A12 are acquired (S28).
After the processing of S28, the sine wave generator of the DSP 25a which generates the sine wave corresponding to the n-th weighted waveform table 23d generates sounds such that the pitch/amplitude set at the present time is changed to the pitch data P12 and/or amplitude level data A12 acquired by the next update time (S29). Specifically, the value of the pitch and/or the amplitude set in the sine wave generator that generates the sine wave corresponding to the n-th weighted waveform table 23d is acquired. The sound generation is performed while the pitch and/or the amplitude of the sine wave generator is changed such that the value of the pitch and/or the amplitude is smoothly changed to the pitch data P12 and/or the amplitude level data A12 acquired in S28 until the time P11 and/or the time A11 in the next update time (that is,
An example is shown in the pitch envelope data P1 in
When the update time of the pitch envelope or the amplitude envelope has not elapsed (S27: No) in the processing of S27, the processing of S28 and S29 is skipped. After the processing of S27 and S29, it is checked whether or not n is 6 or more (S30). Since the number of data stored in the weighted waveform table 23d is 6, it is checked whether or not n is “6” or more, which is the upper limit thereof. When n is smaller than 6 (S30: No), 1 is added to n (S31), and the processing of S27 is performed. On the other hand, if n is 6 or more (S30: Yes), it is checked whether or not 3 seconds have elapsed since the musical sound generation started (S32). Since the lengths of the pitch data P12 and the amplitude level data A12 stored in the pitch envelope data 23d2 and the amplitude envelope data 23d3 of the weighted waveform table 23d are 3 seconds, it is checked whether or not 3 seconds have elapsed since the generation of the musical sounds was started in the processing of S25. Whether or not three seconds have elapsed since the musical sound was generated is determined by interval interrupt processing (not shown) periodically executed (for example, every 1 ms).
In the processing of S32, if 3 seconds have not elapsed since the musical sound generation started (S32: No), the processing of S26 is performed. On the other hand, if three seconds have elapsed since the musical sound generation started (S32: Yes) in the processing of S32, the sound generation is stopped (S33). Specifically, the sounding of all the sine waves by the sine wave generator and the sound generation of the all residual waveforms started by the processing of S25 are stopped. After the processing of S33, the beating detection processing is terminated.
As described above, the electronic drum 1 in the present embodiment acquires four pieces of waveform information approximating to the value of the velocity memory 23a and the value of the hitting point position memory 23b due to the hits on the electronic drum pad 3 from the waveform table 22a, and stores them in the waveform memory 23c1 of the waveform table 23c. This waveform information is configured by combinations of standard waveform tables SW1 to SW9 each of which includes the pitch envelope, the amplitude envelope, and the start phase for each frequency in the “noticeable” frequency band from the waveform data 41b recorded from the prescribed velocity and hitting point position of the drum, and the residual waveform data RW1 to RW9 which have frequency components from which the “noticeable” frequency band has been removed.
The results of multiplying the values of the weighting coefficient memory 23c2 corresponding to the waveform memory 23c1 of the selected waveform table 23c to the values of the pitch envelope data P1 to P6 and the amplitude envelope data A1 to A6 are added to the standard waveform tables SW1 to SW9 of the waveform information stored in the waveform memory 23c1 of the selected waveform table 23c. The result of performing a weighting operation on the start phase of the same frequency in the standard waveform tables SW1 to SW9 stored in the waveform memory 23c1 with respect to the addition result is set to be a start phase, thereby obtaining a sine wave. Then, the result of multiplying the value of the weighting coefficient memory 23c2 corresponding to the waveform memory 23c1 of each selected waveform table 23c with respect to the amplitude of the residual waveform data RW1 to RW9 of the waveform information stored in the waveform memory 23c1 is added. The sine wave obtained by these and the waveforms of the residual waveform data RW1 to RW9 are input to the sound source 25, and mixed by the sound source 25 to generate sounds as musical sounds. Therefore, the sine wave and the waveform of the residual waveform data RW1 to RW9 are synthesized but two or more pieces of waveform data are not synthesized, whereby the “sound thinning” due to phase interference can be prevented. That is, it is possible to reproduce consistent musical sounds with no phase interference.
Also, a weighting operation of the waveform information stored in the waveform memory 23c1 of the selected waveform table 23c is performed in accordance with the velocity VP and the hitting point position AP (beating conditions) by hitting the electronic drum pad 3. That is, by continuously changing the pitch envelope data SW1b to SW9b and the amplitude envelope data SW1c to SW9c according to the beating conditions, it is possible to realize a smooth change in sound volume and tone color in accordance with a change in beating conditions as with the actual drum.
Furthermore, since the sine wave generated by the weighting operation is generated based on the pitch envelope data SW1b to SW9b and the amplitude envelope data SW1c to SW9c of the waveform information stored in the waveform memory 23c1, it is possible to suitably reproduce musical sounds of a drum having a large temporal change in frequency. In the waveform table 22a, since the pitch envelope data SW1b to SW9b and the amplitude envelope data SW1c to SW9c which are elements constituting sounds of a percussion instrument are stored by being differentiated from each other, tone color editing can be easily performed.
In addition to the pitch envelope data 23d2 and the amplitude envelope data 23d3, since the weighted waveform table 23d further stores start phase data and a sine wave is generated based on the start phase data 23d4, sounds of a percussion instrument with even better quality can be reproduced.
Although the present invention has been described based on the embodiments, it should be appreciated that the present invention is not limited to the above-described embodiments and various improvements and modifications are possible within the scope not deviating from the gist of the present invention.
In the present embodiment, the electronic drum 1 has been described as an example of the electronic percussion instrument. However, the present invention is not limited to this, and may be applied to simulation of other percussion instruments such as bass drums, snares, toms, cymbals, and the like.
In the present embodiment, the electronic drum 1 is configured by including the electronic drum sound source device 2 and the electronic drum pad 3 as separate devices. However, the present invention is not limited to this, and the electronic drum 1 may be configured such that the electronic drum sound source device 2 is built in the electronic drum pad 3.
In the present embodiment, six frequency frequencies with large amplitudes of the values of the spectrum memory 42a are extracted for the “noticeable” frequency band. However, the present invention is not limited to this, and a predetermined number (for example, six) of frequency bands whose amplitude of the value of the spectrum memory 42a is equal to or larger than a predetermined value (for example, −55 dB) may be extracted as the “noticeable” frequency band. In addition, six frequency bands in which the amplitude difference between the “mountain top” in the spectrum memory 42a and the “valley bottoms” before and after the “mountain top” is large may be extracted as the “noticeable” frequency band.
Further, six characteristic frequency bands may be extracted as the “noticeable” frequency band from waveform data for each velocity and each hitting point position in the waveform data 41b. Specifically, in the case where “musical sound characteristics” of waveform data at a certain velocity and hitting point position disappear by removing a certain frequency band from the waveform data at the velocity and hitting point position, the frequency band is set to be the “noticeable” frequency band.
In the present embodiment, although the number of frequencies to be extracted as the “noticeable” frequency bands is six, it may be six or more or six or less depending on the number of the sine wave generators provided in the sound source 25, the characteristics of the simulated sounds of a percussion instrument, and the like. In that case, the number of data stored in the standard waveform tables SW1 to SW9 and the weighted waveform table 23d may be set as the number of frequencies to be extracted, and the number to be compared with “n” in the processing of S10 of the standard waveform generation processing of
In the present embodiment, the center frequency of the “noticeable” frequency band is acquired by analyzing the waveform data of the velocity “127” and the hitting point position “0 mm” in the standard waveform generation processing of
In addition, the waveform data 41b of all velocities and hitting points may be analyzed beforehand and the center frequency of the “noticeable” frequency band is acquired from the waveform data 41b of each velocity and hit position, and then the pitch envelope, the amplitude envelope, and the start phase for these frequencies may be calculated from the waveform data 41b of each velocity and hitting point position.
In the present embodiment, the lengths of the pitch envelope data SW1b to SW9b of the standard waveform tables SW1 to SW9 and the lengths of the amplitude envelope data SW1c to SW9c are set to 3 seconds. However, it is not necessarily limited to this, but it may be 3 seconds or more or 3 seconds or less depending on characteristics such as the length of the musical sounds of the simulated percussion instrument.
In the present embodiment, waveforms obtained by inverse discrete Fourier transformation of the residual spectrum memory 42c including frequency components other than those stored in the standard waveform tables SW1 to SW9 from the spectrum memory 42a are stored in the residual waveform data RW1 to RW9. However, the present invention is not limited to this, and waveforms obtained by subtracting sine waves based on the standard waveform tables SW1 to SW9 from the waveforms of the waveform data 41b may be stored in the residual waveform data RW1 to RW9 as the residual waveform. In this case, since it is unnecessary to perform inverse discrete Fourier transformation on the residual spectrum memory 42c and there is no calculation error due to the inverse discrete Fourier transformation, the residual waveform data more faithful to the waveform data 41b can be stored in the residual waveform data RW1 to RW9.
In the present embodiment, it is assumed that four pieces of waveform information are stored in the selected waveform table 23c, depending on the velocity and the hitting point position onto the struck surface 30. However, the present invention is not limited to this, and the number of pieces of waveform information stored in the selected waveform table 23c may be two or three or more. In that case, the size of the selected waveform table 23c and the start phase calculation table 23e may be set to a size that matches the number of pieces of waveform information to be stored.
In the present embodiment, the amplitude of the waveform of the residual waveform data RW1 to RW9 stored in the waveform memory 23c1 of the selected waveform table 23c is multiplied by the weighting coefficient memory 23c2 corresponding to the position of the waveform memory 23c1 and the resultant waveforms are added to generate sounds. However, the present invention is not limited to this, and for example, one of the residual waveform data RW1 to RW9 stored in the waveform memory 23c1 of the selected waveform table 23c may be sounded without performing a weighting operation on the residual waveform data RW1 to RW9.
In the present embodiment, nine pieces of waveform information are stored in the waveform table 22a. However, the present invention is not limited to this, and the waveform information stored in the waveform table 22a may be nine or more, or nine or less. In that case, the size of the waveform tables 41c and 22a and the number to be compared with “m” in the processing of S13 of the standard waveform creation process of
Number | Date | Country | Kind |
---|---|---|---|
2016-183637 | Sep 2016 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2017/026173 | 7/20/2017 | WO | 00 |