Device for and method of detecting and supplying chord and solo sounding instructions in an electronic musical instrument

According to the invention, a new sounding operation changes a solo being played, and various ways of sounding musical tones are permitted by a selection of whether or not a chord being played is to be changed. In response to an instruction for sounding a musical tone, chord tone data is provided together with tone data indicating a single key number, to thereby determine whether or not the chord is to be detected, and whether or not chord tone data is be output. Accordingly, ways of sounding musical tones, such as changing a chord being played together with a solo being played, or not changing a chord being played but changing only the solo being played.

BACKGROUND OF THE INVENTION 
1. Field of the Invention 
This invention relates to a device for and method of supplying sounding 
instructions in an electronic musical instrument. 
2. Description of the Related Art 
In the prior art, various electronic musical instruments have been proposed 
which facilitate and simplify the playing of chords; an auto chord 
operation is one such way of easily playing a chord. In an auto chord 
operation, while using an auto rhythm operation, a key of a component tone 
of a chord played on a keyboard as an accompaniment is depressed or 
depressed and immediately released, whereby an auto chord operation is 
repeatedly executed. 
Another type of auto chord operation is a one finger chord operation. 
Again, in this one finger chord operation, while using an auto rhythm 
operation, a key of the keyboard for a chord accompaniment is depressed or 
depressed and immediately released, whereby a chord type, for example, a 
major chord, is automatically played repeatedly using the "on" key as a 
chord root. By simultaneously depressing another key or depressing and 
immediately releasing that key, the chord type is changed to a minor 
chord, and by simultaneously depressing a further key or depressing and 
immediately releasing that key, the chord type is changed to a seventh. 
Namely, the chord type is changed according to the number of "on" keys. 
An example of this chord selection system is disclosed in the specification 
of U.S. patent Ser. No. 07/706,010. 
SUMMARY OF THE INVENTION 
An object of the invention is to provide an electronic musical instrument 
by which not only a selection of chord types can be played but also 
various types of other sounding operations, including the playing of 
chords, can be realized. 
According to the invention, in response to an instruction for sounding a 
musical tone, chord tone data is provided together with tone data 
indicating a single key number, thus permitting a choice of whether or not 
to select a chord, and further, a choice of whether or not chord tone data 
is to be output. Accordingly, various types of sounding operations can be 
carried, for example, a chord being played can be changed together with a 
single key solo being played, or a chord being played is not changed, 
i.e., only the single key solo being played is changed.

DESCRIPTION OF THE PREFERRED EMBODIMENTS 
Summary of the Embodiment 
In response to a new "key-on" event, first a solo being played is changed 
(steps 11 and 12), and according to the on-off state of a chord switch 10 
(step 13) it is determined whether or not a chord being played (steps 14 
through 22) is to be changed. Namely, a chord being played is changed 
together with a change of a solo being played, or the chord is not 
changed, i.e., only the solo being played is changed. 
1. Overall Circuitry 
FIG. 2 shows an overall circuitry of an electronic musical instrument. 
Individual keys on a keyboard 1 are scanned by a keyboard scanner 2 to 
thereby detect data indicating a "key-on" or "key-off" event, and the 
detected data is written to a RAM 6 by a CPU 5. The CPU 5 compares the 
written data with on-off data for the individual keys and stored in the 
RAM 6 to determine "on" and "off" events for the keys. Note, the keyboard 
1 may be replaced by an electronic string(s) instrument, electronic 
wind(s) instrument, electronic percussion instrument (pads), or computer 
keyboard and so forth. 
Individual keys in a panel switch group 3 are scanned by a panel scanner 4, 
to detect on-off data for the individual keys, and the data is written to 
the RAM 6 by the CPU 5. The CPU 5 compares the written data with on-off 
data for the individual keys and stored in the RAM 6, to determine "on" 
and "off" events for the keys. 
The panel switch group 3 includes a chord switch 10 for switching between a 
chord mode and a solo mode. In the chord mode, in response to a new 
sounding operation of a key of the keyboard 1, tone data of a single key 
number or tone pitch (hereinafter referred to as solo tone) corresponding 
to the "on" key is provided, together with chord tone data (hereinafter 
referred to as chord tone) corresponding to the "on" key. In the solo 
mode, in response to a new sounding operation of a key of the keyboard 1, 
tone data of a single key number or tone pitch is provided for normal 
play. When the mode is switched to the solo mode, the chord tone data in 
the chord mode immediately before the switch to the solo mode is 
continually provided. The chord switch 10 may be replaced by a pedal, a 
foot switch, a knee lever, or a knob, etc. 
The RAM 6 stores various routine data, in addition to the data noted above. 
Among the stored routine data is switch data for switching the chord 
switch 10, and this data specifies the chord mode ("1") or the solo mode 
("0"). A ROM 7 stores programs executed by the CPU 5, corresponding to 
flow charts described later, and programs for other routines. Further, the 
ROM 7 contains a chord table 11 and a chord sequence memory 12, and so 
forth. 
The chord table 11 stores chord bit pattern data for various chords; this 
data being used for determining the chord type and chord root 
corresponding to "on" keys of the keyboard 1. The chord sequence memory 12 
sequentially stores chord play pattern data and this data is modified to 
form patterns corresponding to the chord type and chord root, for an auto 
chord operation. 
A tone generator 8 generates tone waveform data and the like according to 
tone data such as a key number (or tone pitch) and touch and tone number 
(or tone color) input from the keyboard 1 and panel switch group 3. The 
tone generator 8, produces tone generation systems for a plurality of, for 
example, 16, channels using a time division routine, to realized a 
polyphonic sounding of musical tones. The tone waveform data is sent to a 
sounding system 9 for sounding, and tone data to which individual channels 
are assigned is stored in an assignment memory 13. 
2. Chord Table 11 
FIG. 3 shows the chord table 11. The chord table 11 stores chord bit 
pattern data with individual bits "1" corresponding to the tone name 
constituting the chord type, such as major, minor and 7th, or bits "0". 
Each chord bit pattern data has 12 bits representing respective tone 
names, such as "C", "C#", "D", "D#" and so forth. The chord bit pattern 
data uses C as the chord root, but this may be changed to data 
corresponding to a different chord root, or may represent an inverted 
chord. 
Chord bit pattern data is compared with each "on" key on the keyboard 1, to 
determine the chord type and chord root. This determination is carried out 
as follows. The result of a scanning of the accompaniment keyboard (i.e., 
lower keyboard) of the keyboard 1 or the entirety thereof, i.e., the key 
on/off data train, is exclusively ORed for each octave, and the 
exclusively ORed data is compared with the chord bit pattern data. If the 
compared data are not identical, one of the data is ring shifted by one 
bit, and another comparison is made. If the compared data are identical, 
the chord type and the chord root are determined, from the number of times 
that the ring is shifted. This routine is disclosed in the specification 
of U.S. patent Ser. No. 07/706,010. 
The chord sequence memory 12 stores chord play pattern data for a plurality 
of measures, and data corresponding to the determined chord noted above is 
repeatedly read out. The chord play pattern data is for, for example, a C 
major chord and includes key number data KN, step time data ST, and gate 
time data GT. The key number data KN is key number data of each tone 
constituting a chord, the step time data ST represents a time from the 
start of a piece of music or a measure to the timing of a sounding of the 
musical tone, and the gate time data GT represents a time or duration of a 
sounding of the tone. For playing a chord with other chord roots, each key 
number data KN is shifted according to the chord root difference. In this 
case also the key number data is partly modified. It is possible to also 
store chord play pattern data of other chord types, in the chord sequence 
memory 12. 
Each key number data KN as noted above is written to the assignment memory 
13, as described later, in the tone generator 8, for sounding the musical 
tone of the chord. The timing of the start of the sounding is the instant 
at which the count of a time counter (not shown) becomes identical to the 
step time data ST. The timing of the end of a sounding is the instant at 
which the count of the time counter becomes identical to the gate time 
data GT. The chord determining and playing as noted above also may be 
executed by other methods. As shown above, when a chord operation is 
executed at the keyboard 1, the chord tone is continually sounded after a 
subsequent "key-off" operation. Conversely, the sounding of a solo tone is 
continued only during the chord operation, and is ended by a "key-off" 
operation. 
3. Assignment Memory 13 
FIG. 4 shows the assignment memory 13. This memory 13 has memory areas for 
16 or more channels, and tone data to which 16 or more tone generation 
channels of the tone generator 8 are assigned is written to the respective 
memory areas. The tone data includes the key number data KN of chord and 
solo tones noted above. Note the solo tones can be sounded as bass tones 
and the chord play and bass play executed at the same time. The bass tones 
may be replaced by backing tones or the like. 
The chord table 11 and chord sequence memory 12 are not read out when the 
chord switch 10 is set to the solo mode, and therefore, the key number 
data KN of the chord play pattern data is not written to the assignment 
memory 13, and the chord tone is not changed with a new "key-on" event, 
i.e., the previous chord tone is continually sounded. 
The tone data written in the individual channel memory areas noted above 
includes on/off data, key number data KN, and weighting factor data WT, 
etc. The on/off data indicates the "on" ("1") or "off" ("0") state of each 
key of the keyboard 1 or the start ("1") or end ("0") of a sounding; the 
key number data KN indicates the key number of each key of the keyboard 1; 
and the weighting factor data WT indicates the channel assignment priority 
and is shown in, for example, the specification of U.S. patent Ser. No. 
07/616,182. The assignment memory 13 can store, in addition to the above 
data, tone number data TN and sound group data GN indicating the tone 
generation source, and so forth. 
4. Overall Routine 
FIG. 5 shows a flow chart of the overall routine executed by the CPU 5. 
This routine is started when power is supplied thereto. In this routine, 
first an initialization is executed (step 01) and then a it is determined 
if any change has occurred in the state of the panel switch group 3 (step 
02). If a change is detected, a panel routine is executed (step 03). 
Further, in steps 02 and 03, a routine in response to the operation of the 
chord switch 10 is also executed. In this routine, mode data based on the 
mode switching of the chord switch 10, indicating the chord mode ("1") or 
solo mode ("0"), is input to the working register group in the RAM 6. 
Subsequently, the keyboard 1 is scanned, and if a "key-on" event is 
detected (step 04), a sounding start routine is executed (step 05). If a 
"key-off" event is detected (step 06), a sounding end routine is executed 
(step 07), and subsequently, other routines are executed (step 08). 
5. Sounding Start Routine 
FIG. 1 shows a flow chart of the sounding start routine executed in step 
05. In this routine, key number data KN and other data concerning a new 
"key-on" event detected in step 04 are written in blank channel areas of 
the assignment memory 13 in the tone generator 8 (step 11), and the on/off 
data is made "1" to thereby represent an "on" state (step 12), whereby a 
sounding of a new solo tone corresponding to this "key-on" event is 
started. The sounding of this solo tone is ended at step 07, as noted 
above, with a "key-off" event of the key concerned. 
Subsequently, it is determined whether the switching data of the chord 
switch 10 stored in the RAM 6 indicates the chord mode ("1") or solo mode 
("0") (step 13). If the solo mode is indicated the subsequent chord 
routine of steps 14 to 22 is not executed, and if the chord mode is 
indicated, the chord routine is executed. Accordingly, it can be 
determined whether only the solo being played is to be changed, or is to 
be changed together with the chord being played, and thus various ways of 
sounding can be realized. 
In the chord mode, the CPU 5 executes a progressive OR of octave chord data 
indicating the on/off state of the keys for each octave of the keyboard 1 
(step 14), and then chord bit pattern data of each chord type is read from 
the chord table 11 and it is determined whether this data is identical to 
the resultant OR of the octave chord data (step 15). If the resultant OR 
is not identical to all of the chord bit pattern data in the chord table 
11, the resultant OR is ring-shifted by one bit (step 16), the chord root 
data in the RAM 6 is incremented by one (step 17), and the determining of 
the identity of the resultant OR of the octave chord data and each chord 
bit pattern data in the chord table 11 is again executed (step 18). 
The ring shift of the OR of octave chord data in the step 16, allows a 
determining of an inversion chord, and further, the chord root can be 
determined from the number of times the ring is shifted. If chord bit 
pattern data identical to the OR of octave chord data is found (step 15), 
the chord type in the chord table 11 corresponding to the identical chord 
bit pattern data is written to the RAM 6, and chord root data stored in 
the RAM 6 is made the chord root (step 19). If the chord root data is "0", 
for example, the chord root is "C"; if the data is "1", the chord root is 
"C#"; if the data is "2", the chord root is "D"; and if the data is "11", 
the chord root is "B". 
If an identical chord is not found when "12" is reached by the chord root 
data in step 18, it is determined that a pertinent chord does not exist, 
and thus the chord root and name renewal routine in step 19 is not 
executed (step 20). Chord play pattern data corresponding to the chord 
type and name as detected above, and stored in the RAM 6, are read from 
the chord sequence memory 12 (step 21), and key number data KN in the 
read-out data is changed according to the chord root, and further, partly 
changed according to the chord type (step 22); the changed data being 
written to the assignment memory 13. 
Therefore, the playing of a new chord play is executed according to the 
"on" key. The on/off for the chord being played is effected according to 
the step and gate time data, as noted above. The chord may be an arpeggio 
or the like. It is possible to dispense with the routine of steps 21 to 22 
in the chord routine of steps 14 through 22, and to execute only chord 
detection routine of the steps 14 through 20 for sequentially storing the 
detected chord type and name. 
The above embodiment of the invention is by no means limitative, and 
various changes and modifications are possible without departing from the 
spirit and scope of the invention. For example, whether or not a chord is 
to be played can be selected when a specific sounding is performed, and 
when a specific mode is selected, and so forth, in addition to the on/off 
of the chord switch 10. Specific examples thereof are when a repeat play 
is executed, when an auto play is executed, when a stereo mode is 
selected, and when a fill-in mode is selected. 
Further, it can be determined whether or not a solo is to be played, 
depending on the on/off state of the chord switch 10 or other switches. In 
this case, the routine in step 13 is executed before the routine of step 
11. Further, it is possible to execute step 08 for the solo mode detected 
in step 13. Alternatively, the playing of the chord can be ended if the 
chord switch 10 is set to the solo mode. In this case, if the solo mode is 
detected in step 13, the sounding end routine is executed for the chord 
tone being sounded. 
Furthermore, the routine in FIGS. 5 and 1 may be executed with respect to 
auto play data. Namely, auto play data is read from the RAM 6 or ROM 7 or 
sent through a MIDI interface. In this case, the key number data KN set in 
step 11 and processed in steps 14 through 18, belongs to the auto play 
data noted above.