EP0493374B1 - Apparatus for generating a musical tone signal in accordance with an input waveform signal - Google Patents
Apparatus for generating a musical tone signal in accordance with an input waveform signal Download PDFInfo
- Publication number
- EP0493374B1 EP0493374B1 EP92105224A EP92105224A EP0493374B1 EP 0493374 B1 EP0493374 B1 EP 0493374B1 EP 92105224 A EP92105224 A EP 92105224A EP 92105224 A EP92105224 A EP 92105224A EP 0493374 B1 EP0493374 B1 EP 0493374B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- cpu
- register
- zero
- signal
- waveform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 description 70
- 239000011295 pitch Substances 0.000 description 24
- 238000005259 measurement Methods 0.000 description 16
- 238000001514 detection method Methods 0.000 description 15
- 238000000605 extraction Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013016 damping Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000000087 stabilizing effect Effects 0.000 description 2
- 101100026210 Drosophila melanogaster Clbn gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000005236 sound signal 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 apparatus for generating a musical tone signal in accordance with an input waveform signal, and more particularly to an electronic string instrument such as an electronic guitar or a guitar synthesizer incorporating such an apparatus.
- 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. In order to prevent these 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 a flip-flop at the peak points, to generate a period signal, e.g., a rectangular wave signal.
- a period signal e.g., a rectangular wave signal.
- 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 it is suggested to measure 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 disclosed in this 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 conventional systems 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 US-A-4,606,255) 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.
- this system yields high costs because the mechanical parts are used, and can imperfectly remove the resonance.
- document GB-A-2 138 988 on which the preamble of present independent claim 1 is based discloses an apparatus for generating a musical tone signal in accordance with an input waveform signal comprising detecting means for detecting an amplitude level and a frequency of an input waveform signal as well as sounding commanding means for providing a command to generate a musical tone having the frequency of the input waveform signal detected by the detecting means.
- a level judging means judges whether the amplitude level of the input waveform signal detected by the detecting means is below a predetermined value. However, the note-off processing at once executes to stop the sounding if the peak level is below a predetermined level.
- document GB-A-2 162 989 discloses an electronic musical instrument having a sampling function wherein an input waveform signal is stored and the desired pitch is assigned to the stored signal to generate a desired musical sound. According to this conventional system a zero-crossing point of the stored waveform signal is detected and the level of the waveform signals is compared with a predetermined level.
- 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, minimum peak detector (MIN) 5, zero cross point detector 6 and A/D converter 411.
- MAX maximum peak detector
- MIN minimum peak detector
- A/D converter 411 A/D converter
- 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 6 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 600.
- 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 output of the zero-cross point detector 6 are applied to AND gate 225.
- the output signal from AND gate 225 is applied as interrupt 6 signal INTbn (where n is any of 1 to 6 figures) to CPU 600.
- interrupt signal INTan is applied to CPU 600.
- interrupt signal INTbn is applied to CPU 600.
- CPU 600 Immediately after receiving the interrupt signal INTan or INTbn, CPU 600 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 600 is never interrupted.
- CPU 600 When CPU 600 receives interrupt signal INTan for the zero-cross point encountered immediately after the maximum peak point is detected, CPU 600 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 600 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 600 stores the counts of counter 7 into work memory 601. The time count data as the count difference is transferred from CPU 600 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.
- 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.
- each latch 412 latches the maximum or minimum peak point of the input signal waveform, so that CPU 600 can readily fetch these peak values.
- each OR gate 413 is applied as each signal L1 to L6 to CPU 600.
- Fig. 1 Some examples of the output waveform of the low-pass filter are illustrated in Fig. 1.
- the waveform as shown in Fig. 1(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. 1(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. 1(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. 1(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 example 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. 2 An overall circuit arrangement of the example is illustrated in Fig. 2.
- 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. 3, 4A and 4B. 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. 5(b) or Fig. 6(b), as the string is picked and vibrates (Fig. 5(a) or Fig. 6(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 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. 7).
- 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. 3.
- step P1 When receiving interrupt signal INTa, the CPU executes step P1 and sets the a-register to "1".
- the CPU 600 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 600 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 600 sets the peak value b' extracted this time into AMP (a') register.
- step Q4 to Q6 the CPU 600 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 600 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. 5(a) and Fig. 6(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 600 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 600 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.5(b) and Fig.6(b)).
- step Q14 the CPU 600 executes step Q14 and compares the previous peak point (AMP (SIGN)) with the present peak point (b'). If the previous value X0 is smaller than the present value (X1>X0) as shown in Fig. 5(a), YES will be given.
- the CPU 600 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. 6(c)).
- step Q16 When the CPU 600 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. 5, and that of the SIGN register is 1 as shown in Fig. 6. Therefore, in the case of Fig. 5, 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 600 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 600 advances to step Q17 and Q18, and inputs 3 in the STEP register (see Fig. 6). In step 19, the CPU 600 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 T register i.e. the time of the zero-cross point Zero 1
- the time length PERIOD shown in Fig. 6(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 600 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. 7.
- the CPU 600 advances to step Q23, and judge whether or not the relative-on processing should be executed. In other words, the CPU 600 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 600 jumps to step Q8 after judging YES in Q23, and then executes step Q9 to step Q11.
- the CPU 600 sets "1" in the STEP register, and subsequently executes the same processing as that of the sounding start.
- the CPU 600 executes step Q16 to step Q21 again, and executes the relative-on processing.
- the CPU 600 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 600 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 600 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 600 executes the frequency control for frequency ROM8 and sound source circuit 9.
- this example 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 600 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 600 jumps from step Q22 to step Q30 to clear the STEP register.
- step Q31 the note-off processing is executed, and the CPU 600 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 600 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. 8 indicates an input waveform, (k) an envelope connecting positive peaks, (1) a waveform of a positive peak detect signal, (m) an envelope connecting negative peaks, and (n) a waveform of a negative peak detection signal.
- control gives a note-off command.
- FIG. 9 An overall arrangement of this embodiment is shown in Fig. 9. This arrangement is substantially equal to that of Fig. 2. Like portions are designated by like symbols in Fig. 2, 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 1000 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. 12, 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. 11 A main routine of CPU 1000 is illustrated in Fig. 11.
- a interrupt routine which is applied for CPU 1000, may be substantially equal to that of CPU 600 of Fig. 3. 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. 5 and 6 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. 5(b) or Fig. 6(b), as the string is picked and vibrates (Fig. 5(a) or Fig. 6(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. 12. 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. 12(a)).
- step S1001 of the main routine CPU 1000 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 1000 reads out the registered contents a', b' and t'. Then, the CPU 1000 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 1000 sets the peak value b' extracted this time into AMP (a') register.
- step S1004 to S1006 the CPU 1000 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 1000 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 1000 advances to step S1008.
- step S1008 the CPU 1000 sets "1" in the STEP register.
- step S1009 the CPU 1000 sets "0" in the REVERSE register.
- step S1010 the CPU 1000 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. 5(a) and Fig. 6(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 1000 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 1000 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 1000 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. 5(b)).
- step S1014 the CPU 1000 executes step S1014, and compares the previous peak point (AMP (SIGN)) with the present peak point (b'). If the previous value X0 is smaller than the present value (x1>x0) as shown in Fig. 5(a), YES will be given.
- the CPU 1000 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. 6(C)).
- step S1016 When the CPU executes the main flow after the next zero-cross point (Zero 3) is passed, the CPU 1000 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. 5, and that of the SIGN register is “1” as shown in Fig. 6. Therefore, in the case of Fig. 5, NO is given in step S1016 and the CPU 1000 advances to step S1015 and returns to step S1001. In other words, CPU 1000 recognizes that the first peak point (amplitude ⁇ 2) is passed after the period measurement starts.
- step S1016 the CPU 1000 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 1000 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. 6(b)). In step S1019, the CPU 1000 substracts 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 1000 loads it in the PERIOD register. 6
- 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.
- 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 1000 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 1000 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.
- the CPU 1000 jumps to step S1008 after judging YES in S1023, and then executes the preparatory processing for note-on in step S1009 to step S1001.
- the CPU 1000 sets "1" in the STEP register, and subsequently executes the same processing as that of the sounding start.
- the CPU 1000 executes step S1016 to step S1021 again, and executes the relative-on processing.
- step S1023 the CPU 1000 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 1000 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 1000 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 1000 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 1000 advances from step S1028 to step S1029, and clears the REVERSE register, and finally executes the period measuring.
- step S1030 CPU 1000 decides that the present contents of the STEP register is 3.
- the CPU 1000 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. 8, 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. 10 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.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Description
Claims (4)
- Apparatus for generating a musical tone signal in accordance with an input waveform signal, comprising:detecting means (P1-P6, 8, 1000, S1001-S1021, S1023-S1029) for detecting an amplitude level and a frequency of an input waveform signal;sounding commanding means (1000, S1021) for providing a command to generate a musical tone having the frequency of the input waveform signal detected by said detecting means (P1-P6, 8, 1000, S1001-S1021, S1023-Sl029), andlevel judging means (1000, S1031) for judging whether the amplitude level of said input waveform signal detected by said detecting means is below a predetermined value;continue judging means (1000, S1035) for judging whether the input signal amplitude level below the pretermined level continues for a pretermined period of time; andsounding stop commanding means (1000, S1037) for stopping sounding when said continue judging means (1000, S1035) judges that said input signal amplitude level state continues for the predetermined time.
- The apparatus according to claim 1, characterized in that said detecting means (P1-P6, 8, 1000, S1001-S1021, S1023-S1029) includes:measuring means (P1-P6, 7, S1014-S1020, S1023-S1027) for measuring a given time period of said input waveform signal; anddetermining means (8, 1000, S1021, S1028) for determining the frequency of said input waveform signal based on the measured time period.
- The apparatus according to claim 2, characterized in that said measuring means (P1-P6, 7, S1014-S1020, S1023-S1027) measures a time duration between two zero-cross points following two successive peak points having a predetermined polarity of said input waveform signal.
- The apparatus according to claim 2, characterized in that said measuring means (P1-P6, 7, S1014-S1020, S1023-S1027) measures a time duration between two zero-cross points immediately before two successive peak points having a predetermined polarity of said input waveform signal.
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 EP0493374A2 (en) | 1992-07-01 |
EP0493374A3 EP0493374A3 (en) | 1992-11-19 |
EP0493374B1 true 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 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4633748A (en) * | 1983-02-27 | 1987-01-06 | Casio Computer Co., Ltd. | Electronic musical instrument |
JPS6145298A (en) * | 1984-08-09 | 1986-03-05 | カシオ計算機株式会社 | Electronic musical instrument |
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
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 |
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 |
EP0493374A2 (en) | 1992-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2615825B2 (en) | Electronic string instrument | |
JP2799364B2 (en) | Pitch recognition method and device | |
EP0318675B1 (en) | Apparatus for extracting pitch data from an input waveform signal | |
US5018428A (en) | Electronic musical instrument in which musical tones are generated on the basis of pitches extracted from an input waveform signal | |
EP0493374B1 (en) | Apparatus for generating a musical tone signal in accordance with an input waveform signal | |
US5710387A (en) | Method for recognition of the start of a note in the case of percussion or plucked musical instruments | |
JP3653854B2 (en) | Stringed electronic musical instrument | |
JP2532424B2 (en) | Waveform signal input controller | |
JP2792022B2 (en) | Electronic musical instrument input control device | |
JP2581068B2 (en) | Waveform signal controller | |
JP2508044B2 (en) | Electronic musical instrument input control device | |
Zhao et al. | Musical pitch tracking using internal model control based frequency cancellation | |
JP2508692B2 (en) | Input waveform signal controller | |
JP2555553B2 (en) | Input waveform signal controller | |
JPH0782320B2 (en) | Music control device | |
US5606145A (en) | Code changing method for electronic music instrument with automatic accompaniment function and slur processing | |
JPH0727512Y2 (en) | Input control device for electronic musical instruments | |
JP2765578B2 (en) | Waveform signal controller | |
JPH0648556Y2 (en) | Input control device for electronic musical instruments | |
JPH07104666B2 (en) | Pitch extractor | |
JP2605667B2 (en) | Electronic musical instrument input control device | |
JPH083711B2 (en) | Input waveform signal controller | |
JP2591001B2 (en) | Electronic string instrument | |
JP2661065B2 (en) | Sound control device | |
JP2591000B2 (en) | Electronic string instrument |
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 |