EP0493374A2 - Electronic musical instrument in which musical tones are generated on the basis of pitches extracted from an input waveform signal - Google Patents
Electronic musical instrument in which musical tones are generated on the basis of pitches extracted from an input waveform signal Download PDFInfo
- Publication number
- EP0493374A2 EP0493374A2 EP92105224A EP92105224A EP0493374A2 EP 0493374 A2 EP0493374 A2 EP 0493374A2 EP 92105224 A EP92105224 A EP 92105224A EP 92105224 A EP92105224 A EP 92105224A EP 0493374 A2 EP0493374 A2 EP 0493374A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- cpu
- zero
- register
- waveform
- peak
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000011295 pitch Substances 0.000 title description 193
- 238000012545 processing Methods 0.000 description 296
- 238000001514 detection method Methods 0.000 description 67
- 230000008859 change Effects 0.000 description 50
- 238000000605 extraction Methods 0.000 description 49
- 238000005259 measurement Methods 0.000 description 34
- 230000004044 response Effects 0.000 description 27
- 238000004364 calculation method Methods 0.000 description 26
- 101100129496 Arabidopsis thaliana CYP711A1 gene Proteins 0.000 description 23
- 101100083446 Danio rerio plekhh1 gene Proteins 0.000 description 23
- UDMBCSSLTHHNCD-KQYNXXCUSA-N adenosine 5'-monophosphate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(O)=O)[C@@H](O)[C@H]1O UDMBCSSLTHHNCD-KQYNXXCUSA-N 0.000 description 20
- 238000012546 transfer Methods 0.000 description 14
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 230000005236 sound signal Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 101100129499 Arabidopsis thaliana MAX2 gene Proteins 0.000 description 8
- 238000000034 method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000005311 autocorrelation function Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000013016 damping Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000000087 stabilizing effect Effects 0.000 description 2
- 108090000201 Carboxypeptidase B2 Proteins 0.000 description 1
- 101100026210 Drosophila melanogaster Clbn gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H3/00—Instruments in which the tones are generated by electromechanical means
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/031—Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
- G10H2210/066—Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for pitch analysis as part of wider processing for musical purposes, e.g. transcription, musical performance evaluation; Pitch recognition, e.g. in polyphonic sounds; Estimation or use of missing fundamental
Definitions
- the present invention relates to an electronic musical instrument of the type in which a musical tone is generated on the basis of a pitch extracted from an input waveform signal, and more particularly to an electronic string instrument such as an electronic guitar or a guitar synthesizer.
- Typical pitch extraction systems are a zero-cross point detection system and a peak detection system.
- the zero-cross point detection system detects the time intervals between zero-cross points in the input waveform, and uses them as periods of the artificial sound.
- the input waveform frequently contains harmonics which should have been removed by filters such as low-pass filters.
- the detection system does not operate well for such input waveforms. If it is applied, the detected pitches contain many errors. To prevent the errors, complicated software processings, for example, to check the duty of the input waveform, are required. It is technically difficult to realize this.
- the peak-detection system detects maximum and minimum peak points of the input waveform signal, and sets and resets the flip-flop at the peak points, to generate a period signal, e.g., a rectangular wave signal.
- the peak detection system is disclosed in KOKOKU Nos. 57-37074 (corresponding to USP No. 4,117,757) and 57-58672, and KOKAI Nos. 55-55398, 55-152597 (Utility Model), and 61-26090.
- the peak detection system determines the period of the artificial sound waveform by the time interval between the adjacent maximum peaks, for example. This feature causes reduction of the reliability of the detected pitches, and a slow response to frequency change of the input natural sound waveform.
- Use of the R-S flip-flop makes the instrument circuitry inflexible in generic use and makes it difficult to construct so-called intelligent musical instruments having data processing functions.
- KOKAI 55-87196 measures the period of the input natural sound waveform, and then converts the measured value into a frequency number, which in turn is sent to the sound source. Any novel technical proposal for the period measurement is not found in this KOKAI 55-87196 specification.
- KOKAI 55-159495 and KOKOKU 61-51793 disclose a frequency stabilizing technique in which when the adjacent extracted periods are substantially the same, the sounding of the musical instrument starts. A sounding command is not sent to the sound source until at least two periods elapse. In this respect, these patent applications involve the response performance problem. To obtain a quick response, the sounding should start as soon as possible.
- Utility Model KOKOKU No. 62-20871 discloses another frequency stabilizing technique.
- a vibration of one string affects the vibration of another string. Extremely, the latter vibrates resonating at the vibration frequency of the former.
- the proposal needs a high cost because the mechanical parts are used, and can imperfectly remove the resonance.
- an object of the present invention is to provide an electronic musical instrument of the type in which musical tones are generated on the basis of pitches extracted from the waveform of an input signal, the musical instrument being improved in the pitch extraction accuracy, and which quickly and reliably sends commands depending on the picking of the strings, the tremolo play and the like to the sound source circuit.
- an electronic musical instrument of the type in which musical tones are generated on the basis of pitches extracted from an input signal waveform comprising:
- output means for outputting the pitch data to determine high pitches through an appropriate processing on the basis of the time duration measured by the time measuring means.
- an electronic musical instrument of the type in which musical tones are generated by extracting pitches from an input signal waveform comprising:
- the first embodiment of the present invention provides the improvements of electronic musical instruments of the type in which the period of an input signal waveform is obtained from the maximum peak point MAX, i.e., the positive peak point, and the minimum peak point, i.e., the negative peak point.
- the positive and negative peak points are referred to as maximum and minimum peak points in the present specification and drawings, respectively.
- Fig. 1 An overall circuit arrangement of a musical instrument according to the present invention is illustrated in Fig. 1.
- the present invention is embodied in an electronic guitar. Vibrations of six strings of the electronic guitar are picked up by pickups (not shown). The pickups convert the mechanical vibrations of the strings into electrical signals. These signals as musical tone signals are input to six input terminals 1. These input signals are amplified by amplifiers 2, and applied to low-pass filters 3. These filters respectively remove the high frequency components of these signals to extract the fundamental waveform of these input signals. Each of the input signal of the fundamental waveform is applied to maximum peak detector (MAX) 4 and minimum peak detector (MIN) 5.
- Low-pass filter 3 is designed so that, as shown in Fig.
- the cut-off frequency is set at 4f, four times the frequency f of the vibration of the open string of each string, viz., when each string is picked without the fret operation. Such selection of the cutoff frequency is due to the fact that the guitar has generally frets of about two octaves.
- Each of the maximum peak detectors 4 detects the maximum peak points of the input signal.
- the pulse signals representing the peak detections are used as interrupt command signals INTa1 to INTa6, and transferred to CPU 6.
- Minimum peak detectors 5 detect each the minimum peak point of the input signal.
- the pulse signals representative of peak detections are transferred to CPU 6 in the form of interrupt command signals INTb1 to INTb6.
- CPU 6 When CPU 6 receives the interrupt command signals INTa1 to INTa6 representing the maximum peak points detections appearing immediately after the interrupt command signals INTb1 to INTb6 representing the minimum peak points detections, CPU 6 calculates a count difference between the present maximum peak points and those previously obtained in a similar way. When CPU 6 receives the interrupt command signals INTb1 to INTb6 appearing immediately after the interrupt command signals INTa1 to INTa6, CPU 6 similarly obtains a count difference between the minimum peak points and those previously obtained in a similar way. Every time both the command signals INT are applied to counter 7, the counts of counter 7 are stored into in-maximum memory 14 and in-minimum memory 15, respectively.
- the time count data representative of the difference of the counts as counted by counter 7 is transferred by CPU 6, directly or after it is converted into a pitch code, to frequency ROM 8.
- the frequency data representing a frequency whose period is defined by this count data is read out, and transferred to sound source circuit 9.
- Sound source circuit 9 forms a musical tone signal based on the frequency data. Receiving this signal, sound system 10 sounds the musical tone.
- the sound source circuit 9 may be set inside or outside the guitar main frame.
- the A/D converter 11 converts these signals into digital data based on the waveform levels.
- the digital data is applied to CPU 6.
- CPU 6 sends the data as obtained from the count of counter 7, to frequency ROM 8, to start the sounding.
- CPU 6 terminates the sending of the data to frequency ROM 8, to stop the sounding.
- the waveform level data is also applied to sound source circuit 9 to control the musical tone sounding level. This indicates that the volume is controllable according to the touch force to the string.
- Staggered channel timing signals t1 to t6 are applied to the transfer gates T, so that the sounding levels of the six musical tone signals for the six strings of the guitar are performed in a time-sharing manner.
- six channel musical tone generating systems are formed in sound source circuit 9, in a time-sharing manner.
- a circuit configuration of maximum peak detector 4 is illustrated in Fig. 2.
- the musical tone signal is derived from low-pass filter 3, and input to the + terminal of operational amplifier 12.
- the output terminal of operational amplifier 12 is coupled with the anode of diode D1.
- the cathode of diode D1 is grounded through parallel arranged capacitor C and resistor R1.
- the cathode of diode D1 is also coupled with the - terminal of operational amplifier 12.
- the output signal of operational amplifier 12 is output through resistor R2 and operational amplifier 13, as interrupt command signals INTa1 to INTa6, which are representative of maximum peak detections.
- FIG. 3 A specific configuration of minimum peak detector 5 is shown in Fig. 3.
- the circuit configuration of this circuit 5 is substantially the same as that of the maximum peak detector 4 as mentioned above, except for the connection of diode D2 being opposite. Accordingly, capacitor C repeats the charge/discharge in the opposite directions as shown in Fig. 4d. Finally, the interrupt command signal INTb as shown in Fig. 4e is obtained.
- CPU 6 Upon power on, CPU 6 starts a main routine as illustrated in Fig. 6.
- CPU 6 initializes the related circuits in the electronic musical instrument of the embodiment.
- it fetches the value of A/D converter 11.
- CPU 6 continues the note off processing unless the signal from the converter 11 exceeds a predetermined level. See step A3 and A4. If a player picks the guitar string, a musical tone signal at a level larger than the predetermined level as shown in Fig. 9 is input to A/D converter 11 (step A3), CPU 6 advances to step A5 where it executes the frequency control processing.
- the frequency control processing is a musical tone sounding processing in which the data from counter 7 is directly applied to frequency ROM 8 or the pitch code as indicated by the fret number extracted on the basis of that data is applied to frequency ROM 8. So long as the musical tone level is above the predetermined level, CPU 6 continues this sounding processing (steps A2, A3 and A5).
- the count data of counter 7 is set through the interrupt processing as given later.
- step B2 the CPU checks whether or not the waveform having the detected maximum peak point is the first wave. Since it is now immediately after the tone waveform rises, that waveform is the first wave. The CPU advances to step B5 to set flag "1", and further to set in in-maximum memory 14 the count of counter 7 as fetched in step B1. "1 " of flag indicates that the maximum peak point has been detected. The cleared flag "0" indicates that the minimum peak point has been detected.
- step B2 the waveform level reaches the second maximum peak point denoted as MAX2 in Fig. 9.
- maximum peak point detector 4 applies interrupt command signal INTa indicating the maximum peak detection to CPU 6.
- CPU 6 fetches the count of counter 7, and checks if the present waveform is the first wave (step B2). Since the present wave is not the first one, the CPU advances to step B3, and checks if the flag is "0". Since the flag is "1 " at the first maximum peak point MAX1, the CPU terminates the present processing, without executing the period computing processing for obtaining the frequency data.
- the frequency data is not mistakenly obtained, whose one period is the difference between the count data at the maximum peak points MAX1 and MAX2, and the time count at the maximum peak point MAX1 is left stored in in-maximum memory 14.
- minimum peak detector 5 produces interrupt command signal INTb representing the minimum peak point detection, and applies it to CPU 6.
- CPU 6 starts the interrupt processing shown in Fig. 8.
- step C1 CPU 6 fetches the count of counter 7, and check if the waveform at the minimum peak point is the first wave (step C2). In this instance, the waveform is the first waveform, and then CPU 6 proceeds to step C5.
- the flag is cleared to be "0", and sets in in-minimum memory 15 the count of counter 7, which has been fetched in step C1.
- step B2 The judging processes in step B2 is performed in the following way.
- the waveform level data derived from A/D converter 11 exceeds a predetermined level, the first wave flag "1 " is set.
- interrupt command signal INTb for minimum peak detection is then applied to the CPU, the first wave flag is cleared to "0".
- the CPU 6 checks whether or not the wave flag is set.
- maximum peak detector 4 applies interrupt signal INTa representing the maximum peak point detection to CPU 6.
- CPU 6 fetches the count of counter 7 in step B1, and confirms in step B2 that the waveform at the maximum peak point MAX1 is not the first wave, and checks if the flag is "0" in step B3. Since the flag is "0" at the minimum peak point MIN immediately before the maximum point MAX1, CPU 6 advances step B4, and in this step reads out the time count data from in-maximum memory 14, and subtracts it from the this-time count data as has been read out in step B1, and finally obtains the data of the subtraction result.
- step A5 CPU 6 applies the subtraction result data to frequency ROM 8, and controls the system of the musical instrument so that it produces a musical tone with the frequency whose period ranges from the maximum peak point MAX1 to the next maximum peak point MAX1.
- step B5 CPU 6 sets the flag to "1", and sets the this-time time count data into in-maximum memory 14 (step B5).
- step C5 and B3 CPU 6 checks the maximum peak point following the minimum peak point, and measures the time interval between the maximum peak points.
- step B4 the period calculation is progressively executed.
- the input signal waveform contains two maximum peak points MAX1 and MAX2 successively, only the time interval between two positive peak points MAX1 and MAX1 is used to determine the sounding frequency.
- the time interval between the successive maximum peak points MAX1 and MAX2 is never used for the same purpose.
- minimum peak detector 5 applies interrupt signal INTb representing the minimum peak point detection to CPU 6.
- CPU 6 fetches the count of counter 7 in step C1, and confirms in step C2 that the waveform at the minimum peak point MIN is not the first wave, and checks if the flag is "1 " in step C3. Since the flag is "1 " at the maximum peak point MAX1, CPU 6 advances step C4, and in this step reads out the time count data from in-minimum memory 15, and subtracts it from the this-time count data as has been read out in step C1, and finally obtains the data of the subtraction result.
- CPU 6 reads out from ROM 8 the frequency data to give a musical tone at the frequency whose period ranges between the previous and current minimum peak points MIN and MIN. Following step C4, CPU 6 clears the flag to "0", and sets this-time count data into in-minimum memory 15 (step C5).
- the corresponding frequency data is output from frequency ROM 8 in step A5.
- the frequency is changed two times (MAX1-MAX1 and MIN-MIN) during one period. This implies that the system of the musical instrument can quickly respond to the frequency variation of the input signal.
- the previous time count data is stored into the memory in step A5, and the this-time time count data and the previous one are averaged. If the previous time data is greater than the this-time data by, for example, 20% or more, the previous data is output.
- a second embodiment of the present invention will be described.
- a new pitch extraction system will be discussed in the second embodiment.
- the maximum and/or minimum peaks of the waveform of a musical tone i.e., an input signal
- the maximum and/or minimum peaks of the waveform of a musical tone i.e., an input signal
- zero-cross points immediately after the maximum or minimum peaks are detected.
- a time interval between the detected zero-cross points is obtained.
- the pitch of the input signal wave-form is obtained using the time interval.
- the time interval (t1) between the zero-cross points first appearing respectively after the maximum peaks are detected, or the time interval (t2) between the zero-cross points first appearing after the the minimum peaks are detected, is detected.
- the detected time interval or intervals are used for the pitch extraction.
- the pitch extraction is exact with a simple construction.
- Each maximum peak detectors 4 detects the maximum peak point of an input signal waveform.
- flip-flop (FF) 214 located at the post stage of each detector 4 outputs the Q output at high level.
- the output signal of FF 214 and the inverted output of inverter 230 coupled with zero-cross point detector 206 are applied to AND gate 224.
- the output signal from AND gate 224 is applied as interrupt signal INTan (where n is any of 1 to 6 figures) to CPU 200.
- each minimum peak detectors 5 detects the minimum peak point of an input signal waveform.
- flip-flop (FF) 215 located at the post stage of each detector 5 outputs the Q output at high level.
- the output signal of FF 215 and the inverted output of inverter 230 coupled with zero-cross point detector 206 are applied to AND gate 225.
- the output signal from AND gate 225 is applied as interrupt signal INTbn (where n is any of 1 to 6 figures) to CPU 200.
- interrupt signal INTan is applied to CPU 200.
- interrupt signal INTbn is applied to CPU 200.
- CPU 200 Immediately after receiving the interrupt signal INTan or INTbn, CPU 200 applies clear signal CLan (where n is any of 1 to 6) or CLbn to FF214 or 215. In turn, the corresponding FF is reset. Accordingly, until the next maximum or minimum peak point is detected, even if the waveform crosses the zero level any number of times, the corresponding FF remains reset, and therefore CPU 200 is never interrupted.
- CPU 200 When CPU 200 receives interrupt signal INTan for the zero-cross point encountered immediately after the maximum peak point is detected, CPU 200 computes a difference between the present count of counter 7 and that of counter 7 as the waveform previously crosses the zero level immediately after the maximum peak point. Similarly, when interrupt signal INTbn is generated, CPU 200 computes a difference between the present count of counter 7 and that of counter 7 as the waveform previously crosses the zero level immediately after the minimum peak point. Every time interrupt signals INTan and INTbn are generated, CPU 200 stores the counts of counter 7 into in-maximum memory 201 and in-minimum memory 202, respectively. The time count data as the count difference is transferred from CPU 200 to frequency ROM 8, directly or after it is converted into a key code. The frequency data with one period of the counter data is read out, and sent to sound source circuit 9, where a musical tone signal is generated. Sound system 10 receives this and starts the sounding of the musical tone.
- Fig. 12 illustrating a specific circuit arrangement of zero-cross point detector 206
- the musical tone signal derived from low-pass filter 3 is applied to the + terminal of operational amplifier 206-1.
- the - terminal of the operational amplifier is grounded.
- the output signal of operational amplifier 206-1 is output by way of resistor R5 and another operational amplifier 206-2.
- operational amplifier 206-2 For a positive input signal, operational amplifier 206-2 outputs a logical high signal.
- amplifier 206-2 outputs a logical low signal. This indicates that every time the waveform of the signal signal, i.e., musical tone, crosses the zero level, the logical level at the output of the operational amplifier 206-2 is inverted.
- a player picks one of strings of the guitar, and a musical tone with a waveform as shown in Fig. 13(a) is generated.
- the musical tone waveform varies and ascends to reach a maximum peak point MAX1.
- maximum peak detector 4 generate a signal as shown in Fig. 13(b).
- This signals renders the output of FF 214 high in logical level (Fig. 13(e)).
- the zero-cross point detection output of zero-cross point detector 206 is inverted (Fig. 13-(c)).
- AND gate 224 applies interrupt signal INTa to CPU 200. Upon receipt of this signal, CPU 200 starts the interrupt processing.
- the interrupt routine is the same as that of Fig. 7 illustrated in connection with the first embodiment, except for step B10. Hence, the interrupt routine will be described in brief.
- CPU 200 resets FF 214 in step B10, and reads in the count of counter 7, and checks if the present wave of the input signal waveform is the first wave in step B2. Since the musical tone waveform has been just risen and therefore the present waveform is the first wave, CPU 200 advances to step B5 and sets flag to "1", and sets the count of counter 7 as read out in step B1 into in-maximum memory 201.
- zero-cross point detector 6 produces the inverted output signal as shown in Fig. 13(c) every time the zero-cross points Zero 2 and Zero 3 are successively detected.
- minimum peak detector 5 When the minimum peak point MIN1 shown in Fig. 13(a) is reached, minimum peak detector 5 produces a peak detection signal, and sets FF 215 by the signal. At the next zero-cross point (Zero 4), the output signal of zero-cross point detector 206 is inverted, and AND gate 225 applies interrupt signal INTb to CPU 200. CPU 200 starts the interrupt processing shown in Fig. 15.
- This interrupt routine of Fig. 15 is also substantially the same as that of Fig. 8, except step C10.
- This routine will be described in brief.
- CPU 200 resets FF 215 in step C10, fetches the count of counter 7, and checks if the present wave of the waveform is the first wave in step C2. The wave containing the zero-cross point succeeding to the minimum peak point is the first wave. Then, CPU 200 advances to step C5 and clears the flag to "0", and stores the count of counter 7 as read out in step C10 into in-minimum memory 202.
- step B5 When the zero-cross point (Zero 5) succeeding to the maximum peak point MAX2 shown in Fig. 13(a) is reached, interrupt signal INTa for the detection of the zero-cross point following the maximum peak point is generated, and CPU 200 fetches the count of counter 7 in step B10. In step B2, if the CPU confirms that the present wave is not the first wave. Then, in step B3, the CPU checks if the flag is "0".
- step B4 Since the flag has been cleared to "0" at the zero-cross point (Zero 4) immediately after the previous minimum peak point MIN1, CPU 200 advances to step B4, and reads out the time count data, which has been saved into in-maximum memory 201 at the zero-cross point (Zero 1) immediately after the maximum peak point MAX1 one period before, and subtracts the time count data read out this time from that read out in step B1, to have the subtraction result data.
- step A5 of the main routine the resultant data is applied to frequency ROM 8, and the musical instrument is controlled so as to sound the musical tone at the frequency whose period ranges from the zero-cross point (Zero 1) to the zero-cross point (Zero 5). Succeeding to this processing, CPU 200 sets the flag "1", and sets the this-time time count data into in-maximum memory 201 (step B5).
- the time interval (t1) i.e., Zero 1 - Zero 5
- the time interval (t2) i.e., Zero 4 - Zero 8
- the frequency change is performed two times during one period in the same manner as in the first embodiment. Therefore, the musical instrument can quickly respond to the frequency change of the input signal.
- step B5 the flag has been set to "1 when these signals arrive (step B5), and therefore, the answer to step B3 is NO, and hence no period calculation is performed. In this way, the zero-cross points are successively detected after the maximum peaks are detected, these are ignored by the flag, removing the effects by the harmonics.
- step A5 the previous time count data is stored into the memory, and the this-time time count data and the previous one are averaged. If the previous time data is greater than that of this-time by, for example, 20% or more, the previous data is output.
- the period calculations based on the zero-cross point detection immediately after the maximum and minimum peak points detections may be selectively performed in a manner that the period calculation based on the zero-cross point immediately after the maximum peak point detection is executed for the waveform which rises at the start point and that based on the zero-cross point immediately after the minimum peak point detection is executed for the waveform which falls at the start point. Such arrangement provides a quick response at the start of the sounding.
- CPU 6 can execute an appropriate processing as the step A5 processing shown in Fig. 6.
- the selection of the appropriate processing can be made by modifying the program for CPU 6, and not requiring any modification of the hardware, i.e., the external circuit of CPU 6. Therefore, the musical instrument of this embodiment is excellent in flexibility of use, and can easily be designed so as to have so-called intelligent functions.
- the time intervals (t1) and (t2) respectively between the zero-cross points immediately after the maximum and minimum peak points are both obtained, but the musical instrument is operable with satisfactory performances, if one of them is used. If so done, the combination of maximum peak detector 4, FF 214, AND gate 224 and inverter 230 or the combination of maximum peak detector 5, FF 215, and AND gate 225 may be omitted, simplifying the circuit amplification of the musical instrument.
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the time interval (t1) between the zero-cross points immediately after the successive maximum peak points and the time interval (t2) immediately after the successive zero-cross points are detected.
- the time interval or intervals are appropriately processed for pitch extraction.
- the time intervals (t1) and (t2) respectively between the zero-cross points immediately after the maximum and minimum peak points are both obtained, but the musical instrument is operable with satisfactory performances, if one of them is used. If so done, the combination of maximum peak detector 4, FF 214, AND gate 224 and inverter 230 or the combination of maximum peak detector 5, FF 215, and AND gate 225 may be omitted, simplifying the circuit amplification of the musical instrument.
- a third embodiment of an electronic guitar according to the present invention will be described referring to Figs. 17 to 20.
- the second embodiment provides the improvements of the time, i.e., the response time, which is required from the inputting of an input signal waveform till the electronic guitar starts the sounding of the input musical tone, thereby to eliminate the unnatural feeling of sounded musical tones.
- the electronic guitar of the second embodiment detects the inputting of an input signal, and gives a command to first generate a musical tone at a predetermined pitch, extracts the pitch of the input signal waveform by a pitch extracting means, and gives a command to change the pitch of the musical tone to the pitch of the input signal waveform.
- the pitch of a musical tone generated from the open string i.e., when the string is picked without touching the fret.
- the pitch of a low pitched sound is preferably used for the reference pitch, or the predetermined pitch.
- a musical tone is generated at a predetermined pitch, and after the pitch extraction, the pitch of the musical tone is changed to the extracted pitch.
- the frequency of the first generated musical tone can be discriminated by human, he hears it with very unnatural feelings.
- the first generated musical tone must be selected to be within one wave length (one period). A low pitched sound should be first output.
- the arrangement of the third embodiment is substantially the same as that of the second embodiment illustrated in Figs. 10 and 11. Only the difference of the third embodiment from the second embodiment resides in the processings executed by CPU 200. Hence, the description will be given emphasizing on the operation of the guitar system.
- FIG. 17 A main routine executed by CPU 200 is shown in Fig. 17.
- the main routine is constructed on the basis of the idea substantially equal to that of the first embodiment (Fig. 6). Only the difference of it will be described with different symbols used.
- step A1 the system of the electronic guitar is initialized.
- CPU 200 fetches the contents of A/D converter 11 as the first string output signal.
- step A13 the CPU checks if the level of the input signal waveform exceeds a predetermined level. If it is below the predetermined level, the CPU executes the note-off processing in steps A14 and A15.
- the musical tones from the second to sixth strings are processed in similar ways (steps A22 to A25, A32 to A35, A42 to A45, A52 to A55, and A62 to A65).
- the illustration contains the processings of the musical tones from the first and sixth strings only.
- the first string is picked to generate a musical tone with a waveform as shown in Fig. 18(a).
- the musical tone is picked up and applied to A/D converter 11.
- CPU 200 Upon receipt of the output of the converter, CPU 200 jumps from step A13 to step A16.
- step A16 the rise flag of the first string is set to "1". In this case, the sounding is not done, and then the CPU executes steps A14 and A15, and enters the processings of the next string.
- interrupt signals INTan and INTbn (where n is any of 1 to 6) is first applied.
- the interrupt signal first applied to CPU 200 is the interrupt command INTan.
- interrupt signal INTbn is applied to CPU 200.
- the CPU issues a command to generate a musical tone based on the frequency of the open string. Subsequently, the CPU executes steps A13 (A23, A33, A43, A53, A63), A14 (A24, A34, A44, A54, A64) and A17 (A27, A37, A47, A57, A67) in this order. Then, the pitch is extracted, and step A17 controls the frequency on the basis of the extracted pitch.
- CPU 200 supplies a control signal to frequency ROM 8. So long as the input signal is above a predetermined level, a sequence of procedural steps A12 - " A13 - A14 ⁇ A17 (A22 ⁇ A23 - A24 - A27, A32 - A33 - A34 - A37, A42 - A43 - A44 - A47, A52 - A53 - A54 - A57, A62 - A63 - A64 - A67) is repeated. If it is below the predetermined level, CPU 200 executes the step A15 (A25, A35, A45, A55, A65) processing, and stops the sounding.
- step B301 This routine is similar to those of Figs. 7 and 13.
- CPU 200 resets FF 214 in step B301, reads in the count of counter 7, and in step B302 checks if the rise flag is 1. Since the waveform has just risen, and the present wave of the waveform is the first wave, the CPU advances to step B303 (see steps A16 (A26, A36, A46, A56, A66), and in this step executes the processing of starting the sounding at the note by the open string.
- step B304 the rise flag is cleared, and the CPU proceeds to step B305 where it sets the control flag to "1". Then, the CPU saves into in-maximum memory 201 the counter 7 count as read out in step 301.
- the control flag "1" indicates that the zero-cross point after the maximum peak point has been detected.
- the cleared flag indicates the detection of the minimum peak point. The function of this control flag will be discussed later.
- step C301 CPU 200 resets FF 215, and reads in the counter 7 count, and checks if the present wave first rises or falls. In other words, the CPU checks if the rise flag is "1 " in step C302.
- step B304 (Fig. 19)
- the rise flag has been cleared.
- the result of the check in step 302 is NO.
- step C306 the CPU checks if the control flag within it is "1". In step B305 in Fig. 19, the flag has been set to "1 ", and the answer "YES” is given. Then, the CPU advances to step C307.
- step C307 the CPU checks if the note now sounding is that by the open string at the start of sounding, as described above. As seen from Figs. 18(f) and 18(g), the sound at the note of the open string is output when the zero-cross point is detected, and then the answer "YES” is given, and the CPU goes to step C305. In this step C305, the control flag is set to "0", and saves the count of counter 7 into in-minimum memory 202.
- the judgement in step C307 can be attained by providing such a flag in CPU 200 that is turned on during the period of time from the generation of the musical tone of the open string to the arrival of the next interrupt signal INT, and is turned off in other periods of time.
- the arrival time of the next interrupt signal INT is more exactly the time when the next interrupt signal INTan (where n is any of "1 " to 6) arrives when the input waveform rises, and the time when the next interrupt signal INTbn (n is any of 1 to 6) arrives when the input waveform falls. In the example shown in Fig. 9, it is the timing of zero-cross point Zero 5.
- interrupt signal INTa for the detection of zero-cross point after the maximum peak point is applied to CPU 200 (Fig. 18(e), CPU 200 resets FF 214 in step B301, and reads in the count of counter 7, and checks if the present wave of the waveform is not the first wave in step B302. Further, the CPU checks if the control flag is "0" in step b306. This control flag has been set to "0" at zero-cross point Zero 4 after the previous minimum peak point MIN1 (step C305 in Fig. 19).
- step B307 and provides the answer "NO"
- step B308 reads out the time count data as set to in-maximum memory 201 at the zero-cross point Zero 1 immediate after the maximum peak point MAX1 before one period, and subtracts it from the this-time time count data as read out in step B301.
- step A17 or A27, A37, A47, A57, A67
- Fig. 17 which follows the Fig. 19 interrupt processing
- the subtraction result data is applied to frequency ROM 8.
- the electronic guitar sounds with the musical tone at the frequency whose one period (t1 in Fig. 18(e) ranges from the zero-cross point Zero 1 to the zero-cross point Zero 5.
- step B305 of the interrupt processing CPU 200 sets the control flag to "1", and saves the this-time time count data into in-maximum memory 201.
- steps C305 and B306 the zero-cross points respectively immediately after the maximum peak points are checked, and the time interval (t1) between the zero-cross points is measured, and in step B308 the period calculation is performed.
- the musical tone at the note of this string when it is in the open string, is generated at the generation of the first interrupt signal INTa for waveform rise or INTb for waveform fall.
- the next interrupt signal which is of the same type, two types of time intervals are obtained, and the frequency change is performed two times during one period.
- One of the two types of the intervals is the time interval (t1) between the zero-cross points, i.e., Zero 1 and Zero 5, immediately after the maximum peak values are detected.
- the other is the time interval (t2) between the zero-cross points, i.e., Zero 4 to Zero 8, generated immediately after the minimum peak values are detected. Therefore, the musical tone can quickly be output in response to the generation of the input signal.
- the pitch is extracted, the operation of the electronic guitar follows up a frequency change of the input signal by setting the sounding note based on the extracted pitch.
- step A17 the time count data previously stored and the this-time time count data are averaged and the averaged data is output.
- the previous data is greater than that of the this time data by, for example, 20% or more, the previous data is output.
- the period calculations based on the zero-cross point detection immediately after the maximum and minimum peak points detections may be selectively performed in a manner that the period calculation (i.e., only t1 is obtained) based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which rises at the start point, and that (i.e., only t2 is obtained) based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which falls at the start point.
- CPU 6 can execute an appropriate processing as the step A17 (A27, A37, A47, A57, A67) shown in Fig. 17.
- the selection of the appropriate processing can be made by modifying the program for CPU 6, and not requiring any modification of the hardware, i.e., the external circuit of CPU 6. Therefore, the musical instrument of this embodiment is excellent in flexibility of use, and can easily be designed so as to have intelligent functions.
- the time intervals (t1) and (t2) respectively between the zero-cross points immediately after the maximum and minimum peak points are both obtained, but musical instrument is operable with satisfactory performances, if one of them is used. If so done, the combination of maximum peak detector 4, FF 214, AND gate 224 and inverter 230 or the combination of maximum peak detector 5, FF 215, and AND gate 225 may be omitted, simplifying the Circuit arrangement of the musical instrument, i.e., electronic guitar.
- CPU 200 controls the system of the electronic guitar, so that the actual sounding of the musical tone is started in step B303 in Fig. 19 or step C303 in Fig. 20.
- the sounding may be started in a sequence of the processings in Fig. 17 as the main flow, after the interrupt processing is completed.
- the period calculation is performed in the step B308 in Fig. 19, and in the step C308 in Fig. 20.
- the control of the musical tone frequency change which is based on the period calculation, is executed in step A17 (A27, A37, A47, A57, A67). If necessary, this processing can be made during each interrupt processing.
- the frequency change is made until the first one wave of the note sound of the open string is completed, as shown in Fig. 18(g). Therefore, the actual tone frequency can be obtained before the player feels the periodicity (i.e., the frequency or pitch) of the output sound at the early stage of sounding.
- the sounding start is possible at early timing, and the player hear the sound with natural feeling of sound at the time of sounding start.
- CPU 200 detects the string vibration before the maximum peak value MAX1 in Fig. 18(a), that is, CPU 200 detects that A/D converter 11 outputs a signal at an amplitude larger than a predetermined level
- the CPU applies a sounding start command of the open string note to frequency ROM 8 and sound source circuit 9 in the processing to set the rise flag to "1 (steps A13 and A16, A23 and A26, A33 and A36, A43 and A46, A53 and A56, A63 and A66).
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the musical tone is generated at a predetermined pitch by using any of such various types of musical instruments, and after the pitch extraction, the musical tone is changed to have the pitch, if a player hear the musical tone and can distinguish the frequencies one from the other, he feels something unnatural.
- the musical sound first output must be in length within one wave length (period), and it is desired that the musical tone at low pitch is first output.
- any suitable measure may be employed for the pitch extraction.
- either of the two time intervals (t1) and (t2) is used for the pitch extraction.
- the time interval (t1) is between the zero-cross points first appearing after the maximum peak values of the input waveform.
- the time interval (t2) is between the zero-cross points first appearing after the minimum peak values of the input waveform.
- Another possible pitch extraction is to compare the time interval (T1) between two adjacent maximum peak values of the input waveform with the time interval (T2) between two adjacent minimum peak points.
- a further possible pitch extraction is to use the time interval between the two adjacent zero-cross points.
- An additional pitch extraction is to use the auto-correlation function or other suitable function of the period calculation.
- a musical tone is first generated at a predetermined pitch. After this, the pitch of the musical tone is extracted, the frequency of the musical tone is changed to the extracted pitch, and then the musical tone is sounded. Therefore, the response time of the electronic guitar, which ranges from the inputting of an input signal of musical tone till it is sounded, can be reduced. Electronic guitars, which are free from any unnatural sound feeling, can be provided.
- the electronic guitar of this embodiment is improved in that the time from the inputting of an input signal waveform till the generation of an actual acoustic sound is shortened to have a good response for eliminating unnatural feelings of sounded musical tones.
- the fourth embodiment is based on the fact that three items of distinctive period information exist between two periods of the input signal waveform. Within the time interval of less than two periods of the input signal waveform, two periods of the waveform are detected. If the detected two periods are almost equal to each other a controller issues a command to start the sounding.
- the two periods are detected by detecting the time interval t1 between the zero-cross points each first appearing after the maximum peak of the input signal waveform is detected, and by detecting the time interval t2 between the zero-cross points first appearing after the minimum peak point of the input signal waveform is detected.
- the two periods are detected by detecting the time interval T1 between the maximum peak points of the input signal waveform and by detecting the time interval T2 between the minimum peak points of the same waveform.
- the above technical features reduces the time from the arrival of the input signal to the generation of artificial acoustic wave, providing attractive performance by the guitar.
- the fourth embodiment is configured like the second embodiment.
- Like or equivalent portions are designated by like reference numerals in Figs. 10 and 11, for simplicity.
- A/D converter 411 is contained in each pitch extraction circuit P1 to P6.
- the output signal of FFs 214 and 215 are applied as read-in signals to latch 412, via OR gate 413.
- latch 412 fetches the digital output of A/D converter 411. With such an arrangement, each latch 412 latches the maximum or minimum peak point of the input signal waveform, so that CPU 400 can readily fetch these peak values.
- each OR gate 413 is applied as each signal L1 to L6 to CPU 400.
- Fig. 21 shows a main routine executed by CPU 400.
- This routine is similar to those of early mentioned embodiments.
- the main routine illustrated is for processing the musical tone generated by one string of the guitar. This processing is correspondingly applied for other five strings.
- CPU 400 executes these routines in a time divisional manner.
- CPU 400 first executes step A401 to initialize the system of the electronic guitar. Following this, CPU 400 reads on the contents of A/D converter 411 in step A402. The CPU continues the tone-off processing of musical tone until the output level of A/D converter 41 reaches a predetermined level (steps A403, 404, and 405). If the guitar string is picked, and the musical tone signal above the predetermined level as shown in Fig.
- step A403 the CPU advances to step A405.
- step A405 the CPU checks whether or not the already extracted time intervals t1 and t2 are equal. Since both the intervals are not yet detected, however, the answer in step A406 is NO, and the CPU returns to the original flow.
- the CPU advances to step A407 and starts the sounding of the musical tone at the pitch as determined by the time interval t1 (nearly equals t2). Subsequently, the CPU goes through the route of A403 - A404 - A408.
- step A408 the CPU executes the frequency control processing, i.e., the sounding processing to apply the data for designating the musical tone to frequency ROM 8. This sounding processing is continued so long as the musical tone signal level is above the predetermined level (steps A402 - A403 - A404 - A408).
- step A405 is executed and the sounding starts.
- interrupt signal INTbn When at the zero-cross point Zero 4 in Fig. 23-(a), interrupt signal INTbn is applied to CPU 400, the CPU execute the Fig. 25 processing.
- the Fig. 25 interrupt processing is substantially the same as that of the Fig. 15 processing of the second embodiment.
- CPU 400 first obtains the period data t1 through the interrupt processing at the zero-cross point Zero 5, and obtains the period data t2 by the interrupt processing at the zero-cross point Zero 8.
- step A406 the CPU executes steps A403 and A406 in Fig. 22, successively. If the time data t1 and t2 are approximately equal, and the difference between them is within a tolerable range, the answer in step A406 is YES, and in step A407 the CPU causes the sound source circuit to start the sounding of musical tone at the frequency as defined by the time data t1 or t2 (see Fig. 23 (f)).
- step A406 If the answer to the step A406 is NO, that is, when interval t1 between zero-cross points Zero 1 and Zero 5 is not equal to the interval t2 between zero-cross points Zero 4 and Zero 8, no sounding starts and the CPU waits for the next interrupt processing. Then, the CPU checks if the time interval t2 between the points Zero 4 and Zero 8 is equal to the next time interval t1 ranging from zero-cross points Zero 5 to Zero 9 (Fig. 23(a)). This is made in step A406. If the check result is YES, the CPU advances to step A407 where it directs the start of sounding.
- the CPU measures the time interval t1 between the zero-cross points immediately after the maximum peak point detection, and the time interval t2 immediately after the minimum peak point detection.
- the CPU executes the frequency change processings two times for one period, if necessary. Therefore, the guitar can respond to the frequency change of the input signal quickly.
- the waveform input is that of the type in which the waveform first rises, viz., the amplitude of the waveform increases from zero level to positive.
- the same operation can be obtained when the waveform first falling, or going from zero level to negative is input.
- Fig. 26 Such an example is shown in Fig. 26.
- zero-cross point detector 206 When the waveform as shown in Fig. 26(a) comes in, zero-cross point detector 206 outputs a signal with a waveform as shown in Fig. 26(b). As a result, interrupt signal INTb is applied to CPU 400.
- the Fig. 25 routine starts.
- Count 7 starts the counting of the time interval t2 (see zero-cross point Zero 21 in Fig. 26(a) then interrupt signal INTa is generated at the zero-cross point Zero 22 in the same figure.
- the CPU starts the processing of the Fig. 24 flow chart.
- the next zero-cross point Zero 23 the first period calculation is completed to obtain interval t2.
- time t1 is obtained (see Fig. 26(c)).
- Step A406 is used for checking the intervals t2 and t1 fall within a time length within a tolerance (Fig. 26(c)). If the answer to this step is YES, the CPU advances to step A407 and give the command to generate a musical tone with the period of that time length to frequency ROM 8 and sound source circuit 9 (Fig. 26(d)).
- step A406 If the answer to step A406 is NO the CPU checks if the previous time interval t1 (between Zero 22 and Zero 24) is equal to the next interval t2 (ranging from zero-cross points Zero 22 to Zero 24), after about half period. If these intervals are approximately equal, the CPU executes the sounding start processing.
- the sounding can be started during the period of time less than two periods (for a sine wave, it is 1.5 period).
- step A408 in Fig. 22 after sounding is started, the time count data previously stored and the this-time time count data are averaged and the averaged data is output. Alternatively, when the difference between the previous data and the this time data is great, for example, 20% or more, the previous data is output.
- the period calculations based on the zero-cross point detection immediately after the maximum and minimum peak points detections may be selectively performed in a manner that the period calculation based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which rises at the start point, and that based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which falls at the start point.
- the CPU may select an appropriate processing in the step A405 in Fig. 22. It is noted that this selection can be made by some modification of the software, and not modifying the external circuit of the CPU. Therefore, the musical instrument of this invention can be flexibly used.
- the period of the waveform is calculated in step B4 in Fig. 24 and in step C4 in Fig. 25.
- the sounding control based on the calculated period and the musical tone frequency are performed in the step A407 or A408 in the main flow of Fig. 22. These processings may be performed in the interrupt processing (Figs. 24 and 25), if necessary. If so done, the response to the input signal is more quickened.
- FIG. 27 An overall circuit configuration of the fourth embodiment is shown in Fig. 27.
- the time intervals T1 and T2 respectively between the maximum and minimum peak points are detected.
- the sounding control is made on the basis of the detected time intervals.
- each pitch extraction circuit P11 to P16 receives the musical tone signal from the corresponding input terminal 1.
- Each low-pass filters 3 cuts off the high frequency components of the output signal from the amplifier.
- the output signal of the filter is applied to maximum peak detector 4, minimum peak detector 5, and A/D converter 411.
- detectors 4 and 5 may be the same as those of the first embodiment.
- A/D converter 411 are applied to CPU 400. On the basis of these signals, the CPU appropriately processes the sounding start and frequency change.
- Fig. 28 shows a timing chart of related signals when the input signal waveform rises.
- maximum peak detector 4 has the output waveform as shown in Fig. 28(b).
- the waveform of the output signal of minimum peak detector 5 is as shown in Fig. 28(c).
- CPU 400 works out the time intervals T1 and T2 on the basis of the output signals from those detectors, as shown in Fig. 28(d). If the time intervals T1 and T2 each representing one period of the waveform are substantially equal to each other and the difference between them is within a tolerable range, a sounding start command as shown in Fig. 28(e) is applied to the sound source circuit.
- the time interval T1 is measured about half period later, and it is compared with the old time interval T1. If these are substantially equal, the sounding start processing is executed.
- any suitable measure may be employed for the pitch extraction.
- either of the two time intervals t1 and t2 is used for the pitch extraction.
- the time interval t1 is between the zero-cross points first appearing after the maximum peak values of the input waveform.
- the time interval t2 is between the zero-cross points first appearing after the minimum peak values of the input waveform.
- Another possible pitch extraction is, as described in the modification, to compare the time interval T1 between two adjacent maximum peak values of the input waveform with the time interval T2 between two adjacent minimum peak points.
- a further possible pitch extraction is to use the time interval between the two adjacent zero-cross points.
- An additional pitch extraction is to use the auto-correlation function or other suitable function of the period calculation.
- the fourth embodiment and its modification use three types of period data t1, t2, t3 or t2, t1, t2 and T1, T2, T1 or T1, T2, T1.
- the CPU directs the sound source circuit to start the sounding.
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the fifth embodiment is proposed with an intention to prevent an erroneous operation of the guitar due to the resonance between the vibrations of different strings when the sounding is started.
- this embodiment employs an electronic measure in place of the mechanical measure, which has employed by the conventional electronic guitar.
- a controller checks as to if the change of peak values of the input signal waveform is great or small when observed time sequentially. On the basis of the check result, further check is made as to if the peak value change is due to the resonance of string vibrations. If the result of this additional check shows that the peak value change is not related to the resonance of vibrations of different strings. The controller issues a command to start the sounding of the musical tone.
- FIG. 29 A main routine of CPU 400 is illustrated in Fig. 29.
- the illustration of Fig. 29 is for the processing of the musical tone generated by one string. The same processing is correspondingly applied for the other string musical tone.
- CPU 400 processes the musical tones by six strings in a time-divisional manner.
- CPU 400 initializes the system of the electronic guitar in step A501 in Fig. 29, and checks if the sounding is now performed or not in step A502. Before sounding, the CPU checks if the note-on flag is "1". If the flag is still "0", NO is given. Then, the CPU returns from step 503 to step 502. The CPU repeats the execution of steps 502 and 503.
- step 503 the CPU advances from step 503 to step 504.
- the CPU goes from step 504 to 505, and gives a sounding start signal to sound source circuit 9 and frequency ROM 8, resulting in sounding the musical tone.
- step A502 After sounding, the CPU advances from step A502 to step 506. If the output of A/D converter 411 is not below a predetermined value, the CPU goes from step A506 to A507. In this step, the CPU changes the frequency on the basis of the frequency data computed every time the interrupt processing is executed. Steps A502, A506 and A507 are successively executed. When the input level progressively goes low, the CPU goes from step A506 to A508, to execute the note-off processing.
- Fig. 30(a) shows the waveform of the output signal from low-pass fitter 3 when the normal string operation is done, viz., a string is picked. As shown the wave-form steeply rises (falls) as soon as the string is picked.
- Fig. 30(b) shows a waveform which gently rises due to the resonance of vibrations of strings.
- interrupt signal INTa is generated at the timing of (1) which in turn is transferred to CPU 400.
- CPU 400 executes the interrupt processing of Fig. 31.
- step B501 the CPU fetches the output of latch 412 in A/D converter 411.
- the output of latch 412 is the maximum peak value of an.
- step B502 the CPU clears FF 214, and executes the step B503 to fetch the count of counter.
- step B504 the CPU checks if note-on flag contained in CPU 400 is "1 ". Now this flag is "0". Then the CPU goes to step B505 to check if the peak value an exceeds the sound start level a (Fig. 30) as the reference. The answer to this step is YES and the CPU proceeds to step 506.
- step 506 the CPU checks if (an - an-1) > R is satisfied.
- an-1 is the previous peak value and "an” is this-time peak value.
- R is a factor at a predetermined positive value which provides a reference to check if the input waveform is due to the vibration resonance or the normal vibration.
- the peak value an-1 is initialized and "0". Then "an" is larger than "R". Under this condition, the CPU step B507 and to set the note-on flag to "1 and goes to step B508. In this step the CPU sets the peak value an as extracted this time, as the previously extracted peak value an-1 into the memory within the CPU, and returns to the main flow.
- the CPU detects the value of t1, i.e., the interval between the zero-cross points respecting following the maximum peak points of the waveform. This is obtained as the difference between the count of counter 7 and the value of in-maximum memory 201.
- step A505 CPU 400 issues a command to sound the musical tone at the frequency based on time interval t1.
- step C502 FF 215 is reset and in step C505, peak values an' and a are compared with each other. The an' designates a negative peak value.
- step C506 negative peak values an' are compared in step B508, the CPU saves the peak value an' as an'-1 into the memory.
- step C509 the CPU executes the period calculation t2, i.e., the calculation of the time interval between the zero-cross points respectively after the minimum peak values.
- the CPU judges that the waveform if that of the normal input signal, and starts the sounding of the musical tone at the corresponding note.
- interrupt signal INTa (or INTb) is applied to CPU 400. Then, the CPU executes the routine shown in Fig. 31 (or the interrupt routine equivalent to the Fig. 31 routine).
- step B505 gives the answer of NO at timing (1) of Fig. 9(b). Then step B508 is executed.
- step B506 follows step B505.
- the difference between peak values an-1 and a is not large, and is smaller than "R". Therefore, step B506 gives the answer of NO.
- the CPU decides that the input signal waveform is that of the string vibration resonance, and does not set the note-on flag to "1", viz., does not execute the sounding processing.
- the above-mentioned interrupt processing is correspondingly applied to the interrupt processing by the interrupt signal INTb, and the description of it is omitted.
- the CPU checks if the peak values of the input signal waveform changes greatly or small. Incidentally, when the waveform rises, the peak value increases, but when it falls, the peak value decreases (its absolute value increases). This check is executed in step B506 in Fig. 31. More specifically, the CPU checks if the difference between the peak values previously and this time extracted satisfies a predetermined condition. Therefore, the electronic circuit can completely check if the input signal waveform is due to the resonance of the different string vibrations or the real vibration by the string picking. This implies that there is no need for some mechanical measure for the resonance prevention.
- step B506' is used in place of step B506, and in this step, CPU 400 checks whether or not an/an-1 is larger than S (S is a large value above 1). If it is met, the CPU judges that the input waveform is the normal waveform. If it is not met, the CPU judges that it is the resonance waveform. In a further alternative, some arithmetic calculation may be used.
- step B505 is used for checking if "an" exceeds "a”. This step is not essential. In this case, the CPU jumps from step B504 to step B506, and in this step, the CPU checks whether or not the input waveform level exceeds a predetermined level by using the relation of (an - an-1) R.
- step A507 in Fig. 29 the time count data previously stored and the this-time time count data are averaged and the averaged data is output.
- the difference between the previous data and the this time data is great, for example, 20% or more, the previous data is output.
- the period calculations based on the zero-cross point detection immediately after the maximum and minimum peak points detections may be selectively performed in a manner that the period calculation (i.e., only t1 is obtained) based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which rises at the start point, and that (i.e., only t2 is obtained) based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which falls at the start point.
- the CPU may select an appropriate processing in the step 507 in Fig. 29. It is noted that this selection can be made by some modification of the software, and not modifying the external circuit of the CPU. In this respect, the musical instrument of this embodiment is flexibly adaptable for many different situations.
- any suitable measure may be employed for the pitch extraction.
- either of the two time intervals (t1) and (t2) is used for the pitch extraction.
- the time interval (t1) is between the zero-cross points first appearing after the maximum peak values of the input waveform.
- the time interval (t2) is between the zero-cross points first appearing after the minimum peak values of the input waveform.
- Another possible pitch extraction is to compare the time interval (T1) between two adjacent maximum peak values of the input waveform with the time interval (T2) between two adjacent minimum peak points.
- a further possible pitch extraction is to use the time interval between the two adjacent zero-cross points.
- An additional pitch extraction is to use one auto-correlation function or other suitable function of the period calculation.
- the musical tone at the note as given by one string picked in one string mode is first generated, and the frequency of the output sound is variably controlled after the pitch extraction.
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the CPU checks if the peak values of the input signal waveform changes gently or steeply. On the basis of the check result, the CPU further checks if the input waveform variation is caused by the resonance of the vibrations of different strings or by the vibration of one string as picked.
- the musical tone sounding is allowed only when the input waveform is that of the real vibration. Therefore, inexpensive and high accuracy electronic musical instruments can be provided, with natural feeling of sounding.
- FIG. 32 to 38 A sixth embodiment of an electronic guitar according to the present invention will be described referring to Figs. 32 to 38. This embodiment is proposed with the intention to improve of an accuracy of pitch extraction.
- Fig. 32 Some examples of the output waveform of the low-pass filter are illustrated in Fig. 32.
- the waveform as shown in Fig. 32(a) frequently appears when a string is picked. If the pitch of that waveform is determined by the time intervals respective between the zero-cross points after the maximum and minimum peak points, the controller of the musical instrument may frequently treat the time interval of (a) as one period. The true one period, in this case, is the interval of (b). Thus, if the response is quickened at the start of sounding, the musical instrument mistakenly operated.
- a possible measure taken for this problem is to use a large threshold level (corresponding to the ON level in the figure), which is for checking whether or not the waveform as shown in Fig. 32(a) is caused by the vibration of a string, and not to detect the waveform levels below the threshold level.
- a weak waveform as shown in Fig. 32-(b) comes in, however, this measure considers that no string vibration is produced. In this case, of course, no sound is produced from the sound source circuit and it is extremely unnatural when hearing the sound from the guitar.
- the period measurement starts when both the positive and negative peak points appear as shown in Fig. 32(c).
- the period of (c) is not measured, but the period of (d) is measured. This indicates that the sounding start timing is slightly delayed.
- This embodiment is directed to solve the problem of the sounding start timing delay.
- a time interval is detected, and used as the period of the musical tone waveform.
- the time interval is the point relating to the larger peak point is used as the sounding start point.
- the peak point which is similarly detected and exists in the same domain as that of the larger peak point, is used as the end of the time interval.
- a controller directs the start of sounding the musical tone at the frequency as defined by the detected period.
- the point relating to the maximum and minimum peak points may be the zero-cross point immediately after or before the maximum or minimum peak point, or may be the maximum or minimum peak point per se.
- FIG. 33 A circuit arrangement of the sixth embodiment according to the present invention is illustated in Fig. 33. This arrangement is substantially the same as that of the embodiment thus far described, except some portions. Only the difference will be described, with the designation of like reference symbols for like portions.
- CPU 600 receives interrupt signals INTan and INTbn (n is any of 1 to 6) from pitch extraction circuits P1 to P6, and cooperates with work memory 601 to work out the period data.
- a interrupt routine which is applied for CPU 600, and a main routine are illustrated in Figs. 34, 35A and 35B. Although these routines are for only one string operation, the same processings are correspondingly applied for other five string operations. In processing these six string operations, CPU 600 executes the processings for six strings in a time divisional manner.
- a STEP register contains four stages 0, 1, 2, and 3.
- the contents of the STEP register progressively change, as shown in Fig. 36(b) or Fig. 37(b), as the string is picked and vibrates (Fig. 36(a) or Fig. 37(a)).
- the contents 0 of this register represents the note-off state.
- a SIGN register is use for indicating that the zero-cross point for period measurement is after the maximum peak point or the minimum peak point.
- the contents 1 of the register indicates that the zero-cross point after the maximum peak point, and the contents 2 of the register indicates the zero-cross point after the minimum peak point.
- a REVERCE register stores the data to check whether the interrupt processing has been made, which is executed at the arrival of the zero-cross point after the peak point which is located in opposition to the zero-cross point as given by the SIGN register.
- a T register stores the count of counter 7 at a specific point to measure the period of the input waveform. Count 7 free runs responsive to a given clock signal.
- An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/D converter 11 and latched in latch 12.
- An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage.
- a PERIOD register stores the data of measured. On the basis of the contents of this register, CPU 600 executes the frequency control against frequency ROM 8 and sound source circuit 9.
- the first constants is ONLEVI.
- the system is in the note-off mode. In this mode, when a peak level larger than ONLEVI, the CPU considers that a string has been picked, and starts the period measurement.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU executes the relative-on processing even if the tremolo, for example, is used.
- OFFLEV is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEV, the note-off processing is executed (Fig. 38).
- CPU 600 receives the output signal of AND gate 224 or 225 as interrupt signal INTa or INTb, and executes the interrupt processing shown in Fig. 34.
- step P1 When receiving interrupt signal INTa, the CPU executes step P1 and sets the a-register to "1".
- the CPU executes step P2 and sets the same resistor to "2".
- step P3 CPU 600 presets the count of counter 7 into the t-register in the CPU.
- step P4 the CPU fetches the peak level data in A/D converter 411, and sets that data into the b-register of CPU 600.
- step P5 CPU 600 clears FF 214 or 215.
- step P6 CPU 600 transfers the contents of the a-, b-, and c-registers to work memory 601 for storage. At this point, the interrupt processing is completed.
- step Q1 of the main routine CPU 600 judges whether or not the contents of the a'-, b'-, and c'-registers have been stored into work memory 601, through the interrupt processing.
- Primed characters a', b' and c' corresponds to a, b and c above, and indicate that these items of data have previously stored, respectively. If no interrupt processing has been executed, the answer to step Q1 is NO, and CPU 600 repeats the execution of step Q1.
- step Q2 the CPU reads out the registered contents a', b' and t'. Then, the CPU goes to step Q3, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU sets the peak value b' extracted this time into AMP (a') register.
- step Q4 to Q6 the CPU checks if the contents of STEP register is 3, 2 or 1. When the system of the electronic guitar under discussion is in the initial condition, the STEP register is 0, and therefore the answer to steps Q4, Q5 and Q6 is NO. In step Q7, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- step Q7 gives the answer of YES and the CPU advances to step Q8.
- step Q8 the CPU sets "1 " to the STEP register.
- step Q9 the CPU sets "0" to the REVERSE register.
- step Q10 the CPU inputs the value of a' into the SIGN register. The value of a' is “1" at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- step Q11 the value of t' is set in the T register.
- the value of a' is set in the SIGN register, that of b' in the AMP register, and that of t' in the T register.
- the value of the SIGN register is "1 " (Fig. 36(a) and Fig. 37(a)). Then, the CPU returns to step Q1 again.
- step Q6 The main routine immediately after the zero-cross point Zero 2 will be described. In this processing, steps Q1, Q2, Q3, Q4, Q5 and Q6 will be executed . If the answer YES is given in step Q6, the CPU advances to step Q12.
- the SIGN register is "1". Since the present wave of the waveform has passed the negative peak, the register is "2" and NO is given. When the zero-cross point immediately after the peak point with the same polarity is reached, this step gives YES. The CPU does not execute any further processing and returns to step Q1.
- step Q12 NO is given, and after that, the CPU advances to Q13 and sets 2 in the STEP register (see Fig.36(b) and Fig. 37(b)).
- step Q14 the CPU executes step Q14 and compares the previous peak point (AMP (SIGN)) with the present peak point (b'). If the previous value XO is smaller than the present value (X1>XO) as shown in Fig. 36(a), YES will be given.
- the CPU jumps from step Q14 to steps Q10 and Q11, to set 2 in the SIGN register and at the same time to transfer the contents of the t'-register to the T register.
- step Q14 NO is given in step Q14 and 1 is set in the REVERSE register in step Q15.
- the previous point 1 is maintained in the SIGN register.
- the previous zero-cross point Zero 1 is the period measuring start point, in this case (see Fig. 37(c)).
- step Q16 When the CPU executes the main flow after the next zero-cross point (Zero 3) is passed, the CPU advances to step Q16 after YES is given in step Q5.
- the present value of a' is 1, that of the SIGN register is 2 as shown in Fig. 36, and that of the SIGN register is 1 as shown in Fig. 37. Therefore, in the case of Fig. 36, NO is given in step Q16 and the CPU advances to Q15 and returns to Q1.
- CPU 600 recognizes that the first peak point (amplitude X2) is passed after the period measurement starts.
- the CPU has the answer of YES in step Q16 and advances to step Q17 to check if the value of the REVERSE register is 1. If the value of the REVERSE register is not 1, the CPU judges NO and returns to step Q1. As mentioned above, after execution of step Q15, the value of this register is 1. Then, the CPU advances to step Q17 and Q18, and inputs 3 in the STEP register (see Fig. 37). In step 19, the CPU subtracts the value of the T register, i.e. the time of the zero-cross point Zero 1, from the value of the counter 7 given by the this-time interrupt processing, and the CPU loads it in the PERIOD register.
- the time length PERIOD shown in Fig. 37(c) is that of one period.
- the CPU transfers the contents of t' to the T register, and starts the new period measurement.
- step Q12 CPU 600 issues a sounding start (note-on) command to frequency ROM 8 and sound source circuit 9 in accordance with the contents of the PERIOD register. At this time, the sounding starts.
- the period measurement is executed from the next zero-cross point after the peak point whose value is big.
- the period measurement is completed at the next zero-cross point located in the same side as the previous peak point.
- the period of low-pass filter 3 output waveform is extracted.
- the CPU advances from step Q4 to step Q22 in the main routine processing, and checks if the value of the present peak point b' is above OFFLEV as shown in Fig. 38.
- the CPU advances to step Q23, and judge whether or not the relative-on processing should be executed.
- the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e. checks if the value of the extracted peak point rapidly increases during sounding.
- step Q23 When a string is picked, the vibration of the string gradually damps toward zero. NO is given in step Q23. In case that before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step Q23 is often YES.
- the CPU jumps to step Q8 after judging YES in Q23, and then executes step Q9 to step Q11.
- the CPU sets "1 " in the STEP register, and subsequently executes the same processing as that of the sounding start.
- the CPU executes step Q16 to step Q21 again, and executes the relative-on processing.
- step Q23 the CPU executes step Q23 followed by step Q24, and compares the contents of a'-register with those of the SIGN register. If these do not coincide, the CPU advances to step Q15 for the interrupt processing at the next zero-cross point. If these coincide, the CPU proceeds to step Q2 because the present wave of the waveform has the peaks with the opposite polarities (positive and negative peaks) in the past. Then the CPU judges whether or not the value of the REVERSE register is "1". If the result is NO, it returns directly to step Q1. If YES is given, the CPU advances from step Q25 to step Q26. Then the contents of the T register is subtracted from those of the t' register for obtaining a new period, and the result is set in the PERIOD register.
- step Q27 the contents of t' register are transferred to the T register. Subsequently, on the basis of the value of the PERIOD register obtained in step Q28, CPU 100 executes the frequency control for frequency ROM8 and sound source circuit 9.
- this embodiment discretely picks up a variation of the frequency of string vibration, and controls the frequency according to the picked up discrete data in a real time manner.
- the CPU advances from step Q28 to step Q29, and clears the REVERSE register, and finally executes the period measuring.
- step Q22 when the string vibration damps and the peak value becomes below the level of OFFLEV, the CPU jumps from step Q22 to step Q30 to clear the STEP register.
- step Q31 the note-off processing is executed, and the CPU gives the note-off command to sound source circuit 9, to stop the sounding of musical tone.
- the waveform as shown in Fig. 32(a) is input, the time length of (b) is measured, and as the measurement terminates, the sounding start processing is executed. Since the on-level may be reduced, the vibration as shown in Fig. 32(b) can be detected. In the case of the waveform of Fig. 32(c), the sounding starts as soon as the period of (c) or the first wave is measured. Therefore, the sounding can be quickly started, providing a quick response.
- the CPU executes the interrupt processing at the zero-cross point immediately after each peak point followed by the various types of processings such as the sounding start, period calculation, relative-on and note-off. If necessary, these processings can be executed when each peak point is detected or when the zero-cross point immediately before the peak point is detected. Any other suitable measure may be taken for obtaining the reference point.
- the maximum and minimum peak values immediately after the input waveform rises are compared with each other.
- a time interval is detected as the period of the waveform.
- the time interval starts at a point relating to the larger peak point, and terminates at a peak point which is located in the same domain as that of the peak point as detected in a similar way, and satisfies a predetermined condition.
- the period control is performed by using the detective period. With such a scheme, the exact period measurement can be quickly performed at the start of sounding, with lessened delay when the waveform rises.
- FIG. 39 A 7th embodiment of an electronic guitar according to this invention will be described referring to Figs. 39 through 41.
- This embodiment proposed is able to extract the pitch of an input signal waveform even it contains much harmonic components as shown in Fig. 39.
- the waveform contain much intensive harmonics has many peak points and cross points. If the electronic guitar receives such a waveform, it mistakenly measure one wave length time interval P as intervals PS and PR, which are each different from the true time interval P. The guitar sounds the musical tone at incorrect pitches. This is problematic in the technique disclosed in KOKOKU No. 61-51793. In this technique, when the adjacent waveform periods are substantially equal, the frequency control is executed on the basis of the time length of the period compared.
- This embodiment is directed to solve such a problem, and provides an electronic guitar which can exactly extract the pitch of the much harmonic contained waveform and sounds the musical tone at the correct pitch.
- a control directs the sounding of a musical tone at the frequency as defined by the time length.
- An arrangement of the seventh embodiment is substantially the same as that of the sixth embodiment (Fig. 33).
- the interrupt routines INTa and INTb executed by CPU 600 are the same as those in the sixth embodiment.
- PS, PR and P registers store respectively the measuring time of one period PS, the measuring time of one period PR partially overlapping the period PS, and the measuring time of one period P partially overlapping the period PR.
- CPU 600 executes the frequency control for frequency ROM 8 and sound source circuit 9 on the basis of the last pitch data P. This will be described in detail later.
- the pitch data of the P register is transferred intactly to the PS register.
- PS, PR and P will be referred to the first, second and third periods, respectively.
- the TS register stores the count of counter 7 at the start of the period P.
- the TR register stores the count of counter 7 at the start of the PR period. These registers are used to obtain the respective pitch data.
- the counter 7 free runs to count at a given clock signal.
- a TRIGGER register is set to "1" during one period just before the sounding starts, as shown in Fig. 41. In other periods than this, this register has "0" and stores the data indicating "preparatory processing for sounding start being progressed".
- a SIGN register is used to indicate that the zero-cross point for period measurement is located after the maximum peak point or the minimum peak point.
- the 1 of the register indicates that the zero-cross point after the maximum peak point, and the 2 of the register indicates the zero-cross point after the minimum peak point.
- An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/D converter 11 and latched in latch 412.
- An AMP (1) register stores the maximum peak value, and an AMP (2) register for minimum peak value storage.
- CPU 600 further contains three threshold levels ONLEVI, ONLEVII and ONLEV.
- step S1 the CPU executes the interrupt processing as mentioned above, and judges if the contents of a', b', and t' (corresponding to to a, b, and t' and indicate the previous recording) have been saved into work memory 101. If no interrupt processing has been executed, the answer of NO is given, and this step S1 is executed repeatedly.
- step S1 gives YES
- step S2 is executed to read out the contents a', b' and t'.
- step S3 CPU 600 reads out the value of peak point of the same type (maximum or minimum from AMP(a') register, and loads it into the s' register in the CPU. Further, the CPU sets the peak value b' now extracted in the AMP(a') register.
- step S4 the CPU if the contents of TRIGGER register is "1 " or not. If the system of the electronic guitar is in the initial condition "1 cannot be set in the register, the CPU goes to step S5 where it checks if the note-on condition has been set up or not. In this case, however, the note-on condition has not been set up, and the CPU returns to step S1. If the input signal whose level is larger than ONLEVI comes in, step S6 gives the answer of YES and then step S7 will be executed.
- step S7 the a' value is input to the SIGN register.
- the value of a' is 1 at the zero-cross point immediately after the maximum peak point, and is 2 at the zero-cross point immediately after the minimum peak point.
- steps S8 and S9 the CPU the value of t' as the count value at the start of the first period PS, into the TS register, and loads "1" into the TRIGGER register.
- the value of a' is loaded into the SIGN register (in the case of Fig. 41 (a), this register contains "1").
- the value of b' is set in the AMP register, and the value of t' to the TS register. Then the CPU returns to step S1.
- step S1 to S3 the data set processing is executed and in step S4 the answer is YES and step S10 is then executed.
- the SIGN register contains "1 ".
- the present waveform having the negative peak in the past and therefore the a'-register contains "2". And this condition, NO is given and step S11 is executed. In this step, the value of t' as the count value at the start of the second period PR is set in the TR register. Then, the CPU returns to step S1.
- step S4 After the next zero-cross point Zero 3, if the main routine is executed again, the answer of YES is given in step S4 and then the CPU jumps to step S10.
- the present value of a' is "1" and SIGN is “1 ". Therefore step S10 gives the answer YES and step S12 is executed to clear the TRIGGER register.
- step S13 the value of the TS register, i.e., the time at zero-cross point Zero 1 is subtracted from the count of counter 7 which is accepted in this-time interruption and is contained in the t'-register. The result of subtraction is loaded into the PS register.
- step S14 as shown in Fig. 41 (d), CPU 600 gives a note-on command to the frequency ROM 8 and sound source circuit 9, according to the contents of the PS register. And the sounding starts at this time point.
- the musical tone as given by the open string in place of the contents of the PS register may be generated.
- the note-on mode is set up.
- the CPU cause from step S5 to step S15 and checks if the value of b' as the peak value fetched just now is above the OFFLEV level. If it is above the OFFLEV, the CPU checks if the relative-on processing is executed. More specifically, the CPU checks if the this-time peak value b' is by ONLEVII larger than the previous peak value "c", that is to say, checks if the extracted peak value abruptly increases during the sounding.
- step S16 When the string is picked, the string gradually damps toward zero.
- the answer of this step S16 is NO.
- the answer of step S16 may be YES, although this is a rare case.
- step S16 gives YES and flow jumps to step S17 and steps S8 and S9 are executed consecutively.
- "1 " is set in the TRIGGER register and exactly the same operation as that at the sounding start will be executed.
- steps S12 to S14 are successively executed to effect the relative-on processing.
- step S17 following step S16 is executed to compare the value of a' and the value of the SIGN register. If these are not coincident as in the case of zero-cross points Zero 4, Zero 6, ..., steps S18 and S19 are executed. In these steps the contents of the TR register is subtracted from the t' register to obtain the second period PR.
- the PR is set in the PR register, and the value of t' is set in the TS register in order to obtain the pitch data of the next period PR.
- step S20 is executed.
- step S the contents difference between the t'-register and TS register is obtained to have the pitch data of the next third period.
- the difference is set in the P register.
- the value t' is set in the TS register in order to obtain the pitch data of the next third period P, in step S21.
- step S22 CPU 600 checks if the data difference between the first and third periods PS and P is within a predetermined error tolerance which is times the third period P (0 ⁇ a ⁇ 0.4). Further, in step S23 the CPU checks if the data difference between the second and third periods PR and P falls within a predetermined error tolerance which is times the third period P (0 ⁇ a ⁇ 0.4). If these three items of pitch data PS, PR and P are coincident within the tolerance, in step S24 the CPU executes the frequency control (pitch change) for frequency ROM 8 and sound source circuit 9 as shown in Fig. 5(d). If these are not coincident with each other, the CPU does not execute the pitch change processing in step S24, and maintains the pitch thus far used.
- the frequency control pitch change
- the electronic guitar discretely picks up the frequency variation in the string vibration time to time, and executes the frequency control on the basis of the picked up data in a real time manner.
- the CPU goes from step S24 to step S25, and transfers the pitch data of the third period in the P register into the PS register. That pitch data is used as the pitch data of the next new first period.
- the CPU goes from step S15 to step S26, and executes the note-off processing (sounding-off processing), as shown in the right portion of Fig. 41.
- the CPU gives a note-off command to sound source circuit 9 to stop the sounding.
- the sounding preparation and sounding start processings in the steps S7 to S9, step S11, and steps 12 to S14 are performed at the respective zero-cross points of the first period.
- the pitch change processing is executed in steps S18 and S19.
- the same processing is executed in steps S20 to S25.
- the note-off processing is performed in step S26.
- the comparison of PS and PR is allowed in addition to the comparison of PS and P, PR and P.
- the essential is to check if these three factors are equal or not.
- the pitch data used in the pitch changing processing in step S24 following the detection of three factors equality may be the arithmetic mean or the geometrical means PS, PR and P, in addition to the P. Additionally, two or three of these factors are appropriately weighted, and then averaged for that data.
- the sounding of the musical tone is started according to the contents of the PS register, improving the response of the musical instrument system.
- the musical tone at the extracted frequency may be sounded.
- the pitch between the zero-cross points is measured, it is allowed to measure the period between any other suitable points, such as the maximum peak point and zero-cross point, the minimum peak point and zero-cross point, and the maximum and minimum peak points.
- the signal output from maximum or minimum peak detector 4 or 5 is used as the interrupt signal INT, and the same effects can be obtained.
- a similar processing may be executed upon detection of the zero-cross point immediately before the peak point. Any other measure may be used to set up the reference point for pitch extraction.
- the respective processings are executed in the main flow, but these may be executed in the interrupt processings.
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instrument electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the seventh embodiment measurement is made of the time length of a first wave of an input waveform which partially overlaps one wave of the same waveform, and the time length of a second wave also overlapping the first wave. If the measured time lengths are substantially equal, the CPU directs the sounding of a musical tone at the frequency as defined by the time length. Therefore, the system of the electronic guitar, which is best on the three periods comparison, can exactly extract the pitch of the waveform even if it contains much harmonics.
- the eighth embodiment provides the improvements in that when the guitar is played in a tremolo mode, the guitar follows up in operation a rapid variation of the input musical tone waveform due to the tremolo playing and sounds the musical tone with natural feelings.
- the system detects this and gives a relative-on command.
- volume and timbre of the musical tone are appropriately adjusted so that the guitar electronic system follows up the actual tremolo playing.
- An arrangement of the eighth embodiment may be that of each embodiment as mentioned above, for example, that of Fig. 21.
- a main routine of CPU 400 is shown in Fig. 42. This main flow is for only one string processing. The processings of other strings are each substantially equal to the Fig. 42 processing. Therefore, in an actual system, the CPU executes these routines in a time divisional manner.
- the CPU first executes the initial setting in step A801, and checks if the sounding progresses, in step A802. If the sounding is progresses, the CPU goes step A803 and executes the frequency change processing on the basis of the time interval data tn and Tn, and returns to step A802.
- step A802 gives the answer is NO and goes to step A804.
- step A804. In the step each register is initialized or a necessary command is sent to sound source circuit 9. Following this step, the CPU returns to step A802.
- interrupt command signal INTa is first applied to AND gate 224.
- the interrupt shown in Fig. 44 is executed.
- step B801 the CPU fetches the maximum peak value from latch 412, and in step 802 sets the peak value in FF 214.
- step B802 sets the peak value in FF 214.
- step 804 the CPU checks if the peak value ak (at this time it is a1), which has fetched in step B801, is larger than the reference value M.
- Control goes to step C806, and further to step C807 to write the value of b1 into a predetermined memory area of the peak memory.
- Interrupt signal INTa is generated.
- the CPU executes the interrupt processing of Fig. 44, again.
- the judgement of this step B809 is not k m, but k > m, i.e., NO, and control advances to step B810.
- this step seeks the fret used for the picked string.
- CPU 400 directs frequency ROM 8 and sound source circuit 9 to start the sounding of the musical tone with that frequency, and executes the note-on processing. This is illustrated in Fig. 43(h). The musical tone is sounded from this point.
- the CPU executes step B807 and returns to the main routine.
- step C801 2 is obtained and control flows to step C809.
- Step B803 The next interrupt processing INTa is executed.
- Step B808 checks if interrupt processing by INTa is executed three times or more.
- the answer to step B812 is NO, and control flows to step B813.
- CPU 400 checks if ak - ak-1 > R holds. If it holds, viz., the relative-on must be done, this processing is executed in steps B814 and B815. This will subsequently be described in detail.
- Steps C801 to C806, C808, C812 to C813, and C807 are consecutively executed in this order, to complete this interrupt processing.
- the frequency change processing for example, is appropriately executed in step A803 in a progressive manner.
- step B812 when the tremolo playing is made, and before the sounding terminates, a string is picked again, the interrupt processing is executed when the zero-cross point following the maximum peak of an-1 is reached, in step B812, the answer of YES is given since an + 1 - an > R, and control flows step B814.
- the CPU gives the note-off command to sound source circuit 9 and abruptly drops the sounding level (Fig. 43(h))
- step B815 "k” is set to “1 and “m” is set to "0" for starting the relative-on processing.
- step B807 the CPU returns to the main flow.
- the maximum peak value an-1 of the waveform exceeds the difference between them.
- the sounding is ceased, and then started again.
- the sounding musical tone is assigned to another sounding channel of sound source 9. Change is made in accordance with volume and timbre, for example.
- step B804 (or step C804).
- step B816 (or CB16).
- CPU 400 executes the note-off processing in the next step B818, and gives a command of such to sound source circuit 9.
- step B818 (or C818), k and m are set to "0" for initializing.
- step B816 is executed, and if NO is given, control returns to the main flow.
- the interrupt processing of Fig. 44 is first executed because the waveform rises (varies positively) at the start of waveform inputting. Conversely, when it falls (varies negative), the interrupt processing of Fig. 45 is first executed.
- the operation of the former case may be applied for the operation of the latter case which therefore will not be described.
- the CPU judges that the waveform abruptly rises, and execute the relative-on processing in which the sounding is ceased and is started again. Therefore, the electronic guitar system operates following up the rapid playing of the tremolo.
- the difference between the previous and this-time peak values is used for the check of the rapid variation of waveform by the CPU.
- a ratio of those peaks may be used for the same purpose; ak/ak-1>S or bk/bk-1>S (S is an integer of more than 1).
- the comparison of the peak value two peaks before and the this-time peak value may be used, although the comparison of the previous peak value and the this-time peak value is used.
- the relative-on processing is executed when one of the peak values ak and bk satisfies the relation ak - ak-1 > R or bk - bk-1 > R. It is evident that when these relations are both satisfied, the relative-on processing is executed.
- any other suitable detection may be used for detecting the rapid increase of the waveform during the sounding.
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments' electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the CPU issues a note-on command again.
- the electronic system of the guitar can follow up the rapid variation of the waveform, and hence the tremolo playing of the guitar.
- a ninth embodiment of an electronic guitar according to the present invention will be described referring to Figs. 46A, 46B,... 49.
- the ninth embodiment is proposed to prevent the electronic guitar from erroneously operating when tone is turned off by detaching the player's finger from the fret board.
- the ninth embodiment achieves the following objects: 1) to ensure the sounding stop, which is made by removing the finger of a player from the fret can be reliably made; 3) to eliminates the sounding of the musical tone at the pitch, which is different from that of the musical tone sounded before the finger is removed from the fret; 3) to realize artificial musical tones approximate to those generated by natural musical instruments including the string instruments.
- the ninth embodiment is based on the scheme that the note-off is executed if the maximum and minimum peak values of the input waveform are below those previous peaks, respectively.
- the ninth embodiment is operable with an arrangement similar to that of any embodiment as described above.
- the arrangement of Fig. 33 is available for the ninth embodiment.
- the interrupt routines may be that of Fig. 34.
- a FLAG (i) register is used in the following way. When the maximum or minimum peak value is by an OFFLEVII smaller than the corresponding peak value, "1 " is set in this register. The FLAG (1) is for the maximum peak, and the FLAG (2) for the minimum peak. When “1 " is set to the FLAG (i) register, the note-off processing is executed even if the peak is not below the OFFLEVII level.
- a STEP register contains four values 0, 1, 2, and 3.
- the contents of the STEP register progressively change, as shown in Fig. 47(b) or Fig. 48(b), as the string is picked and vibrates (Fig. 47(a) or Fig. 48(a)).
- the contents 0 of this register represents the note-off mode.
- "3" of the register indicates a state that the peak becomes below the previous peak by OOFLEVEII, and the note-off command has been issued.
- "1 and "2" of the register indicate that the normal sounding progresses.
- a PERIOD register stores the data of measured period. On the basis of the contents of this register, CPU 600 executes the frequency control against frequency ROM 8 and sound source circuit 9.
- a SIGN register is used for indicating that the zero-cross point for period measurement is located after the maximum peak point or the minimum peak point.
- the contents 1 of the register indicates that the zero-cross point after the maximum peak point, and the contents 2 of the register indicates the zero-cross point after the minimum peak point.
- An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/D converter 11 and latched in latch 412.
- An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage.
- the first constants is ONLEVI.
- the electronic system of the guitar is in the note-off mode. In this mode, when a peak level larger than ONLEVI, the CPU judges that a string has been picked, and starts the period measurement.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU executes the relative-on processing even if the tremolo playing, for example, is used.
- OFFLEVI is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEVI, the note-off processing is executed (Fig. 48(a)).
- OFFLEVII is used in such a manner that in the note-on mode, if the difference between the maximum or minimum peak value and those previous peak values is detected and is below this level of OFFLEVI, the note-off processing is executed (Fig. 48(b)).
- step S904 the CPU judges whether or not the contents of a'-, b'- and t'- register are saved into work memory 601 through the interrupt processing in step S904.
- Primed characters a', b' and t' correspond to a, b and c above, and indicate that these items of data have previously stored, respectively. If no interrupt processing has been executed, the answer to step S904 is NO, and the CPU repeats the execution of step S904.
- step S904 the CPU advances to step S905, and reads out contents a', b' and t'. Then, the CPU goes to step S906, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU set the peak value b' extracted this time into AMP (a').
- steps S907 to S909 the CPU checks if the contents of the STEP register is 1, 2 or 3. When the system of the electronic guitar is in the initial condition, the STEP register is 0, and therefore the answer to steps S907, S908, S909 is NO. In step S910, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- step S910 If NO is given in step S910, the note-on or sounding start processing is not executed and the CPU returns to step S904. As shown in Fig. 47(a), if the peak value, which is output through low-pass filter 3, is above ONLEVI, YES is given in step S910 and the CPU advances to step S911.
- step S911 the CPU sets "1 " in the STEP register.
- step S912 the CPU inputs the value of a'-register into the SIGN register.
- the value of a'-register is "1" at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- step S913 the CPU sets the value of t'- register, i.e., the zero-cross point Zero 1, in the T register.
- the SIGN register contains "1 ". Since the present wave of the waveform has passed the negative peak, a'- register contains 2, and NO is given in step S914. Then, the CPU does not execute any further processing and returns to step S904.
- step S914 the CPU executes steps S904 to S907 and S914 again.
- YES is given, and the CPU advances to step S915, and inputs 2 in the STEP register as shown in Fig. 47.
- step S916 the CPU subtracts the time of the zero-cross point Zero 1 in the T register from the time given by the this-time interrupt processing in the t'-register. Then the CPU loads the difference, i.e., the time length shown in Fig. 47(c) or the one period in the PERIOD register.
- step S917 the CPU advances to step S917, and transfers the contents of t'-register to the T register, and starts new period measurement.
- step S918 CPU issues the note-on command so that musical tone, which has the frequency in accordance with the contents of the PERIOD register mentioned above, can be generated from sound source circuit 9. Then, the sounding starts.
- step S908 the contents of the STEP register is 2, and YES is given. Then the CPU advances to step S919, and checks if the peak value b' is above or below the level of OFFLEVI (see Fig. 48-(a)). Now the peak level is above OFFLEVI, and YES is given in step S919, and the CPU advances to step S920.
- step S920 the CPU judges whether or not the relative-on processing should be executed. In other words, the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e., checks if the extracted peak point rapidly increases during sounding.
- step S920 When a string is picked, the vibration of the string gradually damps toward zero, NO is given in step S920. In case that before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step S920 is often YES.
- the CPU jumps from step S920 to step S911, and then, executes steps S912 and S913.
- the CPU sets "1 " in the STEP register, and subsequently, executes the same processing as that of the sounding start.
- the CPU executes steps S907,S914, S915, S916, S917 and S918, and executes the relative-on processing. In this case, the relative-on processing with the attack starts.
- step S920 the CPU checks if the peak value b' is by OFFLEVII smaller than the previous peak value "c", that is, if the tone-off operation by removing the finger of a player from the fret board has been done.
- step 921 No is given and in step S922 the FLAG (3-a') register is cleared.
- CPU 600 checks if the contents of SIGN register is coincident with the contents of the a'-register. The present zero-cross point is Zero 4. Then, the SIGN register contains "1 and the a'- register "2". In step S923, No is given and the CPU returns to step 904.
- sequences of steps S904 to S908, and S919 to S923 are executed and YES is given in step S23.
- a sequence of steps 924 to 926 is executed to set a new period ranging from Zero 3 to Zero 5 into the PERIOD register and transfers the contents of the t'-register into the T register.
- new period measurement starts.
- the CPU issues a frequency change command to frequency ROM 8 and sound source circuit 9, according to the pitch this time detected and stored in the PERIOD register.
- step S928 the CPU checks if the FLAG (d) for this "d" is "1 ".
- the FLAG (i) registers are both "0" and hence the CPU advances to step S929 and sets 1 in the FLAG (a') register for the peak point immediately before the peak point detected this time, and returns to step S904.
- CPU 600 executes the sequence of steps S904 to S908, and S919 to S921, and in steps S927 and 928 the CPU checks if "1 " is set in the FLAG (i) for the opposite peak point. At present the register contains "1 and therefore the CPU clears the FLAG (i) register on the opposite side, and sets "3" in the STEP register. In step 932, the CPU executes the note-off processing, and gives to sound source circuit a command to stop the sounding of the musical tone from sound source circuit 9.
- step S921 and steps S927 to 929 are executed to set "1 " in one of the FLAG (i) registers.
- step 921 to check if the peak level is below the OFFLEVII NO is given.
- Step S922 clears the FLAG (i) register with "1". Then steps 923 to 926 for note-off continue processing are progressively executed.
- steps S921 and S927 to S929 judges that one of the two types of levels is below OFFLEVII. Then, the FLAG set processing is first executed, In steps S921, S927 to S928, and S930 to S932, the other peak level below the OFFLEVII level is detected and the note-off processing starts.
- steps S921 and S927 to S929 the first type of peak level below the OFFLEVII level is detective and the flag is set.
- the CPU detects that the second type of peak level is not yet below OFFLEVII and sets the flag.
- steps S921 and S922 the flag is cleared since the second peak level is not yet below OFFLEVII.
- the CPU executes the note-on processing in steps S923 to S926.
- step register After the step register has "3" and the sounding stopped in this way, CPU 600 goes through steps S901 to S908, and reaches step 909. In the last step, YES is given.
- the CPU jumps to step S933 to check if the peak level b' is below OFFLEVI. Immediately after "3" is said in the STEP register, the peak level is not yet OFFLEVI.
- the CPU goes step S936. This step, like step S920, checks if the relative-on processing is to be executed. If this-time peak level b' is above the previous peak level "c" by ONLEVII, the note-on processing is executed in steps S911 to S913. If the former is below the later, the CPU returns to step S904.
- step S933 the answer of NO, and in step S934 the STEP register is cleared.
- step 919 gives the answer of NO. Then, the CPU goes to step S935 to clear the STEP register and executes the note-off processing in step 936 to stop the sounding of musical tone from sound source circuit 9.
- the OFFLEVII which is used for stop the sounding when the finger is removed from the fret board, may be a fixed level or the product of multiplying the previous peak value by a fixed rate.
- the time interval between the adjacent zero-cross points for pitch measurement This time interval may be substituted by the time interval between the maximum peak point and the zero-cross point, the minimum peak point and zero-cross point, or the maximum peak point and the minimum peak point.
- the interrupt signal INT may be the signal from maximum or minimum peak detector 4 or 5.
- the same processing may be executed upon detection of the zero-cross point immediately before the peak point. Any other suitable measure may be used for setting up the reference point.
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the note-off is executed. This ensures the sounding stop, which is made by removing the finger of a player from the fret.
- the electronic guitar never sounds the musical tone at the pitch, which is different from that of the musical tone sounded before the finger is removed from the fret. This realizes artificial musical tones approximate to those generated by natural musical instruments including the string instruments.
- the ninth embodiment eliminates useless pitch (fundamental frequency) extractions to be performed after the finger detaches from the guitar string.
- Fig. 50 shows an input waveform
- control gives a note-off command.
- FIG. 51 An overall arrangement of the tenth embodiment is shown in Fig. 51. This arrangement is substantially equal to that of Fig. 33. Like portions are designated by like symbols in Fig. 33, for simplicity.
- Some of main features of this embodiment are 1) to apply a latch lock to latch 412 at the maximum (positive) and minimum (negative) peak detections, via OR gates 1016 and 1017, and 2) to apply a clock signal CL through AND gate 1026 and OR gate 1017 when CPU 1000 applies a latch command signal L in logical high.
- latch command signal (g) continues logical high during the period ranging from an instant that CPU 100 fetches the peak values from latch 412 at the maximum and minimum peak points in response to interrupt signals INTa and INTb until the next peak detect signals (b) and (c) are applied.
- interrupt signals INTan and INTbn (n" is any of 1 to 6)
- the peak values are latched in the first half of the wave between the top and bottom, i.e. between the zero-cross point and the maximum or minimum peak point. In the range from the maximum or minimum peak point and the next zero-cross point, the peak value is held.
- the output signal from each latch 412 is applied to CPU 1000. This data is used for controlling the controls such as note-on, note-off, pitch extraction start, pitch extraction stop, and control of sounding level (volume control).
- the peak values as latched in each latch 412 before the output of latch command signals L1 to L6 are stopped, are successively stored into work memory 601.
- CPU 1000 executes the note-on and the pitch (fundamental frequency) extraction.
- the data is below the note-off level OFFLEVE shown in Fig. 54, the volume level is abruptly stopped to terminate the sounding. The operation of this will be given in detail later.
- A/D converter 411 is provided for each pitch extraction circuit P1 to P6. If necessary, a single A/D converter may be used in common for those pitch extraction circuits, and be operated in a time-divisional manner.
- FIG. 29 A main routine of CPU 1000 is illustrated in Fig. 29.
- a interrupt routine which is applied for CPU 600, may be substantially equal to that of Fig. 34. Although these routines are for only one string operation, the same processings are correspondingly applied for other five string operations. In processing these six string operations, CPU 1000 executes the processings for six strings in a time divisional manner. Figs. 36 to 37 will be used for explaining the operation of this embodiment.
- a STEP register contains four stages 0, 1, 2, and 3.
- the contents of the STEP register progressively change, as shown in Fig. 36(b) or Fig. 37(b), as the string is picked and vibrates (Fig. 36(a) or Fig. 37(a)).
- the contents 0 of this register represents the note-off state.
- a SIGN register is use for indicating that the zero-cross point for period measurement is after the maximum peak point or the minimum peak point.
- the contents 1 of the register indicates that the zero-cross point after the maximum peak point, and the contents 2 of the register indicates the zero-cross point after the minimum peak point.
- a REVERCE register stores the data to check whether the interrupt processing has been made, which is executed at the arrival of the zero-cross point after the peak point which is located in opposition to the zero-cross point as given by the SIGN register. This is used for checking the pitch (fundamental frequency) extraction control for each period.
- a T register stores the count of counter 7 at a specific point to measure the period of the input waveform. Count 7 free runs responsive to a given clock signal.
- An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/D converter 411 and latched in 412.
- An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage.
- a PERIOD register stores the data of measured. On the basis of the contents of this register, CPU 1000 executes the frequency control against frequency RDM 8 and sound source circuit 9.
- An OFF register contains "1 when the level data of the input waveform latched in latch 412 is below OFFLEV as the note-off level shown in Fig. 54. It contains "0" when it is above OFFLEV during the sounding.
- An OFT register stores the count of counter 7 when 21 " is set in the OF register. If the time duration of the state of "1 " in the OF register is a predetermined time duration, for example, the period of of a string vibration in the open string mode, more exactly, 12 msec for the sixth string, for example, the note-off processing is executed.
- the first constants is ONLEVI.
- the system is in the note-off mode. In this mode, when a peak level larger than ONLEVI is detected, the CPU decides that a string has been picked, and starts the period measurement.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU executes the relative-on processing even if the tremolo, for example, is used.
- OFFLEV is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEV, the note-off processing is executed (Fig. 54(a)).
- step S1001 of the main routine CPU judges whether or not the contents of the a'-, b'-, and c'-registers have been stored into work memory 601, through the interrupt processing.
- Primed characters a', b', and c' corresponds to a, b and c above, and indicate that these items of data have previously stored, respectively. If no interrupt processing has been executed, the answer to step S1001 is NO, and the CPU repeats the execution of step S1001 by going through the note-off processing in steps S1030 to S1038.
- step S1002 the CPU reads out the registered contents a', b' and t'. Then, the CPU goes to step S1002, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU sets the peak value b' extracted this time into AMP (a') register.
- step S1004 to S1006 the CPU checks if the contents of STEP register is 3, 2 or 1. When the system of the electronic guitar under discussion is in the initial condition, the STEP register is 0, and therefore the answer to steps S1004, S1005 and S1006 is NO. In step S1007, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- step S1007 gives the answer of YES, and the CPU advances to step S1008.
- step S1008 the CPU sets "1 " in the STEP register.
- step S1009 the CPU sets "0" in the REVERSE register.
- step S1010 the CPU inputs the value of a'-register into the SIGN register. The value of a'-register is "1 " at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- step S1011 the value of t'-register is set in the T register.
- the contents of a'- register is set in the SIGN register (now SING is "1 " in the case of Figs. 36(a) and Fig. 37(a))
- the contents of the b'-register is set in the AMP register.
- the contents of the t'-register is loaded into the T register. Then, the CPU returns to step S1.
- step S1006 The main routine immediately after the zero-cross point Zero 2 will be described. In this processing, the data set processing and the note-on step discrimination processing in steps S1001, S1002, S1003, S1004, S1005 and S1006 will be executed. If the answer YES is given in step S1006, the CPU advances to step S1012.
- the SIGN register contains "1". Since the present wave of the waveform has passed the negative peak, the a'-register contains "2", and NO is given. When the zero-cross point immediately after the peak point with the same polarity is reached, YES is given in this step S1012. The CPU does not execute any further processing and returns to step S1001.
- step S1012 NO is given, and then, the CPU advances to step S1013, and sets "2" in the STEP register (see Fig. 36(b)).
- step S1014 the CPU executes step S1014, and compares the previous peak point (AMP (SIGN)) with the present peak point (b'). If the previous value XO is smaller than the present value (x1>x0) as shown in Fig. 36(a), YES will be given.
- the CPU jumps from step S1014 to steps S1010 and S1011, to set "2" in the SIGN register and at the same time to transfer the contents of the t'-register to the T register.
- step S1014 NO is given in step S1014 and "1" is set in the REVERSE register.
- the previous point "1 " is maintained in the SIGN register.
- the previous zero-cross point Zero 1 is the the period measuring start point, in this case (see Fig. 37(C)).
- step S1016 When the CPU executes the main flow after the next zero-cross point (Zero 3) is passed, the CPU advances to step S1016 after YES is given in step S1005.
- the present value of the a'-register is "1", that of the SIGN register is “2" as shown in Fig. 36, and that of the SIGN register is “1 " as shown in Fig. 37. Therefore, in the case of Fig. 36, NO is given in step S1016 and the CPU advances to step S1015 and returns to step S1001.
- CPU 1000 recognizes that the first peak point (amplitude x 2) is passed after the period measurement starts.
- step S1017 the CPU has the answer of YES in step S1016, and advances to step S1017 to check if the REVERSE register contains "1 ". If the value of the REVERSE register is "1 ", the CPU has the answer of NO, and returns to step S1001. As mentioned above, after execution of step S1015, the value of this register is "1". Then, the CPU advances to step S1018, and inputs "3" in the STEP register (see Fig. 37(b)). In step S1019, the CPU subtracts the value of the T register, i.e., the time of the zero-cross point Zero 1, from the value of the counter 7 given by the this-time interrupt processing, and the CPU loads it in the PERIOD register.
- T register i.e., the time of the zero-cross point Zero 1
- step S1020 the CPU transfers the contents of the t'-register to the T register, and starts the new period measurement.
- step S1021 CPU 1000 issues a sounding start (note-on) command to frequency ROM 8 and sound source circuit 9 in accordance with the contents of the PERIOD register. At this time, the sounding starts.
- Fig. 36 the main flow after the next zero-cross point Zero 4 is executed again, and the CPU jumps from step S1005 to S1016. Since the value of the SIGN register is now 2, YES is given in step S1016. Subsequently, the sounding start processing in steps S1017 to S1021 are executed. At this time, CPU 1000 recognizes the time interval from zero-cross points Zero 2 to Zero 4 shown in Fig. 36(c), as one period. The guitar starts the sounding of the musical tone at the frequency as defined by the time length recognized (see Fig. 36(d)).
- the period measurement is executed from the next zero-cross point after the peak point whose value is big.
- the period measurement is completed at the next zero-cross point located in the same side as the previous peak point.
- the period of low-pass filter 3 output waveform is extracted.
- the CPU advances from step S1004 to step S1023 in the main routine processing, and judges whether or not the relative-on processing should be executed. In other words, the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e. checks if the value of the extracted peak point rapidly increases during sounding.
- step S1023 When a string is picked, the vibration of the string gradually damps toward zero. NO is given in step S1023. In case that before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step S1023 is often YES.
- step S1008 after judging YES in S1023, and then executes the preparatory processing for note-on in step S1009 to step S1001.
- the CPU sets "1 " in the STEP register, and subsequently executes the same processing as that of the sounding start.
- the CPU executes step S1016 to step S1021 again, and executes the relative-on processing.
- step S1023 the CPU executes step S1023 followed by step S1024, and compares the contents of the a'-register with those of the SIGN register. If these do not coincide, the CPU advances to step S1015 for the interrupt processing at the next zero-cross point. If these coincide, the CPU proceeds to step S1025 because the present wave of the waveform has the peaks with the opposite polarities (positive and negative peaks) in the past. Then the CPU judges whether or not the value of the REVERSE register is "1 ". If the result is NO, it returns directly to step S1001. If YES is given, the CPU advances from step S1025 to step S1026. Then the contents of the T register is subtracted from those of the t'-register for obtaining a new period, and the result is set in the PERIOD register.
- step S1027 the contents of the t'-register are transferred to the T register. Subsequently, on the basis of the value of the PERIOD register obtained in step S1028, CPU 1000 executes the frequency (pitch) control for frequency ROM 8 and sound source circuit 9.
- this embodiment discretely picks up a variation of the frequency of string vibration, and controls the frequency according to the picked up discrete data in a real time manner.
- the CPU advances from step S1028 to step S1029, and clears the REVERSE register, and finally executes the period measuring.
- step S1030 CPU decides that the present contents of the STEP register is 3.
- the CPU detects that the waveform level of the input signal, which is derived from A/D converter 411 and latched in latch 412, becomes below the note-off level OFFLEV (step S1031).
- “1" " is set in the OF register which has stored "0”, and the count of counter 7 is set to the OFT register.
- the CPU returns step S1001 (steps S1023 to S1034).
- step S1035 recognizes this by using the difference between the count as set in the OFT register and the present count of counter 7.
- step S1036 CPU 1000 clears the STEP register and the OF register, and executes the note-off processing in step S1037, and gives a note-off command to sound source circuit 9, to stop the sounding.
- the note-off processing can be executed quickly and reliably, even if the waveform level abruptly changes, by detecting that the waveform level below OFFLEV for 12 msec, for example.
- step S1031 Since such damping temporarily occurs, if the peak level exceeds OFFLEV, CPU 1000 detects this in step S1031, and clears the OF register in step S1038, and does not execute the note-off processing. Therefore, if the abrupt drop of the waveform level occurs as shown in Fig. 50, and neither of interrupt signals INTa and INTb is generated, clock signal CL is always applied to latch 412. The latch command signal L as indicated by (8) in Fig. 52 keeps high level state. Then, the output of A/D converter 411 is applied to CPU 1000 via latch 12. The CPU executes the note-off processing according to this peak value. As a result, the note-off response is improved.
- the above-mentioned embodiment is so arranged that when the waveform level of the 6th string is below the level of OFFLEV, the note-off is executed. In an alternatively, the note-off may be executed when such a level of the input waveform is continued for the other time duration than 12 ms, i.e., the period or more of the musical tone as generated by the electronic guitar.
- the above-mentioned embodiment is also so arranged that CPU 1000 executes the interrupt processing immediately at the zero-cross point after each peak point, followed by the note-on start, period computation, relative-on, note-off start, etc.. These processings may be performed immediately after each peak point detection. In this case, the same effects as those attained by the former case may be attained. Additionally, these processings may be done upon detection of the zero-cross point immediately before the peak point. Any other suitable measure may be used for the reference point setting up.
- Each processing, which is executed in the main routine in the above-mentioned embodiment, may be done in each interrupt processing.
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the note-off is executed. If the mute playing is made, and the waveform abruptly drops to such a level to be too low for detecting the peak point, the level drop can reliably and quickly be detected, to execute the note-off processing. This cannot be realized by the conventional system of the type in which the note-off is executed upon detection of the dropping of the peak of the input signal wave below a predetermined value. With such an arrangement, good performance is obtained.
- the electronic system of the electronic guitar more quickly enters the new note-on processing of the musical tone.
- harmonics are contained in the natural waveform.
- the harmonics possibly cause erroneous frequency change control, when these are detected.
- the eleventh embodiment improves the electronic guitar of the above type so that the guitar never produces the harmonics musical tone even when it extracts the harmonics.
- CPU decides that the harmonic waveform is applied to the guitar, and issues a note-off command.
- An arrangement of the eleventh embodiment may be that of Fig. 33.
- the interrupt routines by interrupt commands INTa and INTb may also be substantially the same as those of the embodiment relating to Fig. 33. Description of the operation of this embodiment will be given mainly in connection of the main routine.
- Figs. 55A and 55B show a flowchart of a main routine used in this embodiment.
- the main routine is for picking of only one string. In an actual guitar, six strings are used, and CPU 600 executes the main routine in a time divisional manner.
- a STEP register may contain 0, 1, 2 for a normal mode, and 0, 1, 2, and 3 for an abnormal mode when harmonics are extracted.
- the contents of the register changes as the string of guitar is picked and vibrates, as shown in Fig. 56(a).
- the contents of "0" of this register indicates the note-off mode.
- a SIGN register is used for indicating that the zero-cross point for period measurement is located after the maximum peak point or the minimum peak point.
- the contents 1 of the register indicates that the zero-cross point after the maximum peak point, and the contents 2 of the register indicates the zero-cross point after the minimum peak point.
- a T register stores the count of counter 7 at a specific point for measuring the period of an input waveform.
- An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/D converter 11 and latched in latch 412.
- An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage.
- a P or P' register receives the data representing the measured period. Using the contents of this register, CPU 600 executes the frequency change control for sound source circuit 9.
- the first constants is ONLEVI.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU executes the relative-on processing even if the tremolo playing, for example, is used.
- OFFLEV is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEV, the note-off processing is executed (Fig. 56(a)).
- step Q1101 of Figs. 55A and 55B CPU 600 initializes the registers, for example, contained in the electric system of the electronic guitar.
- step S1102 "0" is set in the STEP register.
- step Q1103 the CPU advances to step Q1105.
- the CPU reads out the registered contents a', b' and t'. Then, the CPU goes to step Q1105, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU sets the peak value b' extracted this time into AMP (a') register.
- step Q1106 to Q1108 the CPU checks if the contents of STEP register is 1, 2 or 3. When the system of the electronic guitar under discussion is in the initial condition, the STEP register is 0, and therefore the answer to steps Q1106, Q1107, and Q1108 is NO. In step Q1107, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- step 01109 If the answer of NO is given in step 01109, the CPU returns to step Q1103. If it derived from low-pass filter 3 is above ONLEVI, step Q1109 gives the answer of YES and the CPU advances to step Q1110.
- step Q1110 the CPU sets "1 " to the STEP register.
- step Q1111 the CPU sets the value of a'-register into the SIGN register.
- the value of a' is "1" at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- step Q1112 the value of t', i.e., the time at the zero-cross point Zero 1, is set in the T register.
- step Q1106 the CPU advances to step Q1113.
- the SIGN register is "1 ". Since the present wave of the waveform has passed the negative peak, i.e., the minimum peak point, the register is "2" and NO is given. The CPU does not execute any further processing and returns to step Q1103.
- step Q113 gives the answer of YES.
- step Q114 "2" is set to the STEP register as shown in Fig. 56(b).
- step Q11 the time at the zero-cross point Zero 1 in the T register is subtracted from the this-time interrupt time in the t'-register. The result of the subtraction, i.e., the time length P' of one period of the waveform, is stored into the P' register.
- step Q1165 the contents of t'-register is transferred to the T-register, and a new period measurement starts.
- step Q1117 the CPU directs sound source circuit 9 to generate the musical tone at the frequency based on the contents of the P' register, that is, gives a note-on command. The sounding starts from this timing, as shown in Fig. 56(d).
- step Q1107 gives the answer of YES. Then, in step Q118, the CPU checks if the value of b' is above or below OFFLEV (Fig. 56(a)). In this instance, the peak level is still high, and the answer to step Q1118 is YES, and the operation goes to step Q1119.
- step Q1119 CPU judges whether or not the relative-on processing should be executed. In other words, the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e. checks if the value of the extracted peak point rapidly increases during sounding.
- step Q119 When a string is picked, the vibration of the string gradually damps toward zero. NO is given in step Q119. In the case where, before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step Q1119 may be YES.
- the CPU jumps from step 1119 to step Q1110, and then executes step Q9 to step Q11.
- the CPU sets "1 " in the STEP register, and subsequently executes the same processing as that of the note-on or sounding start.
- the CPU executes step Q11106, Q1113 to Q1117, and executes the relative-on processing. At this time, the relative-on processing with the attach is executed.
- step Q1120 the CPU executes step Q1120 followed by step Q1119, and compares the contents of a'-register with those of the SIGN register. If these do not coincide, this step Q1120 gives NO, and returns to step Q1103 since the present cross-point is Zero 4, and the SIGN register contains "1 and the a'-register is "2".
- steps Q1103 to Q1107 and Q1118 to Q112n are executed.
- step Q1120 YES is given.
- Steps 1121 and Q1122 are executed to set a new period, i.e., the time from Zero 3 to Zero 5, into the P register.
- step Q1123 the CPU checks if P is larger than (1/2 + a) of P' using the this-time and previous period P and P'.
- "a" is selected to be between 0 and 0.06, for example, allowing for an error of semitone or less. For obtaining an exact value of "a”, it may be obtained experimentally.
- step Q1123 normally, YES is given, and then step Q1124 is executed.
- the CPU gives a command for frequency change to sound source circuit 9 according the pitch this detected.
- the frequency may be changed for each semitone or the unit of smaller than semitone, in a real time manner.
- the contents of the P register is transferred to the P' register in step Q1115, and the CPU returns to step Q3.
- the CPU executes steps Q1103 to Q1107, and Q1118 to Q1120, and returns to Q1103. Alternatively, it executes steps Q1103 to Q1107, and Q1118 to Q1125, when no relative-on processing is executed.
- step Q1118 if the input peak value is below OFFLEV, step Q1118 gives NO, and in step Q1126, the STEP register is cleared. The note-on processing is executed in step Q1127. As described, the musical tone thus sounded from sound source circuit is stopped.
- step Q1108 YES is given.
- step Q1127 At the zero-cross point Zero 9, the value of b' is larger than OFFLEV (Fig. 56(a)), YES is given.
- the CPU goes to step Q1130 and executes the processing for relative-on as in step Q1119.
- step Q1130 If the answer to step Q1130 is YES, steps Q1110 to Q1112 are executed, and subsequently, the note-on processing is executed.
- step Q1130 NO is given, and the CPU returns to step Q1103. Hence, steps Q1103 to Q1108 and Q1129 and Q1130 are executed whenever the zero-cross point is reached.
- step Q1129 NO is given.
- step Q1131 the STEP register is cleared. In this way, the CPU completes a sequence of note-on procedural steps and returns to step Q1103.
- CPU 6 detects it and appropriately controls the electric system of the guitar, so that the circuit erroneously operates. Therefore, unnatural musical tones is never sounded from the guitar. Further, the mute (note-off) is made from that time, the performance by the guitar can be made, as the player intends.
- the STEP register is instantaneously set to "0".
- 3 is set to the STEP register.
- the CPU waits till the input signal level becomes satisfactorily small, and "0" is set to the register.
- the string vibration often continues when the harmonic is input. It is possible to prevent the guitar system from being triggered for the relative-on by the waveform with the level above ONLEVI.
- CPU 600 executes the interrupt processing at the zero-cross point immediately after each of the maximum and minimum peak points.
- the note-on, period computation, relative-on, and note-off processings are performed. These processings may be immediately after these peak points are detected or upon detection of the zero-cross point immediately before the peak point.
- Various other suitable measure may be used for the reference point setting up.
- the correlative method may be used for the pitch extraction.
- While in the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the CPU decides that the harmonic comes in, and issues a command of note-off. Therefore, the intended mute effects can be obtained, eliminating unnatural musical tone generation.
- This embodiment improves the pitch change control, which is applied for the sound source circuit.
- the pitch is extracted from an input signal waveform, and then control issues to a sound source circuit a command to sound a musical tone at the pitch as defined by the extracted pitch.
- the sound source circuit needs a long time for the processing based on one pitch change command. Therefore, there is a situation that a new pitch change command is issued when the one command processing is in progress.
- the twelfth Embodiment provides an electronic guitar in which the sound source circuit can follow up the discrete and rapid pitch variation with improved pitch resolution but without any modification of the sound source circuit, thereby realizing natural musical tone sounding.
- a time count means prohibits the issuance of a new pitch change command until a predetermined period of time elapses. This confines the time interval between the adjacent pitch change commands within a predetermined time period, and ensures a correct processing of the sound source circuit.
- the pitch resolution of the sounded musical tone can be increased or made more discrete without the processing speed.
- FIG. 57 An overall circuit arrangement of the twelfth embodiment is shown in Fig. 57, and is substantially equal to that of Fig. 33. Like reference symbols are used for like portions, for simplicity.
- CPU 1200 issues a note-on command to sound source circuit 9.
- a sound source circuit progressively controls the frequency of a sounding musical tone according to the time interval data, which are successively obtained.
- timer 1208 counts a predetermined time duration or the time duration required for one command execution. More specifically, timer 1208 receives a control signal from CPU 1200, and measures the predetermined time, and then applies an interrupt signal INTc to CPU 1200.
- the CPU executes the interrupt processing. This will be described in detail.
- sound source circuit 9 generates a musical tone at the frequency as defined by the pitch change command. Sound system sounds the musical tone.
- interrupt processings by interrupt signals INTa and INTb are substantially the same as those of Fig. 34. The description of these will be omitted.
- FIG. 58 An interrupt routine by interrupt signal INTc is illustrated in Fig. 58.
- a main routine of the twelfth embodiment is shown in Figs. 59A and 59B.
- the main routine is for the processing of the waveform generated by one string.
- the processing of the main routine is correspondingly applied for the waveforms of other strings.
- CPU 1200 executes these main routines in a time divisional manner.
- a STEP register contains four contents 0, 1, 2, and 3.
- the contents of the STEP register progressively change, as shown in Fig. 36(b) or Fig. 37(b), as the string is picked and vibrates (Fig. 36(a) or Fig. 37(a)).
- the contents 0 of this register represents the note-off state.
- a SIGN register is used for indicating that the zero-cross point for period measurement follows the maximum peak point or the minimum peak point.
- the contents 1 of the register indicates the zero-cross point after the maximum peak point, and the contents 2 of the register indicates the zero-cross point after the minimum peak point.
- a REVERSE register stores the data to check whether the interrupt processing has been made, which is executed at the arrival of the zero-cross point after the peak point which is located in opposition to the zero-cross point as given by the SIGN register.
- a T register stores the count of counter 7 at a specific point to measure the period of the input waveform. Count 7 free runs responsive to a given clock signal.
- An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/D converter 11 and latched in 12.
- An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage.
- a PERIOD register stores the data of measured periods. On the basis of the contents of this register, CPU 1200 executes the frequency control for frequency ROM 8 and sound source circuit 9.
- a FLAG register is used for control purposes. When timer 1208 counts a predetermined time, it contains "0". Before its counting, the FLAG register contains 21".
- P and P' registers store the frequency data representing the extracted pitches (including the frequencies of semitone or less expressed in cent, for example).
- the first constant is ONLEVI.
- the system is in the note-off mode. In this mode, when a peak level higher than ONLEVI is detected, the CPU decides that a string has been picked, and starts the period measurement.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU decides that the tremolo playing is performed, and executes the relative-on processing.
- OFFLEV is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEV, the note-off processing is executed (Fig. 38(a)).
- CPU 1200 Upon arrival of interrupt command signal INTc, CPU 1200 executes the interrupt processing shown in Fig. 58. In step S1201, the CPU clears the FLAG register to "0", and completes this routine processing.
- step Q1201 of the main routine (Figs. 59A and 59B)
- CPU 1200 judges whether or not the contents of the a'-, b'-, and c'-registers have been stored into work memory 601, through the interrupt processing.
- Primed characters a', b' and c' correspond to a, b and c above, and indicate that these items of data have previously stored, respectively. If no interrupt processing has been not executed, the answer to step Q1201 is NO, and CPU 1200 repeats the execution of step Q1201.
- step Q1202. the CPU reads out the registered contents a', b' and t'. Then, the CPU goes to step Q1203, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU sets the peak value b' extracted this time into AMP (a') register.
- step 1204 to Q1206 the CPU checks if the contents of STEP register is 3, 2 or 1. When the system of the electronic guitar under discussion is in the initial condition, the STEP register is 0, and therefore the answer to steps 1204, Q1205 and Q1206 is NO. In step Q1207, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- step Q1207 gives the answer of YES and the CPU advances to step Q1208.
- step Q1208 the CPU sets "1 " to the STEP register.
- step Q1209 the CPU sets "0" to the REVERSE register.
- step Q1210 the CPU inputs the value of a' into the SIGN register.
- the value of a' is "1 " at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- step Q1211 the value of t' is set in the T register.
- the value of a' is set in the SIGN register, that of b' in the AMP register, and that of t' in the T register.
- the value of the SIGN register is "1 " (Fig. 36(a) and Fig. 37(a)). Then, the CPU returns to step Q1201 again.
- step Q1201, Q1202, Q1203, 1204, Q1205 and Q1206 will be executed. If the answer YES is given in step Q1206, the CPU advances to step Q1212.
- the SIGN register is "1". Since the present wave of the waveform has passed the negative peak, the register is "2" and NO is given. When the zero-cross point immediately after the peak point with the same polarity is reached, this step gives YES. The CPU does not execute any further processing and returns to step Q1201.
- step Q1212 NO is given, and after that, the CPU advances to Q1213 and sets 2 in the STEP register (see Fig.36(b) and Fig. 37(b)).
- step Q1214 the CPU executes step Q1214 and compares the previous peak point (AMP (SIGN)) with the present peak point (b'). If the previous value XO is smaller than the present value (X1>XO) as shown in Fig.36(a), YES will be given.
- the CPU jumps from step Q1214 to steps Q1210 and Q1211, to set 2 in the SIGN register and at the same time to transfer the contents of the t'-register to the T register.
- step Q1214 NO is given in step Q1214 and 1 is set in the REVERSE register in step Q1215.
- the previous value 1 is maintained in the SIGN register.
- the previous zero-cross point Zero 1 is the period measuring start point, in this case (see Fig. 37(c)).
- step Q1216 When the CPU executes the main flow after the next zero-cross point (Zero 3) is passed, the CPU advances to step Q1216 after YES is given in step Q1205.
- the present value of a' is 1, that of the SIGN register is 2 as shown in Fig. 36, and that of the SIGN register is 1 as shown in Fig. 37. Therefore, in the case of Fig. 36, NO is given in step Q1216 and the CPU advances to Q1215 and returns to Q1201. In other words, CPU 1200 recognizes that the first peak point (amplitude X2) is passed after the period measurement starts.
- step Q1216 the CPU has the answer of YES in step Q1216 and advances to step Q1217 to check if the value of the REVERSE register is 1. If the value of the REVERSE register is not 1, the CPU judges NO and returns to step Q1201. As mentioned above, after execution of step Q1215, the value of this register is 1. Then, the CPU advances to step Q1217 and Q1218, and inputs 3 in the STEP register (see Fig. 37(b)). In step S1219, the CPU subtracts the value of the T register, i.e. the time of the zero-cross point Zero 1, from the value of the counter 7 given by the this-time interrupt processing, and the CPU loads it in the PERIOD register.
- T register i.e. the time of the zero-cross point Zero 1
- the time length PERIOD shown in Fig. 37(c) is that of one period.
- the CPU transfers the contents of t'-register to the T register, and starts the new period measurement.
- step Q1240 the CPU computes the pitch of the musical tone to be generated on the basis of the PERIOD register, and loads the pitch data (some other data representing the computed data) into the P' register.
- the pitch data preferably contains octave, note, and the pitch of semitone or less, which are expressed in the unit of cent.
- step S1221 CPU 1200 issues a note-on command to sound source circuit 9 in response to the contents of the P' register. From this time point, the musical tone is generated.
- the CPU flows to step Q1241.
- timer 8 starts its count and counts a predetermined time under control of the CPU.
- step Q1242 "1 " is set in the FLAG register.
- Fig. 36 the main flow after the next zero-cross point Zero 4 is executed again, and the CPU jumps from step Q1205 to Q1216. Since the value of the SIGN register is now 2, YES is given in step Q1216. Subsequently, steps Q1217 to Q1240, Q1221, and Q1241 to 1242 are executed. At this time, CPU 1200 recognizes the time interval from zero-cross points Zero 2 to Zero 4 shown in Fig. 36(c), as one period. The guitar starts the sounding of the musical tone at the frequency as defined by the time length recognized (see Fig. 36-(d)).
- the period measurement is executed from the next zero-cross point after the peak point whose value is larger.
- the period measurement is completed at the next zero-cross point located in the same side as the previous peak point.
- one period of low-pass filter 3 output waveform is extracted.
- the CPU advances from step 1204 to step Q22 in the main routine processing, and checks if the value of the present peak point b' is above OFFLEV as shown in Fig. 38.
- step Q1223 judges whether or not the relative-on processing should be executed.
- the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e. checks if the value of the extracted peak point rapidly increases during sounding.
- step Q23 When a string is picked, the vibration of the string gradually damps toward zero. NO is given in step Q23. In case that before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step Q23 is often YES.
- the CPU jumps to step Q1208 after judging YES in Q23, and then executes step Q1209 to step Q1211.
- the CPU sets "1" in the STEP register, and subsequently executes the same processing as that of the sounding start.
- the CPU executes step Q1216 to step Q1221 again, and executes the relative-on processing.
- step Q1223 the CPU executes step Q1223 followed by step Q1224, and compares the contents of a'-register with those of the SIGN register. If these do not coincide, the CPU advances to step Q1215 for the interrupt processing at the next zero-cross point. If these coincide, the CPU proceeds to step Q1202 because the present wave of the waveform has the peaks with the opposite polarities (positive and negative peaks) in the past. Then the CPU judges whether or not the value of the REVERSE register is "1 ". If the result is NO, it returns directly to step Q1201. If YES is given, the CPU advances from step Q1225 to step Q1226. Then the contents of the T register is subtracted from those of the t' register for obtaining a new period, and the result is set in the PERIOD register.
- step Q1227 the contents of t' register are transferred to the T register.
- step Q1229 CPU 1200 clears the REVERSE register and executes the next period measurement.
- step 1243 the CPU checks if the FLAG register contains "0". If the answer is NO, the CPU returns to step Q1201. No pitch change processing is performed on the period data as stored in the PERIOD register.
- step Q1241 that is, timer Q1208 has counted time from the previous note-on processing and pitch change processing, and the interrupt processing (Fig. 58) has been made, if a new frequency change command is applied to sound source circuit 9, the circuit 9 accepts the command for its appropriate processing.
- step Q1244 Control flows to the next step Q1244, whose processing is similar to that of step Q1240.
- step Q1244 the pitch frequency data is set to the P register.
- step Q1245 the CPU checks if the frequency data stored in the P' register is coincident with that in the P register obtained this time.
- step Q1245 If these are coincident, no frequency change is required, and control flows from step Q1245 to Q1201. If these are not coincident, the CPU decides that the frequency of the input signal has been changed by the guitar playing, for example, and executes the following processing to change the frequency of the output musical tone.
- step Q1245 When NO is given in step Q1245, control flows to step Q1228.
- the pitch data in the register is transferred to sound source circuit 9.
- the circuit changes the old frequency of the musical tone to the new one.
- step Q1228 CPU 1200 transfers the contents of the P register to the P' register, and in steps Q1241 and 1242, is ready for the next pitch change.
- this embodiment discretely and momen- tly picks up a variation of the frequency of string vibration, and controls the frequency according to the picked up discrete data in a real time manner.
- step Q1222 the string vibration damps and the peak value becomes below the level of OFFLEV, as shown in Fig. 38, the CPU jumps from step Q1222 to step Q1230 to clear the STEP register.
- step Q1231 the note-off processing is executed, and the CPU gives the note-off command to sound source circuit 9, to stop the sounding of musical tone.
- the electronic guitar of this embodiment can execute the satisfactory processing when receiving a musical tone with continually and rapidly changing pitches. This can be realized with high resolution of pitch, and regardless of the data transfer speed between CPU 1200 and sound source circuit 9.
- CPU 1200 executes the corresponding processing, and gives a necessary command to sound source circuit 9. In this respect, the guitar system is good in response.
- the CPU executes the interrupt processing at the zero-cross point immediately after each peak point followed by the various types of processings such as the sounding start, period calculation, relative-on and note-off. If necessary, these processings can be executed when each peak point is detected or when the zero-cross point immediately before the peak point is detected. Any other suitable measure may be taken for obtaining the reference point. If necessary, an additional pitch extraction system may be used, which is based on the auto-correlation function.
- the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal.
- Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- the electronic guitar of this embodiment has a high pitch resolution with a low frequency of outputting the pitch change commands.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
Description
- The present invention relates to an electronic musical instrument of the type in which a musical tone is generated on the basis of a pitch extracted from an input waveform signal, and more particularly to an electronic string instrument such as an electronic guitar or a guitar synthesizer.
- In recent days, there have been developed musical instruments of the type in which a pitch (frequency) is extracted from a waveform signal generated by a natural or conventional musical instrument, and under control of the extracted pitch, a sound source of an electronic circuitry is driven to artificially generate a sound such as a musical tone.
- In this type of the musical instruments, the pitch extraction still involves some problems to urgently be solved. Typical pitch extraction systems are a zero-cross point detection system and a peak detection system.
- The zero-cross point detection system detects the time intervals between zero-cross points in the input waveform, and uses them as periods of the artificial sound. The input waveform frequently contains harmonics which should have been removed by filters such as low-pass filters. The detection system does not operate well for such input waveforms. If it is applied, the detected pitches contain many errors. To prevent the errors, complicated software processings, for example, to check the duty of the input waveform, are required. It is technically difficult to realize this.
- The peak-detection system detects maximum and minimum peak points of the input waveform signal, and sets and resets the flip-flop at the peak points, to generate a period signal, e.g., a rectangular wave signal. The peak detection system is disclosed in KOKOKU Nos. 57-37074 (corresponding to USP No. 4,117,757) and 57-58672, and KOKAI Nos. 55-55398, 55-152597 (Utility Model), and 61-26090.
- The peak detection system determines the period of the artificial sound waveform by the time interval between the adjacent maximum peaks, for example. This feature causes reduction of the reliability of the detected pitches, and a slow response to frequency change of the input natural sound waveform. Use of the R-S flip-flop makes the instrument circuitry inflexible in generic use and makes it difficult to construct so-called intelligent musical instruments having data processing functions.
- Other proposals of the pitch detection are disclosed in KOKAI Nos. 55-87196 and 55-159495, and KOKOKU No. 61-51793.
- KOKAI 55-87196 measures the period of the input natural sound waveform, and then converts the measured value into a frequency number, which in turn is sent to the sound source. Any novel technical proposal for the period measurement is not found in this KOKAI 55-87196 specification.
- KOKAI 55-159495 and KOKOKU 61-51793 disclose a frequency stabilizing technique in which when the adjacent extracted periods are substantially the same, the sounding of the musical instrument starts. A sounding command is not sent to the sound source until at least two periods elapse. In this respect, these patent applications involve the response performance problem. To obtain a quick response, the sounding should start as soon as possible.
- Utility Model KOKOKU No. 62-20871 (corresponding to USP 4,606,255) discloses another frequency stabilizing technique. In a string musical instrument, a vibration of one string affects the vibration of another string. Extremely, the latter vibrates resonating at the vibration frequency of the former. The proposal needs a high cost because the mechanical parts are used, and can imperfectly remove the resonance.
- As seen from the above prior art discussion, the prior arts are still immature and requires the improvements of many performances such as system stability, response and flexibility in use.
- Accordingly, an object of the present invention is to provide an electronic musical instrument of the type in which musical tones are generated on the basis of pitches extracted from the waveform of an input signal, the musical instrument being improved in the pitch extraction accuracy, and which quickly and reliably sends commands depending on the picking of the strings, the tremolo play and the like to the sound source circuit.
- According to one aspect of the present invention, there is provided an electronic musical instrument of the type in which musical tones are generated on the basis of pitches extracted from an input signal waveform comprising:
- positive peak detecting means for detecting positive peak points in the input signal waveform;
- negative peak detecting means for detecting negative peak points in the input signal waveform;
- first peak point finding means for finding the positive peak point succeeding to the negative peak point detected by the negative peak detecting means, from those positive peak points detected by the positive peak detecting means;
- second peak point finding means for finding the negative peak point succeeding to the positive peak point detected by the positive peak detecting means, from those negative peak points detected by the negative peak detecting means;
- time measuring means for measuring the time duration between the positive peak points as found by the first peak point detecting means or the time duration between the negative peak points as found by the second peak point detecting means; and
- output means for outputting the pitch data to determine high pitches through an appropriate processing on the basis of the time duration measured by the time measuring means.
- According to another aspect of this invention, there is provided an electronic musical instrument of the type in which musical tones are generated by extracting pitches from an input signal waveform comprising:
- peak detecting means for detecting positive or negative peak points in an input signal waveform;
- zero-cross point detecting means for detecting zero-cross points in the waveform; and
- pitch extracting means for extracting pitches of the input signal waveform by detecting the time interval (t1) between the zero-cross points each first detected by the zero-cross point detecting means after the positive peak point is detected by the peak point detecting means and/or the time interval (t2) between the zero-cross points first detected by the zero-cross point detecting means after the negative peak point is detected by the peak point detecting means.
- With such arrangements, the frequency or pitch of the input signal waveform can be extracted accurately and quickly.
- Other objects and features of the present invention will be understood to those skilled persons in the art when carefully reading the detailed description of the preferred embodiments in connection with the accompanying drawings; in which:
- Fig. 1 illustrates in block form an overall arrangement of a first embodiment of the present invention;
- Fig. 2 shows a circuit diagram of a maximum or positive peak detector used in the Fig. 1 circuit;
- Fig. 3 shows a circuit diagram of a minimum or negative peak detector used in the Fig. 1 circuit;
- Fig. 4 shows a timing chart useful in explaining the operation of the Figs. 2 and 3 circuits;
- Fig. 5 shows a graphical representation of a cut- off frequency of a low-pass filter used in the Fig. 1 circuit;
- Fig. 6 shows a flowchart of a main routine used by the CPU in the Fig. 1 circuit;
- Fig. 7 shows a flowchart of an interrupt routine executed by the CPU when the maximum or positive peak point MAX is detected;
- Fig. 8 shows a flowchart of an interrupt routine executed by the CPU when the minimum or negative peak point MIN is detected;
- Fig. 9 shows waveforms of an input signal to the Fig. 1 circuit, and of flags;
- Figs. 10 and 11 illustrate in block form an overall arrangement of a second embodiment of the present invention;
- Fig. 12 shows a circuit diagram of a zero-cross point detector used in the Fig. 10 circuit;
- Fig. 13 shows a timing chart useful in explaining the operation of the Fig. 10 circuit when it receives an waveform of the input signal;
- Fig. 14 shows a flowchart of an interrupt routine executed by the CPU of the Figs. 10 and 11 circuit when the zero-cross point is detected immediately after a maximum peak point is detected;
- Fig. 15 shows a flowchart of an interrupt routine executed by the CPU of the Figs. 10 and 11 circuit immediately when the zero-cross point is detected after a minimum peak point is detected;
- Fig. 16 shows a timing chart useful in explaining the operation of the Figs. 10 and 11 circuit when it receives another waveform of the input signal;
- Fig. 17 shows a flowchart of a main routine executed by the CPU which is used in a circuit of musical instrument according to a third embodiment according to this invention;
- Fig. 18 shows a timing chart useful in explaining the operation of the third embodiment circuit when it receives an waveform of the input signal;
- Fig. 19 shows a flowchart of an interrupt routine executed by the CPU of the third embodiment circuit when the zero-cross point is detected immediately after a maximum or positive peak point is detected;
- Fig. 20 shows a flowchart of an interrupt routine executed by the CPU of the third embodiment circuit when the zero-cross point is detected immediately after a minimum peak point is detected;
- Fig. 21 illustrates in block form an overall arrangement of a fourth embodiment of the present invention;
- Fig. 22 shows a flowchart of a main routine of the CPU in the Fig. 21 circuit;
- Fig. 23 shows a timing chart useful in explaining the operation of the Fig. 21 circuit when it receives an waveform of the input signal;
- Fig. 24 shows a flowchart of an interrupt routine executed by the CPU of the Fig. 21 circuit when the zero-cross point is detected immediately after a maximum or positive peak point is detected;
- Fig. 25 shows a flowchart of an interrupt routine executed by the CPU of the Fig. 21 circuit immediately when the zero-cross point is detected after a minimum or negative peak point is detected;
- Fig. 26 shows a timing chart useful in explaining the operation of the Fig. 21 circuit when it receives another waveform of the input signal;
- Fig. 27 shows a block diagram of a modification of the Fig. 21 circuit as the fourth embodiment;
- Fig. 28 shows a timing chart for explaining the operation of the Fig. 27 circuit;
- Fig. 29 shows a flowchart of a main routine executed by the CPU which is used in a circuit of musical instrument according to a fifth embodiment according to this invention;
- Fig. 30 shows a timing chart useful in explaining the operation of the fifth embodiment circuit when it receives an waveform of the input signal;
- Fig. 31 shows a flowchart of an interrupt routine executed by the CPU of the fifth embodiment circuit when the zero-cross point is detected immediately after a maximum or positive peak point is detected;
- Fig. 32 shows typical waveforms to which the musical instrument according to a sixth embodiment is applicable with the improved response;
- Fig. 33 shows a circuit arrangement of the sixth embodiment of a musical instrument according to this invention;
- Fig. 34 shows a flowchart of an interrupt routine executed by the CPU in the sixth embodiment;
- Figs. 35A and 35B show a flowchart of a main routine of the CPU in the sixth embodiment;
- Fig. 36 shows a timing chart useful in explaining the operation for sounding start when the musical instrument of the sixth embodiment receives a waveform of an input signal;
- Fig. 37 shows a timing chart useful in explaining the operation for sounding start when the musical instrument of the sixth embodiment receives another waveform of an input signal;
- Fig. 38 shows a timing chart useful in explaining the operation for muting when the musical instrument of the sixth embodiment receives a waveform of an input signal;
- Fig. 39 shows a waveform possibly causing an erroneous operation in extracting the pitch of an input signal waveform, this erroneous operation problem being solved by a seventh embodiment of the present invention;
- Figs. 40A and 40B show a main routine executed by the CPU in the seventh embodiment;
- Fig. 41 shows a timing chart for explaining the operation of the seventh embodiment;
- Fig. 42 shows a flowchart of a main routine executed by the CPU in an eighth embodiment;
- Fig. 43 shows a timing chart for explaining the operation of the eighth embodiment;
- Fig. 44 shows a flowchart of an interrupt routine executed by the CPU of the eighth embodiment when the zero-cross point is detected immediately after a maximum or positive peak point is detected;
- Fig. 45 shows a flowchart of an interrupt routine executed by the CPU of the eighth embodiment immediately when the zero-cross point is detected after a minimum or negative peak point is detected;
- Figs. 46A and 46B show a flowchart of a main routine of the CPU in a ninth embodiment;
- Fig. 47 shows a timing chart useful in explaining the operation for sounding start when the musical instrument of the ninth embodiment receives a waveform of an input signal;
- Fig. 48 shows a timing chart useful in explaining the operation for sounding start when the musical instrument of the ninth embodiment receives another waveform of an input signal;
- Fig. 49 is a timing chart showing the operation of the ninth embodiment when it does not perform the muting operation;
- Fig. 50 shows a waveform for explaining the technical problems to be solved by the tenth embodiment according to the present invention;
- Fig. 51 shows a block diagram of a tenth embodiment;
- Fig. 52 shows a set of waveforms of the signals at the key portions in the tenth embodiment;
- Figs. 53A and 53B show a timing chart a flowchart of a main routine executed by the CPU used in the tenth embodiment;
- Fig. 54 shows a timing chart for explaining the muting operation when the mute is executed in the tenth embodiment;
- Figs. 55A and 55B show a flowchart of a main routine by the CPU used in a 11th embodiment according to the present invention;
- Fig. 56 shows a time chart for explaining the operation of the 11th embodiment;
- Fig. 57 shows a block diagram of a circuit arrangement of a 12th embodiment according to the present invention;
- Fig. 58 shows a flowchart of a routine executed in response to an interrupt signal from a timer used in the Fig. 57 circuit; and
- Figs. 59A and 59B show a flowchart showing a main routine executed by the CPU in the Fig. 57 circuit.
- The first embodiment of the present invention provides the improvements of electronic musical instruments of the type in which the period of an input signal waveform is obtained from the maximum peak point MAX, i.e., the positive peak point, and the minimum peak point, i.e., the negative peak point. The positive and negative peak points are referred to as maximum and minimum peak points in the present specification and drawings, respectively.
- An overall circuit arrangement of a musical instrument according to the present invention is illustrated in Fig. 1. In the first embodiment, the present invention is embodied in an electronic guitar. Vibrations of six strings of the electronic guitar are picked up by pickups (not shown). The pickups convert the mechanical vibrations of the strings into electrical signals. These signals as musical tone signals are input to six
input terminals 1. These input signals are amplified byamplifiers 2, and applied to low-pass filters 3. These filters respectively remove the high frequency components of these signals to extract the fundamental waveform of these input signals. Each of the input signal of the fundamental waveform is applied to maximum peak detector (MAX) 4 and minimum peak detector (MIN) 5. Low-pass filter 3 is designed so that, as shown in Fig. 5, the cut-off frequency is set at 4f, four times the frequency f of the vibration of the open string of each string, viz., when each string is picked without the fret operation. Such selection of the cutoff frequency is due to the fact that the guitar has generally frets of about two octaves. Each of themaximum peak detectors 4 detects the maximum peak points of the input signal. The pulse signals representing the peak detections are used as interrupt command signals INTa1 to INTa6, and transferred toCPU 6.Minimum peak detectors 5 detect each the minimum peak point of the input signal. The pulse signals representative of peak detections are transferred toCPU 6 in the form of interrupt command signals INTb1 to INTb6. - When
CPU 6 receives the interrupt command signals INTa1 to INTa6 representing the maximum peak points detections appearing immediately after the interrupt command signals INTb1 to INTb6 representing the minimum peak points detections,CPU 6 calculates a count difference between the present maximum peak points and those previously obtained in a similar way. WhenCPU 6 receives the interrupt command signals INTb1 to INTb6 appearing immediately after the interrupt command signals INTa1 to INTa6,CPU 6 similarly obtains a count difference between the minimum peak points and those previously obtained in a similar way. Every time both the command signals INT are applied to counter 7, the counts ofcounter 7 are stored into in-maximum memory 14 and in-minimum memory 15, respectively. - The time count data representative of the difference of the counts as counted by
counter 7 is transferred byCPU 6, directly or after it is converted into a pitch code, tofrequency ROM 8. The frequency data representing a frequency whose period is defined by this count data, is read out, and transferred to soundsource circuit 9.Sound source circuit 9 forms a musical tone signal based on the frequency data. Receiving this signal,sound system 10 sounds the musical tone. Thesound source circuit 9 may be set inside or outside the guitar main frame. - Six musical tone signals from low-
pass filters 3 are transferred through transfer gates T to A/D converter 11. The A/D converter 11 converts these signals into digital data based on the waveform levels. The digital data is applied toCPU 6. When the absolute values of the waveform level data exceeds a predetermined level,CPU 6 sends the data as obtained from the count ofcounter 7, tofrequency ROM 8, to start the sounding. When the absolute values are below the predetermined value,CPU 6 terminates the sending of the data tofrequency ROM 8, to stop the sounding. The waveform level data is also applied to soundsource circuit 9 to control the musical tone sounding level. This indicates that the volume is controllable according to the touch force to the string. - Staggered channel timing signals t1 to t6 are applied to the transfer gates T, so that the sounding levels of the six musical tone signals for the six strings of the guitar are performed in a time-sharing manner. Concurrently, six channel musical tone generating systems are formed in
sound source circuit 9, in a time-sharing manner. - A circuit configuration of
maximum peak detector 4 is illustrated in Fig. 2. As shown, the musical tone signal is derived from low-pass filter 3, and input to the + terminal ofoperational amplifier 12. The output terminal ofoperational amplifier 12 is coupled with the anode of diode D1. The cathode of diode D1 is grounded through parallel arranged capacitor C and resistor R1. The cathode of diode D1 is also coupled with the - terminal ofoperational amplifier 12. The output signal ofoperational amplifier 12 is output through resistor R2 and operational amplifier 13, as interrupt command signals INTa1 to INTa6, which are representative of maximum peak detections. - When a signal with a waveform as shown in Fig. 4a is applied to the + terminal of
operational amplifier 12, the capacitor C is charged when the signal waveform rises, and discharged when it falls. In turn, the signal with a waveform as shown in Fig. 4b is applied to the - terminal ofoperational amplifier 12. Only when the waveform rises, theoperational amplifier 12 produces a difference between the signal levels at the + and - terminals. This signal is output as interrupt command signal INTa shown in Fig. 4c. The interrupt processing starts at the trailing edge of the pulsative signal of Fig. 4c. - A specific configuration of
minimum peak detector 5 is shown in Fig. 3. The circuit configuration of thiscircuit 5 is substantially the same as that of themaximum peak detector 4 as mentioned above, except for the connection of diode D2 being opposite. Accordingly, capacitor C repeats the charge/discharge in the opposite directions as shown in Fig. 4d. Finally, the interrupt command signal INTb as shown in Fig. 4e is obtained. - The operation of the above-mentioned first embodiment of the present invention will be described.
- Upon power on,
CPU 6 starts a main routine as illustrated in Fig. 6. In step A1,CPU 6 initializes the related circuits in the electronic musical instrument of the embodiment. In step A2, it fetches the value of A/D converter 11.CPU 6 continues the note off processing unless the signal from theconverter 11 exceeds a predetermined level. See step A3 and A4. If a player picks the guitar string, a musical tone signal at a level larger than the predetermined level as shown in Fig. 9 is input to A/D converter 11 (step A3),CPU 6 advances to step A5 where it executes the frequency control processing. The frequency control processing is a musical tone sounding processing in which the data fromcounter 7 is directly applied tofrequency ROM 8 or the pitch code as indicated by the fret number extracted on the basis of that data is applied tofrequency ROM 8. So long as the musical tone level is above the predetermined level,CPU 6 continues this sounding processing (steps A2, A3 and A5). The count data ofcounter 7 is set through the interrupt processing as given later. - Let us consider now that the waveform of the musical tone signal rises and reaches the first maximum peak point denoted as MAX1 in Fig. 9. At the maximum peak point,
maximum peak detector 4 produces interrupt command signal INTa representing the maximum peak point detection, and applies it toCPU 6. In response to this signal,CPU 6 starts the interrupt processing shown in Fig. 7.CPU 6 fetches the count ofcounter 7 in step B1. In step B2, the CPU checks whether or not the waveform having the detected maximum peak point is the first wave. Since it is now immediately after the tone waveform rises, that waveform is the first wave. The CPU advances to step B5 to set flag "1", and further to set in in-maximum memory 14 the count ofcounter 7 as fetched in step B1. "1 " of flag indicates that the maximum peak point has been detected. The cleared flag "0" indicates that the minimum peak point has been detected. - It is assumed that the waveform level reaches the second maximum peak point denoted as MAX2 in Fig. 9. At the maximum peak point, maximum
peak point detector 4 applies interrupt command signal INTa indicating the maximum peak detection toCPU 6. Then,CPU 6 starts the interrupt processing shown in Fig. 7, again.CPU 6 fetches the count ofcounter 7, and checks if the present waveform is the first wave (step B2). Since the present wave is not the first one, the CPU advances to step B3, and checks if the flag is "0". Since the flag is "1 " at the first maximum peak point MAX1, the CPU terminates the present processing, without executing the period computing processing for obtaining the frequency data. - In this way, the frequency data is not mistakenly obtained, whose one period is the difference between the count data at the maximum peak points MAX1 and MAX2, and the time count at the maximum peak point MAX1 is left stored in in-maximum memory 14.
- When the minimum peak point MIN is reached (Fig. 9),
minimum peak detector 5 produces interrupt command signal INTb representing the minimum peak point detection, and applies it toCPU 6. Upon receipt of this,CPU 6 starts the interrupt processing shown in Fig. 8. In step C1,CPU 6 fetches the count ofcounter 7, and check if the waveform at the minimum peak point is the first wave (step C2). In this instance, the waveform is the first waveform, and thenCPU 6 proceeds to step C5. In this step, the flag is cleared to be "0", and sets in in-minimum memory 15 the count ofcounter 7, which has been fetched in step C1. - The judging processes in step B2 is performed in the following way. When the waveform level data derived from A/
D converter 11 exceeds a predetermined level, the first wave flag "1 " is set. When interrupt command signal INTb for minimum peak detection is then applied to the CPU, the first wave flag is cleared to "0". In steps B2 and C2, theCPU 6 checks whether or not the wave flag is set. - When the input signal waveform increases to reach the maximum peak point MAX1,
maximum peak detector 4 applies interrupt signal INTa representing the maximum peak point detection toCPU 6.CPU 6 fetches the count ofcounter 7 in step B1, and confirms in step B2 that the waveform at the maximum peak point MAX1 is not the first wave, and checks if the flag is "0" in step B3. Since the flag is "0" at the minimum peak point MIN immediately before the maximum point MAX1,CPU 6 advances step B4, and in this step reads out the time count data from in-maximum memory 14, and subtracts it from the this-time count data as has been read out in step B1, and finally obtains the data of the subtraction result. As a result, in step A5,CPU 6 applies the subtraction result data tofrequency ROM 8, and controls the system of the musical instrument so that it produces a musical tone with the frequency whose period ranges from the maximum peak point MAX1 to the next maximum peak point MAX1. Following the above processing,CPU 6 sets the flag to "1", and sets the this-time time count data into in-maximum memory 14 (step B5). - In steps C5 and B3,
CPU 6 checks the maximum peak point following the minimum peak point, and measures the time interval between the maximum peak points. In step B4, the period calculation is progressively executed. - Therefore, if the input signal waveform contains two maximum peak points MAX1 and MAX2 successively, only the time interval between two positive peak points MAX1 and MAX1 is used to determine the sounding frequency. The time interval between the successive maximum peak points MAX1 and MAX2 is never used for the same purpose.
- When the input signal waveform reaches to the minimum peak point MIN,
minimum peak detector 5 applies interrupt signal INTb representing the minimum peak point detection toCPU 6.CPU 6 fetches the count ofcounter 7 in step C1, and confirms in step C2 that the waveform at the minimum peak point MIN is not the first wave, and checks if the flag is "1 " in step C3. Since the flag is "1 " at the maximum peak point MAX1,CPU 6 advances step C4, and in this step reads out the time count data from in-minimum memory 15, and subtracts it from the this-time count data as has been read out in step C1, and finally obtains the data of the subtraction result. According to the result data,CPU 6 reads out fromROM 8 the frequency data to give a musical tone at the frequency whose period ranges between the previous and current minimum peak points MIN and MIN. Following step C4,CPU 6 clears the flag to "0", and sets this-time count data into in-minimum memory 15 (step C5). - In this way, the time count of one period of the minimum peak points MIN is obtained and the frequency data is output. When a plurality of minimum peak points continuously appear without crossing the zero level, as in the previous case of the maximum peak points MAX1 and MAX2,
CPU 6 picks up the minimum peak point following the maximum peak point in steps B5 and C3, measures the time interval between such minimum peak points. In this way, an exact period computation is performed in step C4. - As described above, on the basis of the time count data computed in steps B4 and C4, the corresponding frequency data is output from
frequency ROM 8 in step A5. As a result, the frequency is changed two times (MAX1-MAX1 and MIN-MIN) during one period. This implies that the system of the musical instrument can quickly respond to the frequency variation of the input signal. - To stabilize the frequency, the previous time count data is stored into the memory in step A5, and the this-time time count data and the previous one are averaged. If the previous time data is greater than the this-time data by, for example, 20% or more, the previous data is output.
- A second embodiment of the present invention will be described. A new pitch extraction system will be discussed in the second embodiment. In the pitch extraction system, the maximum and/or minimum peaks of the waveform of a musical tone, i.e., an input signal, are first detected. Then, zero-cross points immediately after the maximum or minimum peaks are detected. A time interval between the detected zero-cross points is obtained. Finally, the pitch of the input signal wave-form is obtained using the time interval.
- More specifically, the time interval (t1) between the zero-cross points first appearing respectively after the maximum peaks are detected, or the time interval (t2) between the zero-cross points first appearing after the the minimum peaks are detected, is detected. The detected time interval or intervals are used for the pitch extraction. The pitch extraction is exact with a simple construction.
- An arrangement of the second embodiment of the present invention will be described referring to Figs. 10 to 15. In those figures, like symbols are used for designating like or equivalent portions in those of the first embodiment.
- Reference is made to Figs. 10 and 12 illustrating an overall circuit arrangement of the second embodiment. Each
maximum peak detectors 4 detects the maximum peak point of an input signal waveform. At the trailing edge of the detected pulse signal, flip-flop (FF) 214 located at the post stage of eachdetector 4 outputs the Q output at high level. The output signal ofFF 214 and the inverted output ofinverter 230 coupled with zero-cross point detector 206 are applied to ANDgate 224. The output signal from ANDgate 224 is applied as interrupt signal INTan (where n is any of 1 to 6 figures) to CPU 200. - Similarly, each
minimum peak detectors 5 detects the minimum peak point of an input signal waveform. At the leading edge of the detected pulse signal, flip-flop (FF) 215 located at the post stage of eachdetector 5 outputs the Q output at high level. The output signal ofFF 215 and the inverted output ofinverter 230 coupled with zero-cross point detector 206 are applied to ANDgate 225. The output signal from ANDgate 225 is applied as interrupt signal INTbn (where n is any of 1 to 6 figures) to CPU 200. - Thus, when the maximum peak point is detected and
FF 214 is logical high at the Q output, if the waveform crosses the zero level from the positive domain to the negative domain, interrupt signal INTan is applied to CPU 200. When the minimum peak point is detected andFF 215 is logical high at the Q output, if the waveform crosses the zero level from the negative domain to the positive domain, interrupt signal INTbn is applied to CPU 200. - Immediately after receiving the interrupt signal INTan or INTbn, CPU 200 applies clear signal CLan (where n is any of 1 to 6) or CLbn to FF214 or 215. In turn, the corresponding FF is reset. Accordingly, until the next maximum or minimum peak point is detected, even if the waveform crosses the zero level any number of times, the corresponding FF remains reset, and therefore CPU 200 is never interrupted.
- When CPU 200 receives interrupt signal INTan for the zero-cross point encountered immediately after the maximum peak point is detected, CPU 200 computes a difference between the present count of
counter 7 and that ofcounter 7 as the waveform previously crosses the zero level immediately after the maximum peak point. Similarly, when interrupt signal INTbn is generated, CPU 200 computes a difference between the present count ofcounter 7 and that ofcounter 7 as the waveform previously crosses the zero level immediately after the minimum peak point. Every time interrupt signals INTan and INTbn are generated, CPU 200 stores the counts ofcounter 7 into in-maximum memory 201 and in-minimum memory 202, respectively. The time count data as the count difference is transferred from CPU 200 tofrequency ROM 8, directly or after it is converted into a key code. The frequency data with one period of the counter data is read out, and sent to soundsource circuit 9, where a musical tone signal is generated.Sound system 10 receives this and starts the sounding of the musical tone. - The arrangement of zero-
cross point detector 206 will be described. In Fig. 12 illustrating a specific circuit arrangement of zero-cross point detector 206, the musical tone signal derived from low-pass filter 3 is applied to the + terminal of operational amplifier 206-1. The - terminal of the operational amplifier is grounded. The output signal of operational amplifier 206-1 is output by way of resistor R5 and another operational amplifier 206-2. For a positive input signal, operational amplifier 206-2 outputs a logical high signal. For a negative input signal, amplifier 206-2 outputs a logical low signal. This indicates that every time the waveform of the signal signal, i.e., musical tone, crosses the zero level, the logical level at the output of the operational amplifier 206-2 is inverted. - The operation of the second embodiment of the present invention will be described.
- The main routine used in this embodiment is the same as that of Fig. 6, and hence it is not described here. The description of operation will be given in connection with the interrupt routines.
- A player picks one of strings of the guitar, and a musical tone with a waveform as shown in Fig. 13(a) is generated. The musical tone waveform varies and ascends to reach a maximum peak point MAX1. At this time,
maximum peak detector 4 generate a signal as shown in Fig. 13(b). This signals renders the output ofFF 214 high in logical level (Fig. 13(e)). At the zero-cross point Zero 1 (Fig. 13(c)), the zero-cross point detection output of zero-cross point detector 206 is inverted (Fig. 13-(c)). At this time, ANDgate 224 applies interrupt signal INTa to CPU 200. Upon receipt of this signal, CPU 200 starts the interrupt processing. - The interrupt routine is the same as that of Fig. 7 illustrated in connection with the first embodiment, except for step B10. Hence, the interrupt routine will be described in brief.
- CPU 200
resets FF 214 in step B10, and reads in the count ofcounter 7, and checks if the present wave of the input signal waveform is the first wave in step B2. Since the musical tone waveform has been just risen and therefore the present waveform is the first wave, CPU 200 advances to step B5 and sets flag to "1", and sets the count ofcounter 7 as read out in step B1 into in-maximum memory 201. When the input signal with the waveform as shown in Fig. 13(a) is input to the musical instrument, zero-cross point detector 6 produces the inverted output signal as shown in Fig. 13(c) every time the zero-cross points Zero 2 andZero 3 are successively detected. - At this time, however,
FF 214 has been reset in step B10, and no interrupt signal INTb is produced. - When the minimum peak point MIN1 shown in Fig. 13(a) is reached,
minimum peak detector 5 produces a peak detection signal, and setsFF 215 by the signal. At the next zero-cross point (Zero 4), the output signal of zero-cross point detector 206 is inverted, and ANDgate 225 applies interrupt signal INTb to CPU 200. CPU 200 starts the interrupt processing shown in Fig. 15. - This interrupt routine of Fig. 15 is also substantially the same as that of Fig. 8, except step C10. This routine will be described in brief. CPU 200
resets FF 215 in step C10, fetches the count ofcounter 7, and checks if the present wave of the waveform is the first wave in step C2. The wave containing the zero-cross point succeeding to the minimum peak point is the first wave. Then, CPU 200 advances to step C5 and clears the flag to "0", and stores the count ofcounter 7 as read out in step C10 into in-minimum memory 202. - When the zero-cross point (Zero 5) succeeding to the maximum peak point MAX2 shown in Fig. 13(a) is reached, interrupt signal INTa for the detection of the zero-cross point following the maximum peak point is generated, and CPU 200 fetches the count of
counter 7 in step B10. In step B2, if the CPU confirms that the present wave is not the first wave. Then, in step B3, the CPU checks if the flag is "0". Since the flag has been cleared to "0" at the zero-cross point (Zero 4) immediately after the previous minimum peak point MIN1, CPU 200 advances to step B4, and reads out the time count data, which has been saved into in-maximum memory 201 at the zero-cross point (Zero 1) immediately after the maximum peak point MAX1 one period before, and subtracts the time count data read out this time from that read out in step B1, to have the subtraction result data. As a result, in step A5 of the main routine, the resultant data is applied tofrequency ROM 8, and the musical instrument is controlled so as to sound the musical tone at the frequency whose period ranges from the zero-cross point (Zero 1) to the zero-cross point (Zero 5). Succeeding to this processing, CPU 200 sets the flag "1", and sets the this-time time count data into in-maximum memory 201 (step B5). - In this way, the zero-cross point immediately after the maximum peak point is checked in steps C5 and B3 and the time interval (t1) only between these zero-cross points is measured, and the period calculation is performed in step B4.
- Similarly, the zero-cross points (Zero 6 and Zero 7) are ignored. In response to input signal as the interrupt signal INTb, which is generated upon detection of the zero-cross point (Zero 8) immediately after the minimum peak point detection, CPU 200 the routine of Fig. 15. The time interval (t2) from the previous zero-cross point (Zero 4) to the present zero-cross point (Zero 8) is used as the pitch data.
- Thus, the time interval (t1), i.e., Zero 1 -
Zero 5, between the zero-cross points immediately after the maximum detection points, and the time interval (t2), i.e., Zero 4 -Zero 8, between the zero-cross points immediate after the minimum point detections, are obtained. In other words, the frequency change is performed two times during one period in the same manner as in the first embodiment. Therefore, the musical instrument can quickly respond to the frequency change of the input signal. - As described above, in the musical instrument of this embodiment, if the waveform as shown in Fig. 16(a) is input, the zero-
cross points Zero 12 and Zero 14 are ignored with the function of the flag in the Fig. 15 flow. - More specifically, if the signals for zero-
cross points Zero 12 and Zero 14 come in as the interrupt signal INTa, the flag has been set to "1 when these signals arrive (step B5), and therefore, the answer to step B3 is NO, and hence no period calculation is performed. In this way, the zero-cross points are successively detected after the maximum peaks are detected, these are ignored by the flag, removing the effects by the harmonics. - To stabilize the frequency, in step A5, the previous time count data is stored into the memory, and the this-time time count data and the previous one are averaged. If the previous time data is greater than that of this-time by, for example, 20% or more, the previous data is output. The period calculations based on the zero-cross point detection immediately after the maximum and minimum peak points detections, may be selectively performed in a manner that the period calculation based on the zero-cross point immediately after the maximum peak point detection is executed for the waveform which rises at the start point and that based on the zero-cross point immediately after the minimum peak point detection is executed for the waveform which falls at the start point. Such arrangement provides a quick response at the start of the sounding.
- As described above, in the embodiment as mentioned above,
CPU 6 can execute an appropriate processing as the step A5 processing shown in Fig. 6. The selection of the appropriate processing can be made by modifying the program forCPU 6, and not requiring any modification of the hardware, i.e., the external circuit ofCPU 6. Therefore, the musical instrument of this embodiment is excellent in flexibility of use, and can easily be designed so as to have so-called intelligent functions. - In the second embodiment, the time intervals (t1) and (t2) respectively between the zero-cross points immediately after the maximum and minimum peak points are both obtained, but the musical instrument is operable with satisfactory performances, if one of them is used. If so done, the combination of
maximum peak detector 4,FF 214, ANDgate 224 andinverter 230 or the combination ofmaximum peak detector 5,FF 215, and ANDgate 225 may be omitted, simplifying the circuit amplification of the musical instrument. - While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As seen from the foregoing description, there is provided an musical instrument of the type in which the frequency of a natural sound signal is detected, and the detected frequency signals are subjected to an appropriate digital data processing for artificial sound generation. In the musical instrument, the time interval (t1) between the zero-cross points immediately after the successive maximum peak points and the time interval (t2) immediately after the successive zero-cross points are detected. The time interval or intervals are appropriately processed for pitch extraction. With this feature, the frequency data can be obtained more exactly and speedy. Further, a flexible design of this instrument is allowed.
- In the second embodiment, the time intervals (t1) and (t2) respectively between the zero-cross points immediately after the maximum and minimum peak points, are both obtained, but the musical instrument is operable with satisfactory performances, if one of them is used. If so done, the combination of
maximum peak detector 4,FF 214, ANDgate 224 andinverter 230 or the combination ofmaximum peak detector 5,FF 215, and ANDgate 225 may be omitted, simplifying the circuit amplification of the musical instrument. - A third embodiment of an electronic guitar according to the present invention will be described referring to Figs. 17 to 20. The second embodiment provides the improvements of the time, i.e., the response time, which is required from the inputting of an input signal waveform till the electronic guitar starts the sounding of the input musical tone, thereby to eliminate the unnatural feeling of sounded musical tones.
- To attain the improvements, the electronic guitar of the second embodiment detects the inputting of an input signal, and gives a command to first generate a musical tone at a predetermined pitch, extracts the pitch of the input signal waveform by a pitch extracting means, and gives a command to change the pitch of the musical tone to the pitch of the input signal waveform.
- More specifically, in the case of the electronic guitar, it is preferable to use for the predetermined pitch, the pitch of a musical tone generated from the open string, i.e., when the string is picked without touching the fret. For other types of musical instruments, the pitch of a low pitched sound is preferably used for the reference pitch, or the predetermined pitch.
- Before pitch extraction, a musical tone is generated at a predetermined pitch, and after the pitch extraction, the pitch of the musical tone is changed to the extracted pitch. In this case, if the frequency of the first generated musical tone can be discriminated by human, he hears it with very unnatural feelings. In this respect, the first generated musical tone must be selected to be within one wave length (one period). A low pitched sound should be first output.
- The arrangement of the third embodiment is substantially the same as that of the second embodiment illustrated in Figs. 10 and 11. Only the difference of the third embodiment from the second embodiment resides in the processings executed by CPU 200. Hence, the description will be given emphasizing on the operation of the guitar system.
- A main routine executed by CPU 200 is shown in Fig. 17. The main routine is constructed on the basis of the idea substantially equal to that of the first embodiment (Fig. 6). Only the difference of it will be described with different symbols used.
- In step A1, the system of the electronic guitar is initialized. In step A12, CPU 200 fetches the contents of A/
D converter 11 as the first string output signal. In step A13, the CPU checks if the level of the input signal waveform exceeds a predetermined level. If it is below the predetermined level, the CPU executes the note-off processing in steps A14 and A15. - The musical tones from the second to sixth strings are processed in similar ways (steps A22 to A25, A32 to A35, A42 to A45, A52 to A55, and A62 to A65). The illustration contains the processings of the musical tones from the first and sixth strings only. The first string is picked to generate a musical tone with a waveform as shown in Fig. 18(a). The musical tone is picked up and applied to A/
D converter 11. Upon receipt of the output of the converter, CPU 200 jumps from step A13 to step A16. In step A16, the rise flag of the first string is set to "1". In this case, the sounding is not done, and then the CPU executes steps A14 and A15, and enters the processings of the next string. - When other strings are picked, it is evident that the following processings are executed: A23 - A26 - A24 - A25, A33 - A26 - A34 - A35, A43 - A46 - A44 - A45, A53 - A56 - A54 - A55, A63 → A66 → A64 - A65.
- As will be seen later, the above processing is repeated until either of interrupt signals INTan and INTbn (where n is any of 1 to 6) is first applied. When the waveform rises as shown in Fig. 18(a), the interrupt signal first applied to CPU 200, is the interrupt command INTan. When the waveform falls, i.e., from zero level to the negative side, interrupt signal INTbn is applied to CPU 200.
- As the first interrupt signal INTan or INTbn is applied to CPU 200, the CPU issues a command to generate a musical tone based on the frequency of the open string. Subsequently, the CPU executes steps A13 (A23, A33, A43, A53, A63), A14 (A24, A34, A44, A54, A64) and A17 (A27, A37, A47, A57, A67) in this order. Then, the pitch is extracted, and step A17 controls the frequency on the basis of the extracted pitch.
- To generate a musical tone at the pitch of the open string or the extracted true pitch, CPU 200 supplies a control signal to
frequency ROM 8. So long as the input signal is above a predetermined level, a sequence of procedural steps A12 -" A13 - A14 → A17 (A22 → A23 - A24 - A27, A32 - A33 - A34 - A37, A42 - A43 - A44 - A47, A52 - A53 - A54 - A57, A62 - A63 - A64 - A67) is repeated. If it is below the predetermined level, CPU 200 executes the step A15 (A25, A35, A45, A55, A65) processing, and stops the sounding. - The operation of the electronic guitar, when a string is picked, will be described in detail. When the musical tone waveform rises upon the string picking, the waveform level reaches the first maximum peak point MAX1 in Fig. 18(a),
maximum peak detector 4 produces a signal as shown in Fig. 18(b).FF 214 output goes high (Fig. 18(d)). The output signal from zero-cross point detector 206 is inverted at the zero-cross point Zero 1 (Fig. 18(c)). ANDgate 24 applies interrupt signal INTan to CPU 200. CPU 200 starts the execution of the interrupt routine Fig. 19. - This routine is similar to those of Figs. 7 and 13. CPU 200
resets FF 214 in step B301, reads in the count ofcounter 7, and in step B302 checks if the rise flag is 1. Since the waveform has just risen, and the present wave of the waveform is the first wave, the CPU advances to step B303 (see steps A16 (A26, A36, A46, A56, A66), and in this step executes the processing of starting the sounding at the note by the open string. In step B304, the rise flag is cleared, and the CPU proceeds to step B305 where it sets the control flag to "1". Then, the CPU saves into in-maximum memory 201 thecounter 7 count as read out in step 301. The control flag "1" indicates that the zero-cross point after the maximum peak point has been detected. The cleared flag indicates the detection of the minimum peak point. The function of this control flag will be discussed later. - When the guitar system receives the waveform as shown in Fig. 18(a), every time the zero-cross points Zero 2 and
Zero 3 are successively detected, zero-cross point detector 6 produces inverted signals as shown in Fig. 18(c). - At this time, however, the output of
FF 214 has been reset (step B301) and the CPU produces interrupt signal INTa. Of course,FF 215 also remains set, and no interrupt signal INTb is produced. - When the minimum peak point MIN1 shown in Fig. 18(a) is then reached,
minimum peak detector 5 produces a peak detect signal, to setFF 215. At the zero-cross point Zero 4, the output of zero-cross point detector 5 is inverted, so that AND gate 22 applies interrupt signal INTb to CPU 200. Upon receipt of this, CPU 200 starts the interrupt processing shown in Fig. 20. This routine is also similar to those of Figs. 8 and 14. In step C301, CPU 200resets FF 215, and reads in thecounter 7 count, and checks if the present wave first rises or falls. In other words, the CPU checks if the rise flag is "1 " in step C302. - At this time, the waveform has risen, and the musical tone signal has been input to the guitar system. Therefore, in step B304 (Fig. 19), the rise flag has been cleared. The result of the check in step 302 is NO.
- The CPU advances to step C306. In step C306, the CPU checks if the control flag within it is "1". In step B305 in Fig. 19, the flag has been set to "1 ", and the answer "YES" is given. Then, the CPU advances to step C307.
- In step C307, the CPU checks if the note now sounding is that by the open string at the start of sounding, as described above. As seen from Figs. 18(f) and 18(g), the sound at the note of the open string is output when the zero-cross point is detected, and then the answer "YES" is given, and the CPU goes to step C305. In this step C305, the control flag is set to "0", and saves the count of
counter 7 into in-minimum memory 202. - The judgement in step C307 can be attained by providing such a flag in CPU 200 that is turned on during the period of time from the generation of the musical tone of the open string to the arrival of the next interrupt signal INT, and is turned off in other periods of time. The arrival time of the next interrupt signal INT is more exactly the time when the next interrupt signal INTan (where n is any of "1 " to 6) arrives when the input waveform rises, and the time when the next interrupt signal INTbn (n is any of 1 to 6) arrives when the input waveform falls. In the example shown in Fig. 9, it is the timing of zero-
cross point Zero 5. - In the case of the input waveform as shown in Fig. 18(a), when the zero-
cross point Zero 5 following the next maximum peak point MAX2 is reached, interrupt signal INTa for the detection of zero-cross point after the maximum peak point is applied to CPU 200 (Fig. 18(e), CPU 200resets FF 214 in step B301, and reads in the count ofcounter 7, and checks if the present wave of the waveform is not the first wave in step B302. Further, the CPU checks if the control flag is "0" in step b306. This control flag has been set to "0" at zero-cross point Zero 4 after the previous minimum peak point MIN1 (step C305 in Fig. 19). CPU 200 advances to step B307 and provides the answer "NO", and in step B308 reads out the time count data as set to in-maximum memory 201 at the zero-cross point Zero 1 immediate after the maximum peak point MAX1 before one period, and subtracts it from the this-time time count data as read out in step B301. As a result, in step A17 (or A27, A37, A47, A57, A67) shown in Fig. 17, which follows the Fig. 19 interrupt processing, the subtraction result data is applied tofrequency ROM 8. At this time, under control of the CPU, the electronic guitar sounds with the musical tone at the frequency whose one period (t1 in Fig. 18(e) ranges from the zero-cross point Zero 1 to the zero-cross point Zero 5. In step B305 of the interrupt processing, CPU 200 sets the control flag to "1", and saves the this-time time count data into in-maximum memory 201. - In this way, in steps C305 and B306, the zero-cross points respectively immediately after the maximum peak points are checked, and the time interval (t1) between the zero-cross points is measured, and in step B308 the period calculation is performed.
- Similarly, the zero-cross points Zero 6 and
Zero 7 are ignored, and CPU 200 executes the routine of Fig. 20 in response to the interrupt signal INTb from AND gate 22 as generated upon detection of the zero-cross point Zero 8 immediately after the minimum peak detection. At this time, the time interval (t2) from the previous zero-cross point Zero 4 to the this-time zero-cross point Zero 8, is the pitch extraction data. This processing is performed in the order of steps C301 - C302 - C306 C307 C308 - C305. - Accordingly, in this embodiment, the musical tone at the note of this string, when it is in the open string, is generated at the generation of the first interrupt signal INTa for waveform rise or INTb for waveform fall. After the next interrupt signal, which is of the same type, two types of time intervals are obtained, and the frequency change is performed two times during one period. One of the two types of the intervals is the time interval (t1) between the zero-cross points, i.e.,
Zero 1 andZero 5, immediately after the maximum peak values are detected. The other is the time interval (t2) between the zero-cross points, i.e.,Zero 4 toZero 8, generated immediately after the minimum peak values are detected. Therefore, the musical tone can quickly be output in response to the generation of the input signal. Subsequently, if the pitch is extracted, the operation of the electronic guitar follows up a frequency change of the input signal by setting the sounding note based on the extracted pitch. - In this embodiment, if the waveform as shown in Fig. 16 is input with the function of the control flag in the control flag shown in Fig. 20, the zero-
cross points 12 and 14 are ignored. This operation is as described referring to Fig. 16 in the description of the second embodiment, and hence no further description will be given. - To stabilize the frequency, in step A17 (A27, A37, A47, A57, A67), the time count data previously stored and the this-time time count data are averaged and the averaged data is output. Alternatively, when the previous data is greater than that of the this time data by, for example, 20% or more, the previous data is output. The period calculations based on the zero-cross point detection immediately after the maximum and minimum peak points detections, may be selectively performed in a manner that the period calculation (i.e., only t1 is obtained) based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which rises at the start point, and that (i.e., only t2 is obtained) based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which falls at the start point.
- As described above, in the third embodiment as mentioned above,
CPU 6 can execute an appropriate processing as the step A17 (A27, A37, A47, A57, A67) shown in Fig. 17. The selection of the appropriate processing can be made by modifying the program forCPU 6, and not requiring any modification of the hardware, i.e., the external circuit ofCPU 6. Therefore, the musical instrument of this embodiment is excellent in flexibility of use, and can easily be designed so as to have intelligent functions. - In the third embodiment, the time intervals (t1) and (t2) respectively between the zero-cross points immediately after the maximum and minimum peak points, are both obtained, but musical instrument is operable with satisfactory performances, if one of them is used. If so done, the combination of
maximum peak detector 4,FF 214, ANDgate 224 andinverter 230 or the combination ofmaximum peak detector 5,FF 215, and ANDgate 225 may be omitted, simplifying the Circuit arrangement of the musical instrument, i.e., electronic guitar. - In the above-mentioned embodiment, CPU 200 controls the system of the electronic guitar, so that the actual sounding of the musical tone is started in step B303 in Fig. 19 or step C303 in Fig. 20. Alternatively, the sounding may be started in a sequence of the processings in Fig. 17 as the main flow, after the interrupt processing is completed.
- Also in the third embodiment, the period calculation is performed in the step B308 in Fig. 19, and in the step C308 in Fig. 20. The control of the musical tone frequency change, which is based on the period calculation, is executed in step A17 (A27, A37, A47, A57, A67). If necessary, this processing can be made during each interrupt processing.
- In the third embodiment, the frequency change is made until the first one wave of the note sound of the open string is completed, as shown in Fig. 18(g). Therefore, the actual tone frequency can be obtained before the player feels the periodicity (i.e., the frequency or pitch) of the output sound at the early stage of sounding. The sounding start is possible at early timing, and the player hear the sound with natural feeling of sound at the time of sounding start.
- To quicken the response, when CPU 200 detects the string vibration before the maximum peak value MAX1 in Fig. 18(a), that is, CPU 200 detects that A/
D converter 11 outputs a signal at an amplitude larger than a predetermined level, the CPU applies a sounding start command of the open string note tofrequency ROM 8 and soundsource circuit 9 in the processing to set the rise flag to "1 (steps A13 and A16, A23 and A26, A33 and A36, A43 and A46, A53 and A56, A63 and A66). - While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- In case that, before the pitch extraction, the musical tone is generated at a predetermined pitch by using any of such various types of musical instruments, and after the pitch extraction, the musical tone is changed to have the pitch, if a player hear the musical tone and can distinguish the frequencies one from the other, he feels something unnatural. In this respect, the musical sound first output must be in length within one wave length (period), and it is desired that the musical tone at low pitch is first output.
- It should be understood that any suitable measure may be employed for the pitch extraction. In the above-mentioned embodiment, either of the two time intervals (t1) and (t2) is used for the pitch extraction. As recalled, the time interval (t1) is between the zero-cross points first appearing after the maximum peak values of the input waveform. The time interval (t2) is between the zero-cross points first appearing after the minimum peak values of the input waveform. Another possible pitch extraction is to compare the time interval (T1) between two adjacent maximum peak values of the input waveform with the time interval (T2) between two adjacent minimum peak points. A further possible pitch extraction is to use the time interval between the two adjacent zero-cross points. An additional pitch extraction is to use the auto-correlation function or other suitable function of the period calculation.
- As described above, when the inputting of the input signal is detected, a musical tone is first generated at a predetermined pitch. After this, the pitch of the musical tone is extracted, the frequency of the musical tone is changed to the extracted pitch, and then the musical tone is sounded. Therefore, the response time of the electronic guitar, which ranges from the inputting of an input signal of musical tone till it is sounded, can be reduced. Electronic guitars, which are free from any unnatural sound feeling, can be provided.
- A fourth embodiment of an electronic guitar according to this embodiment will be described referring to Figs. 21 to 27.
- The electronic guitar of this embodiment is improved in that the time from the inputting of an input signal waveform till the generation of an actual acoustic sound is shortened to have a good response for eliminating unnatural feelings of sounded musical tones.
- The fourth embodiment is based on the fact that three items of distinctive period information exist between two periods of the input signal waveform. Within the time interval of less than two periods of the input signal waveform, two periods of the waveform are detected. If the detected two periods are almost equal to each other a controller issues a command to start the sounding.
- More specifically, the two periods are detected by detecting the time interval t1 between the zero-cross points each first appearing after the maximum peak of the input signal waveform is detected, and by detecting the time interval t2 between the zero-cross points first appearing after the minimum peak point of the input signal waveform is detected.
- Alternatively, the two periods are detected by detecting the time interval T1 between the maximum peak points of the input signal waveform and by detecting the time interval T2 between the minimum peak points of the same waveform.
- The above technical features reduces the time from the arrival of the input signal to the generation of artificial acoustic wave, providing attractive performance by the guitar.
- The fourth embodiment is configured like the second embodiment. For the configuration of this embodiment, reference is made to Figs. 10 and 11 of the second embodiment. Like or equivalent portions are designated by like reference numerals in Figs. 10 and 11, for simplicity.
- Six pitch extraction circuits P1 to P6 are used. A/
D converter 411 is contained in each pitch extraction circuit P1 to P6. The output signal ofFFs gate 413. In response to the signal from ORgate 413,latch 412 fetches the digital output of A/D converter 411. With such an arrangement, eachlatch 412 latches the maximum or minimum peak point of the input signal waveform, so thatCPU 400 can readily fetch these peak values. - The output signal of each OR
gate 413 is applied as each signal L1 to L6 toCPU 400. - Fig. 21 shows a main routine executed by
CPU 400. This routine is similar to those of early mentioned embodiments. The main routine illustrated is for processing the musical tone generated by one string of the guitar. This processing is correspondingly applied for other five strings. Actually,CPU 400 executes these routines in a time divisional manner.CPU 400 first executes step A401 to initialize the system of the electronic guitar. Following this,CPU 400 reads on the contents of A/D converter 411 in step A402. The CPU continues the tone-off processing of musical tone until the output level of A/D converter 41 reaches a predetermined level (steps A403, 404, and 405). If the guitar string is picked, and the musical tone signal above the predetermined level as shown in Fig. 23 is input to A/D converter 411 (step A403), the CPU advances to step A405. In this step, the CPU checks whether or not the already extracted time intervals t1 and t2 are equal. Since both the intervals are not yet detected, however, the answer in step A406 is NO, and the CPU returns to the original flow. As described later, when starting the sounding, the CPU advances to step A407 and starts the sounding of the musical tone at the pitch as determined by the time interval t1 (nearly equals t2). Subsequently, the CPU goes through the route of A403 - A404 - A408. In the step A408, the CPU executes the frequency control processing, i.e., the sounding processing to apply the data for designating the musical tone tofrequency ROM 8. This sounding processing is continued so long as the musical tone signal level is above the predetermined level (steps A402 - A403 - A404 - A408). When the output level A/D converter 411 is below the predetermined level, step A405 is executed and the sounding starts. - The operation of the electronic guitar, when a string of it is picked, will be described. A string is picked and the waveform of the musical tone as generated rises, and its level reaches the first maximum peak point MAX1 shown in Fig. 23(a).
Maximum peak detector 4 produces a signal as shown in Fig. 23(b). This signal sets the output ofFF 214 high (Fig. 23(d)). The zero-cross point detection output signal from zero-cross point detector 6 is inverted at the zero-cross point Zero 1 (see Figs. 23(a) and 23(c)). At this time interrupt signal INTan is transferred toCPU 400, from ANDgate 224. Upon receipt of this, the CPU starts the interrupt processing of Fig. 24. This processing is substantially the same as the interrupt processing of Fig. 14. The period obtained in the step B4 in the Fig. 24 routine is used as the interval t1. - When at the zero-cross point Zero 4 in Fig. 23-(a), interrupt signal INTbn is applied to
CPU 400, the CPU execute the Fig. 25 processing. The Fig. 25 interrupt processing is substantially the same as that of the Fig. 15 processing of the second embodiment. - In Fig. 23(a),
CPU 400 first obtains the period data t1 through the interrupt processing at the zero-cross point Zero 5, and obtains the period data t2 by the interrupt processing at the zero-cross point Zero 8. - Following the detection of this zero-
cross point Zero 8, the CPU returns to the main routine. In this routine, the CPU executes steps A403 and A406 in Fig. 22, successively. If the time data t1 and t2 are approximately equal, and the difference between them is within a tolerable range, the answer in step A406 is YES, and in step A407 the CPU causes the sound source circuit to start the sounding of musical tone at the frequency as defined by the time data t1 or t2 (see Fig. 23 (f)). - If the answer to the step A406 is NO, that is, when interval t1 between zero-cross points Zero 1 and
Zero 5 is not equal to the interval t2 between zero-cross points Zero 4 andZero 8, no sounding starts and the CPU waits for the next interrupt processing. Then, the CPU checks if the time interval t2 between thepoints Zero 4 andZero 8 is equal to the next time interval t1 ranging from zero-cross points Zero 5 to Zero 9 (Fig. 23(a)). This is made in step A406. If the check result is YES, the CPU advances to step A407 where it directs the start of sounding. - Subsequently, the CPU measures the time interval t1 between the zero-cross points immediately after the maximum peak point detection, and the time interval t2 immediately after the minimum peak point detection. The CPU executes the frequency change processings two times for one period, if necessary. Therefore, the guitar can respond to the frequency change of the input signal quickly.
- In this embodiment, with the flag function in the flows of Figs. 24 and 25, if the waveform as shown in Fig. 15 in the first embodiment is input, the zero-
cross points 12 and 14 are ignored. - In the above-mentioned embodiment, the waveform input is that of the type in which the waveform first rises, viz., the amplitude of the waveform increases from zero level to positive. The same operation can be obtained when the waveform first falling, or going from zero level to negative is input.
- Such an example is shown in Fig. 26. When the waveform as shown in Fig. 26(a) comes in, zero-
cross point detector 206 outputs a signal with a waveform as shown in Fig. 26(b). As a result, interrupt signal INTb is applied toCPU 400. At this time point, the Fig. 25 routine starts.Count 7 starts the counting of the time interval t2 (see zero-cross point Zero 21 in Fig. 26(a) then interrupt signal INTa is generated at the zero-cross point Zero 22 in the same figure. The CPU starts the processing of the Fig. 24 flow chart. At the next zero-cross point Zero 23, the first period calculation is completed to obtain interval t2. At the next zero-cross point Zero 24, time t1 is obtained (see Fig. 26(c)). - The CPU executes the Fig. 24 processing as the interrupt at zero-
cross point Zero 24. After completion of this processing, the CPU returns to the main flow of Fig. 22, and executes steps A403 and A406 in a successive manner. Step A406 is used for checking the intervals t2 and t1 fall within a time length within a tolerance (Fig. 26(c)). If the answer to this step is YES, the CPU advances to step A407 and give the command to generate a musical tone with the period of that time length tofrequency ROM 8 and sound source circuit 9 (Fig. 26(d)). - If the answer to step A406 is NO the CPU checks if the previous time interval t1 (between Zero 22 and Zero 24) is equal to the next interval t2 (ranging from zero-cross points Zero 22 to Zero 24), after about half period. If these intervals are approximately equal, the CPU executes the sounding start processing.
- Thus, even when the waveform falls, the sounding can be started during the period of time less than two periods (for a sine wave, it is 1.5 period).
- To stabilize the frequency, in step A408 in Fig. 22, after sounding is started, the time count data previously stored and the this-time time count data are averaged and the averaged data is output. Alternatively, when the difference between the previous data and the this time data is great, for example, 20% or more, the previous data is output. The period calculations based on the zero-cross point detection immediately after the maximum and minimum peak points detections, may be selectively performed in a manner that the period calculation based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which rises at the start point, and that based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which falls at the start point.
- As described above, the CPU may select an appropriate processing in the step A405 in Fig. 22. It is noted that this selection can be made by some modification of the software, and not modifying the external circuit of the CPU. Therefore, the musical instrument of this invention can be flexibly used.
- In the above-mentioned embodiment, the period of the waveform is calculated in step B4 in Fig. 24 and in step C4 in Fig. 25. The sounding control based on the calculated period and the musical tone frequency are performed in the step A407 or A408 in the main flow of Fig. 22. These processings may be performed in the interrupt processing (Figs. 24 and 25), if necessary. If so done, the response to the input signal is more quickened.
- A modification of the fourth embodiment will be described. An overall circuit configuration of the fourth embodiment is shown in Fig. 27. In the modification, the time intervals T1 and T2 respectively between the maximum and minimum peak points are detected. The sounding control is made on the basis of the detected time intervals.
- The output signals from a microphone and pick-ups are applied to input
terminals 1, and then to pitch extraction circuits P11 to P16. The specific configuration of each pitch extraction circuit P11 to P16 is as shown in Fig. 27. As shown, eachamplifiers 2 receives the musical tone signal from thecorresponding input terminal 1. Each low-pass filters 3 cuts off the high frequency components of the output signal from the amplifier. The output signal of the filter is applied tomaximum peak detector 4,minimum peak detector 5, and A/D converter 411. - These
detectors - The signals of these
detectors D converter 411 are applied toCPU 400. On the basis of these signals, the CPU appropriately processes the sounding start and frequency change. - Fig. 28 shows a timing chart of related signals when the input signal waveform rises. When the waveform as shown in Fig. 28(a) comes in,
maximum peak detector 4 has the output waveform as shown in Fig. 28(b). The waveform of the output signal ofminimum peak detector 5 is as shown in Fig. 28(c). -
CPU 400 works out the time intervals T1 and T2 on the basis of the output signals from those detectors, as shown in Fig. 28(d). If the time intervals T1 and T2 each representing one period of the waveform are substantially equal to each other and the difference between them is within a tolerable range, a sounding start command as shown in Fig. 28(e) is applied to the sound source circuit. - If these time intervals T1 and T2 are not equal, the time interval T1 is measured about half period later, and it is compared with the old time interval T1. If these are substantially equal, the sounding start processing is executed.
- It should be understood that any suitable measure may be employed for the pitch extraction. In the above-mentioned embodiment, either of the two time intervals t1 and t2 is used for the pitch extraction. As recalled, the time interval t1 is between the zero-cross points first appearing after the maximum peak values of the input waveform. The time interval t2 is between the zero-cross points first appearing after the minimum peak values of the input waveform. Another possible pitch extraction is, as described in the modification, to compare the time interval T1 between two adjacent maximum peak values of the input waveform with the time interval T2 between two adjacent minimum peak points. A further possible pitch extraction is to use the time interval between the two adjacent zero-cross points. An additional pitch extraction is to use the auto-correlation function or other suitable function of the period calculation.
- The fourth embodiment and its modification use three types of period data t1, t2, t3 or t2, t1, t2 and T1, T2, T1 or T1, T2, T1. During the time interval of less than two periods of the input waveform (if it is a perfect sine wave, the interval is 1.5 period), two periods of the waveform are detected. If these values of periods are coincident with each other, the CPU directs the sound source circuit to start the sounding.
- While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As described above, during the time interval of less than two periods of the input signal waveform, two periods of the input signal waveform are detected. If these are substantially equal, the CPU directs the sounding of a musical tone at the frequency as defined by the period. Therefore the time required from the inputting of the waveform to the actual sounding start is reduced. The result is to improve the response performance and to eliminate unnatural feeling of sounded musical tones.
- A fifth embodiment of an electronic guitar according to the present invention will be described, referring to Figs. 29 to 32.
- The fifth embodiment is proposed with an intention to prevent an erroneous operation of the guitar due to the resonance between the vibrations of different strings when the sounding is started. To prevent this, this embodiment employs an electronic measure in place of the mechanical measure, which has employed by the conventional electronic guitar.
- To realize this, when the inputting of an input signal of musical tone starts, a controller checks as to if the change of peak values of the input signal waveform is great or small when observed time sequentially. On the basis of the check result, further check is made as to if the peak value change is due to the resonance of string vibrations. If the result of this additional check shows that the peak value change is not related to the resonance of vibrations of different strings. The controller issues a command to start the sounding of the musical tone.
- The arrangement of this embodiment is substantially the same as that of Fig. 1. No further description is required for the description of the fifth embodiment.
- A main routine of
CPU 400 is illustrated in Fig. 29. The illustration of Fig. 29 is for the processing of the musical tone generated by one string. The same processing is correspondingly applied for the other string musical tone. In a specific overall system,CPU 400 processes the musical tones by six strings in a time-divisional manner. - To start with,
CPU 400 initializes the system of the electronic guitar in step A501 in Fig. 29, and checks if the sounding is now performed or not in step A502. Before sounding, the CPU checks if the note-on flag is "1". If the flag is still "0", NO is given. Then, the CPU returns from step 503 to step 502. The CPU repeats the execution of steps 502 and 503. - If the flag is "1 ", the CPU advances from step 503 to step 504. After completion of the period calculation of the input waveform, that is to say, the period is calculated using in-
maximum memory 201 and in-minimum memory 202, the CPU goes from step 504 to 505, and gives a sounding start signal to soundsource circuit 9 andfrequency ROM 8, resulting in sounding the musical tone. - After sounding, the CPU advances from step A502 to step 506. If the output of A/
D converter 411 is not below a predetermined value, the CPU goes from step A506 to A507. In this step, the CPU changes the frequency on the basis of the frequency data computed every time the interrupt processing is executed. Steps A502, A506 and A507 are successively executed. When the input level progressively goes low, the CPU goes from step A506 to A508, to execute the note-off processing. - The operation of the electronic guitar when the the waveform by the string vibration, will be described in detail.
- Fig. 30(a) shows the waveform of the output signal from low-
pass fitter 3 when the normal string operation is done, viz., a string is picked. As shown the wave-form steeply rises (falls) as soon as the string is picked. - Fig. 30(b) shows a waveform which gently rises due to the resonance of vibrations of strings.
- When the waveform steeply rises as shown in Fig. 30(a), interrupt signal INTa is generated at the timing of (1) which in turn is transferred to
CPU 400. Upon receipt of this,CPU 400 executes the interrupt processing of Fig. 31. - In step B501, the CPU fetches the output of
latch 412 in A/D converter 411. The output oflatch 412 is the maximum peak value of an. - In step B502, the CPU clears
FF 214, and executes the step B503 to fetch the count of counter. - In step B504, the CPU checks if note-on flag contained in
CPU 400 is "1 ". Now this flag is "0". Then the CPU goes to step B505 to check if the peak value an exceeds the sound start level a (Fig. 30) as the reference. The answer to this step is YES and the CPU proceeds to step 506. - In step 506, the CPU checks if (an - an-1) > R is satisfied. "an-1 " is the previous peak value and "an" is this-time peak value. "R" is a factor at a predetermined positive value which provides a reference to check if the input waveform is due to the vibration resonance or the normal vibration.
- In the waveform of Fig. 30(a), the peak value an-1 is initialized and "0". Then "an" is larger than "R". Under this condition, the CPU step B507 and to set the note-on flag to "1 and goes to step B508. In this step the CPU sets the peak value an as extracted this time, as the previously extracted peak value an-1 into the memory within the CPU, and returns to the main flow.
- During the interrupt processing of (2), the CPU detects the value of t1, i.e., the interval between the zero-cross points respecting following the maximum peak points of the waveform. This is obtained as the difference between the count of
counter 7 and the value of in-maximum memory 201. - After this processing, the CPU returns to the main routine of Fig. 29. Then, it executes steps A502 to A504. In
step A505 CPU 400 issues a command to sound the musical tone at the frequency based on time interval t1. - Similarly, the CPU receives interrupt signal INTb via AND
gate 225, and executes the interrupt processing like that of Fig. 31. The flow chart of this processing is not illustrated, but will be described applying Cn to Bn (n is any of 501 to 509) in these steps in the Fig. 31 routine. In step C502,FF 215 is reset and in step C505, peak values an' and a are compared with each other. The an' designates a negative peak value. In step C506, negative peak values an' are compared in step B508, the CPU saves the peak value an' as an'-1 into the memory. In step C509 the CPU executes the period calculation t2, i.e., the calculation of the time interval between the zero-cross points respectively after the minimum peak values. - When the waveform rises as shown in Fig. 30-(a), the routine based on interrupt signal INTa is first executed. When the input waveform falls, the CPU executes the interrupt routine by interrupt INTb.
- Thus when the input waveform as shown in Fig. 30(a), the CPU judges that the waveform if that of the normal input signal, and starts the sounding of the musical tone at the corresponding note.
- When the waveform of string resonance is input as shown in Fig. 30(b), interrupt signal INTa (or INTb) is applied to
CPU 400. Then, the CPU executes the routine shown in Fig. 31 (or the interrupt routine equivalent to the Fig. 31 routine). - Until the peak value an exceeds the peak value a, step B505 gives the answer of NO at timing (1) of Fig. 9(b). Then step B508 is executed.
- The interrupt routine at the timing of (2) if executed to give the answer of YES in step B505. Step B506 follows step B505. In this instance, the difference between peak values an-1 and a is not large, and is smaller than "R". Therefore, step B506 gives the answer of NO. In other words, the CPU decides that the input signal waveform is that of the string vibration resonance, and does not set the note-on flag to "1", viz., does not execute the sounding processing.
- The above-mentioned interrupt processing is correspondingly applied to the interrupt processing by the interrupt signal INTb, and the description of it is omitted.
- As described above, in the fifth embodiment, the CPU checks if the peak values of the input signal waveform changes greatly or small. Incidentally, when the waveform rises, the peak value increases, but when it falls, the peak value decreases (its absolute value increases). This check is executed in step B506 in Fig. 31. More specifically, the CPU checks if the difference between the peak values previously and this time extracted satisfies a predetermined condition. Therefore, the electronic circuit can completely check if the input signal waveform is due to the resonance of the different string vibrations or the real vibration by the string picking. This implies that there is no need for some mechanical measure for the resonance prevention.
- In the above-mentioned embodiment, the difference between the previous and present peak values is used for checking if the input signal waveform is the resonance waveform or not. Alternatively, the ratio of them may be used for the same purpose. To this end, step B506' is used in place of step B506, and in this step,
CPU 400 checks whether or not an/an-1 is larger than S (S is a large value above 1). If it is met, the CPU judges that the input waveform is the normal waveform. If it is not met, the CPU judges that it is the resonance waveform. In a further alternative, some arithmetic calculation may be used. - In the processing of Fig. 31, step B505 is used for checking if "an" exceeds "a". This step is not essential. In this case, the CPU jumps from step B504 to step B506, and in this step, the CPU checks whether or not the input waveform level exceeds a predetermined level by using the relation of (an - an-1) R.
- To stabilize the frequency, in step A507 in Fig. 29, the time count data previously stored and the this-time time count data are averaged and the averaged data is output. Alternatively, when the difference between the previous data and the this time data is great, for example, 20% or more, the previous data is output. The period calculations based on the zero-cross point detection immediately after the maximum and minimum peak points detections, may be selectively performed in a manner that the period calculation (i.e., only t1 is obtained) based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which rises at the start point, and that (i.e., only t2 is obtained) based on the zero-cross points immediately after the maximum peak points detection is executed for the waveform which falls at the start point.
- As described above, the CPU may select an appropriate processing in the step 507 in Fig. 29. It is noted that this selection can be made by some modification of the software, and not modifying the external circuit of the CPU. In this respect, the musical instrument of this embodiment is flexibly adaptable for many different situations.
- It should be understood that any suitable measure may be employed for the pitch extraction. In the above-mentioned embodiment, either of the two time intervals (t1) and (t2) is used for the pitch extraction. As recalled, the time interval (t1) is between the zero-cross points first appearing after the maximum peak values of the input waveform. The time interval (t2) is between the zero-cross points first appearing after the minimum peak values of the input waveform. Another possible pitch extraction is to compare the time interval (T1) between two adjacent maximum peak values of the input waveform with the time interval (T2) between two adjacent minimum peak points. A further possible pitch extraction is to use the time interval between the two adjacent zero-cross points. An additional pitch extraction is to use one auto-correlation function or other suitable function of the period calculation.
- Before start of the sounding, at least one period waveform is needed for pitch extraction. Therefore, the following is possible: the musical tone at the note as given by one string picked in one string mode, is first generated, and the frequency of the output sound is variably controlled after the pitch extraction.
- While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As described above, at the start of inputting a musical tone signal, the CPU checks if the peak values of the input signal waveform changes gently or steeply. On the basis of the check result, the CPU further checks if the input waveform variation is caused by the resonance of the vibrations of different strings or by the vibration of one string as picked. The musical tone sounding is allowed only when the input waveform is that of the real vibration. Therefore, inexpensive and high accuracy electronic musical instruments can be provided, with natural feeling of sounding.
- A sixth embodiment of an electronic guitar according to the present invention will be described referring to Figs. 32 to 38. This embodiment is proposed with the intention to improve of an accuracy of pitch extraction.
- When the input signal waveform rises, it is necessary to quickly extract the pitches of the waveform, and to send a sounding start command based on the extracted pitch to the sound source circuit. Generally, when the sound is generated, various kinds of waveforms appear. If the fundamental wave component is obtained from the generated found by using a low-pass filter, it is very difficult to determine the measuring points for pitch extraction, with the influence by the characteristics of the filter.
- Some examples of the output waveform of the low-pass filter are illustrated in Fig. 32. The waveform as shown in Fig. 32(a) frequently appears when a string is picked. If the pitch of that waveform is determined by the time intervals respective between the zero-cross points after the maximum and minimum peak points, the controller of the musical instrument may frequently treat the time interval of (a) as one period. The true one period, in this case, is the interval of (b). Thus, if the response is quickened at the start of sounding, the musical instrument mistakenly operated.
- A possible measure taken for this problem is to use a large threshold level (corresponding to the ON level in the figure), which is for checking whether or not the waveform as shown in Fig. 32(a) is caused by the vibration of a string, and not to detect the waveform levels below the threshold level. When a weak waveform as shown in Fig. 32-(b) comes in, however, this measure considers that no string vibration is produced. In this case, of course, no sound is produced from the sound source circuit and it is extremely unnatural when hearing the sound from the guitar.
- The period measurement starts when both the positive and negative peak points appear as shown in Fig. 32(c). In the case of the input waveform of (c), the period of (c) is not measured, but the period of (d) is measured. This indicates that the sounding start timing is slightly delayed.
- This embodiment is directed to solve the problem of the sounding start timing delay.
- To solve this problem, the maximum and minimum peaks immediately after the waveform rises are compared. A time interval is detected, and used as the period of the musical tone waveform. The time interval is the point relating to the larger peak point is used as the sounding start point. The peak point, which is similarly detected and exists in the same domain as that of the larger peak point, is used as the end of the time interval. A controller directs the start of sounding the musical tone at the frequency as defined by the detected period.
- The point relating to the maximum and minimum peak points may be the zero-cross point immediately after or before the maximum or minimum peak point, or may be the maximum or minimum peak point per se.
- A circuit arrangement of the sixth embodiment according to the present invention is illustated in Fig. 33. This arrangement is substantially the same as that of the embodiment thus far described, except some portions. Only the difference will be described, with the designation of like reference symbols for like portions.
-
CPU 600 receives interrupt signals INTan and INTbn (n is any of 1 to 6) from pitch extraction circuits P1 to P6, and cooperates withwork memory 601 to work out the period data. - A interrupt routine, which is applied for
CPU 600, and a main routine are illustrated in Figs. 34, 35A and 35B. Although these routines are for only one string operation, the same processings are correspondingly applied for other five string operations. In processing these six string operations,CPU 600 executes the processings for six strings in a time divisional manner. - Before proceeding with the detailed description of the CPU operation, main registers in
work memory 601 will first be described. A STEP register contains fourstages contents 0 of this register represents the note-off state. - A SIGN register is use for indicating that the zero-cross point for period measurement is after the maximum peak point or the minimum peak point. The
contents 1 of the register indicates that the zero-cross point after the maximum peak point, and thecontents 2 of the register indicates the zero-cross point after the minimum peak point. - A REVERCE register stores the data to check whether the interrupt processing has been made, which is executed at the arrival of the zero-cross point after the peak point which is located in opposition to the zero-cross point as given by the SIGN register.
- A T register stores the count of
counter 7 at a specific point to measure the period of the input waveform.Count 7 free runs responsive to a given clock signal. - An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/
D converter 11 and latched inlatch 12. An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage. - A PERIOD register stores the data of measured. On the basis of the contents of this register,
CPU 600 executes the frequency control againstfrequency ROM 8 and soundsource circuit 9. - As will be described later, for various types of judgement, three constants (threshold levels) are contained in
CPU 600. The first constants is ONLEVI. As shown in Fig. 36(a) and Fig. 37(a), the system is in the note-off mode. In this mode, when a peak level larger than ONLEVI, the CPU considers that a string has been picked, and starts the period measurement. - ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU executes the relative-on processing even if the tremolo, for example, is used.
- OFFLEV is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEV, the note-off processing is executed (Fig. 38).
- A main routine and interrupt routines, which are used in the sixth embodiment, will be described. The preparatory knowledge as mentioned above will assist you in understanding the routine description to follow.
-
CPU 600 receives the output signal of ANDgate - When receiving interrupt signal INTa, the CPU executes step P1 and sets the a-register to "1". When receiving interrupt signal INTb, the CPU executes step P2 and sets the same resistor to "2".
- In step P3,
CPU 600 presets the count ofcounter 7 into the t-register in the CPU. In the next step P4, the CPU fetches the peak level data in A/D converter 411, and sets that data into the b-register ofCPU 600. In step P5,CPU 600 clearsFF CPU 600 transfers the contents of the a-, b-, and c-registers to workmemory 601 for storage. At this point, the interrupt processing is completed. - In step Q1 of the main routine (Figs. 35A and 35B),
CPU 600 judges whether or not the contents of the a'-, b'-, and c'-registers have been stored intowork memory 601, through the interrupt processing. Primed characters a', b' and c' corresponds to a, b and c above, and indicate that these items of data have previously stored, respectively. If no interrupt processing has been executed, the answer to step Q1 is NO, andCPU 600 repeats the execution of step Q1. - If the answer is YES, the CPU advances to step Q2. In this step, the CPU reads out the registered contents a', b' and t'. Then, the CPU goes to step Q3, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU sets the peak value b' extracted this time into AMP (a') register.
- In step Q4 to Q6, the CPU checks if the contents of STEP register is 3, 2 or 1. When the system of the electronic guitar under discussion is in the initial condition, the STEP register is 0, and therefore the answer to steps Q4, Q5 and Q6 is NO. In step Q7, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- If the peak value b' is below ONLEVI, the sounding start processing is not executed and the CPU returns to step Q1. If it is above ONLEVI, step Q7 gives the answer of YES and the CPU advances to step Q8.
- In step Q8, the CPU sets "1 " to the STEP register. In the next step Q9, the CPU sets "0" to the REVERSE register. In step Q10, the CPU inputs the value of a' into the SIGN register. The value of a' is "1" at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- In step Q11, the value of t' is set in the T register. As the result of it, the value of a' is set in the SIGN register, that of b' in the AMP register, and that of t' in the T register. In this instance, the value of the SIGN register is "1 " (Fig. 36(a) and Fig. 37(a)). Then, the CPU returns to step Q1 again.
- The processing of the main routine immediately after zero-cross point Zero 1 in Fig. 36(a) and Fig. 37(a) is completed through the execution of the sequence of processing steps as explained above.
- The main routine immediately after the zero-
cross point Zero 2 will be described. In this processing, steps Q1, Q2, Q3, Q4, Q5 and Q6 will be executed . If the answer YES is given in step Q6, the CPU advances to step Q12. - When the input waveform rises at the time of waveform inputting as shown in Fig. 36(a) and Fig. 37(a), the SIGN register is "1". Since the present wave of the waveform has passed the negative peak, the register is "2" and NO is given. When the zero-cross point immediately after the peak point with the same polarity is reached, this step gives YES. The CPU does not execute any further processing and returns to step Q1.
- In step Q12, NO is given, and after that, the CPU advances to Q13 and sets 2 in the STEP register (see Fig.36(b) and Fig. 37(b)).
- Following step Q13, the CPU executes step Q14 and compares the previous peak point (AMP (SIGN)) with the present peak point (b'). If the previous value XO is smaller than the present value (X1>XO) as shown in Fig. 36(a), YES will be given. To set up the period measuring start point at time point t' (Fig. 36(c)), the CPU jumps from step Q14 to steps Q10 and Q11, to set 2 in the SIGN register and at the same time to transfer the contents of the t'-register to the T register.
- On the contrary, if the previous peak point is above the present peak point, X1 <X0, as shown in Fig. 37(a), NO is given in step Q14 and 1 is set in the REVERSE register in step Q15. In this case, the
previous point 1 is maintained in the SIGN register. As the result of it, the previous zero-cross point Zero 1 is the period measuring start point, in this case (see Fig. 37(c)). - When the CPU executes the main flow after the next zero-cross point (Zero 3) is passed, the CPU advances to step Q16 after YES is given in step Q5. The present value of a' is 1, that of the SIGN register is 2 as shown in Fig. 36, and that of the SIGN register is 1 as shown in Fig. 37. Therefore, in the case of Fig. 36, NO is given in step Q16 and the CPU advances to Q15 and returns to Q1. In other words,
CPU 600 recognizes that the first peak point (amplitude X2) is passed after the period measurement starts. - In Fig. 37, the CPU has the answer of YES in step Q16 and advances to step Q17 to check if the value of the REVERSE register is 1. If the value of the REVERSE register is not 1, the CPU judges NO and returns to step Q1. As mentioned above, after execution of step Q15, the value of this register is 1. Then, the CPU advances to step Q17 and Q18, and
inputs 3 in the STEP register (see Fig. 37). Instep 19, the CPU subtracts the value of the T register, i.e. the time of the zero-cross point Zero 1, from the value of thecounter 7 given by the this-time interrupt processing, and the CPU loads it in the PERIOD register. - The time length PERIOD shown in Fig. 37(c) is that of one period. In step Q20, the CPU transfers the contents of t' to the T register, and starts the new period measurement.
- In step Q12,
CPU 600 issues a sounding start (note-on) command tofrequency ROM 8 and soundsource circuit 9 in accordance with the contents of the PERIOD register. At this time, the sounding starts. - In the case of Fig. 36, the main flow after the next zero-
cross point Zero 4 is executed again, and the CPU jumps from step Q5 to Q16. Since the value of the SIGN register is now 2, YES is given in step Q16. Subsequently, steps Q17 to Q21 are executed. At this time,CPU 600 recognizes the time interval from zero-cross points Zero 2 toZero 4 shown in Fig. 36(c), as one period. The guitar starts the sounding of the musical tone at the frequency as defined by the time length recognized (see Fig. 36). - Thus, the period measurement is executed from the next zero-cross point after the peak point whose value is big. the period measurement is completed at the next zero-cross point located in the same side as the previous peak point. As the result of it, the period of low-
pass filter 3 output waveform is extracted. - After the sounding start processing, the CPU advances from step Q4 to step Q22 in the main routine processing, and checks if the value of the present peak point b' is above OFFLEV as shown in Fig. 38.
- If now that value is above this level, the CPU advances to step Q23, and judge whether or not the relative-on processing should be executed. In other words, the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e. checks if the value of the extracted peak point rapidly increases during sounding.
- When a string is picked, the vibration of the string gradually damps toward zero. NO is given in step Q23. In case that before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step Q23 is often YES.
- In this case, the CPU jumps to step Q8 after judging YES in Q23, and then executes step Q9 to step Q11. As a result, the CPU sets "1 " in the STEP register, and subsequently executes the same processing as that of the sounding start. In other words, after loading "1 " in the STEP register, the CPU executes step Q16 to step Q21 again, and executes the relative-on processing.
- In the normal picking, the CPU executes step Q23 followed by step Q24, and compares the contents of a'-register with those of the SIGN register. If these do not coincide, the CPU advances to step Q15 for the interrupt processing at the next zero-cross point. If these coincide, the CPU proceeds to step Q2 because the present wave of the waveform has the peaks with the opposite polarities (positive and negative peaks) in the past. Then the CPU judges whether or not the value of the REVERSE register is "1". If the result is NO, it returns directly to step Q1. If YES is given, the CPU advances from step Q25 to step Q26. Then the contents of the T register is subtracted from those of the t' register for obtaining a new period, and the result is set in the PERIOD register.
- In step Q27, the contents of t' register are transferred to the T register. Subsequently, on the basis of the value of the PERIOD register obtained in step Q28, CPU 100 executes the frequency control for frequency ROM8 and sound
source circuit 9. - Thus, this embodiment discretely picks up a variation of the frequency of string vibration, and controls the frequency according to the picked up discrete data in a real time manner.
- The CPU advances from step Q28 to step Q29, and clears the REVERSE register, and finally executes the period measuring.
- As described above, when the string vibration damps and the peak value becomes below the level of OFFLEV, the CPU jumps from step Q22 to step Q30 to clear the STEP register. In the next step Q31, the note-off processing is executed, and the CPU gives the note-off command to sound
source circuit 9, to stop the sounding of musical tone. - Thus, if the waveform as shown in Fig. 32(a) is input, the time length of (b) is measured, and as the measurement terminates, the sounding start processing is executed. Since the on-level may be reduced, the vibration as shown in Fig. 32(b) can be detected. In the case of the waveform of Fig. 32(c), the sounding starts as soon as the period of (c) or the first wave is measured. Therefore, the sounding can be quickly started, providing a quick response.
- In the above-mentioned embodiment, the CPU executes the interrupt processing at the zero-cross point immediately after each peak point followed by the various types of processings such as the sounding start, period calculation, relative-on and note-off. If necessary, these processings can be executed when each peak point is detected or when the zero-cross point immediately before the peak point is detected. Any other suitable measure may be taken for obtaining the reference point.
- As described above, the maximum and minimum peak values immediately after the input waveform rises, are compared with each other. A time interval is detected as the period of the waveform. The time interval starts at a point relating to the larger peak point, and terminates at a peak point which is located in the same domain as that of the peak point as detected in a similar way, and satisfies a predetermined condition. The period control is performed by using the detective period. With such a scheme, the exact period measurement can be quickly performed at the start of sounding, with lessened delay when the waveform rises.
- A 7th embodiment of an electronic guitar according to this invention will be described referring to Figs. 39 through 41. This embodiment proposed is able to extract the pitch of an input signal waveform even it contains much harmonic components as shown in Fig. 39.
- As shown in Fig. 39, the waveform contain much intensive harmonics has many peak points and cross points. If the electronic guitar receives such a waveform, it mistakenly measure one wave length time interval P as intervals PS and PR, which are each different from the true time interval P. The guitar sounds the musical tone at incorrect pitches. This is problematic in the technique disclosed in KOKOKU No. 61-51793. In this technique, when the adjacent waveform periods are substantially equal, the frequency control is executed on the basis of the time length of the period compared.
- This embodiment is directed to solve such a problem, and provides an electronic guitar which can exactly extract the pitch of the much harmonic contained waveform and sounds the musical tone at the correct pitch.
- To achieve this object, measurement is made of the time length of a first wave of an input waveform which partially overlaps one wave of the same waveform, and the time length of a second wave also overlapping the first wave. If the measured time lengths are substantially equal, a control directs the sounding of a musical tone at the frequency as defined by the time length.
- An arrangement of the seventh embodiment is substantially the same as that of the sixth embodiment (Fig. 33). The interrupt routines INTa and INTb executed by
CPU 600 are the same as those in the sixth embodiment. - The operation of the seventh embodiment will be given placing an emphasis on the main routine.
- Before proceeding with the detailed description of the CPU operation, main registers in
work memory 601 will first be described. - PS, PR and P registers store respectively the measuring time of one period PS, the measuring time of one period PR partially overlapping the period PS, and the measuring time of one period P partially overlapping the period PR. When these three pitch data PS, PR and P are substantially coincident,
CPU 600 executes the frequency control forfrequency ROM 8 and soundsource circuit 9 on the basis of the last pitch data P. This will be described in detail later. At other time than the sounding start time, every one period, the pitch data of the P register is transferred intactly to the PS register. In the subsequent description, PS, PR and P will be referred to the first, second and third periods, respectively. - The TS register stores the count of
counter 7 at the start of the period P. The TR register stores the count ofcounter 7 at the start of the PR period. These registers are used to obtain the respective pitch data. Thecounter 7 free runs to count at a given clock signal. - A TRIGGER register is set to "1" during one period just before the sounding starts, as shown in Fig. 41. In other periods than this, this register has "0" and stores the data indicating "preparatory processing for sounding start being progressed".
- A SIGN register is used to indicate that the zero-cross point for period measurement is located after the maximum peak point or the minimum peak point. The 1 of the register indicates that the zero-cross point after the maximum peak point, and the 2 of the register indicates the zero-cross point after the minimum peak point.
- An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/
D converter 11 and latched inlatch 412. An AMP (1) register stores the maximum peak value, and an AMP (2) register for minimum peak value storage. - Additionally,
CPU 600 further contains three threshold levels ONLEVI, ONLEVII and ONLEV. - In main routine (Figs. 40A and 40B),
CPU 600 clears the each register of TRIGGER, AMP(1), and AMP(2) in steps S31 to S33 first. In step S1, the CPU executes the interrupt processing as mentioned above, and judges if the contents of a', b', and t' (corresponding to to a, b, and t' and indicate the previous recording) have been saved into work memory 101. If no interrupt processing has been executed, the answer of NO is given, and this step S1 is executed repeatedly. - If step S1 gives YES, the next step S2 is executed to read out the contents a', b' and t'. In the next step S3,
CPU 600 reads out the value of peak point of the same type (maximum or minimum from AMP(a') register, and loads it into the s' register in the CPU. Further, the CPU sets the peak value b' now extracted in the AMP(a') register. - In step S4, the CPU if the contents of TRIGGER register is "1 " or not. If the system of the electronic guitar is in the initial condition "1 cannot be set in the register, the CPU goes to step S5 where it checks if the note-on condition has been set up or not. In this case, however, the note-on condition has not been set up, and the CPU returns to step S1. If the input signal whose level is larger than ONLEVI comes in, step S6 gives the answer of YES and then step S7 will be executed.
- In step S7, the a' value is input to the SIGN register. The value of a' is 1 at the zero-cross point immediately after the maximum peak point, and is 2 at the zero-cross point immediately after the minimum peak point.
- In steps S8 and S9, the CPU the value of t' as the count value at the start of the first period PS, into the TS register, and loads "1" into the TRIGGER register. As the result the value of a' is loaded into the SIGN register (in the case of Fig. 41 (a), this register contains "1"). The value of b' is set in the AMP register, and the value of t' to the TS register. Then the CPU returns to step S1.
- The processing of main routine immediately after the zero-cross point Zero 1 (Fig. 41(a) is completed at this point.
- The processing in the main routine immediately after the zero-
cross point Zero 2 will be disturbed. In steps S1 to S3 the data set processing is executed and in step S4 the answer is YES and step S10 is then executed. - When the waveform goes positively at the time of waveform inputting, as shown in Fig. 41 (a), the SIGN register contains "1 ". The present waveform having the negative peak in the past and therefore the a'-register contains "2". And this condition, NO is given and step S11 is executed. In this step, the value of t' as the count value at the start of the second period PR is set in the TR register. Then, the CPU returns to step S1.
- After the next zero-
cross point Zero 3, if the main routine is executed again, the answer of YES is given in step S4 and then the CPU jumps to step S10. The present value of a' is "1" and SIGN is "1 ". Therefore step S10 gives the answer YES and step S12 is executed to clear the TRIGGER register. In the succeeding step S13, the value of the TS register, i.e., the time at zero-cross point Zero 1 is subtracted from the count ofcounter 7 which is accepted in this-time interruption and is contained in the t'-register. The result of subtraction is loaded into the PS register. - In this way the pitch data of the first period PS whose length is PS shown in Fig. 41 (c) is obtained.
- In step S14, as shown in Fig. 41 (d),
CPU 600 gives a note-on command to thefrequency ROM 8 and soundsource circuit 9, according to the contents of the PS register. And the sounding starts at this time point. Alternatively, the musical tone as given by the open string in place of the contents of the PS register may be generated. - In the main routine processing immediately after the next zero-
cross point Zero 4, the note-on mode is set up. The CPU cause from step S5 to step S15 and checks if the value of b' as the peak value fetched just now is above the OFFLEV level. If it is above the OFFLEV, the CPU checks if the relative-on processing is executed. More specifically, the CPU checks if the this-time peak value b' is by ONLEVII larger than the previous peak value "c", that is to say, checks if the extracted peak value abruptly increases during the sounding. - When the string is picked, the string gradually damps toward zero. The answer of this step S16 is NO. In case where before the vibration of a string is damped to zero, the string is picked again, by the tremolo playing, the answer of step S16 may be YES, although this is a rare case. In this case step S16 gives YES and flow jumps to step S17 and steps S8 and S9 are executed consecutively. As a result, "1 " is set in the TRIGGER register and exactly the same operation as that at the sounding start will be executed. In other words, steps S12 to S14 are successively executed to effect the relative-on processing.
- In a normal condition, step S17 following step S16 is executed to compare the value of a' and the value of the SIGN register. If these are not coincident as in the case of zero-
cross points Zero 4,Zero 6, ..., steps S18 and S19 are executed. In these steps the contents of the TR register is subtracted from the t' register to obtain the second period PR. The PR is set in the PR register, and the value of t' is set in the TS register in order to obtain the pitch data of the next period PR. - At the zero-
cross point Zero 5,Zero 7, ..., whose characteristics are reverse to those of zero-cross points Zero 4 andZero 6, sequences of steps S1 to S5 and S15 to S17 are executed. In this instance, the contents of the a'-register coincides with the contents of the TS register. Therefore, step S20 is executed. In the step the contents difference between the t'-register and TS register is obtained to have the pitch data of the next third period. The difference is set in the P register. The value t' is set in the TS register in order to obtain the pitch data of the next third period P, in step S21. - Subsequently, in step S22,
CPU 600 checks if the data difference between the first and third periods PS and P is within a predetermined error tolerance which is times the third period P (0<a<0.4). Further, in step S23 the CPU checks if the data difference between the second and third periods PR and P falls within a predetermined error tolerance which is times the third period P (0<a<0.4). If these three items of pitch data PS, PR and P are coincident within the tolerance, in step S24 the CPU executes the frequency control (pitch change) forfrequency ROM 8 and soundsource circuit 9 as shown in Fig. 5(d). If these are not coincident with each other, the CPU does not execute the pitch change processing in step S24, and maintains the pitch thus far used. - As described above, by comparing three items of pitch data, exact pitch extraction is performed, with sounding of the musical tone at the correct pitch.
- The electronic guitar discretely picks up the frequency variation in the string vibration time to time, and executes the frequency control on the basis of the picked up data in a real time manner.
- The CPU goes from step S24 to step S25, and transfers the pitch data of the third period in the P register into the PS register. That pitch data is used as the pitch data of the next new first period.
- As described above, the string vibration gradually damps and its level is below the OFFLEV level, the CPU goes from step S15 to step S26, and executes the note-off processing (sounding-off processing), as shown in the right portion of Fig. 41. The CPU gives a note-off command to sound
source circuit 9 to stop the sounding. - In this way, the sounding preparation and sounding start processings in the steps S7 to S9, step S11, and steps 12 to S14 are performed at the respective zero-cross points of the first period. At the zero-cross points immediately after the minimum peak points of the respective periods, viz., at the even-numbered zero-cross points of the input waveform of Fig. 41, the pitch change processing is executed in steps S18 and S19. At the zero-cross points immediately after the maximum peak points, viz., at the odd-numbered zero-cross points of the input waveform of Fig. 41, the same processing is executed in steps S20 to S25. Finally, the note-off processing is performed in step S26.
- As seen from the description relating to Fig. 39, even if the input waveform contains much harmonics the frequency change processing is not performed unless the periods PS, PR and P are equal to one another. The result reduces the possibility of the erroneous pitch extraction.
- In the pitch comparing processing in steps S22 and S23, the comparison of PS and PR is allowed in addition to the comparison of PS and P, PR and P. The essential is to check if these three factors are equal or not. The pitch data used in the pitch changing processing in step S24 following the detection of three factors equality may be the arithmetic mean or the geometrical means PS, PR and P, in addition to the P. Additionally, two or three of these factors are appropriately weighted, and then averaged for that data.
- In the above-mentioned embodiment, the sounding of the musical tone is started according to the contents of the PS register, improving the response of the musical instrument system. Alternatively, after detection of the coincidence of these three factors PS, PR and P, the musical tone at the extracted frequency may be sounded.
- While in the above-mentioned embodiment, the pitch between the zero-cross points is measured, it is allowed to measure the period between any other suitable points, such as the maximum peak point and zero-cross point, the minimum peak point and zero-cross point, and the maximum and minimum peak points. In such a case, the signal output from maximum or
minimum peak detector - In the above-mentioned embodiment, the respective processings are executed in the main flow, but these may be executed in the interrupt processings.
- While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instrument electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As seen from the foregoing description, in the seventh embodiment, measurement is made of the time length of a first wave of an input waveform which partially overlaps one wave of the same waveform, and the time length of a second wave also overlapping the first wave. If the measured time lengths are substantially equal, the CPU directs the sounding of a musical tone at the frequency as defined by the time length. Therefore, the system of the electronic guitar, which is best on the three periods comparison, can exactly extract the pitch of the waveform even if it contains much harmonics.
- An eighth embodiment of an electronic guitar according to the present invention will be described with reference to Figs. 42 through 45.
- The eighth embodiment provides the improvements in that when the guitar is played in a tremolo mode, the guitar follows up in operation a rapid variation of the input musical tone waveform due to the tremolo playing and sounds the musical tone with natural feelings.
- To realize this, when the input waveform rapidly increases during the sounding of musical tone, the system detects this and gives a relative-on command. Through the relative-on processing, volume and timbre of the musical tone are appropriately adjusted so that the guitar electronic system follows up the actual tremolo playing.
- An arrangement of the eighth embodiment may be that of each embodiment as mentioned above, for example, that of Fig. 21.
- A main routine of
CPU 400 is shown in Fig. 42. This main flow is for only one string processing. The processings of other strings are each substantially equal to the Fig. 42 processing. Therefore, in an actual system, the CPU executes these routines in a time divisional manner. The CPU first executes the initial setting in step A801, and checks if the sounding progresses, in step A802. If the sounding is progresses, the CPU goes step A803 and executes the frequency change processing on the basis of the time interval data tn and Tn, and returns to step A802. - If step A802 gives the answer is NO and goes to step A804. In the step each register is initialized or a necessary command is sent to sound
source circuit 9. Following this step, the CPU returns to step A802. - The operation of the electronic guitar when a string of the guitar is picked will be described in more detail. When the string is picked and an input signal waveform rises, low-
pass filter 3 produces an output signal with a waveform as shown in Fig. 43(a). Simultaneously, zero-cross point detector 6,maximum peak detector 4 andminimum peak detector 5 produce respectively output signals, as shown in Figs. 43(b) to 43(d). As a result, as shown in Fig. 43(g),latch 412 produces the output of A/D converter 411. - After the half period of the input waveform, interrupt command signal INTa is first applied to AND
gate 224. In turn, the interrupt shown in Fig. 44 is executed. - In step B801, the CPU fetches the maximum peak value from
latch 412, and in step 802 sets the peak value inFF 214. For this operation, reference is main to the time chart of interrupt signal INTa shown in Fig. 43(e). - At this timing, the CPU saves the count of
counter 7 into a predetermined memory area of in-maximum memory 201 in step B803. In step 804 the CPU checks if the peak value ak (at this time it is a1), which has fetched in step B801, is larger than the reference value M. - If the peak value a1 is satisfactorily large, and the answer of YES is given in step B804, the CPU increments the value of "k" in the next step B805. Actually, a memory area to store the value of "k" is contained in the work memory of
CPU 400. Since "k" is 0, step B805 sets up k = 1. - In the next step B806,
CPU 400 checks if k = 1. The result of this check is YES and the next step B807 is executed. This step saves the peak value a1 extracted in step B801, into a peak memory (not shown), which is provided inCPU 400. The CPU then returns to the main routine. - After a negative peak point with the peak value b1 is passed, the zero-cross point is detected, interrupt signal INTb is generated as shown in Fig. 43(f), and control enters into the interrupt processing of Fig. 45. This processing is almost the same as that of Fig. 44, and hence will be described in brief.
- In the first step C801,
CPU 400 fetches the peak value b1, clearsFF 215 in step C802, and saves the count ofcounter 7 into in-minimum memory 202 in step C803, and checks if peak value b1 is larger than reference value M, b1 > M, in step C804. In this instance, the result of this check is YES, and control goes to step C805 to increment of "m". The result is m = 1. - Control goes to step C806, and further to step C807 to write the value of b1 into a predetermined memory area of the peak memory.
- Interrupt signal INTa is generated. In response to this signal, the CPU executes the interrupt processing of Fig. 44, again. In step b801, step B801 is executed to fetch the value of a2, and steps B802 to B805 are consecutively executed to set the value of "k" to "2". Then, step B805 is executed. Since k = 2, YES is given and control goes to step B809.
- This step compares m (now n = 1) with k (now k = 1). This is made to check if the interrupt command to first be executed is INTa or INTb (see Figs. 44 and 45). In this case, the processing based on the command INTa (since the input waveform first varies positively or rises) is first processed, as described above. The judgement of this step B809 is not k m, but k > m, i.e., NO, and control advances to step B810.
- In step B810, subtraction is applied to two time data stored in in in-
maximum memory 201, to obtain time Tn (now n = 1) shown in Fig. 43, and hence the musical tone frequency with the period of T1. Actually, this step seeks the fret used for the picked string. In step B811,CPU 400 directsfrequency ROM 8 and soundsource circuit 9 to start the sounding of the musical tone with that frequency, and executes the note-on processing. This is illustrated in Fig. 43(h). The musical tone is sounded from this point. - The CPU executes step B807 and returns to the main routine.
- Upon detection of the zero-cross point immediately after the minimum peak point (peak value b2), the Fig. 45 interrupt processing is executed through a series of steps C801 to C806. m = 2 is obtained and control flows to step C809. In this instance, m = k = 2, that is, the note-on processing is performed in step B811 as described above, and step C809 gives the decision of YES. Therefore, no note-on processing is performed (steps C810 and C811), and control flows through step C807 to the main routine.
- The next interrupt processing INTa is executed. Peak value a3 is fetched (step B803), and control flows through steps B802 to B808. Now k = 3, and then control jumps from step B8808 to B812. Step B808 checks if interrupt processing by INTa is executed three times or more.
- In step B812,
CPU 400 checks the difference between the present peak value ak (now k = 3) and the previous peak value ak-1 (now k = 2), ka - ak-1, exceeds reference value R. Generally, the string vibration gradually damps if any action is taken. The difference (ak - ak-1) takes a negative value. The answer to step B812 is NO, and control flows to step B813. As described later, when the tremolo playing is made, and ak-1 < ak,CPU 400 checks if ak - ak-1 > R holds. If it holds, viz., the relative-on must be done, this processing is executed in steps B814 and B815. This will subsequently be described in detail. - In this instance, control flows through step B813 (equivalent to step B810) and B807 and returns to the main routine.
- When interrupt processing INTb arrives, the processing about the peak value b3 will be executed in a similar manner. Steps C801 to C806, C808, C812 to C813, and C807 are consecutively executed in this order, to complete this interrupt processing.
- In this way, following the note-on processing, the frequency change processing, for example, is appropriately executed in step A803 in a progressive manner.
- As shown in Fig. 43(a), when the tremolo playing is made, and before the sounding terminates, a string is picked again, the interrupt processing is executed when the zero-cross point following the maximum peak of an-1 is reached, in step B812, the answer of YES is given since an + 1 - an > R, and control flows step B814. In this step, the CPU gives the note-off command to sound
source circuit 9 and abruptly drops the sounding level (Fig. 43(h)) - In the next step B815, "k" is set to "1 and "m" is set to "0" for starting the relative-on processing. After executing step B807, the CPU returns to the main flow.
- In the next interrupt processing by INTb (for peak value bn + 1), step C805 sets up m = 1, and control flows through steps C806 and C807, and returns to the main flow.
- The interrupt processing by INTa (for peak value an+2) is then executed. Step B805 sets up k = 2, and steps B808 and B809 are executed. In this instance, k (= 2) > m (= 1). Steps B810 and B811 are successively executed to sound the musical tone at the frequency as defined by the time interval Tn.
- With progression of the procedural steps as mentioned above, the maximum peak value an-1 of the waveform exceeds the difference between them. At this time, the sounding is ceased, and then started again. In this case, the sounding musical tone is assigned to another sounding channel of
sound source 9. Change is made in accordance with volume and timbre, for example. - The instance as mentioned above is an + 1 > an + R. Also in the reverse case where the minimum peak value abruptly decreases, i.e., bn + 1 > bn + R (Fig. 43(c), the relative-on processing is performed in a similar way.
- In this case, in the interrupt processing INTb (for peak value bn + 1), the above condition is detected (step C812), and the note-on processing is executed in step C814, and m = 1 and k = 0 are set up in step C815.
- In this case, in the interrupt processing INTa (for peak value an + 2), k = 1 is set up in step B805, steps B806 to B807 are used. In the next interrupt processing by INTb (for peak value bn + 2), m = 1 and k = 0 are set up in step. In steps C808 to C811, the relative-on processing is executed. The frequency of the musical tone is determined by the time tm in Fig. 43(f).
- The input waveform damps and NO is given in step B804 (or step C804). Then, control flows to step B816 (or CB16). When the sounding progresses,
CPU 400 executes the note-off processing in the next step B818, and gives a command of such to soundsource circuit 9. In step B818 (or C818), k and m are set to "0" for initializing. Following this step B818, step B816 is executed, and if NO is given, control returns to the main flow. - In the embodiment as mentioned above, the interrupt processing of Fig. 44 is first executed because the waveform rises (varies positively) at the start of waveform inputting. Conversely, when it falls (varies negative), the interrupt processing of Fig. 45 is first executed. The operation of the former case may be applied for the operation of the latter case which therefore will not be described.
- In this embodiment, when the maximum and minimum peak values of the waveform increase by R relative to the peak value, the CPU judges that the waveform abruptly rises, and execute the relative-on processing in which the sounding is ceased and is started again. Therefore, the electronic guitar system operates following up the rapid playing of the tremolo.
- In the above-mentioned embodiment, in steps B812 and C812, the difference between the previous and this-time peak values is used for the check of the rapid variation of waveform by the CPU. Alternatively, a ratio of those peaks may be used for the same purpose; ak/ak-1>S or bk/bk-1>S (S is an integer of more than 1).
- Additionally, the comparison of the peak value two peaks before and the this-time peak value may be used, although the comparison of the previous peak value and the this-time peak value is used.
- Further, in the embodiment as mentioned above, the relative-on processing is executed when one of the peak values ak and bk satisfies the relation ak - ak-1 > R or bk - bk-1 > R. It is evident that when these relations are both satisfied, the relative-on processing is executed.
- Furthermore, any other suitable detection may be used for detecting the rapid increase of the waveform during the sounding.
- While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments' electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As described above, when the rapid increase of the input waveform signal is detected during the sounding of the musical tone, the CPU issues a note-on command again. The electronic system of the guitar can follow up the rapid variation of the waveform, and hence the tremolo playing of the guitar.
- A ninth embodiment of an electronic guitar according to the present invention will be described referring to Figs. 46A, 46B,... 49. The ninth embodiment is proposed to prevent the electronic guitar from erroneously operating when tone is turned off by detaching the player's finger from the fret board.
- The ninth embodiment achieves the following objects: 1) to ensure the sounding stop, which is made by removing the finger of a player from the fret can be reliably made; 3) to eliminates the sounding of the musical tone at the pitch, which is different from that of the musical tone sounded before the finger is removed from the fret; 3) to realize artificial musical tones approximate to those generated by natural musical instruments including the string instruments.
- To achieve the above objects, the ninth embodiment is based on the scheme that the note-off is executed if the maximum and minimum peak values of the input waveform are below those previous peaks, respectively.
- The ninth embodiment is operable with an arrangement similar to that of any embodiment as described above. For example, the arrangement of Fig. 33 is available for the ninth embodiment. Further, the interrupt routines may be that of Fig. 34.
- Before proceeding with the detailed description of the CPU operation, main registers in
work memory 601 will first be described. - A FLAG (i) register is used in the following way. When the maximum or minimum peak value is by an OFFLEVII smaller than the corresponding peak value, "1 " is set in this register. The FLAG (1) is for the maximum peak, and the FLAG (2) for the minimum peak. When "1 " is set to the FLAG (i) register, the note-off processing is executed even if the peak is not below the OFFLEVII level.
- A STEP register contains four
values contents 0 of this register represents the note-off mode. "3" of the register indicates a state that the peak becomes below the previous peak by OOFLEVEII, and the note-off command has been issued. "1 and "2" of the register indicate that the normal sounding progresses. - A PERIOD register stores the data of measured period. On the basis of the contents of this register,
CPU 600 executes the frequency control againstfrequency ROM 8 and soundsource circuit 9. - A SIGN register is used for indicating that the zero-cross point for period measurement is located after the maximum peak point or the minimum peak point. The
contents 1 of the register indicates that the zero-cross point after the maximum peak point, and thecontents 2 of the register indicates the zero-cross point after the minimum peak point. - An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/
D converter 11 and latched inlatch 412. An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage. - As will be described later, for various types of judgement, four constants (threshold levels) are contained in
CPU 600. - The first constants is ONLEVI. As shown in Fig. 47(a), the electronic system of the guitar is in the note-off mode. In this mode, when a peak level larger than ONLEVI, the CPU judges that a string has been picked, and starts the period measurement.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU executes the relative-on processing even if the tremolo playing, for example, is used.
- OFFLEVI is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEVI, the note-off processing is executed (Fig. 48(a)).
- OFFLEVII is used in such a manner that in the note-on mode, if the difference between the maximum or minimum peak value and those previous peak values is detected and is below this level of OFFLEVI, the note-off processing is executed (Fig. 48(b)).
- A main routine and interrupt routines, which are used in the sixth embodiment, will be described. The preparatory knowledge as mentioned above will assist you in understanding the routine description to follow.
- In the main routine (Figs. 46A and 46B), after clearing each register of FLAG (1), FLAG (2) and STEP in steps S901 to S903, the CPU judges whether or not the contents of a'-, b'- and t'- register are saved into
work memory 601 through the interrupt processing in step S904. Primed characters a', b' and t' correspond to a, b and c above, and indicate that these items of data have previously stored, respectively. If no interrupt processing has been executed, the answer to step S904 is NO, and the CPU repeats the execution of step S904. - If YES is given in step S904, the CPU advances to step S905, and reads out contents a', b' and t'. Then, the CPU goes to step S906, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU set the peak value b' extracted this time into AMP (a'). In steps S907 to S909, the CPU checks if the contents of the STEP register is 1, 2 or 3. When the system of the electronic guitar is in the initial condition, the STEP register is 0, and therefore the answer to steps S907, S908, S909 is NO. In step S910, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- If NO is given in step S910, the note-on or sounding start processing is not executed and the CPU returns to step S904. As shown in Fig. 47(a), if the peak value, which is output through low-
pass filter 3, is above ONLEVI, YES is given in step S910 and the CPU advances to step S911. - In step S911, the CPU sets "1 " in the STEP register. In the next step S912, the CPU inputs the value of a'-register into the SIGN register. The value of a'-register is "1" at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- In step S913, the CPU sets the value of t'- register, i.e., the zero-
cross point Zero 1, in the T register. - Thus the contents of a'-register (Fig. 47(a)) is set in the SIGN register, those of b'-register in the AMP (1) register, those of t'-register (the time of the zero-cross point Zero 1) in the t-register. Then, the CPU advances to step S904.
- The processing of the main routine immediately after the zero-cross point Zero 1 in Fig. 47(a) is completed by the execution of the sequence of processing steps as mentioned above. In the processing of the main routine immediately after the zero-
cross point Zero 2, the CPU executes the data set processing in steps S904 to S906. Then, YES is given in step S907, and the CPU advances to step S914. - When the input waveform rises at the time of waveform inputting as shown in Fig. 47(a), the SIGN register contains "1 ". Since the present wave of the waveform has passed the negative peak, a'- register contains 2, and NO is given in step S914. Then, the CPU does not execute any further processing and returns to step S904.
- When the zero-
cross point Zero 3 is reached, the CPU executes steps S904 to S907 and S914 again. In this step, YES is given, and the CPU advances to step S915, andinputs 2 in the STEP register as shown in Fig. 47. In step S916, the CPU subtracts the time of the zero-cross point Zero 1 in the T register from the time given by the this-time interrupt processing in the t'-register. Then the CPU loads the difference, i.e., the time length shown in Fig. 47(c) or the one period in the PERIOD register. - Subsequently, the CPU advances to step S917, and transfers the contents of t'-register to the T register, and starts new period measurement. In step S918, CPU issues the note-on command so that musical tone, which has the frequency in accordance with the contents of the PERIOD register mentioned above, can be generated from
sound source circuit 9. Then, the sounding starts. - In the processing of the main routine immediately after the next zero-cross point Zero 4 (see Fig. 47(a)), the CPU executes steps S904 to S908. In step S908, the contents of the STEP register is 2, and YES is given. Then the CPU advances to step S919, and checks if the peak value b' is above or below the level of OFFLEVI (see Fig. 48-(a)). Now the peak level is above OFFLEVI, and YES is given in step S919, and the CPU advances to step S920.
- In step S920, the CPU judges whether or not the relative-on processing should be executed. In other words, the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e., checks if the extracted peak point rapidly increases during sounding.
- When a string is picked, the vibration of the string gradually damps toward zero, NO is given in step S920. In case that before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step S920 is often YES.
- In this case, the CPU jumps from step S920 to step S911, and then, executes steps S912 and S913. As a result, the CPU sets "1 " in the STEP register, and subsequently, executes the same processing as that of the sounding start. In other words, after loading "1 " in the STEP register, the CPU executes steps S907,S914, S915, S916, S917 and S918, and executes the relative-on processing. In this case, the relative-on processing with the attack starts.
- In the normal state, the CPU goes from step S920 to step 921. In this step the CPU checks if the peak value b' is by OFFLEVII smaller than the previous peak value "c", that is, if the tone-off operation by removing the finger of a player from the fret board has been done.
- If the fret board remains held by the finger, in step 921 No is given and in step S922 the FLAG (3-a') register is cleared. "3-a"' indicates the FLAG register relating to the peak point located opposite to the preceding peak point. If at the present time point a' = and it is the zero-cross point immediately after the maximum peak point, a FLAG (2) for the minimum peak point is cleared. If at the present time point a'=2 and it is the zero-cross point immediately after the minimum peak point, a FLAG (1) for the maximum peak point is cleared. In this case, the zero-cross point immediately after the minimum peak point is Zero 4 and FLAG (1) is cleared.
- Subsequently,
CPU 600 checks if the contents of SIGN register is coincident with the contents of the a'-register. The present zero-cross point isZero 4. Then, the SIGN register contains "1 and the a'- register "2". In step S923, No is given and the CPU returns to step 904. - When the zero-
cross point Zero 5 is detective, sequences of steps S904 to S908, and S919 to S923 are executed and YES is given in step S23. Then, a sequence of steps 924 to 926 is executed to set a new period ranging fromZero 3 toZero 5 into the PERIOD register and transfers the contents of the t'-register into the T register. Then, new period measurement starts. The CPU issues a frequency change command tofrequency ROM 8 and soundsource circuit 9, according to the pitch this time detected and stored in the PERIOD register. - If the note-off operation is performed the maximum and the minimum peak values become small as shown in Fig. 48(a). When the difference between the previous peak value and the present peak value becomes below the OFFLEVII level. Then, the CPU executes the sequences of steps S904 to S905, and S919 to S921, and YES is given in step S921. In step S927, the CPU computes d = 3 a', which indicates the peak point located opposite to the peak point immediately before the this-time peak point. In step S928, the CPU checks if the FLAG (d) for this "d" is "1 ".
- At present, the FLAG (i) registers are both "0" and hence the CPU advances to step S929 and sets 1 in the FLAG (a') register for the peak point immediately before the peak point detected this time, and returns to step S904.
- Subsequently, the next zero point is reached after the opposite peak point is passed,
CPU 600 executes the sequence of steps S904 to S908, and S919 to S921, and in steps S927 and 928 the CPU checks if "1 " is set in the FLAG (i) for the opposite peak point. At present the register contains "1 and therefore the CPU clears the FLAG (i) register on the opposite side, and sets "3" in the STEP register. In step 932, the CPU executes the note-off processing, and gives to sound source circuit a command to stop the sounding of the musical tone fromsound source circuit 9. - In this way, the subsequent sounding will be stopped and if the player removes his finger from the fret, the note-off is ensured.
- In this case, when of these two types of levels, only one type level drops below the OFFLEVII, step S921 and steps S927 to 929 are executed to set "1 " in one of the FLAG (i) registers. In step 921 to check if the peak level is below the OFFLEVII, NO is given. Step S922 clears the FLAG (i) register with "1". Then steps 923 to 926 for note-off continue processing are progressively executed.
- In Summary, in the case of Fig. 48, steps S921 and S927 to S929 judges that one of the two types of levels is below OFFLEVII. Then, the FLAG set processing is first executed, In steps S921, S927 to S928, and S930 to S932, the other peak level below the OFFLEVII level is detected and the note-off processing starts. In the case of Fig. 49, in steps S921 and S927 to S929, the first type of peak level below the OFFLEVII level is detective and the flag is set. In steps S921 and S922, the CPU detects that the second type of peak level is not yet below OFFLEVII and sets the flag. In steps S921 and S922, the flag is cleared since the second peak level is not yet below OFFLEVII. The CPU executes the note-on processing in steps S923 to S926.
- After the step register has "3" and the sounding stopped in this way,
CPU 600 goes through steps S901 to S908, and reachesstep 909. In the last step, YES is given. The CPU jumps to step S933 to check if the peak level b' is below OFFLEVI. Immediately after "3" is said in the STEP register, the peak level is not yet OFFLEVI. The CPU goes step S936. This step, like step S920, checks if the relative-on processing is to be executed. If this-time peak level b' is above the previous peak level "c" by ONLEVII, the note-on processing is executed in steps S911 to S913. If the former is below the later, the CPU returns to step S904. - If the peak level becomes below OFFLEVI, step S933 the answer of NO, and in step S934 the STEP register is cleared.
- In a normal sounding mode in which the STEP register contains "2", if peak level drops below OFFLEVI, step 919 gives the answer of NO. Then, the CPU goes to step S935 to clear the STEP register and executes the note-off processing in step 936 to stop the sounding of musical tone from
sound source circuit 9. - The OFFLEVII, which is used for stop the sounding when the finger is removed from the fret board, may be a fixed level or the product of multiplying the previous peak value by a fixed rate. In the above-mentioned embodiment the time interval between the adjacent zero-cross points for pitch measurement. This time interval may be substituted by the time interval between the maximum peak point and the zero-cross point, the minimum peak point and zero-cross point, or the maximum peak point and the minimum peak point. In such a case, the interrupt signal INT may be the signal from maximum or
minimum peak detector - While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As seen from the foregoing, when the maximum and minimum peak values of the input waveform are both below those previous peak values, respectively, the note-off is executed. This ensures the sounding stop, which is made by removing the finger of a player from the fret. The electronic guitar never sounds the musical tone at the pitch, which is different from that of the musical tone sounded before the finger is removed from the fret. This realizes artificial musical tones approximate to those generated by natural musical instruments including the string instruments. Further, the ninth embodiment eliminates useless pitch (fundamental frequency) extractions to be performed after the finger detaches from the guitar string.
- A tenth embodiment of an electronic guitar according to the present invention will be described referring to Figs. 50 to 54.
- Technical problems to which this embodiment is directed is illustrated in Fig. 50. In the figure, (j) indicates an input waveform, (k) an envelope connecting positive peaks, (I) a waveform of a positive peak detect signal, (m) an envelope connecting negative peaks, and (n) a waveform of a negative peak detection signal.
- As shown in Fig. 50, when the input waveform abruptly damps by the mute playing, for example, if the peak level is below a predetermined level OFFLEV, control executes the note-off processing to stop the sounding. In this approach, however, it is very difficult to pick up peak points. For this reason, the note-off processing is delayed.
- According to this embodiment, if the input signal level abruptly damps to such an extent to make it difficult to detect the peaks of the input signal waveform, this damping can be detected quickly and reliably, and the note-off processing can be executed.
- When the input signal waveform drops below a predetermined value for a predetermined period of time, control gives a note-off command.
- An overall arrangement of the tenth embodiment is shown in Fig. 51. This arrangement is substantially equal to that of Fig. 33. Like portions are designated by like symbols in Fig. 33, for simplicity.
- Some of main features of this embodiment are 1) to apply a latch lock to latch 412 at the maximum (positive) and minimum (negative) peak detections, via OR
gates gate 1026 andOR gate 1017 whenCPU 1000 applies a latch command signal L in logical high. - The waveforms (a) to (g) of the signals at key portions in Fig. 51 are shown in Fig. 52. Of those signals, latch command signal (g) continues logical high during the period ranging from an instant that CPU 100 fetches the peak values from
latch 412 at the maximum and minimum peak points in response to interrupt signals INTa and INTb until the next peak detect signals (b) and (c) are applied. - During the period with application of interrupt signals INTan and INTbn ("n" is any of 1 to 6), in the case of a sine wave as an input signal waveform, the peak values are latched in the first half of the wave between the top and bottom, i.e. between the zero-cross point and the maximum or minimum peak point. In the range from the maximum or minimum peak point and the next zero-cross point, the peak value is held.
- The output signal from each
latch 412 is applied toCPU 1000. This data is used for controlling the controls such as note-on, note-off, pitch extraction start, pitch extraction stop, and control of sounding level (volume control). The peak values as latched in eachlatch 412 before the output of latch command signals L1 to L6 are stopped, are successively stored intowork memory 601. - When the absolute value of the data representative of the waveform level as applied from A/
D converter 411 is above a predetermined value,CPU 1000 executes the note-on and the pitch (fundamental frequency) extraction. When the data is below the note-off level OFFLEVE shown in Fig. 54, the volume level is abruptly stopped to terminate the sounding. The operation of this will be given in detail later. - In the circuit arrangement, A/
D converter 411 is provided for each pitch extraction circuit P1 to P6. If necessary, a single A/D converter may be used in common for those pitch extraction circuits, and be operated in a time-divisional manner. - A main routine of
CPU 1000 is illustrated in Fig. 29. - A interrupt routine, which is applied for
CPU 600, may be substantially equal to that of Fig. 34. Although these routines are for only one string operation, the same processings are correspondingly applied for other five string operations. In processing these six string operations,CPU 1000 executes the processings for six strings in a time divisional manner. Figs. 36 to 37 will be used for explaining the operation of this embodiment. - Before proceeding with the detailed description of the CPU operation, main registers in
work memory 601 will first be described. A STEP register contains fourstages contents 0 of this register represents the note-off state. - A SIGN register is use for indicating that the zero-cross point for period measurement is after the maximum peak point or the minimum peak point. The
contents 1 of the register indicates that the zero-cross point after the maximum peak point, and thecontents 2 of the register indicates the zero-cross point after the minimum peak point. - A REVERCE register stores the data to check whether the interrupt processing has been made, which is executed at the arrival of the zero-cross point after the peak point which is located in opposition to the zero-cross point as given by the SIGN register. This is used for checking the pitch (fundamental frequency) extraction control for each period.
- A T register stores the count of
counter 7 at a specific point to measure the period of the input waveform.Count 7 free runs responsive to a given clock signal. - An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/
D converter 411 and latched in 412. An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage. - A PERIOD register stores the data of measured. On the basis of the contents of this register,
CPU 1000 executes the frequency control againstfrequency RDM 8 and soundsource circuit 9. - An OFF register contains "1 when the level data of the input waveform latched in
latch 412 is below OFFLEV as the note-off level shown in Fig. 54. It contains "0" when it is above OFFLEV during the sounding. - An OFT register stores the count of
counter 7 when 21 " is set in the OF register. If the time duration of the state of "1 " in the OF register is a predetermined time duration, for example, the period of of a string vibration in the open string mode, more exactly, 12 msec for the sixth string, for example, the note-off processing is executed. - As will be described later, for various types of judgement, three constants (threshold levels) are contained in
CPU 1000. - The first constants is ONLEVI. As shown in Fig. 36(a) and Fig. 37(a), the system is in the note-off mode. In this mode, when a peak level larger than ONLEVI is detected, the CPU decides that a string has been picked, and starts the period measurement.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU executes the relative-on processing even if the tremolo, for example, is used.
- OFFLEV is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEV, the note-off processing is executed (Fig. 54(a)).
- A main routine and interrupt routines, which are used in the tenth embodiment, will be described. The preparatory knowledge as mentioned above will assist you in understanding the routine description to follow.
- In step S1001 of the main routine (Figs. 53A and 53B), CPU judges whether or not the contents of the a'-, b'-, and c'-registers have been stored into
work memory 601, through the interrupt processing. Primed characters a', b', and c' corresponds to a, b and c above, and indicate that these items of data have previously stored, respectively. If no interrupt processing has been executed, the answer to step S1001 is NO, and the CPU repeats the execution of step S1001 by going through the note-off processing in steps S1030 to S1038. - If the answer is YES, the CPU advances to step S1002. In this step, the CPU reads out the registered contents a', b' and t'. Then, the CPU goes to step S1002, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU sets the peak value b' extracted this time into AMP (a') register.
- In steps S1004 to S1006, the CPU checks if the contents of STEP register is 3, 2 or 1. When the system of the electronic guitar under discussion is in the initial condition, the STEP register is 0, and therefore the answer to steps S1004, S1005 and S1006 is NO. In step S1007, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- If the peak value b' is below ONLEVI, the sounding start processing is not executed, and the CPU returns to step S1001. if it is above ONLEVI as shown in Fig. 36(a) and Fig. 37(a), step S1007 gives the answer of YES, and the CPU advances to step S1008.
- In step S1008, the CPU sets "1 " in the STEP register. In the next step S1009, the CPU sets "0" in the REVERSE register. In step S1010, the CPU inputs the value of a'-register into the SIGN register. The value of a'-register is "1 " at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- In step S1011, the value of t'-register is set in the T register. As a result, the contents of a'- register is set in the SIGN register (now SING is "1 " in the case of Figs. 36(a) and Fig. 37(a)), the contents of the b'-register is set in the AMP register. The contents of the t'-register is loaded into the T register. Then, the CPU returns to step S1.
- The processing of the main routine immediately after the zero-cross point Zero 1 in Fig. 36(a) and Fig. 37(a) is completed through the execution of the sequence of processing steps explained above.
- The main routine immediately after the zero-
cross point Zero 2 will be described. In this processing, the data set processing and the note-on step discrimination processing in steps S1001, S1002, S1003, S1004, S1005 and S1006 will be executed. If the answer YES is given in step S1006, the CPU advances to step S1012. - When the input waveform rises at the time of waveform inputting as shown in Fig. 36(a) and Fig. 37(a), the SIGN register contains "1". Since the present wave of the waveform has passed the negative peak, the a'-register contains "2", and NO is given. When the zero-cross point immediately after the peak point with the same polarity is reached, YES is given in this step S1012. The CPU does not execute any further processing and returns to step S1001.
- In step S1012, NO is given, and then, the CPU advances to step S1013, and sets "2" in the STEP register (see Fig. 36(b)).
- Following step S1013, the CPU executes step S1014, and compares the previous peak point (AMP (SIGN)) with the present peak point (b'). If the previous value XO is smaller than the present value (x1>x0) as shown in Fig. 36(a), YES will be given. To set up the period measuring start point at time point t' (Fig. 36(c)), the CPU jumps from step S1014 to steps S1010 and S1011, to set "2" in the SIGN register and at the same time to transfer the contents of the t'-register to the T register.
- On the contrary, if the previous peak point is above the present peak point, x1<x0, as shown in Fig. 37(a), NO is given in step S1014 and "1" is set in the REVERSE register. In this case, the previous point "1 " is maintained in the SIGN register. As a result, the previous zero-
cross point Zero 1 is the the period measuring start point, in this case (see Fig. 37(C)). - When the CPU executes the main flow after the next zero-cross point (Zero 3) is passed, the CPU advances to step S1016 after YES is given in step S1005. The present value of the a'-register is "1", that of the SIGN register is "2" as shown in Fig. 36, and that of the SIGN register is "1 " as shown in Fig. 37. Therefore, in the case of Fig. 36, NO is given in step S1016 and the CPU advances to step S1015 and returns to step S1001. In other words,
CPU 1000 recognizes that the first peak point (amplitude x 2) is passed after the period measurement starts. - In Fig. 37, the CPU has the answer of YES in step S1016, and advances to step S1017 to check if the REVERSE register contains "1 ". If the value of the REVERSE register is "1 ", the CPU has the answer of NO, and returns to step S1001. As mentioned above, after execution of step S1015, the value of this register is "1". Then, the CPU advances to step S1018, and inputs "3" in the STEP register (see Fig. 37(b)). In step S1019, the CPU subtracts the value of the T register, i.e., the time of the zero-
cross point Zero 1, from the value of thecounter 7 given by the this-time interrupt processing, and the CPU loads it in the PERIOD register. - The time length PERIOD shown in Fig. 37(c) is that of one period. In step S1020, the CPU transfers the contents of the t'-register to the T register, and starts the new period measurement.
- In step S1021,
CPU 1000 issues a sounding start (note-on) command tofrequency ROM 8 and soundsource circuit 9 in accordance with the contents of the PERIOD register. At this time, the sounding starts. - In the case of Fig. 36, the main flow after the next zero-
cross point Zero 4 is executed again, and the CPU jumps from step S1005 to S1016. Since the value of the SIGN register is now 2, YES is given in step S1016. Subsequently, the sounding start processing in steps S1017 to S1021 are executed. At this time,CPU 1000 recognizes the time interval from zero-cross points Zero 2 toZero 4 shown in Fig. 36(c), as one period. The guitar starts the sounding of the musical tone at the frequency as defined by the time length recognized (see Fig. 36(d)). - Thus, the period measurement is executed from the next zero-cross point after the peak point whose value is big. The period measurement is completed at the next zero-cross point located in the same side as the previous peak point. As the result of it, the period of low-
pass filter 3 output waveform is extracted. - After the sounding start processing, the CPU advances from step S1004 to step S1023 in the main routine processing, and judges whether or not the relative-on processing should be executed. In other words, the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e. checks if the value of the extracted peak point rapidly increases during sounding.
- When a string is picked, the vibration of the string gradually damps toward zero. NO is given in step S1023. In case that before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step S1023 is often YES.
- In this case, the CPU jumps to step S1008 after judging YES in S1023, and then executes the preparatory processing for note-on in step S1009 to step S1001. As a result, the CPU sets "1 " in the STEP register, and subsequently executes the same processing as that of the sounding start. In other words, after loading "1 " in the STEP register, the CPU executes step S1016 to step S1021 again, and executes the relative-on processing.
- In the normal picking, the CPU executes step S1023 followed by step S1024, and compares the contents of the a'-register with those of the SIGN register. If these do not coincide, the CPU advances to step S1015 for the interrupt processing at the next zero-cross point. If these coincide, the CPU proceeds to step S1025 because the present wave of the waveform has the peaks with the opposite polarities (positive and negative peaks) in the past. Then the CPU judges whether or not the value of the REVERSE register is "1 ". If the result is NO, it returns directly to step S1001. If YES is given, the CPU advances from step S1025 to step S1026. Then the contents of the T register is subtracted from those of the t'-register for obtaining a new period, and the result is set in the PERIOD register.
- In step S1027, the contents of the t'-register are transferred to the T register. Subsequently, on the basis of the value of the PERIOD register obtained in step S1028,
CPU 1000 executes the frequency (pitch) control forfrequency ROM 8 and soundsource circuit 9. - Thus, this embodiment discretely picks up a variation of the frequency of string vibration, and controls the frequency according to the picked up discrete data in a real time manner.
- The CPU advances from step S1028 to step S1029, and clears the REVERSE register, and finally executes the period measuring.
- When the string vibration abruptly damps by the mute playing, and the peak level falls below OFFLEV, as shown in Fig. 4, in step S1030, CPU decides that the present contents of the STEP register is 3. As shown in Fig. 54(c), the CPU detects that the waveform level of the input signal, which is derived from A/
D converter 411 and latched inlatch 412, becomes below the note-off level OFFLEV (step S1031). "1" " is set in the OF register which has stored "0", and the count ofcounter 7 is set to the OFT register. The CPU returns step S1001 (steps S1023 to S1034). - Since the peak value is below the OFFLEV level, if the input waveform reaches the peak, the waveform level of the signal, which is applied from A/
D converter 412 to latch 412, never exceeds OFFLEV. Therefore, the CPU never goes from steps S1030 and S1031 to step S1038, so that "1 is maintained in the OF register. If the state that the waveform level is below OFFLEV is continued for the length of one wave of the string vibration, for 12 msec or more in the case of the sixth string,CPU 1000 in step S1035 recognizes this by using the difference between the count as set in the OFT register and the present count ofcounter 7. In step S1036,CPU 1000 clears the STEP register and the OF register, and executes the note-off processing in step S1037, and gives a note-off command to soundsource circuit 9, to stop the sounding. - In this way, the note-off processing can be executed quickly and reliably, even if the waveform level abruptly changes, by detecting that the waveform level below OFFLEV for 12 msec, for example.
- Since such damping temporarily occurs, if the peak level exceeds OFFLEV,
CPU 1000 detects this in step S1031, and clears the OF register in step S1038, and does not execute the note-off processing. Therefore, if the abrupt drop of the waveform level occurs as shown in Fig. 50, and neither of interrupt signals INTa and INTb is generated, clock signal CL is always applied to latch 412. The latch command signal L as indicated by (8) in Fig. 52 keeps high level state. Then, the output of A/D converter 411 is applied toCPU 1000 vialatch 12. The CPU executes the note-off processing according to this peak value. As a result, the note-off response is improved. - The above-mentioned embodiment is so arranged that when the waveform level of the 6th string is below the level of OFFLEV, the note-off is executed. In an alternatively, the note-off may be executed when such a level of the input waveform is continued for the other time duration than 12 ms, i.e., the period or more of the musical tone as generated by the electronic guitar. The above-mentioned embodiment is also so arranged that
CPU 1000 executes the interrupt processing immediately at the zero-cross point after each peak point, followed by the note-on start, period computation, relative-on, note-off start, etc.. These processings may be performed immediately after each peak point detection. In this case, the same effects as those attained by the former case may be attained. Additionally, these processings may be done upon detection of the zero-cross point immediately before the peak point. Any other suitable measure may be used for the reference point setting up. - Each processing, which is executed in the main routine in the above-mentioned embodiment, may be done in each interrupt processing.
- While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As described above, in the tenth embodiment, when the input signal level below a predetermined level continues for a predetermined time duration, the note-off is executed. If the mute playing is made, and the waveform abruptly drops to such a level to be too low for detecting the peak point, the level drop can reliably and quickly be detected, to execute the note-off processing. This cannot be realized by the conventional system of the type in which the note-off is executed upon detection of the dropping of the peak of the input signal wave below a predetermined value. With such an arrangement, good performance is obtained. The electronic system of the electronic guitar more quickly enters the new note-on processing of the musical tone.
- An eleventh embodiment of an electronic guitar according to the present invention will be described referring to Figs. 55A, 55B, and 56.
- In an electronic musical instrument of the type in which the artificial musical tone is formed by using the pitch extracted from a waveform of a natural musical tone generated from musical instrument such as an electronic guitar, harmonics are contained in the natural waveform. The harmonics possibly cause erroneous frequency change control, when these are detected.
- In playing the guitar, a player holds a 7th fret or 5th fret and picks a string, and then he detaches his finger from the string and executes the mute. In this case, the string of the conventional electronic guitar vibrates at the frequency of the second harmonic.
- Therefore, when playing the conventional guitar, the player makes the mute, the guitar sounds the second harmonic musical tone. This is the serious problem of the conventional electronic guitar.
- The eleventh embodiment improves the electronic guitar of the above type so that the guitar never produces the harmonics musical tone even when it extracts the harmonics.
- To achieve this, when the frequency of the input signal is approximately doubled, or increased by about one octave, CPU decides that the harmonic waveform is applied to the guitar, and issues a note-off command.
- An arrangement of the eleventh embodiment may be that of Fig. 33. The interrupt routines by interrupt commands INTa and INTb may also be substantially the same as those of the embodiment relating to Fig. 33. Description of the operation of this embodiment will be given mainly in connection of the main routine.
- Figs. 55A and 55B show a flowchart of a main routine used in this embodiment. The main routine is for picking of only one string. In an actual guitar, six strings are used, and
CPU 600 executes the main routine in a time divisional manner. - Before proceeding with the detailed description of the CPU operation, main registers in
work memory 601 will first be described. - A STEP register may contain 0, 1, 2 for a normal mode, and 0, 1, 2, and 3 for an abnormal mode when harmonics are extracted. The contents of the register changes as the string of guitar is picked and vibrates, as shown in Fig. 56(a). The contents of "0" of this register indicates the note-off mode.
- A SIGN register is used for indicating that the zero-cross point for period measurement is located after the maximum peak point or the minimum peak point. The
contents 1 of the register indicates that the zero-cross point after the maximum peak point, and thecontents 2 of the register indicates the zero-cross point after the minimum peak point. - A T register stores the count of
counter 7 at a specific point for measuring the period of an input waveform. - An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/
D converter 11 and latched inlatch 412. An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage. - A P or P' register receives the data representing the measured period. Using the contents of this register,
CPU 600 executes the frequency change control forsound source circuit 9. - As will be described later, for various types of judgement, three constants (threshold levels) are contained in
CPU 600. - The first constants is ONLEVI. As shown in Fig. 56(a), the electronic system of the guitar is in the note-off mode (STEP = 0). In this mode, when a peak level is larger than ONLEVI, the CPU judges that a string has been picked, and starts the period measurement.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU executes the relative-on processing even if the tremolo playing, for example, is used.
- OFFLEV is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEV, the note-off processing is executed (Fig. 56(a)).
- A main routine and interrupt routines, which are used in the sixth embodiment, will be described. The preparatory knowledge as mentioned above will assist you in understanding the routine description to follow.
- In step Q1101 of Figs. 55A and 55B,
CPU 600 initializes the registers, for example, contained in the electric system of the electronic guitar. In step S1102, "0" is set in the STEP register. - If the answer is YES in step Q1103, the CPU advances to step Q1105. In this step, the CPU reads out the registered contents a', b' and t'. Then, the CPU goes to step Q1105, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU sets the peak value b' extracted this time into AMP (a') register.
- In steps Q1106 to Q1108, the CPU checks if the contents of STEP register is 1, 2 or 3. When the system of the electronic guitar under discussion is in the initial condition, the STEP register is 0, and therefore the answer to steps Q1106, Q1107, and Q1108 is NO. In step Q1107, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI.
- If the answer of NO is given in step 01109, the CPU returns to step Q1103. If it derived from low-
pass filter 3 is above ONLEVI, step Q1109 gives the answer of YES and the CPU advances to step Q1110. - In step Q1110, the CPU sets "1 " to the STEP register. In the next step Q1111, the CPU sets the value of a'-register into the SIGN register. The value of a' is "1" at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- In step Q1112, the value of t', i.e., the time at the zero-
cross point Zero 1, is set in the T register. - In this way, the value of a' ( it is "1 " in the case of Fig. 56) is set in the SIGN register, that of b' in the AMP (1) register, and that of t' (the time at the zero-cross point Zero 1) in the T register. Then, the CPU returns to step Q1103, again.
- The processing of the main routine immediately after zero-cross point Zero 1 in Fig. 56(a) is completed through the execution of the sequence of processing steps as explained above.
- The main routine immediately after the zero-
cross point Zero 2 will be described. In this processing, steps Q1103 to A115 will be executed. If the answer YES is given in step Q1106, the CPU advances to step Q1113. - When the input waveform rises at the time of waveform inputting as shown in Fig. 56(a), the SIGN register is "1 ". Since the present wave of the waveform has passed the negative peak, i.e., the minimum peak point, the register is "2" and NO is given. The CPU does not execute any further processing and returns to step Q1103.
- When the zero-
cross point Zero 3 is reached, steps Q1103 to A1106 are executed, step Q113 gives the answer of YES. In step Q114, "2" is set to the STEP register as shown in Fig. 56(b). In step Q11, the time at the zero-cross point Zero 1 in the T register is subtracted from the this-time interrupt time in the t'-register. The result of the subtraction, i.e., the time length P' of one period of the waveform, is stored into the P' register. - In step Q1165, the contents of t'-register is transferred to the T-register, and a new period measurement starts. In step Q1117, the CPU directs
sound source circuit 9 to generate the musical tone at the frequency based on the contents of the P' register, that is, gives a note-on command. The sounding starts from this timing, as shown in Fig. 56(d). - In the main routine immediately after the next zero-cross point Zero 4 (Fig. 56(a)), steps Q1103 to Q1107 are executed. Since the P register contains 2", step Q1107 gives the answer of YES. Then, in step Q118, the CPU checks if the value of b' is above or below OFFLEV (Fig. 56(a)). In this instance, the peak level is still high, and the answer to step Q1118 is YES, and the operation goes to step Q1119.
- In step Q1119, CPU judges whether or not the relative-on processing should be executed. In other words, the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e. checks if the value of the extracted peak point rapidly increases during sounding.
- When a string is picked, the vibration of the string gradually damps toward zero. NO is given in step Q119. In the case where, before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step Q1119 may be YES.
- In this case, the CPU jumps from step 1119 to step Q1110, and then executes step Q9 to step Q11. As a result, the CPU sets "1 " in the STEP register, and subsequently executes the same processing as that of the note-on or sounding start. In other words, after loading "1 " in the STEP register, the CPU executes step Q11106, Q1113 to Q1117, and executes the relative-on processing. At this time, the relative-on processing with the attach is executed.
- In the normal picking, the CPU executes step Q1120 followed by step Q1119, and compares the contents of a'-register with those of the SIGN register. If these do not coincide, this step Q1120 gives NO, and returns to step Q1103 since the present cross-point is
Zero 4, and the SIGN register contains "1 and the a'-register is "2". - When the zero-
cross point Zero 5 is detected, steps Q1103 to Q1107 and Q1118 to Q112n are executed. In step Q1120, YES is given. Steps 1121 and Q1122 are executed to set a new period, i.e., the time fromZero 3 toZero 5, into the P register. - In step Q1123, the CPU checks if P is larger than (1/2 + a) of P' using the this-time and previous period P and P'. In the relation, "a" is selected to be between 0 and 0.06, for example, allowing for an error of semitone or less. For obtaining an exact value of "a", it may be obtained experimentally.
- In step Q1123, normally, YES is given, and then step Q1124 is executed. In this step, the CPU gives a command for frequency change to sound
source circuit 9 according the pitch this detected. - In this way, the frequency may be changed for each semitone or the unit of smaller than semitone, in a real time manner. In the subsequent step Q1125, the contents of the P register is transferred to the P' register in step Q1115, and the CPU returns to step Q3.
- In the processing of the main routine following the interrupt processing, the CPU executes steps Q1103 to Q1107, and Q1118 to Q1120, and returns to Q1103. Alternatively, it executes steps Q1103 to Q1107, and Q1118 to Q1125, when no relative-on processing is executed.
- In step Q1118, if the input peak value is below OFFLEV, step Q1118 gives NO, and in step Q1126, the STEP register is cleared. The note-on processing is executed in step Q1127. As described, the musical tone thus sounded from sound source circuit is stopped.
- When the musical tone is generated with the period (P' in Fig. 56(c)) as the time interval between the zero-cross points Zero 6 and
Zero 7, if a player detaches his finger from the fret to make the mute (left-hand mute), the harmonic sound with the approximately halved period appears, and the zero-cross point Zero 8 is detected. Immediately thereafter, the main routine is processed. In this routine, steps Q1103 to Q1107 and Q1118 to Q1123 are executed, and in step Q1123, P < (11/2 + a) x P' is detected. The CPU advances from step Q1123 to Q1128, to set 3 into the STEP register. In the subsequent step Q1127, t note-off processing is executed. At this time point, the CPU gives a note-off command to sound source circuit. - In the main routine immediately after the zero-
cross point Zero 9, steps Q1103 to Q1108 are executed. In step Q1108, YES is given. Then, control flows to step Q1127. At the zero-cross point Zero 9, the value of b' is larger than OFFLEV (Fig. 56(a)), YES is given. The CPU goes to step Q1130 and executes the processing for relative-on as in step Q1119. - If the answer to step Q1130 is YES, steps Q1110 to Q1112 are executed, and subsequently, the note-on processing is executed.
- In step Q1130, NO is given, and the CPU returns to step Q1103. Hence, steps Q1103 to Q1108 and Q1129 and Q1130 are executed whenever the zero-cross point is reached.
- At the zero-cross point Zero 1 in Fig. Fig 56(a), the next main routine is executed and in steps Q1103 to 1108, and Q1129 are executed. Since the contents of the b'-register are smaller than OFFLEVE, in step Q1129 NO is given. In the subsequent step Q1131, the STEP register is cleared. In this way, the CPU completes a sequence of note-on procedural steps and returns to step Q1103.
- As described above, when the harmonic is input,
CPU 6 detects it and appropriately controls the electric system of the guitar, so that the circuit erroneously operates. Therefore, unnatural musical tones is never sounded from the guitar. Further, the mute (note-off) is made from that time, the performance by the guitar can be made, as the player intends. - Additionally, when the system is in the normal note-off, the STEP register is instantaneously set to "0". When the pitch changes by one octave of more, 3 is set to the STEP register. Then, the CPU waits till the input signal level becomes satisfactorily small, and "0" is set to the register. The string vibration often continues when the harmonic is input. It is possible to prevent the guitar system from being triggered for the relative-on by the waveform with the level above ONLEVI.
- In the above-mentioned embodiment,
CPU 600 executes the interrupt processing at the zero-cross point immediately after each of the maximum and minimum peak points. In the main routine immediately after each peak point, the note-on, period computation, relative-on, and note-off processings are performed. These processings may be immediately after these peak points are detected or upon detection of the zero-cross point immediately before the peak point. Various other suitable measure may be used for the reference point setting up. The correlative method may be used for the pitch extraction. - While in the above-mentioned embodiment, the respective processings are executed in the main flow, these may be executed in the respective interrupt routines.
- While in the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As described above, when the frequency of the input waveform is approximately doubled, that is, increased by about one octave, the CPU decides that the harmonic comes in, and issues a command of note-off. Therefore, the intended mute effects can be obtained, eliminating unnatural musical tone generation.
- A twelfth embodiment of an electronic guitar according to the present invention will be described referring to Figs. 57 to 59B.
- This embodiment improves the pitch change control, which is applied for the sound source circuit.
- In the electronic instrument including electronic guitars, it is a common practice that the pitch is extracted from an input signal waveform, and then control issues to a sound source circuit a command to sound a musical tone at the pitch as defined by the extracted pitch.
- In the instrument of this type, when the pitch change command is frequently applied to the sound source circuit, the sound source circuit cannot follow up the pitch change.
- Particularly in such a case that the pitch of the sounding musical tone is determined based on the pitch data of semitone or less, the sound source circuit needs a long time for the processing based on one pitch change command. Therefore, there is a situation that a new pitch change command is issued when the one command processing is in progress.
- To cope with this, an approach has been proposed, which uses a coarse resolution of the pitch data to specify the pitch (in an extreme case, the semitone is the unitary resolution). This approach, however, is ineffective for discrete pitch variation or vibrato.
- With the view to solve this problem, the twelfth Embodiment provides an electronic guitar in which the sound source circuit can follow up the discrete and rapid pitch variation with improved pitch resolution but without any modification of the sound source circuit, thereby realizing natural musical tone sounding.
- To achieve this, if once a note-on command or a pitch change command is issued, a time count means prohibits the issuance of a new pitch change command until a predetermined period of time elapses. This confines the time interval between the adjacent pitch change commands within a predetermined time period, and ensures a correct processing of the sound source circuit.
- Therefore, the pitch resolution of the sounded musical tone can be increased or made more discrete without the processing speed.
- An overall circuit arrangement of the twelfth embodiment is shown in Fig. 57, and is substantially equal to that of Fig. 33. Like reference symbols are used for like portions, for simplicity.
- In the Fig. 57 circuit, CPU 1200 issues a note-on command to sound
source circuit 9. Upon receipt of this, a sound source circuit progressively controls the frequency of a sounding musical tone according to the time interval data, which are successively obtained. Before a pitch change command is applied to soundsource circuit 9,timer 1208 counts a predetermined time duration or the time duration required for one command execution. More specifically,timer 1208 receives a control signal from CPU 1200, and measures the predetermined time, and then applies an interrupt signal INTc to CPU 1200. Upon receipt of this interrupt command, the CPU executes the interrupt processing. This will be described in detail. As the result of the interrupt processing,sound source circuit 9 generates a musical tone at the frequency as defined by the pitch change command. Sound system sounds the musical tone. - The interrupt processings by interrupt signals INTa and INTb are substantially the same as those of Fig. 34. The description of these will be omitted.
- An interrupt routine by interrupt signal INTc is illustrated in Fig. 58. A main routine of the twelfth embodiment is shown in Figs. 59A and 59B. The main routine is for the processing of the waveform generated by one string. The processing of the main routine is correspondingly applied for the waveforms of other strings. In the actual circuit operation of the electronic guitar, CPU 1200 executes these main routines in a time divisional manner.
- The timing charts of signals of the electronic guitar according to this embodiment, when it receives the input signal of musical tone, are substantially the same as those of Figs. 36 to 38. These figures will be used in this embodiment.
- Before proceeding with the detailed description of the CPU operation, main registers in
work memory 601 will first be described. - A STEP register contains four
contents contents 0 of this register represents the note-off state. - A SIGN register is used for indicating that the zero-cross point for period measurement follows the maximum peak point or the minimum peak point. The
contents 1 of the register indicates the zero-cross point after the maximum peak point, and thecontents 2 of the register indicates the zero-cross point after the minimum peak point. - A REVERSE register stores the data to check whether the interrupt processing has been made, which is executed at the arrival of the zero-cross point after the peak point which is located in opposition to the zero-cross point as given by the SIGN register.
- A T register stores the count of
counter 7 at a specific point to measure the period of the input waveform.Count 7 free runs responsive to a given clock signal. - An AMP (i) register stores the maximum or minimum peak value, more exactly, its absolute value, which is applied from A/
D converter 11 and latched in 12. An AMP (1) register stores the maximum peak value, and an AMP (2) is for minimum peak value storage. - A PERIOD register stores the data of measured periods. On the basis of the contents of this register, CPU 1200 executes the frequency control for
frequency ROM 8 and soundsource circuit 9. - A FLAG register is used for control purposes. When
timer 1208 counts a predetermined time, it contains "0". Before its counting, the FLAG register contains 21". - P and P' registers store the frequency data representing the extracted pitches (including the frequencies of semitone or less expressed in cent, for example).
- As will be described later, for various types of judgement, three constants (threshold levels) are contained in CPU 1200.
- The first constant is ONLEVI. As shown in Fig. 36(a) and Fig. 37(a), the system is in the note-off mode. In this mode, when a peak level higher than ONLEVI is detected, the CPU decides that a string has been picked, and starts the period measurement.
- ONLEVII is used in such a way that in the note-on mode, when the difference between the previous and this-time detection levels is above the level of ONLEVEII, the CPU decides that the tremolo playing is performed, and executes the relative-on processing.
- OFFLEV is used in such a manner that in the note-on mode, if the peak value detected is below this level of OFFLEV, the note-off processing is executed (Fig. 38(a)).
- A main routine and interrupt routines, which are used in the twelfth embodiment, will be described. The preparatory knowledge as mentioned above will assist you in understanding the routine description to follow.
- Upon arrival of interrupt command signal INTc, CPU 1200 executes the interrupt processing shown in Fig. 58. In step S1201, the CPU clears the FLAG register to "0", and completes this routine processing.
- In step Q1201 of the main routine (Figs. 59A and 59B), CPU 1200 judges whether or not the contents of the a'-, b'-, and c'-registers have been stored into
work memory 601, through the interrupt processing. Primed characters a', b' and c' correspond to a, b and c above, and indicate that these items of data have previously stored, respectively. If no interrupt processing has been not executed, the answer to step Q1201 is NO, and CPU 1200 repeats the execution of step Q1201. - If the answer is YES, the CPU advances to step Q1202. In this step, the CPU reads out the registered contents a', b' and t'. Then, the CPU goes to step Q1203, and reads out the peak value at the peak point of the same type (maximum or minimum) which has been stored in AMP (a') register. The CPU sets the peak value b' extracted this time into AMP (a') register.
- In
step 1204 to Q1206, the CPU checks if the contents of STEP register is 3, 2 or 1. When the system of the electronic guitar under discussion is in the initial condition, the STEP register is 0, and therefore the answer tosteps 1204, Q1205 and Q1206 is NO. In step Q1207, the CPU checks if the peak value b' detected this time is above or below the level of ONLEVI. - If the peak value b' is below ONLEVI, the sounding start processing is not executed and the CPU returns to step Q1201. If it is above ONLEVI, as shown in Fig. 36(a) and Fig. 37(a), step Q1207 gives the answer of YES and the CPU advances to step Q1208.
- In step Q1208, the CPU sets "1 " to the STEP register. In the next step Q1209, the CPU sets "0" to the REVERSE register.
- In step Q1210, the CPU inputs the value of a' into the SIGN register. The value of a' is "1 " at the zero-cross point immediately after the maximum peak point, and is "2" at the zero-cross point immediately after the minimum peak point.
- In step Q1211, the value of t' is set in the T register. As the result of it, the value of a' is set in the SIGN register, that of b' in the AMP register, and that of t' in the T register. In this instance, the value of the SIGN register is "1 " (Fig. 36(a) and Fig. 37(a)). Then, the CPU returns to step Q1201 again.
- The processing of the main routine immediately after zero-cross point Zero 1 in Fig. 36(a) and Fig. 37(a) is completed through the execution of the sequence of processing steps as explained above.
- The main routine immediately after the zero-
cross point Zero 2 will be described. In this processing, steps Q1201, Q1202, Q1203, 1204, Q1205 and Q1206 will be executed. If the answer YES is given in step Q1206, the CPU advances to step Q1212. - When the input waveform rises at the time of waveform inputting as shown in Fig. 36(a) and Fig. 37(a), the SIGN register is "1". Since the present wave of the waveform has passed the negative peak, the register is "2" and NO is given. When the zero-cross point immediately after the peak point with the same polarity is reached, this step gives YES. The CPU does not execute any further processing and returns to step Q1201.
- In step Q1212, NO is given, and after that, the CPU advances to Q1213 and sets 2 in the STEP register (see Fig.36(b) and Fig. 37(b)).
- Following step Q1213, the CPU executes step Q1214 and compares the previous peak point (AMP (SIGN)) with the present peak point (b'). If the previous value XO is smaller than the present value (X1>XO) as shown in Fig.36(a), YES will be given. To set up the period measuring start point at time point t' (Fig. 36(c)), the CPU jumps from step Q1214 to steps Q1210 and Q1211, to set 2 in the SIGN register and at the same time to transfer the contents of the t'-register to the T register.
- On the contrary, if the previous peak point is above the present peak point, X1 <X0, as shown in Fig. 37(a), NO is given in step Q1214 and 1 is set in the REVERSE register in step Q1215. In this case, the
previous value 1 is maintained in the SIGN register. As the result of it, the previous zero-cross point Zero 1 is the period measuring start point, in this case (see Fig. 37(c)). - When the CPU executes the main flow after the next zero-cross point (Zero 3) is passed, the CPU advances to step Q1216 after YES is given in step Q1205. The present value of a' is 1, that of the SIGN register is 2 as shown in Fig. 36, and that of the SIGN register is 1 as shown in Fig. 37. Therefore, in the case of Fig. 36, NO is given in step Q1216 and the CPU advances to Q1215 and returns to Q1201. In other words, CPU 1200 recognizes that the first peak point (amplitude X2) is passed after the period measurement starts.
- In Fig. 37, the CPU has the answer of YES in step Q1216 and advances to step Q1217 to check if the value of the REVERSE register is 1. If the value of the REVERSE register is not 1, the CPU judges NO and returns to step Q1201. As mentioned above, after execution of step Q1215, the value of this register is 1. Then, the CPU advances to step Q1217 and Q1218, and
inputs 3 in the STEP register (see Fig. 37(b)). In step S1219, the CPU subtracts the value of the T register, i.e. the time of the zero-cross point Zero 1, from the value of thecounter 7 given by the this-time interrupt processing, and the CPU loads it in the PERIOD register. - The time length PERIOD shown in Fig. 37(c) is that of one period. In step Q1220, the CPU transfers the contents of t'-register to the T register, and starts the new period measurement.
- In the subsequent step Q1240, the CPU computes the pitch of the musical tone to be generated on the basis of the PERIOD register, and loads the pitch data (some other data representing the computed data) into the P' register. The pitch data preferably contains octave, note, and the pitch of semitone or less, which are expressed in the unit of cent. In the next step S1221, CPU 1200 issues a note-on command to sound
source circuit 9 in response to the contents of the P' register. From this time point, the musical tone is generated. The CPU flows to step Q1241. In this step,timer 8 starts its count and counts a predetermined time under control of the CPU. In step Q1242, "1 " is set in the FLAG register. - In the case of Fig. 36, the main flow after the next zero-
cross point Zero 4 is executed again, and the CPU jumps from step Q1205 to Q1216. Since the value of the SIGN register is now 2, YES is given in step Q1216. Subsequently, steps Q1217 to Q1240, Q1221, and Q1241 to 1242 are executed. At this time, CPU 1200 recognizes the time interval from zero-cross points Zero 2 toZero 4 shown in Fig. 36(c), as one period. The guitar starts the sounding of the musical tone at the frequency as defined by the time length recognized (see Fig. 36-(d)). - Thus, the period measurement is executed from the next zero-cross point after the peak point whose value is larger. The period measurement is completed at the next zero-cross point located in the same side as the previous peak point. As the result of it, one period of low-
pass filter 3 output waveform is extracted. - After the sounding start processing, the CPU advances from
step 1204 to step Q22 in the main routine processing, and checks if the value of the present peak point b' is above OFFLEV as shown in Fig. 38. - If now that value is above this level, the CPU advances to step Q1223, and judges whether or not the relative-on processing should be executed. In other words, the CPU checks if the value of the present peak point (b') is above that of the previous peak point by ONLEVII, i.e. checks if the value of the extracted peak point rapidly increases during sounding.
- When a string is picked, the vibration of the string gradually damps toward zero. NO is given in step Q23. In case that before the vibration of the string previously picked damps to zero, another string is picked by the tremolo playing, for example, the answer to step Q23 is often YES.
- In this case, the CPU jumps to step Q1208 after judging YES in Q23, and then executes step Q1209 to step Q1211. As a result, the CPU sets "1" in the STEP register, and subsequently executes the same processing as that of the sounding start. In other words, after loading "1" in the STEP register, the CPU executes step Q1216 to step Q1221 again, and executes the relative-on processing.
- In the normal picking, the CPU executes step Q1223 followed by step Q1224, and compares the contents of a'-register with those of the SIGN register. If these do not coincide, the CPU advances to step Q1215 for the interrupt processing at the next zero-cross point. If these coincide, the CPU proceeds to step Q1202 because the present wave of the waveform has the peaks with the opposite polarities (positive and negative peaks) in the past. Then the CPU judges whether or not the value of the REVERSE register is "1 ". If the result is NO, it returns directly to step Q1201. If YES is given, the CPU advances from step Q1225 to step Q1226. Then the contents of the T register is subtracted from those of the t' register for obtaining a new period, and the result is set in the PERIOD register.
- In step Q1227, the contents of t' register are transferred to the T register. In the next step Q1229, CPU 1200 clears the REVERSE register and executes the next period measurement.
- In the subsequent step 1243, the CPU checks if the FLAG register contains "0". If the answer is NO, the CPU returns to step Q1201. No pitch change processing is performed on the period data as stored in the PERIOD register. When YES is given in step Q1241, that is, timer Q1208 has counted time from the previous note-on processing and pitch change processing, and the interrupt processing (Fig. 58) has been made, if a new frequency change command is applied to sound
source circuit 9, thecircuit 9 accepts the command for its appropriate processing. - Control flows to the next step Q1244, whose processing is similar to that of step Q1240. In the step Q1244, the pitch frequency data is set to the P register. In step Q1245, the CPU checks if the frequency data stored in the P' register is coincident with that in the P register obtained this time.
- If these are coincident, no frequency change is required, and control flows from step Q1245 to Q1201. If these are not coincident, the CPU decides that the frequency of the input signal has been changed by the guitar playing, for example, and executes the following processing to change the frequency of the output musical tone.
- When NO is given in step Q1245, control flows to step Q1228. In this step, the pitch data in the register is transferred to sound
source circuit 9. In response to a new pitch change command, the circuit changes the old frequency of the musical tone to the new one. - In step Q1228, CPU 1200 transfers the contents of the P register to the P' register, and in steps Q1241 and 1242, is ready for the next pitch change.
- Thus, this embodiment discretely and momen- tly picks up a variation of the frequency of string vibration, and controls the frequency according to the picked up discrete data in a real time manner.
- As described above, when the string vibration damps and the peak value becomes below the level of OFFLEV, as shown in Fig. 38, the CPU jumps from step Q1222 to step Q1230 to clear the STEP register. In the next step Q1231, the note-off processing is executed, and the CPU gives the note-off command to sound
source circuit 9, to stop the sounding of musical tone. - As seen from the foregoing, after the note-on command and the note-off command are applied to sound
source circuit 9, and further at least a predetermined time counted bytimer 1208, viz., the time required forsound source circuit 9 to complete its processing, is elapsed, a new pitch change command is applied to soundsource circuit 9. Therefore, the electronic guitar of this embodiment can execute the satisfactory processing when receiving a musical tone with continually and rapidly changing pitches. This can be realized with high resolution of pitch, and regardless of the data transfer speed between CPU 1200 and soundsource circuit 9. - As soon as a note-on command or a note-off command is issued, CPU 1200 executes the corresponding processing, and gives a necessary command to sound
source circuit 9. In this respect, the guitar system is good in response. - In the above-mentioned embodiment, the CPU executes the interrupt processing at the zero-cross point immediately after each peak point followed by the various types of processings such as the sounding start, period calculation, relative-on and note-off. If necessary, these processings can be executed when each peak point is detected or when the zero-cross point immediately before the peak point is detected. Any other suitable measure may be taken for obtaining the reference point. If necessary, an additional pitch extraction system may be used, which is based on the auto-correlation function.
- While in the above-mentioned embodiment, the present invention is applied for the electronic guitar, it can be applied for any other systems of the type in which pitches are extracted from a sound signal or an electrical vibration as input from a microphone, for example, and an acoustic signal, which is different from the original signal, is generated at the pitches or note frequencies corresponding to those of the original signal. Specific examples of such are electronic pianos with key boards, electronic wind instruments, electronic string instruments such as electronic violins and koto (Japanese string instrument).
- As described above, once a note-on command or a pitch change command is issued, an additional pitch change command is prohibited until the time count means counts a predetermined time. Therefore, the electronic guitar of this embodiment has a high pitch resolution with a low frequency of outputting the pitch change commands.
- It should be understood that the novel technical ideas with satisfactory inventive steps, which are presented in the first to twelfth embodiments may be applied, individually and in combination, to musical instruments. It is evident to those skilled in the art that the present invention may further be modified and changed variously within the scope of the invention.
Claims (4)
characterized by:
Applications Claiming Priority (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP253487/86 | 1986-10-24 | ||
JP61253487A JPS63106795A (en) | 1986-10-24 | 1986-10-24 | Input controller for electronic musical instrument |
JP61282142A JPS63136088A (en) | 1986-11-28 | 1986-11-28 | Input controller for electronic musical instrument |
JP282142/86 | 1986-11-28 | ||
JP61283292A JP2555551B2 (en) | 1986-11-28 | 1986-11-28 | Input waveform signal controller |
JP283292/86 | 1986-11-28 | ||
JP61285985A JPS63139399A (en) | 1986-12-02 | 1986-12-02 | Input controller for electronic musical instrument |
JP285985/86 | 1986-12-02 | ||
JP286745/86 | 1986-12-03 | ||
JP61286745A JPS63141099A (en) | 1986-12-03 | 1986-12-03 | Input controller for electronic musical instrument |
JP62004714A JP2508044B2 (en) | 1987-01-12 | 1987-01-12 | Electronic musical instrument input control device |
JP4714/87 | 1987-01-12 | ||
JP62050381A JPH07104666B2 (en) | 1987-03-06 | 1987-03-06 | Pitch extractor |
JP50381/87 | 1987-03-06 | ||
EP19870115594 EP0264955B1 (en) | 1986-10-24 | 1987-10-23 | Apparatus for determining the pitch of a substantially periodic input signal |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP87115594.1 Division | 1987-10-23 | ||
EP19870115594 Division EP0264955B1 (en) | 1986-10-24 | 1987-10-23 | Apparatus for determining the pitch of a substantially periodic input signal |
Publications (3)
Publication Number | Publication Date |
---|---|
EP0493374A2 true EP0493374A2 (en) | 1992-07-01 |
EP0493374A3 EP0493374A3 (en) | 1992-11-19 |
EP0493374B1 EP0493374B1 (en) | 1998-04-29 |
Family
ID=27563289
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19870115594 Expired - Lifetime EP0264955B1 (en) | 1986-10-24 | 1987-10-23 | Apparatus for determining the pitch of a substantially periodic input signal |
EP92105224A Expired - Lifetime EP0493374B1 (en) | 1986-10-24 | 1987-10-23 | Apparatus for generating a musical tone signal in accordance with an input waveform signal |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19870115594 Expired - Lifetime EP0264955B1 (en) | 1986-10-24 | 1987-10-23 | Apparatus for determining the pitch of a substantially periodic input signal |
Country Status (3)
Country | Link |
---|---|
EP (2) | EP0264955B1 (en) |
DE (2) | DE3752185T2 (en) |
HK (1) | HK1005348A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0196700A (en) * | 1987-10-08 | 1989-04-14 | Casio Comput Co Ltd | Input controller for electronic musical instrument |
CN108333506A (en) * | 2018-04-08 | 2018-07-27 | 杭州欣美成套电器制造有限公司 | A kind of nearly zero-signal extraction and alternating-current switch position detecting circuit |
CN111030412B (en) * | 2019-12-04 | 2022-04-29 | 瑞声科技(新加坡)有限公司 | Vibration waveform design method and vibration motor |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2138988A (en) * | 1983-02-27 | 1984-10-31 | Casio Computer Co Ltd | Electronic musical instrument |
GB2162989A (en) * | 1984-08-09 | 1986-02-12 | Casio Computer Co Ltd | Tone information processing device for an electronic musical instrument |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4627323A (en) * | 1984-08-13 | 1986-12-09 | New England Digital Corporation | Pitch extractor apparatus and the like |
-
1987
- 1987-10-23 DE DE19873752185 patent/DE3752185T2/en not_active Expired - Lifetime
- 1987-10-23 EP EP19870115594 patent/EP0264955B1/en not_active Expired - Lifetime
- 1987-10-23 DE DE19873784830 patent/DE3784830T2/en not_active Expired - Lifetime
- 1987-10-23 EP EP92105224A patent/EP0493374B1/en not_active Expired - Lifetime
-
1998
- 1998-05-20 HK HK98104364A patent/HK1005348A1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2138988A (en) * | 1983-02-27 | 1984-10-31 | Casio Computer Co Ltd | Electronic musical instrument |
GB2162989A (en) * | 1984-08-09 | 1986-02-12 | Casio Computer Co Ltd | Tone information processing device for an electronic musical instrument |
Also Published As
Publication number | Publication date |
---|---|
EP0264955A2 (en) | 1988-04-27 |
DE3752185D1 (en) | 1998-06-04 |
DE3752185T2 (en) | 1998-08-27 |
DE3784830D1 (en) | 1993-04-22 |
EP0493374B1 (en) | 1998-04-29 |
EP0493374A3 (en) | 1992-11-19 |
DE3784830T2 (en) | 1993-10-14 |
EP0264955A3 (en) | 1989-08-30 |
EP0264955B1 (en) | 1993-03-17 |
HK1005348A1 (en) | 1998-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5018428A (en) | Electronic musical instrument in which musical tones are generated on the basis of pitches extracted from an input waveform signal | |
US6930236B2 (en) | Apparatus for analyzing music using sounds of instruments | |
Su et al. | Sparse Cepstral, Phase Codes for Guitar Playing Technique Classification. | |
JP2799364B2 (en) | Pitch recognition method and device | |
Chen et al. | Electric Guitar Playing Technique Detection in Real-World Recording Based on F0 Sequence Pattern Recognition. | |
WO2002047064A1 (en) | Method for analyzing music using sounds of instruments | |
WO2006132599A1 (en) | Segmenting a humming signal into musical notes | |
EP1579419A1 (en) | Audio signal analysing method and apparatus | |
WO2004051622A1 (en) | Musical composition data creation device and method | |
JP3996565B2 (en) | Karaoke equipment | |
Wong et al. | Automatic lyrics alignment for Cantonese popular music | |
EP0493374A2 (en) | Electronic musical instrument in which musical tones are generated on the basis of pitches extracted from an input waveform signal | |
US5710387A (en) | Method for recognition of the start of a note in the case of percussion or plucked musical instruments | |
Kitahara et al. | Instrogram: A new musical instrument recognition technique without using onset detection nor f0 estimation | |
US4924746A (en) | Input apparatus of electronic device for extracting pitch from input waveform signal | |
JPH0675562A (en) | Automatic musical note picking-up device | |
JP6135312B2 (en) | Electronic stringed instrument, musical sound control method and program | |
US5606145A (en) | Code changing method for electronic music instrument with automatic accompaniment function and slur processing | |
JPH0648556Y2 (en) | Input control device for electronic musical instruments | |
JP2611263B2 (en) | Sound control device | |
JP2508035B2 (en) | Input waveform signal controller | |
Kalyan et al. | Audio segmentation using a priori information in the context of Karnatic Music | |
Drugman et al. | Guitar as controller | |
JP2014134756A (en) | Electronic stringed instrument, musical sound generation method, and program | |
JP6255725B2 (en) | Musical sound generating apparatus, musical sound generating method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19920423 |
|
AC | Divisional application: reference to earlier application |
Ref document number: 264955 Country of ref document: EP |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): DE FR GB IT |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): DE FR GB IT |
|
17Q | First examination report despatched |
Effective date: 19960529 |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AC | Divisional application: reference to earlier application |
Ref document number: 264955 Country of ref document: EP |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB IT |
|
REF | Corresponds to: |
Ref document number: 3752185 Country of ref document: DE Date of ref document: 19980604 |
|
ITF | It: translation for a ep patent filed | ||
ET | Fr: translation filed | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed | ||
REG | Reference to a national code |
Ref country code: GB Ref legal event code: IF02 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20061018 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20061019 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: IT Payment date: 20061031 Year of fee payment: 20 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: PE20 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20071022 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20061010 Year of fee payment: 20 |