Production of glide and portamento in an electronic musical instrument

Deutsch December 30, 1

Patent Grant 3929053

U.S. patent number 3,929,053 [Application Number 05/464,936] was granted by the patent office on 1975-12-30 for production of glide and portamento in an electronic musical instrument. This patent grant is currently assigned to Nippon Gakki Seizo Kabushiki Kaisha. Invention is credited to Ralph Deutsch.


United States Patent 3,929,053
Deutsch December 30, 1975

Production of glide and portamento in an electronic musical instrument

Abstract

The apparatus produces glide and portamento in an electronic musical instrument in which the generated tone is proportional to a current frequency number. A time varying fractional frequency number is established that increases or decreases in value during glide or portamento production. The current frequency number is modified by increments that correspond to the fractional frequency number values, so that the generated tone glides to the nominal pitch, or so that during portamento the generated tone slides from the pitch of the note previously produced to the nominal frequency of the new note.


Inventors: Deutsch; Ralph (Sherman Oaks, CA)
Assignee: Nippon Gakki Seizo Kabushiki Kaisha (Hamamatsu, JA)
Family ID: 23845856
Appl. No.: 05/464,936
Filed: April 29, 1974

Current U.S. Class: 84/628; 984/397; 84/662
Current CPC Class: G10H 7/105 (20130101)
Current International Class: G10H 7/10 (20060101); G10H 7/08 (20060101); G10H 001/02 (); G10H 005/00 ()
Field of Search: ;84/1.01,1.03,1.24,1.25

References Cited [Referenced By]

U.S. Patent Documents
3515792 June 1970 Deutsch
3610799 October 1971 Watson
3639913 February 1972 Watson
3696201 October 1972 Arsem et al.
3743755 July 1973 Watson
3755608 August 1973 Deutsch
3757022 September 1973 Markowitz
3763364 October 1973 Deutsch et al.
3794748 February 1974 Deutsch
3809786 May 1974 Deutsch
3809788 May 1974 Deutsch
3809789 May 1974 Deutsch
3809790 May 1974 Deutsch
3809792 May 1974 Deutsch
3816637 June 1974 Whitefield
3821714 June 1974 Tomisawa et al.
3823390 July 1974 Tomisawa et al.
3831015 August 1974 Hoff, Jr.
3844379 October 1974 Tomisawa et al.

Other References

Ralph W. Burhans, "Digital Tone Synthesis", Journal of the Audio Engineering Society, Vol. 19, No. 8, Sept. 1971, pp. 660-663..

Primary Examiner: Tomsky; Stephen J.
Assistant Examiner: Witkowski; Stanley J.
Attorney, Agent or Firm: Silber; Howard A.

Claims



I claim:

1. Apparatus for producing glide or portamento in an electronic musical instrument of the type having a tone generator for generating a musical tone, and wherein the fundamental frequency of the generated tone is proportional to a number utilized by said tone generator, the value of said number that is presently utilized by said tone generator being the "current frequency number", said instrument comprising;

increment means for establishing another number that increases or decreases in value incrementally during the production of glide or portamento, said other number being a "fractional frequency number," and

means for modifying said current frequency number in increments corresponding to said fractional frequency numbers, said modifying terminating when the modified current frequency number differs from the frequency number of the presently selected note by less than a certain amount.

2. Apparatus according to claim 1 for producing glide, wherein said instrument includes a set of note selection switches and means providing a frequency number R corresponding to the selected switch, and wherein said increment means comprises;

a divider for dividing said frequency number R by a value k(t) that increases or decreases with time, the dividend R/k(t) being the fractional frequency number, and wherein said means for modifying comprises,

means for adding the dividend R/k(t) from said frequency number R to obtain the current frequency number.

3. Apparatus according to claim 2 further comprising a glide clock operatively connected to said increment means, wherein said value k(t)=2.sup.m and wherein m is incremented by said increment means at successive time intervals established by said glide clock.

4. Apparatus according to claim 2 for producing slalom glide wherein said increment means further comprises circuitry for causing said value k(t) alternately to decrease and increase in value during successive portions of the glide production interval, and wherein said value k(t) is programmatically added to said frequency number R during different portions of the glide production to produce a tone that first glides past the nominal pitch of the selected note, then returns to said nominal pitch.

5. Apparatus according to claim 1 for producing portamento, said incrementing means comprising:

a divider for dividing the current frequent number by a constant k to obtain said fractional frequency number, and wherein said modifying means comprises,

an accumulator for accumulating the sum of the fundamental frequency determining number associated with the previously selected note and the fractional frequency numbers produced during the portamento, the contents of said accumulator comprising the current frequency number.

6. Apparatus according to claim 5 further comprising;

comparator means for comparing the value of the current frequency number in said accumulator with the frequency number of the selected note, and for terminating portamento production when the difference detected by said comparator is less than said certain amount.

7. Apparatus accordiang to claim 6 wherein said accumulator continues alternately to add and subtract the fractional frequency number from the current frequency number after said termination of portamento, said selected note thereafter being produced at a frequency which alternates slightly above and below the nominal pitch of the selected note.

8. Apparatus according to claim 1 for production of portamento wherein said incrementing means comprises;

means for subtracting the previous frequency number of the previously selected note from the new frequency number of the presently selected note to obtain a difference value,

a divider for dividing said difference value by a constant,

accumulator means supplying the quotient obtained in said divider, to an accumulator at successive time intervals during protamento production, the accumulative sum in said accumulator comprising said time varying fractional frequency number, and wherein said modifying means comprises,

means for adding said fractional frequency number from said accumulator to the previous frequency number to obtain the current frequency number.

9. Apparatus according to claim 1 for producing glide, said instrument including a set of note selection switches and means providing a frequency number R corresponding to the selected switch, wherein said increment means comprises;

a divider for dividing said frequency number R by a value k(t) that increases or decreases with time, the dividend R/k(t) being the fractional frequency number, and wherein said means for modifying comprises,

means for subtracting the dividend R/k(t) from said frequency number R to obtain the current frequency number.

10. Apparatus according to claim 9 for producing slalom glide wherein said increment means further comprises circuitry for causing said value k(t) alternately to decrease and increase in value during successive portions of the glide production interval, and wherein said value k(t) is programmatically subtracted from said frequency number R during different portions of the glide production to produce a tone that first glides past the nominal pitch of the selected note, then returns to said nominal pitch.
Description



BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the production of glide and portamento effects in an electronic musical instrument.

2. Description of the Prior Art

In most musical instruments, as each note is played, tone production begins immediately at the nominal frequency of that note, possibly with gradually increasing amplitude during the initial, attack period. Certain electronic organs have a glide option in which the tone starts low in pitch, then gradually glides up to the nominal frequency.

Typically the glide is controlled by a toe switch mounted on the swell shoe, or by a switch responsive to rotation of the shoe itself. To produce a glide effect, the musician must coordinate foot operation of the glide switch with playing of the manual keys. Considerable dexterity is required. To eliminate this difficulty, it is one object of the present invention to provide a system wherein a glide effect is produced automatically upon keyboard selection of a note in an electronic musical instrument. There is no separate glide switch to be operated, so that the instrument may be played in a normal manner.

In the usual glide effect, the note initially is sounded a whole tone, or possibly a semi-tone below the nominal pitch. The frequency gradually rises until it corresponds to the note actuated on the instrument keyboard. Alternatively, the note may begin at a frequency that is above the nominal pitch, and gradually decrease to the true frequency. In a "slalom glide," the sound begins low in pitch, gradually rises in frequency past the nominal pitch, then finally decreases to the true pitch of the selected note. Another object of the present invention is to implement both glide up, glide down and slalom glide effects in an electronic musical instrument.

A few instruments, notably the trombone, can produce a portamento effect in which the generated frequency does not change abruptly from one note to the next, but rather glides through all of the intermediate tones. A further object of the present invention is to implement such portamento effects in an electronic musical instrument.

SUMMARY OF THE INVENTION

These and other objectives are achieved in an electronic musical instrument of the type wherein the fundamental frequency of the generated note is established by a number that is proportional to the note frequency. By way of example, the invention is described herein in conjunction with a computor organ of the type disclosed in the inventor's copending U.S. patent application, Ser. No. 225,883, filed Feb. 14, 1972 now U.S. Pat. No. 3,809,786. In such a computor organ, the pitch of the generated sound is established by a frequency number R that controls the separation between successive sample points at which the amplitude of a musical waveshape is computed. However, the present invention is by no means so limited. The invention also may be utilized with other types of electronic tone generators in which the produced frequency is controlled by a value R proportional to that frequency. Thus the following description is equally applicable to such other systems, with a direct substitution of the frequency proportional value R for the frequency number R.

A glide effect is produced by modifying the frequency number at the beginning of tone production. This advantageously is achieved by subtracting from or adding to the selected number R a rational fraction S of that number which decreases with time. The graph of FIG. 1 illustrates the frequency deviation in cents achieved by such a system wherein the time-variant rational fraction is: ##EQU1## where m is an integer incremented at regular time intervals. In a binary implementation, the value S readily is computed by rightshifting the number R in a shift register. This is the equivalent of dividing R by 2.sup.m, where m designates how many positions R has been right-shifted.

A new frequency number R' is obtained by subtracting the fraction S from the selected frequency number R. Thus: ##EQU2## If this value R' is provided to the tone generator, the tone that is produced will be offset from the nominal frequency of the selected note. The deviation C of the generated frequency may be calculated from the expression: ##EQU3## where C.sub.k is a constant given by: ##EQU4## Equations 2 and 3 are combined to obtain: ##EQU5## which indicates that the obtained frequency deviation C in cents is independent of the value of the frequency number R. That is, the frequency deviation C in cents will be the same regardless of what note is played. There are 1200 cents to the octave, so that adjacent whole tones are separated by 100 cents, while 50 cents represents a semi-tone. Thus the glide illustrated by the graph of FIG. 1 begins slightly more than a full tone away from the nominal frequency. Such a deviation (of 111.55 cents) is obtained for the value m=4.

To obtain the glide illustrated in FIG. 1, the rational fraction S (see equation 1) is calculated for values m=4,5,6, . . . at successive time intervals. Thus the corresponding frequency number R' (see equation 2) gradually will approach the frequency number R for the selected note. The frequency deviation C at each step of the glide will have the values set forth in Table I below, calculated from equation 5.

TABLE I ______________________________________ Number m of Positions Frequency Deviation C that R is right-shifted (in cents) ______________________________________ 4 111.55 5 54.94 6 27.24 7 13.59 8 6.64 9 3.36 10 1.69 11 .84 12 .41 13 .21 14 .10 ______________________________________

To implement such glide at the start of note production, the frequency number R associated with the selected note is right shifted by m=4 positions. The resultant value ##EQU6## is subtracted from the value R, and the difference R' is supplied to the tone generator.

At successive glide timing intervals established by a glide clock, the value R is further right-shifted. In effect, the value is incremented at each clock time. As a result, the values R' supplied to the tone generator gradually will approach the frequency number R. The produced tone will exhibit a glide having the frequency deviation characteristics of FIG. 1. If the rational fraction S (see equation 1) is added to the frequency number rather than subtracted from it, the resultant glide will start at a frequency higher than the selected note, and glide down to that note with a like frequency deviation curve.

To achieve portamento effects, fractional increments are algebraically added to the frequency number of the note previously played, during the portamento interval. The rate at which such increments are added is established by a glide clock. Eventually, the accumulated sum of the previous frequency number and the added increments will equal the frequency number of the newly selected note. Thereafter, tone production will continue at the true pitch of the new note.

In one embodiment, each increment added to the frequency number during portamento production is equal to a constant fraction of the frequency number currently being provided to the tone generator. In this embodiment, the portamento time taken to glide from one note to the next will depend on the separation between those notes.

In another embodiment, each increment added to the frequency number during portamento production is equal to a constant fraction of the difference between the frequency numbers associated with the previous and new notes. In this system, the time taken to glide from one note to the next will be the same regardless of what notes are selected.

BRIEF DESCRIPTION OF THE DRAWINGS

A detailed description of the invention will be made with reference to the accompanying drawings, wherein like numerals designate corresponding parts in the several figures.

FIG. 1 is a graph showing the frequency deviation as a function of time for a glide effect produced by the apparatus of FIG. 2.

FIG. 2 is an electrical block diagram of a computor organ configured to produce a glide effect.

FIG. 3 is an electrical block diagram of circuitry for producing a slalom glide in conjunction with an electronic musical instrument.

FIG. 4 is an electrical block diagram of a system for implementing portamento in an electronic musical instrument.

FIG. 5 is an electrical block diagram of an alternative system for producing portamento, wherein the frequency number is incremented in steps each equal to a fraction of the difference between the old and new frequency numbers.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following detailed description is of the best presently contemplated modes of carrying out the invention. This description is not to be taken in a limiting sense, but is made merely for the purpose of illustrating the general principles of the invention since the scope of the invention best is defined by the appended claims.

Operational characteristics attributed to forms of the invention first described also shall be attributed to forms later described, unless such characteristics obviously are inapplicable or unless specific exception is made.

The musical instrument 10 of FIG. 2 produces via a sound system 11 musical tones which automatically glide to the nominal frequency of the selected note. Thus each time one of the keyboard switches 12 is depressed, a sound that is approximately a whole tone lower than the selected note initially is produced. Then, at intervals established by a glide clock 13, the produced tone increases in frequency to the desired value. The frequency deviation during this glide interval is as illustrated in FIG. 1. In an alternative embodiment discussed below, the glide may start at a frequency above the desired nominal value and glide down to that tone. Frequency deviation characteristics other than those illustrated in FIG. 1 also can be produced.

The fundamental frequency of the tone produced by the instrument 10 is established by a current frequency number R.sub.(current) supplied via a line 14 to the tone generation portion 15 of the computor organ. During glide production, the value R' (see equation 2) is supplied as the current frequency number. The value m is incremented at time intervals established by the glide clock 13. After completion of the glide, the frequency number R associated with the note is supplied as the current frequency number.

A frequency number memory 17 stores a set of R values associated with the fundamental frequencies of the notes selectable by the switches 12. When any note is played, closure of the corresponding keyboard switch 12 causes the corresponding frequency number R to be supplied from the memory 17 to a line 18. The switch signal also is provided via an OR gate 19 to a one-shot multivibrator 20 that produces on a line 21 a "start glide" pulse 22 (FIG. 1).

Occurrence of the "start glide" pulse 22 causes the selected frequency number R to be loaded into a shift register 23 at a position which initially is shifted four bits to the right. That is, the most significant bit of the frequency number R is not loaded into the most significant, left-most storage position 23-1 of the shift register 23, but rather is entered into the fifth register position 23-5. As a result, the value initially present on the output line 24 from the shift register 23 is ##EQU7## The glide clock 13 provides timing pulses 25 (FIG. 1) via a line 26 to the shift input of the register 23. Each such pulse causes the contents of that register to be shifted one position to the right. This corresponds to dividing the contents of the shift register 23 by two each time a shift pulse is received. As a result, the signal present on the output line 24 represents the rational fraction ##EQU8## where m=4,5,6, . . . and m is incremented at each successive timing pulse from the clock 13.

The rational fraction S on the line 24 is subtracted from the frequency number R present on the line 18. This is accomplished by adding the two's complement of S, obtained by a complement circuit 27, to the value R in an adder 28. The signal S on the line 24 is supplied to the complement circuit 27 via a switch 30 that is set to the position 30a when the glide is to begin below the nominal frequency of the selected note. The output of the adder 28 is the frequency number R' = R-S defined by equation 2 above.

During successive time intervals established by the glide clock 13, the value R' will approach the frequency number R supplied from the memory 17. The values will be equal when the most significant bit of the frequency number R has been shifted out of the lowest significant position 23-p of the register 23, so that the entire shift register 23 contains only binary zeros. Thereafter, the value S will be zero, so that R' = R; a nominal pitch tone will result.

To produce a glide which begins above the nominal frequency of the selected note, the rational fraction S is added to the frequency number R. This can be accomplished by transferring the switch 30 to the position 30b so as to connect the line 24 directly to the input of adder 28.

The glide need not start a whole tone above or below the selected note. Thus by initially loading the value R into a different position of the shift register 23, a different initial frequency offset is obtained. For example, if the most significant bit of the frequency number R is entered into the shift register position 23-6, so that initially m=5, the glide will start approximately a semi-tone away from the desired note.

Although a shift register is used in the embodiment of FIG. 2 to obtain the rational fraction of the frequency number R, the invention is not so limited. Thus the shift register 23 may be replaced by a divider circuit that divides R by a value k(t) which is a function of time as established by the glide clock 13. In such case, the value provided on the line 24 will be ##EQU9## By appropriately programming the time dependence of the value k(t), any desired glide characteristic may be obtained.

The glide implementation just described may be utilized with any electronic musical instrument wherein the fundamental frequency of the generated tone is established by a number proportional to that frequency. The tone generator 15 (FIG. 2) is such a system. Its operation is disclosed in the inventor's U.S. Pat. No. 3,809,786 entitled COMPUTOR ORGAN, and is summarized here to the extent necessary to understand how it functions with the inventive glide and portamento system.

In the tone generator 15, musical notes are produced by computing in real time the amplitudes X.sub.o (qR) at successive sample points qR of a musical waveshape, and converting these amplitudes to notes as the computations are carried out. Each sample point amplitude is computed during a regualr time interval t.sub.x according to the relationship: ##EQU10## which q is an integer incremented each time interval t.sub.x, the value n=1,2,3, . . . W represents the order of the Fourier component F.sup.(n) being evaluated, C.sub.n is coefficient establishing the relative amplitude of the n.sup.th component and R is the frequency number discussed above, which establishes the period or fundamental frequency of the generated waveshape. The number W of Fourier components included in each waveshape amplitude computation is a design choice. However, W=16 components is adequate for good synthesis of organ tones.

In the computor organ 15 (FIG. 2) the individual Fourier components F.sup.(n) are individually evaluated during successive calculation time intervals t.sub.cp1 through t.sub.cp16 established by a clock 31 and a counter 32. The Fourier components are summed in an accumulator 33. Thus at the end of each computation time interval t.sub.x, the contents of the accumulator 33 represents the waveshape amplitude X.sub.o (qR) for the current sample point qR.

A computation interval t.sub.x timing pulse is provided on a line 34 by slightly delaying the last calculation interval pulse t.sub.cp16 in a delay circuit 35. Occurrence of the t.sub.x pulse transfers the contents of the accumulator 33 via a gate 36 to a digital to analog converter 37. The accumulator 33 then is cleared in preparation for summing of the Fourier components associated with the next sample point, computation of which components begins immediately.

The digital to analog converter 37 supplies to the sound system 11 a voltage corresponding to the waveshape amplitude just computed. Since these computations are carried out in real time, the analog voltage supplied from the converter 16 comprises a musical waveshape having a fundamental frequency established by the current frequency number R.sub.(current) then being supplied via the line 14.

At the beginning of each computation interval t.sub.x, the frequency number R.sub.(current) is supplied via a gate 38 and added to the previous contents of a note interval adder 39. Thus the contents of the adder 39, supplied via a line 40, represents the value (qR) designating the waveshape sample point currently being evaluated. Preferably the note interval adder 39 is of modulo 2W, where W is the highest order Fourier component evaluated by the system 15.

Each of the calculation timing pulses t.sub.cp1 through t.sub.cp16 is supplied via an OR gate 42 to a gate 43. This gate 43 provides the value qR to a harmonic interval adder 44 which is cleared at the end of each amplitude computation interval t.sub.x. Thus the contents of the harmonic interval adder 44 is incremented by the value (qR) at each calculation interval t.sub.cp1 through t.sub.cp16, so that the contents of the adder 44 represents the quantity (nqR). This value is available on a line 45.

An address decoder 46 accesses from a sinusoid table 47 the value ##EQU11## corresponding to the argument nqR received via the line 45. The sinusoid table 47 may comprise a read only memory storing values of ##EQU12## at intervals of D, where D is called the resolution constant of the memory. With this arrangement, the value ##EQU13## will be supplied on a line 48 during the first calculation interval t.sub.cp1. During the next interval t.sub.cp2, the value ##EQU14## will be present on the line 48. Thus in general, the value ##EQU15## will be provided from the sinusoid table 47 for the particular n.sup.th order component specified by the timing interval output from the counter 32.

A set of harmonic coefficients C.sub.n is stored in a harmonic coefficient memory 49. As each sinusoid value is supplied on the line 48, the harmonic coefficient C.sub.n for the corresponding n.sup.th order component is accessed from the memory 49 by a memory address control circuit 50 which receives the calculation timing pulses t.sub.cp1 through t.sub.cp16. The sin value from the line 48 is multiplied by the accessed coefficient C.sub.n in a harmonic amplitude multiplier 51. The product, corresponding to the value of the Fourier component F.sup.(n) presently being evaluated, is supplied via a line 52 to the accumulator 33. In this manner, consecutive sets of Fourier components are evaluated during consecutive computation intervals t.sub.x. Accumulation of these components, and conversion to an analog waveshape by the converter 37 results in the desired tone production.

The frequency numbers R stored in the memory 17 are related to the nominal fundamental frequencies of the musical notes produced by the computor organ 15, to the computation time interval t.sub.x, and to the number of amplitude sample points N for the note of highest fundamental frequency f.sub.H produced by the organ. For example, if the frequency number R for such note of highest frequency is selected as unity, then with a computation time interval t.sub.x given by ##EQU16## exactly N sample point amplitudes will be computed for that note.

The values R for notes of lower frequency readily can be ascertained, knowing that the frequency ratio of any two contiguous notes in an equally tempered musical scale is .sup.12 .sqroot.2. In general, the frequency numbers R for notes other than that of highest frequency f.sub.H will be non-integers.

By way of example, the following Table II lists the frequency, frequency number R, and number of sample points per period for each note in octave six. The note C.sub.7 (the key of C in octave 7) is designated as the note of highest fundamental frequency produced by the computor organ 15, and hence is assigned the frequency number R of unity. In this example, N = 2W = 32 sample points are computed for the note c.sub.7, this value of N being satisfactory for accurate synthesis for an organ pipe or most other musical sounds.

TABLE II ______________________________________ NOTE FREQUENCY R Number of Sample (Hz) Points per Period ______________________________________ C.sub.7 2093.00 1.0000 32.00 B.sub.6 1975.53 0.9443 33.90 A .sub.No. 6 1864.66 0.8913 35.92 A.sub.6 1760.00 0.8412 38.06 G .sub.No. 6 1661.22 0.7940 40.32 G.sub.6 1567.98 0.7494 42.72 F .sub.No. 6 1479.98 0.7073 45.26 F.sub.6 1396.91 0.6676 47.95 E.sub.6 1318.51 0.6301 50.80 D .sub.No. 6 1244.51 0.5947 53.82 D.sub.6 1174.66 0.5613 57.02 C .sub.No. 6 1108.73 0.5298 60.41 C.sub.6 1046.50 0.5000 64.00 ______________________________________

From the foregoing Table II, it is apparent that the fundamental frequency of the generated musical tone is proportional to the frequency number R.sub.(current) supplied via the line 14 to the tone generator 15. Thus, when utilized in conjunction with the glide circuitry 10 of FIG. 2, a glide effect will be achieved automatically each time one of the keyboard switches 12 is depressed to play a note.

Slalom Glide

Slalom glide is produced using the circuitry 55 of FIG. 3. In the embodiment shown, the glide begins approximately a whole tone lower in frequency than the nominal pitch of the note selected by the keyboard switches 12. The tone glides upward in frequency through the true pitch to a frequency approximately a whole tone above the selected note. The tone then decreases in frequency until the true pitch again is reached. The glide ends, and tone production continues at the nominal fundamental frequency established by the frequency number R accessed from the memory 17 when the switch 12 is depressed.

To being the slalom glide, the "start glide" pulse on the line 21 causes the selected frequency number R to be loaded from the line 18 into a shift register 56 analogous to the register 23 of the FIG. 1 embodiment. The line 21 connected to the "load" control input of the shift register 56. As in that FIG. 1 embodiment, the value R is loaded into the register 56 at a position shifted to the right by m=4 positions. That is, the most significant bit of the frequency number R is entered into the fifth shift register position 56-5. Thus as before, the value ##EQU17## is supplied via the lines 24' from the shift register 56 to the complement circuit 27'.

In FIG. 3, the complement circuit 27' comprises a set of exclusive-OR gates 27-1 through 27-j each receiving one input from the corresponding shift register position 56-1 through 56-j. The value j is equal to the number of bits in the frequency number R supplied from the memory 17.

Each gate 27-1 through 27-j is enabled by a "complement" signal obtained via a line 57 from the "1" output of a flip-flop 58. This flip-flop 58 is set (S) to the "1" state by the "start glide" signal on the line 21. Thus during the initial, increasing frequency portion of the glide, the signal on the line 57 is high. As a result, the gates 27-1 through 27-j supply at their outputs a signal which is the one's complement of the number contained in the positions 56-1 through 56-j of the register 56. These outputs are supplied to the adder 28'. The "complement" signal from the line 57 is supplied to the carry input of the adder 28'. Together the carry input and the outputs from the gates 27-1 through 27-j constitute the two's complement of the shift register 56 contents. This value is summed with the frequency number R supplied via the line 18 by the adder 28' to obtain the value R'=R-S. This value R' is supplied from the adder 28' to the tone generator 15 via the line 14 as the current frequency number R.sub.(current).

During the initial, increasing frequency portion of the glide, the value R is shifted one position to the right in the register 56 each time the glide clock 13 provides a timing pulse 25 (FIG. 1) on the line 26' via an enabled AND gate 78. To this end, a shift control flip-flop 59 which is set to the "0" state at the start of glide provides an enable signal from its "0" output via a line 60 to an AND-gate 61. Glide clock pulses are gated to the "shift right" control terminal of the register 56 via the line 62.

The shift register 56 has x=2j positions, so that as the R number is right shifted, bits of lesser significance are not lost, but are stored in the register positions 56-(j+l) through 56-x. Of course, each time the register 56 is right shifted, a smaller value ##EQU18## is supplied to the lines 24' since each right shift corresponds to incrementing the value m by one. As a result, the value R'=R-S supplied from the adder 28' decreases, and the produced frequency increases closer to the nominal pitch of the selected note.

The value m is maintained in a counter 63 that is loaded with the initial value m=4 (ie., binary 0100) upon occurrence of the "start glide" signal on the line 21. The contents m=4 in the counter 63 results in a signal on a line 64 to reset the shift control flip-flop 59 initially to the "0" state. This is accomplished by providing the contents of the counter stages 63-1, 63-2 and 63-4 via respective invertors 65-1, 65-2 and 64-4 to three of the four inputs of a four terminal AND gate 66. The contents of the counter stage 63-3 is supplied directly to the remaining input of the AND gate 66.

When the shift control flip-flop 59 is in the "0" state, a low signal is supplied via a line 67 to the up/down control input of the counter 63. This places the counter 63 in the count up mode, so that each glide timing pulse from the clock 13 will increment the counter. Thus as the register 56 is right shifted, the contents of the counter 63 will contain the current value m.

The frequency of the produced tone first reaches the nominal pitch of the selected note, the glide does not terminate. Rather, the circuit 55 switches to a mode in which the rational fraction ##EQU19## increases with time and is added to the selected frequency number R. This causes the generated tone to continue to increase in frequency above the nominal pitch.

The mode transition occurs when m=16. This condition results in an output on a line 68 from a four terminal AND gate 69 that receives as inputs the contents of the counter stages 63-1 through 63-4. The signal on the line 68 is supplied via an AND gate 70, enabled by the "1" output from the flip-flop 58, to the set input of the shift control flip-flop 59. As a result, this flip-flop 59 switches to the "1" state so as to enable glide timing pulses from the clock 13 to be supplied via an AND gate 71 and a line 72 to the "shift left" control terminal of the register 56. The high signal from the "1" output of the flip-flop 59 also conditions the counter 63 to count down from its current value m=16.

Each glide timing pulse 25 now causes the value R that effectively was stored in the shift register positions 56-(j+ l) through 56-x to be left shifted in the register 56. Thus the value ##EQU20## increases from a starting value of ##EQU21## as m is decremented. These values of S now are added to the frequency number R. To this end, occurrence of the m=16 signal on the line 68 also resets the flip-flop 58 to the "0" state, so that the "complement" signal on the line 57 is terminated. As a result, the exclusive-OR gates 27' do not function as a complementer, but rather pass the output S from the shift register 56 directly to the adder 28'. The sum R'=R+S thereby is supplied via the line 14 from the adder 28' to the associated tone generator. The frequency of the produced tone continues to increase.

Eventually, when the value has decremented to m=4, the produced frequency will be approximately a full tone above the nominal pitch of the selected note. The circuit 55 then will cause the frequency to decrease until the nominal pitch again is reached. This is accomplished by right shifting the contents of the register 56 to obtain decreasing values of S, which are added to the frequency number R in the adder 28'.

Such operation is conditioned when the contents of the counter 63 reaches m=4. The resultant signal on the line 64 sets the shift control flip-flop 59 to the "0" state so as to enable right shifting of the register 56 and incrementing of the counter 63. The flip-flop 58 remains in the "0" state so that no "complement" signal occurs on the line 57 and hence the circuit 27' does not complement the value S, but provides it unchanged to the adder 28'. The signal on the line 64 also is supplied via an AND gate 73, enabled by the "1" output of the flip-flop 59, to set a flip-flop 74 to the "1" state in preparation for ending the slalom glide when the true pitch is reached.

The slalom glide terminates when the value m=16. At such time, the value S supplied via the lines 24' from the register 56 will approach zero, so that the output R'=R+S from the adder 28' will approach the frequency number R of the selected note. The value will be exactly R if the number of bits in each frequency number stored in the memory 17 is equal to or less than j, so that when m=16, the contents of the shift register positions 56-1 through 56-j will be all zeros.

When m=16, the signal on the line 68 will go high. Since the flip-flop 74 is in the "1" state, a high signal is provided on the "1" output line 75. Thus both inputs to a NAND gate 76 are high, causing the output thereof on a line 77 to go low. This disables the AND gate 78 so that no more glide timing pulses 25 can reach the counter 63 or the shift register 56. The glide ends and tone production continues at the nominal pitch of the selected note. At the beginning of the next glide, when a new note is played, the start glide signal on the line 21 resets the flip-flop 74 to the "0" state, so that the line 74 goes low, causing the line 77 to go high and enabling the AND gate 78 to provide glide timing pulses 25 to the register 56 and the counter 63.

PORTAMENTO

The circuit 80 of FIG. 4 produces a portamento effect wherein the generated tone glides from the nominal frequency of the note previously played to that of a new note selected on the keyboard switches 12. The portamento takes place in steps that are proportional to a fixed percentage of the frequency of the tone currently being generated.

To this end, the circuit 80 provides the current frequency number R.sub.(current) to the associated tone generator 15 from an accumulator 81 via a line 14' and an enabled AND gate 90. When the musician releases a key, the frequency number associated with that last note remains in the accumulator 81 as the starting value of R.sub.(current). Upon selection of a new note, frequency number increments .DELTA.R given by: ##EQU22## are added (or subtracted) from the frequency number currently in the accumulator 81 until the frequency number R.sub.(new) associated with the new note is reached. Thereafter tone production continues at the nominal pitch of the new note. The increments .DELTA.R are added at timing intervals established by a portamento clock 82.

When a new keyboard switch 12 is selected, the corresponding frequency number R.sub.(new), obtained from the memory 17, is compared with the value R.sub.(current) presently in the accumulator 81. If R.sub.(new) <R.sub.(current) a comparator 83 provides a signal on a line 84 that conditions the circuit 80 to subtract the increments .DELTA.R from R.sub.(current). Conversely, if the new note is higher in frequency than the previous note, no signal occurs on the line 84 and the increments .DELTA.R are added to R.sub.(current).

To obtain the value .DELTA.R, the current frequency number R.sub.(current) from the accumulator 81 is divided by the constant k in a divider circuit 85. The quotient, corresponding to the value .DELTA.R, is supplied via the lines 86 to a set of exclusive -OR gates 87. Each of the gates 87 also receives as one input the signal on the line 84. Thus, when the new note is lower in frequency than the note last played, so that the signal on the line 84 is high, the gates 87 function as a complement circuit. When R.sub.(new) >R.sub.(current), the signal on the line 84 is low so that the gates 87 pass the increment .DELTA.R unchanged.

Each timing pulse from the portamento clock 82 enables a gate 88 that provides the output from the gates 87 to the accumulator 81. Thus when the signal on the line 84 is low, each timing pulse from the clock 82 causes the increment value .DELTA.R (see equation 7) to be gated from the divider 85 to the accumulator 81, where it is added to the previous contents thereof.

As a result, the current frequency number supplied to the tone generator 15 is equal to the value R.sub.(current) in the accumulator 81 prior to occurrence of the latest portamento clock pulse plus an increment .DELTA.R equal to that last value of R.sub.(current) divided by k. During successive portamento clock intervals, additional increments .DELTA.R are added to the accumulator 81 contents. Each such increment itself is of different value, since each is computed from a different value of R.sub.(current).

When the new note is of lower fundamental frequency than the previous note, the signal on the line 84 is high and the gates 87 function as a complementor. The signal on the line 84 also is supplied to the "carry" input of the accumulator 81. Thus each portamento clock pulse causes the two's complement of the value .DELTA.R to be added to the contents of the accumulator 81. This is the equivalent of subtracting the value .DELTA.R from the value R.sub.(current) in the accumulator 81. The accumulator 81 thus provides to the tone generator 15 a new current frequency number that is lower in value than the previous one.

Subsequent to the playing of one note but prior to the selection of the next note, the previous frequency number remains in the accumulator 81. However, since no keyboard switch 12 is depressed, no input is provided to an OR gate 89. As a result, the output of the gate 89 is low, thereby disabling the AND gate 90. As a result, the frequency number R.sub.(current) in the accumulator 81 is not supplied to the tone generator 15 and note production is inhibited. As soon as the next keyboard switch is closed, a signal is supplied via the OR gate 89 to enable the AND gate 90, and thereby to initiate tone production. Portamento begins at the frequency established by the value R.sub.(current) previously obtained in the accumulator 81.

In this manner, the circuit 80 of FIG. 4 causes each note to slide from the pitch of the note previously played to that of the newly selected note. The portamento does not take place in equal steps, but rather in increments .DELTA.R (equation 7) that depend on the current frequency number. Thus the generated tone changes in frequency by a different incremental value at each step of the portamento. In the embodiment of FIG. 5, a portamento effect is produced in which at each step the frequency is incremented by an equal amount .DELTA.R' given by: ##EQU23## where R.sub.(new) and R.sub.(previous) respectively are the frequency numbers of the new and previously selected notes.

To obtain the portamento increment .DELTA.R', the frequency number R.sub.(previous) associated with the note last played is stored in a register 96 (FIG. 5). From this is subtracted the frequency number R.sub.(new) supplied on a line 97 from the memory 17 when the new switch 12 is depressed. The subtraction is carried out in a subtract circuit 98 which provides the difference value and its associated sign via the lines 99 and 100 to a divide by k circuit 101. The quotient provided by the divider 101 on a line 102 corresponds to the value .DELTA.R' (see equation 8).

The portamento increments .DELTA.R' are added algebraically in an accumulator 103 that is cleared at the beginning of the portamento operation. When the new switch 12 is closed, a signal is supplied via an OR gate 104, a one-shot multivibrator 105 and a line 106 to the "clear" input of the accumulator 103. Then, each timing pulse from a portamento clock 107 enables a gate 108 that provides the increment .DELTA.R' from the line 102 to the accumulator 103, where it is algebraically added to the previous contents thereof. Thus at each step of the portamento, the contents .SIGMA..DELTA.R of the accumulator 103 represents the total change in frequency number value since the beginning of the portamento.

This value .SIGMA..DELTA.R' is supplied via a line 110 to an adder 111 where it is summed with the previous frequency number R.sub.(previous) obtained via a line 112 from the storage register 96. The sum obtained by the adder 111 corresponds to the current frequency number R.sub.(current).

During the portamento interval, the value R.sub.(current) is supplied to the tone generator 15 via a line 113, and enabled gate 114, an OR gate 115 and an AND gate 116 that is enabled any time that a keyboard switch 12 is depressed. The gate 114 is enabled during portamento production by the "1" output of a flip-flop 117 that is set to the "1" state upon occurrence of the "start portamento" signal on the line 106.

The portamento terminates when the current frequency number reaches the value of the new frequency number R.sub.(new). At that time, the flip-flop 117 is reset to the "0" state. As a result, the "1" output goes low, thereby disabling the gate 114. The value R.sub.(current) from the adder 111 no longer is supplied to the tone generator 15. Instead, the new frequency number R.sub.(new) from the line 97 is supplied to the tone generator 15 via a gate 119 that is enabled by the "0" output of the flip-flop 117 on a line 120, and via the OR gate 115, the AND gate 116 and the line 14. Thus tone production continues at the exact nominal frequency of the selected note. Resetting of the flip-flop 117 also triggers a one-shot multivibrator 121 which causes the value R.sub.(new) from the line 97 to be entered into the register 96, where it is stored for use the next time that portamento is produced.

A comparator 123 is used to ascertain when the current frequency number in the adder 111 has reached the new frequency number supplied on the line 97. If the pitch of the new note is higher than that of the previous note, the sign signal on the line 100 will be high, thereby enabling a NAND gate 124. During portamento production, the value R.sub.(current) will start at a value below that of R.sub.(new) so that the output of the comparator 123 on the line 125 will be low. However, as soon as R.sub.(current) is incremented to a value that just exceeds R.sub.(new), the comparator 123 provides a high signal on the line 125. Since both inputs to the NAND gate 124 are high, its output goes low, causing the output of another NAND gate 126 to go high. This signal, on the line 127, resets the flip-flop 117, thereby terminating the portamento interval.

Conversely, when the new pitch is lower in frequency than that of the previous note, the sign signal on the line 100 is low. The NAND gate 124 is disabled. However, the low signal on the line 100 is inverted by an inverter 128 and used to enable a NAND gate 129. During portamento production, the value R.sub.(current) is decreasing. As soon as this value becomes slightly less than R.sub.(new), the comparator 123 provides a high output on a line 130 to the NAND gate 129. As a result, the output of the gate 129 goes low, causing the NAND gate 126 to provide a high output that resets the flip-flop 117. In this manner, portamento production is terminated.

Observe that in the embodiment of FIG. 4 the portamento terminates when the current frequency number in the accumulator 81 is approximately equal to R.sub.(new). The last increment added or subtracted into the accumulator 81 during the portamento will cause the signal on the line 84 to change state. Thereafter, the circuit 80 will alternately add and subtract increments each approximately equal to R.sub.(new) /k to the current frequency number in the accumulator 81. Thus the value R.sub.(current) supplied to the tone generator 15 will not exactly equal R.sub.(new) but will be alternately very slightly higher and lower than this value. Such slight variation is not detectable by a person listening to the resultant generated tone, which is heard at the nominal pitch of the selected note.

The various components of the musical instrument disclosed herein are conventional circuits well known in the digital computer art. As indicated by the following Table III, many of these items are available commercially as integrated circuit components.

TABLE III ______________________________________ Conventional Integrated Component Circuit* (or other reference) ______________________________________ Note interval adder (a) SIG 8260 arithmetic logic 39 and harmonic element [p. 37] interval adder 44 (b) SIG 8286 gated full adder [p. 97] (c) TI SN5483, SN5483 4-bit binary full adders [p. 9-271] (may be connected as shown in Flores.sup.1 Section 11.1 to accumulate sum) Sinusoid table 47 (a) TI TMS4405 sinusoid table and memory address and addressing circuitry decoder 46 (b) TI TMS4400 ROM containing 512 words of 8-bits [p. 14- 188] programmed to store sin values Harmonic Amplitude (a) May be implemented as shown Multiplier 51 in application sheet SIG cata- log, p. 28 using SIG 8202 buffer registers and 8260 arithmetic element (b) Also can be implemented using SIG 8243 scaler [p. 65] Adder 28 and 111 SIG 8268 gated full adder Harmonic coefficient SIG 8223 read-only memory memory 49 and storage which includes address access control 50 control circuitry ______________________________________ *TI = Texas Instrucment Co. [Page references are to the TI "integrated Circuits Catalog for Design Engineers", First Edition, January, SIG = Signetics, Sunnyvale, California [Page references are to the SIG "Digital 8000 Series TTL/MSI" catalog, copyright 1971 .sup.1 Flores, Ivan "Computer Logic" Prentice-Hall, 1960

* * * * *


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed