A fully digitalized function-of-time generator suitable for use as a tone envelope generator in a digital electronic musical instrument, comprising: a clock pulse generator for generating a clock pulse at a selectable rate; a gate enabled at each arrival of the clock pulse; a single-stage binary shift register for successively shifting out its contents as a digital word representing the instantaneous values of a desired function of time synchronously with the clock pulse; a digital subtractor; a digital multiplier; and a digital adder, all of these members being interconnected to each other to be operative so that the output of the register is subtracted from a first set value representing a digital word, the resulting difference being multiplied by a second set value representing a digital word, the resulting product being added to the output of the register via the gate, so that the resulting sum is loaded into the register. Thus, the contents of the register approaches progressively toward the first set value, and finally becomes in agreement therewith. Thus, this musical instrument can produce a musical tone rich in expression and imparted with desired tone envelope characteristic, by appropriate choice of one or more of the first and the second values and the rate of the clock pulse.
|
1. A variable function generator, comprising, in combination:
a first means having a first input terminal for receiving a first input signal, a second input terminal for receiving a second input signal, an output terminal for generating an output signal proportional to the difference of said first and second input signals from said output terminal, a second means for repeatedly transmitting the output signal of said first means at predetermined time intervals, a third means having a third input terminal connected to the output terminal of said first means through said second means, a fourth input terminal receiving said second input signal, and an output terminal for generating a sum signal of the output signal of said first means and said second input signal, the sum signal being used as a renewed second input signal, a fourth means for providing a plurality of voltage levels and delivering a selected one of said voltage levels as said first input signal.
2. A variable function generator according to
3. A variable function generator according to
4. A variable function generator according to
5. A variable function generator according to
trigger signal. 6. A variable function generator according to claim 1, wherein said first means includes variable means for selecting the proportionality constant of the output signal to the difference of said first and second input signals. 7. A variable function generator according to claim 1, wherein said sum signal (Sb) changes according to the formula Sb =Sa -(Sa -Sb0)exp(-ct/τ) where: Sa is the first input signal level; Sb0 is the initial value of the second input signal level; c is a positive constant determining the proportionality constant e-c. ; τ is the time interval; and t is time. 8. A variable function generator adapted for use in an electronic musical instrument comprising the combination of claim 1, and a keyboard, the depression in the keyboard initiating the operation of said combination. 9. A variable function generator adapted for use in an electronic musical instrument comprising the combination of claim 312, a keyboard, and a trigger signal generator means for generating said trigger signal upon key depression and key release in the keyboard and upon coincidence of said first and second input signals. 0. The variable function generator according to claim 9, wherein said combination includes a fifth means for generating a timing pulse train of a variable interval activated by said trigger signal and supplying the timing pulse to said second means. 11. A variable digital function generator adapted for use in an electronic musical instrument comprising: a variable digital level setting means for generating a first digital signal of a variable level, the level setting means capable of varying the signal level upon receipt of a trigger signal; a variable timing pulse generator for generating a timing pulse signal of a variable time interval, the timing pulse generator capable of varying the time interval upon receipt of a trigger signal; a digital subtractor means receiving said first digital signal and a second digital signal and generating a digital output signal representative of the difference of said two input signals; a digital multiplier means for multiplying a constant smaller than unity to the digital output signal of said subtractor means; a gate means for allowing the passage of the output signal of said multiplier means upon receipt of said timing pulse signal; an adder means for generating a digital sum signal of said second digital signal and the output signal of said multiplier means supplied through said gate means; and a register means for delivering said sum signal as said second digital signal, thereby the output of said register means generating a digital output signal varying from an initial value to said first digital signal level in an exponential manner. 12. A variable function generator according to claim 1, wherein said fourth means includes means for changing the selected voltage level upon reception of a trigger signal. 13. A variable function generator according to claim 1, further comprising: a fifth means for generating a timing pulse train of a selectable time interval and supplying it to said second means for determining said predetermined time interval. 14. A variable function generator according to claim 13, wherein said fifth means includes means for changing the selected time interval upon reception of a trigger signal. 15. An electronic musical instrument comprising: an envelope generator which is composed of a cyclic digital filer whose transfer characteristic changes with the amount of feedback thereto; an envelope level memory for storing its input level to control the waveshape level in accordance with the attack, decay, sustain and release of an envelope waveshape; and an envelope speed memory for storing the filter constant of the digital filter to control the envelope speed in accordance with the attack, decay, sustain and release of the envelope waveshape, wherein the transfer characteristic of the cyclic digital filter is controlled by changing the amount of feedback thereto with the output data of the envelope speed memory to generate a required envelope waveshape. |
This is a continuation of application Ser. No. 34,925 filed Apr. 25, 1979, and now abandoned which is a Reissue application of 769,303, filed Feb. 16, 1977, which matured into U.S. Pat. No. 4,135,424, issued Jan. 23, 1979. Subtractor 11, multiplier 12, gate 13, adder 14, and shift register 15, in effect define a digital filter having transfer characteristics which change with the amount of feedback.
The operation of the digital function-of-time generator shown in FIG. 1 will hereunder be explained with reference to FIGS. 2A and 2B.
Let us now consider, by referring to FIG. 2A, the variation with time of the contents Sb of the register 15 in the instance wherein the first set value Sa is set so as to be greater than the value of the content Sb0 existing at time t0 in the register 15. In this instance, the initial difference D0 is multiplied, at the multiplier 12, by the second set value Sc which is less than one (1). The resulting product D0 ×Sc which is smaller than the initial difference D0 is applied to the adder 14 at time t1 at which time the first clock pulse CK arrives, and the resulting product which is applied to the adder 14 is added to the contents Sb0. The resulting sum (D0 ×Sc +Sb0) is loaded to the register 15. The difference D1 between the first set value Sa and the content Sb1 =D0 ×Sc +Sb0 loaded now in the register 15 is then multiplied by the second set value Sc. The resulting product D1 ×Sc is then added to the content Sb1 at time t2 at which time the next clock pulse CK arrives. The resulting sum D2 =D1 ×Sc +Sb1 is then loaded to the register 15. As stated above, the value of the content Sb of the register 15 will progressively approach toward the first set value Sa along the broken line curve C1 shown in FIG. 2A at each arrival of the clock pulse CK. Ultimately, the value of the content Sb in the register 15 will become in agreement with the first set value Sa. In this state, the difference D is nil. It should be understood here that the broken line curve C1 indicates a function of time which is generated in digital representation by the digital function-of-time generator shown in FIG. 1. Strictly speaking, the shape of the function is time-slottedly stepwise, but for the sake of convenience the shape is shown as a gradually changing continuous curve herein. Thus, the transfer characteristic is controlled by changing the amount of feedback thereto with the output data of the envelope speed memory to generate a required envelope waveshape.
The operation in the instance wherein the first set value Sa is set so as to be smaller than the value of the content Sb0 existing at time t0 in the register 15 need only to be considered similar to that stated previously. In such an instance, there is obtained a function of time which is shown by the broken line curve C2 shown in FIG. 2B.
The broken line curves C1 and C2 shown in FIGS. 2A and 2B, i.e. the forms of the generated functions of time, are dependent upon the first set value Sa, the second set values Sc and the rate of the clock pulse CK, respectively. More particularly, by setting the rate of the clock pulse CK so as to be quicker, and by setting the first set value Sa so that the difference D=Sa -Sb will take a larger value, and by setting the second set value Sc so as to be substantially smaller than one (1), the broken line curves C1 and C2 will become steep.
As such, with the digital function-of-time generator of the present invention, it is possible to generate a required function of time simply by properly choosing the first and second set values Sa and Sc and the rate of the clock pulse CK.
A concrete example of the digital function-of-time generator of the present invention intended for use as the envelope shape generating means in a digital electronic musical instrument will hereunder be explained in detail by referring to FIGS. 3 through 7.
In FIG. 3 is shown a digital electronic musical instrument embodying the present invention, which comprises: a keyboard section 21; a tone waveshape generator section 22; a digital multiplier 23; an envelope shape generator 24 which embodies the present invention; and a sounding system including a digital-to-analog (D/A) converter 25, an amplifier 26 and a loud speaker 27. The tone waveshape generator section 22 is adapted to successively generate digital words representative of sample values constituting a tone waveshape selected by the keyboard section 21. The tone waveshape generator section 22 is illustrated herein simply by block, because its structure may be of a conventional form. For instance, the tone waveshape generator section 22 may have such an arrangement as that shown in U.S. Pat. No. 3,809,786 entitled COMPUTOR ORGAN in which a tone waveshape is digitally produced by implementing, in synchronism with a timing pulse Φ, a discrete Fourier algorithm.
The tone waveshape which is generated from the tone waveshape generator section 22, the amplitude of which remains constant relative to time, is multiplied at a digital multiplier 23 by an envelope waveshape Sb which is generated from an envelope shape generator 24, so that the tone waveshape which is provided with the envelope characteristics such as the attack, decay and so forth is obtained at the output of the digital multiplier 23. The digital words outputted from the digital multiplier 23 are then converted to analog voltages by the D/A converter 25, and these analog voltages are amplified at the amplifier 56 to drive the speaker 27.
The operation of the whole system will be explained hereunder more concretely by referring to FIGS. 4A, 4B and 4C. During the period of time that a certain key of the keyboard not shown is depressed, there is delivered from the keyboard section 21 a key-on-signal KON as that shown in FIG. 4A. Upon generation of this key-on signal KON, the envelope generator 24 will generate an envelope waveshape Sb in digital word representations defining a waveshape as shown in FIG. 4B, to be applied to the digital multiplier 23. Thus, as shown in FIG. 4C, there is obtained, at the output of the amplifier 26, an analog tone waveshape having an envelope corresponding to the envelope waveshape Sb.
FIG. 5 shows a concrete example of the envelope shape generator 24 shown in FIG. 3, which includes: a function calculating section 300 having the same arrangement as that of the basal embodiment of the present invention illustrated in FIG. 1; a clock pulse generating section comprising pulse generators 650, 660 and 670, AND gates 651, 661 and 671, and an OR gate 690; a level setting section comprising level setters 610, 620 and 630, gate circuits 611, 621 and 631, and an OR circuit (bit-by-bit OR logic) 640; and a control section including logic circuit 600 and an AND gate 681.
The level setters 610, 620 and 630 are provided to generate digital words representative of the attack level La, the sustain level Ls and the reference (zero) level Lf (see FIG. 4B), respectively. These level setters set the level of the input to the subtractor 11 and control the waveshape level in accordance with attack, decay, sustain and release. These setters may be comprised of, for example, read-only memory or the like, respectively. Also, the sustain lever setter 620 may be constituted of a plurality of read-only memories or the like, respectively. Also, the sustain level setter 620 may be constituted of a plurality of read-only memories containing different storages, to be operative so as to read out the storage of a single read-only memory selected from these plural number of read-only memories by a manual switching operation of the switching means which is provided on, for example, the operating panel of an electronic musical instrument, to thereby insure that the player of the instrument can alter the sustain level Ls at will. It will be needless to say, however, that the aforesaid level setters 610, 620 and 630 may have any other arrangement than that mentioned above.
The outputs of the level setters 610, 620 and 630 will be selectively applied, as the first set value Sa, to the subtracter 11 of the function calculating section 300 via the gate circuits 611, 621 and 631 and the OR circuit 640.
Those pulses CKa, CKd1 and CKd2 which are generated by the pulse generators 650, 660 and 670 are applied, as the clock pulse CK, to the gate 13 of the function calculating section 300, respectively, during the respective periods of time, i.e. the attack time, the first decay time and the second decay time (see FIG. 4B). Arrangement may be provided so that these pulse generators 650, 660 and 670 are to serve as the voltage-controlled oscillators and that the oscillation frequencies of these respective voltage-controlled oscillators, i.e. the frequencies of the generated pulses CKa, CKd1 and CKd2, can be varied by the operation of, for example, manual levers which are provided on the operating panel of the electronic musical instrument. The oscillators produce pulses at different frequencies associated with attack, decay, sustain, and release, respectively, to control gate 13 and thus control envelope speed. Logic circuit 600 controls the logic gates to apply the pulse train from one of the oscillators to gate 13, since the amount of feedback to subtractor 11 varies, and the output value in shift register 15 changes.
Description will hereuner be made on the operation of the envelope shape generator 24 shown in FIG. 5.
When a key is depressed, the keyboard section 21 shown in FIG. 3 will generate the key-on signal KON. The logic circuit 600, immediately after the arrival of the key-on signal KON, will deliver an attack command signal AK to the AND gate 651 and to the gate circuit 611, thereby enabling them. Whereupon, the pulse CKa which is generated by the pulse generator 650 is applied, as the clock pulse CK, to the gate 13 in the function calculating section 300 via the enabled AND gate 651 and the OR gate 690, and along therewith the output La of the attack level setter 610 is applied, as the first set value Sa, to the subtractor 11 provided in the function calculating section 300, via the enabled gate circuit 611 and the OR circuit 640. Subsequently, at each arrival of the clock pulse CKa, the value of the output Sb of the register 15 undergoes a progressive augmentation toward the first set value Sa, i.e. the attack level La. As a result, there is obtained the attack envelope ENV1 as shown in FIG. 4B.
When the value of the output Sb of the register 15 has increased up to the attack level La, and when thus the output D of the subtractor 11 becomes zero, the logic circuit 600 will cease the generation of the attack command signal AK, and at the same time therewith the logic circuit 600 will deliver the first decay command signal DY1 to the AND gate 661 and to the gate circuit 621. Accordingly, the pulse CKd1 which is generated by the pulse generator 660 is applied, as the clock pulse CK, to the gate 13 via the enabled AND gate 661 and via the OR gate 690. Along therewith, the sustain level Ls which is derived from the sutain level setter 620 is applied, as the first set value Sa, to the subtractor 11 via the enabled gate circuit 621 and via the OR circuit 640. Thus, upon each arrival of the clock pulse CKd1, the output Sb progressively decreases in value toward the sustain level Ls. As a result, there is obtained the first decay envelope ENV2 as shown in FIG. 4B. Continuously after the sustain time (see FIG. 4B), the output Sb will be held continuously at the sustain level Ls so long as the applied key-on signal KON is present, i.e. until the depressed key is released.
When the depressed key is released, the keyboard section 21 ceases the generation of the key-on signal KON. When, thus, the key-on signal KON ceases to arrive, the logic circuit 600 immediately stops the generation of the first decay command signal DY1. At the same time therewith, this logic circuit 600 gives out the second decay command signal DY2. Whereupon, both the AND gate 671 and the gate circuit 631 are enabled by said second decay command signal DY2. Thus, the pulse CKd2 which is delivered from the pulse generator 670 and the reference (zero) level Lf which is delivered from the reference level setter 630 are both applied, as the clock pulse CK and the first set value Sa respectively, to the function calculating section 300. In this way, at each arrival of the clock pulse CKd2, the output Sb of the register 15 will become progressively mitigated toward the reference level Lf, and as a result there is obtained the second decay envelope ENV3 as as shown in FIG. 4B. When the output Sb has decreased up to the reference level Lf and when thus the output D of the subtractor 11 has become zero, the logic circuit 600 ceases the generation of the second decay command signal DY2, and it generates the clear compound signal CR. This clear command signal CR enables the AND gate 681. Via the resulting enabled AND gate 681 and the OR gate 690, the clear signal of "1" level whose source is not shown is applied to the gate 13 provided in the function calculating section 300. As a result, the gate 13 is enabled. At this point of time, the gate circuits 611, 621 and 631 are all in the disabled state, and the first set value Sa is zero (reference value). Therefore, the content Sb of the register 15 is held zero.
A concrete example of the logic circuit 600 shown in FIG. 5 is illustrated in FIG. 6. Hereunder will be described the arrangement and the behavior of this logic circuit 600 by referring to FIGS. 7 and 8.
In FIG. 6, symbols FF1 -FF8 represent flip-flops respectively. Symbols AND1 -AND8 represent AND gates, respectively. Symbols OR1 -OR4 represent OR gates, respectively. Symbol NOR1 represents an NOR gate, Symbols INV1 -INV4 represent inverters, respectively.
When a key is depressed, and when accordingly a key-on signal KON is given out from the keyboard section 21, the flip-flop FF5 is set at the point of time when a timing pulse Φ generated immediately after the key depression arrives. Whereupon, the Q output of this flip-flop FF5 is rendered to "1" level. At the arrival of the next timing pulseΦ, the flip-flop FF6 is set, and its Q output is rendered to "0" level. Accordingly, the AND gate AND7 gives out a pulse PON as shown in FIG. 7. By the timing pulse Φ which arrives during the period of time in which this pulse PON is applied to the flip-flop FF2 via the OR gate OR1, this flip-flop FF2 is set, so that its Q output is rendered to "1" level. Whereby, there is generated an attack command signal AK.
During the attack time (see FIG. 4B), the output D of the subtractor 11 is not zero, and accordingly the NOR gate NOR1 will generate a "0" level output. Therefore, continuously after the pulse PON has ceased to be present, the "1" level output of the AND gate AND2 continues to be applied to the data terminal of the flip-flop FF2, so that the flip-flop FF2 is held continuously in its set state. More specifically, the attack command signal AK is continuously delivered throughout the period of the attack time (see FIG. 4B).
When, at the end of the attack time, the output D of the subtractor 11 becomes zero, the NOR gate NOR1 gives out "1" level output. As a result, the output of the AND gate AND6 becomes "1" level, causing the flip-flop FF2 to reset, and accordingly the generation of the attack command signal AK ceases. At the same time therewith, the "1" level output of the AND gate AND6 is applied to the flip-flop FF3 via the OR gate OR3, causing this flip-flop FF3 to set, and its Q output is rendered to "1" level. Whereby, there is delivered the first decay command signal DY1. During this period of the first decay time and the sustain time (see FIG. 4B), the flip-flop FF4 remains in its reset state. Accordingly, the output of the inverter INV3 is in the "1" level. Therefore, the output of the AND gate AND3 remains in the "1" level throughout the first decay time and the sustain time. Thus, the flip-flop FF3 is held in its set state, and the first decay command signal DY1 is continuously given out.
When the depressed key is released, the keyboard section 21 ceases the generation of the key-on signal KON as shown in FIG. 8. Accordingly, by the timing pulse Φ which arrives immediately after this cease, the flip-flop FF7 is reset, and its Q output is rendered to "1" level. Then, due to the next-arriving timing pulse Φ, the flip-flop FF8 is reset, and its Q output is rendered to "1" level. Accordingly, the AND gate AND8 gives out a pulse POFF (see FIG. 8) as its output. This pulse POFF is applied to the flip-flop FF4 via the OR gate OR4 so that the flip-flop FF4 is caused to reset, and its Q output is rendered to "1" level. Whereby, the second decay command signal DY2 is generated. At the same time therewith, the Q output of the flip-flop FF4 is inputted to the inverter INV2, so that the flip-flop FF3 resets and the generation of the first decay command signal DY1 ceases. The flip-flop FF4 is latched to its set state by the actions of the AND gates AND4 and AND5, the OR gate OR4 and the inverter INV4. When the output D of the subtractor 11 becomes zero at the end of the second decay time (see FIG. 4B), the NOR gate NOR1 gives out an output of "1" level. Therefore, the flip-flop FF4 resets, and the generation of the second decay command signal DY2 ceases. At the same time therewith, the "1" level output of the AND gate AND5 is applied to the flip-flop FF1 via the OR gate OR1, causing this flip-flop FF1 to be set, and the Q output of this flip-flop FF1 is rendered to "1" level. Whereupon, the clear command signal CR is generated. At this point of time, the flip-flop FF2 is in its reset state, and its Q output of "0" level is inputted to the inverter INV1. Therefore, the flip-flop FF1 is latched in its set state. When a fresh key-on signal KON arrives and when, accordingly, the flip-flop FF2 is set, the flip-flop FF1 is reset, and the generation of the clear command signal CR is caused to cease.
Patent | Priority | Assignee | Title |
4831576, | May 06 1986 | Yamaha Corporation | Multiplier circuit |
Patent | Priority | Assignee | Title |
3992970, | Nov 15 1974 | Nippon Gakki Seizo Kabushiki Kaisha | Electronic musical instrument |
3992971, | Nov 15 1974 | Nippon Gakki Seizo Kabushiki Kaisha | Electronic musical instrument |
3994195, | Nov 15 1974 | Nippon Gakki Seizo Kabushiki Kaisha | Electronic musical instrument |
3999456, | Jun 04 1974 | Matsushita Electric Industrial Co., Ltd. | Voice keying system for a voice controlled musical instrument |
4026179, | Sep 25 1974 | Nippon Gakki Seizo Kabushiki Kaisha | Electronic musical instrument |
4036096, | Jul 25 1974 | Nippon Gakki Seizo Kabushiki Kaisha | Musical tone waveshape generator |
4111090, | Oct 18 1976 | Kawai Musical Instrument Mfg. Co. Ltd. | Noise reduction circuit for a digital tone generator |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 16 1980 | Nippon Oakki Seizo Kabushiki Kaisha | (assignment on the face of the patent) | / | |||
Apr 25 1994 | YAMAHA CORPORATION OF AMERICA | Yamaha Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 006965 | /0654 |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Feb 05 1988 | 4 years fee payment window open |
Aug 05 1988 | 6 months grace period start (w surcharge) |
Feb 05 1989 | patent expiry (for year 4) |
Feb 05 1991 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 05 1992 | 8 years fee payment window open |
Aug 05 1992 | 6 months grace period start (w surcharge) |
Feb 05 1993 | patent expiry (for year 8) |
Feb 05 1995 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 05 1996 | 12 years fee payment window open |
Aug 05 1996 | 6 months grace period start (w surcharge) |
Feb 05 1997 | patent expiry (for year 12) |
Feb 05 1999 | 2 years to revive unintentionally abandoned end. (for year 12) |