This application claims the benefit of Japanese Patent Application 2003-116656 filed Apr. 22, 2003 and Japanese Patent Application 2003-366166 filed Oct. 27, 2003. The disclosure(s) of the above application(s) is (are) incorporated herein by reference.
The present invention relates to an apparatus and a computer program for detecting and correcting tone pitches, and more particularly to an apparatus and a computer program for detecting the pitches of given tone waveforms such as musical instrument voices and human singing voices, and also for correcting the pitches of such given tone waveforms based on the detected tone pitches.
An apparatus which corrects tone pitches of a given tone waveform is known in the art such as a pitch corrector or a pitch changer which corrects the tone pitches of a given tone waveform to arbitrarily designated note pitches (i.e. tone frequencies) in a musical scale. See, for example, unexamined Japanese patent publication No. H1O-78791 (now issued U.S. Pat. No. 3,379,348). Such an apparatus is used mainly for correcting unstable or incorrect musical instrument tones or singer's voices fluctuating or deviating in tone pitch to produce a refined musical performance. For example, the apparatus may be used to adjust the singer's vocal tone pitches to the correct pitches of the accompaniment at a karaoke place. Or alternatively, the apparatus may be used to emphasize the characteristic features of the performed tones or voices by intentionally fluctuating or deviating the pitches in order to highlight the performers performance. A pitch corrector is capable of processing musical tone wave signals in real time. Some devices are provided in the form of a function expanding plug-in software for an automatic music performing apparatus. For example, a pitch corrector may be useful in the case of recording vocal tones (i.e. human voices of a singer) accompanied by an automatic musical performance so that the pitches of the vocal tones should be corrected to the predetermined melody note pitches (or to the accurate note pitches in the predetermined musical scale) to realize voices singing in accurate note pitches to match the accompaniment.
Such an apparatus or software product like a pitch corrector or pitch changer for correcting the pitches of the given tone waveform should have a function of detecting the note pitches of the given or inputted tone waveform. A typical pitch detecting procedure is to form an envelop waveform from the given tone waveform data, to detect the zero crossing points (the points where the wave shape crosses the zero level from a positive area to a negative area or from a negative area to a positive area) of the envelope waveform, and then to recognize the period (time span) between each adjacent zero cross points to determine the period of the given tone waveform.
A conventionally known pitch correcting apparatus or software product, however, did not include a device for visually recognizing how each tone pitch was corrected, and so forth. Further, a conventional apparatus which forms an envelope waveform of the input tone waveform and merely measures periods (time span) between respective zero cross points would inevitably involve errors due to noise vibrations or higher harmonics vibrations contained in the input tone waveform in the vicinity of the zero level.
It is, therefore, a primary object of the present invention to solve the drawbacks with the conventional apparatus and software product, and to provide a novel type of apparatus and computer program for detecting and correcting tone pitches, in which the pitches of the given musical tone waveform can be detected with minimal errors even in the case where the input tone waveform contains noise components or higher harmonic vibration components in the vicinity of the zero level line, and further the manner (i.e. by what amount and in which direction) of the pitch correction can be readily recognized visually by the user.
According to the present invention, the object is accomplished by providing an apparatus for detecting tone pitches of a given tone waveform comprising: an envelope forming device which forms an envelope waveform of the given tone waveform; a zero cross time notifying device which notifies zero cross times of the given tone waveform; an envelope level holding device which holds the level of the envelope waveform at each of the notified zero cross times; a hold release device which releases the level of the envelope waveform held by the envelope level holding device, every time the level of the given tone waveform exceeds the level of the envelope waveform held by the envelope holding device; a pitch determining device which determines the pitch of the given tone waveform based on the times of such releasing.
According to the present invention, the object is further accomplished by providing a computer program for detecting tone pitches of a given tone waveform containing program instructions executable by a computer, the program causing the computer to execute: an envelope forming step of forming an envelope waveform of the given tone waveform; a zero cross time notifying step of notifying zero cross times of the given tone waveform; an envelope level holding step of holding the level of the envelope waveform at each of the notified zero cross times; a hold release step of releasing the level of the envelope waveform held by the envelope level holding step, every time the level of the given waveform exceeds the level of the envelope waveform held by the envelope holding device; a pitch determining step of determining the pitch of the given tone waveform based on the times of such releasing.
The similar signal processing may be conducted separately in both the positive swing side and the negative swing side of the given tone waveform involving a positive side envelope waveform and a negative side envelope waveform. The pitch may preferably be determined by averaging several periods between the adjacent zero cross times. Further, errors among detected periods may preferably be taken so that the detected periods having an unusual error value should be omitted from determining the tone pitch.
According to the present invention, the object is still further accomplished by providing an apparatus for correcting tone pitches of a tone waveform comprising: a pitch detecting device which detects a tone pitch of the given tone waveform; a correction target note pitch providing device which provides a correction target note pitch to which the tone pitch of the given tone waveform is to be corrected; a pitch correcting device which corrects the detected tone pitch of the given tone waveform to the correction target note pitch; a correction target note exhibiting device which exhibits the correction target note pitch; and a pitch correction exhibiting device which exhibits the conditions of the pitch correction by the pitch correcting device.
According to the present invention, the object is still further accomplished by providing a computer program for correcting tone pitches of a given tone waveform containing program instructions executable by a computer which is connected to a display device, the program causing the computer to execute: a pitch detecting step of detecting a tone pitch of a given tone waveform; a correction target note pitch providing step of providing a correction target note pitch to which the tone pitch of the given tone waveform is to be corrected; a pitch correcting step of correcting the detected tone pitch of the given tone waveform to the correction target note pitch; a correction target note exhibiting step of exhibiting the correction target note pitch on the display device; and a pitch correction exhibiting step of exhibiting the conditions of the pitch correction by the pitch correcting step.
In an aspect of the present invention, the conditions of the pitch correction are exhibited by exhibiting the detected tone pitch of the given tone waveform and an amount of pitch correction as corrected by the pitch correction from the detected tone pitch of the given tone waveform.
In a further aspect of the present invention, the correction target note pitch is indicated by lighting an indicator element correspondingly provided for each of respective note pitches, the indicator increasing its illuminance gradually to a maximum illuminance with a predetermined time constant to start lighting and decreasing its illuminance gradually to a minimum illuminance with a predetermined time constant to extinguish lighting. The indicator elements may be a picture image of a musical keyboard exhibited on a display device. Further, the indicator elements may be a hardware keyboard having keys with respectively installed lamps for indication, or may be another type of note indicating device capable of individually indicating note names or note pitches.
With an apparatus and a computer program for detecting tone pitches of a given tone waveform according to the present invention, an envelope waveform of a given tone waveform is formed, the level of the envelope waveform is held at every zero cross time of the given tone waveform crossing the zero level, the so held envelope waveform level is released when the level of the given tone waveform exceeds the held envelope waveform level, and the tone pitch is determined based on the period between the adjacent hold release times, and therefore, the noise components and the higher harmonic components contained in the given tone waveform will hardly influence the determination of the pitch. In addition, by avoiding errors found in the hold release times, the pitch of the given tone waveform will be detected with minimal errors.
With an apparatus and a computer program for correcting tone pitches of a given tone waveform according to the present invention, the correction target note pitch, the tone pitch of the given tone waveform and the amount of pitch correction are exhibited as an apparent visual presentation, and therefore, the user can readily understand how the pitch correction is going on.
As will be apparent from the description herein later, some of the structural element devices of the present invention are structured by means of a hardware circuits, while some are configured by a computer system performing the assigned functions according to the associated programs. The former may of course be configured by a computer system and the latter may of course be hardware structured discrete devices. Therefore, a hardware-structured device performing a certain function and a computer-configured arrangement performing the same function should be considered a same-named device or an equivalent to each other.
Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention.
For a better understanding of the present invention, and to show how the same may be practiced and will work, reference will now be made, by way of example, to the accompanying drawings, in which:
a–3d are charts respectively depicting examples of the exhibited setting window for the pitch corrector according to the present invention.
a and 7b are, in combination, a flow chart describing the process steps for exhibiting the setting window in an embodiment of the present invention.
a and 13b are, in combination, a flow chart describing the process steps of the pitch detection processing according to the present invention.
The following description of the preferred embodiment(s) is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses.
Herein below will be described an embodiment of the present invention with reference to accompanying drawings.
The CPU 101 controls the overall operations of the pitch corrector of this embodiment. The ROM/RAM block 102 includes a nonvolatile read-only memory (ROM) and a volatile random-access memory (RAM) for storing programs executed by the CPU 101 and data processed by the CPU 101. The HDD 103 is an external storage device storing various programs and data used by the CPU 101. The alphanumeric keyboard 104 is, for example, a QWERTY keyboard as used for typing on an ordinary personal computer. The display 105 exhibits various information based on the instructions from the CPU 101. The audio input/output interface 106 is an interface for inputting and outputting musical tone waveforms. The MIDI interface 107 is an interface for inputting and outputting MIDI signals. The network interface 108 is a communication interface for connecting this apparatus to a local area network (LAN) and Internet. The bus line 110 is a bus line for connecting these mentioned devices with each other.
The pitch corrector of this structure may be constructed as a dedicated apparatus for the exclusive use or may be configured using a general-purpose personal computer (PC) with associated programs. The embodiment will be described herein below as a pitch corrector configured by a general-purpose personal computer together with a PC application program or a plug-in function unit for an application program.
The MIDI-control-as-scale mode is a mode in which a note name in a reference scale (of an octave) for correction is provided and the tone pitch of a given tone waveform is corrected to the pitch of the note name in the reference scale for correction of the octave which is closest to the given tone pitch. The reference scale consists of note names (within an octave) of correction target note pitches, i.e. C, C#, D, - - - , A#, B (twelve notes at maximum). The note name of the correction target note pitch may be provided in terms of a MIDI note number (key code) in real time. The note names in the reference scale for this purpose carry no octave distinction (identification) such as “3” and “4” contained in “C3” and “C4” but carry only note names within an octave to be recognized by note names C, C#, - - - , B alone. Upon receipt of a MIDI note-on event, the note name of the received MIDI note number is added in the reference scale for correction, and upon receipt of a MIDI note-off event, the note name of the received MIDI note number is deleted from the reference scale for correction.
The MIDI-control-as-note mode is a mode in which a note name of a reference note for correction is provided and the tone pitch of a given tone waveform is corrected to the pitch of the note name (with octave distinction). The reference note for correction is expressed in an absolute value in terms of a MIDI note number in real time and carries the octave identification discriminating, for example, “C4” from “C3” in the case of a “C” note in a scale, Upon receipt of a MIDI note-on event of a single note, the note name of the received MIDI note number is recognized as the reference note for correction itself, and receipt of a MIDI note-off event of a single note, the note name of the received MIDI note number is deleted from the reference notes for correction. When plural MIDI note-on events are received, the latest arrival will prevail (last come, highest priority).
The panel mode is a mode in which a note name in a reference scale (of an octave) for correction is designated by a key (i.e. tonality) and a scale (degree name) using a menu box. An arbitrary scale can be designated through some predetermined manipulation. When a note in a reference scale is designated under the panel mode, the tone pitch of the inputted tone waveform (input signal) is corrected to the pitch of the note name in the reference scale for correction of the octave which is closest to the inputted tone pitch.
A description will be then made in detail about the processing at the respective blocks in
To a block 201 for detecting pitch is inputted a parameter Type, which is a parameter for selecting the filter and pitch detection type which will fit the nature of the inputted tone waveform. Specifically, it is one of three categories, normal, male voice and female voice. The block 201 detects the tone pitch (e.g. frequency value) of the inputted tone waveform using a filtering and pitch detecting method according to the parameter Type. The detected tone pitch data is inputted to an adder 202. The adder 202 subtracts a reference frequency MasterTune(IN) from the detected tone pitch data. The data MasterTune(IN) is a parameter of setting a reference frequency for the tone pitch of the inputted vocal tone waveform. The default value is A4=440 Hz. The resultant note pitch data after the subtraction of the reference frequency is inputted to the block 203 for averaging. The averaging block 203 is to exert low-pass filtering (LPF) to avoid instantaneous variation in tone pitch of the input tone signal. A parameter PitchDetectSens is a parameter for setting a responsiveness (time constant) of the averaging processing 203. This parameter is set at an adequate value mainly in accordance with the magnitude of the pitch variation of the input tone signal. The vocal tone signal as inputted here will often have some noticeable pitch fluctuation according to the way of the singer, and consequently the pitch correction with too quick responsiveness might deteriorate the inherent nature of the vocal tone. To avoid such a demerit, the parameter PitchDetectSens may be adjusted to be a less sensitive responsiveness. A block 204 for determining a correction note is to conduct processing of determining, for the averaged detected pitch data, a correction target note having the designated reference scale name for correction in the octave closest to the averaged detected pitch data. Especially under the MIDI-control-as-scale mode, the block 204 of determining a correction note adds, upon receipt of a MIDI note-on event, the note pitch of the received MIDI note number is added in the reference scale for correction, and delete, upon receipt of a MIDI note-off event, the note pitch of the received MIDI note number from the reference scale for correction. Under the panel mode operation, the block 204 for determining correction note receives the parameters Key and Scale and determines the reference scale for correction.
A switch 205 is to be switched according to the designated operational mode. For the MIDI-control-as-scale mode or for the panel mode, the switch 205 is thrown to the side 205A so that the correction target note data including the octave identification as determined by the correction note determining block 204 is supplied to a block 206 for limiting the pitch. On the other hand, for the MIDI-control-as-note mode, the switch 205 is thrown to the side 205B so that the correction target note data of the reference note for correction as inputted from outside in real time is supplied to the block 206 for limiting the pitch.
The pitch limiting block 206 is for the processing of confirming whether the correction target note data falls within the range between the predetermined lower limit and higher limit. A parameter LowLimit and a parameter HighLimit are data respectively indicating the lower limit value and the higher limit value. When the correction target note pitch becomes lower than the lower limit value, the correction target note pitch is replaced by the lower limit value, and when the correction target note pitch becomes higher than the higher limit value, the correction target note is replaced by the higher limit value. The correction target note pitch data from the pitch limiting block 206 is outputted from the corrector as a correction note exhibit data CORRNOTE 222 representing the note pitch of the pitch correction target to be exhibited on the display device. The pitch limiting processing 206 converts the correction target note pitch to the frequency value and supplies this value to an adder 207 as a correction note pitch data (in frequency).
The adder 207 subtract the note pitch (in frequency) of the detected tone pitch of the input signal from the correction note pitch data (in frequency), and the resultant data (i.e. the difference between the tone pitch of the input tone and the note pitch of the correction target, which is the amount of pitch shift for correcting the tone pitch of the input tone) is inputted to a low-pass filter (LPF) 208. The LPF 208 is to smooth the change of the pitch shift amounts. A parameter PitchCorrectSpeed is a parameter for controlling time constant of the change from the time the pitch correction starts till the time the pitch correction reaches the correction target. The smoothed pitch shift amount as outputted from the LPF 208 is outputted from the corrector as the correction amount exhibit data CORRECT 223. To this pitch shift amount data is added a parameter PitchShift at an adder 209, and then a parameter MasterTune(OUT) at an adder 210. A PitchShift is a parameter for adjusting the general (or overall) pitch of the pitch corrected tone signal, and a MasterTune(OUT) is a parameter for setting the reference frequency of the tone pitches of the pitch corrected tone signal. The block 211 for shifting pitch is to shift the tone pitch of the input tone signal in accordance with the pitch shift amount data as outputted from the adder 210, and outputs the pitch corrected resultant tone signal as the output signal OUTPUT from the pitch corrector of
a depicts an example of the setting window for the pitch corrector as exhibited on the display screen. The setting window is exhibited on the display screen when the pitch corrector is in operation as explained with reference to
b shows an example of how the indicator area 302 exhibits the conditions of the pitch correction. A T-shaped mark 311 is a detected tone pitch indicator mark which indicates the tone pitch as detected from the current input tone signal, based on the input tone pitch exhibit data INPUT_PITCH in
A pitch shift indicator mark 312 indicates the amount of the current tone pitch correction (i.e. the correction amount exhibit data CORRECT in
d is to show an example of indicating a correction target note pitch on the keyboard panel 301. The correction target note is indicated by lighting a part of the corresponding key on the keyboard panel 301 based on the correction note exhibit data CORRNOTE. The correction target note pitch varies moment by moment according to the input tone signal, and the keys of the correction target notes are lit in real time. With respect to the key of the correction target note, the illuminance of the lighted key is creased rapidly when the correction note exhibit data CORRNOTE is supplied anew to the key and reaches its maximum illuminance in a predetermined time lapse, and keeps its maximum illuminance as long as the correction note exhibit data CORRNOTE of the same correction target note name is supplied. When the correction note exhibit data CORRNOTE representing another new correction target note or NULL data (meaning no correction target note) is outputted from the pitch corrector, the key which has been lit up until then will be extinguished. The extinction is conducted gradually with a slow decay so that the visibility by the user will be secured. In
The key illuminance control unit of
The output of the Trigger 411 becomes “1,” which in turn drives the register REGc 415 to capture the initial value INIT (where INIT <1). Thus, the output C_LAMP of the display filter 402-1 turns from “0” to the initial value INIT. The key of C is illuminated with the illuminance according to the output C_LAMP in the manner as explained with reference to
Other display filters 402-2 through 402-12 (for C# through B) are of the same structure, and each of them outputs the key illuminance signal (C#_LAMP, - - -, B) for the assigned note name so that the key in the keyboard panel 301 is illuminated in the similar manner as explained with respect to the key of C above. Seven or eight grades may be enough for the degrees of the key illuminance practically.
The second line of
As described above, where the inputted tone pitch varies without interruption therebetween or varies contiguously in a sufficiently short time, the illuminance of the key to be extinguished decreases gradually with some afterglow while the next key illumination starts as soon as the key is designated by the next data, thus the user can easily follow the changes in the correction target note pitches.
Where the key-on and the key-off (meaning the start and the end of the input tone waveform in this context) of the same tone pitch are repeated continuously, the illuminance may be controlled to decay rapidly (i.e. without a slow decay) so that the user can recognize the on events and the off events individually. For such a purpose, the parameter DISPLAYTC of the display filters may be varied according to the time span between the key-on event and the key-off event or the time span between the adjacent key-on events, or according to the number of key-on events or key-off events in a predetermined period of time. Also in the case of key-on and key-off repetition with the different tone pitches, a similar control as mentioned above may be utilized according to the way of variation in the key-on and the key-off events.
Further, the time constants for the build up and the decay of key illuminance may be changeable or selectable. The parameter DISPLAYCT of the display filter may be made arbitrarily alterable for the user on predetermined setting window. While the display filter of
a and 7b show, in combination, a flow chart describing the subroutine process steps of the step 603 of
Next, in a step 613, the note name C which is the first note in an octave scale is placed into a work register x. The content of the register x is herein called a “note x” for the sake of brevity. A step 614 judges whether there is an “on” event of the correction target note x, i.e. whether the data CORRNOTE is x. If the judgment is negative (NO), the process skips to a step 616 (
The format of the data for expressing note pitches may be of any convenient type. The note pitches may be simply expressed in their frequencies using binary notations of the frequency values. However, more conveniently and preferably, the note pitches may be expressed in a logarithmic scale, such as logarithmic frequency values and cent values, so that the calculation processes will be simple in shifting pitches. The cent values are values measuring a semitone as 100 cents and an octave as 1200 cents, which system is widely employed in the field of musical engineering. In identifying any arbitrary pitches absolutely, some reference pitch is taken as the “0” cent point and all the pitches are expressed by the heights or distances from such a reference point. For example, if the orchestral pitch standard note A4=440 Hz is taken as the reference point at “0” cent, the one-octave higher note A5 (=880 Hz) is expressed as “+1200 cents” pitch, while the whole-tone lower note G4 (=392 Hz) is expressed as “−200 cents” pitch.
In order to express all the possible pitch handled in the system in positive values, a pitch which is lower than any possible pitches to be handled should be taken as the reference pitch for the “0” cent point. For example, the note A(−2) having a frequency of 6.875 Hz may be taken as the “0” cent pitch. Then, the six-octave higher note A4 will be at “+7200” cents, the middle C note C4 will be at “+6300” cents, the note C3 will be at “+5100” cents, and the note C5 will be at “+7500” cents. A semitone interval is “100” cents and an octave interval is “1200” cents. This format in the cent value expression is very convenient in understanding the pitches (positions) and the intervals (distances), and even in recognizing the note names. For example, where the A4 =“+7200,” the data values “+0,” “+1200,” “+2400,” “+3600,” “+4800,” “+6000,” “+7200,” “+8400,” “+9600,” - - - all represent A notes (in different octaves). And further, the data values “+300,” “+1500,” “+2700,” “+3900,” “+5100,” “+6300,” “+7500,” - - - all represent C notes (in different octaves).
The use of the cent value format facilitates coping with the change in the standard pitch of performance. It is assumed here that all the pitch related data in the system are stored and handled on the basis of A4 =440 Hz. Then, if the inputted tones are those performed on the standard pitch of A4 =441 Hz, the difference between these frequencies is 3.9302 cents, and then the detected pitch can be simply offset by this amount before inputting to and after outputting from the system.
The data in the cent value format can be utilized in controlling the illuminances of the keys. For example, if the detected tone pitch is equal to the standard note pitch (in cents), the key illuminance is made maximum, and if the detected tone pitch is deviated from the standard note pitch (in cents), the key illuminance is decreased according to the amount of cent deviation.
While the above description is made with respect to the embodiment in which the signal processing in the pitch corrector and the processing for the keyboard exhibition according to the program running on the personal computer, any arbitrary unit or block may be realized by a hardware circuit or device. In place of the keyboard panel exhibition on the display screen as shown in
Hereinbelow will be described an embodiment of the pitch detecting block 201 in the pitch corrector of
The principle of the pitch detection of the present invention is described in detail with reference to
The similar two kinds of operations (a) and (b) are performed with respect to the negative side envelope processing in connection with the negative side swings of the given tone wave. For the negative side, however, the operation (a) is to form a negative envelope wave, to await and detect a zero cross time from the negative side to the positive side of the original tone waveform and to hold the negative side envelope wave level at such a detected time. The operation (b) for the negative side is to compare the waveform level of the original tone waveform with the held negative side envelope wave level and to release the so-far held negative side envelope wave level at the time when the absolute value of the original tone waveform exceeds the absolute value of the so-far held negative side envelope level. And then at this time point, the timing flag CMP is set to be “1”.
To summarize the both sides of operations, the sequence will be:
The time span during which the timing detection flag CMP=1 is herein termed as “CMP+” and the time span where CMP=−1 is termed as “CMP−.” Basically, the time length between the turning point to CMP 1 and the next turning point to CMP=1, or the time length between the turning point to CMP=−1 and the next turning point to CMP=−1 can be taken as the fundamental period (defining the tone pitch) of the input tone waveform. Thus measuring such time lengths a predetermined number of times, and averaging the measured time lengths, the pitch of the input tone waveform can be determined accurately. If the period of the tone waveform is to be determined based on the time length between the two turning points to CMP=1, the processing may be conducted only with respect to the positive side of the tone wave, and the negative side processing may be omitted, Further, the time span lengths may not necessarily be measured between the adjacent turning points to CMP=1 themselves, but may be measured between the two zero cross points immediately before the turning points to CMP=1. The idea is to determine the period of the input tone waveform based on (or using) the turning points to CMP=1 (or maybe CMP=−1). In the embodiment of the present invention, a number of successively occurring turning points to CMP=1 and turning points to CMP=−1 are taken for measuring the time span lengths in some different types of measuring patterns to find errors among those measured time span length, and such a measured time span length having a noticeable error among others would be omitted from determining the tone pitch. The error detection procedure will be described herein later in connection with a step 1110 in
In addition to the hold release operation at the time when the input tone wave level exceeds the so-far held envelope wave level in the operation (b) above, the envelope wave level holding is forcibly terminated at the time when the determined hold time has lapsed. For example, in
Now referring to
A range limiting filter 1001 is to limit the input tone wave within a predetermined range based on the parameter TYPE. The parameter TYPE is to distinguish among normal, male voices and female voices, and the range is limited accordingly. The output from the range limiting filter 1001 is supplied to the input terminals A of comparators 1008 and 1009, respectively. The output from the range limiting filter 1001 is also supplied to a positive side envelope follower 1002, a negative side envelope follower 1003, a zero cross detector 1004 and a level detector 1005. This output from the range limiting filter 1001 corresponds to the original waveform 701 of which the pitch is to be detected.
The positive side envelope follower 1002 is to form an envelope waveform of the positive side of the input waveform as described with reference to
The output of the holding unit 1006 is inputted to the B terminal of the comparator 1008. The comparator 1008 compares the level of the input waveform as inputted at the input terminal A and the level of the output signal from the holding unit 1006 as inputted at the input terminal B, and outputs a notification signal to the pitch determining unit 1010 when A>B.
The negative side envelope follower 1003, a holding unit 1007 and a comparator 1009 conduct the similar processing for the negative side of the input waveform as the positive side envelope follower 1002, the holding unit 1006 and the comparator 1008 did for the positive side of the input waveform. The comparator 1009 is to compare the absolute value of the level of the input waveform and the absolute value of the output level of the holding unit 1007. The zero cross detector 1004 detects the zero cross time of the input waveform. The level detector 1005 detects the time when the level of the input waveform exceeds a predetermined threshold level TH.
The pitch determining unit 1010 controls the overall operation of the pitch corrector. In particular, the pitch determining unit 1010 outputs the hold start signal H and the reset signal R in order to realize the operation as described with reference to
1) Positive Side Operation (a): The pitch determining unit 1010 receives, from the zero cross detector 1004, the zero cross time 711 from the positive side to the negative side of the input waveform, and outputs the hold start signal H to the holding unit 1006 at this time. If a positive timer 1011 counts the determined hold time, the pitch determining unit 1010 also outputs the hold start signal H to the holding unit 1006, even if such a zero cross time from the positive side to the negative side is not detected.
2) Negative Side Operation (b): The pitch determining unit 1010 receives, from the comparator 1009, the time of |A|>|B|, and outputs the reset signal R to the holding unit 1007 at this time. Concurrently at this time, the pitch determining unit 1010 resets the negative side timer 1012 to start counting the hold time and set CMP=“−1.”
3) Negative Side Operation (a): The pitch determining unit 1010 receives, from the zero cross detector 1004, the zero cross time from the negative side to the positive side of the input waveform, and outputs the hold start signal H to the holding unit 1007 at this time. If a negative timer 1012 counts the determined hold time, the pitch determining unit 1010 also outputs the hold start signal H to the holding unit 1007, even if such a zero cross time from the negative side to the positive side is not detected.
4) Positive Side Operation (b): The pitch determining unit 1010 receives, from the comparator 1008, the time 713 of A>B, and outputs the reset signal R to the holding unit 1006 at this time. Concurrently at this time, the pitch determining unit 1010 resets the positive side timer 1011 to start counting the hold time 721 and set CMP=“1.”
As so far described, the pitch determining unit 1010 realizes the operations as explained with reference to
a and 13b, in combination, describe a flow chart of the pitch detection processing performed by the pitch detecting block 201 of
The step 1104 checks the zero cross count of the input waveform and get the number ZEROX of detected zero crosses within a predetermined period of time. A step 1105 judges whether ZEROX<THZERO, where THZERO is a predetermined value. When the judgment is negative (NO), the portion of the currently inputted waveform is the consonant portion (as often found in a song with words) which is the span where the pitch detection is impossible having so many zero crosses. Then, a step 1106 outputs the judgment that the portion in question is a consonant portion and suspends the pitch detection. When the judgment at the step 1105 turns out to be affirmative (YES), it can be considered that to input waveform is now stable (e.g. vowel portion) for pitch detection. The process flow then goes forward to a step 1107 to set “1” in the pitch sensitivity flag PITCHSENSFLG, before going back to the step 1101.
If the step 1101 judges that the flag PITCHSENSFLG is not “0,” the process flow moves to a step 1109 (
(1) Obtain the sum of two consecutive span lengths CMP+ and CMP− (this sum corresponds to one period) for a number of spans. With respect to the sum of the time spans in question, obtain the differential rate from the sum of the preceding time spans in a percentage notation, for example. The differential rate can be considered the error in that time span in question.
(2) Obtain the sum of two consecutive span lengths CMP− and CMP+ (this sum corresponds to one period) for a number of spans. With respect to the sum of the time spans in question, obtain the differential rate from the sum of the preceding time spans in a percentage notation, for example. The differential rate can be considered the error in that time span in question.
(3) Obtain the sum of four consecutive span lengths CMP+ , CMP−, CMP+ and CMP− (this sum corresponds to two periods) for a number of spans. With respect to the sum of the time spans in question, obtain the differential rate from the sum of the preceding time spans in a percentage notation, for example. The differential rate can be considered the error in that time span in question.
A step 1111 checks whether the thus obtained errors are all less than a predetermined value. If the judgment is affirmative (YES), process moves forward to a step 1112, which averages the thus measured values of the respective time spans to obtain a period, and outputs the detected pitch. Thereafter, a step 1114 sets “0” in the pitch sense flag PITCHSENSFLG before returning to the main routine. If the step 1111 judges there is a greater error than the predetermined reference value, the process flows to a step 1113 to notify the detected error, and thereafter to the step 1114.
In the above example, the pitch is detected and outputted when all the calculated errors are less than the predetermined value, and if there is at least one error which is greater than the predetermined value the error is notified. But practically in the inventor's embodiment, when the error obtained by the above pattern (1) or pattern (2) is greater than the predetermined value, the period data containing such a greater error is neglected, and the pitch is calculated from the average of other periods. If an error found according to the above (3) pattern is greater than the predetermined value, at least one of the two consecutive time spans should be considered to be erroneously detected. Then, further severe evaluation may be conducted using the errors obtained by the pattern (1) or (2) detection, or using other method to obtain the period of the previously obtained time span length including the error. In the
While particular embodiments of the invention and particular modifications have been described, it will, of course, be understood by those skilled in the art that various modifications and substitutions may be made without departing from the spirit of the present invention so that the invention is not limited thereto, since further modifications may be made by those skilled in the art, particularly in light of the foregoing teachings. It is therefore contemplated by the appended claims to cover any such modifications that incorporate those features of these improvements in the true spirit and scope of the invention.
The description of the invention is merely exemplary in nature and, thus, variations that do not depart from the gist of the invention are intended to be within the scope of the invention. Such variations are not to be regarded as a departure from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2003-116656 | Apr 2003 | JP | national |
2003-366166 | Oct 2003 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
4321853 | Tumblin | Mar 1982 | A |
4457203 | Schoenberg et al. | Jul 1984 | A |
4627323 | Gold | Dec 1986 | A |
5014589 | Obata | May 1991 | A |
5287789 | Zimmerman | Feb 1994 | A |
5447438 | Watanabe et al. | Sep 1995 | A |
5477003 | Muraki et al. | Dec 1995 | A |
5719346 | Yoshida et al. | Feb 1998 | A |
5973252 | Hildebrand | Oct 1999 | A |
6124544 | Alexander et al. | Sep 2000 | A |
6657114 | Iwamoto | Dec 2003 | B1 |
Number | Date | Country |
---|---|---|
10-078791 | Mar 1998 | JP |
Number | Date | Country | |
---|---|---|---|
20040221710 A1 | Nov 2004 | US |