Abstract:
Tone generation in a musical instrument is accomplished by repetitively computing a Fourier algorithm using stored sets of harmonic coefficients. An alterable voice is obtained by optically reading a data card, converting the data to a data format used by the tone generating circuitry, and storing the converted data to be employed as a set of harmonic coefficients. Harmonic coefficient data is encoded on the data card by imprinting columns of opaque areas. The length of each column is measured by sequentially scanning a linear array of light sources. Insertion of the data card in an enclosure automatically initializes the reading circuitry and removing the card causes each opaque data column to be measured in turn and the result converted to a harmonic component.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to the production of alterable tones in a musical tone synthesizer. 
     2. Description of the Prior Art 
     An electronic organ characteristically is capable of a large number of tonal variations produced by adding a set of preselected tones in all possible combinations. For example, if a given keyboard has 6 stops, or preselected tones, a total of 63 combinations is possible. In spite of this apparent large variety, musicians are constantly seeking new and distinctive tones with which to play particular music. 
     The Hammond organ introduced about 40 years ago provided a set of 9 drawbars for varying the tone of a keyboard. The system of drawbars has been widely used and even today new organs are designed using this method of obtaining tone variation. A limitation of the drawbar system is that only 9 harmonics are provided which do not suffice for very &#34;bright&#34; tones which may contain about 32 harmonics. Abortive attempts have been made to increase the number of drawbars. However, a set of 32 individual harmonic level controls is beyond the technical and mechanical ability of the average musician. It is both difficult and extremely time consuming to set 32 individual controls. 
     Organs have been built wherein an alterable voice is provided by reading waveshape data punched on a computer card. This system suffers from requiring computer generated data which requires technology beyond the capability of the musician. 
     It is an object of the present invention to implement an alterable voice in a tone synthesizer type of musical instrument employing stored sets of harmonic coefficients to generate tones. 
     Another object is to introduce new sets of harmonic coefficients encoded by imprinting opaque areas on a transparent data card, the encoding employed being readily interpreted as the harmonic spectra of a musical tone. 
     SUMMARY OF THE INVENTION 
     In a Polyphonic Tone Synthesizer of the type described in U.S. Pat. application No. 603,776 (filed Aug. 11, 1975), a computation cycle and a data transfer cycle are repetitively and independently implemented to provide data which is converted into musical tones. During the computation cycle a master data set is created by implementing a discrete Fourier algorithm using a stored set of harmonic coefficients which characterize musical tones. 
     A variable voice capability is introduced by reading data encoded on a card into a memory in a form that corresponds to these harmonic coefficients. The data encoding consists of applying opaque columns to a transparent data card. The length of each column corresponds to a harmonic coefficient expressed in db. The appearance of an encoded card is recognizable as the conventional harmonic spectrum of a musical tone drawn in the form of realtive db vs. harmonic number. 
     An optical card reader is employed for reading harmonic strength data encoded on the card. Inserting the card in the reader automatically initializes the reader and storage circuitry and places the system in read mode. As the card is withdrawn manually, a sequence of transparent areas causes an array of light sources to be scanned over the position of each column in turn. A photo cell detects when a light in the array is scanned in the first position not covered by an opaque column. The scan data is converted to a harmonic coefficient and stored in a read-write memory position corresponding to the current scanned opaque column. 
     Data cards can be easily prepared by the musician and can be readily duplicated by conventional photographic processing. 
     Provision is made for employing the same card reader and data card encoding to load a read-write memory with a set of control data for preselecting the value of a number of tone synthesizer controls. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1a illustrates an encoded card. 
     FIG. 1b illustrates a blank card. 
     FIG. 1c shows the card reader enclosure. 
     FIG. 2 shows the card reader circuitry. 
     FIG. 3 shows the optical card reader. 
     FIG. 3a shows the linear array of light sources. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The following 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 merely for the purpose of illustrating the general principles of the invention since the scope of the invention is best defined by the appended claims. Structural and operational characteristics attributed to forms of the invention first described shall also be attributed to forms later described, unless such characteristics are obviously inapplicable or unless specific exception is made. 
     The alterable voice disclosed herein operates in conjunction with musical generators of the type wherein the tone generator incorporates means for computing wave shapes from stored tables of harmonic coefficients. The alterable voice will be described in conjunction with the Polyphonic Tone Synthesizer disclosed in U.S. Pat. application No. 603,776 (filed Aug. 11, 1975). It can be used in an analogous fashion with a musical tone generator of the type described as a Computor Organ in U.S. Pat. No. 3,809,786. 
     In the Polyphonic Tone Synthesizer a computation cycle and data transfer cycle are repetitively and independently implemented to provide data which is converted into musical notes. During the computation cycle a master data set is created by implementing a discrete generalized Fourier algorithm using a stored set of harmonic coefficients which characterize the basic musical tone. Preferably, the harmonic coefficients and the orthogonal functions are stored in digital form, and the computations are carried out digitally. At the end of the computation cycle, a master data set has been created and is temporarily stored in a data register. 
     Following a computation cycle, a transfer cycle is initiated which transfers the master data set to a multiplicity of read-write memories. The transfer for each memory is initiated by detection of a synchronizing bit and is timed by a clock which may be asynchronous with the main system clock and has a frequency Pf, where f is the frequency of a particular note assigned to a memory and P is at least two times the maximum number of harmonics in the musical waveshape. The transfer cycle is completed when all the memories have been loaded, at which time a new computation cycle is initiated. Tone generation continues uninterrupted during computation and transfer cycles. 
     The master data set is computed according to the relation ##EQU1##  where N=1,2, . . . , 2W is the number of a master data set word, q=1,2, . . . , W is the harmonic number, W is the number of harmonics used to compute the master data set, and c q  are the harmonic coefficients. q is sometines called the order of the harmonic component of an element in the series constituting Z N . The number of harmonics, W, is a design choice. The choice of W=32 is satisfactory for generating the &#34;bright&#34; tonal sounds of a musical tone synthesizer. 
     System 10 of FIG. 2 illustrates the alterable voice used in conjunction with a musical tone generator such as the above referenced Polyphonic Tone Synthesizer. System 10 is a means whereby harmonic data printed on Card 11 is read and converted to harmonic coefficients c q  which are stored in a Data Memory 37. 
     Card 11 shown in FIG. 1a is advantageously constructed of a clear material that passes light with little loss. Information is encoded on Card 11 by causing specified areas to be opaque to light. The opaque areas can be applied by ink, pencil, or can readily be produced by conventional photographic processes from prepared art work. The data to be read and interpreted by System 10 of FIG. 2 is coded in 32 columns, each column corresponding to a harmonic coefficient c q . 
     The required accuracy of the art work in drawing the opaque areas on Card 11 is reduced by coding the harmonic coefficients c q  in db (decibels) relative to the strongest harmonic component. System 10 contains a means for transforming data coded on Card 11 in db to the number system used in the Polyphonic Tone Synthesizer for specifying the magnitude of the harmonic coefficients used in Equation 1. The height of each column thus corresponds to the desired harmonic coefficient expressed in relative db. 
     At the bottom edge of Card 11 is an opaque strip which has a sequence of 32 clear areas. These clear areas are aligned with the columns that correspond to each of the harmonic coefficients c q . In the first column of the sequence of 32 columns is an opaque strip having two clear areas as shown in FIG. 1b. The lower clear area is at the same position as the sequence of 32 clear areas. The upper area, called the initializer area, is at a higher position but lower than the opaque strip running along the lower edge of the card representing the minimum value of the encoded data. The two clear areas are used by System 10 to detect that Card 11 has been fully inserted into the card reader and to initialize the detection and reading circuitry. The sequence of 32 clear areas are used to initiate data read for each of the harmonic coefficients coded by the opaque areas of the card. 
     FIG. 1b shows a card containing opaque areas for detection and reading. The card is clear except for guide lines. The musician can code his own musical tone by opaquing the card with a suitable pen or pencil depending upon the material used to construct the card. The cross-hatched areas symbolically denote opaque areas. 
     FIG. 1c shows a slot for inserting Card 11 in a card reader conveniently mounted on a musical instrument. Card 11 is fully inserted until a stop is encountered. The card is then withdrawn at any desired speed. When the stop is reached upon insertion, System 11 detects this condition and automatically enters a read mode. The read mode is operative while the card is withdrawn from Card Reader 12 shown in FIG. 3. 
     FIG. 3 shows the elements of the Card Reader 12. Stop 18 is positioned such that when Card 11 is inserted against the stop, the detect clear hole is immediately below the clock light source in the Array 13 of light sources. Advantageously the Array 13 of light sources is an array of LED (light emitting diodes). While any number of light sources can be used in the array, the system operation will be described for an array of 42 lights. This number corresponds to a capability of reading harmonic coefficient c q  to a resolution of 0 to 39 db which is adequate for the operation of the polyphonic tone synthesizer. The two extra lights are used to initiate the card reading process and to transfer the data read to a specific address in a memory used to store data read from Card 13. 
     To read the data from Card 13, the card is inserted in the slot shown in FIG. 1c until the inserted edge of the card encounters the Stop 18. The card is then withdrawn from the slot. The withdrawal action automatically causes the data stored on the card by means of the opaque areas to be read, processed, and read into a data storage memory. The Card Reader 12 shown in FIG. 3, comprises the Light Array 13, and two Lenses 14a and 14b for focusing the light passing through the clear areas of Card 11 onto Photo Detectors 15a and 15b. The electrical signals created in the photo detectors are amplified and the resultant output is sent to the Detection Logic 10 shown in FIG. 2. 
     The light source in Array 13 positioned to be over the clear area at the bottom of each data column of Card 11 is always illuminated. This light source is called the clock light and the clear areas under it on Card 11 have called the clock areas. For illustrative purposes, the clock light is shown separate from the remainder of the Light Array 13 in FIG. 2. 
     The light sources in Light Array 13 (except for the clock light) are caused to be illuminated individually in a scan sequence which is controlled by Scan Counter 18. 
     The light received via the clock light positioned over a clock area is detected by Photo Cell 19, amplified and sent to a pulse edge detector consisting of a Bit Dealy 20, Invertor 21 and an AND Gate 22. The action of the edge detector is such that a signal will occur on line 23 only when the photo cell has just received light. Thus as each clock area is positioned over Photo Cell 19, a pulse will be generated on line 23 when such a position is first reached. If Card 11 is kept stationary, then the action of the edge detector is such that after first reaching a clock area, no further signals are created on line 23. These signals are called card clock signals. 
     Before Card 11 is inserted, no signal will appear on line 23 because of the action of the edge detector. When a card clock signal appears on line 23 it causes Scan Counter 18 to be reset. Scan Counter 18 is a counter modulo 41. Count zero corresponds to detection of light through the initializer area in the first column while counts 1 through 40 correspond to the 0 to 39 db encoded data. 
     Scan Counter 18 is incremented by clock pulses received from AND Gate 24. These pulses will occur if Latch 25 is in its &#34;set&#34; condition. Latch 25 is a flip-flop which is set by a signal appearing on line 23. The action is such that Scan Counter 18 is caused to be reset each time a clock area is &#34;read&#34; by Photo Cell 19 and an edge detection occurs indicating motion of Card 11. After being reset,, Scan Counter 18 is incremented by clock pulses from the system logic clock which are transferred via AND gate 24. 
     The binary count contained in Scan Counter 18 is sent to Decoder 17. Decoder 17 converts the binary count number to decimal numbers which are used to energize the corresponding light sources in Light Array 11. In this manner, the individual light sources are caused to be individually illuminated in a scan sequence starting from 0 and proceding to the light source number 40. 
     The light from the Light Array 13 for light sources 2 through 42 passes through the clear areas of Card 11 and is focused by Lens 14 on Photo Cell 16. Latch 25 will be reset by a signal from AND Gate 26. A signal will be generated by AND gate 26 if a light pulse is received by Photo Cell 16 and if Scan Counter 18 is not in its zero state. Decoder 17 decodes the states of Scan Counter 18 and the zero state is inverted by Invertor 28 to appear as an input to AND Gate 26. 
     The first function that must be accomplished by System 10 of FIG. 2 is to detect that Card 11 has been fully inserted. When this condition is detected, System 10 must then be prepared to read the db information in each column as Card 11 is withdrawn from the card reader. When Card 11 is inserted into the card reader, a sequence of card clock signals are generated on line 23. However, until the card reaches Stop 18, Flip-Flop 30 inhibits any data which may be read from being written into Data Memory 37. 
     Column Counter 29 is incremented by the signals appearing on line 23 and the contents of this counter thereby correspond to each data column on Card 11. 
     The second function accomplished by System 10 is to &#34;read&#34; the height of each opaque column centered over a clock area as Card 11 is withdrawn from the card reader. As described above, each time that a clock area appears under the clock light, Scan Counter 18 is reset and Latch 25 is set so that clock pulses can increment Scan Counter 18. Column Counter 29 is reset by a signal created by AND Gate 27. This signal will be created when the light from Light Source Zero is detected by Photo Cell 14 when Card 11 has been inserted fully to Stop 18. As Card 11 is withdrawn, Column Counter 29 is incremented each time a clock area appears under the clock light source. 
     During a column read, Scan Counter 18 causes each of the light sources to be illuminated in a scan sequence. When the first light not over an opaque area, and not over the initializer area, is illuminated, Photo Cell 16 detects the illumination and generates a signal that resets Latch 25 via AND Gate 26. The contents of Scan Counter 18 corresponds to the number of db read from Card 11. This count is transferred and stored in Data Memory 37. The address of the data to be stored is the column information contained in Column Counter 29. 
     Data can be written into Data Memory 37 only when a signal has been generated by AND Gate 33. Such a signal will be generated if Flip-Flop 30 is not set and if a light signal has been detected by Photo Cell 16 corresponding to any light source from 1 to 40. Flip-flop 30 is set by a signal from AND Gate 31. AND Gate 31 will create a signal when Photo Cell 16 detects illumination from any light source from 1 to 40 and Column Counter 29 has been incremented to Count 31. Thus the function of Flip-Flop 30 is to prevent spurious data from being read into Data Memory 37 when no card has been inserted into the card reader or during the insertion of a card. In this system state, Column Counter 29 will have been previously incremented to 31. Flip-Flop 30 is reset at the same time that Column Counter 29 is reset. 
     The contents of Scan Counter 18 at the end of each scan of Light Array 13 contains a count equal to the location of the first light source scanned which does not appear under an opaque area. The count is transferred via Adder 35 to the DB Convert ROM 34. The binary number q appearing at the input to DB Convert ROM 34 is used to address a corresponding harmonic coefficient c q  from the memory and cause the addressed number to be transferred to Data Memory 37. 
     Adder 35 is used to alter the data encoded on Card 11. It is convenient to encode the card so that each harmonic coefficient is relative to an arbitrary value of 0 db. However, in practice some tones are desired at various loudness levels. Adder 35 is essentially a volume control. For example, adding a negative increment to each number received from Scan Counter 18, the net result is that a constant number of db is subtracted from each db value read from Card 11 by System 10. 
     DB Convert ROM 34 converts the numbers transferred by Adder 35 to the binary number system for the harmonics c q  used by the Polyphonic Tone Synthesizer in the Harmonic Coefficient Utilization Means 36. Table 1 lists the address of DB Convert ROM 34 and the binary numbers contained at each address. For illustration, the corresponding decimal numbers are shown. 
     
                       TABLE 1______________________________________1    0 0 0 0 0 1 0             2       21   0 0 0 1 1 1 0                                     142    0 0 0 0 0 1 0             2       22   0 0 1 0 0 0 0                                     163    0 0 0 0 0 1 0             2       23   0 0 1 0 0 1 0                                     184    0 0 0 0 0 1 0             2       24   0 0 1 0 1 0 0                                     205    0 0 0 0 0 1 1             3       25   0 0 1 0 1 1 1                                     236    0 0 0 0 0 1 1             3       26   0 0 1 1 0 0 1                                     257    0 0 0 0 0 1 1             3       27   0 0 1 1 1 0 0                                     288    0 0 0 0 1 0 0             4       28   0 1 0 0 0 0 0                                     329    0 0 0 0 1 0 0             4       29   0 1 0 0 1 0 0                                     3610   0 0 0 0 1 0 1             5       30   0 1 0 1 0 0 0                                     4011   0 0 0 0 1 0 1             5       31   0 1 0 1 1 0 1                                     4512   0 0 0 0 1 1 0             6       32   0 1 1 0 0 1 1                                     5113   0 0 0 0 1 1 0             6       33   0 1 1 1 0 0 1                                     5714   0 0 0 0 1 1 1             7       34   1 0 0 0 0 0 0                                     6415   0 0 0 1 0 0 0             8       35   1 0 0 0 1 1 1                                     7116   0 0 0 1 0 0 1             9       36   1 0 1 0 0 0 0                                     8017   0 0 0 1 0 1 0             10      37   1 0 1 1 0 1 0                                     9018   0 0 0 1 0 1 1             11      38   1 1 0 0 1 0 1                                     10119   0 0 0 1 1 0 1             13      39   1 1 1 0 0 0 1                                     11320   0 0 0 1 1 0 1             13      40   1 1 1 1 1 1 1                                     127______________________________________ 
    
     An alternative light array source is a trace on a cathode ray tube. The tube face is positioned over Card 11 as shown in FIG. 3 so that a single line trace lies in the position shown for the Light Array 13. The cathode ray beam is scanned in a well-known fashion from the contents of Scan Counter 18. The number residing in Scan Counter 18 is converted to an analog signal by means of a conventional digital-to-analog converter. The resulting analog signal is then used to position the cathode ray tube trace. The remainder of System 10 is the same as that previously described. 
     The card reader has been described above as a means for providing an alterable voice for a musical tone generator. The invention is not limited to this application. In particular, the invention is advantageously used in conjunction with a tone generator of the type commonly called by the generic term &#34;tone synthesizer.&#34; In a tone synthesizer a wide variety of time varying modulations are employed during the generation of a tone to create tonal effects. The variety of time varying modulations is created by a large number of controls which must be carefully set for each particular desired tonal effect. The subject invention readily provides a means for introducing a number of predetermined values for each of a set of tone synthesizer controls. The position of each control is encoded by the height of an opaque column centered over a clock area. Each column is read into a data memory assigned for control data. The db Convert ROM 34 is coded in a predetermined fashion to generate any desired transfer relationship between the height of an opaque column on Card 11 to the value to be assigned to an associated control. 
     The system clock incrementing Scan Counter 18 must operate at a speed sufficiently fast so that a complete column scan can occur before the card is pulled to an adjacent column. Let W represent the width of a data column on Card 11 and H represent the height of the column. The width of the 32 columns is 32W. If the operator extracts Card 11 in a time T, then each column must be scanned in a time T/32. Typically 32W is a length of 3 inches and the card is fully withdrawn in about one second. Each data column width is 3/32=0.09375 inches and must be scanned in 0.03125 seconds. Since 40 lights are to be scanned sequentially, the minimum scan frequency is 40/0.3125=1280 hz. Intending to claim all novel useful and unobvious features shown or described the applicant makes the following