The present disclosure relates to an electronic musical instrument, a sound production method for an electronic musical instrument, and a storage medium therefor.
Some electronic musical instruments are equipped with an automatic arpeggio function that generates arpeggio playing sounds as distributed chords according to a predetermined tempo and pattern, instead of simultaneously producing all the musical sounds pressed by the performer. See, e.g., Japanese Patent Application Laid-Open Publication No. 2005-77763.
The features and advantages of the invention will be set forth in the descriptions that follow and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims thereof as well as the appended drawings.
To achieve these and other advantages and in accordance with the purpose of the present invention, as embodied and broadly described, in one aspect, the present disclosure provides an electronic musical instrument, including: a plurality of performance elements that specify pitch data; a sound source that produces musical sounds; and a processor configured to perform the following: when a user performance of the plurality of performance elements satisfies a prescribed condition, instructing the sound source to produce automatic arpeggio playing sounds corresponding to pitch data specified by the user performance; and when the user performance of the plurality of performance elements does not satisfy the prescribed condition, instructing the sound source to produce a sound of a pitch data specified by the user performance without producing the automatic arpeggio playing sound.
In another aspect, the present disclosure provides a method of sound production performed by a processor in an electronic musical instrument that includes, in addition to the processor, a plurality of performance elements that specify pitch data and a sound source that produces musical sounds, the method including, via said processor: when a user performance of the plurality of performance elements satisfies a prescribed condition, instructing the sound source to produce automatic arpeggio playing sounds corresponding to pitch data specified by the user performance; and when the user performance of the plurality of performance elements does not satisfy the prescribed condition, instructing the sound source to produce a sound of a pitch data specified by the user performance without producing the automatic arpeggio playing sound.
In another aspect, the present disclosure provides a non-transitory computer-readable storage medium storing a program executable by a processor in an electronic musical instrument that includes, in addition to the processor, a plurality of performance elements that specify pitch data and a sound source that produces musical sounds, the program causing the processor to perform the following: when a user performance of the plurality of performance elements satisfies a prescribed condition, instructing the sound source to produce automatic arpeggio playing sounds corresponding to pitch data specified by the user performance; and when the user performance of the plurality of performance elements does not satisfy the prescribed condition, instructing the sound source to produce a sound of a pitch data specified by the user performance without producing the automatic arpeggio playing sound.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory, and are intended to provide further explanation of the invention as claimed.
Hereinafter, embodiments for carrying out the present disclosure will be described in detail with reference to the drawings.
The performer can select whether to enable or disable the automatic arpeggio by pressing the automatic arpeggio ON/OFF button 102 arranged in the arpeggio section on the upper right panel of the electronic keyboard instrument 100, for example.
The performer can also select one of the following three types of automatic arpeggios by the TYPE button group 104, which is also arranged in the Arpeggio section.
1. Up button: A button for arpeggiating the pressed notes in a rising order. For example, if notes C, E, G in the same octave are the targets of the arpeggio, the arpeggio playing is repeated as in C, E, G, C, E, G, and so on.
2. Down button: A button for arpeggiating the pressed notes in a descending order. For example, if C, E, G in the same octave are the targets of the arpeggio, the arpeggio playing is repeated as in G, E, C, G, E, C . . . .
3. Up/Down button: A button for arpeggiating of the pressed notes in the ascending and descending order. For example, if C, E, G in the same octave are the targets of the arpeggio, the arpeggio playing is repeated as in C, E, G, E, C, E, G, E, C, . . . .
Further, the performer can adjust the speed of the automatic arpeggio playing by the position of the TEMPO knob 103 that is also arranged in the arpeggio section. When the TEMPO knob 103 is turned to the right, the interval between notes becomes shorter, and when it is turned to the left, the interval becomes longer.
When the performer presses the automatic arpeggio ON/OFF button 102, the automatic arpeggio mode is set, and the LED (Light Emitting Diode) of the automatic arpeggio ON/OFF button 102 lights up. In this state, when the performer presses the automatic arpeggio ON/OFF button 102 again, the automatic arpeggio mode is canceled and the LED of the automatic arpeggio ON/OFF button 102 is turned off.
The CPU 201 executes control operations of the electronic keyboard instrument 100 of
The key scanner 206 constantly scans the key-pressed/released state of the keyboard 101 of
The I/O interface 207 detects the operation states of the automatic arpeggio ON/OFF button 102 and the TYPE button group 104 of
The A/D converter 215 converts analog data indicating the operation position of the TEMPO knob 103 of
A timer 210 is connected to the CPU 201. The timer 210 generates an interrupt at regular time intervals (for example, 1 millisecond). When this interrupt occurs, the CPU 201 executes an elapsed time monitoring process described later using the flowchart of
More specifically, in the elapsed time monitoring process, when the arpeggio playing sound is not being produced, the CPU 201 measures an elapsed time from the key press detection timing of the first key press operation for any key on the keyboard 101 of
If the result of the determination is positive, the CPU 201 instructs the sound source LSI 204 to produce arpeggio playing sounds corresponding respective pitch data specified by the first key press operation and the second key press operation, which correspond to pitch data group of keys pressed during the above-mentioned prescribed elapsed time. Along with this operation, the CPU 201 sets the automatic arpeggio enabled state. If the result of the above determination is negative, the CPU 201 does not instruct the sound source LSI 204 to produce the arpeggio playing sound, and instead instructs the sound source LSI 204 to produce normal playing sounds corresponding to the pitch data specified by the first key press operation and the second key press operation.
In the above-mentioned keyboard event processing, when the automatic arpeggio enabled state is on (set), the CPU 201 does not instruct the sound source LSI 204 to stop the arpeggio playing sound production until all of the keys corresponding to the pitch data of the arpeggio playing sounds are released. When all of such keys are released, the CPU 201 instructs the sound source LSI 204 to stop the production of the arpeggio playing sound and cancels the automatic arpeggio enabled state.
While the automatic arpeggio enabled state is being canceled, CPU 201 performs the process of determining whether or not the number of keys pressed within the elapsed time that defines simultaneous key pressing period has reached the prescribed number that can be regarded as chord performance in the above-mentioned elapsed time monitoring process. When a key release event of a key that was not involved in the automatic arpeggio playing occurs, the CPU 201 instructs the sound source LSI 204 to stop the production of the normal sound corresponding to that key.
The waveform ROM 211 is connected to the sound source LSI 204. In accordance with the sound production instructions from the CPU 201, the sound source LSI 204 starts reading the musical tone waveform data 214 from the waveform ROM 211 at a speed corresponding to the pitch data included in the sound production instructions, and outputs the data to the D/A converter 212. The sound source LSI 204 may have, for example, the ability to simultaneously produce a maximum of 256 voices by time division processing. According to the mute instructions from the CPU 201, the sound source LSI 204 stops reading the musical tone waveform data 214 corresponding to the mute instructions from the waveform ROM 211, and ends the sound production of the corresponding musical sound.
The LCD controller 208 is an integrated circuit that controls the display state of the LCD 104 of
The network interface 205 is connected to a communication network such as Local Area Network (LAN), and receives control programs (see the flowcharts of the keyboard event processing and the elapsed time monitoring processing described later) and/or data used by the CPU 201 from an external device. Then, they can be loaded into RAM 203 or the like and used by the CPU 201.
An operation example of the embodiment shown in
In the above automatic arpeggio enabled state, in order to maintain natural arpeggio playing state, the automatic arpeggio enabled state is maintained even if some of the keys for which the above determination was made are released and the number of pressed keys becomes less than N notes. However, when all the keys for which the above determination was made are released, the automatic arpeggio enabled state is canceled.
In addition, once the automatic arpeggio is enabled (turned on), a musical sound of the pitch corresponding to a new key press event will be the normal sound, no matter what the performer plays, as long as that state is maintained, and automatic arpeggio playing for the new note is not performed. This scheme is implemented because, for example, if you hold down 3 notes with your left hand to trigger the automatic arpeggio playing and thereafter hold down 3 notes at the same time with your right hand to shift to a 6-note arpeggio playing, the resulting arpeggio playing would become unnatural.
The number of notes N for determination of a chord play and the elapsed time T that defines simultaneous key playing period may be set separately, for example, for each performance situation by storing them in a registration memory (not shown), for example.
For example, the prescribed elapsed time T, that defines a time period of simultaneous key pressing events, can be set to about T=10 milliseconds in a situation in which a weak keystroke is not used for the automatic arpeggio playing sound. This is a case where, for example, notes (arpeggio playing sound) that are desired to be included in the arpeggio and a note (normal playing sound) that is not to be included in the arpeggio playing are played at short intervals. More specifically, by this setting, it is possible to deal with the case where you want to have the electronic instrument recognize your right hand playing as a solo playing (i.e., not arpeggio playing) by just slightly shifting the timing of the right hand playing after playing an arpeggio chord with your left hand. Alternatively, when a weak keystroke is used for the automatic arpeggio playing sound, T=50 milliseconds can be set. For example, although it takes some time to separate the solo playing sound (normal sound) from the arpeggio playing sound, the keyboard speed is slow during such a low-speed keystroke performance, so fluctuations in timing of detecting the automatic arpeggio enabled state would become large if the prescribed time T is too short. Thus, a long prescribed elapsed time T is suitable in this case.
Further, for the number of notes N for the chord playing determination, in a situation where an arpeggio is played with one hand and a solo is performed with the other hand; for example, the left hand is the arpeggio, the right hand is the melody line, or the right hand is the arpeggio, and the left hand is a base line or the like, N=3 may be set. In this case, an automatic arpeggio can be started with three notes, so a chord without an arpeggio can only be played up to two notes, but this case is suitable when the arpeggio is controlled with only one hand and a solo or bass is played with the other hand. Alternatively, N=5, for example, may be set in a situation where a chord playing to which the automatic arpeggio is not applied and a chord playing to which the automatic arpeggio is applied are to be played at the same time (i.e., the two cases are mixed). In this case, a chord playing of 4 or less notes does not trigger the automatic arpeggiating, and a chord playing of 5 or more notes triggers the automatic arpeggiating. Although the automatic arpeggio playing is performed only for 5 or more notes, this case is suitable when the performer basically plays many chords without arpeggiating.
In this way, the value of N can be set appropriately.
First, when the key pressing event t1 occurs while the automatic arpeggio enabled state has not been activated (or has been cancelled), the sound of the pitch C2 of the key pressing event t1 is started to be produced (the gray band period of t1), and measurement of the elapsed time is started. Subsequently, the key pressing event t2 occurs within the elapsed time T=10 milliseconds, which defines a time period for simultaneous key pressing, from the occurrence of the key pressing event t1, but while the determination as to whether a chord has been played is being made, the sound production of the musical tone corresponding to the key press event t2 is suspended, and therefore the start of the sound production of the pitch E2 of the key press event t2 does not occur (the gap period from the black circle of t2 to the start of the gray band line). When the elapsed time T of 10 milliseconds (judgment period for chord playing), which defines simultaneous key pressing determination period, has passed since the key press event t1, the number of keys that have been pressed to that time is only 2, which is less than N=3—the number of keys pressed for the chord playing determination. Thus, in this case, it is determined that a chord has not been played, and the normal sound production of the sound of the key press event t2 is started (the gray band line period of t2). Immediately after that, the key press event t3 occurs, but the key press event t3, which has occurred after the elapsed time T=10 milliseconds, which defines simultaneous key pressing determination period, is not considered to have been pressed at the same time, and the automatic arpeggio playing is not executed. Thus, the normal sound production of the sound of the key press event t3 is started without being arpeggiated (the gray band line period of t3).
After that, when the key pressing event t4 occurs while the automatic arpeggio enabled state has yet to be activated, the musical tone of the pitch C4 of the key pressing event t1 is started to be produced (the short gray band period of t4), and measurement of the elapsed time is started again. Subsequently, the key pressing events t5 (pitch E4) and t6 (pitch G4) occur (the black circles of t5 and t6) within the elapsed time T=10 milliseconds, which defines simultaneous key press period, from the occurrence of the key pressing event t4. At the time when these key pressing events t5 and t6 occur, the sound production instructions are not given until the elapsed time T has passed and the judgment result of the chord performance is available (immediately after the black circles t5 and t6 in
At this time, since the sound production of the key press event t4 has already started (a short gray band period of t4), it is interpreted as the first sound of the automatic arpeggio playing, as it is, without separately generating a first sound for the automatic arpeggio playing.
As shown in the reference numeral 301 in
Further, the sound production type of the arpeggio playing for the pitch data C4, E4, and G4 of the key pressing events t4, t5, and t6 is set to the type specified by the TYPE button group 104 of
Further, when T=10 milliseconds (the chord determination period) elapses from the occurrence of the key press event t4, the automatic arpeggio enabled state is set (302 in
During the period from when the automatic arpeggio enabled state is set to when the setting is cancelled, the CPU 201 automatically instructs the sound source LSI 204 to perform sound production/muting for the arpeggio playing of the three pitch data C4, E4, G4 of the key press events t4, t5, t6 shown as 305 in
While the automatic arpeggio enabled state is maintained, the key press event t7 occurs, but the automatic arpeggio enabled state based on the occurrence of the key press events t4, t5, and t6 has been already set (i.e., the prescribed condition for the automatic arpeggio playing is not satisfied for the key press event t7). Therefore, for the key press event t7, the normal sound production having the specified pitch B4♭ is performed instead of arpeggio playing for that note (the gray band line period of t7).
Further, the key pressing events t8, t9, and t10 occur within the elapsed time T=10 milliseconds, which defines the simultaneous key pressing period. However, again during this period, the automatic arpeggio enabled state is being set (i.e., the prescribed condition for automatic arpeggio playing is not met), and therefore, the sound production of the specified pitches C3, E3, and G3 of the key pressing events t4, t5, and t6 is performed in a normal manner without arpeggiating them (the respective gray band periods of t8, t9, and t10).
Then, a key release event for the key press event t4 occurs at the timing of the white circle of t4, but key release events for the other key press events t5 and t6 constituting the automatic arpeggio playing have not yet occurred. Therefore, the automatic arpeggio enabled state of the key pressing events t4, t5, and t6 is maintained. Subsequently, a key release event for the key press event t5 occurs at the timing of the white circle of t5, but a key release event for the remaining key press event t6 constituting the automatic arpeggio playing sound has not yet occurred. Therefore, the automatic arpeggio enabled state for the key press events t4, t5, and t6 is still maintained. Finally, when a key release event for the key press event t6 occurs at the timing of the white circle of t6, the key release events for all the key press events t4, t5, and t6 constituting the automatic arpeggio playing sounds have occurred and therefore, the automatic arpeggio enabled state of the key events t4, t5, and t6 is canceled (303 in
Then the key press event t11 occurs after the automatic arpeggio enabled state is canceled. The musical sound of the pitch C2 of the key press event t11 is started to be produced (the short gray band period of t11), and measurement of the elapsed time is again started. Subsequently, the key pressing events t12, t13, and t14 occur within the elapsed time T=10 milliseconds, which are therefore considered to have been pressed at the same time, from the occurrence of the key pressing event tn. At the moment of occurrences of these key pressing events t12, t13, and t14, the sound production instructions are suspended until the elapsed time T elapses and the determination result for the chord performance is known (short periods immediately after the black circles of the events t12, t13, and t14 in
In the keyboard event processing illustrated in the flowchart of
When it is determined in step S401 that the interrupt notification indicates a key press event, the CPU 201 determines whether the automatic arpeggio enabled state is currently set or not (step S402). In this process, for example, whether or not the automatic arpeggio enabled state is set is determined based on the logical value (either ON or OFF) of a predetermined variable (hereinafter, this variable is referred to as an “arpeggio enabled state variable”) stored in the RAM 203 of
If it is determined in step S402 that the automatic arpeggio enabled state is set, the CPU 201 proceeds to step S407, which will be described later, and instructs the sound source LSI 204 to produce the normal playing sound. This state corresponds to the keyboard event processing when the key press events t7 to t10 in the operation explanatory diagram of
When it is determined in step S402 that the automatic arpeggio enabled state is canceled/not set, the CPU 201 stores the pitch data instructed to be produced in this key press event as a possible note for the arpeggio playing in RAM 203, for example (step S403).
Next, the CPU 201 adds 1, which corresponds to the current pressed key event, to the current number of notes that are regarded as simultaneous key pressing (a variable in RAM 203, for example, for counting the number of such notes) so as to update the current number of notes variable (step S404). The value of this current number of notes variable is counted this way in order to compare it with the chord playing establishing number of notes N for transitioning to the automatic arpeggio enabled state during the elapsed time T that defines simultaneous key pressing in the elapse time monitoring process shown in
After that, the CPU 201 determines whether or not the value of the current number of notes variable set in step S404 is 1, that is, whether or not the key is pressed for the first time in the state where the automatic arpeggio valid state is canceled/not set (step S405).
If the determination in step S405 is YES, the CPU 201 starts measurement of the elapsed time by starting an interrupt process by the timer 210, and set the value of the “elapsed time variable” (a predetermined variable in RAM 203, for example) that indicates the elapsed time towards transitioning to the automatic arpeggio enabled state (step S406) to 0. This state corresponds to the timing at which the key pressing events t1, t4, or t11 in the operation explanatory diagram of
After that, the CPU 201 issues sound production instructions for a normal sound production to the sound source LSI 204 (step S407). This state corresponds to the timing (the start timing of each gray band line following the black circles t1, t4, and t11 in
If the determination in step S405 is NO, the CPU 201 does not execute the process of starting the measurement of the elapsed time in step S406 because the measurement of the elapsed time for shifting to the automatic arpeggio enabled state has already started. At the same time, the sound production instructions corresponding to the current key pressing event is suspended until the elapsed time T that defines simultaneous key pressing period elapses and the determination result of the chord performance is found (step S408). Specifically, the CPU 201 stores the pitch data corresponding to the current key press event in a predetermined variable on the RAM 203 of
By repeating the series of processes from steps S403 to S408 for each keyboard event process described above, in the operation example of
When it is determined in step S401 described above that the interrupt notification indicates a key release event, the CPU 201 determines whether or not the released key is the key that was subject to the automatic arpeggio playing (step S409). Specifically, the CPU 201 determines whether or not the pitch data of the released key is included in the pitch data group subject to the arpeggio playing stored in the RAM 203 (see step S403).
If the determination in step S409 is NO, the CPU 201 instructs the sound source LSI 204 to mute the normal playing sound of the pitch data (note number) included in the interrupt notification indicating the key release event that has been produced by the sound source LSI 204 (see step S407) (step S410). By this processing, in the operation example of
If the determination in step S409 is YES, the CPU 201 deletes the record of the pitch data of the released key from the pitch data group subject to the arpeggio playing (see step S403) stored in the RAM 203 (step S411).
After that, the CPU 201 determines whether or not all the keys subject to the automatic arpeggio playing have been released (step S412). Specifically, the CPU 201 determines whether or not the pitch data of all the arpeggio playing notes stored in the RAM 203 have been deleted.
If the determination in step S412 is NO, the CPU 201 ends the current keyboard event processing shown in the flowchart of
When the determination in step S412 becomes YES, the CPU 201 instructs the sound source LSI 204 to stop the automatic arpeggio playing (step S413).
Then, the CPU 201 cancels the automatic arpeggio enabled state by setting the value of the arpeggio enabled state variable to a value indicating the logic state off (step S414).
The processes of steps S413 and S414 described above correspond to the cancellation timing 303 of the automatic arpeggio enabled state in
After that, the CPU 201 ends the current keyboard event processing shown in the flowchart of
In the elapsed time monitoring process exemplified by the flowchart of
Next, the CPU 201 determines whether or not the value of the elapsed time variable is equal to or greater than the prescribed elapsed time T that defines a simultaneous key pressing period (step S502).
When the determination in step S502 is NO, that is, when the value of the elapsed time variable is less than the elapsed time T that defines the simultaneous key pressing time period, the CPU 201 terminates the current elapsed time monitoring process shown in the flowchart of
When the determination in step S502 is YES, that is, when the value of the elapsed time variable becomes equal to or greater than the elapsed time T that defines the simultaneous key press time period, the CPU 201 determines whether or not the value of the current number of notes variable stored in the RAM 203 (see step S404 in
If the determination in step S503 is YES, the CPU 201 instructs the sound source LSI 204 to perform automatic arpeggio playing of the pitch data of the number of notes indicated by the value of the current number of notes variable stored in the RAM 203 (step S504). The control of the automatic arpeggio playing is executed by a control program of the arpeggio playing that is provided separately.
Subsequently, the CPU 201 sets the automatic arpeggio enabled state by setting the logical value of the arpeggio enabled state variable stored in the RAM 203 to a value indicating that it is ON (step S505).
According to the above steps S504 and S505, in the operation example of
If the determination in step S503 is NO, the CPU 201 issues sound production instructions for the note for which the sound production has been on hold in step S408 of
After that, the CPU 201 deletes the pitch data that have been stored in the RAM 203 for arpeggio playing in step S403 of
After the process of step S505 or S507, the CPU 201 clears the value of the current number of notes variable stored in the RAM 203 to 0 (step S508).
Thereafter, the CPU 201 ends the elapsed time monitoring process shown in the flowchart of
In the operation explanatory diagram of
As described above, the present embodiment determines whether or not a chord playing has been performed according to the number of keys pressed on the keyboard 101 by the performer and the time intervals of such plurality of key presses. And only for the note group corresponding to the keys that have determined to be pressed simultaneously, the automatic arpeggio enabled state is set and the automatic arpeggio playing sounds are produced, and for the notes other than those, the normal playing sound is produced immediately.
According to the above embodiment, the electronic musical instrument can produce automatic arpeggio playing only for the required musical tones if the performer naturally plays a distributed chord (arpeggio performance) and a melody (normal performance) in an appropriate note range without performing a special operation, such as actually performing arpeggios on the keyboard 101. Therefore, the performer can concentrate on his/her own performance without compromising the performance or the musical tone.
As another embodiment, a split point that divides a left area and a right area can be defined in the keyboard 101 so that an automatic arpeggio playing can be determined for each of the left and right key areas independently, so that the arpeggio playing may be performed automatically in correspondence with the performance of the respective hands.
In the above-described embodiments, an example in which the automatic arpeggio playing function is implemented in the electronic keyboard instrument 100 has been described, but in addition to this, this function can also be implemented in an electronic string instrument such as a guitar synthesizer or a guitar controller.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover modifications and variations that come within the scope of the appended claims and their equivalents. In particular, it is explicitly contemplated that any part or whole of any two or more of the embodiments and their modifications described above can be combined and regarded within the scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2020-109144 | Jun 2020 | JP | national |