|Publication number||USRE31004 E|
|Application number||US 06/230,348|
|Publication date||Aug 3, 1982|
|Filing date||Jan 30, 1981|
|Priority date||Dec 17, 1976|
|Also published as||US4184400|
|Publication number||06230348, 230348, US RE31004 E, US RE31004E, US-E-RE31004, USRE31004 E, USRE31004E|
|Original Assignee||Nippon Gakki Seizo Kabushiki Kaisha|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (8), Referenced by (13), Classifications (8)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present invention relates to an electronic musical instrument, and more particularly, to an electronic musical instrument wherein tones are produced through data-processing by a digital computer.
Various systems have heretofore been proposed as for the digital waveshape generation and for the computer control of a musical instrument. For example, in the U.S. Pat. No. 3,809,786 entitled COMPUTOR ORGAN, Fourier components of a periodic waveshape are computed separately at each sample point, and these components are algebraically added to obtain the waveshape amplitude at the sample point. And in the U.S. Pat. No. 3,692,087 entitled COMPUTIZED ORGAN REGISTRATION AFFECTING SYSTEM, stops and couplers of a pipe organ are controlled by a computer. But, in all the heretofore known systems, only a part of the total system of a musical instrument is controlled by a computer, as described in the foregoing two examples. And therefore, the variety of the generated waveshapes in the heretofore known systems is naturally limited.
On the other hand, players of the electronic musical instruments may wish to have a wide freedom in the selection of a tone quality. For example, a tone quality selected out of a group of various predetermined tone qualities may not be satisfactory for a player, and he may wish to create a new type of tone quality which is most adapted for the expected effect of the performance on the instrument. Any one of the heretofore known electronic musical instruments can not satisfy these requirements of the players.
Therefore, the general object of this invention is to provide an electronic musical instrument in which the freedom in selecting the tone quality is substantially improved. This objective is achieved by a relatively simple circuit disclosed by the present invention, wherein each component unit of an electronic musical instrument, for example, such a unit as the instrument keyboard unit, the tone quality control unit, and the tone generator unit, is connected to a common data bus as a terminal equipment of an electronic computer through the corresponding interface, the CPU(central processing unit) and the associated memories being also connected to the common data bus.
More particularly, an object of this invention is to provide an electronic musical instrument in which the player of the instrument can determine as he pleases the values of the parameters which affect the generated waveshapes, and also he can determine the algorithm by which the tone waveshapes are generated.
Another object of this invention is to provide a system of an electronic musical instrument in which the system expansion is easily and economically achieved. Since a common data bus has no limitation for a parallel connection of various terminal units, the system of this invention will be expanded when some terminal unit is connected in parallel to the common data bus. For example, a single instrument keyboard unit is connected to the common data bus and a single player performs on this instrument, but two tone generator units may be connected to the same common data bus. These two tone generator units may produce a same musical tone, or these two tone generator units may produce mutually different musical tone in accordance with the control program designed for the purpose.
Still another object of this invention is to provide a system of an electronic musical instrument wherein the signals on the common data bus are transmitted by a communication channel to a remote place where a tone generator unit(or units) is controlled by the signals, or a system of an electronic musical instrument wherein the signals on the common data bus are recorded to be reproduced to control a tone generator unit(or units).
Further, an important object of this invention is to provide a compact and inexpensive electronic musical instrument. Recently a so-called microprocessor can be obtained in a general market. The microprocessor has all the necessary functions of a CPU for a specified purpose, and is integrated in one single LSI(large scale IC) or in a few LSIs. Since the microprocessor is compact and inexpensive, an electronic musical instrument of this invention will be compact and inexpensive when a microprocessor is employed for the CPU.
For a better understanding of the invention, its operating advantages, and specific objects attained by its use, reference should be had to the accompanying drawings and descriptive matter thereof in which there are illustrated and described several preferred embodiments of this invention.
FIG. 1 is a block diagram of an embodiment of this invention.
FIG. 2 is a block diagram of an embodiment of a tone generator unit in accordance with the present invention.
FIG. 3 shows a schematic connection diagram of the control means for the output connection of the address counter of the tone generator unit shown in FIG. 2.
FIG. 4 shows an example of the performance time chart of the FIFO in the tone generator unit of FIG. 2.
FIG. 5 is a block diagram of an embodiment of the instrument keyboard unit and its interface in accordance with the present invention.
FIG. 6 is a block diagram of an embodiment of a timing circuit in accordance with the present invention.
FIG. 7 is a waveform diagram illustrating an example of a tone waveshape which is generated in the tone generator unit of FIG. 2.
FIG. 8 shows an example of a flow chart illustrating the interruptions of the program executed in an embodiment of this invention.
Referring now to FIG. 1, there is shown a block diagram of an embodiment of this invention. In FIG. 1, numeral 10 represents a common data bus, and numeral 20 is a CPU of this invention. In this specification, a CPU means an equipment which has a general data processing function for processing input data from the input terminal units, the data processing being executed by the control circuits, the arithmetic logic units, and the registers in the CPU together with the associated memories; and the processed data are output to the corresponding terminal units through the common data bus 10. In preferred embodiments of this invention, a microprocessor will be used for the CPU 20. Numeral 21 is an interface for the CPU 20, numeral 22 shows associated memories, numeral 24 is a CPU control unit, and numeral 25 is an interface for the CPU control unit 24. The algorithm of the data processing in the CPU 20 is determined by the program stored in the memories 22 and by the control signal transmitted from the CPU control unit 24. Since an abundant variety of programs can be stored in the memories 22, and since the programs stored in the memories 22 can be easily altered, the algorithm of the data processing can be changed as desired.
Numeral 30 is an instrument keyboard unit, numeral 31 is an interface for the instrument keyboard unit 30, numeral 32 is a tone quality control unit, numeral 33 is an interface for the tone quality control unit 32, numeral 34 is a tone generator unit, numeral 35 is an interface for the tone generator unit 34, numeral 36 is a display unit, numeral 37 is an interface for the display unit, numeral 38 is a MODEM (modulator and demodulator) unit, and numeral 39 is a timing circuit.
It must be reminded that, in all the heretofore known electronic musical instruments, all the interconnections between the instrument keyboard unit, tone quality control unit, the memories, and the tone generator unit have respective (exclusive) hardwared connections. In the present invention, the common data bus 10 is used for these interconnections to improve the flexibility of the connection.
In the circuit shown by FIG. 1, signals exchanged among the terminal units through the common data bus 10 may be classified as shown in the following table Table 1.
TABLE 1______________________________________ ToneSignals to Memo- Gener- MODEM DisplaySignals CPU ries ator Unit Unitfrom 20 22 Unit 34 38 36______________________________________CPU 20 S12 S16 S17 S18Memories 22 S21InstrumentKeyboard Unit 30 S31 S32 (S36) (S37) S38Tone QualityControl Unit 32 S41 S42 (S46) (S47) S48CPU ControlUnit 24 S51______________________________________
In Table 1,
the signals S12 include the instructions for writing and reading of the memories 22,
the signals S16 include signals for controlling the tone waveshape generation and for determining the tone quality, these signals being produced at the CPU 20 from signals S31 and S41, the signals S21 include signals of instruction and the data transmitted to the CPU unit 20,
the signals S31 include the ON-OFF signal of the key switch and the key data signals,
the signals S41 include signals for determining the tone quality,
the signals S32 and S42 mean the direct access to the memories 22,
the signals S36 include ON-OFF signal of the key switch and the key data signals,
the signals S46 include signals for determining the tone quality, and
the signals S51 include signals for selecting the program to be executed and other signals for directly controlling the CPU unit 20.
In preferred embodiments, the signals S31 and S41 are processed in the CPU 20 to generate the signals S16 which control the tone generator unit 34. But in some embodiments, the tone generator unit 34 may be directly controlled by the signals S36 and S46.
It will be obvious that the signals S17, S37, and S47 are the same or similar to the signals S16, S36, and S46 respectively. Signals S18, S38, and S48 are signals for indicating the status of the CPU unit 20 and other terminal units. An adequate status display is desirable for the succeeding control of the system.
Of all these signals, the signals S12, S21, and S51 have the same nature with the signals exchanged among the corresponding units of the conventional computer systems employed for universal data processing, and therefore, further description of these signals will not be necessary.
In some embodiments of this invention, another CPU (or CPUs) and/or other external memories may also be connected to the common data bus 10. The signals to and from this supplementary CPU and this supplementary memories in these embodiments of this invention is the same to the signals to and from the supplementary CPU and the supplementary memories in a conventional computer unit and will need no further description.
The format of the data word or that of the instruction word for representing these signals will be determined in accordance with the design requirements. In a general case, one word which represents one signal of these signals will be composed of an address part, an instruction part, and a data part. Furthermore, this address part may be subdivided into a machine address, a device address, and a register address. The machine address specifies the types of the terminal unit as illustrated in FIG. 1, the device address specifies one particular device of the plural devices of a same terminal unit, as in case when two tone generator units are connected in parallel to a same common data bus, and the register address specifies a particular register in a terminal unit.
These words are transmitted through the common data bus 10 in a bit serial form in ordinary embodiments. And the data part and the instruction part of the word are stored in the corresponding registers. The data part of the word will be called a data code and the instruction part of the word will be called an instruction code. Loading a data code or an instruction code to a register from a bit serially arranged word, or transmitting a bit serially arranged word from a stored code in a register is a well known technic in the field of a digital circuit, and therefore, descriptions on these serial/parallel code conversion will be omitted in the following explanations.
In the circuit as shown by FIG. 1, the priority of interruption is predetermined for all the terminal units, and an interruption from a terminal unit will be dealt in accordance with this predetermined priority. As in a conventional computer, the CPU 20 will accept and deal with these interruptions, select the program to be executed, and control jumps, halts, and queuings.
Now referring to FIG. 2, there is shown a block diagram of an embodiment of a tone generator unit in accordance with this invention. In general, a musical tone has an attack, a decay, and a release period. The attack period is initiated when the instrument key is closed and the amplitude of the musical tone increases in this period. The release period is initiated when the instrument key is released and the amplitude of the musical tone decreases and is terminated in this period. Usually, there is a period between this attack and release period, and this period will be called as a decay period in this specification. In the decay period, the amplitude of the musical tone gradually decreases.
In many of the heretofore known electronic musical instruments, each tone waveshape is maintained in a similar figure throughout these attack, decay, and release periods, only the amplitude of the tone waveshape being modulated by the envelope waveforms. This similarity of the tone waveshapes had made it difficult for the heretofore known electronic musical instruments to simulate the desired tone qualities produced by such natural musical instruments as a piano, a harp, and a xylophone.
In the tone generator unit 34 of this invention, the freedom in selecting and changing the algorithms and the parameters affecting the waveshapes is substantially increased owing to the computer control system as described in connection with FIG. 1. And therefore, an example of the tone generator unit which can generate varying waveshapes is illustrated in FIG. 2. The change in the tone waveshape during the attack, decay, release periods means the change in the harmonic contents during these periods, and is very advantageous for producing a desired tone quality.
In the embodiment shown by FIG. 2, the data codes stored in the registers of the tone generator unit 34 comprise: an octave code OCC which represents the octave to which the frequency of the generated tone belongs, OCC being stored in a register 800;
a note code NTC which specifies a particular tone in the twelve notes in an octave, NTC being stored in a register 500;
parameter codes A1, A2, A3 for determining the initial tone waveshape, these codes being stored in registers 140, 150, 160 respectively;
parameter codes P, Q for determining the characteristics of a digital filter 5, these codes being stored in registers 520, 540 respectively;
a tone waveshape changeover code (one bit code) S stored in a register 21; and
a sound output enable code (one bit code) E stored in a register 71.
The generation of these codes will be described in later paragraphs.
Throughout the following descriptions, the twelve-notes-per-octave system of an equal temperament will be assumed. The purpose of this assumption is to simplify the explanations, and it will become obvious from the following descriptions that the electronic musical instrument of this invention can employ any system other than the twelve notes system.
A dotted line block 1 in FIG. 2 is an initial waveshape generator means, and in this embodiment, the initial waveshape generator means 1 comprises three read-only-memory means (ROM), ROM 11, ROM 12, ROM 13, three multiplier circuits 14, 15, 16, and an adder circuit 17. ROM 11, ROM 12, and ROM 13 stores mutually different memories corresponding to mutually different waveshapes. As a numerical example for explanation, these ROMs are assumed to have 1,024 words, each word being constituted by 16 bits representing the amplitude of the 1,024 points which evenly divide one cycle period of a waveshape. These 1,024 words are stored in the order of the phase angle of the sample point, and these three ROMs are read out simultaneously by a same address which will be explained in later paragraphs. Each output of these ROMs is multiplied by the corresponding parameter A1, A2, or A3 at the respective multiplier circuit 14, 15, 16, and the three products are added at the adder circuit 17 to produce the initial waveshape.
And therefore, the initial waveshape can be changed by changing the parameters A1, A2, A3. But it must be understood that any type of a tone generator may be used for the initial waveshape generator 1.
Numeral 2 is a waveshape selector which is controlled by the tone waveshape changeover signal S. Numeral 4 represents a shift register, and a dotted line block 5 is a digital filter. This digital filter 5 and the shift register 4 constitute a circuit in which the digital code representing one cycle period of the waveshape is circulated and the harmonic contents of the circulated waveshape is successively changed in accordance with the characteristic of the digital filter 5. In the embodiment shown by FIG. 2, the digital filter 5 comprises a shift register (S/R) 51, multiplier circuits 52, 54, and an adder circuit 53. The parameters of the multiplication, P, Q will determine the characteristic of this digital filter 5.
The embodiment of FIG. 2 is characterized in that the rate of the waveshape generation is kept constant irrespective of the fundamental frequency of the generated musical tone. This constant rate of the waveshape generation simplifies the waveshape generation circuits and increases the reliability of the performance of these circuits. In order to keep the rate of the waveshape generation constant, a first-in-first-out (FIFO) type memory 3 in FIG. 2 is employed in this embodiment. Numeral 6 is a sound system, and numeral 7 is a gate means for controlling the input to the second system 6, the gate 7 being controlled by the sound output enable signal E.
Numeral 80 is a master clock pulse generator, numeral 81 is an AND gate, numeral 82 is a divider, numeral 83 is an address counter, numeral 85 is a control means for the output connection of the address counter 83, numeral 86 is a set-reset flipflop, numeral 501 is a note clock generator, numeral 502 is a counter for controlling the writing of the FIFO 3, and numeral 503 is a counter for controlling the reading of the FIFO 3.
And in the embodiment of FIG. 2, in order to keep a constant writing rate to the FIFO 3, the number of the words representing one complete cycle (or the number of sample points in one complate cycle) of a waveshape is charged in accordance with the OCC code. For the purpose of the following explanation, a numerical example of the number of words for one cycle of the waveshape is shown in Table 2.
TABLE 2______________________________________ Number of Words forOCC Octave of the Tone One Complete Cycle______________________________________000 A1 ˜ G1 ♯ 1,024001 A2 ˜ G2 ♯ 512010 A3 ˜ G3 ♯ 256011 A4 ˜ G4 ♯ 128100 A5 ˜ G5 ♯ 64101 A6 ˜ G6 ♯ 32110 A7 ˜ G7 ♯ 16111 A8 ˜ C9 8______________________________________
For the numeral example of Table 2, the master clock frequency generated by the pulse generator 80 is set at a value which is near to 2 MHz (hereinafter will be denoted by φ0 and will be called as 2 MHz for brevity). This φ0 pulse which passes the gate 81 intermittently (as will be described in later paragraphs) is employed as the master clock for the initial waveshape generator means 1, the digital filter 5, and the shift register 4. The intermittent clock pulse of the output of the gate 81 will be denoted by φG. Since the ROMs 11, 12, 13 and the shift register 4 store 16 bit words, the clock φG is divided by 16 by the divider 82, and is input to the address counter 83. Thus, the change of the address and the clock are mutually synchronized in the initial waveshape generator means 1 and in the shift register 4.
In the embodiment of FIG. 2, the address counter 83 has 10 cascaded binary stages, and the parallel output of this counter 83 are connected as shown by FIG. 3, through the control means 85 for the output connection of the address counter. In FIG. 3, c9, c8, . . . c1, c0 means the parallel output of the address counter 83 as arranged from the MSB to the LSB, and a9, a8, . . . a1, a0 means the address for reading the ROMs 11, 12, 13 and the addresses for writing and reading the shift register 4, since the shift register 4 in this embodiment is assumed to be a RAM (random access memory). The address a9, a8, . . . a1, a0 is also arranged from the MSB to the LSB. For one example, when the OCC is at a logic "φ", c5, c4, . . . c1, c0 are output as a9, a8, . . . a5, a4 and the logic "0, 0, 0, 0" are output for a3, a2, a1, a0 ; and therefore, for each one input pulse (2 MHz/16) to the address counter 83, addresses of the ROMs 11, 12, 13 and the RAM 4 will be progressed by 16 (corresponding to the a4 bit which is the c0 bit), and the words at addresses 0, 16, 32, . . . 992, 1008 are read out constituting one complete cycle of the waveshape by 64 words as shown in Table 2.
The output of the waveshape selector 2 will be either the initial waveshape from the adder 17 or the circulated and changing waveshape from the RAM 4 as selected by the signal S. This output of the waveshape selector 2 is input to the FIFO 3. As a numerical example for brevity of description, the FIFO 3 is assumed to have 64 word memory of 16 bit word. The writing rate to the FIFO 3 is 2 MHz per bit or 2 MHz/16 per word, and the FIFO 3 is read out continually by a variable reading rate corresponding to the NTC, and the reading rate being always lower than the writing rate. Therefore the writing must be interrupted in order to wait the progress of the reading, and this waiting is controlled by the gate 81.
Table 3 shows an example of the generated frequency of the note clock generator 501.
TABLE 3______________________________________NTC Tone Frequency of the Note Clock______________________________________0000 A 28.160 = 440.0 × 640001 A♯ 29.834 ≈ 466.2 × 640010 B 31.608 ≈ 493.9 × 640011 C 33.488 ≈ 523.2 × 640100 C♯ 35.479 ≈ 554.4 × 640101 D 37.589 ≈ 587.3 × 640110 D♯ 39.824 ≈ 622.2 × 640111 E 42.192 ≈ 659.3 × 641000 F 44.701 ≈ 698.5 × 641001 F♯ 47.359 ≈ 740.0 × 641010 G 50.175 ≈ 784.0 × 641011 G♯ 53.158 ≈ 830.6 × 64______________________________________
The frequency of the note clock is controlled by the NTC. In the generation of the note clock as listed by Table 3, any heretofore known variable frequency generator means may be employed, and in the embodiment of FIG. 2, it is assumed that the master clock pulse φ0 is frequency-divided to produce the frequencies which are approximately equal to the corresponding frequencies in Table 3, the ratio of the frequency division being controlled by the code NTC. All the note frequencies as listed in Table 3 are lower than the writing frequency of the FIFO 3 which is 2 MHz/16=125 kHz.
The interruption of the writing to the FIFO 3 will be described in connection with FIG. 4, where an example of the performance time chart is illustrated. In FIG. 4, the pulse P503 represents an example of the output pulse of the note clock generator 501 which is the input pulse to the counter 503 for controlling the reading of the FIFO 3. When the counter 503 counts 64 input pulses, the series output PON from the counter 503 triggers-on the flipflop 86 and opens the gate 81. Now the clock pulse φG is transmitted, the waveshape generation is recommenced, and the output from the waveshape selector 2 is written to the FIFO 3. The pulse P502 in FIG. 4 shows the output pulse from the divider 82, which is the input pulse to the counter 502 for controlling the writing of the FIFO 3.
As the frequency of the pulse P503 is always lower than the frequency of the pulse P502, when the number one pulse of the P503 pulses arrives to the FIFO 3, there will be at least one word in the FIFO 3 which is written by the number one pulse of the P502 pulse, and therefore the reading of the FIFO will not be interrupted. The waveform G86 in FIG. 4 shows the output logic of the flipflop 86, and during the time when this logic is at "1", the writing and the reading of the FIFO 3 are executed simultaneously. When the counter 502 counts 64 input pulses, the series output POFF from the counter 502 triggers-off the flipflop 86 and closes the gate 81. The writing to the FIFO 3 is interrupted until the next PON pulse. In this way, the writing to the FIFO 3 is interrupted for each 64 words, which corresponds to 64/1024 cycle of a tone waveshape when the OCC is at "0, 0, 0" or to 64/16 cycles of a tone waveshape when the OCC is at "1, 1, 0".
The fundamental frequency of the produced tone wave is determined by the codes OCC and NTC. For example, when the NTC is at logic "0, 0, 0, 0", the frequency of the P503 pulse will be 28.160 kHz, and since one cycle is composed of 1024 words when the OCC is at "0, 0, 0", the one cycle of the waveshape is read out at a rate of 28.16 kHz/1024=27.5 Hz, generating a tone of 27.5 Hz. When the OCC is changed to "1, 1, 0" with the NTC at "0, 0, 0, 0", the one cycle of the waveshape will be read out at a rate of 28.16 kHz/16=1760 Hz.
Thus, the digital code representing the amplitude of the sample points of a waveshape is read out from the FIFO 3, and is input to the gate 7 which is controlled by the signal E. The output of the gate 7 is converted to an analog waveform, further modified by effect circuits when necessary, and is converted to a sound wave in the sound system 6. The sound system is heretofore well known and will need no further description.
In one modified embodiment of the tone generator unit 34, the waveshape selector 2 may be replaced by an adder (not shown in the drawing) which adds the output of the initial waveshape from the adder circuit 17 to the output of the circulated waveshape from the RAM 4. The added sum is input to the FIFO 3 and is, in parallel transmitted to the input of the digital filter 5 to be recirculated.
Now, one embodiment for producing these codes A1, A2, A3, P, Q, S, E, OCC, NTC in FIG. 2 will be described. FIG. 5 is a block diagram of an embodiment of the instrument keyboard unit 30 and its interface 31 in accordance with the present invention. In the embodiment as shown in FIG. 5, the common data bus is shown as divided into three lines, an address line 101, a data line 102, and a control line 103. It is obvious that the common data bus 10 of this invention may take any form in accordance with the design requirements.
In FIG. 5, numeral 316 is a clock pulse generator for scanning the key switches, numeral 312 is a counter, numeral 311 is a decoder, numeral 313 is an OR gate, numeral 314 is a shift register, and numeral 315 is a latch. The clock pulse generator 316, the counter 312, the decoder 311, the gate 313, the shift register 314, and the latch 315 constitute a keyswitch state detector means. The lowest four binary stages of the counter 312 are connected in a scale-of-12 fashion corresponding to the 12 kinds of the code NTC, and the decoder 311 has a corresponding connection. In this connection, the lower 4 bits of the latch 315 represent the code NTC, and the following three bits of the latch 315 represent the code OCC.
In the embodiment shown by FIG. 5, it is assumed that respective connection priority is assigned to each one of the key switches in the instrument keyboard unit 30, and that all the key switches are connected in a preference network manner according to the respective priorities. Therefore, of all the key switches closed at a same time, only the key switch which has the highest priority, is connected to the logic "1" signal as shown in FIG. 5. The logic "1" signal is also output successively at each terminal of the decoder 311. Therefore, the logic "1"0 signal from the instrument keyboard is output through one of the AND gates and then through the OR gate 313. The shift register 314 is for delaying this logic "1" signal for one complete cycle of the scanning. Therefore the output of a gate 319 means that a logic "1" signal has appeared for a key switch where there was logic "0" signal in the preceeding scanning, and this output is used for the key-on signal as denoted by KON ; and the output of a gate 320 means that a logic "1" signal which was in the preceeding scanning has disappeared in this scanning, and this output is used for the key-off signal as denoted by KOFF.
By the KON signal, the contents of the counter 312 is input to the latch 315, and therefore the output of the latch 315 will be the NTC and the OCC as described in the forgoing paragraphs. The output of the latch 315 will be transmitted to the data line 102 when a predetermined address signal is received at the address decoder 317 from the address line 101. A gate 318 is provided between the output of the latch 315 and the data line 102, and the gate 318 is controlled by a gate enable signal from the control line 103.
A block diagram of an embodiment of the timing circuit 39 in accordance with this invention is shown in FIG. 6. In FIG. 6, numeral 386 is a frequency divider, numeral 387 is a selector, numeral 388 is an address decoder, numeral 389 is a counter, numeral 390 is a comparator, numerals 391, 392, 393 are respectively latches, and numerals 394, 395, 396 are respectively AND gates. The performance of the timing circuit shown by FIG. 6 will be described in connection with the drawings of FIG. 7 and FIG. 8.
FIG. 7 shows a waveform diagram illustrating an example of a tone waveshape controlled by the timing circuit of FIG. 6, and FIG. 8 shows an example of a flow chart illustrating the interruptions of the programs for generating the waveform as shown by FIG. 7.
Referring first to FIG. 8, the main program executed in the CPU 20 will be the repetition of the scanning for the tone quality control unit 32 and the poling of the display unit 35; and, when a program interruption is finished, the program is returned to this main program.
An interruption will be initiated by the signal KON (refer to FIG. 5), and the address is transmitted to the address decoder 317 to write in the codes NTC and OCC through the gate 318. In the next step, stage=0 is set as the initial value of the stage. Then the CPU 20 will transmit the codes A1, A2, A3, NTC, OCC, P, Q corresponding to the stage=0 through the common data bus 10. The values of P, Q in this stage will be represented by P1, Q1. These codes are stored in the corresponding registers 140, 150, 160, 500, 800, 520, 540 in the tone generator unit 34, and the code OCC is also stored in the latch 391 (refer to FIG. 6). In the following step, the CPU 20 will transmit the signal S at the logic "0", a code t1 representing the value of a first time interval, and the timing circuit reset and enable signal. The signal S is stored in the register 21 (refer to FIG. 2), the code t.sub. 1 is stored in the latch 393 and the timing circuit reset and enable signal is stored in the latch 392 (refer to FIG. 6). In the last step, the signal E is transmitted to be stored in the register 71. Then the program is returned to the main program. Thus, all the data registers 140, 150, 160, 500, 800, 520, 540, 21, and 71 in the tone generator unit 34 are provided with the new data, and a musical tone is generated as previously described in connection with FIG. 2. This stage is denoted by stage=0 in FIG. 7.
Again referring to FIG. 6, the input of the divider 386 is the P503 pulse whose frequency is as listed in Table 3, and this divider 386 comprises cascaded binaries, each output of these cascaded binaries being input to the selector 387. One of these parallel output of the divider 386 is selected as the output of the selector 387 in accordance with the code OCC from the latch 391, in such a way as the output pulse frequency is divided by one more binary counter stage when the code OCC represents one stage lower octave. Thus the frequency of the output pulse from the selector 387 is proportional to the generated tone frequency, and this output pulse from the selector 387 is used as the unit of the time scale in the timing circuit 39. Therefore, the generated envelope waveform has a time scale proportional to one cycle length of the tone waveshape. The counter 389 counts the output pulse of the selector 387, and the parallel output of the counter 389 is compared to the code t1 from the latch 393. Since the counter 389 is reset and enabled by the signal from the latch 392 which is loaded at the interruption by the pulse KON, the parallel output of the counter 389 will become equal to the output of the latch 393 after a time t1 (measured by the period of the output pulse of the selector 387), and the comparator 390 will transmit a Ptimer pulse to the control line 103. The Ptimer pulse interrupts the program.
Returning to FIG. 8, when the Ptimer pulse interrupts, the state of the stage is decided. When the stage=0, the stage is advanced to the stage=1, and then logic "1" for the signal S, a code t2 representing the value of a second time interval, and the timing circuit reset and enable signal are transmitted. Then the program is returned to the main program. When the signal S is at logic "1", the selector 2 selects the circulated waveshape from the RAM 4, and the waveshapes shown the stage=1 in FIG. 7 for example are generated. Meanwhile the parallel output of the counter 389 will become equal to the code t2 stored in the latch 393, and a Ptimer pulse will again be transmitted. When the stage=1 at the Ptimer pulse interruption, the stage is advanced to the stage=2, and new P, Q codes as denoted by P2, Q2 in FIG. 8 are transmitted together with the timing circuit disable signal, and then the program is returned to the main program. Waveshapes will be gradually changed in accordance with the parameters P2, Q2, and for example, the waveshapes shown as the stage=2 in FIG. 7 will be generated. Since the timing circuit 39 is disabled, the stage=2 continues until the signal KOFF interrupts the program. When the signal KOFF interrupts, the stage is set to the stage=3, and the codes P, Q corresponding to the stage=3, which are denoted by P3, Q3 in FIG. 8 are transmitted. Then signal S at logic "1", and the timing circuit reset and enable signal are transmitted. After this, the program is returned to the main program. The waveshapes indicated in the stage=3 of FIG. 7 are generated, and when the contents of the counter 389 coincides with the code t3, the Ptimer pulse is again generated and the program is interrupted. At this interruption, as the stage=3, the stage is set to the stage=4, and the gate disable signal E is transmitted, and then the program is returned to the main program.
When the player of this musical instrument wishes to change parameters A1, A2, A3, P, Q, or when the player wishes to change the control program of the CPU 20, he can manipulate the switches and controls on the tone quality control unit 32 or on the CPU control unit 24, and then the program is interrupted and the new data or the new program will be read out.
Although the foregoing descriptions have been on a particular embodiment of this invention, it will be easily understood from these descriptions that the freedom in setting and changing the generated waveshapes is substantially increased by this invention. And it should be understood that a variety of changes and modifications may be made in the invention without departing from the spirit and scope of this invention.
A most simple modification is a parallel connection of two or more than two tone generator units to the same common data bus 10. To these parallel connected tone generator units, same NTC, OCC codes and same A1, A2, A3, P, Q codes may be input same waveshapes of a same frequency. Or in one alternative, same NTC, OCC codes, but different A1, A2, A3, P, Q codes may be input to generate different waveshapes of a same frequency. Or in another modification, musical tones of different frequencies may be generated simultaneously. The embodiment of the tone generator unit 34 shown by FIG. 2 can generate only a single frequency tone at a time determined by the codes NTC, OCC. But the instrument keyboard unit 30 and its interface 31 shown by FIG. 5 will be easily modified to a system where plural keys are simultaneously pressed, and plural sets of NTC, OCC codes are generated at a time with the corresponding KON, KOFF signals. When plural sets of the tone generator units are connected in parallel to the common data bus 10, and each one set of the NTC, OCC codes is input to each tone generator unit, the system can generate musical tones of different frequencies at a time.
The MODEM 38 is used for transmitting the signals on the common data bus 10 to a remote place through a communication channel or for recording the signals on the common data bus 10 on a magnetic tape recorder to be reproduced at a desired time. Thus the system of the electronic musical instrument of this invention will be expanded by the use of the MODEM 38.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US3878750 *||Nov 21, 1973||Apr 22, 1975||Kapps Charles A||Programmable music synthesizer|
|US3915047 *||Jan 2, 1974||Oct 28, 1975||Ibm||Apparatus for attaching a musical instrument to a computer|
|US4010667 *||Aug 28, 1975||Mar 8, 1977||Kniepkamp Alberto E||Rhythm unit with programmed envelope waveform, amplitude, and the like|
|US4041825 *||Oct 20, 1975||Aug 16, 1977||Pascetta Armand N||Keyboard assignment system for a polyphonic electronic musical instrument|
|US4078465 *||Oct 8, 1976||Mar 14, 1978||The Wurlitzer Company||Programmable memory system for electronic musical instrument|
|US4082027 *||Apr 20, 1976||Apr 4, 1978||Nippon Gakki Seizo Kabushiki Kaisha||Electronics musical instrument|
|US4202234 *||Apr 27, 1977||May 13, 1980||National Research Development Corporation||Digital generator for musical notes|
|US4215617 *||Nov 22, 1976||Aug 5, 1980||The Board Of Trustees Of Leland Stanford Junior University||Musical instrument and method for generating musical sound|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US5212334 *||Aug 16, 1990||May 18, 1993||Yamaha Corporation||Digital signal processing using closed waveguide networks|
|US5252775 *||Sep 17, 1992||Oct 12, 1993||Brother Kogyo Kabushiki Kaisha||Automatically up-dated apparatus for generating music|
|US5319151 *||Mar 23, 1992||Jun 7, 1994||Casio Computer Co., Ltd.||Data processing apparatus outputting waveform data in a certain interval|
|US5357048 *||Oct 8, 1992||Oct 18, 1994||Sgroi John J||MIDI sound designer with randomizer function|
|US5382751 *||Dec 1, 1992||Jan 17, 1995||Yamaha Corporation||Electronic musical instrument including a configurable tone synthesizing system|
|US5403969 *||Jul 7, 1994||Apr 4, 1995||Yamaha Corporation||Electronic musical instrument of delayed feedback type|
|US5428185 *||Aug 24, 1993||Jun 27, 1995||Yamaha Corporation||Musical tone synthesizing apparatus|
|US5448010 *||Mar 22, 1993||Sep 5, 1995||The Board Of Trustees Of The Leland Stanford Junior University||Digital signal processing using closed waveguide networks|
|US5521329 *||Jan 21, 1994||May 28, 1996||Yamaha Corporation||Musical tone synthesizing apparatus including loop gain control|
|US5604324 *||Dec 23, 1994||Feb 18, 1997||Yamaha Corporation||Musical tone signal generating apparatus including a plurality of voice units|
|US5691493 *||Jan 7, 1993||Nov 25, 1997||Casio Computer Co., Ltd.||Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel|
|US5726371 *||Apr 6, 1994||Mar 10, 1998||Casio Computer Co., Ltd.||Data processing apparatus outputting waveform data for sound signals with precise timings|
|USRE37422 *||Oct 3, 1996||Oct 30, 2001||Yamaha Corporation||Electronic musical instrument|
|U.S. Classification||84/661, 84/645, 984/389, 84/647|
|International Classification||G10H7/00, G10H1/18|