Electronic musical instrument, method, and program
The electronic musical instrument addresses the lack of damped state resonance in conventional instruments by synthesizing and controlling resonance tones based on key states, achieving realistic acoustic piano-like resonance effects.
Patent Information
- Application Number
- JP2023205739
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-12-06
- Publication Date
- 2025-05-20
- Estimated Expiration
- 2040-09-11
AI Technical Summary
Conventional electronic musical instruments fail to reproduce the rich resonance effect of an acoustic piano when the damper is not released, as they only generate sympathetic sounds for open strings and lack means to simulate the damped state resonance.
The electronic musical instrument synthesizes a musical tone corresponding to a first key and a resonance tone for a second key with a harmonic relationship, controlling the generation of resonance tones based on the damped or non-damped state of the second key, using per-key resonance pitch calculation tables to adjust pitch and tone color.
This approach enables the generation of realistic resonant sounds, mimicking the acoustic piano's damped state resonance, enhancing the musical experience by producing sympathetic sounds even when strings are damped.
Smart Images

Figure 0007679867000001 
Figure 0007679867000002 
Figure 0007679867000003
Abstract
Description
[Technical field]
[0001] The present invention relates to an electronic musical instrument capable of generating resonant tones, a method, and a program. [Background technology]
[0002] 2. Description of the Related Art There are known electronic musical instruments that produce sounds by sympathetic resonance between strings when a damper pedal is depressed or when multiple keys are pressed (for example, the technology described in Patent Document 1).
[0003] In the above-mentioned conventional technology, a sympathetic sound is generated in response to the key press only for open strings, such as strings that have had their damper released by pressing a key or stepping on the damper pedal, and strings that are always open, such as high-frequency keys and aliquot keys that do not have a damper structure. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Patent No. 6690763 Summary of the Invention [Problem to be solved by the invention]
[0005] In an actual acoustic piano, even when the damper is not released (damped state), string resonance occurs, creating the rich sound of the piano. However, conventional technology has no means of achieving the effect of this damped state, making it difficult to reproduce the resonance effect based on the damped state effect of an acoustic piano.
[0006] An object of the present invention is to generate a good resonant sound. [Means for solving the problem]
[0007] In one embodiment of the electronic musical instrument, when a first key is pressed, a musical tone corresponding to the first key and a resonance tone corresponding to a state of a second key having a pitch that is in a harmonic relationship with the pitch of the first key are synthesized. and when a new resonance tone corresponding to the second key is generated in response to a new key depression during generation of a musical tone including the resonance tone corresponding to the second key, a first velocity of the resonance tone being generated and a second velocity of the resonance tone generated in response to the new key depression are compared, and generation of the resonance tone is controlled in response to a comparison result. Execute the process. Effect of the Invention
[0008] According to the present invention, it is possible to generate a good resonance sound. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of a hardware configuration of an embodiment of an electronic musical instrument. [Diagram 2] FIG. 2 is a block diagram showing an example of the configuration of a sound source LSI. [Diagram 3] FIG. 13 is a diagram (part 1) showing an example of the configuration of key-specific resonance pitch calculation table data. [Figure 4] FIG. 2 is a diagram (part 2) showing an example of the configuration of key-specific resonance pitch calculation table data. [Diagram 5] 11A and 11B are diagrams showing configuration examples of resonance intensity table data for each pitch difference, resonance pitch candidate table data corresponding to key depression, and sound generation resonance information table data. [Figure 6] 13 is a flowchart showing an example of a main process; [Figure 7] 13 is a flowchart showing a detailed example of keyboard processing. [Figure 8] 13 is a flowchart showing a detailed example of a process for creating a key-depression corresponding resonance pitch candidate table. [Figure 9] 13 is a flowchart showing a detailed example of a pronunciation resonance information table creation process. [Figure 10] 10 is a flowchart showing a detailed example of a first embodiment of a resonance arbitration process. [Figure 11] 10 is a flowchart showing a detailed example of a second embodiment of a resonance arbitration process. [Figure 12] 13 is a flowchart showing a detailed example of a third embodiment of a resonance arbitration process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. Fig. 1 is a diagram showing an example of the hardware configuration of an embodiment of an electronic keyboard instrument, which is an example of an electronic musical instrument. In Fig. 1, an electronic keyboard instrument 100 is realized as, for example, an electronic piano, and includes a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, a keyboard section 104, a switch section 105, and a sound source LSI 106, which are interconnected by a system bus 108. An output of the sound source LSI 106 is input to a sound system 107.
[0011] The CPU 101 performs control operations of the electronic musical instrument 100 in FIG. 1 by loading a control program stored in the ROM 102 into the RAM 103 and executing the program while using the RAM 103 as a working memory.
[0012] The keyboard unit 104 detects the depression or release of each of a plurality of keys as performance operators, and notifies the CPU 101 of the detection.
[0013] The switch section 105 detects the operation of various switches by the performer and notifies the CPU 101. The switch section 105 includes a damper pedal.
[0014] The sound source LSI 106 generates digital musical sound waveform data based on sound generation instruction data input from the CPU 101, and outputs the data to the sound system 107. The sound system 107 converts the digital musical sound waveform data input from the sound source LSI 106 into an analog musical sound waveform signal, amplifies the analog musical sound waveform signal with a built-in amplifier, and outputs the signal from a built-in speaker.
[0015] The sound source LSI 106 is a dedicated large scale integrated circuit that executes the musical tone generation process described later. Based on instructions from the CPU 101, the sound source LSI 106 reads waveform data from a waveform memory (not shown) at a speed corresponding to the pitch of the key specified in the performance, adds an amplitude envelope of the velocity specified in the performance to the read waveform data, and outputs the resulting waveform data as output musical tone waveform data.
[0016] Fig. 2 is a block diagram showing an example of the configuration of the tone generator LSI 106 in Fig. 1. The tone generator LSI 106 includes a waveform generator 201 further including waveform generating devices 210 #1 to #256 capable of simultaneously oscillating 256 pieces of waveform data, a DSP (Digital Signal Processor) 202, a mixer 204, and a bus interface 203. The waveform generator 201, the DSP 202, and the mixer 204 are connected to the system bus 108 in Fig. 1 via the bus interface 203, and access to the RAM 103 in Fig. 1 and communication with the CPU 101 are performed.
[0017] Each of the waveform generating devices 210 #1 to #256 of the waveform generator 201 is an oscillator that operates, for example, by time-division processing and reads waveform data from a waveform ROM (not shown) to reproduce a tone waveform, and the DSP 202 is a digital signal processing circuit that provides sound effects to audio signals. The mixer 204 controls the overall flow of audio signals by mixing signals from each waveform generating device 210 and transmitting / receiving signals to / from the DSP 202, and outputs the signals to the outside. That is, the mixer 204 adds an envelope according to the musical tone parameters supplied by the CPU 101 to the waveform data read from the waveform ROM by each waveform generating device 210 of the waveform generator 201 in response to the performance, and outputs the result as output musical tone waveform data. The musical sound output data of the mixer 204 is output to the sound system 107 in FIG. 1, and is output as an analog musical sound signal of a predetermined signal level via a D / A converter and an amplifier (not shown) in the sound system 107 to a speaker, a headphone, etc. (not shown).
[0018] 3 and 4 are diagrams showing configuration examples of the key-by-key resonance pitch calculation table data. The key-by-key resonance pitch calculation table data is table data that stores, for each of, for example, 88 keys on the keyboard unit 104, a key indicating a pitch when the key is pressed by playing, a first resonance pitch that simulates the vibration of the piano string (hereinafter simply referred to as "string") of the key when the key is in a non-damped (open string) state, and a second resonance pitch that simulates the vibration of the string of the key when the key is in a damped state. The key-by-key resonance pitch calculation table data is loaded from the ROM 102 in FIG. 1 to the RAM 103 when, for example, the electronic keyboard instrument 100 is powered on. Note that the "Supplement" column in FIG. 3 and FIG. 4 is displayed for the purpose of explaining the embodiment, and is not included in the key-by-key resonance pitch calculation table data.
[0019] In an actual acoustic piano, as a basic operation, when a key is pressed or the damper pedal is pressed, the open strings, such as the strings that are released by releasing the damper when the key is pressed or the strings that are always open such as the high-frequency keys and the aliquot keys that do not have a damper structure, become undamped and vibrate in sympathy with the vibration of the string corresponding to the key pressed, producing a sympathetic tone. However, in addition to this basic operation, even strings that have dampers and are in a damped state where the damper is not released, resonate with the pressed string, which produces a rich sound of the piano. In this case, the second sympathetic tone pitch when a string at a certain key vibrates as a sympathetic tone in a damped state is a third or second harmonic in frequency compared to the first sympathetic tone pitch corresponding to the original vibration frequency of the string when the string is undamped, as shown in the "Supplementary" column of Figures 3 and 4. This can change depending on the key range of the key, as well as the manufacturer and type of the acoustic piano. Furthermore, in an actual acoustic piano, there are strings that are structurally designed not to resonate, as exemplified by key numbers 54 to 68 in FIG. 4. In addition, there are strings in the high-pitched key range that are structurally not equipped with dampers and are always in an undamped state and resonate at the first resonant pitch, as exemplified by key numbers 69 to 88. Furthermore, in a method called aliquot stringing (not shown), for example, in each key range of three octaves on the high-pitched side, an additional (fourth) string called an aliquot string is strung at a position slightly higher than the other three strings where it is not struck by the hammer, and when the hammer strikes the three conventional strings, the aliquot string is always in an undamped state and resonates at the first resonant pitch. Aliquot stringing expands vibration energy throughout the entire instrument, and can produce very complex and colorful tones. In addition, the key, the first resonance pitch, and the second resonance pitch assigned to each key vary subtly depending on the tuning state of each string, and may also be intentionally changed by tuning.
[0020] In the embodiment, in order to simulate the above-mentioned resonance characteristics of an actual acoustic piano, for example, each of the 88 key numbers can have a key, a first resonance pitch, and a second resonance pitch individually as per-key resonance pitch calculation table data as shown in Figures 3 and 4. In the embodiment, the generation of resonance is controlled by referring to the per-key resonance pitch calculation table data. This makes it possible for the embodiment to reproduce the characteristics of various actual acoustic pianos.
[0021] That is, according to one embodiment, a musical tone corresponding to a pressed first key is generated by synthesizing a musical tone directly corresponding to the key number of the first key and each resonance tone corresponding to each key number of a plurality of second keys whose pitches have a harmonic relationship with the pitch of the first key. FIG. 3 and FIG. 4 show that the resonance tone generated corresponding to the key number of the second key is set to be different depending on whether the second key is in a damped state or a non-damped state. In one embodiment, when the second key is determined to be in a non-damped state, data of a first tone color is used, and when the second key is determined to be in a damped state, data of a second tone color is used. In another embodiment, when the second key is determined to be in a non-damped state, the resonance tone of the second key is generated at a first resonance pitch, and when the second key is determined to be in a damped state, the resonance tone of the second key is generated at a second resonance pitch that is higher than the first resonance pitch, for example. Of course, these embodiments can be combined arbitrarily.
[0022] Here, the damped state of the second key corresponds to the case where the second key is not pressed and the damper pedal is not depressed, whereas the non-damped state of the second key corresponds to the case where the second key is pressed and the damper pedal is depressed.
[0023] In addition, by registering the tuned pitch for a key in the key-by-key resonance pitch calculation table shown in Figs. 3 and 4, and by determining the key press sound by referring to the key when pressing a key on the keyboard 105 in Fig. 1, it becomes possible to specify a key press sound that reflects the tuning information.
[0024] FIG. 5(a) is a diagram showing an example of the structure of the resonance intensity table data for each pitch difference. In this resonance intensity table for each pitch difference, the pitch of the pressed key is set as a relative value of 0, and the relative pitch difference in chromatic scale units corresponding to the harmonic relationship of the resonance sound that may be generated for the key pressed sound of the key, and the resonance intensity ratio of the resonance sound at each pitch difference (each harmonic relationship) are set. This resonance intensity table data for each pitch difference is loaded from the ROM 102 to the RAM 103 in FIG. 1, for example, when the electronic keyboard instrument 100 is powered on. Note that each resonance intensity ratio may be changed by the user. Also, the "Supplement (Harmonics)" column in FIG. 5(a) is a display for making the relationship between the pitch difference and the harmonic easy to understand, and is not included in the resonance intensity table data for each pitch difference.
[0025] That is, according to one embodiment illustrated in Fig. 5(a), when the pitch of the second key is in a harmonic relationship of two overtones with the pitch of the pressed first key, the resonance tone corresponding to the key number of the second key is synthesized with the musical tone directly corresponding to the key number of the first key at the same intensity (1x) as that of the first key. When the pitch of the second key is in a harmonic relationship of three overtones with the pitch of the pressed first key, the resonance tone corresponding to the key number of the second key is synthesized with the musical tone directly corresponding to the key number of the first key at a lower intensity (0.8x) than that of the second overtone. Furthermore, when the pitch of the second key is in a harmonic relationship of five overtones with the pitch of the first key, the resonance tone corresponding to the key number of the second key is synthesized with the musical tone directly corresponding to the key number of the first key at a further lower intensity (0.6x) than that of the third overtone.
[0026] Fig. 5(b) is a diagram showing an example of the configuration of the key-pressed resonance pitch candidate table data. The key-pressed resonance pitch candidate table data stores pitch differences for each resonance tone that may be generated with pitches of each pitch difference (each harmonic relation) set in the resonance intensity table data for each pitch difference shown in Fig. 5(a) in the minus and plus directions based on the key-pressed pitch, with the pitch of the pressed key set as a relative value of 0, resonance pitch candidates that are pitch candidates for each pitch difference of each resonance tone with respect to the actual pitch value of the key-pressed pitch, and resonance intensity ratio candidates obtained from the resonance intensity table data for each pitch difference shown in Fig. 5(a) corresponding to each pitch difference. The CPU 101 creates the key-pressed resonance pitch candidate table data in the RAM 103 every time a key is detected during execution of a keyboard process described later.
[0027] Fig. 5(c) is a diagram showing an example of each configuration of the sound resonance information table data. In this sound resonance information table data, information on the sound resonance that can actually be generated among the sound resonance pitch candidates calculated as the key-press corresponding sound resonance pitch candidate table data exemplified in Fig. 5(b) is calculated. Specifically, in the sound resonance information table data, among the sound resonance pitch candidates calculated as the key-press corresponding sound resonance pitch candidate table data exemplified in Fig. 5(b), a sound resonance key that is a key that can actually be generated as a sound resonance on the string of any of the 88 keys of the keyboard unit 104 in Fig. 1, a sound resonance tone that is the tone of the resonance, a sound resonance pitch that is the pitch of the resonance, and a sound resonance intensity that indicates the resonance intensity (velocity) at the time of sounding the resonance are stored. Each time the CPU 101 detects a key press during keyboard processing, it creates in the RAM 103 key-press corresponding resonance pitch candidate table data exemplified in Fig. 5(b), and then searches for each entry in the key-press corresponding resonance pitch candidate table data to determine whether or not the resonance pitch candidate of that entry is registered as the first resonance pitch or the second resonance pitch in the per-key resonance pitch calculation table data exemplified in Fig. 3 and Fig. 4. In this case, the CPU 101 searches for the first resonance pitch in the per-key resonance pitch calculation table data when it has determined that the corresponding key is in a non-damped state, and searches for the second resonance pitch when it has determined that the corresponding key is in a damped state. Then, when the CPU 101 is able to search for the first resonance pitch for one of the resonance pitch candidates, it registers the key corresponding to the searched first resonance pitch as a sounding resonance key in a new entry of the sounding resonance information table data illustrated in FIG. 5(c), registers the first tone color, which is the open string resonance tone color (hereinafter referred to as the "open string resonance tone color"), as a sounding resonance tone color, registers the searched first resonance pitch as a sounding resonance pitch, and registers the value obtained by multiplying the detected key press velocity by a resonance intensity ratio candidate registered in the key press corresponding resonance pitch candidate table data illustrated in FIG. 5(b) corresponding to the resonance pitch candidate, as a sounding resonance intensity indicating the velocity value of the resonance to be sounded.On the other hand, when the CPU 101 is able to search for a second resonance pitch for one resonance pitch candidate, it registers the key corresponding to the searched second resonance pitch as a sounding resonance key in a new entry of the sounding resonance information table data illustrated in FIG. 5(c) as a sounding resonance tone, registers the second tone color, which is a resonance tone color for non-open strings (hereinafter referred to as "non-open string resonance tone color"), as a sounding resonance tone color, registers the searched second resonance pitch as a sounding resonance pitch, and registers a value obtained by multiplying the detected key press velocity by a resonance intensity ratio candidate registered in the key press corresponding resonance pitch candidate table data illustrated in FIG. 5(b) corresponding to the resonance pitch candidate, as a sounding resonance intensity indicating the value of the velocity of the resonance to be sounded.
[0028] Here, when the damper pedal included in the switch unit 105 in FIG. 1 is turned on, the CPU 101 determines that all of the 88 keys are in the non-damped state. The CPU 101 also determines that the keys in the keyboard unit 104 where a key is pressed are in the non-damped state. The CPU 101 also determines that the keys in the key-by-key resonance pitch calculation table data where the second resonance pitch is not registered and the designation of the damped state is prohibited or the keys are set as not resonating, as exemplified by key numbers 54 to 88 in FIG. 4, are in the non-damped state. On the other hand, when the damper pedal is turned off, the CPU 101 determines that the keys in the keyboard unit 104 where the key is not pressed and the second resonance pitch is not registered and the keys are set as not resonating and the keys are set as not resonating. The CPU 101 can simulate the behavior of the damper pedal in an actual acoustic piano, etc., by controlling the sound generation when each key is pressed based on the non-damped state or the damped state.
[0029] The CPU 101 generates a note-on event that instructs the sound generation of each resonance tone corresponding to each entry of the sound generation resonance tone information table data registered in FIG. 5(c) together with the key depression sound generated by the key depression, and instructs the sound source LSI 106 in FIG.
[0030] In the embodiment of the electronic musical instrument 100, the CPU 101 executes a control program having functions realized by the flowcharts of Figures 6 to 12 described below, thereby realizing control of the electronic keyboard musical instrument 100. The control program may be recorded on a portable recording medium (not shown) and distributed, or may be obtained from a network via a communication interface (not shown) and stored in the ROM 102.
[0031] Fig. 2 is a flowchart showing an example of main processing realized as an operation of CPU 101 in Fig. 1 loading a control program stored in ROM 102 into RAM 103 and executing it. When a power switch (not shown) in switch section 105 in Fig. 1 is turned on, CPU 101 starts the main processing exemplified in the flowchart in Fig. 2.
[0032] First, the CPU 101 executes an initialization process to initialize a group of variables in the RAM 103. The CPU 101 also loads the resonance pitch calculation table data for each key shown in Fig. 3 and Fig. 4 and the resonance intensity table data for each pitch difference shown in Fig. 5(a) from the ROM 102 to the RAM 103 (step S601). After this, the CPU 101 becomes able to randomly access each table data in the RAM 103.
[0033] Next, the CPU 101 repeatedly executes the switch section process in step S602, the keyboard process in step S603, and other processes in step S604.
[0034] 1, and sets the information in the corresponding variables in the RAM 103. In particular, when a damper pedal in the switch section 105 is operated, the CPU 101 stores the on / off state of the damper pedal in the RAM 103 as a damper pedal variable.
[0035] The keyboard process in step S603 will be described later.
[0036] In the other process of step S604, the CPU 101 executes processes relating to the control of the electronic keyboard instrument 100 other than the switch section process of step S602 and the keyboard process of step S603.
[0037] Fig. 7 is a flow chart showing a detailed example of the keyboard process in step S603 in Fig. 6. First, the CPU 101 scans each key on the keyboard 104 in Fig. 1 (step S701).
[0038] Next, CPU 101 determines whether or not there has been a change in the key depression state (step S702).
[0039] If there is no change in the key depression state, CPU 101 ends the keyboard process in step S603 in FIG. 6, as exemplified in the flowchart in FIG.
[0040] When the CPU 101 detects a key press in step S702, it creates a note-on event based on the key press pitch and velocity determined as the key corresponding to the key number of the key on the keyboard 104 at the time of the key press (see the key-by-key resonance pitch calculation table data in FIG. 3 or FIG. 4) (step S703), and sends the note-on event to the sound source LSI 106 in FIG. 1 (step S704). When the sound source LSI 106 receives the note-on event, it assigns one of the sound generation channels (CHi) (1≦i≦256) corresponding to the waveform generators 210 #1 to #256 in the waveform generator 201 illustrated in FIG. 2. The assigned waveform generating device 210 uses the tone generation channel (CHi) based on, for example, time division processing to read out waveform data of the tone color designated in advance by the switch section 105 from a waveform ROM (not shown) at a waveform read speed corresponding to the key, and amplifies the waveform data in the mixer 204 by the velocity designated by the note-on event to generate musical tone waveform data.
[0041] Next, CPU 101 creates in RAM 103 a key-depressed flag indicating that the key on which the key depression occurred has been depressed (step S705).
[0042] Next, the CPU 101 executes a process of creating a key-press corresponding resonance pitch candidate table (step S706). Here, the CPU 101 executes a process of creating the key-press corresponding resonance pitch candidate table data exemplified in Fig. 5(b) on the RAM 103. The details of this process will be described later with reference to the flowchart exemplified in Fig. 8.
[0043] Next, the CPU 101 executes a resonance information table creation process (step S707). Here, the CPU 101 executes a process of creating the resonance information table data exemplified in Fig. 5(c) on the RAM 103. The details of this process will be described later with reference to the flowchart exemplified in Fig. 9.
[0044] Thereafter, the CPU 101 creates a note-on event for each resonance calculated as each entry of the resonance information table data created in step S707 (step S708), and sends the note-on event to the sound source LSI 106 in Fig. 1 (step S709). Upon receiving the note-on event for each resonance, the sound source LSI 106 assigns one of the sound generation channels (CHi) (1 ≤ i ≤ 256) of the waveform generators 210 #1 to #256 in the waveform generator 201 illustrated in Fig. 2 to each resonance. As a result, the waveform data for each resonance is output from each waveform generator 210 using each sound generation channel. The key-press sound generated in step S704 using one sound channel of the waveform generator 210 and the resonance sounds generated in step S709 using each sound channel of one or more waveform generators 210 are mixed in the mixer 204, and after being given amplitude envelope characteristics in the DSP 202, they are output as musical tone output data to the sound system 107 in Fig. 1. Thereafter, the CPU 101 ends the keyboard process in step S603 in Fig. 6, which is exemplified in the flowchart in Fig. 7.
[0045] When the CPU 101 detects a key release in step S702, it creates a note-off event by the key corresponding to the key number of the key on the keyboard 104 at the time of key release (step S710), and sends the note-off event to the sound source LSI 106 in Fig. 1 (step S711). When the sound source LSI 106 receives the note-off event, it executes a sound-silencing process to stop the output of waveform data of the key-press sound from the waveform generator 210 in the sound channel to which the key in the note-off event is assigned.
[0046] Next, the CPU 101 deletes the key-depressed flag that has been created in the RAM 103 corresponding to the key on which the key has been released (step S712).
[0047] Next, the CPU 101 creates a note-off event for each resonance tone based on the resonance pitch of each entry of the resonance tone information table data shown in Fig. 5(c) that was created in the RAM 103 corresponding to the released key (step S713), and sends each note-off event to the sound source LSI 106 (step S714). Upon receiving each note-off event, the sound source LSI 106 executes a sound-silencing process to stop the output of the waveform data of each resonance tone from each waveform generator 210 in each sound channel to which each resonance pitch in each note-off event is assigned.
[0048] Finally, the CPU 101 deletes from the RAM 103 the sound generation and resonance information table data, which is shown in Fig. 5(c) and which has been created in the RAM 103 in correspondence with the released key (step S715). After that, the CPU 101 ends the keyboard process in step S603 in Fig. 6, which is shown in the flowchart in Fig. 7.
[0049] Fig. 8 is a flowchart showing a detailed example of the process of creating a table of possible resonance pitches corresponding to key presses, which is executed in step S706 in Fig. 7. First, CPU 101 stores the key number of the key press sound acquired in step S701 in Fig. 7 in variable key_num_on in RAM 103 (step S801). Note that in the following description, a variable name may be expressed as a variable value. For example, the value stored in variable key_num_on may be written as "variable value key_num_on".
[0050] Next, in order to process from the direction in which the pitch difference is greatest on the negative side with respect to the pressed key pitch, CPU 101 sets the value 6 to variable i on RAM 103 (corresponding to No.=6 in the resonance intensity table data for each pitch difference illustrated in FIG. 5(a)), and sets the value −1 to variable flag on RAM 103, which indicates the processing direction, indicating the negative direction (the direction in which No. decreases from the value 6 to the value 0 in the resonance intensity table data for each pitch difference illustrated in FIG. 5(a)) (step S802).
[0051] Thereafter, CPU 101 repeatedly executes the series of processes from steps S803 to S807 below, while incrementing the value of variable i by the value of variable flag (i.e., subtracting 1 from the value of variable flag since the value is -1), until the determination in step S809 becomes YES and it is determined that the value of variable i has gradually decreased from 6 to reach -1 (step S810).
[0052] In a series of processes from step S803 to S807, CPU 101 first obtains the i-th entry information indicated by variable i of the resonance intensity table data for each pitch difference illustrated in Fig. 5(a) (step S803). As a result, CPU 101 sets the negative pitch difference value obtained by multiplying the pitch difference obtained from the i-th entry by the value of variable flag -1 to variable pitch_def on RAM 103, and similarly sets the obtained resonance intensity ratio value to variable pitch_def_amp on RAM 103.
[0053] Next, CPU 101 adds the pitch difference value pich_def set as a variable on RAM 103 in step S803 to the key pressed number value key_num_on set as a variable on RAM 103 in step S801, to calculate the pitch at a position away from the key pressed pitch by the current pitch difference as the addition result, and stores this value in variable key_num_c on RAM 103 (step S804).
[0054] Next, CPU 101 determines whether or not the variable value key_num_c is within the range from 1 to 88, which corresponds to the 88 keys (step S805).
[0055] If the determination in step S805 is NO, the pitch exceeds the range of the 88 keys and cannot be generated as a resonant tone, so that the CPU 101 proceeds to step S808 and updates the variable value i.
[0056] If the determination in step S805 is YES, the pitch can be a resonance pitch candidate. Therefore, the CPU 101 first obtains the key of the entry whose key number corresponds to the key number value key_num_c of the resonance pitch candidate calculated in step S804 from the key-by-key resonance pitch calculation table data exemplified in Fig. 3 or 4, and sets the key to the variable key_c on the RAM 103 (step S806).
[0057] Then, the CPU 101 adds one entry to the key-depressed resonance pitch candidate table data illustrated in FIG. 5B, and registers the pitch difference=variable value pitch_def, the resonance pitch candidate=variable value key_c, and the resonance intensity ratio candidate=variable value pitch_def_amp.
[0058] Thereafter, CPU 101 proceeds to step S808 to update the variable value i.
[0059] By the above series of processes from step S803 to S807, each entry of the key-press corresponding resonance pitch candidate table data shown in Fig. 5(b) can be created. For example, if it is assumed that the key of the pressed key is C3, in step S801, 28 is obtained as the key-press number of the key C3 from the key-by-key resonance pitch calculation table data shown in Fig. 3, and key_num_on=28 is set. Then, if the variable value i=6 and the variable value flag=-1, in step S803, the variable value pitch_def=pitch difference 36×variable value flag=-36 is calculated from the entry No.=i=6 in the resonance intensity table data for each pitch difference shown in Fig. 5(a), and the variable value pitch_def_amp=0.2 is obtained. Next, in step S804, the variable value key_num_c=variable value key_num_on+variable value pich_def=28-36=-8 is calculated. As a result, the determination in step S805 is NO, so that no entry is created in the key-press corresponding resonance pitch candidate table, and the process proceeds to step S808, where i = 6 - 1 = 5, the determination in step S809 is YES, the determination in step S810 is NO, and the process returns to step S803.
[0060] In the next step S803, a variable value pitch_def=pitch difference 31×variable value flag=−31 is calculated from the entry No.=i=5 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.4 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28-31=−3 is calculated. As a result, the determination in step S805 is NO, so an entry in the key-press corresponding resonance pitch candidate table is not created, and the process proceeds to step S808, where i=6-1=4, the determination in step S809 is YES, and the determination in step S810 is NO, and the process returns to step S803.
[0061] In the next step S803, a variable value pitch_def=pitch difference 28×variable value flag=−28 is calculated from the entry No.=i=4 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.6 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28-28=0 is calculated. As a result, the determination in step S805 is NO, so an entry in the key-press corresponding resonance pitch candidate table is not created, and the process proceeds to step S808 where i=6-1=4, the determination in step S809 is YES, and the determination in step S810 is NO, and the process returns to step S803.
[0062] In the next step S803, a variable value pitch_def=pitch difference 24×variable value flag=−24 is calculated from the entry No.=i=3 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.8 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28−24=4 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key key=C1 of the entry whose key number corresponds to the variable value key_num_c=4 is obtained as the variable key_c from the resonance pitch calculation table data for each key illustrated in Fig. 3. Then, in step S807, the pitch difference=pitch_def=-24, the resonance pitch candidate=key_c=C1, and the resonance intensity ratio candidate=pitch_def_amp=0.8 are set, and an entry in the first row of the key depression corresponding resonance pitch candidate table data shown in Fig. 5(b) is created. After that, the process proceeds to step S808, where i=3-1=2, the determination in step S809 is YES, and the determination in step S810 is NO, and the process returns to step S803.
[0063] In the next step S803, a variable value pitch_def=pitch difference 19×variable value flag=−19 is calculated from the entry No.=i=2 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.8 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28−19=9 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key key=F1 of the entry whose key number corresponds to the variable value key_num_c=9 is obtained as the variable key_c from the resonance pitch calculation table data for each key illustrated in Fig. 3. Then, in step S807, the pitch difference=pitch_def=-19, the resonance pitch candidate=key_c=F1, and the resonance intensity ratio candidate=pitch_def_amp=0.8 are set, and an entry in the second row of the key depression corresponding resonance pitch candidate table data shown in Fig. 5(b) is created. After that, the process proceeds to step S808, where i=2-1=1, the determination in step S809 is YES, and the determination in step S810 is NO, and the process returns to step S803.
[0064] In the next step S803, a variable value pitch_def=pitch difference 12×variable value flag=−12 is calculated from the entry No.=i=1 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=1 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28−12=16 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key key=C2 of the entry whose key number corresponds to the variable value key_num_c=16 is obtained as the variable key_c from the resonance pitch calculation table data for each key illustrated in Fig. 3. Then, in step S807, an entry in the third row of the key depression corresponding resonance pitch candidate table data shown in Fig. 5(b) is created with pitch difference = pitch_def = -12, resonance pitch candidate = key_c = C2, and resonance intensity ratio candidate = pitch_def_amp = 1. Then, the process proceeds to step S808, where i = 2 - 1 = 1, the determination in step S809 is YES, and the determination in step S810 is NO, so that the process returns to step S803.
[0065] In the next step S803, a variable value pitch_def=pitch difference 0×variable value flag=±0 is calculated from the entry of No.=i=0 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=1 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28-0=28 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key key=C3 of the entry whose key number corresponds to the variable value key_num_c=28 is obtained as the variable key_c from the resonance pitch calculation table data for each key illustrated in Fig. 3. Then, in step S807, the pitch difference=pitch_def=±0, the resonance pitch candidate=key_c=C3, and the resonance intensity ratio candidate=pitch_def_amp=1 are set, and an entry in the fourth row of the key depression corresponding resonance pitch candidate table data illustrated in Fig. 5(b) is created. Then, the process proceeds to step S808, where i=0-1=-1. Here, the determination in step S809 is YES, and the determination in step S810 is YES.
[0066] In this way, the variable value i changes from 6 to 0, and entries corresponding to resonance candidates with negative pitch differences and entries corresponding to key pressed sounds (first four rows of entries with pitch differences from -24 to ±0) are created as key pressed resonance pitch candidate table data as shown in Fig. 5(b). Subsequently, in order to process pitches from the closest pitch difference to the furthest pitch difference from the key pressed pitch in the positive direction based on the key pressed pitch, the CPU 101 sets the variable i in the RAM 103 to 1 (corresponding to No.=1 in the resonance intensity table data for each pitch difference as shown in Fig. 5(a)), and sets the variable flag in the RAM 103 indicating the processing direction to 1 indicating the positive direction (the direction in which No. increases from 1 to 6 in the resonance intensity table data for each pitch difference as shown in Fig. 5(a)) (step S811).
[0067] Thereafter, CPU 101 increments the value of variable i by the value of variable flag, i.e., by 1 since the value of variable flag is 1, until it determines that the value of variable i has increased from 1 and reached 7 (step S812) after the determination in step S809 is NO, and sequentially executes the series of processes from steps S803 to S807 as described above.
[0068] Specifically, first, in step S811, variable value i=1 and variable value flag=1 are set, and then the process returns to step S803. In step S803, from the entry of No.=i=1 in the resonance intensity table data for each pitch difference illustrated in FIG. 5(a), a variable value pitch_def=pitch difference 12×variable value flag=+12 is calculated to obtain a variable value pitch_def_amp=1. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28+12=40 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key key=C4 of the entry whose key number corresponds to the variable value key_num_c=40 is acquired as the variable key_c from the resonance pitch calculation table data for each key illustrated in FIG. 3. Then, in step S807, an entry in the fifth row of the key depression corresponding resonance pitch candidate table data shown in Fig. 5(b) is created with pitch difference = pitch_def = +12, resonance pitch candidate = key_c = C4, and resonance intensity ratio candidate = pitch_def_amp = 1. After that, the process proceeds to step S808 where i = 1 + 1 = 2, the determination in step S809 is NO, the determination in step S812 is NO, and the process returns to step S803.
[0069] In the next step S803, a variable value pitch_def=pitch difference 19×variable value flag=+19 is calculated from the entry No.=i=2 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.8 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28+19=47 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key key=G4 of the entry whose key number corresponds to the variable value key_num_c=47 is obtained as the variable key_c from the resonance pitch calculation table data for each key illustrated in Fig. 4. Then, in step S807, the pitch difference=pitch_def=+19, the resonance pitch candidate=key_c=G4, and the resonance intensity ratio candidate=pitch_def_amp=0.8 are set, and an entry in the sixth row of the key depression corresponding resonance pitch candidate table data illustrated in Fig. 5(b) is created. After that, the process proceeds to step S808, where i=2+1=3, the determination in step S809 is NO, the determination in step S812 is NO, and the process returns to step S803.
[0070] In the next step S803, a variable value pitch_def=pitch difference 24×variable value flag=+24 is calculated from the entry No.=i=3 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.8 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28+24=52 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key=C5 of the entry whose key number corresponds to the variable value key_num_c=52 is obtained as the variable key_c from the resonance pitch calculation table data for each key illustrated in Fig. 4. Then, in step S807, the pitch difference=pitch_def=+24, the resonance pitch candidate=key_c=C5, and the resonance intensity ratio candidate=pitch_def_amp=0.8 are set, and an entry in the seventh row of the key depression corresponding resonance pitch candidate table data shown in Fig. 5(b) is created. After that, the process proceeds to step S808, where i=3+1=4, the determination in step S809 is NO, the determination in step S812 is NO, and the process returns to step S803.
[0071] In the next step S803, a variable value pitch_def=pitch difference 28×variable value flag=+28 is calculated from the entry No.=i=4 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.6 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28+28=56 is calculated. As a result, the determination in step S805 is YES, and therefore in step S806, the key key=E5 of the entry whose key number corresponds to the variable value key_num_c=56 is obtained as the variable key_c from the resonance pitch calculation table data for each key in Fig. 4. Then, in step S807, an entry in the 8th row of the key depression corresponding resonance pitch candidate table data shown in Fig. 5(b) is created with pitch difference = pitch_def = +28, resonance pitch candidate = key_c = E5, and resonance intensity ratio candidate = pitch_def_amp = 0.6. Then, the process proceeds to step S808, where i = 4 + 1 = 5, the determination in step S809 is NO, the determination in step S812 is NO, and the process returns to step S803.
[0072] In the next step S803, a variable value pitch_def=pitch difference 31×variable value flag=+31 is calculated from the entry No.=i=5 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.4 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28+31=59 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key=G5 of the entry whose key number corresponds to the variable value key_num_c=59 is obtained as the variable key_c from the resonance pitch calculation table data for each key illustrated in Fig. 4. Then, in step S807, the pitch difference=pitch_def=+31, the resonance pitch candidate=key_c=G5, and the resonance intensity ratio candidate=pitch_def_amp=0.4 are set, and an entry in the 8th row of the key depression corresponding resonance pitch candidate table data shown in Fig. 5(b) is created. After that, the process proceeds to step S808, where i=5+1=6, the determination in step S809 is NO, the determination in step S812 is NO, and the process returns to step S803.
[0073] Finally, in step S803, a variable value pitch_def=pitch difference 36×variable value flag=+36 is calculated from the entry No.=i=6 in the resonance intensity table data for each pitch difference illustrated in Fig. 5(a), and a variable value pitch_def_amp=0.2 is obtained. Next, in step S804, a variable value key_num_c=variable value key_num_on+variable value pich_def=28+36=64 is calculated. As a result, the determination in step S805 is YES, so in step S806, the key=C6 of the entry whose key number corresponds to the variable value key_num_c=64 is obtained as the variable key_c from the resonance pitch calculation table data for each key in Fig. 4. Then, in step S807, the pitch difference=pitch_def=+36, the resonance pitch candidate=key_c=C6, and the resonance intensity ratio candidate=pitch_def_amp=0.2 are set, and an entry in the last row of the key depression corresponding resonance pitch candidate table data shown in Fig. 5(b) is created. After that, the process proceeds to step S808, where i=6+1=7, and the determination in step S809 becomes NO. Then, the determination in step S812 becomes YES, and all the processes are terminated.
[0074] In this manner, the key-press corresponding resonance pitch candidate table data shown in Fig. 5(b) is generated in the RAM 103. After that, the CPU 101 ends the key-press corresponding resonance pitch candidate table generation process in step S706 in Fig. 7 shown in the flowchart in Fig. 8.
[0075] Fig. 9 is a flowchart showing a detailed example of the generation resonance information table creation process executed in step S707 in Fig. 7. First, the CPU 101 acquires information for one entry at a time from the top of the key-press corresponding resonance pitch candidate table data exemplified in Fig. 5(b), stores the value of the resonance pitch candidate acquired from the entry in the variable res_pitch_c on the RAM 103, and similarly stores the value of the resonance intensity ratio candidate in the variable res_amp_c on the RAM 103 (step S901).
[0076] Next, the CPU 101 sets the value 1 to a variable N in the RAM 103 that designates a key number (step S902).
[0077] Thereafter, CPU 101 repeatedly executes the series of processes from steps S903 to S911 while incrementing the value of variable N by +1 (step S912) until it determines that the value exceeds the value 88 corresponding to the 88 keys (step S913).
[0078] In the series of processes from step S903 to S911, the CPU 101 first determines whether or not the key number variable value N is equal to the pressed key number detected in step S701 of Fig. 7 (step S903). If the determination in step S903 is YES, the string of the pressed key is not regarded as a sympathetic string, so the CPU 101 does not create an entry in the sound resonance information table, and proceeds to step S912 to increment the value of the key number variable value N by 1.
[0079] If the determination in step S903 is NO, the CPU 101 acquires the key, the first resonance pitch, and the second resonance pitch from the entry of the key number indicated by the variable value N of the key resonance pitch calculation table data exemplified in FIGS. 3 and 4 (step S904).
[0080] Next, the CPU 101 determines whether the value of the damper pedal variable set in the RAM 103 by the switch section processing in step S602 of FIG. 6 indicates on, i.e., whether the damper pedal is on, whether a key press flag has been created in the RAM 103 corresponding to the key acquired in step S904 and the key has been put in a non-damped state by being pressed (see step S705 of FIG. 7), or whether the key acquired in step S904 is in a constantly non-damped state in which only the first resonance pitch has a value and the second resonance pitch has no value (the entries are from key number 69 to key number 88 of FIG. 4) (step S905).
[0081] If the determination in step S905 is YES, it is determined whether the first resonance pitch acquired in step S904 is equal to the variable value res_pitch_c (the value of the resonance pitch candidate) acquired in step S901 (step S906).
[0082] If the determination in step S906 is NO, the CPU 101 does not create an entry in the sound resonance information table, but proceeds to step S912 and increments the key number variable value N by one.
[0083] If the determination in step S906 is YES, the CPU 101 sets the value of the selected tone color, which is a variable in the RAM 103, to "open string resonance tone color" (tone color in a non-damped state) (step S907).
[0084] On the other hand, if the determination in step S905 is NO, it is determined whether the second resonance pitch obtained in step S904 is equal to the variable value res_pitch_c (resonance pitch candidate) obtained in step S901 (step S908).
[0085] If the determination in step S908 is NO, the CPU 101 does not create an entry in the sound resonance information table, but proceeds to step S912 and increments the key number variable value N by one.
[0086] If the determination in step S908 is YES, the CPU 101 sets the value of the selected tone color, which is a variable in the RAM 103, to the "non-open string resonance tone color" (the tone color in the damped state) (step S909).
[0087] After the processing of step S907 or S909 described above, the CPU 101 executes a resonance tone arbitration process described later to determine whether or not a resonance tone based on the current resonance pitch candidate should be sounded in relation to other resonance tones of the same pitch that have already been sounded (step S910).
[0088] When it is determined as a result of the resonance arbitration process in step S910 that a resonance based on the current resonance pitch candidate is to be generated, the CPU 101 adds one entry to the generation resonance information table data illustrated in Fig. 5(c) and registers the generation resonance key=the key acquired in step S904, the generation resonance tone=the selected tone set as a variable on the RAM 103 in step S907 or S909, the generation resonance pitch=the resonance pitch candidate variable value res_pitch_c acquired in step S901, and the generation resonance intensity=the key pressing velocity acquired in step S701 in Fig. 7×the resonance intensity ratio candidate variable value res_amp_c acquired in step S901. That is, the generated resonance is generated at a velocity (generation resonance intensity) that is reduced by the ratio of the resonance intensity ratio candidate with respect to the velocity of the key pressing. This resonance intensity ratio is defined in a resonance intensity table for each pitch difference shown in FIG. 5(a), and the higher the harmonic of the resonance sound relative to the key depression sound, the weaker the sound intensity becomes.
[0089] Thereafter, the CPU 101 proceeds to step S912 to update the value of the key number variable N.
[0090] When a series of processes from step S902 to S913 is completed for one entry (step S901) of the key press corresponding resonance pitch candidate table data illustrated in FIG. 5(b), the CPU 101 determines whether or not there is an unprocessed entry in the key press corresponding resonance pitch candidate table data (step S914).
[0091] If the determination in step S914 is YES, the CPU 101 returns to the process in step S901, and transitions to execution of the above series of processes for the next entry in the key-depressed resonance pitch candidate table data.
[0092] If the determination in step S914 is NO, the CPU 101 ends the pronunciation resonance information table creation process in step S707 in FIG. 7, which is illustrated in the flowchart in FIG.
[0093] By the above series of processes from step S904 to S911, each entry of the sound resonance information table data exemplified in FIG. 5(c) can be created. As a specific example, a process of creating the sound resonance information table data exemplified in FIG. 5(c) from the key-pressed corresponding resonance pitch candidate table data exemplified in FIG. 5(b) will be described. Now, assume that the damper pedal is off, two keys corresponding to the two keys C4 and G4 have already been pressed, and a key corresponding to the key C3 is newly pressed. The key-pressed corresponding resonance pitch candidate table data exemplified in FIG. 5(b) is data created when the key corresponding to the key C3 is pressed. Under this condition, only the key number 40 exemplified in FIG. 3 and the key number 47 exemplified in FIG. 4 are in a non-damped state, so that the determination in step S905 is YES and the first resonance pitch is determined. The remaining keys are all in a damped state, so that the determination in step S905 is NO and the second resonance pitch is determined.
[0094] First, in step S901, information on the entry in the first row of the key depression corresponding resonance pitch candidate table data is obtained, and variable values res_pitch_c=C1 and res_amp_c=0.8 are set.
[0095] Next, the CPU 101 sets the value 1 to the variable N on the RAM 103 that specifies the key number (step S902). After that, while incrementing the value of the variable N by +1 (step S912), the CPU 101 repeatedly executes a series of processes from steps S903 to S911 until it is determined that the value exceeds the value 88 corresponding to the 88 keys (step S913). As a result, when the key number N is 40 or 47, after the determination in step S905 is YES, it is determined in step S906 whether or not the resonance pitch candidate value res_pitch_c=C1 obtained from the key-press corresponding resonance pitch candidate table data exemplified in Fig. 5(b) matches the first resonance pitch of the key number N obtained from the key-specific resonance pitch calculation table data exemplified in Fig. 3 or 4. When the key number N is other than 40 or 47, the determination in step S905 is NO, and then in step S908, it is determined whether or not the resonance pitch candidate value res_pitch_c=C1 obtained from the key-depression corresponding resonance pitch candidate table data illustrated in Fig. 5(b) matches the second resonance pitch of the key number N obtained from the per-key resonance pitch calculation table data illustrated in Fig. 3 or 4. As a result, the resonance pitch candidate value res_pitch_c=C1 does not match the first resonance pitch or the second resonance pitch of any key number in the per-key resonance pitch calculation table data illustrated in Fig. 3 and 4, so the resonance pitch candidate value res_pitch_c=C1 is not registered as the sounding resonance information table data illustrated in Fig. 5(c).
[0096] Then, after step S914, in step S901, for the resonance pitch candidate value res_pitch_c=F1 in the second row and the resonance pitch candidate value res_pitch_c=C2 in the third row of the key-pressed resonance pitch candidate table data illustrated in FIG. 5(b), a series of processes from steps S903 to S911 are repeatedly executed while changing the key number variable value N from 1 to 88 in the same manner as above. However, since neither the resonance pitch candidate values res_pitch_c=F1 nor C2 match the first resonance pitch or the second resonance pitch of any key number in the key-specific resonance pitch calculation table data illustrated in FIG. 3 and FIG. 4, the resonance pitch candidate values res_pitch_c=F1 and C2 are registered as the sounding resonance pitch information table data illustrated in FIG. 5(c).
[0097] After that, through step S914, in step S901, for the resonance pitch candidate value res_pitch_c=C3 in the fourth row of the key press corresponding resonance pitch candidate table data illustrated in Fig. 5(b), a series of processes from step S904 to S911 are repeatedly executed while changing the key number variable value N from 1 to 88 in the same manner as above. As a result, when key number N=16, in step S908, the resonance pitch candidate value res_pitch_c=C3 obtained from the key press corresponding resonance pitch candidate table data illustrated in Fig. 5(b) matches the second resonance pitch of key number 16 obtained from the key-by-key resonance pitch calculation table data illustrated in Fig. 3, and the determination in step S908 becomes YES. As a result, after steps S909 and S910, in step S911, the following entries are registered in the first row of the resonance information table data illustrated in FIG. 5(c): resonance key=C2 (=key number 16 in the per-key resonance pitch calculation table data illustrated in FIG. 3), resonance tone=“non-open string resonance tone”, resonance pitch=res_pitch_c=C3, and resonance intensity=key pressing velocity×resonance intensity ratio candidate value (=1).
[0098] After that, through step S914, in step S901, for the resonance pitch candidate value res_pitch_c=C4 in the fifth row of the key pressed corresponding resonance pitch candidate table data illustrated in Fig. 5(b), a series of processes from step S904 to S911 are repeatedly executed while changing the key number variable value N from 1 to 88 in the same manner as above. In the key-by-key resonance pitch calculation table data illustrated in Fig. 3, C4 is registered as the second resonance pitch of key number 28, which coincides with the pressed key number. Therefore, when key number N=28, the determination in step S903 becomes YES, and the registration of an entry in the sound resonance information table data illustrated in Fig. 5(c) (step S911) is not executed. 3, C4 is registered as the first resonance pitch for key number 40, but since this key is in the damp state, the determination in step S905 becomes NO when key number N=40, step S907 is not executed, and the entry is not registered in the sound resonance information table data shown in Fig. 5(c) (step S911). In the end, the resonance pitch candidate value res_pitch_c=C4 does not match the first resonance pitch and the second resonance pitch for any key number in the key resonance pitch calculation table data shown in Fig. 3 and Fig. 4, so the resonance pitch candidate value res_pitch_c=C4 is not registered as the sound resonance information table data shown in Fig. 5(c).
[0099] After that, through step S914, in step S901, for the resonance pitch candidate value res_pitch_c=G4 in the fifth row of the key press corresponding resonance pitch candidate table data illustrated in Fig. 5(b), a series of processes from step S904 to S911 are repeatedly executed while changing the key number variable value N from 1 to 88 in the same manner as above. As a result, when the key number N=35, in step S908, it is determined that the resonance pitch candidate value res_pitch_c=G4 obtained from the key press corresponding resonance pitch candidate table data illustrated in Fig. 5(b) matches the second resonance pitch of key number 35 obtained from the key-by-key resonance pitch calculation table data illustrated in Fig. 3, and the determination in step S908 is YES. As a result, after steps S909 and S910, in step S911, the following entries are registered as entries in the second row of the resonance information table data illustrated in Fig. 5(c): resonance key=G3 (=key number 35 in the key-by-key resonance pitch calculation table data illustrated in Fig. 3), resonance tone="non-open string resonance tone", resonance pitch=res_pitch_c=G4, and resonance intensity=key pressing velocity×resonance intensity ratio candidate (=0.8). Furthermore, when the key number N is 47, it is determined in step S906 that the resonance pitch candidate value res_pitch_c=G4 obtained from the key pressing corresponding resonance pitch candidate table data illustrated in Fig. 5(b) matches the first resonance pitch of key number 47 obtained from the key-by-key resonance pitch calculation table data illustrated in Fig. 4, and the determination in step S906 becomes YES. As a result, after steps S907 and S910, in step S911, the following entries are registered as the third row of the resonance information table data illustrated in Fig. 5(c): resonance key = G4 (= key number 47 in the key-by-key resonance pitch calculation table data illustrated in Fig. 4), resonance tone = "open string resonance tone", resonance pitch = res_pitch_c = G4, and resonance intensity = key pressing velocity x resonance intensity ratio candidate (= 0.8). In this example, for resonance pitch = G4, two sets of resonance strings, the sympathetic string of key number 35 in the damped state and the sympathetic string of key number 47 in the non-damped state that was previously pressed, resonate, and resonance waveform data is output from different waveform generators 210 of different sound channels in the sound source LSI 106.
[0100] In this case, the resonance pitch is the same G4, but in steps S708 and S709 of Fig. 7, two note-on events with different timbres, such as "non-open string resonance timbre" and "open string resonance timbre", are generated and sent to the tone generator LSI 106 based on the two pieces of resonance information in the second and third rows of the resonance information table data illustrated in Fig. 5(c). In this case, in the resonance arbitration process in step S910 described later, in order to reduce consumption of the tone generation channel in the tone generator LSI 106, only one of the resonances may be generated, but if the timbres are different, both may be generated in different tone generation channels (see step S1001 in Fig. 10 or Fig. 11). This consumes the tone generation channel, but makes it possible to generate very expressive resonances.
[0101] After that, after step S914, in step S901, for the resonance pitch candidate values res_pitch_c=C5 and G5 in the 7th and 9th rows of the key-pressed resonance pitch candidate table data illustrated in FIG. 5(b), a series of processes from step S904 to S911 are repeatedly executed while the key number variable value N is changed from 1 to 88 in the same manner as described above. However, since the resonance pitch candidate values res_pitch_c=C5 and G5 do not match the first resonance pitch and the second resonance pitch of any key number in the key-specific resonance pitch calculation table data illustrated in FIG. 3 and FIG. 4, the resonance pitch candidate values res_pitch_c=F1 and C2 are not registered as the sounding resonance pitch information table data illustrated in FIG. 5(c).
[0102] On the other hand, after step S914, in step S901, for the resonance pitch candidate values res_pitch_c=E5 and C6 in the 8th and 10th rows of the key press corresponding resonance pitch candidate table data exemplified in FIG. 5(b), a series of processes from steps S904 to S911 are repeatedly executed while the key number variable value N is changed from 1 to 88 in the same manner as described above. As a result, when the key number N is 44, in step S908, it is determined that the resonance pitch candidate value res_pitch_c=E5 obtained from the key-depression corresponding resonance pitch candidate table data illustrated in Fig. 5(b) matches the second resonance pitch of the key number 44 obtained from the key-specific resonance pitch calculation table data illustrated in Fig. 3, and the determination in step S908 is YES, and when the key number N is 52, it is determined that the resonance pitch candidate value res_pitch_c=C6 obtained from the key-depression corresponding resonance pitch candidate table data illustrated in Fig. 5(b) matches the second resonance pitch of the key number 52 obtained from the key-specific resonance pitch calculation table data illustrated in Fig. 4, and the determination in step S908 is YES. As a result, through steps S909 and S910, in step S911, the entries in the fourth and fifth rows of the sounding resonance information table data illustrated in Fig. 5(c) are registered.
[0103] Fig. 10 is a flowchart showing a detailed example of a first embodiment of the resonance arbitration process in step S910 in Fig. 9. First, the CPU 101 searches for an entry that includes the same resonance pitch as the resonance pitch candidate value res_pitch_c to be registered as the resonance information table data after the process in step S907 or S908 in Fig. 9 and has the same resonance tone color in the resonance information table data corresponding to another pressed key that has already been created in advance in the RAM 103 (step S1001).
[0104] Next, CPU 101 determines whether or not the search in step S1001 was successful (step S1002).
[0105] If the determination in step S1002 is NO, there is no particular need to perform resonance arbitration, and the resonance arbitration process in step S910 in FIG. 9, as exemplified in the flowchart in FIG. 10, is thus ended.
[0106] If the determination in step S1002 is YES, the CPU 101 determines whether or not the value obtained by multiplying the key pressing velocity detected in step S701 of FIG. 7 by the resonance intensity ratio candidate value res_amp_c to be registered as the pronunciation resonance sound information table data after the processing in step S907 or S908 of FIG. 9 is greater than all the pronunciation resonance intensities (see FIG. 5(c)) of the same pitch of all the entries searched in step S1001 (step S1003).
[0107] If the determination in step S1003 is NO, the CPU 101 does not register the current sound / resonance information table data, but proceeds to step S912 in FIG.
[0108] If the determination in step S1003 is YES, the CPU 101 creates a note-off event of the resonance tone corresponding to the pronunciation resonance pitch of the entry of the pronunciation resonance tone information table data searched in step S1001 (step S1004), and sends the note-off event to the sound source LSI 106 (step S1005). Upon receiving the note-off event, the sound source LSI 106 executes a muting process to stop the output of the waveform data of the resonance tone from the waveform generator 210 in the pronunciation channel corresponding to the pronunciation resonance pitch in the note-off event.
[0109] Finally, CPU 101 deletes the entry of the sound resonance information table data found in step S1001 from the sound resonance information table data (step S1006). This gives priority to the sound generation of the resonance by the current key press. CPU 101 then ends the sound resonance arbitration process in step S910 of Fig. 9, as exemplified in the flowchart of Fig. 10, and proceeds to the sound resonance information table data registration process in step S912 of Fig. 9.
[0110] Fig. 11 is a flowchart showing a detailed example of the second embodiment of the resonance arbitration process in step S910 in Fig. 9. Steps S1001, S1002, and S1003 in Fig. 11 are similar to those in the first embodiment in Fig. 10.
[0111] If the determination in step S1003 is YES, the CPU 101 creates an event for increasing the amplitude envelope for the sound channel of the sound resonance pitch of the entry of the sound resonance information table data searched in step S1001 (step S1101), and sends the event to the sound source LSI 106 (step S1102). Upon receiving the event, the sound source LSI 106 controls the DSP 202 to execute a process for increasing the amplitude envelope of the sound channel corresponding to the sound resonance pitch in the event.
[0112] Finally, the CPU 101 updates the resonance intensity of the entry in the resonance information table data searched in step S1001 to a value obtained by multiplying the key depression velocity detected in step S701 of Fig. 7 by the resonance intensity ratio candidate value res_amp_c. After that, the CPU 101 does not register the current resonance information table data, and proceeds to step S912 of Fig. 9 to increment the value of the key number variable value N by 1.
[0113] Fig. 12 is a flowchart showing a detailed example of the third embodiment of the resonance arbitration process in step S910 in Fig. 9. First, the CPU 101 counts all the pronunciation resonance pitch numbers registered in all the pronunciation resonance information table data already created in advance on the RAM 103, and stores the count result in the variable res_num on the RAM 103 (step S1201).
[0114] Next, CPU 101 determines whether or not the count value res_num in step S1201 has reached the maximum allowable value of the resonance sound, for example, 32 (step S1202).
[0115] If the determination in step S1202 is NO, there is no particular need to perform resonance arbitration, and the resonance arbitration process in step S910 in FIG. 9, as exemplified in the flowchart in FIG. 12, is thus ended.
[0116] If the determination in step S1202 is YES, the CPU 101 creates a note-off event of the resonance corresponding to the resonance pitch of the entry corresponding to the smallest value among the resonance intensities registered in the resonance information table data already created in advance in the RAM 103 (step S1203), and sends the note-off event to the sound source LSI 106 (step S1204). Upon receiving the note-off event, the sound source LSI 106 executes a muting process to stop the output of the waveform data of the resonance from the waveform generator 210 in the sound channel corresponding to the resonance pitch in the note-off event.
[0117] Finally, CPU 101 deletes the entry found in step S1203 from the sound generation resonance information table data in RAM 103 that includes the entry (step S1205). This gives priority to the sound generation of the resonance due to the current key press within the range of the maximum sound generation number of resonances (e.g., 32 sound generation channels). CPU 101 then ends the sound generation arbitration process in step S910 in Fig. 9, as exemplified in the flowchart in Fig. 10, and proceeds to the registration process of the sound generation resonance information table data in step S912 in Fig. 9.
[0118] According to the embodiment described above, sympathetic sounds can be produced even when the strings are damped, and the sympathetic sound can be produced by changing the sympathetic string frequency, sympathetic volume, and sympathetic tone color depending on the open string state, making it possible to obtain a more acoustic resonance.
[0119] Although the embodiment described above has been described using an electronic piano as an example, the present invention can be applied to various electronic musical instruments, including electronic stringed instruments.
[0120] Although the disclosed embodiments and their advantages have been described in detail above, those skilled in the art may make various modifications, additions, and omissions without departing from the scope of the present invention as clearly set forth in the claims.
[0121] In addition, the present invention is not limited to the above-mentioned embodiment, and various modifications can be made in the implementation stage without departing from the gist of the invention. In addition, the functions executed in the above-mentioned embodiment may be implemented in appropriate combinations as much as possible. The above-mentioned embodiment includes various steps, and various inventions can be extracted by appropriate combinations of the multiple components disclosed. For example, if an effect can be obtained even if some components are deleted from all the components shown in the embodiment, the configuration from which the components are deleted can be extracted as an invention.
[0122] The following supplementary notes are further disclosed regarding the above-described embodiment. (Appendix 1) When a first key is pressed, it is determined whether a second key having a pitch that is in a harmonic relationship with the pitch of the first key is in a damped state or a non-damped state; generating a resonance sound of the second key at least in one of a first resonance pitch and a first tone color when the second key is determined to be in the non-damped state; When it is determined that the second key is in the damp state, a resonance sound of the second key is generated at least in one of a second resonance pitch and a second tone color. An electronic musical instrument that performs processing. (Appendix 2) 2. The electronic musical instrument of claim 1, wherein the second key includes a plurality of keys. (Appendix 3) 3. The electronic musical instrument according to claim 1, wherein the second resonance pitch corresponding to the second key is higher than the first resonance pitch. (Appendix 4) 4. An electronic musical instrument as claimed in any one of claims 1 to 3, wherein the resonance of the second key is generated based on resonance intensity information set for each of a plurality of harmonic relationships. (Appendix 5) The non-damper state includes a case where the non-damper state is set by turning on a damper pedal, and a case where the non-damper state is set in response to an operated performance operator, The damp state includes a case where the damper pedal is in an OFF state and a performance operator is not operated. 5. An electronic musical instrument according to any one of appendix 1 to 4. (Appendix 6) When a new resonance tone corresponding to the second key is generated in response to a new key depression during generation of a musical tone including the resonance tone corresponding to the second key, a first velocity of the resonance tone being generated is compared with a second velocity of the resonance tone generated in response to the new key depression; 6. The electronic musical instrument according to claim 1, wherein the generation of resonance sounds is controlled according to a result of the comparison. (Appendix 7) Electronic musical instrument computers, When a first key is pressed, it is determined whether a second key having a pitch that is in a harmonic relationship with the pitch of the first key is in a damped state or a non-damped state; generating a resonance sound of the second key at least in one of a first resonance pitch and a first tone color when the second key is determined to be in the non-damped state; When it is determined that the second key is in the damp state, a resonance sound of the second key is generated at least in one of a second resonance pitch and a second tone color. method. (Appendix 8) Electronic musical instrument computers, when a first key is pressed, determining whether a second key having a pitch that is in a harmonic relationship with the pitch of the first key is in a damped state or a non-damped state; generating a resonance sound of the second key at least in one of a first resonance pitch and a first tone color when the second key is determined to be in the non-damped state; When it is determined that the second key is in the damp state, a resonance sound of the second key is generated at least in one of a second resonance pitch and a second tone color. program. [Explanation of symbols]
[0123] 100 Electronic Instruments 101 CPU 102 ROM 103 RAM 104 keyboard 105 Switch section 106 Sound source LSI 107 Sound System 108 System Bus 201 Waveform Generator 202 DSP 203 Bus Interface 204 Mixer 210 Waveform Generator
Claims
1. When a first key is pressed, a musical tone corresponding to the first key is synthesized with a resonance tone corresponding to a state of a second key having a pitch that is in a harmonic relationship with the pitch of the first key; When a new resonance tone corresponding to the second key is generated in response to a new key depression during generation of a musical tone including the resonance tone corresponding to the second key, a first velocity of the resonance tone being generated is compared with a second velocity of the resonance tone generated in response to the new key depression; Depending on the comparison result, the generation of the resonance sound is controlled. An electronic musical instrument that performs processing.
2. The electronic musical instrument of claim 1 , wherein the second key comprises a plurality of keys.
3. The resonance sound is a resonance sound depending on whether a second key having a pitch that is in a harmonic relationship with the pitch of the first key is in a damped state or a non-damped state.
3. An electronic musical instrument according to claim 1 or 2.
4. When the second key is in the non-damped state, a resonance tone of a first resonance pitch or a first tone color corresponding to the second key is synthesized with a musical tone directly corresponding to the first key; When the damped state is selected, a resonance tone having a second resonance pitch higher than the first resonance pitch corresponding to the second key or a resonance tone having a second tone color is synthesized with a musical tone directly corresponding to the first key.
4. The electronic musical instrument according to claim 3.
5. The resonance is generated based on resonance intensity information set for each of a plurality of harmonic relationships.
5. An electronic musical instrument according to claim 1.
6. The non-damper state includes a case where the non-damper state is set by turning on a damper pedal, and a case where the non-damper state is set in response to an operated performance operator, The damp state includes a case where the damper pedal is in an OFF state and a performance operator is not being operated.
5. An electronic musical instrument according to claim 3 or 4.
7. when a new resonance tone corresponding to the second key is generated in response to a new key depression during generation of a musical tone including the resonance tone corresponding to the second key, generation of the resonance tone is controlled in accordance with the number of pitches being generated and the resonance intensity information.
6. The electronic musical instrument according to claim 5.
8. Electronic musical instrument computers, When a first key is pressed, a musical tone corresponding to the first key is synthesized with a resonance tone corresponding to a state of a second key having a pitch that is in a harmonic relationship with the pitch of the first key; When a new resonance tone corresponding to the second key is generated in response to a new key depression during generation of a musical tone including the resonance tone corresponding to the second key, a first velocity of the resonance tone being generated is compared with a second velocity of the resonance tone generated in response to the new key depression; Depending on the comparison result, the generation of the resonance sound is controlled. method.
9. Electronic musical instrument computers, When a first key is pressed, a musical tone corresponding to the first key is synthesized with a resonance tone corresponding to a state of a second key having a pitch that is in a harmonic relationship with the pitch of the first key; When a new resonance tone corresponding to the second key is generated in response to a new key depression during generation of a musical tone including the resonance tone corresponding to the second key, a first velocity of the resonance tone being generated is compared with a second velocity of the resonance tone generated in response to the new key depression; Depending on the comparison result, the generation of the resonance sound is controlled. program.
Citation Information
Patent Citations
Device and method for resonance and computer program for resonance processing
JP2002311957A
Resonance sound generation device, resonance sound generation method, program, and electronic musical instrument
JP2016180816A
Resonance sound controller
JP2018185409A
Electronic keyboard instrument, electronic musical instrument, method, program
JP6690763B2