USRE30736E - Tone wave generator in electronic musical instrument - Google Patents

Tone wave generator in electronic musical instrument Download PDF

Info

Publication number
USRE30736E
USRE30736E US06/154,994 US15499480A USRE30736E US RE30736 E USRE30736 E US RE30736E US 15499480 A US15499480 A US 15499480A US RE30736 E USRE30736 E US RE30736E
Authority
US
United States
Prior art keywords
data
octave
constant
tone
note
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US06/154,994
Inventor
Teruo Hiyoshi
Akira Nakada
Tsutomu Suzuki
Eiichiro Aoki
Takatoshi Okumura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Gakki Co Ltd
Original Assignee
Nippon Gakki Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Gakki Co Ltd filed Critical Nippon Gakki Co Ltd
Application granted granted Critical
Publication of USRE30736E publication Critical patent/USRE30736E/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/04Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation
    • G10H1/053Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only
    • G10H1/057Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only by envelope-forming circuits
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • G10H7/06Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories in which amplitudes are read at a fixed rate, the read-out address varying stepwise by a given value, e.g. according to pitch

Definitions

  • This invention relates to a .[.note.]. .Iadd.tone .Iaddend.wave generator in an electronic musical instrument, in which data which varies repeatedly at the period corresponding to a desired musical tone frequency is produced and employed for reading the contents stored in a waveform memory.
  • an object of this invention is to provide a wave generator in an electronic musical instrument, in which the storing capacity of a memory adapted to store constants proportional to frequencies is reduced.
  • twelve constants proportional to the frequencies corresponding to twelve notes in one octave are stored in a memory in advance, and out of these constants, one corresponding to a note to be produced is read out and regularly accumulated in an accumulator.
  • the accumulation result of the accumulator is utilized as the address for reading the sequential sample point amplitude value of the waveform out of the waveform memory; however, what can be distinguished by the output itself of the accumulator is only twelve notes in one octave.
  • the bit position of the output data of the accumulator is shifted according to the information indicating the octave range of a note to be produced, and then the output data is utilized as the address in the waveform memory. More specifically, shifting the bit position of a binary data means that its value is increased to two times, four times, eight times . . . or decreased to 1/2 time, 1/4 time, 1/8 time . . . , which means that the frequency is shifted high or low by one octave, two octaves, three octave and so on. Thus, selection of the octave range can be achieved by shifting the output but position of the accumulator.
  • FIG. 1 is a block diagram illustrating one example of a wave generator according to this invention in association with the whole arrangement of an electronic musical instrument
  • FIG. 2a-2g are timing charts for a description of the operation of a tone production assigning circuit shown in FIG. 1;
  • FIG. 3 and FIG. 4 are two parts of a schematic block diagram illustrating in detail the various sections of the wave generator shown in FIG. 1;
  • FIGS. 5a-5g are diagrams for a description of a method of illustrating various circuit elements
  • FIG. 6 is a graphical representation indicating the pitch deviations of the tones of different keyboards which may be caused by slightly differentiating the values of constant data F separately according to the keyboards;
  • FIGS. 7a-7f are timing charts for a description of a maximum tone detecting operation in a key voltage generating circuit.
  • FIG. 1 illustrates one example of an electronic musical instrument employing a tone wave generator 10 according to the invention.
  • a key depression detecting circuit 12 operates to detect the "on” or “off” operation of the key switch of each key in a keyboard 11 to output information for identifying a depressed key.
  • a tone production assigning circuit 13 receives information identifying a depressed key from the key depression detecting circuit 12 and assigns the tone production of the key represented by the information to one of the channels which corresponds to a maximum number of simultaneous tone productions (for instance twelve tones).
  • the tone production assigning circuit 13 has storage positions corresponding to the channels.
  • This circuit 13 operates to store a key code KC representative of a key in a storage position corresponding to the channel to which the tone production of the key is assigned, and successively output the key codes KC stored in the channels in time-sharing manner.
  • the key code KC consists of a 2-bit keyboard code K 1 , K 2 representing a kind of keyboard, a 3-bit octave code B 1 , B 2 , B 3 representing an octave range, and a 4-bit note code N 1 , N 2 , N 3 , N 4 representing a note out of twelve notes in one octave, as indicated in Table 1.
  • the key range of the keyboard 11 is from note C 2 to C 7 .
  • the octave code "000" for the first octave range is used for the lowest note C 2 only, and its code B 3 -N 1 is "0001110".
  • the octave code B 3 , B 2 , B 1 or "001" for the second octave range is used for tones of from C 2 ⁇ to C 3 .
  • the same octave code B 3 , B 2 , B 1 is used, with notes C ⁇ on the low pitch side through C on the high pitch side as one octave.
  • the octave code "101" for the sixth octave range is used for notes C 6 ⁇ through C 7 .
  • main clock pulses ⁇ 1 which are adapted to control the time sharing operations of the channels.
  • the clock pulse signal has a period of, for instance, one microsecond (10- 6 second).
  • time slots, each one microsecond in time width, segregated by the main clock pulses ⁇ 1 are successively allowed to correspond to the first through twelfth channels.
  • the time slots will be called the first through twelfth channel times successively hereinafter.
  • the channel times occur cyclically. Accordingly, the key codes representing the keys for which tone production has been assigned by the tone production assigning circuit 13 are outputted successively and in time sharing manner in coincidence with the times of the assigned channels.
  • note C (C 3 ) in the second octave range of the pedal keyboard is assigned to the first channel
  • note G (G 5 ) in the fifth octave range of the upper keyboard is assigned to the second channel
  • note C (C 6 ) in the fifth octave range of the upper key-board is assigned to the third channel
  • note E (E 4 ) in the fourth octave range of the lower keyboard is assigned to the fourth channel
  • no notes are assigned to the fifth through twelfth channel
  • the contents of the key codes outputted in time-sharing manner and in synchronization with the respective channel times by the tone production assigning circuit 13 are as indicated in the part (c) of FIG. 2.
  • all of the outputs of the fifth channel through the twelfth channel are "0".
  • the tone production assigning circuit 13 outputs in time-sharing manner and in synchronization with the channel times an attack start signal (or a key-on signal) AS representative of the fact that the tone production of the depressed key should be effected in the channel to which the tone production is assigned. Furthermore, the tone production assigning circuit 13 outputs, in time-sharing manner and in synchronization with the respective channel times, a decay start signal (or a keyoff signal) DS representative of the fact that key whose tone productions is assigned to the specific channel has been released and the tone production should thereby be in a decay state.
  • attack start signal or a key-on signal
  • DS representative of the fact that key whose tone productions is assigned to the specific channel has been released and the tone production should thereby be in a decay state.
  • the tone production assigning circuit 13 receives a decay finish signal DF representative of the fact that the tone production in a channel has been finished, from an envelope generator 14, and then outputs clear signal CC to clear the various storage relating to the relevant channels and to completely clear the tone production assignments according to the signal DF thus received.
  • a decay finish signal DF representative of the fact that the tone production in a channel has been finished
  • the keys assigned to the first and second channels are being depressed, the keys assigned to the third and fourth channels have been released as a result of which the tone productions of the keys are being decayed
  • the tone production has been completed at the time slot t 1 whereby the decay finish signal DF is produced, and the clear signal CC is provided twelve channel times later, i.e., at the time slot t 2 ; then the various signals AS, DS, DF and CC are provided as shown in the parts (d) through (g) of FIG. 2.
  • the clear signal CC is produced at the time slot t a , the attack start signal AS and the decay start signal are eliminated.
  • the key code KC for the fourth channel time is also eliminated, but it is shown as it is for convenience in description.
  • the channels to which the various signal KC, AS, DS and CC outputted by the fine production assigning circuit 13 belong are distinguished by the channel times as shown in FIG. 2.
  • the key code KC outputted by the tone production assigning circuit 13 is applied to the wave generator 10, which outputs in turn variable data (address data) XqF for reading the sequential sample point amplitudes of musical tone source waveforms out of a waveform memory 15.
  • the waveform memory 15 is so designed that tone surface waveforms of different footage are read out in a parallel mode, and memories 15A through 15E are provided in correspondence to notes of 2 foot (2'), 4 foot (4'), 8 foot (8'), 16 foot (16') and 32 foot (32') registers.
  • the envelope generator 14 operates to generate an envelope shape EV having attack and decay characteristics with the aid of the various signals AS, DS and CC which are applied thereto from the tone production assigning circuit 13.
  • a amplitude envelope variable with time is given to a tone source waveform signal read out of the waveform memory 15 with the aid of this envelope shape EV, whereby the tone production is controlled.
  • the tone source waveform signals for the various foot registers 2' through 32' read out of the waveform memory 15 are applied to a distribution circuit 16, which distributes these signals to lines 17 and 18 suitably according to the kinds of keyboards, etc.
  • the tone source waveform signal distributed to the line 17 is applied to a voltage control type filter 19 and is subjected to a tone color control.
  • the tone source waveform signal distributed to the line 18 is applied to a group of tone color filters (20) and is subjected to the tone color control.
  • the filtering characteristic of the voltage control type filter 19 is varied by a control voltage (not shown).
  • the filtering characteristic of the group of tone color filters 20 is fixed with respect to the various tone colors. Accordingly, in the two systems tones different in quality are formed.
  • the musical tone waveform signal subjected to tone color control is applied through a suitable tone control circuit 21 such as an expression circuit or the like to a sound system 22 where it is produced.
  • FIGS. 3 and 4 are two part of a block diagram illustrating the wave generator 10.
  • a note decoder 23, a constant memory 24 and key voltage generating circuit 25 in the wave generator 10 are shown in FIG. 3.
  • An accumulator 26, an octave control circuit 27 and a bit position switching circuit 28 are shown in detail in FIG. 4.
  • FIGS. 3 and 4 various circuit elements are indicated in accordance with methods as shown in FIG. 5.
  • the part (a) indicates an inverter; the parts (b) and (c), AND circuits; the parts (d) and (e), OR circuits; and the part (f) flip-flop circuit with 1-bit delay. If in the AND circuit or the OR circuit the number of inputs is relatively small, the ordinary illustrations as shown in the parts (b) and (d) are employed; but if the number of inputs is relatively large, the illustrations as shown in the parts (c) and (e) are employed.
  • one input line is drawn on the input side of the circuit, and then a plurality of signal lines are intersected with the input line, and furthermore the intersections of the signal lines of the signals to be inputted to the circuit and the input line are encircled.
  • the part (g) of FIG. 5 indicates a shift register, in which the numerator of a fraction parenthesized in the block means the number of stages of the shift register, while the denominator means the number of bits of an input data to the shift register. No shifting clock pulses are indicated for delay flip-flop circuits and shift registers; however, it should be understood that they are shifted with the aid of clock pulses ⁇ (more particularly being two-phase clock pulses) having a period of one microsecond.
  • the note codes N 1 through N 4 is applied to the note decoder 23, as a result of which a decode output is provided on an output line corresponding to a note represented by the note codes N 1 -N 4 .
  • constant data F proportional to the frequencies of twelve notes C through B are stored in a binary system in advance.
  • a constant data F corresponding to a note represented by the note codes N 1 -N 4 is read out according to the output of the note decoder 23.
  • the constant data F read out of the memory 24 are repeatedly added every regular time interval T, thereby to obtain variable data qF, where "q" is a variable which increases as 1, 2, 3, 4 and so on every lapse of time interval T.
  • the output qF of the accumulator 26 is applied to the bit position switching circuit 28, and the binary bit position is shifted leftward or rightward according to the value of an octave switching data X provided by the octave control circuit 27.
  • the variable data qF which varies regularly in response to the frequencies of the notes in one octave is multiplied by the octave switching data X, thereby to obtain a variable data XqF corresponding to the frequency of a relevant note in the octave range specified by the octave switching data X.
  • the octave switching data X is produced according to the contents of the octave code B 1 -B 3 .
  • the value of the data X will become capable of realizing the octave range specified by the octave code B 1 -B 3 ; however, it can suitably change the octave range by changing the code B 1 -B 3 according to the values of feet change data FF 1 -FF 3 .
  • the distance of one octave corresponds to a frequency ratio 2:1.
  • the octave switching control can be achieved by the binary bit position switching circuit 28.
  • the bit position switching circuit 28 is provided at the rear stage of the accumulator 26; however, it may be provided at the front stage of the accumulator 26 to obtain the variable data XqF similarly as in the above-described case.
  • the value of the constant data F stored in the constant memory 24 is determined from the frequency f of a relevant note in the fundamental octave, the number of times N of adding the same data f in one second in the accumulator 26, and the number of addresses M for one period of a waveform stored in the waveform memory 15. That is, the decimal value of the constant data F is determined by the following equation (1):
  • the constant data f for the notes obtained from the equation (1) are converted into binary numbers, and these binary constant data F are stored in the constant memory 24 in advance.
  • the frequency is switched in proportion to the value of the octave switching data X.
  • the data X has a value of the power of 2. Therefore, the frequency Xf is switched with the power of 2 of the frequency f, and the frequency of the tone to be produced is switched on the octave basis. That is, the octave range is selected for the tone to be produced.
  • the note decoder 23 is made up of an AND circuit group 23A whose logic is so designed that the note codes N 1 -N 4 as indicated in Table 1 are decoded separately according to the notes C ⁇ through C.
  • the constant memory 24 comprises an OR circuit group 24A whose logic is so designed that 10-bit binary constant data F(F 1 through F 10 ) having predetermined values are obtained according to the outputs of the decoder 23, and a gate section 24B which selects the outputs of the OR circuit group 24A according to the contents of the keyboard codes K 1 , k 2 .
  • the bit position switching circuit 28 shown in FIG. 4 is so designed as to effect the leftward shifting operation (the multiplication of 2 n ), the constant data F proportional to the frequencies of twelve notes in the lowest octave range are stored in the constant memory 24.
  • the true lowest octave range shown in Table 1 is the first octave range in which the content of the octave code B 1 -B 3 is "000", only the note C 2 belongs to the first octave scale.
  • the second octave range in which the content of the octave code B 1 -B 3 is "001" is employed as the lowest octave range (or the fundamental octave), and the constant data F corresponding to the frequencies of twelve notes (C 2 ⁇ , D 2 . . . B 2 , C 3 ) in the second octave range are stored in the addresses of the constant data memory 24.
  • the constant data F concerning the note C 2 which is only one note which belongs to the first octave range is especially stored.
  • logic is provided in the OR circuit group 24A so that, as indicated in Table 2, data having a value a half (1/2) of the note C (C 3 ) which belongs to the fundamental octave (or the second octave scale) is read out as the constant data F for the note C 2 .
  • data F slightly different in value separately according to the kinds of keyboards are stored in the memory 24; however, the data listed in Table 2 are for the lower keyboard only.
  • an AND circuit 29 for the note C 2 only is provided in the AND circuit group 23A.
  • Data B 1 through B 3 obtained by inverting the data of the bits B 1 through B 3 of the octave code are applied to the AND circuit 29.
  • the octave code B 1 -B 3 is for the first octave range, the data "000" is inverted into "111", as a result of which the AND circuit 29 is enabled. Accordingly, upon application of the note code N 1 through N 4 of the note C 2 , in the first octave range, the output of the AND circuit 29 is raised to "1", the constant data F for the note C 2 only is read out of the memory 24.
  • the output "1" of the NOR circuit 30 is applied through a line 32 to an inverter 34, where it is inverted, and is applied to the AND circuit 33 of the note decoder 23.
  • the AND circuit 33 is a circuit for decoding the note codes N 1 -N 4 of the notes C other than the note C (C 2 ) in the first octave scale. Upon application of the note code N 1 -N 4 of the note C 2 , the AND circuit 23 is made inoperable by the signal "1" supplied through the line 32.
  • the instrument is so designed that even with the same notes, constant data F slightly different in value are read out of the memory 24 according to the keyboards to which the note belongs.
  • the keyboard code K 1 , K 2 is decoded by a decoder 24C, and according to the content of the thus decoded keyboard code an upper keyboard signal UE, a lower keyboard signal LE or a pedal keyboard signal PE is produced.
  • Constant data F concerning the same notes are, in a parallel mode and separately according to the keyboards, read out of the OR circuit group 24A according to the outputs of the note decoder 23.
  • These constant data F are selected by the gate section 24B according to the aforementioned keyboard signals UE, LE and PE.
  • the circuit is so designed that the constant data F concerning the notes C ⁇ through C of the lower keyboard set as indicated in Table 2 produced normal pitch music tone waveforms. Accordingly, the pitch deviation of the lower keyboard tone is zero (0) cent as indicated in FIG.
  • the constant data F corresponding to the notes of the upper keyboard are set to such values that musical tone waveforms having pitches somewhat higher than the normal pitches can be produced, and furthermore the pitch deviation of each note is not uniform; that is, as is shown in FIG. 6, the amount of pitch deviation is decreased from +3.7 cents to +1.86 cents as the tone pitch increases from the note C ⁇ to the note C.
  • the constant data F corresponding to the notes of the pedal keyboard are set to such values that musical tone waveforms having somewhat lower than the normal pitches can be produced. Furthermore, as indicated in FIG. 6, the amount of pitch deviation is shifted from -3.7 cents to -1.86 cents as the tone pitch increases from the note C ⁇ to the note C.
  • the reason why the constant data are slightly different according to the kinds of keyboards is to prevent the occurrence of the case in which the phases of musical tone waveforms produced at the same time are opposite to one another whereby the tones produced are cancelled. In other words, it is frequently effected to depress two keys which belong to different keyboards but have the same tone pitch. If in this case the tones of the two keys are produced at the completely same frequency and the phases of the two tones are opposite to each other, the tones are cancelled by one another.
  • the constant data F are made slightly different in vlaue from one another, in this example. Therefore, even if keys having the same tone pitch in different keyboards are depressed at the same time, the phase of the tones of the keys will not become completely opposite to one another, that is, the tones will not be cancelled.
  • the bit data F 1 through F 10 of the constant data F are selected through the AND circuits enabled with the aid of the keyboard signals UE, LE and PE in the gate section 24B, and are collected by the OR circuits separately according to the bits.
  • the key codes N 1 -N 4 , B 1 ⁇ B 3 , K 1 , K 2 are supplied in time-sharing manner separately according to the channel as was described before, the constant data F (F 1 -F 10 ) corresponding to the notes assigned to the channels are read out of the constant memory 24 in time-sharing manner.
  • the constant data F read out are applied to the accumulator 26 in FIG. 4.
  • the accumulator 26 comprises a 21-bits adder group 26A and a 21-bits, 12-stages shift register group 26B.
  • the outputs of the adder group 26A are applied through an AND circuit group 26C to the shift register group 26B where they are delayed by 12 channel times.
  • the bit outputs Q 1 through Q 21 (qF) of the shift register group 26B are applied to the bit position switching circuit 28 and are fed back to the adder group 26A where the constant data F 1 through F 10 (F) are subjected to addition.
  • the adders for ten lower significant bits in the adder group 26A are full-adders, and the bit data F 1 through F 10 of the constant data are applied, as addition inputs, to the full-adders for the ten less significant bits.
  • the adders for eleven higher significant bits in the adder group 26A are half-adders. In these half-adders, a carry signal applied from the carry output of a less significant bit adder to the carry input is added to the data fed back from the corresponding bit position of the shift register group 26B.
  • the AND circuit group 26C is made inoperable by the clear signal CC supplied by the tone production assigning circuit 13, thereby to clear the count result of the accumulator 26.
  • the bit position switching circuit 28 comprises an OR circuit group 28A consisting of fifteen 8-input type OR circuits for introducing the bits S 1 through S 15 of the variable data XqF subjected to octave switching, and an AND circuit group 28B consisting of 120 2-input type AND circuits, eight AND circuits being provided for each of the OR circuits of the OR circuit group 28A.
  • the AND circuits, eight AND circuits being provided for each of the bits S 1 through S 15 , in the AND circuit group 28B are enabled independently by the signals supplied through eight output lines of the decoder 27B in the octave control circuit 27.
  • the outputs Q 1 through Q 21 of the accumulator 26 are applied to the AND circuit group 28B in such a manner that these outputs are distributed to the respective bit S 1 through S 15 in correspondence to the eight outputs X 2 , X 3 . . . X 0 and X 1 of the decoder 27B.
  • the bit positions of the bits Q 1 through Q 21 of the variable data qF are switched according to the outputs X 2 -X 1 of the decoder 27B, whereby the variable data XqF (S 1 through S 15 ) are obtained. This is as listed in Table 3.
  • the output data X 2 , X 3 , X 4 . . . X 0 , and X 1 correspond to the values of the octave switching data X. More specifically, the data X 2 is for the lowest octave (or the second octave range in Table 2), the octave range is raised successively, or octave by octave, in the order of the data X 3 , X 4 , X 5 , X 6 and X 7 , and the data X 1 specifies the highest octave range.
  • variable data XqF which is 2 times, 4 times, . . . 2 6 times or 2 7 times the value of the data qF is provided.
  • a 2-bit adder 27A operates to add the feet change data FF 3 , FF 2 and FF 1 to the octave code B 3 , B 2 and B 1 thereby to change the octave range.
  • the relationships between the contents of the feet change data FF 3 , FF 2 and FF 1 and the amount of octave change are as indicated in Table 4.
  • the feet change data FF 3 -FF 1 are automatically supplied by a device (not shown) when the octave of a note to be produced is changed.
  • the octave data B 3 *, B 2 *, B 1 * for the highest octave is "001" (one in decimal notation) as a result of the following calculation: B 3 , B 2 , B 1 +FF 3 , FF 2 , FF 1 +"101"+"100". Accordingly, the decimal value of the octave data B 3 *, B 2 *, B 1 * will be 2, 3, 4, 6, 7, 0, 1 as the octave range is raised.
  • the decoder 27B operates to decode the octave data B 3 *, B 2 *, B 1 *, according to the decimal value thereof, into the output data X 2 , X 3 , X 4 , . .
  • a 12-stage 3-bit shift register 27C provided between the adder 27A and the decoder 27B operates to establish synchronization with the delay time of twelve channel times in the accumulator 26.
  • the data of the bits S 1 through S 11 are applied to the waveform memory 15A for 2 foot (2') register, the data of the bits S 2 through S 12 , to the waveform memory 15B for 4 foot (4') register, the data of the bits S 3 through S 13 , to the waveform memory 15C for 8 foot (8') register, the data of the bits S 4 through S 14 , to the waveform memory 15D for 16 foot (16') register, and the data of the bits S 5 through S 15 , to the waveform memory 15E for 32 foot (32') register.
  • the data in which the bit position of the variable data XqF has been substantially shifted are applied to the waveform memories 15A through 15E, and the periods of time required for reading out the tone source waveforms over the respective unitary periods, which are stored in the memories 15A through 15E, are different by the power of 2. Therefore, it is possible to simultaneously read the tone source waveforms for two foot through thirty-two foot registers whose frequencies are different by the octave. It goes without saying that the number of addresses are equal in the waveform memories 15A through 15E, and therefore memories having the same construction may be employed for these memories.
  • the key voltage generating circuit 25 is provided to generate a key voltage (tone pitch voltage) KV for controlling according to the pitch of a tone to be produced the cut-off frequency of the voltage control type filter 19 for tone color control.
  • KV key voltage
  • KV key voltage
  • the tone source waveforms of plural tones produced in the channels are multiplexed, and are applied through the line 17 to one voltage control type filter 19.
  • the key voltage KV is applied to the voltage control type filter 19, which is representative of one of the plural tones.
  • the key voltage KV is provided according to a high-tone priority; however, it is unnecessary to provide priority order for all of the keys; that is, the aimed object can be achieved by dividing the keys into several scales and by employing a key voltage KV corresponding to the relevant range.
  • the key voltage generating circuit 25 is so designed as to generate a key voltage KV for every half octave, whereby the priority order is determined every half octave.
  • the octave code B 1 -B 3 and the most significant bit data N 4 of the note code are applied to the key voltage generating circuit 25.
  • the value of the bit N 4 is "0" in the first half (C ⁇ -F ⁇ ) of one octave and is "1" in the second half (G-C). Therefore, distinction of the half octave range can be achieved by the use of 4-bit data B 3 , B 2 , B 1 , N 4 .
  • the determination of high-tone priority is effected by detecting a channel in which the value of the data B 3 , B 2 , B 1 , N 4 is maximal, by the use of a comparator 35 and a primary memory 39.
  • the AND circuit group 36 of the key voltage generating circuit 25 is enabled by the upper keyboard signal UE, so that the data B 3 , B 2 , B 1 , N 4 concerning the upper keyboard tones are selected by the AND circuit group 36.
  • the data B 3 , B 2 , B 1 , N 4 is applied to the input A of the comparator 35.
  • the primary memory 39 comprises a gate section and a delay flip-flop group.
  • a clock pulse signal SY 1 , 1 microsecond in pulse width (one channel times) and twelve microseconds in period (twelve channel times) as shown in the part (a) of FIG. 7 is applied through the OR circuit 40 to the gate section, the data from the delay flip-flop group 38 are stored in the primary memory 39.
  • the data thus stored in the primary memory 39 are applied to the input B of the comparator 35.
  • This output "1" of the comparator 35 is applied through a flip-flop 41 and an OR circuit 40 to the gate section of the primary memory 39 thereby to cause the data from the delay flip-flop group 38 to be stored in the primary memory 39.
  • the channel time of the data B 3 , B 2 , B 1 , N 4 outputted by the delay flip-flop group 37 is as shown in the part (b) of FIG. 7
  • the channel time of the output data of the delay flip-flop group 38 is delayed by one microseconds as shown in the part (c) of FIG. 7.
  • the content in the primary memory 39 is cleared, and the output (the data B 3 -N 4 of the twelfth channel in the example shown) of the delay flip-flop 38 is newly stored in the primary memory 39. This storage is self-held until the next clock pulse SY 1 is produced, unless an output "1" is produced by the comparator 35. In other words, the content stored in the primary memory 39 is repeatedly cleared with the timing of the clock pulse SY 1 .
  • the data B 3 -N 4 of the channels applied to the input A of the comparator 35 from the delay flip-flop 37 are compared with the data stored in the primary memory 39 every channel time, and the content stored in the primary memory 39 is rewritten into a larger value according to the output "1" of the comparator. For instance, in the case where the value of the data of the twelfth channel stored firstly in the primary memory 39 is smaller than the value of the data of the second channel, the output "1" is provided by the delay flip-flop 41 as shown in the part (e) of the FIG. 7, and the data of the second channel is stored in the primary memory 39, and is outputted by the primary memory 39 in one microsecond as shown in the part (d).
  • the data of all the channels are compared with one another, as a result of which when the clock pulse SY 1 is produced, the data stored in the primary memory 39 is the maximum value.
  • a secondary memory 42 comprises a gate section for selecting the maximum value data stored in the primary memory 39 with the production timing of the clock pulse SY 1 , and a delay flip-flop group for storing this maximum value data, and operates to self-hold this maximum value data for one period of the clock pulse SY 1 (cf. the part (f) of FIG. 7).
  • the data B 3 -N 4 for the half octave range to which the highest tone out of the tones of the depressed keys selected in the high-tone priority system by the comparison in time-sharing manner using the comparator 35 and the primary memory 39 belong is converted into direct current by the secondary memory 42, so as to be the data representative of all the channels.
  • the data B 3 -N 4 stored in the secondary memory 42 is decoded separately according to the half-octave ranges in a decoder 43, and an analog voltage (key voltage KV) corresponding to the decoded range is read out of a key voltage memory 44.
  • the data B 3 -N 4 for the half-octave scale can have eleven different values ranging from the second half "0001" ("1" in decimal notation) of the first octave range to which only the note C 2 belongs to the second half "1011" ("11" in decimal notation) of the sixth octave scale.
  • a key voltage KV having the same value as that of the key voltage KV of the range (the front half of the second octave range) higher than the lowest range is read out of the memory 44. Accordingly, the decoding outputs "1" and “2" of the contents "0001” and “0010” and “0010” of the data B 3 -N 4 serves to read key voltages KV having the same zero volt out of the memory 44.
  • This memory 44 is so designed that as the range is raised, the higher key voltage KV is read out.
  • the wave generator 10 can be extensively employed not only to an electronic musical instrument such as shown in FIG. 1, but also to a device in which the sequential sample point amplitudes of a waveform stored in a waveform memory are repeatedly read to obtain a waveform signal having a desired frequency.
  • the constant data F corresponding to the notes (twelve notes) in one octave are stored, as those corresponding to the frequency, in the memory; however, it should be understood that the invention is not limited thereto or thereby.
  • the constant data F corresponding to the notes in two octaves may be stored in the memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

In an electronic musical instrument, the keys of a keyboard are divided into a plurality of groups by octaves, and a wave generator is provided with a memory for storing constants corresponding to musical tone frequencies to be generated according to the notes includes in a desired group out of the plurality of group, an accumulator for repeatedly adding the constants read out of the memory, and a bit position shifting circuit for shifting the bit position of the data produced by the accumulator according to the octave range of a note to be produced, thereby to obtain the data varying repeatedly according to the frequency of a note to be produced, and to reduce the storing capacity of the memory when compared to the number of keys.

Description

BACKGROUND AND SUMMARY OF THE INVENTION
This invention relates to a .[.note.]. .Iadd.tone .Iaddend.wave generator in an electronic musical instrument, in which data which varies repeatedly at the period corresponding to a desired musical tone frequency is produced and employed for reading the contents stored in a waveform memory.
Known in the art is an electronic musical instrument according to the system that in the case where the values of the sequential sample point amplitudes of a waveform stored in a waveform memory are read successively to obtain a musical tone signal or a tone source signal, a constant corresponding to the frequency of a tone to be produced is repeatedly subjected to addition, and the reading address of the waveform memory is advanced according to the numerical increase resulted from the addition. Heretofore, in the electronic musical instrument of this type, such a constant as described above is stored in a memory for each of the tones of the keyboard. Therefore, it is necessary to provide a relatively large capacity for the memory. For instance, if the number of keys is sixty-one (61), a read only memory having sixty-one (61) addresses is employed as the memory mentioned above.
Accordingly, an object of this invention is to provide a wave generator in an electronic musical instrument, in which the storing capacity of a memory adapted to store constants proportional to frequencies is reduced.
According to this invention, twelve constants proportional to the frequencies corresponding to twelve notes in one octave, for instance, are stored in a memory in advance, and out of these constants, one corresponding to a note to be produced is read out and regularly accumulated in an accumulator. The accumulation result of the accumulator is utilized as the address for reading the sequential sample point amplitude value of the waveform out of the waveform memory; however, what can be distinguished by the output itself of the accumulator is only twelve notes in one octave.
Therefore, in this invention, the bit position of the output data of the accumulator is shifted according to the information indicating the octave range of a note to be produced, and then the output data is utilized as the address in the waveform memory. More specifically, shifting the bit position of a binary data means that its value is increased to two times, four times, eight times . . . or decreased to 1/2 time, 1/4 time, 1/8 time . . . , which means that the frequency is shifted high or low by one octave, two octaves, three octave and so on. Thus, selection of the octave range can be achieved by shifting the output but position of the accumulator.
The manner in which the foregoing object and other objects are achieved by this invention will become more apparent from the following detailed description and the appended claims when read in conjunction with the accompanying drawings, in which like parts are designated by like reference numerals or characters.
BRIEF DESCRIPTION OF THE DRAWINGS
In the accompanying drawings:
FIG. 1 is a block diagram illustrating one example of a wave generator according to this invention in association with the whole arrangement of an electronic musical instrument;
FIG. 2a-2g are timing charts for a description of the operation of a tone production assigning circuit shown in FIG. 1;
FIG. 3 and FIG. 4 are two parts of a schematic block diagram illustrating in detail the various sections of the wave generator shown in FIG. 1;
FIGS. 5a-5g are diagrams for a description of a method of illustrating various circuit elements;
FIG. 6 is a graphical representation indicating the pitch deviations of the tones of different keyboards which may be caused by slightly differentiating the values of constant data F separately according to the keyboards; and
FIGS. 7a-7f are timing charts for a description of a maximum tone detecting operation in a key voltage generating circuit.
DETAILED DESCRIPTION OF THE INVENTION
One preferred embodiment of this invention will be described with reference to the accompanying drawings.
FIG. 1 illustrates one example of an electronic musical instrument employing a tone wave generator 10 according to the invention. A key depression detecting circuit 12 operates to detect the "on" or "off" operation of the key switch of each key in a keyboard 11 to output information for identifying a depressed key. A tone production assigning circuit 13 receives information identifying a depressed key from the key depression detecting circuit 12 and assigns the tone production of the key represented by the information to one of the channels which corresponds to a maximum number of simultaneous tone productions (for instance twelve tones). The tone production assigning circuit 13 has storage positions corresponding to the channels. This circuit 13 operates to store a key code KC representative of a key in a storage position corresponding to the channel to which the tone production of the key is assigned, and successively output the key codes KC stored in the channels in time-sharing manner. In order to identify the keys in the keyboard, the key code KC consists of a 2-bit keyboard code K1, K2 representing a kind of keyboard, a 3-bit octave code B1, B2, B3 representing an octave range, and a 4-bit note code N1, N2, N3, N4 representing a note out of twelve notes in one octave, as indicated in Table 1.
              TABLE 1                                                     
______________________________________                                    
Key Code KC                                                               
             K.sub.2                                                      
                 K.sub.1                                                  
                       B.sub.3                                            
                             B.sub.2                                      
                                 B.sub.1                                  
                                     N.sub.4                              
                                         N.sub.3                          
                                             N.sub.2                      
                                                 N.sub.1                  
______________________________________                                    
Keyboard  Upper    0     1                                                
          Lower    1     0                                                
          Pedal    1     1                                                
Octave    1st                0   0   0                                    
scale     2nd                0   0   1                                    
          3rd                0   1   0                                    
          4th                0   1   1                                    
          5th                1   0   0                                    
          6th                1   0   1                                    
Pitch     C#                             0   0   0   0                    
name      D                              0   0   0   1                    
          D#                             0   0   1   0                    
          E                              0   1   0   0                    
          F                              0   1   0   1                    
          F#                             0   1   1   0                    
          G                              1   0   0   0                    
          G#                             1   0   0   1                    
          A                              1   0   1   0                    
          A#                             1   1   0   0                    
          B                              1   1   0   1                    
          C                              1   1   1   0                    
______________________________________                                    
In this example, it is assumed that the key range of the keyboard 11 is from note C2 to C7. The octave code "000" for the first octave range is used for the lowest note C2 only, and its code B3 -N1 is "0001110". The octave code B3, B2, B1 or "001" for the second octave range is used for tones of from C2♯ to C3. Similarly as in this case, the same octave code B3, B2, B1 is used, with notes C♯ on the low pitch side through C on the high pitch side as one octave. The octave code "101" for the sixth octave range is used for notes C6 ♯ through C7.
In this example, in order that a plurality of tones can be produced simultaneously, the logic circuits, and the memory means are commonly used in time-sharing manner, that is, they are designed in a dynamic-logic mode. Therefore, the relationships between clock pulses controlling the operation of the instrument are very important. Shown in the part (a) of FIG. 2 are main clock pulses φ1 which are adapted to control the time sharing operations of the channels. The clock pulse signal has a period of, for instance, one microsecond (10-6 second). As the number of channel is twelve, time slots, each one microsecond in time width, segregated by the main clock pulses φ1 are successively allowed to correspond to the first through twelfth channels. As shown in the part (b) of FIG. 2, the time slots will be called the first through twelfth channel times successively hereinafter. The channel times occur cyclically. Accordingly, the key codes representing the keys for which tone production has been assigned by the tone production assigning circuit 13 are outputted successively and in time sharing manner in coincidence with the times of the assigned channels. For instance, in the case where note C (C3) in the second octave range of the pedal keyboard is assigned to the first channel, note G (G5) in the fifth octave range of the upper keyboard is assigned to the second channel, note C (C6) in the fifth octave range of the upper key-board is assigned to the third channel, note E (E4) in the fourth octave range of the lower keyboard is assigned to the fourth channel, and no notes are assigned to the fifth through twelfth channel; the contents of the key codes outputted in time-sharing manner and in synchronization with the respective channel times by the tone production assigning circuit 13 are as indicated in the part (c) of FIG. 2. As is apparent from the part (c) of FIG. 2, all of the outputs of the fifth channel through the twelfth channel are "0".
The tone production assigning circuit 13 outputs in time-sharing manner and in synchronization with the channel times an attack start signal (or a key-on signal) AS representative of the fact that the tone production of the depressed key should be effected in the channel to which the tone production is assigned. Furthermore, the tone production assigning circuit 13 outputs, in time-sharing manner and in synchronization with the respective channel times, a decay start signal (or a keyoff signal) DS representative of the fact that key whose tone productions is assigned to the specific channel has been released and the tone production should thereby be in a decay state. These signals AS and DS are utilized for amplitude envelope control (tone production control) of musical tones. In addition, the tone production assigning circuit 13 receives a decay finish signal DF representative of the fact that the tone production in a channel has been finished, from an envelope generator 14, and then outputs clear signal CC to clear the various storage relating to the relevant channels and to completely clear the tone production assignments according to the signal DF thus received.
If it is assumed in the part (c) of FIG. 2 that the keys assigned to the first and second channels are being depressed, the keys assigned to the third and fourth channels have been released as a result of which the tone productions of the keys are being decayed, in the fourth channel the tone production has been completed at the time slot t1 whereby the decay finish signal DF is produced, and the clear signal CC is provided twelve channel times later, i.e., at the time slot t2 ; then the various signals AS, DS, DF and CC are provided as shown in the parts (d) through (g) of FIG. 2. As the clear signal CC is produced at the time slot ta, the attack start signal AS and the decay start signal are eliminated. In this case, the key code KC for the fourth channel time is also eliminated, but it is shown as it is for convenience in description.
The channels to which the various signal KC, AS, DS and CC outputted by the fine production assigning circuit 13 belong are distinguished by the channel times as shown in FIG. 2.
The key code KC outputted by the tone production assigning circuit 13 is applied to the wave generator 10, which outputs in turn variable data (address data) XqF for reading the sequential sample point amplitudes of musical tone source waveforms out of a waveform memory 15. In this example, the waveform memory 15 is so designed that tone surface waveforms of different footage are read out in a parallel mode, and memories 15A through 15E are provided in correspondence to notes of 2 foot (2'), 4 foot (4'), 8 foot (8'), 16 foot (16') and 32 foot (32') registers.
The envelope generator 14 operates to generate an envelope shape EV having attack and decay characteristics with the aid of the various signals AS, DS and CC which are applied thereto from the tone production assigning circuit 13. A amplitude envelope variable with time is given to a tone source waveform signal read out of the waveform memory 15 with the aid of this envelope shape EV, whereby the tone production is controlled.
The tone source waveform signals for the various foot registers 2' through 32' read out of the waveform memory 15 are applied to a distribution circuit 16, which distributes these signals to lines 17 and 18 suitably according to the kinds of keyboards, etc. The tone source waveform signal distributed to the line 17 is applied to a voltage control type filter 19 and is subjected to a tone color control. The tone source waveform signal distributed to the line 18 is applied to a group of tone color filters (20) and is subjected to the tone color control. The filtering characteristic of the voltage control type filter 19 is varied by a control voltage (not shown). The filtering characteristic of the group of tone color filters 20 is fixed with respect to the various tone colors. Accordingly, in the two systems tones different in quality are formed. The musical tone waveform signal subjected to tone color control is applied through a suitable tone control circuit 21 such as an expression circuit or the like to a sound system 22 where it is produced.
FIGS. 3 and 4 are two part of a block diagram illustrating the wave generator 10. A note decoder 23, a constant memory 24 and key voltage generating circuit 25 in the wave generator 10 are shown in FIG. 3. An accumulator 26, an octave control circuit 27 and a bit position switching circuit 28 are shown in detail in FIG. 4.
In FIGS. 3 and 4, various circuit elements are indicated in accordance with methods as shown in FIG. 5. In FIG. 5, the part (a) indicates an inverter; the parts (b) and (c), AND circuits; the parts (d) and (e), OR circuits; and the part (f) flip-flop circuit with 1-bit delay. If in the AND circuit or the OR circuit the number of inputs is relatively small, the ordinary illustrations as shown in the parts (b) and (d) are employed; but if the number of inputs is relatively large, the illustrations as shown in the parts (c) and (e) are employed. In the part (c) or (e), one input line is drawn on the input side of the circuit, and then a plurality of signal lines are intersected with the input line, and furthermore the intersections of the signal lines of the signals to be inputted to the circuit and the input line are encircled. Accordingly, in the case of the part (c) of FIG. 5, the logical expression is Q=A·B·D. In the case of the part (e), the logical expression is Q=A+B+C. The part (g) of FIG. 5 indicates a shift register, in which the numerator of a fraction parenthesized in the block means the number of stages of the shift register, while the denominator means the number of bits of an input data to the shift register. No shifting clock pulses are indicated for delay flip-flop circuits and shift registers; however, it should be understood that they are shifted with the aid of clock pulses φ (more particularly being two-phase clock pulses) having a period of one microsecond.
Out of the key codes KC supplied by the tone production assigning circuit 13, the note codes N1 through N4 is applied to the note decoder 23, as a result of which a decode output is provided on an output line corresponding to a note represented by the note codes N1 -N4. In the constant memory 24, constant data F proportional to the frequencies of twelve notes C through B are stored in a binary system in advance. A constant data F corresponding to a note represented by the note codes N1 -N4 is read out according to the output of the note decoder 23. In the accumulator 26, the constant data F read out of the memory 24 are repeatedly added every regular time interval T, thereby to obtain variable data qF, where "q" is a variable which increases as 1, 2, 3, 4 and so on every lapse of time interval T.
The output qF of the accumulator 26 is applied to the bit position switching circuit 28, and the binary bit position is shifted leftward or rightward according to the value of an octave switching data X provided by the octave control circuit 27. In other words, the variable data qF which varies regularly in response to the frequencies of the notes in one octave is multiplied by the octave switching data X, thereby to obtain a variable data XqF corresponding to the frequency of a relevant note in the octave range specified by the octave switching data X.
The octave switching data X is produced according to the contents of the octave code B1 -B3. In general, the value of the data X will become capable of realizing the octave range specified by the octave code B1 -B3 ; however, it can suitably change the octave range by changing the code B1 -B3 according to the values of feet change data FF1 -FF3. The distance of one octave corresponds to a frequency ratio 2:1. Therefore, if it is assumed that the octave range to which the notes stored in the constant memory 24 belong is the fundamental octave, when the octave range of a note to be produced is higher by n octaves then the fundamental octave, the value of X is 2n, and when it is lower by n octave than the fundamental octave, the value of X is 2-n. Thus, the relation in frequency between octave is of the power of 2. Therefore, the octave switching control can be achieved by the binary bit position switching circuit 28. In this example, the bit position switching circuit 28 is provided at the rear stage of the accumulator 26; however, it may be provided at the front stage of the accumulator 26 to obtain the variable data XqF similarly as in the above-described case.
The value of the constant data F stored in the constant memory 24 is determined from the frequency f of a relevant note in the fundamental octave, the number of times N of adding the same data f in one second in the accumulator 26, and the number of addresses M for one period of a waveform stored in the waveform memory 15. That is, the decimal value of the constant data F is determined by the following equation (1):
F=(f·M)/N                                         (1)
The constant data f for the notes obtained from the equation (1) are converted into binary numbers, and these binary constant data F are stored in the constant memory 24 in advance.
In the variable data ZqF, the value of the variable q becomes N in one second. Therefore, the above equation (1) can be rewritten into the following equation (2):
XF=(Xf·M)/N                                       (2)
Accordingly, the frequency is switched in proportion to the value of the octave switching data X. As was described above, the data X has a value of the power of 2. Therefore, the frequency Xf is switched with the power of 2 of the frequency f, and the frequency of the tone to be produced is switched on the octave basis. That is, the octave range is selected for the tone to be produced.
Accordingly, when the output data qF of the accumulator 26 is shifted leftward (to a higher bit) in bit position by the bit position switching circuit 28, the multiplication of 2n is carried out with the data X. Therefore, the octave is raised as much as the number n of the bit positions. On the other hand, when the output data qF of the accumulator 26 is shifted rightward (to a lower bit), the multiplication of 2-n is carried out with the data X. Therefore, the octave is lowered as much as the number n of the bit positions.
Referring to FIG. 3, the note decoder 23 is made up of an AND circuit group 23A whose logic is so designed that the note codes N1 -N4 as indicated in Table 1 are decoded separately according to the notes C♯ through C. The constant memory 24 comprises an OR circuit group 24A whose logic is so designed that 10-bit binary constant data F(F1 through F10) having predetermined values are obtained according to the outputs of the decoder 23, and a gate section 24B which selects the outputs of the OR circuit group 24A according to the contents of the keyboard codes K1, k2.
As the bit position switching circuit 28 shown in FIG. 4 is so designed as to effect the leftward shifting operation (the multiplication of 2n), the constant data F proportional to the frequencies of twelve notes in the lowest octave range are stored in the constant memory 24. Although the true lowest octave range shown in Table 1 is the first octave range in which the content of the octave code B1 -B3 is "000", only the note C2 belongs to the first octave scale. Therefore, in the wave generator 10 in this example, the second octave range in which the content of the octave code B1 -B3 is "001" is employed as the lowest octave range (or the fundamental octave), and the constant data F corresponding to the frequencies of twelve notes (C2 ♯, D2 . . . B2, C3) in the second octave range are stored in the addresses of the constant data memory 24. In addition, the constant data F concerning the note C2 which is only one note which belongs to the first octave range is especially stored. That is, logic is provided in the OR circuit group 24A so that, as indicated in Table 2, data having a value a half (1/2) of the note C (C3) which belongs to the fundamental octave (or the second octave scale) is read out as the constant data F for the note C2. In addition, in this example, data F slightly different in value separately according to the kinds of keyboards are stored in the memory 24; however, the data listed in Table 2 are for the lower keyboard only.
                                  TABLE 2                                 
__________________________________________________________________________
               Contents stored in the memory 24,                          
               for the lower keyboard                                     
       Note to be                                                         
               (MSB)                                                      
                    Constant data F                                       
                                (LSB)                                     
Note   used    F.sub.10                                                   
                  F.sub.9                                                 
                    F.sub.8                                               
                      F.sub.7                                             
                        F.sub.6                                           
                          F.sub.5                                         
                            F.sub.4                                       
                              F.sub.3                                     
                                F.sub.2                                   
                                  F.sub.1                                 
__________________________________________________________________________
The C.sub.2                                                               
       Only C.sub.2                                                       
               0  1 1 1 0 1 0 0 0 1                                       
Funda-                                                                    
    C# Notes higher                                                       
               0  1 1 1 1 0 1 1 0 1                                       
men-   than the                                                           
tal D  second octave                                                      
               1  0 0 0 0 0 1 0 1 0                                       
oct-   range, C#.sub.2 -C.sub.2                                           
ave D#         1  0 0 0 1 0 1 0 0 1                                       
    E          1  0 0 1 0 0 1 0 1 0                                       
    F          1  0 0 1 1 0 1 1 0 1                                       
    F#         1  0 1 0 0 1 0 0 1 0                                       
    G          1  0 1 0 1 1 1 0 0 1                                       
    G#         1  0 1 1 1 0 0 0 1 0                                       
    A          1  1 0 0 0 0 1 1 1 0                                       
    A#         1  1 0 0 1 1 1 1 0 1                                       
    B          1  1 0 1 1 0 1 1 1 0                                       
    C          1  1 1 0 1 0 0 0 1 0                                       
__________________________________________________________________________
As the constant data F concerning the note C2 is used for the note C2 only, it is necessary for the note decoder 23 to determine whether the note code N1 -N4 is for the note C2 or a note other than the note C2. Therefore, an AND circuit 29 for the note C2 only is provided in the AND circuit group 23A. Data B1 through B3 obtained by inverting the data of the bits B1 through B3 of the octave code are applied to the AND circuit 29. When the octave code B1 -B3 is for the first octave range, the data "000" is inverted into "111", as a result of which the AND circuit 29 is enabled. Accordingly, upon application of the note code N1 through N4 of the note C2, in the first octave range, the output of the AND circuit 29 is raised to "1", the constant data F for the note C2 only is read out of the memory 24.
As all the constant data F read out of the constant memory 24 are handled as those for the same octave range (the fundamental octave), it is necessary to convert the octave code B1 -B3 representative of the first octave range corresponding to note C2 into the data of the second octave. For this purpose, the octave code B1 -B3 is applied to the NOR circuit 30 in FIG. 4, and a signal "1" produced by the NOR circuit 30 when the octave code is "000" is applied to the OR circuit 31 so as to change the data of the bit B1 into "1". As a result, when the octave code B3, B2, B1 is "000", it is converted into "001", and thereafter is applied to a 3-bit full adder 27A in the octave control circuit 27.
The output "1" of the NOR circuit 30 is applied through a line 32 to an inverter 34, where it is inverted, and is applied to the AND circuit 33 of the note decoder 23. The AND circuit 33 is a circuit for decoding the note codes N1 -N4 of the notes C other than the note C (C2) in the first octave scale. Upon application of the note code N1 -N4 of the note C2, the AND circuit 23 is made inoperable by the signal "1" supplied through the line 32.
In this example, the instrument is so designed that even with the same notes, constant data F slightly different in value are read out of the memory 24 according to the keyboards to which the note belongs. In FIG. 3, the keyboard code K1, K2 is decoded by a decoder 24C, and according to the content of the thus decoded keyboard code an upper keyboard signal UE, a lower keyboard signal LE or a pedal keyboard signal PE is produced. Constant data F concerning the same notes are, in a parallel mode and separately according to the keyboards, read out of the OR circuit group 24A according to the outputs of the note decoder 23. These constant data F are selected by the gate section 24B according to the aforementioned keyboard signals UE, LE and PE.
As is apparent from the input connection states of the OR circuit group 24A, the data of less significant bits than the bit F4 are different according to the kinds of keyboards, but the data of more significant bits than the bit F5 are equal regardless of the kinds of keyboards. Therefore, the difference between the constant data F for the different keyboards is very small. This very small difference gives a slight pitch deviation to the musical tone waveform signal produced by using the constant data F. In this example, the circuit is so designed that the constant data F concerning the notes C♯ through C of the lower keyboard set as indicated in Table 2 produced normal pitch music tone waveforms. Accordingly, the pitch deviation of the lower keyboard tone is zero (0) cent as indicated in FIG. 6: The constant data F corresponding to the notes of the upper keyboard are set to such values that musical tone waveforms having pitches somewhat higher than the normal pitches can be produced, and furthermore the pitch deviation of each note is not uniform; that is, as is shown in FIG. 6, the amount of pitch deviation is decreased from +3.7 cents to +1.86 cents as the tone pitch increases from the note C♯ to the note C. The constant data F corresponding to the notes of the pedal keyboard are set to such values that musical tone waveforms having somewhat lower than the normal pitches can be produced. Furthermore, as indicated in FIG. 6, the amount of pitch deviation is shifted from -3.7 cents to -1.86 cents as the tone pitch increases from the note C♯ to the note C.
The reason why the constant data are slightly different according to the kinds of keyboards is to prevent the occurrence of the case in which the phases of musical tone waveforms produced at the same time are opposite to one another whereby the tones produced are cancelled. In other words, it is frequently effected to depress two keys which belong to different keyboards but have the same tone pitch. If in this case the tones of the two keys are produced at the completely same frequency and the phases of the two tones are opposite to each other, the tones are cancelled by one another. However, the constant data F are made slightly different in vlaue from one another, in this example. Therefore, even if keys having the same tone pitch in different keyboards are depressed at the same time, the phase of the tones of the keys will not become completely opposite to one another, that is, the tones will not be cancelled.
The bit data F1 through F10 of the constant data F are selected through the AND circuits enabled with the aid of the keyboard signals UE, LE and PE in the gate section 24B, and are collected by the OR circuits separately according to the bits. As the key codes N1 -N4, B1 ∝ B3, K1, K2 are supplied in time-sharing manner separately according to the channel as was described before, the constant data F (F1 -F10) corresponding to the notes assigned to the channels are read out of the constant memory 24 in time-sharing manner.
The constant data F read out are applied to the accumulator 26 in FIG. 4. The accumulator 26 comprises a 21-bits adder group 26A and a 21-bits, 12-stages shift register group 26B. The outputs of the adder group 26A are applied through an AND circuit group 26C to the shift register group 26B where they are delayed by 12 channel times. The bit outputs Q1 through Q21 (qF) of the shift register group 26B are applied to the bit position switching circuit 28 and are fed back to the adder group 26A where the constant data F1 through F10 (F) are subjected to addition. Accordingly, it is possible to accumulate the constant data F in time-sharing manner separately according to the channels, and the addition of the constant data F concerning one channel is repeatedly effected every twelve channel times (12 microseconds). The adders for ten lower significant bits in the adder group 26A are full-adders, and the bit data F1 through F10 of the constant data are applied, as addition inputs, to the full-adders for the ten less significant bits. The adders for eleven higher significant bits in the adder group 26A are half-adders. In these half-adders, a carry signal applied from the carry output of a less significant bit adder to the carry input is added to the data fed back from the corresponding bit position of the shift register group 26B. The AND circuit group 26C is made inoperable by the clear signal CC supplied by the tone production assigning circuit 13, thereby to clear the count result of the accumulator 26.
The bit position switching circuit 28 comprises an OR circuit group 28A consisting of fifteen 8-input type OR circuits for introducing the bits S1 through S15 of the variable data XqF subjected to octave switching, and an AND circuit group 28B consisting of 120 2-input type AND circuits, eight AND circuits being provided for each of the OR circuits of the OR circuit group 28A. The AND circuits, eight AND circuits being provided for each of the bits S1 through S15, in the AND circuit group 28B are enabled independently by the signals supplied through eight output lines of the decoder 27B in the octave control circuit 27. The outputs Q1 through Q21 of the accumulator 26 are applied to the AND circuit group 28B in such a manner that these outputs are distributed to the respective bit S1 through S15 in correspondence to the eight outputs X2, X3 . . . X0 and X1 of the decoder 27B. The bit positions of the bits Q1 through Q21 of the variable data qF are switched according to the outputs X2 -X1 of the decoder 27B, whereby the variable data XqF (S1 through S15) are obtained. This is as listed in Table 3.
                                  TABLE 3                                 
__________________________________________________________________________
(MSB)   XgF                           (LSB)                               
X S.sub.15                                                                
     S.sub.14                                                             
        S.sub.13                                                          
           S.sub.12                                                       
              S.sub.11                                                    
                 S.sub.10                                                 
                    S.sub.9                                               
                       S.sub.8                                            
                          S.sub.7                                         
                             S.sub.6                                      
                                S.sub.5                                   
                                   S.sub.4                                
                                      S.sub.3                             
                                        S.sub.2                           
                                          S.sub.1                         
__________________________________________________________________________
X.sub.2                                                                   
  Q.sub.21                                                                
     Q.sub.20                                                             
        Q.sub.19                                                          
           Q.sub.18                                                       
              Q.sub.17                                                    
                 Q.sub.16                                                 
                    Q.sub.15                                              
                       Q.sub.14                                           
                          Q.sub.13                                        
                             Q.sub.12                                     
                                Q.sub.11                                  
                                   Q.sub.10                               
                                      Q.sub.9                             
                                        Q.sub.8                           
                                          Q.sub.7                         
X.sub.3                                                                   
  Q.sub.20                                                                
     Q.sub.19                                                             
        Q.sub.18                                                          
           Q.sub.17                                                       
              Q.sub.16                                                    
                 Q.sub.15                                                 
                    Q.sub.14                                              
                       Q.sub.13                                           
                          Q.sub.12                                        
                             Q.sub.11                                     
                                Q.sub.10                                  
                                   Q.sub.9                                
                                      Q.sub.8                             
                                        Q.sub.7                           
                                          Q.sub.6                         
X.sub.4                                                                   
  Q.sub.19                                                                
     Q.sub.18                                                             
        Q.sub.17    --                Q.sub.7                             
                                        Q.sub.6                           
                                          Q.sub.5                         
X.sub.5                                                                   
  Q.sub.18                                                                
     Q.sub.17       --             Q.sub.7                                
                                      Q.sub.6                             
                                        Q.sub.5                           
                                          Q.sub.4                         
X.sub.6                                                                   
  Q.sub.17                                                                
     Q.sub.16       --          Q.sub.7                                   
                                   Q.sub.6                                
                                      Q.sub.5                             
                                        Q.sub.4                           
                                          Q.sub.3                         
X.sub.7                                                                   
  Q.sub.16                                                                
     Q.sub.15       --       Q.sub.7                                      
                                --    Q.sub.4                             
                                        Q.sub.3                           
                                          Q.sub.2                         
X.sub.0                                                                   
  Q.sub.15                                                                
     Q.sub.14       --    Q.sub.7                                         
                                --    Q.sub.3                             
                                        Q.sub.2                           
                                          Q.sub.1                         
X.sub.1                                                                   
  Q.sub.14                                                                
     Q.sub.13       -- Q.sub.7  --    Q.sub.2                             
                                        Q.sub.1                           
                                          --                              
__________________________________________________________________________
The output data X2, X3, X4 . . . X0, and X1 correspond to the values of the octave switching data X. More specifically, the data X2 is for the lowest octave (or the second octave range in Table 2), the octave range is raised successively, or octave by octave, in the order of the data X3, X4, X5, X6 and X7, and the data X1 specifies the highest octave range. Accordingly, if it is assumed that the state where the bits Q7 through Q21 of the variable qF are led into the bits S1 through S15 of the variable XqF is a shift amount zero (or a bit position switching amount zero), 1-bit, 2-bit, . . . 6-bit or 7 bit leftward shifting operation is effected respectively by the data X3, X4 . . . X0 or X1. This means that the variable data XqF which is 2 times, 4 times, . . . 26 times or 27 times the value of the data qF is provided.
In the octave control circuit 27, a 2-bit adder 27A operates to add the feet change data FF3, FF2 and FF1 to the octave code B3, B2 and B1 thereby to change the octave range. The relationships between the contents of the feet change data FF3, FF2 and FF1 and the amount of octave change are as indicated in Table 4. The feet change data FF3 -FF1 are automatically supplied by a device (not shown) when the octave of a note to be produced is changed.
              TABLE 4                                                     
______________________________________                                    
Amount of octave change                                                   
                 FF.sub.3  FF.sub.2                                       
                                  FF.sub.1                                
______________________________________                                    
No change        0         0      1                                       
1 octave up      0         1      0                                       
2 octave up      0         1      1                                       
3 octave up      1         0      0                                       
______________________________________                                    
The contents of the octave code B3, B2, B1 inputted to the adder 27A are as indicated in Table 1; however, the contents are in the range of from "001" to "101" because the code "000" in the first octave range is changed into "001". Therefore, the octave data B3 *, B2 *, B1 * outputted by the adder 27A is "010" (two in decimal notation) for the lowest octave as a result of the following calculation: B3, B2, B1 +FF3, FF2, FF1 ="001"+"001". Furthermore, the octave data B3 *, B2 *, B1 * for the highest octave is "001" (one in decimal notation) as a result of the following calculation: B3, B2, B1 +FF3, FF2, FF1 +"101"+"100". Accordingly, the decimal value of the octave data B3 *, B2 *, B1 * will be 2, 3, 4, 6, 7, 0, 1 as the octave range is raised. The decoder 27B operates to decode the octave data B3 *, B2 *, B1 *, according to the decimal value thereof, into the output data X2, X3, X4, . . . X0, X1. Accordingly, the data X2 obtained by decoding the decimal value "2" corresponds to the lowest octave, while the data X1 obtained by the decimal value "1" corresponds to the highest octave. A 12-stage 3-bit shift register 27C provided between the adder 27A and the decoder 27B operates to establish synchronization with the delay time of twelve channel times in the accumulator 26.
In the variable data outputted by the bit position switching circuit 28, the data of the bits S1 through S11 are applied to the waveform memory 15A for 2 foot (2') register, the data of the bits S2 through S12, to the waveform memory 15B for 4 foot (4') register, the data of the bits S3 through S13, to the waveform memory 15C for 8 foot (8') register, the data of the bits S4 through S14, to the waveform memory 15D for 16 foot (16') register, and the data of the bits S5 through S15, to the waveform memory 15E for 32 foot (32') register. Therefore, the data in which the bit position of the variable data XqF has been substantially shifted are applied to the waveform memories 15A through 15E, and the periods of time required for reading out the tone source waveforms over the respective unitary periods, which are stored in the memories 15A through 15E, are different by the power of 2. Therefore, it is possible to simultaneously read the tone source waveforms for two foot through thirty-two foot registers whose frequencies are different by the octave. It goes without saying that the number of addresses are equal in the waveform memories 15A through 15E, and therefore memories having the same construction may be employed for these memories.
The key voltage generating circuit 25 is provided to generate a key voltage (tone pitch voltage) KV for controlling according to the pitch of a tone to be produced the cut-off frequency of the voltage control type filter 19 for tone color control. As is well known in the art, in order that the relation of the harmonic components of a produced tone is maintained constant regardless of its tone pitch (the fundamental frequency) thereby to obtain a constant tone color, it is necessary to vary the cut-off frequency of the voltage control type filter according to the pitch of the tone produced. In the electronic musical instrument shown in FIG. 1, the tone source waveforms of plural tones produced in the channels are multiplexed, and are applied through the line 17 to one voltage control type filter 19. Therefore, it is necessary to apply the key voltage KV to the voltage control type filter 19, which is representative of one of the plural tones. In this example, the key voltage KV is provided according to a high-tone priority; however, it is unnecessary to provide priority order for all of the keys; that is, the aimed object can be achieved by dividing the keys into several scales and by employing a key voltage KV corresponding to the relevant range.
For this purpose, the key voltage generating circuit 25 is so designed as to generate a key voltage KV for every half octave, whereby the priority order is determined every half octave. Thus, the octave code B1 -B3 and the most significant bit data N4 of the note code are applied to the key voltage generating circuit 25. As is apparent from Table 1, the value of the bit N4 is "0" in the first half (C♯-F♯) of one octave and is "1" in the second half (G-C). Therefore, distinction of the half octave range can be achieved by the use of 4-bit data B3, B2, B1, N4. As the octave is raised, the value of the data B3, B2, B1, N4 is increased. Therefore, the determination of high-tone priority is effected by detecting a channel in which the value of the data B3, B2, B1, N4 is maximal, by the use of a comparator 35 and a primary memory 39.
In the distribution circuit 16 in FIG. 1, only the upper keyboard tones are distributed through the line 17 to the voltage control type filter 19. Therefore, the AND circuit group 36 of the key voltage generating circuit 25 is enabled by the upper keyboard signal UE, so that the data B3, B2, B1, N4 concerning the upper keyboard tones are selected by the AND circuit group 36. After being synchronized by the delay flip-flop group 37, the data B3, B2, B1, N4 is applied to the input A of the comparator 35.
The primary memory 39 comprises a gate section and a delay flip-flop group. When a clock pulse signal SY1, 1 microsecond in pulse width (one channel times) and twelve microseconds in period (twelve channel times) as shown in the part (a) of FIG. 7 is applied through the OR circuit 40 to the gate section, the data from the delay flip-flop group 38 are stored in the primary memory 39. The data thus stored in the primary memory 39 are applied to the input B of the comparator 35. The comparator 35 compares the input A with the input B, and produces an output "1" when A=B. This output "1" of the comparator 35 is applied through a flip-flop 41 and an OR circuit 40 to the gate section of the primary memory 39 thereby to cause the data from the delay flip-flop group 38 to be stored in the primary memory 39.
For instance, if the channel time of the data B3, B2, B1, N4 outputted by the delay flip-flop group 37 is as shown in the part (b) of FIG. 7, the channel time of the output data of the delay flip-flop group 38 is delayed by one microseconds as shown in the part (c) of FIG. 7. Upon production of the clock pulse SY1, the content in the primary memory 39 is cleared, and the output (the data B3 -N4 of the twelfth channel in the example shown) of the delay flip-flop 38 is newly stored in the primary memory 39. This storage is self-held until the next clock pulse SY1 is produced, unless an output "1" is produced by the comparator 35. In other words, the content stored in the primary memory 39 is repeatedly cleared with the timing of the clock pulse SY1.
The data B3 -N4 of the channels applied to the input A of the comparator 35 from the delay flip-flop 37 are compared with the data stored in the primary memory 39 every channel time, and the content stored in the primary memory 39 is rewritten into a larger value according to the output "1" of the comparator. For instance, in the case where the value of the data of the twelfth channel stored firstly in the primary memory 39 is smaller than the value of the data of the second channel, the output "1" is provided by the delay flip-flop 41 as shown in the part (e) of the FIG. 7, and the data of the second channel is stored in the primary memory 39, and is outputted by the primary memory 39 in one microsecond as shown in the part (d). Furthermore, when the data of the seventh channel is larger than the data of the second channel, an output "1" is provided by the delay flip-flop 41 in coincidence with the data output timing of the seventh channel of the delay flip-flop group 38, and the data of the seventh channel is stored in the primary memory 39.
Thus, before the clock pulse SY1 is next produced, that is, during the twelve channel times, the data of all the channels are compared with one another, as a result of which when the clock pulse SY1 is produced, the data stored in the primary memory 39 is the maximum value.
A secondary memory 42 comprises a gate section for selecting the maximum value data stored in the primary memory 39 with the production timing of the clock pulse SY1, and a delay flip-flop group for storing this maximum value data, and operates to self-hold this maximum value data for one period of the clock pulse SY1 (cf. the part (f) of FIG. 7).
Accordingly, the data B3 -N4 for the half octave range to which the highest tone out of the tones of the depressed keys selected in the high-tone priority system by the comparison in time-sharing manner using the comparator 35 and the primary memory 39 belong is converted into direct current by the secondary memory 42, so as to be the data representative of all the channels.
The data B3 -N4 stored in the secondary memory 42 is decoded separately according to the half-octave ranges in a decoder 43, and an analog voltage (key voltage KV) corresponding to the decoded range is read out of a key voltage memory 44. In this example, the data B3 -N4 for the half-octave scale can have eleven different values ranging from the second half "0001" ("1" in decimal notation) of the first octave range to which only the note C2 belongs to the second half "1011" ("11" in decimal notation) of the sixth octave scale. However, as the note of the lowest range "0001" is only one note, or the note C2, a key voltage KV having the same value as that of the key voltage KV of the range (the front half of the second octave range) higher than the lowest range is read out of the memory 44. Accordingly, the decoding outputs "1" and "2" of the contents "0001" and "0010" and "0010" of the data B3 -N4 serves to read key voltages KV having the same zero volt out of the memory 44. This memory 44 is so designed that as the range is raised, the higher key voltage KV is read out.
In the case where a voltage control type filter 19 such as shown in FIG. 1 is not employed in an electronic musical instrument, it is unnecessary to provide the key voltage generating circuit 25 in the wave generator 10.
The wave generator 10 can be extensively employed not only to an electronic musical instrument such as shown in FIG. 1, but also to a device in which the sequential sample point amplitudes of a waveform stored in a waveform memory are repeatedly read to obtain a waveform signal having a desired frequency.
In the above-described example, only the constant data F corresponding to the notes (twelve notes) in one octave are stored, as those corresponding to the frequency, in the memory; however, it should be understood that the invention is not limited thereto or thereby. For instance, the constant data F corresponding to the notes in two octaves may be stored in the memory.
As is apparent from the above description, according to the invention, only the constant data F corresponding to the notes in a desired octave are stored, as those corresponding to the frequency, is stored in the memory. Therefore, the amount of storage in the memory is much less than the number of all the keys of the electronic musical instrument.

Claims (17)

What is claimed is:
1. A .[.note.]. .Iadd.tone .Iaddend.wave generator in a keyboard electronic musical instrument, which comprises:
memory means for storing constants corresponding to musical tone frequencies included in one out of a plurality of groups into which keys of said keyboard are divided separately on the octave basis;
accummulator means for repeatedly adding said constants read out of said memory means in response to depression of a selected key, said accumulator means providing the resultant accummulated data in parallel binary format; and
bit position switching means for shifting said parallel binary format data provided by said accumulator means by a number of bit positions corresponding to the octave range designated by said selected key so as to obtain data which varies repeatedly according to the frequency of the tone to be produced.
2. A .[.note.]. .Iadd.tone .Iaddend.wave generator as claimed in claim 1, in which said memory means is also capable of storing constants corresponding to notes which belong to a group whose range is short of one octave in said group division.
3. An electronic musical instrument of the type having a tone generator that generates musical tones having a frequency established by an input constant to which said frequency is proportional, the improvement wherein said instrument includes:
a plurality of like waveform memories, each storing sampled amplitudes of a musical waveform,
memory means for storing constant data for each pitch within a certain octave and for providing as an output in binary format the constant data for a selected note,
accumulator means, connected to said memory means, for repetitively adding said constant data so as to provide accumulated constant data,
octave selection means for providing a signal indicative of the desired octave of note production,
bit position switching means, receiving said accumulated constant data from said accmumulator means and responsive to said signal indicative of the desired octave of note production, for shifting said accumulated constant data by a number of binary positions corresponding to the number of octaves separating said desired octave from said certain octave, the resultant accumulated and shifted constant data being supplied as said input constant, and
memory access means, connected to said bit position switching means, for accessing amplitude samples from said waveform memories in response to said accumulated and shifted constant data, different ones of said plurality of waveform memories being accessed simultaneously by accumulated constant data shifted by different numbers of bit positions.
4. An electronic musical instrument of the type having a tone generator that generates musical tones having a frequency established by an input constant to which said frequency is proportional, the improvement wherein said instrument includes:
memory means for storing constant data for each pitch within a certain octave and for providing as an output in binary format the constant data for a selected note,
octave selection means for providing a signal indicative of the desired octave of note production,
bit position switching means, receiving such output constant data and responsive to said signal indicative of the desired octave of note production, for shifting said constant data by a number of binary positions corresponding to the number of octaves separating said desired octave from said certain octave, the resultant shifted constant data being supplied to said tone generator for use thereby as said input constant to establish the frequency of said generated musical tone, and
accumulator means, connected between said memory means and said bit position switching means, for repetitively adding said output constant data to provide accumulated output constant data,
said bit position switching means receiving and shifting said accumulated output constant data by said corresponding number of binary positions and also by other numbers of binary positions so as to provide a plurality of outputs shifted by different numbers of binary positions, said tone generator comprising:
a plurality of like waveform memories each storing sampled amplitudes of a musical waveform, and
memory access means for simultaneously accessing sampled amplitudes from said plural waveform memories in response to respective ones of said differently shifted plurality of outputs.
5. An electronic musical instrument according to claim 4 wherein said bit position switching means provides said accumulated shifted constant data as a multibit parallel binary output having more bits than required by said memory access means to access one of said waveform memories, said pluraity of outputs consisting of different subsets of said bits.
6. In an electronic musical instrument, a tone generator comprising:
a plurality of like waveform memories each storing amplitude samples of a like musical waveform at an equal number of memory addresses,
a source of constant data proportional to the desired frequency of a tone to be produced by said tone generator,
accumulator means for accumulating said constant data at a fixed clock rate, and for providing said accumulated constant data in parallel binary format, and
access means for simultaneously accessing said amplitude samples from different ones of said waveform memories at each individual access time in response to respective different access addresses, each access address consisting of a different subset of said parallel binary accumulated constant data, the resultant amplitude samples accessed from different individual memories representing said like musical waveform in correspondingly different octaves.
7. In an electronic musical instrument, a tone generator comprising:
a plurality of like waveform memories each storing amplitude samples of a like musical waveform at an equal number of memory addresses,
a source of constant data proportional to the desired frequency of a tone to be produced by said tone generator,
accumulator means for accumulating said constant data at a fixed clock rate, and for providing said accumulated constant data in parallel binary format, and
access means for accessing said amplitude samples from individual ones of said waveform memories simultaneously in response to different subsets of said parallel binary accumulated constant data, the resultant amplitude samples accessed from different individual memories representing said like musical waveform in correspondingly different octaves, and wherein:
said source of constant data comprises pitch constant data storage means for storing a constant data value for each pitch name in a fundamental octave,
said accumulator means including a repetitive addition circuit receiving a selected one of said constant data values and repetitively adding said selected value to the prior contents of said addition circuit at said fixed clock rate to obtain said accumulated constant data, said instrument further comprising:
a bit position shifting circuit for shifting said accumulated constant data from said addition circuit by a number of bit positions corresponding to the difference between said fundamental octave and the desired octave of tone production, the number of bits in the resultant shifted accumulated constant data being more than required to access the addresses of any of said waveform memories,
said access means using different subsets of said resultant shifted accumulated constant data from said shifting circuit to access respective ones of said waveform memories, said subsets being sequentially ordered with most significant bit positions differing from each other successively by one bit position, whereby the waveforms accessed from said plural memories will be octavely related.
8. An electronic musical instrument according to claim 7 wherein said musical instrument includes plural keyboards and wherein said pitch constant data storage means stores a corresponding plurality of sets of slightly different constant data values for each pitch name in a fundamental octave, the playing of a certain key in a certain keyboard causing said storage means to provide to said accumulator means the selected constant data value for the pitch name of the played key, said value being supplied from the set corresponding to the keyboard containing said played key, said slightly different constant data values in said sets thereby resulting in slightly different tone pitches being produced when the same pitch name keys are selected on two different keyboards.
9. In an electronic musical instrument, a tone generator comprising:
a plurality of like waveform memories each storing amplitude samples of a like musical waveform at an equal number of memory addresses,
a source of constant data proportional to the desired frequency of a tone to be produced by said tone generator,
accumulator means for accumulating said constant data at a fixed clock rate, and for providing said accumulated constant data in parallel binary format,
access means for accessing said amplitude samples from individual ones of said waveform memories simultaneously in response to different subsets of said parallel binary accumulated constant data, the resultant amplitude samples accessed from different individual memories representing said like musical waveform in correspondingly different octaves, and wherein said tone generator is time shared so as to generate concurrently a plurality of tones in time shared fashion, said tone generator including:
a voltage controlled filter connected to filter the musical waveforms from said waveform memories together with:
highest pitch detection means for ascertaining the maximum pitch of any note being generated concurrently by said tone generator, and
key voltage generator means for providing a control voltage to said voltage controlled filter established by said ascertained maximum pitch, and wherein
said instrument utilizes key codes including a pitch name portion and an octave portion, said pitch name portion being used to control said source of constant data, said octave portion being supplied to said highest pitch detection means for use thereby in ascertaining said maximum pitch.
10. A .[.note.]. .Iadd.tone .Iaddend.wave generator in an electronic musical instrument, which comprises:
a keyboard including playing keys,
key code generating means for producing a key code which includes a note data portion and octave data portion thereby identifying .[.the.]. .Iadd.a .Iaddend.key operated in the keyboard,
memory means for storing constants each in a binary representation consisting of a plurality of bits corresponding to musical tone frequencies to be generated in correspondence to notes included in a desired one out of a plurality of groups into which keys of a keyboard are divided separately on the octave basis,
readout means for reading out a constant from said memory means according to the note data portion of said key code,
accumulator means for adding said constants read out of said memory means repeatedly thereby producing accumulated values which increase progressively,
bit position switching means for shifting the bit position of data obtained by said accumulator means according to the octave data portion of said key code, and
tone wave generating means which generates a tone wave signal in response to said accumulated values. .Iadd.
11. A tone wave generator in an electronic musical instrument, which comprises:
a keyboard including playing keys,
key code generating means for producing a key code which includes a note data portion and an octave data portion thereby identifying a key operated in the keyboard,
constant memory means for storing constants corresponding to musical tone frequencies to be generated in correspondence to notes included in one out of a plurality of groups into which keys of a keyboard are divided separately on the octave basis,
readout means for reading out a constant from said constant memory means according to the note data portion of said key code,
operation means responsive to the constant read out from said constant memory means and to the octave portion of said key code for producing an address signal which varies progressively at a rate according to both the note data portion and octave data portion of said key code, and
waveform memory means for storing waveform information in each address thereof and being accessed by said address signal thereby producing a tone wave signal corresponding to said key code. .Iaddend. .Iadd.
12. A tone wave generator according to claim 11 further comprising means for producing additional data to modify said address signal with respect to octave information wherein said operation means receives said additional data to produce the access signal in accordance with the combination of said key code and said additional data. .Iaddend. .Iadd.13. A tone wave generator according to claim 11 wherein said constant memory means stores said constants in binary format and wherein said operation means includes circuitry for shifting said read out binary constant by an
amount established by said octave data portion. .Iaddend. .Iadd.14. A tone wave generator in an electronic musical instrument, which comprises:
a keyboard including playing keys,
key code generating means for producing a key code which includes a note data portion and an octave data portion thereby identifying a key operated in the keyboard,
constant memory means for storing constants corresponding to musical tone frequencies to be generated in correspondence to notes included in one out of a plurality of groups into which keys of a keyboard are divided separately on the octave basis,
first operation means, responsive to the note data portion of said key code, for accessing said constant memory means to produce a first signal designating a note corresponding to said operated key,
second operation means responsive to the octave data portion of said key code for modifying said first signal in accordance with said octave data portion thereby producing a second signal designating the note and octave both corresponding to said operated key, and
waveform memory means for storing waveform information in each address thereof and being accessed in accordance with said second signal thereby producing a tone wave signal corresponding to said key code. .Iaddend. .Iadd.15. A tone wave generator according to claim 14 further comprising means for producing additional data to modify said second signal with respect to octave information, and wherein said second operation means receives said additional data to produce the second signal in combination
with said key code and said additional data. .Iaddend. .Iadd.16. A note wave generator in an electronic musical instrument, which comprises:
a keyboard including playing keys,
key code generating means for producing a key code which includes a note data portion and an octave data portion thereby identifying the key operated in the keyboard,
memory means for storing constants each in a binary representation consisting of a plurality of bits corresponding to musical tone frequencies to be generated in correspondence to notes included in a desired one out of a plurality of groups into which keys of a keyboard are divided separately on the octave basis,
readout means for reading out a constant from said memory means according to the note data portion of said key code,
bit position switching means for shifting the bit position of said constant read out from said memory means according to the octave data portion of said key code,
accumulated value means for repetitively utilizing said bit position shifted constant to produce accumulated values which increase progressively, and
tone wave generating means which generates a tone wave signal in response
to said accumulated values. .Iaddend. .Iadd.17. A note wave generator according to claim 16 wherein said tone wave generating means includes at least one waveshape memory, and wherein said accumulated values constitute addresses for accessing said waveshape memory to read out the corresponding waveshape information stored therein, the addresses increasing in value progressively at a rate established by the value of said bit position shifted constant so that said stored waveshape information will be read out at a rate corresponding to said key code.
.Iaddend. .Iadd.18. In a time shared keyboard electronic musical instrument of the type in which selected keys are represented by multibit parallel key codes, each key code including a note code portion specifying the particular note name of a musical octave, and an octave code portion specifying the particular octave of said selected key, said instrument having assignment means for assigning the key codes for selected keys to respective time slots in a set of such time slots and for delivering said set of assigned key codes repetitively to a common tone generator, the improvement wherein said tone generator comprises:
a frequency constant memory storing twelve values of frequency data, each associated with a respective note of the musical scale and each consisting of a multibit binary value,
note decoder readout means, connected to said assignment means to receive the note code portion of each delivered key codes, for reading out from said constant memory, each time that a note code portion is received, the frequency data value associated with the note specified by that received note code portion,
octave decoder switching control means, connected to said assignment means to receive the octave code portion of each delivered key code, for decoding said received octave code portion and for supplying octave switching data corresponding thereto,
variable data accumulation means, connected to said constant memory and to said octave decoder switching control means, for repetitively utilizing during corresponding repetitive time slots the read out frequency data values and the supplied octave switching data to produce accumulated variable data which changes in value progressively in correspondence to the frequency of a musical note having the note name associated with said frequency data value in an octave established by said octave switching data,
a waveshape memory storing data for establishing sequential sample point amplitudes of a musical tone source waveform, and
waveshape memory readout means, connected to said variable data accumulation means and to said waveshape memory, for reading out said stored waveform establishing data utilizing said accumulated variable data
as the waveshape memory access address code. .Iaddend. .Iadd.19. An access signal generator for use in an electronic musical instrument of the type comprising tone wave memory means storing musical tone forming data and being accessed in accordance with an operated key among a plurality of keys in a keyboard, said generator comprising:
key code generating means for producing a key code which includes a note data portion and an octave data portion thereby identifying said operated key,
constant memory means for storing constants corresponding to musical tone frequencies to be generated in correspondence to notes included in one out of a plurality of groups into which said keys of the keyboard are divided separately on the octave basis,
readout means for reading said constant memory means to produce a constant information according to the note data portion of said key code,
modifying means responsive to the octave data portion of said key code for modifying said constant information in accordance with said octave data thereby producing a modified constant information corresponding to the note and octave portions of said key code; and
operation means responsive to said modified constant information for performing repetitive arithmetic operations on the modified constant information to produce an access signal which varies at a rate established by said key code, said tone wave memory means being accessed by said access signal. .Iaddend. .Iadd.20. An access generator according to claim 19 in which the constant information produced through said readout means by reading out said constant memory means is provided in binary format and in which said modifying means comprises bit position shifting means responsive to the octave data portion of said key code for shifting said constant information by a number of binary positions corresponding to a number of octaves designated by said octave data portion. .Iaddend.
US06/154,994 1976-10-18 1980-05-30 Tone wave generator in electronic musical instrument Expired - Lifetime USRE30736E (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP51124529A JPS5842479B2 (en) 1976-10-18 1976-10-18 Wave generator for electronic musical instruments
JP51-124529 1976-10-18

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US05/841,716 Reissue US4179972A (en) 1976-10-18 1977-10-13 Tone wave generator in electronic musical instrument

Publications (1)

Publication Number Publication Date
USRE30736E true USRE30736E (en) 1981-09-08

Family

ID=14887722

Family Applications (2)

Application Number Title Priority Date Filing Date
US05/841,716 Expired - Lifetime US4179972A (en) 1976-10-18 1977-10-13 Tone wave generator in electronic musical instrument
US06/154,994 Expired - Lifetime USRE30736E (en) 1976-10-18 1980-05-30 Tone wave generator in electronic musical instrument

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US05/841,716 Expired - Lifetime US4179972A (en) 1976-10-18 1977-10-13 Tone wave generator in electronic musical instrument

Country Status (2)

Country Link
US (2) US4179972A (en)
JP (1) JPS5842479B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4409877A (en) 1979-06-11 1983-10-18 Cbs, Inc. Electronic tone generating system
US20110029583A1 (en) * 2008-04-10 2011-02-03 Masahiro Nakanishi Nonvolatile storage module, access module, musical sound data file generation module and musical sound generation system
US20120027241A1 (en) * 2010-07-30 2012-02-02 Turnbull Robert R Vehicular directional microphone assembly for preventing airflow encounter

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5935037B2 (en) * 1977-12-14 1984-08-25 ヤマハ株式会社 electronic musical instruments
GB2017376B (en) * 1978-03-18 1983-03-16 Casio Computer Co Ltd Electronic musical instrument
CA1126992A (en) * 1978-09-14 1982-07-06 Toshio Kashio Electronic musical instrument
JPS5583095A (en) * 1978-12-18 1980-06-23 Kawai Musical Instr Mfg Co Allocating device for keyboarddswitch information
USRE33738E (en) * 1979-04-27 1991-11-12 Yamaha Corporation Electronic musical instrument of waveform memory reading type
JPS55144296A (en) * 1979-04-27 1980-11-11 Nippon Musical Instruments Mfg Electronic musical instrument
JPS56117291A (en) * 1980-02-20 1981-09-14 Matsushita Electric Ind Co Ltd Electronec musical instrument
EP0039802B1 (en) * 1980-04-30 1984-09-26 Matsushita Electric Industrial Co., Ltd. Electronic musical instrument
JPS5792399A (en) * 1980-11-29 1982-06-08 Nippon Musical Instruments Mfg Electronic musical instrument
US4491049A (en) * 1980-12-23 1985-01-01 Sharp Kabushiki Kaisha Electronic musical instrument
JPS59184397A (en) * 1983-04-04 1984-10-19 カシオ計算機株式会社 Waveform information reader
JPH0631963B2 (en) * 1983-06-17 1994-04-27 ヤマハ株式会社 Electronic musical instrument
US4526081A (en) * 1984-07-16 1985-07-02 Kawai Musical Instrument Mfg. Co., Ltd. Extended harmonics in a polyphonic tone synthesizer
DE19515612A1 (en) * 1995-04-28 1996-10-31 Sican Gmbh Decoding digital audio data coded in mpeg format

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3610800A (en) * 1969-10-30 1971-10-05 North American Rockwell Digital electronic keyboard instrument with automatic transposition
US3697661A (en) * 1971-10-04 1972-10-10 North American Rockwell Multiplexed pitch generator system for use in a keyboard musical instrument
US3910150A (en) * 1974-01-11 1975-10-07 Nippon Musical Instruments Mfg Implementation of octave repeat in a computor organ
US3929051A (en) * 1973-10-23 1975-12-30 Chicago Musical Instr Co Multiplex harmony generator
US4011784A (en) * 1972-12-19 1977-03-15 Pioneer Electronic Corporation Transposition apparatus for an electronic musical instrument
US4046047A (en) * 1975-08-11 1977-09-06 Warwick Electronics Inc. Note selector circuit for electronic musical instrument
US4052924A (en) * 1976-08-09 1977-10-11 Kawai Musical Instrument Mfg. Co. Ltd. Interval repeat generator for keyboard musical instrument
US4080862A (en) * 1975-08-29 1978-03-28 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument having octave slide effect
US4114497A (en) * 1975-09-29 1978-09-19 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument having a coupler effect

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5131384B2 (en) * 1972-07-19 1976-09-06
JPS5246088B2 (en) * 1973-04-13 1977-11-21

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3610800A (en) * 1969-10-30 1971-10-05 North American Rockwell Digital electronic keyboard instrument with automatic transposition
US3697661A (en) * 1971-10-04 1972-10-10 North American Rockwell Multiplexed pitch generator system for use in a keyboard musical instrument
US4011784A (en) * 1972-12-19 1977-03-15 Pioneer Electronic Corporation Transposition apparatus for an electronic musical instrument
US3929051A (en) * 1973-10-23 1975-12-30 Chicago Musical Instr Co Multiplex harmony generator
US3910150A (en) * 1974-01-11 1975-10-07 Nippon Musical Instruments Mfg Implementation of octave repeat in a computor organ
US4046047A (en) * 1975-08-11 1977-09-06 Warwick Electronics Inc. Note selector circuit for electronic musical instrument
US4080862A (en) * 1975-08-29 1978-03-28 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument having octave slide effect
US4114497A (en) * 1975-09-29 1978-09-19 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument having a coupler effect
US4052924A (en) * 1976-08-09 1977-10-11 Kawai Musical Instrument Mfg. Co. Ltd. Interval repeat generator for keyboard musical instrument

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4409877A (en) 1979-06-11 1983-10-18 Cbs, Inc. Electronic tone generating system
US20110029583A1 (en) * 2008-04-10 2011-02-03 Masahiro Nakanishi Nonvolatile storage module, access module, musical sound data file generation module and musical sound generation system
US8450589B2 (en) * 2008-04-10 2013-05-28 Panasonic Corporation Nonvolatile storage module, access module, musical sound data file generation module and musical sound generation system
US20120027241A1 (en) * 2010-07-30 2012-02-02 Turnbull Robert R Vehicular directional microphone assembly for preventing airflow encounter
US8467551B2 (en) * 2010-07-30 2013-06-18 Gentex Corporation Vehicular directional microphone assembly for preventing airflow encounter

Also Published As

Publication number Publication date
JPS5349419A (en) 1978-05-04
JPS5842479B2 (en) 1983-09-20
US4179972A (en) 1979-12-25

Similar Documents

Publication Publication Date Title
USRE30736E (en) Tone wave generator in electronic musical instrument
US4077294A (en) Electronic musical instrument having transient musical effects
US5025702A (en) Electronic musical instrument employing time-sharing frequency modulation and variable control of harmonics
US4584921A (en) Tone waveshape generation device
US4185532A (en) Envelope generator
EP0035658A2 (en) Electronic musical instrument
US4131049A (en) Electronic musical instrument having memories containing waveshapes of different type
EP0235768B1 (en) Parameter supply device in an electronic musical instrument
US4114496A (en) Note frequency generator for a polyphonic tone synthesizer
US4114497A (en) Electronic musical instrument having a coupler effect
US4080862A (en) Electronic musical instrument having octave slide effect
US4178826A (en) Envelope generator
US4267762A (en) Electronic musical instrument with automatic arpeggio performance device
US4083285A (en) Electronic musical instrument
EP0169659B1 (en) Sound generator for electronic musical instrument
US4166405A (en) Electronic musical instrument
US4160404A (en) Electronic musical instrument
US4562763A (en) Waveform information generating system
US4178824A (en) Electronic musical instrument
JPS62200398A (en) Musical sound signal generator
US4159663A (en) Electronic musical instrument with different types of tone forming systems
JPH0213799B2 (en)
US4619174A (en) Electronic musical instrument
US4442748A (en) Frequency divider for electronic musical instrument
USRE30906E (en) Envelope generator