1. Field of the Invention
The present invention relates to automatic accompaniment generating apparatus and method in which automatic accompaniment data is generated based on supplied automatic accompaniment pattern data and input note information.
2. Description of the Related Art
An automatic accompaniment generating apparatus has conventionally been known that generates automatic accompaniment data based on supplied automatic accompaniment pattern data and input note information.
As such an automatic accompaniment generating apparatus, there is known a so-called arpeggiator that generates an arpeggio (broken chord) in response to a key depression. In the arpeggiator, arpeggio pattern data comprised of a plurality of key numbers (which are not note numbers corresponding to tone pitches, but are simple numbers) and sounding timings thereof are stored in advance, and numbers are assigned in advance to tone pitches of a plurality of tones in accordance with a predetermined rule (for example, in the order from low tone pitch). When plural keys are simultaneously depressed, the arpeggiator determines key numbers in the arpeggio pattern data corresponding to the depressed keys, and sequentially generates, at sounding timings, the tone pitches assigned with the numbers corresponding to the determined key numbers. As a result, an arpeggio is generated based on the key depression tones. In this way, when keys are depressed by the user, the arpeggiator sequentially generates and outputs sounding data in accordance with key depression tones and arpeggio pattern data. After completion of the generation and output of sounding data corresponding to the last part of the arpeggio pattern data, the first and subsequent parts of the arpeggio pattern data are again generated for output. As a result, so long as the keys are kept depressed by the user, the sounding data is continuously generated for output based on the key depression tones and the arpeggio pattern data. For the arpeggio generation, some arpeggiator uses fixed-note-type arpeggio pattern data, in part of which fixed tone pitches are specified (see, for example, Japanese Laid-open Patent Publication No. 2001-22354).
When a plurality of tones (for example, chord tones) are input by a key depression, the above-described prior art arpeggiator sounds the input chord, generates an arpeggio based on the input chord, and sounds the arpeggio. As described above, the arpeggio is continuously generated and sounded so long as the keys are kept depressed. In such a case, the chord is caused to be continuously sounded while the keys are kept depressed, and therefore, the arpeggio is sounded in an overlapping relation with the chord. With the above described conventional arpeggiator, even if the user wishes to produce tones by decoratively adding the arpeggio (more specifically, by restricting the number of times of sounding the arpeggio) while causing the chord to be continuously sounded, the arpeggio is continuously sounded in an overlapping relation with the chord (i.e., sounding the arpeggio cannot be restricted) while the keys for the chord are kept depressed. As a result, the above user's demand cannot be satisfied.
Some user wishes to use arpeggio pattern data once so as to generate an arpeggio corresponding to depressed keys only one time. To realize such arpeggio generation using the above-described conventional arpeggiator, the user is required to accurately grasp the entire length of the arpeggio pattern data to be used, and also required to accurately adjust a time period of depression of chord keys so as to use the arpeggio pattern data only one time. If the user fails to accurately adjust the time period of depression of the chord keys, the arpeggio pattern data does not end in the first-time use but ends during the second-time use. In that case, the arpeggio generation is unnaturally interrupted.
The present invention provides automatic accompaniment generating apparatus and method capable of generating an automatic accompaniment as intended by a user.
According to a first aspect of this invention, there is provided an automatic accompaniment generating apparatus comprising a supply unit adapted to supply automatic accompaniment pattern data, an input unit adapted to input at least one piece of note information including tone pitch information, a generation unit adapted to generate automatic accompaniment data based on the note information input by the input unit and the automatic accompaniment pattern data supplied by the supply unit, and an acquisition unit adapted to acquire number-of-times information that indicates a number of times the supplied automatic accompaniment pattern data is to be repeatedly used by the generation unit to generate the automatic accompaniment data, wherein the generation unit repeatedly uses the supplied automatic accompaniment pattern data the number of times indicated by the number-of-times information acquired by the acquisition unit, to thereby generate the automatic accompaniment data.
With this automatic accompaniment generating apparatus, when automatic accompaniment data is generated based on at least one piece of input note information and supplied automatic accompaniment pattern data, the automatic accompaniment pattern data is repeatedly used the number of times indicated by number-of-times information acquired, to thereby generate automatic accompaniment data. In other words, the automatic accompaniment data is generated while the number of times of using the automatic accompaniment pattern data is restricted as intended by a user. This makes it possible to generate an automatic accompaniment as intended by the user.
The generation unit can start generating the automatic accompaniment data in response to the at least one piece of note information being input, and can stop generating the automatic accompaniment data after the automatic accompaniment data is repeatedly generated the number of times indicated by the number-of-times information.
Non-specified information indicating that the number of times the supplied automatic accompaniment pattern data can be repeatedly used is not specified can be set as the number-of-times information, and when the non-specified information is set, the supplied automatic accompaniment pattern data can be repeatedly used until the at least one piece of note information is no longer input.
The number-of-times information can be set by a user.
The automatic accompaniment pattern data can be arpeggio pattern data.
According to a second aspect of this invention, there is provided an automatic accompaniment generating method comprising a supply step of supplying automatic accompaniment pattern data, a generation step of generating automatic accompaniment data based on at least one piece of input note information including tone pitch information and the automatic accompaniment pattern data supplied by the supply step, and an acquisition step of acquiring number-of-times information that indicates a number of times the supplied automatic accompaniment pattern data is to be repeatedly used by the generation step to generate the automatic accompaniment data, wherein the generation step repeatedly uses the supplied automatic accompaniment pattern data the number of times indicated by the number-of-times information acquired by the acquisition step, to thereby generate the automatic accompaniment data.
With the automatic accompaniment generating method, it is possible to attain advantages similar to those attained by the automatic accompaniment generating apparatus of this invention.
Further features of the present invention will become apparent from the following description of an exemplary embodiment with reference to the attached drawings.
The present invention will now be described in detail below with reference to the drawings showing a preferred embodiment thereof.
As shown in
The above component elements 2 to 10 are connected to one another via a bus 12. The external equipment 100 is connected to the communication I/F 8, the effect circuit 10 to the tone generator circuit 9, and the sound system 11 to the effect circuit 10, respectively.
The external storage device 6 may be implemented, for example, by a flexible disk drive (FDD), a hard disk drive (HDD), a CD-ROM drive, or a magnetic-optical disk drive (MO). The external storage device 6 may store the control programs executed by the CPU 3 as mentioned above. If one or more of the control programs are not stored in the ROM 4, the control program(s) may be stored in the external storage device 6, and by reading out the control program(s) from the external storage device 6 and storing the same in the RAM 5, the CPU 3 can operate in the same manner as if the control program(s) were stored in the ROM 4. This enables adding control programs and upgrading the version of the control programs with ease.
Although in the illustrated example, the external equipment 100 is connected to the communication I/F 8, this is not limitative, but a server computer may be connected to the communication I/F 8 via a communication network such as a LAN (Local Area Network), the Internet, or a telephone line. When one or more of the above programs and various parameters are not stored in the external storage device 6, the communication I/F 8 is used to download such programs and parameters from the server computer. The arpeggiator as a client sends a command or commands for downloading one or more programs and parameters to the server computer via the communication I/F 8 and the communication network. Responsive to this command, the server computer distributes the requested program(s) and parameters to the arpeggiator via the communication network, and the arpeggiator receives the program(s) and parameters via the communication I/F 8 and stores them in the external storage device 6, thus completing the download.
Although the arpeggiator of this embodiment is constructed on the electronic keyboard musical instrument as understood from the above construction, this is not limitative, but the arpeggiator may be constructed on a general-purpose personal computer to which a keyboard is externally connected. The present invention can be embodied not only in a keyboard instrument type embodiment, but also in other embodiments of a string instrument type, a wind instrument type, a percussion instrument type, etc.
Control processing performed by the arpeggiator constructed as described above will be outlined with reference to
The arpeggiator of this embodiment mainly performs the following processing:
(A) Sounding data list generation processing, in which sounding data list is generated based on musical performance information (tone pitches in this embodiment) input by a user's key depression operation and arpeggio pattern data selected by the user;
(B) Sounding data list reproduction processing, in which the sounding data list generated by the sounding data list generation processing (A) is reproduced; and
(C) Sounding/muting processing, in which note on/off events are generated in response to a user's key depression/release operation and output to the tone generator circuit 9, thereby sounding/muting key depression/release tones.
A plurality types of arpeggio pattern data (e.g., for different tone colors) are stored beforehand, for example, in the external storage device 6. In this embodiment, an arpeggio pattern data group comprised of N sets of arpeggio pattern data each including sounding pattern data is stored in the external storage device 6, as shown by block 6a in
Each arpeggio pattern data includes sounding pattern data. As shown in
The sounding data list is shown in
At the timing of “0000”, C4 is generated (which is obtained by making a one-octave shift of the tone pitch (“C3”) of the key depression tone corresponding to the key number “1”).
At the timing of “0240”, G3 is generated (which is obtained by making a zero-octave shift of the tone pitch (“G3”) of the key depression tone corresponding to the key number “3”).
At the timing of “0480”, E3 is generated (which is obtained by making a zero-octave shift of the tone pitch (“E3”) of the key depression tone corresponding to the key number “2”).
At respective timings in the subsequent beats, other note numbers are generated.
In this embodiment, the sounding pattern data are used each having a length thereof corresponding to the length of one bar (in four-four time in the example of
Referring to
Next, the CPU 3 creates a sounding data list based on the arpeggio pattern data selected as described above and the tone pitch (key code) of the key depression tone stored in the key-on buffer as described above (block 3a). During the creation of the sounding data list, the arpeggio pattern data is used the number of times corresponding to the loop count set as described above. In this embodiment, the loop count may be set to a natural number (1, 2, . . . ) or set to be “unspecified”. When the loop count is set to, for example, a value of “2”, the CPU 3 repeatedly uses the arpeggio pattern data twice, to thereby create the sounding data list based on the key depression tone. When the loop count is set to be “unspecified”, the CPU 3 repeatedly uses the arpeggio pattern data until the key depression tone is no longer input, to thereby create the sounding data list based on the key depression tone.
The sounding data list thus created (or now being created) is reproduced by the sounding data list reproduction processing (B) provided in timer interrupt processing (not shown). More specifically, the sounding data list reproduction processing (B) is realized as follows:
(i) A free-run counter (not shown) provided at a predetermined position in the RAM 5 is counted up each time the timer interrupt processing is caused to start. For example, the timer interrupt processing is started at intervals equal to one period of the clock.
(ii) A count value of the free-run counter is compared with a sounding timing in the sounding data list. If it is determined that they are coincident with each other, a note number and a velocity corresponding to the sounding timing are read out from the sounding data list, and a note-on event including the note number and the velocity is generated and output to the tone generator circuit 9.
(iii) When a note-on event is generated in the step (ii), the free-run counter detects a value that is counted from the time point of generation of the note-on event to the present time point, and compares the detected value with a gate time corresponding to the generated note-on event. When determining that they are coincident with each other, the free-run counter generates a note-off event corresponding to the generated note-on event and outputs the same to the tone generator circuit 9.
Needless say, the free-run counter must be reset at a predetermined timing such as a timing of start of a key depression. Normally, the resetting is performed by setting the free-run counter to a value of “0”. In this embodiment, however, the free-run counter is set to a value of “−1” to thereby reset the free-run counter. This is because since the count value of the free-run counter is compared with a sounding timing after the count up of the free-run counter is started in this embodiment as described above, an event whose sounding timing is at a position of “0000” cannot be detected, if the free-run counter is reset to a value of “0”.
As shown in
In the case shown in
As described above, with the arpeggiator of this embodiment, the user wishing to produce tones such that the arpeggio is decoratively added to the continuously sounded chord (while restricting the number of times of sounding the arpeggio) can set the number of times of sounding the arpeggio by setting the loop count. In that case, the arpeggio can be sounded only the set number of times in an overlapping relation with the chord, even if the keys for the chord is kept depressed thereafter. In other words, with the arpeggiator of this embodiment, the arpeggio can be sounded in an overlapping relation with the chord for a time period corresponding to a part of the sounding duration time of the chord. As a result, it is possible to satisfy the user's demand of producing tones such that the arpeggio is decoratively added to the chord while the chord is continuously sounded. Thus, it is possible for the user to produce intended tones using the arpeggio or perform an intended musical performance using the arpeggio.
With the arpeggiator of this embodiment, the number of times of sounding the arpeggio can be set to, e.g., a value of “1”. In that case, even if keys for a chord are depressed for a time period longer than the length of arpeggio pattern data used for sounding the arpeggio (more strictly, the time period of reproduction of sounding data list generated using the arpeggio pattern data), the arpeggio pattern data is used only once and the arpeggio is sounded only one time. As a result, the user can release the depressed keys for the chord without considering the length of the arpeggio pattern data. Thus, the user can concentrate on playing the musical performance.
Next, the control processing will be described in detail.
In the control processing, the following processing is mainly carried out.
(1) Initial setting processing (steps S1 and S2)
(2) Sounding/muting processing (C) (steps S3, S4, S9, and S10)
(3) Arpeggio generation start/stop processing (steps S5 to S8, S11, and S12)
In the initializing processing (1), the CPU 3 causes the display 7 to display thereon a list of arpeggio pattern data group stored in the external storage device 6, thereby showing the list to the user. When any of arpeggio pattern data is selected by the user, the CPU 3 reads the selected arpeggio pattern data from the external storage device 6 into the arpeggio pattern data storage region (step S1). Next, the CPU 3 causes the display 7 to display thereon a list of candidates that can be set as the loop count to show the candidates to the user. When the user selects any of the candidates, the selected number of times or the selected choice “unspecified” is stored in a loop count storage region (not shown) provided at a predetermined position in the RAM 5 (step S2). When the user does not select any of the candidates as the loop count, the choice “unspecified” which is the default choice is stored in the loop count storage region.
In the sounding/muting processing (2), the CPU 3 first acquires musical performance information (one or more key depression tones) output from the detecting circuit 2 in response to a user's key depression operation and stores the same in the key-on buffer (step S3). Next, based on the key depression information stored in the key-on buffer, the CPU 3 generates one or more note-on events and outputs the same to the tone generator circuit 9 (step S4). The user's key depression operation is not necessarily to depress a plurality of keys but may be to depress one key. When acquiring the key release information (one or more key release tones) output from the detecting circuit 2 in response to a user's key release operation, the CPU 3 generates one or more note-off events based on the acquired key depression information, and outputs the same to the tone generator circuit 9 (steps S9 and S10). As a result, as shown in
In the arpeggio generation start/stop processing (3), the CPU 3 determines whether or not the key depression detected in the step S3 is new key-on (i.e., an initial key depression performed from a state where no key is depressed) (step S5). If the new key-on is detected, a loop counter (not shown) provided in a predetermined position in the RAM 5 for counting the loop count is reset to zero, and a readout pointer (not shown) provided in a predetermined position in the RAM 5 and specifying a position of a set of data to be read out from the sounding pattern data in the selected arpeggio pattern data is reset to zero (step S6), thereby initializing (clearing) the sounding data list (step S7). The sounding data list is created in a region provided in a predetermined position in the RAM 5. Then, the arpeggio generation is started (step S8).
On the other hand, if the key release detected in the step S9 during the arpeggio generation indicates an all key-off (a state where all the keys are released from the key depression state), the arpeggio generation is caused to stop (steps S11 and S12). At this time, the CPU 3 adjusts, where desired, a muting timing at which sounding data in the sounding data list is muted after execution of the user's key release operation. The case of requiring the muting timing adjustment includes, for example, a case where a key release operation is performed before the arpeggio pattern data is not used for the entire time period represented by the set loop count. In that case, it is preferable that the arpeggio generation should be continued to the next break position (i.e., the end of a bar, a beat, or a pattern concerned) after the key release operation is detected. However, this is not limitative. The arpeggio generation can be immediately stopped without making the muting timing adjustment when the key release operation is detected. Alternatively, the arpeggio generation can be continued until the time period represented by the set loop count has elapsed.
In the sounding data list generation processing of
The processing to reproduce the generated sounding data list to thereby sound the arpeggio has been described above, and therefore, an explanation thereof is omitted.
In this embodiment, the case has been described in which the automatic accompaniment generating apparatus of this invention is applied to the arpeggiator, and as a result, there is generated arpeggio data, which is different from automatic accompaniment data of a type generated in an ordinary automatic accompaniment apparatus. The reason why such a case has been described is to simplify the explanation. The present invention can be applied not only to the generation of arpeggio data but also to the generation of automatic accompaniment data of a type generated by ordinary automatic accompaniment apparatus.
In this embodiment, the sounding data list reproduction processing (B) is carried out in the timer interrupt processing, but this is not limitative. The sounding data list reproduction processing (B) can be performed in the control processing shown in
In this embodiment, it is assumed that a plurality of arpeggio pattern data are stored in advance in the external storage device 6, but this is not limitative. These arpeggio pattern data can be stored in advance in the ROM 4. Alternatively, arpeggio pattern data on a network can be acquired via the communication I/F 8.
In this embodiment, the loop count is arranged to be set to an arbitrary natural number, but this is not limitative. The loop count can be fixedly set to a predetermined number of times (for example, one time). Alternatively, the loop count can be selectively set to a predetermined number of times or set to be “unspecified”. The predetermined number of times can be fixedly set. Alternatively, the loop count can be determined for each arpeggio pattern data. In that case, when the arpeggio pattern data is selected, the loop count corresponding to the selected arpeggio patter data can automatically be set as the predetermined number of times.
In this embodiment, the note information to be referred to by the arpeggio pattern data is input by the user by performing a realtime musical performance (i.e., the data is input as one or more key depression tones), but this is not limitative. The note information can be obtained by reproducing a musical performance information file that is prepared in advance by the user or by reproducing an existing musical performance information file.
It is to be understood that the present invention may also be accomplished by supplying a system or an apparatus with a storage medium in which is stored a program code of software that realizes the functions of the above described embodiment, and then causing a computer (or CPU or MPU) of the system or apparatus to read out and execute the program code stored in the storage medium.
In this case, the program code itself read out from the storage medium realizes the functions of the embodiment, and hence the program code and the storage medium in which the program code is stored constitute the present invention.
The storage medium for supplying the program code may be, for example, a flexible disk, a hard disk, a magnetic-optical disk, an optical disk such as a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, a DVD-RW, or a DVD+RW, a magnetic tape, a non-volatile memory card, or a ROM. Alternatively, the program may be supplied via a communication network from a server computer.
Moreover, it is to be understood that the functions of the embodiment can be accomplished not only by executing the program code read out by the computer, but also by causing an OS (operating system) or the like which operates on the computer to perform a part or all of the actual operations based on instructions of the program code.
Furthermore, it is to be understood that the functions of the embodiment can also be accomplished by writing a program code read out from the storage medium into a memory provided on an expansion board inserted into the computer or in an expansion unit connected to the computer and then causing a CPU or the like provided on the expansion board or in the expansion unit to perform a part or all of the actual operations based on instructions of the program code.
Number | Date | Country | Kind |
---|---|---|---|
2006-324171 | Nov 2006 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
4275634 | Imamura et al. | Jun 1981 | A |
5371316 | Eitaki et al. | Dec 1994 | A |
5410097 | Kato et al. | Apr 1995 | A |
5478967 | Saito et al. | Dec 1995 | A |
5854619 | Kato | Dec 1998 | A |
5973253 | Hirata | Oct 1999 | A |
6166316 | Takahashi et al. | Dec 2000 | A |
6177624 | Takahashi et al. | Jan 2001 | B1 |
20030110927 | Kira | Jun 2003 | A1 |
20050016366 | Ito et al. | Jan 2005 | A1 |
20080072744 | Ito et al. | Mar 2008 | A1 |
20080072745 | Ito et al. | Mar 2008 | A1 |
Number | Date | Country |
---|---|---|
2001022354 | Jan 2001 | JP |
Number | Date | Country | |
---|---|---|---|
20080127813 A1 | Jun 2008 | US |