Patent Publication Number: US-6218604-B1

Title: Tone generator with diversification of waveform using variable addressing

Description:
RELATED APPLICATION 
     This application is a divisional of application Ser. No. 09/232,348, filed Jan. 15, 1999, now issued as U.S. Pat. No. 5,942,708 on Aug. 24, 1999. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a tone generator, a waveform memory addressing method, and a machine readable medium suitable for use in generating tones in an electronic musical instrument or else. 
     2. Description of Related Art 
     A known sampler is constructed such that an analog tone signal is converted into a digital waveform sample composed of a series of digital values, then the same is stored in a waveform memory along a given range of addresses, and a desired music tone is reproduced based on the stored waveform sample. In such a sampler apparatus, a user specifies a read start address, a loop start address, and an end address of the waveform memory. When performance information is inputted, the waveform sample is read once from the read start address to the loop start address, followed by repeated reading of the waveform sample from the loop start address to the end address by the number of times corresponding to a duration of the music tone specified by performance information. Based on the waveform data thus read, the music tone is generated. 
     The above-mentioned read start address, loop start address, and end address may be changed to generate music tones of different variations based on one type of the waveform sample. However, to read waveform data of a different variation, the conventional sampler must set the addresses of the waveform data from a first step, making it impossible to generate music tones while changing their variations during the course of music performance. 
     SUMMARY OF THE INVENTION 
     It is therefore a first object of the present invention to provide a tone generator, a waveform memory addressing method, and a machine readable medium that are capable of generating as desired diverse variations of a music tone based on the same waveform sample. 
     It is a second object of the present invention to provide a tone generator, an addressing method, and a machine readable medium that are capable of setting two or more addresses to one type of a waveform sample by means of a user-friendly interface. 
     According to the invention, a tone generator apparatus comprises a waveform memory having addresses for storing a plurality of waveform samples, each waveform sample comprising a series of digital values located sequentially along the addresses, waveform selecting means for selecting the waveform samples stored in the waveform memory, an address memory for storing a set of start addresses in correspondence to each waveform sample, the start addresses specifying different addresses from which the same waveform sample is to be variably read out, address designating means for designating a default start address among the set of the start addresses to read out the waveform sample from the default start address, a set of controls manually operable to command generation of a musical tone, diversifying means for commanding whether or not to undergo diversification of the start address of the waveform sample, reading means operative when the diversification is not commanded for reading each waveform sample from the default address in response to operation of a corresponding control, and being operative when the diversification is commanded for reading the selected waveform sample from one start address selected from the set of the start addresses in correspondence to the operated control, and synthesizing means for synthesizing the musical tone according to the read waveform sample. 
     Preferably, the inventive tone generator apparatus further comprises a filter memory for storing a default filter parameter in correspondence to each waveform sample, and for storing a set of variational filter parameters, wherein the diversification means includes means for commanding whether or not to undergo diversification of a filtering process, and wherein the synthesizing means operates when the diversification of the filtering process is not commanded for undergoing the filtering process of the read waveform sample based on the default filter parameter, and operates when the diversification of the filtering process is commanded for applying the filtering process to the read waveform sample by using one of the variational filter parameters selected in correspondence to the operated one of the controls. 
     According to the invention, a method of determining a set of start addresses used for variably reading one waveform sample, comprises the steps of storing the waveform sample in a waveform memory, detecting a plurality of rising points involved in the waveform sample, quantizing a segment of the waveform sample around each rising point to evaluate a magnitude associated to each rising point, and sorting the detected rising points in terms of the magnitudes so as to select significant ones of the detected rising points to thereby determine the set of the start addresses. 
     According to the invention, a method of determining a set of start addresses used for variably reading one waveform sample in correspondence to a set of manual controls, comprises the steps of storing the waveform sample in a waveform memory along a range of addresses, sequentially reading the waveform sample form the range of the addresses to generate a musical tone, operating one of manual controls during the generation of the music tone, and capturing an instant address from the range in coincident with a timing of operating the manual control to thereby determine the start address in association with the operated manual control. 
     According to the invention, a machine readable medium is used in a music apparatus having a processor, a set of controls manually operable to input a performance event, and a waveform memory storing an original waveform sample composed of a series of digital values sequentially readable from a default start address. The medium contains program instructions executable by the processor for causing the music apparatus to perform a tone generating process in response to the performance event. The tone generating process comprises the steps of scanning the original waveform sample to determine a set of variational start addresses which are diverging from the default start address and which are allotted to corresponding ones of the controls, detecting an operated control among the plurality of the controls, specifying one of the variational start addresses corresponding to the operated control upon detection thereof, reading the original waveform sample from the specified variational start address to provide a variational waveform sample which is diversified from the original waveform sample uniquely to the specified variational start address, and synthesizing a musical tone unique to the operated control in accordance with the provided variational waveform sample and in response to the performance event. 
     Specifically, in the machine readable medium, the step of scanning comprises locating a plurality of rising points involved in the series of the digital values of the original waveform sample, quantizing a segment of the digital values around each rising point to evaluate a magnitude associated to each rising point, sorting the located rising points in terms of the magnitudes so as to select significant ones of the rising points to thereby determine the set of the variational start addresses. 
     Specifically, in the machine readable medium, the step of scanning comprises provisionally reading the original waveform sample while incrementing addresses of the digital values of the original waveform sample to generate a musical tone, detecting a timing when one of the controls is operated during generation of the musical tone, and capturing an instant address coincident with the detected timing to determine the variational start address to be allotted to the operated control. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     These and other objects of the invention will be seen by reference to the description, taken in connection with the accompanying drawings, in which: 
     FIG. 1 is a block diagram illustrating an electronic musical instrument practiced as one preferred embodiment of the invention; 
     FIG.  2 A and FIG. 2B illustrate a panel constitution of the preferred embodiment of FIG. 1; 
     FIG. 3 is a flowchart indicative of a main routine of the preferred embodiment of FIG. 1; 
     FIG. 4 is a flowchart indicative of a mode switch event processing subroutine; 
     FIG. 5 is a flowchart indicative of a pad on-event processing subroutine; 
     FIG.  6 A and FIGS.  6 B 1  through  6 B 4  are diagrams illustrating data constitutions of the preferred embodiment of FIG. 1; 
     FIG. 7 is a flowchart indicative of an auto switch event processing subroutine; 
     FIG. 8 is a flowchart indicative of an auto execution subroutine; 
     FIG. 9 is a flowchart indicative of a manual switch event processing; 
     FIG. 10 is a flowchart indicative of another pad on-event processing subroutine; 
     FIG. 11 is a diagram illustrating a pad assignment screen in a panel indicator of the preferred embodiment of FIG. 1; 
     FIG. 12 is a diagram illustrating an address data editing screen in the above-mentioned panel indicator; 
     FIG. 13 is a diagram illustrating an auto setting screen in the above-mentioned panel indicator; 
     FIG. 14 is a diagram illustrating an address data manual setting screen in the above-mentioned panel indicator; and 
     FIG. 15 is a waveform diagram illustrating an algorithm of the above-mentioned auto execution subroutine. 
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     This invention will be described in further detail by way of example with reference to the accompanying drawings. 
     1. Constitution of the Preferred Embodiment 
     Now, referring to FIG. 1, a constitution of an electronic musical instrument practiced as one preferred embodiment of the invention will be described. In the figure, reference numeral  1  denotes a switch panel arranged with various controls to be operated by a user. Reference numeral  2  denotes a panel indicator providing various pieces of information to the user. External views of the switch panel  1  and the panel indicator  2  are illustrated in FIGS. 2A and 2B. In the figure, the switch panel  1  includes a mode switch  1   a , a numeric key array  1   b , an enter key  1   c , an exit key  1   d , an increment/YES key  1   e , a decrement/NO key  1   f , a cursor key group  1   g , and a multipurpose key  1   h.    
     Referring to FIG. 1 again, reference numeral  3  denotes an external waveform input terminal through which a tone signal is inputted from an external microphone for example. Reference numeral  4  denotes an analog-to-digital (A/D) converter for sampling the inputted tone signal into a digital signal. Reference numeral  5  denotes a waveform memory for storing the digital signal in the form of a waveform sample composed of a series of digital values. Reference numeral  6  denotes an access manager for executing memory access control such that read and write accesses to the waveform memory do not conflict with each other. 
     Reference numeral  9  denotes a write circuit for writing the digital signal supplied from the A/D converter  4  into the waveform memory  5  through the access manager  6 . Reference numeral  10  denotes a tone generator that reads a waveform sample from the waveform memory  5  through the access manager  6 , and imparts an envelope to the waveform sample to generate a tone signal. It should be noted that the tone generator  10  can simultaneously generate tone signals through a plurality of sound channels by time-division processing. Reference numeral  8  denotes a digital-to-analog (D/A) converter for converting the digital tone signal supplied from the tone generator  10  into an analog tone signal. Reference numeral  7  denotes a sound system that amplifies the analog tone signal supplied from the D/A converter  8  and sounds the amplified music tone. 
     Reference numeral  11  denotes a MIDI (Musical Instrument Digital Interface) for transferring MIDI signals with an external MIDI equipment. Reference numeral  12  denotes manual controls having a set of pads  12   a  through  12   h  to be operated by the user for music performance. Reference numeral  14  denotes a CPU (Central Processing Unit) that controls the various components of this electronic musical instrument through a bus line  17  as instructed by a control program stored in a ROM (Read Only Memory)  15 . Reference numeral  16  denotes a RAM (Random Access Memory) for storing various pieces of data for use by the above-mentioned control program. Reference numeral  13  denotes a timer for causing a timer interrupt to the CPU  14  every predetermined time. 
     2. Data Structures of the Preferred Embodiment 
     2.1 Waveform Data 
     The following describes various data structures for use in the above-mentioned preferred embodiment with reference to FIGS.  6 A and  6 B 1  through  6 B 4 . FIG. 6A shows a plurality of waveform samples stored in the waveform memory  5 . As shown, plural waveform samples W 1 , W 2 , and so on are stored in the waveform memory. 
     2.2 Address Data 
     The RAM  16  stores various pieces of data shown in FIGS.  6 B 1  through  6 B 4 . Address data AD 1 , AD 2 , and so on shown in FIG.  6 B 1  correspond to the above-mentioned waveform sample W 1 , W 2 , and so on, in one-to-one relation. As shown, one piece of address data AD has waveform specification data, eight types of address variation data AV 1  through AV 8 , and read mode indication data. 
     One piece of address variation data AV has a read start address, a loop start address, and an end address for the corresponding waveform sample. The waveform specification data specifies one of the waveform samples W 1 , W 2 , and so on. 
     The read start address denotes a start address from which the waveform sample is read. The loop start address denotes a start address at which a loop for repeatedly reading the waveform sample begins. The end address denotes an address at which the reading of the waveform sample or the loop reading thereof ends. The read mode indication data indicates whether the waveform sample is to be read in a loop manner or a reverse manner (namely reading a waveform sample reversibly from the end to the top). 
     2.3 Tone Control Data 
     The following describes a structure of tone control data GD 1 , GD 2 , and so on with reference to FIG.  6 B 2 . One piece of tone control data GD includes tone name data, AD specification data, AV specification data, pitch data, filter data, EG data, effect data, and other data. The tone name data is character data such as “cymbal 1” and “cymbal 2”. The AD specification data specifies one of the above-mentioned address data AD 1 , AD 2 , and so on. The AV specification data specifies one of the variation data AV 1  through AV 8  included in the specified address data AD. The pitch data specifies a read rate of the waveform sample W 1 , W 2 , and so on. The filter data specifies the details of filtering to be executed on the read waveform sample. In the above-mentioned embodiment, a pair of parameters for controlling the cutoff frequency and for controlling resonance of filtering are stored as filter data. The EG data specifies an envelope to be applied to a filtered tone signal. The effect data specifies an effect such as reverberation to be applied to the tone signal provided with the envelope. 
     2.4 Assignment Table 
     The above-mentioned embodiment has two operation modes. One is the individual assignment mode, in which the pads  12   a  through  12   h  are assigned with different pieces of tone control data GD 1 , GD 2 , and so on. FIG.  6 B 3  shows an assignment table indicative of the assignment state, in which eight pieces of assignment data PA 1  through PA 8  are stored in correspondence with the number of pads  12   a  through  12   h . Each assignment data PA specifies one of the tone control data GD 1 , GD 2 , and so on, thereby linking the tone control data GD 1 , GD 2 , and so on to the pads  12   a  through  12   h.    
     2.5 Diversification Data Set 
     The other operation mode is the diversification mode, in which the common tone control data is assigned to each of the pads  12   a  through  12   h . However, one or more of diversification processing operations including address diversification, pitch diversification, and filter diversification is executed on each of the pads  12   a  through  12   h . These diversification processing operations generate different variations of the tone signal for the pads  12   a  through  12   h.    
     In the address diversification, address variation data AV 1  through AV 8  are assigned to the pads. In the pitch diversification, a different pitch data is assigned to each of the pads. Namely, a predetermined pitch is assigned to the first pad  12   a  and pitches going higher in increment of a semitone scale are assigned to the subsequent pads  12   b  through  12   h.    
     In the filter diversification, a different filter characteristic is associated to each of the pads. In the above-mentioned embodiment, eight pieces of filter data each composed of a pair of typical parameter values of the cutoff frequency and the resonance, namely (low, small), (low, large), (medium, small), (medium, medium), (medium, large), (high, small), (high, medium), and (high large), are assigned sequentially to the pads  12   a  through  12   h.    
     FIG.  6 B 4  shows a diversification data set for specifying a diversification state in the diversification mode. As shown, assignment data TA specifies one of the above-mentioned tone control data GD 1 , GD 2 , and so on. Diversification data A is a binary variable for specifying whether the address diversification is to be executed or not. Diversification data P is a binary variable for specifying whether the pitch diversification is to be executed or not. Diversification data F is a binary variable for specifying whether the filter diversification is to be executed or not. 
     According to the invention, the electronic musical instrument is constructed in the form of a tone generator apparatus having the waveform memory  5 . The waveform memory  5  has addresses for storing the plurality of waveform samples W 1 , W 2 , and so on. Each waveform sample is comprised of a series of digital values located sequentially along the addresses. Waveform selecting means is formed by means of the CPU  14  for selecting the waveform samples stored in the waveform memory  5 . An address memory is formed in the RAM  16  for storing a set of start addresses AV 1  through AV 8  in correspondence to each waveform sample, The start addresses specify different addresses from which the same waveform sample is to be variably read out. Address designating means is implemented by means of the CPU  14  for designating a default start address among the set of the start addresses AV 1  through AV 8  to read out the waveform sample from the default start address. The set of controls  12  is manually operable to command generation of a musical tone. Diversifying means is implemented by means of the CPU  14  for commanding whether or not to undergo diversification of the start address of the waveform sample. Reading means is provided in the form of the tone generator  10  operative when the diversification is not commanded for reading each waveform sample from the default address in response to operation of a corresponding control, and operative when the diversification is commanded for reading the selected waveform sample from one start address selected from the set of the start addresses AV 1  through AV 8  in correspondence to the operated control. Synthesizing means is also composed of the tone generator  10  for synthesizing the musical tone according to the read waveform sample. 
     Preferably, the inventive tone generator apparatus further includes the filter memory provided in the RAM  16  for storing a default filter parameter in correspondence to each waveform sample, and for storing a set of variational filter parameters. The diversification means includes means for commanding whether or not to undergo diversification of the filtering process. The synthesizing means operates when the diversification of the filtering process is not commanded for undergoing the filtering process of the read waveform sample based on the default filter parameter, and operates when the diversification of the filtering process is commanded for applying the filtering process to the read waveform sample by using one of the variational filter parameters selected in correspondence to the operated one of the controls. 
     3. Operations of the Preferred Embodiment 
     3.1 Overall Operation 
     When the electronic musical instrument practiced as the preferred embodiment of the invention is powered on, a program shown in FIG. 3 starts. First, step SP 1  initializes the. electronic musical instrument in a predetermined manner. Step SP 2  checks for a trigger (such as a performance event inputted by the manual controls  12 ). Step SP 3  determines whether a trigger has been found or not. If a trigger is found, then, step SP 4  determines the process corresponding to the type of the detected trigger. 
     To be more specific, if a MIDI signal has been inputted through the MIDI interface  11 , control is passed to step SP 5 . If a performance event of the manual controls  12  has been detected, control is passed to step SP 6 . If an event in the switch panel  1  has been detected, control is passed to step SP 7 . If other triggers have been detected, control is passed to step SP 8 . When the process corresponding to the detected trigger has ended in these steps, control is passed back to step SP 2 . The following describes in detail the process to be executed in correspondence to each of the above-mentioned triggers. 
     3.2 Mode Switch Event 
     When an event of the mode switch  1   a  has been detected, a mode switch event processing subroutine shown in FIG. 4 is called. In step SP 11 , the value (“1” or “0”) of a mode flag MOD is inverted. The mode flag MOD indicates an operation mode, value “0” denoting the individual assignment mode and value “1” denoting the diversification mode. 
     3.3 Pad Assignment Processing 
     When the user executes a predetermined operation, a pad assignment screen is displayed on the panel indicator  2  shown in FIG.  11 . In the figure, reference numeral  110   a  denotes an individual assignment mode display block for indicating the assignment state when the individual assignment mode is “0”. This block has eight boxes corresponding to the pads  12   a  through  12   h . A number display block  111  at the left end of each box displays a number 1 to 8 for identifying each of the pads  12   a  through  12   h . To the right of the number display block  111 , a tone number (a serial number of one of the tone control data GD 1 , GD 2 , and so on corresponding to the assignment data PA 1  through PA 8 ) and a tone name (the content of the tone name data in the corresponding tone control data GD) are displayed. 
     Reference numeral  110   b  denotes a diversification mode display block indicative of the assignment state when the diversification mode is set to “1”. Reference numeral  113  in the diversification mode display block  110   b  denotes a number display block. Mark “ALL” is displayed in the number display block because the same tone control data is assigned to all pads. A tone name display block  114  shows a tone name associated with the tone control data GD concerned. 
     Reference numeral  115  denotes an address diversification on/off display block. When the diversification data A is “1”, mark “ON” is displayed. When the diversification data A is “0”, mark “OFF” is displayed. A pitch diversification on/off display block  116  displays “ON” or “OFF” depending on the value of the diversification data P. A filter diversification on/off display block  117  displays “ON” or “OFF” depending on the value of the diversification data F. 
     Referring to FIG. 11, a hatched area denotes an input cursor. Operating the cursor key  1   g , the user can move the input cursor horizontally or vertically, updating from time to time the data pointed by the cursor. To be more specific, in the address diversification on/off display block  115 , the pitch diversification on/off display block  116 , and the filter diversification on/off display block  117 , mark “ON” is set when the increment/YES key is pressed, or mark “OFF” is set when the decrement/NO key  1   f  is set. The setting result is reflected on the data in the RAM  16  and is displayed on the screen. 
     In the tone name display blocks  112  and  114 , when the increment/YES key  1   e  or the decrement/NO key  1   f  is pressed, the tone number in that position is incremented or decremented. Consequently, the corresponding assignment data PA or TA is updated. At the same time, the corresponding tone name is displayed based on one of the tone control data GD 1 , GD 2 , and so on specified by the updated assignment data PA or TA. 
     When a tone number is inputted through the numeric key matrix  1   b  and then the enter key  1   c  is operated, the content of the assignment data PA or TA is updated according to the inputted tone number. The updated tone number and the corresponding tone name are displayed in the tone name display blocks  112  and  114  pointed by the cursor. It should be noted that display data might be edited by various screens to be described later. When the data has been edited as required, pressing the exit key  1   d  returns control to the main routine. 
     3.4 Pad Control On-event 
     When an event of one of the pads  12   a  through  12   h  is detected in the main routine, control is passed to step SP 6 . Step SP 6  determines whether the detected event is an on-event or an off-event. If the detected event is found an on-event, the pad control on-event subroutine shown in FIG. 5 starts. 
     Referring to FIG. 5, the pad number is substituted into a variable PN (pad number) in step SP 21 . Next, in step SP 22 , a new sound channel in the tone generator  10  is assigned and the number of the assigned channel is substituted into variable i. Then, step SP 23  determines whether the mode flag MOD is the diversification mode “1” or not. 
     If the decision is YES, control is passed to step SP 25 . In the diversification mode, one piece of tone control data GD indicated by the assignment data TA is assigned to all pads. One piece of tone control data GD is manipulated according to various items of the diversification data set and according to the pad number PN as follows. 
     First, if the diversification data A is found “1”, the address variation data AV corresponding to the pad number PN is selected from the eight pieces of address variation data AV contained in the address data AD indicated by the AD specification data of the tone control data GD. If the diversification data A is found “0”, a default address variation data AV specified by the AV specification data of the tone control data GD is selected from the eight pieces of address variation data of the address data AD. 
     Next, if the diversification data P in the diversification data set is found “1”, the pitch data corresponding to the pad number PN is selected from the above-mentioned semitone scale. If the diversification data P is found “0”, the pith data set in the assigned tone control data GD is selected. Then, if the diversification data F is found “1”, the filter data corresponding to the pad number PN is selected from the eight pieces of filter data composed of the above-mentioned typical parameter values. If the diversification data F is found “0”, the filter data set in the assigned tone control data GD is selected. 
     The contents of the address variation data AV (namely, read start address, loop start address, and end address), the pitch data, and the filter data thus selected are set to a free channel (channel number i) of the tone generator  10  along with other data in the assigned tone control data GD. Then, in step SP 26 , a note-on signal associated with channel number i is supplied to the tone generator  10 . When these processing operations come to an end, control is returned to the main routine. 
     On the other hand, in each sound channel of the tone generator  10 , the waveform memory  5  is read at the rate specified by the pitch data along the address range specified by the address variation data AV. The read waveform sample is filtered based on the filter data. Then, a temporal variation in volume is imparted to the filtered data by a volume envelope based on EG data. The waveform sample thus shaped by each sound channel is imparted with an effect based on effect data, and mixed to the waveform samples of other sound channels. The mixed waveform samples are then converted by the D/A converter  8  into an analog signal to be sounded through the sound system  7 . 
     If the mode flag MOD is “0”, the decision is “NO” in step SP 23 , upon which control is passed to step SP 24 . In step SP 24 , a new sound channel (channel number i) in the tone generator  10  is assigned. The assignment data PA corresponding to the pad number PN is read from the eight pieces of assignment data PA stored in the assignment table. Channel number i of the tone generator  10  is set based on the tone control data GD specified by this assignment data PA. 
     Namely, the address data AD is determined by the AD specification data in the tone control data GD (consequently, waveform sample W is determined). Based on the AV specification data, default one of the eight address variation data AV 1  through AV 8  in the address data AD is selected. Then, the read rate of the waveform memory  5  and the parameters used by the filtering process in the tone generator  10  are determined based on the pitch data and filter data contained in the tone control data GD. The subsequent processing is the same as that executed when the mode flag MOD is diversification mode “1”. 
     3.5 Pad Control Off-event 
     When an event of any of the pads  12   a  through  12   h  is detected in the main routine, control is passed to step SP 6  as described above. If the detected event is found an off-event, a note-off signal associated with the channel number corresponding to the pad of that off-event is supplied to the tone generator  10 . When this processing comes to an end, control is returned to step SP 2  of the main routine. On the other hand, in the tone generator  10 , after receiving the note-off signal, the volume envelope of that channel shifts to a release state, thereby releasing the channel after the volume has damped sufficiently. 
     3.6 MIDI Processing 
     If the input of a MIDI signal is detected in the MIDI interface  11 , control is passed to step SP 5 , in which sounding process for this MIDI signal is executed. Namely, a MIDI key-on signal is handled in the same manner as the on-event of the manual pad in the individual assignment mode, and the MIDI key-off signal is handled in the same manner as the off-event of the manual pad. Therefore, a tone signal similar to that generated by the pad operation is generated based on an externally supplied MIDI signal. 
     The inventive electronic music instrument or music apparatus is comprised of a set of the controls  12  manually operable to input a performance event, the waveform memory  5  storing an original waveform sample W composed of a series of digital values sequentially readable from a default start address, and the processor or CPU  14  for executing the tone generating process in response to the performance event. The tone generating process is executed sequentially by the steps of scanning the original waveform sample to determine the set of variational start addresses AV 1  through AV 8  which are diverging from the default start address and which are allotted to corresponding ones of the controls  12 , detecting an operated control among the plurality of the controls  12   a  to  12   h , specifying one of the variational start addresses AV 1  through AV 8  corresponding to the operated control upon detection thereof, reading the original waveform sample W from the specified variational start address to provide a variational waveform sample which is diversified from the original waveform sample uniquely to the specified variational start address, and synthesizing a musical tone unique to the operated control in accordance with the provided variational waveform sample and in response to the performance event. 
     Practically, the waveform memory  5  stores the plurality of original waveform samples W 1  to W 8  which represent different timbres of the music tone. The tone generating process further includes the step of selecting one of the original waveform samples W 1  to W 8  subjected to the scanning when diversification of the original waveform sample is requested. The waveform memory  5  stores the plurality of the original waveform samples W 1  to W 8  which are allotted to corresponding ones  12   a  to  12   h  of the controls  12 . The tone generating process further includes the step of reading one original waveform sample as it is from the default start address in correspondence to the operated control when the diversification of the original waveform sample in not requested. Practically, the music apparatus has the filter memory for storing a set of variational filter parameters which are allotted to corresponding ones of the controls and which are selectively usable for filtering of waveform samples. The step of synthesizing includes filtering the provided variational waveform sample by using one of the variational filter parameters selected from the filter memory in correspondence to the operated control to thereby modify the music tone. 
     3.7 Address Data Editing Processing 
     When the user operates the switch panel  1 , control is passed to step SP 7  of the main routine, in which a program corresponding to the operation starts. The user can issue an instruction for address data editing by executing a predetermined operation. When such an instruction is inputted, an address data editing screen shown in FIG. 12 is displayed on the panel indicator  2 . 
     In FIG. 12, reference numeral  121  denotes a waveform sample identification block, in which a waveform sample number (one of the serial numbers of waveform sample W 1 , W 2 , and so on and equivalent to one of the serial numbers of address data AD 1 , AD 2 , and so on) is displayed. Reference numeral  122  denotes a loop on/off display block for displaying whether loop reading is to be executed or not. Reference numeral  123  denotes a reverse on/off display block for displaying whether reverse reading is to be executed or not. The contents of these display blocks  122  and  123  are determined by the read mode indication data of the address data AD corresponding to the waveform sample number indicated in the waveform sample identification block  121 . 
     Reference numeral  124  denotes an address variation display block for specifying which of the eight pieces of address variation data AV 1 , through AV 8  in the address data AD is selected. Reference numeral  125  denotes a read start address display block for displaying the read start address associated with the selected address variation data AV. Reference numeral  126  denotes a loop start address display block for displaying the loop start address associated with the selected address variation data AV. Reference numeral  127  denotes an end address display block for displaying the end address associated with the selected address variation data AV. 
     Reference numeral  128  denotes an address location display block for displaying a portion from the read start address to the end address along the address range of the selected waveform sample. In the screen shown in FIG. 12, the input cursor is positioned to the loop start address display block  126 . Like the situation shown in FIG. 11, the user can designate, by operating the cursor key  1   g , the loop on/off display block  122 , the read start address display block  125 , the loop start address display block  126 , or the end address display block  127 . By operating the numeric key matrix  1   b  and the increment/YES key  1   e  for example, the user can edit the data corresponding to the address data AD indicated by the waveform number in the waveform sample identification block  121 . 
     When any of the pads is operated, the address variation data AV corresponding to the pad number PN of the operated pad is selected. The number of the selected address variation data is displayed in the address variation display block  124 . The contents of the read start address display block  125 , the loop start address display block  126 , and the end address display block  127  are updated to those specified by the selected address variation data AV. At the same time, the tone generation process based on the selected address variation data AV may be executed in the tone generator  10 . 
     Reference numeral  120   a  denotes an auto switch identification block. Reference numeral  120   b  denotes a manual switch identification block. These identification blocks display that the multipurpose keys  1   h  located in the proximity of these blocks function as an automatic switch and a manual switch, respectively. When the user presses the automatic switch or the manual switch, corresponding process is executed for scanning the waveform to determine variational start addresdses. 
     3.8 Auto Switch On-event Processing 
     When the user turns on the auto switch on the address data editing screen shown in FIG. 12, the auto switch event processing shown in FIG. 7 is executed. In FIG. 7, when control is passed to step SP 31 , an auto setting screen shown in FIG. 13 is displayed. 
     Referring to FIG. 13, reference numeral  131  denotes a waveform sample identification block, in which a selected waveform sample number is displayed like the above-mentioned waveform sample identification block  121 . Reference numeral  132  denotes a rising threshold display block for displaying a threshold SENSE_LEVEL for determination of the rising edge of waveform sample. Reference numeral  133  denotes an offset display block for displaying an offset value OFFSET used for setting the read start address with respect to the rising point at which the waveform sample level exceeds the threshold SENSE_LEVEL. Reference numeral  134  denotes an execution switch identification block for displaying that the multipurpose key  1   h  located in the proximity is assigned to the execution switch. 
     Referring to FIG. 7 again, in steps SP 32  and SP 33 , the processing is kept in the standby state until the user executes an operation. Then, when an operation executed by the user is detected, control is passed to step SP 34 , in which processing corresponding to the detected operation is determined. The following describes in detail each processing determined in step SP 34 . 
     3.8.1 Setting Input 
     If an event of the switch panel  1  is detected in step SP 32 , control is passed through step SP 33  and step SP 34  to step SP 35 , in which the processing corresponding to the key that causes the detected event is executed. To be more specific, if an event of the cursor key  1   g  is detected, the input cursor is moved to the waveform dada identification block  131 , the rising threshold display block  132 , or the offset display block  133 . 
     If the numeric key array  1   b  is operated, a corresponding value is set directly at the current cursor position. If the increment/YES key  1   e  or the decrement/NO key  1   f  is operated, the value at the current cursor position is incremented or decremented, respectively. Namely, in the above-mentioned embodiment, the threshold SENSE_LEVEL and the offset value OFFSET can be set. 
     3.8.2 Pad Operation 
     If an event of any of the pads  12   a  through  12   h  is detected, control is passed to step SP 36 . In this step, the processing generally similar to that described in step SP 6  is executed on the on-event and off-event of the pad. However, the processing of step SP 36  is different from that of step SP 6  in that the mode flag MOD is regarded as diversification mode “1”, the diversification data A is regarded as “1”, and the diversification data P and the diversification data F are regarded as “0”. This difference is to allow the user to make distinction between the waveform differences corresponding to the pads  12   a  through  12   h.    
     3.8.3 Execution Instruction 
     If an event of the execution switch is detected, control is passed to step SP 37 . In this step, the auto execution subroutine shown in FIG. 8 is called. In FIG. 8, when control is passed to step SP 41 , the selected waveform sample composed of a series of digital values is divided into segments of a predetermined length (hereinafter, referred to as “frame”) and the power of each frame is computed. Next, when control is passed to step SP 42 , the selected waveform sample is scanned for detecting rising frames. 
     In the above-mentioned embodiment, a point at which a waveform sample value has risen over the threshold SENSE_LEVEL is called a rising point. As a rule, a frame including this rising point is called a rising frame. Likewise, a point at which a waveform sample value has fallen below a threshold RELEASE_LEVEL is called a falling point. As a rule, a frame including this falling point is called a falling frame. 
     It should be noted that the number of frames from a rising frame to a subsequent falling frame inclusive must exceed a predetermined value (for example, 3). This is the first condition. Unless the first condition is satisfied, both frames are regarded as neither a rising frame nor a falling frame. This determination is made for excluding a very short length of waveform sampling. 
     Further, the number of frames from a falling frame to a subsequent rising frame inclusive must exceed another predetermined value (for example, 2). This is the second condition. Unless the second condition is satisfied, both frames are regarded as neither a falling frame nor a rising frame. This is because, if two waveform segments with a very short interval exist, it is rational in audibility to regard both waveform segments as one waveform. 
     This will be described in detail by using an example with reference to FIG.  15 . At frame number  4  in FIG. 15, the waveform sample level is rising over the threshold SENSE_LEVEL. At frame number  8 , the waveform sample level is falling below the threshold RELEASE_LEVEL. Because the difference between these frame numbers is four, frame number  4  satisfies the above-mentioned first condition. In addition, because the rising point of frame number  4  is the first rising point, the above-mentioned secondd condition is not considered. Consequently, this frame number  4  represents a rising frame. 
     After falling to frame number  8 , the waveform sample level rises again at frame number  9 . Because the difference between these frame numbers is one, the above-mentioned first condition is not satisfied, these frame numbers are not a falling frame and a rising frame. Then, at frame number  13 , the waveform sample level falls and, at frame number  20 , the waveform sample level rises. The difference between frame number  4  and frame number  13  is nine, and the difference between frame number  13  and frame number  20  is seven. Therefore, frame number  13  satisfies the first and second conditions. Consequently, frame number  13  represents a falling frame. 
     Next, after rising at frame number  20 , the waveform sample level does not fall at least at frame number  22 , so that the difference with a frame including the next falling point is always three or higher. Therefore, frame number  20  satisfies both the first and second conditions, representing a rising frame. Thus, the example shown in FIG. 15 indicates that frame numbers  4  and  20  represent rising frames and frame number  13  represents a falling frame. 
     Subsequently, plural sections from the rising frame to the falling frame are determined by executing the scan processing similar to the above-described scan processing on the waveform sample. Then, referring to FIG. 8 again, the powers (or the peak values) of the rising frames are compared with each other in step SP 43 . In step SP 44 , for the sections having top eight powers, the offset value OFFSET is subtracted from each rising point (or the start address of the rising frame). The subtraction results are sequentially written to the start addresses of the address variation data AV 1  through AV 8 . When the above-mentioned processing comes to an end, control is returned to the auto switch event shown in FIG.  7 . 
     3.8.4 End Instruction 
     When an event of the exit key  1   d  is detected, control is passed to step SP 38 . In this step, the screen of the panel indicator  2  is returned to the screen displayed before the execution of the auto switch event processing (in this case, the address data editing screen shown in FIG.  12 ), upon which this subroutine comes to an end. 
     On the address data edit screen displayed again, the content of the read start address display block  125  is updated according to the contents of the updated address variation data AV 1  through AV 8 . Thus, when the user presses the auto switch on the address data editing screen, the read start addresses in the address variation data AV 1  through AV 8  are automatically set according to the contents of the selected waveform sample. Therefore, the user can set the read start addresses through a very simple operation. Moreover, operating any of the pads  12   a  through  12   h , the user can auditorily check the tone quality of a waveform that starts from the read start address. 
     The above-mentioned inventive method determines a set of start addresses used for variably reading one waveform sample. The inventive method is executed by the steps of storing the waveform sample in the waveform memory, detecting a plurality of rising points involved in the waveform sample, quantizing a segment or frame of the waveform sample around each rising point to evaluate a magnitude associated to each rising point, and sorting the detected rising points in terms of the magnitudes so as to select significant ones of the detected rising points to thereby determine the set of the start addresses. 
     3.9 Manual Switch Event Processing 
     When the user presses the manual switch on the address data editing screen shown in FIG. 12, the manual switch event processing shown in FIG. 9 starts. In step SP 51  shown in FIG. 9, an address data manual setting screen shown in FIG. 14 is displayed. 
     Referring to FIG. 14, reference numeral  141  denotes a waveform sample identification block, in which a waveform sample number is displayed like the above-mentioned waveform sample identification blocks  121  and  131 . Reference numeral  142  denotes a last hit pad display block, in which a pad number PN of a pad hit last is displayed. Reference numeral  143  denotes a reading point display block, in which the current reading position in the selected waveform sample W is displayed. 
     Next, in step SP 52 , reproduction in loop of the entire length of the specified waveform sample W starts. At the same time, the position of the read address during the loop reproduction is displayed in a banner-like manner in the reading point block  143 . Then, in steps SP 53  and SP 54 , the processing is kept in a standby state until another operation is detected. When another operation is detected, control is passed to step SP 55 , in which the processing corresponding to the type of the trigger is selected. 
     3.9.1 Pad On-event 
     When an on-event of any of the pads  12   a  through  12   h  is detected in step SP 53 , control is passed to step SP 56 . In this step, the pad on-event processing subroutine shown in FIG. 10 starts. Referring to FIG. 10, the number of the operated pad is substituted into a variable PN in step SP 61 . Next, in step SP 62 , the current or instant read address of the waveform sample W is captured as the read start address of the address variation data AV corresponding to the pad number PN. 
     Then, in step SP 63 , this captured read start address is indicated with a black arrow below the reading point display block  143 . At the same time, the display of the last hit pad display block  142  is made by the pad number PN of the operated one of the pads  12   a  through  12   h . When the above-mentioned processing comes to an end, control is returned to the routine shown in FIG.  9 . 
     3.9.2 End Instruction 
     When an event of the exit key  1   d  on the switch panel  1  is detected, control is passed to step SP 58 . In this step, the loop reproduction of the waveform sample W is stopped. Next, in step SP 59 , the display of the panel indicator  2  is returned to the screen displayed before the execution of the manual switch event processing (in this case, the address data editing screen shown in FIG.  12 ), upon which this subroutine comes to an end. 
     Thus, when the user presses the manual switch, the loop reproduction is executed on the entire waveform sample W. Therefore, the user can easily set the read start address by operating the pad at a timing when a desired tone is outputted while listening to the loop-reproduced tone. The read start addresses set by the auto switch on-event and the manual switch event processing may be further modified in-the address data editing screen shown in FIG. 12 that is displayed again after execution of any of these processing operations. 
     The inventive method manually determines a set of start addresses used for variably reading one waveform sample in correspondence to a set of manual controls. The inventive method is carried out by the steps of storing the waveform sample in the waveform memory along a range of addresses, sequentially reading the waveform sample form the range of the addresses to generate a musical tone, operating one of manual controls during the generation of the music tone, and capturing an instant address from the range in coincident with a timing of operating the manual control to thereby determine the start address in association with the operated manual control. 
     4. Modifications 
     The present invention is not limited to the above-mentioned embodiment. For example, the following variations are possible. 
     4.1 In the above-mentioned embodiment, eight pieces of address variation data AV contained in one data set AD are provided in correspondence to each of waveform samples W. It will be apparent that, by linking plural address data sets AD to one piece of waveform sample W, the variation associated with that waveform sample W can be extended further. In this case, an arrangement may be made in which address data AD to be used for each piece of waveform sample W may be selected beforehand. 
     4.2 In the above-mentioned embodiment, the pitch diversification is executed by semitone scale. It will be apparent that the pitch diversification may also be executed by whole tone scale or natural scale. 
     4.3 In the above-mentioned embodiment, the filter diversification is executed by a set of eight filter characteristics. It will be apparent that plural sets of eight filter characteristics may be prepared. The filter diversification may be executed by one set selected from the plural sets of filter characteristics. Moreover, the eight characteristics to be developed may be edited individually. 
     4.4 In the above-mentioned embodiment, a point before a rising point by an offset value OFFSET is set to the read start address in the auto switch event processing shown in FIG.  9 . It will be apparent that a zero-cross address before a rising point or a point at which the waveform sample level reaches a predetermined threshold S (S being for start address detection) immediately before the rising point may be set to the read start address. 
     4.5 In the above-mentioned embodiment, the eight read start addresses are set in the order of the higher powers of rising frames in the auto switch event processing shown in FIG.  9 . It will be apparent that the read start address may be set by the eight read start addresses of the next higher powers according to the re-operation of the execution key after the setting of the eight read start addresses in the above-mentioned embodiment. Alternatively, eight read start addresses may be set from the beginning of the waveform sample in a time sequential manner. The value for use in comparison may be other than the power of a rising frame. For example, a sum of powers of all frames from the rising frame to the falling frame may be used. The power of each frame may be computed in terms of the effective power, mean level, peak level, or volume envelope of the waveform sample of each frame or any combination thereof. 
     4.6 In the above-mentioned embodiment, the cutoff frequency and resonance of a tone signal are controlled by filter data. It will be apparent that the cutoff frequency and resonance may also be controlled by other data known as tone filtering. 
     4.7 The above-mentioned embodiment is constituted by an electronic musical instrument. It will be apparent that the capabilities provided by the electronic musical instrument may be implemented by a general-purpose personal computer having a disk drive  18  (FIG.  1 ). In this case, the above-mentioned control program may be provided in any of various machine readable media M (FIG. 1) such as a CD-ROM, a magnetic disk, a magneto-optical disk, and a magnetic tape. The machine readable medium M is used in the music apparatus having the CPU  14 , the set of controls  12  manually operable to input a performance event, and the waveform memory  5  storing an original waveform sample W composed of a series of digital values sequentially readable from a default start address. The medium M contains program instructions executable by the CPU  14  for causing the music apparatus to perform a tone generating process in response to the performance event by the steps of scanning the original waveform sample to determine a set of variational start addresses which are diverging from the default start address and which are allotted to corresponding ones of the controls  12 , detecting an operated control among the plurality of the controls  12 , specifying one of the variational start addresses corresponding to the operated control upon detection thereof, reading the original waveform sample from the specified variational start address to provide a variational waveform sample which is diversified from the original waveform sample uniquely to the specified variational start address, and synthesizing a musical tone unique to the operated control in accordance with the provided variational waveform sample and in response to the performance event. 
     Specifically, the step of scanning comprises locating a plurality of rising points involved in the series of the digital values of the original waveform sample, quantizing a segment of the digital values around each rising point to evaluate a magnitude associated to each rising point, sorting the located rising points in terms of the magnitudes so as to select significant ones of the rising points to thereby determine the set of the variational start addresses. Alternatively, the step of scanning comprises provisionally reading the original waveform sample while incrementing addresses of the digital values of the original waveform sample to generate a musical tone, detecting a timing when one of the controls is operated during generation of the musical tone, and capturing an instant address coincident with the detected timing to determine the variational start address to be allotted to the operated control. 
     As described and according to the invention, plural read start addresses can be set to one type of waveform sample. This novel constitution allows the user to generate various desired variations of a music tone on one type of waveform sample. In addition, the plural read start addresses can be set automatically or a simple manual operation. 
     While the preferred embodiments of the present invention have been described using specific terms, such description is for illustrative purposes only, and it is to be understood that changes and variations may be made without departing from the spirit or scope of the appended claims.