Claims
- 1. A wave generator for an electronic musical instrument, comprising: a microprogram memory for storing a set of instructions, said instructions consisting of instructions for musical tone calculation and for indicating the sequence of calculation of a plurality of sample values constituting a musical tone waveform according to a predetermined calculation formula; an instruction delivery circuit connected to said microprogram memory for delivering said instructions; a data source for generating frequency data and envelope data which respectively designate a tone pitch and a sounding timing of each tone to be produced;
- an arithmetic circuit for carrying out waveform calculations under the control of said instructions; a plurality of registers connected to said data source, said instruction delivery circuit and said arithmetic circuit for storing said frequency data, said envelope data, and arithmetic intermediate results which are inputted from said arithmetic circuit during the waveform calculations; and
- a function table connected to said registers for storing function values at respective addresses and delivering the function values when accessed by said registers under the control of said instructions;
- said arithmetic circuit carrying out said calculations using said frequency data, said envelope data and said function values received from said registers and in accordance with said instructions received from said registers;
- the calculation results constituting a musical tone wave.
- 2. A wave generator as claimed in claim 1, in which said instruction delivery circuit is connected to said registers to control said arithmetic circuit to carry out the waveform calculations for obtaining sample values which constitute a musical tone waveform by advancing phase, by dividing an envelope given to said musical tone waveform into a plurality of segments with respect to time, and by setting an envelope increment value and a phase increment value for each of said segments, in accordance with said instructions, speed of the advancement of the phase being determined by said phase increment value in connection with said frequency data and slope of the envelope being determined by said envelope increment value in connection with said envelope data.
- 3. A wave generator as claimed in claim 2, in which said microprogram memory further provides a sub-increment value for each of said phase increment values for each of said segments, said arithmetic circuit being connected to carry out the calculation of modifying said phase increment for each segment by said sub-increment value timewise sequentially within the calculation for said each segment.
- 4. A wave generator as claimed in claim 3, which comprises: a value source generating a phase initial value and a phase accumulation value, a selector register connected to said value source for selectively storing said phase initial value and said phase accumulation value applied thereto; an accumulator for storing said phase accumulation value; and an addition circuit in which an output of said accumulator and a phase increment value are subjected to addition to calculate a new phase increment value, means applying said new phase increment to said selector register, so as to change a frequency of said musical tone waveform for a segment of said musical tone waveform, said selector register, accumulator and addition circuit being connected to said plurality of registers.
- 5. A wave generator as claimed in claim 3, which comprises: a value source generating an initial value of the phase increment value, a sub-increment value for the phase increment value and an accumulated phase increment value, a selector register connected to said value source for selectively storing said initial value of the phase increment value and said accumulated phase increment value applied thereto; an accumulator for storing said accumulated phase increment value; and an addition circuit in which an output of said accumulator and said sub-increment value for the phase increment value are subjected to addition to calculate a new phase increment value which is applied to said selector register, so as to change a frequency of said musical tone waveform for a segment of said musical tone waveform, said selector register, accumulator and addition circuit being connected to said plurality of registers.
- 6. A wave generator as claimed in claim 2, which further comprises a segment memory connected to said registers and controlled by said microprogram to store a segment indentifying numeral which indicates the segment now being calculated out of said plurality of segments of said musical tone waveform, said numeral being advanced according to the calculation sequence.
- 7. A wave generator as claimed in claim 6, in which said set of instructions includes a decay instruction, and when said decay instruction is delivered by said instruction delivery circuit to said registers, the content of said segment memory is changed to be representative of a segment corresponding to a decay state of said musical tone waveform.
- 8. A wave generator as claimed in claim 6, in which said instruction delivery circuit delivers a calculation completion signal of said musical tone waveform from said microprogram memory when said segment identifying numeral reaches a predetermined value, thereby ceasing the calculation.
- 9. A wave generator as claimed in claim 2, which further comprises: a value source generating an initial value of the envelope; a selector register for selectively storing said initial value of said envelope and an accumulation value of said envelope which are applied thereto; an accumulator for storing the accumulation value of said envelope; and an addition circuit in which an output of said accumulator and an envelope increment value are subjected to addition to calculate a new accumulation value of said envelope, means applying said new accumulation value to said selector register, said selector register, accumulator and addition circuit being connected to said plurality of registers.
- 10. A wave generator as claimed in claim 9, in which said instruction delivery circuit delivers a damp instruction from said microprogram memory and controls, when said damp instruction is outputted, said arithmetic circuit to shift down the value from said accumulator by a predetermined number of bits to constitute an increment value and to subtract said increment value from the content of said accumulator, the shifting down and the subtracting being conducted repeatedly, thereby realizing an exponential decay.
- 11. A wave generator as claimed in claim 9, in which said instruction delivery circuit delivers a damp instruction from said microprogram memory and controls, when said damp instruction is outputted, said arithmetic circuit to shift down the value from said accumulator by a predetermined number of bits to constitute an increment value and to subtract said increment value from the content of said accumulator, the shifting down and subtracting being conducted repeatedly, thereby realizing an exponential decay.
- 12. A wave generator as claimed in claim 2, in which said set of instructions includes an instruction to allow data for setting time intervals for said segments to be selectively set, so as to carry out calculation of said waveform.
- 13. A wave generator as claimed in claim 12, which comprises: a rate count register for storing predetermined rate count data with respect to said segment when the waveform calculation for each segment starts; a first control circuit for controlling said arithmetic circuit to subtract a predetermined value from the stored data value of said rate count register, and when the subtraction result reaches a set value, produces a signal; an envelope count register for storing a predetermined envelope count data of said segment when the waveform calculation for each segment starts; and a second control circuit which controls said arithmetic circuit for subtracting a predetermined value from the stored data value of said envelope count register whenever said signal is outputted by said first control circuit and produces a signal when the subtraction reaches a set value.
- 14. A wave generator as claimed in claim 13, in which said microprogram memory provides a hold signal and said first control circuit is connected to suspend subtraction operation of said arithmetic circuit when said hold signal is outputted.
- 15. A wave generator as claimed in claim 12, which comprises: a rate count register for storing predetermined rate count data with respect to said segment when the waveform calculation for each segment starts; a first control circuit for controlling said arithmetic circuit to add a predetermined value to the stored data value of said rate count register, and when the addition result reaches a set value, produces a signal; an envelope count register for storing a predetermined envelope count data of said segment when the waveform calculation for each segment starts; and a second control circuit which controls said arithmetic circuit for adding a predetermined value to the stored data value of said envelope count register whenever said signal is outputted by said first control circuit and produces a signal when the addition result reaches a set value.
- 16. A wave generator as claimed in claim 15, in which said microprogram memory provides a hold signal and said first control circuit is connected to suspend addition operation of said arithmetic circuit when said hold signal is outputted.
- 17. A wave generator as claimed in claim 12, which comprises: a rate count register for storing predetermined rate count data with respect to said segment when the wave-form calculation for each segment starts; a first control circuit for controlling said arithmetic circuit to subtract a predetermined value from the stored data value of said rate count register, and when the subtraction reaches a set value, produces a signal; an envelope count register for storing a predetermined envelope count data of said segments when the wave-form calculation for each segment starts, and a second control circuit which controls said arithmetic circuit for subtracting a predetermined value from the stored data value of said envelope count register whenever said signal is outputted by said first control circuit and produces a signal when a subtraction result reaches a set value.
- 18. A wave generator as claimed in claim 17, in which said first control circuit is connected to add a predetermined value to the content of said rate count register and to produce a signal when the addition result reaches a set value.
- 19. A wave generator as claimed in claim 18, which further comprises means to generate a hold signal and said first control circuit is connected to suspend addition operation thereof when said hold signal is generated.
- 20. A wave generator as claimed in claim 17, in which said second control circuit is connected to add a predetermined value to the content of said envelope count register and to produce a signal when the addition result reaches a set value.
- 21. A wave generator as claimed in claim 17, which further comprises means to generate a hold signal, and said first control circuit is connected to suspend subtraction operation thereof when said hold signal is generated.
- 22. A wave generator for an electronic musical instrument, comprising:
- a segment indicating signal generator for generating, one after another in sequence, a plurality of different numerical valued segment indicating signals, the segments being timewise divisions of an envelope wave to be generated;
- a variation rate generator for generating a plurality of different variation rate signals, each being a signal exhibiting a numerical value, said variation rate generator being connected to said segment indicating signal generator to selectively generate a variation rate signal from among said variation rate signals according to said segment indicating signals; and
- a calculation circuit including an arithmetic circuit and a register and connected to said variation rate generator, for sequentially producing, by calculation using each said numerical value as a calculation increment, sample values are after another which constitute an envelope wave having wave values varying at a rate determined by the selected one of said variation rate signals for each of said segments.
- 23. A wave generator as claimed in claim 22, which further comprises means for generating a decay instruction signal connected to said segment indicating signal generator, and when said decay instruction signal is delivered to said segment indicating signal generator, said segment indicating signal is changed to be representative of a segment corresponding to a decay state of said envelope wave.
- 24. A wave generator as claimed in claim 22, which further comprises means for setting time intervals for said segments to be selectively set.
- 25. A wave generator as claimed in claim 22, which further comprises:
- a value source generating an initial value of the envelope;
- a selector register for selectively storing said initial value of said envelope and an accumulation value of said envelope which are applied thereto;
- an accumulator for storing the accumulation value of said envelope; and
- an addition circuit in which an output of said accumulator and an envelope variation rate signal are subjected to addition to calculate a new accumulation value of said envelope, means applying said new accumulation value to said selector register, said selector register, accumulator and addition circuit being connected to said calculation circuit.
Priority Claims (4)
Number |
Date |
Country |
Kind |
51-158945 |
Dec 1976 |
JPX |
|
51-158946 |
Dec 1976 |
JPX |
|
51-158947 |
Dec 1976 |
JPX |
|
51-158949 |
Dec 1976 |
JPX |
|
Parent Case Info
This is a continuation of application Ser. No. 865,272, filed Dec. 28, 1977, now abandoned.
US Referenced Citations (4)
Continuations (1)
|
Number |
Date |
Country |
Parent |
865272 |
Dec 1977 |
|