Automatic playing device, method for automatic playing, program, and electronic musical instrument
Patent Information
- Application Number
- JP2023209732
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-13
- Publication Date
- 2024-12-23
- Estimated Expiration
- 2041-12-15
AI Technical Summary
Conventional automatic accompaniment technologies struggle to control tension notes naturally, leading to increased note numbers that interfere with melodies and fixed performances, failing to replicate the nuanced timing, voicing, and number of notes in jazz performances.
An automatic performance device that probabilistically selects the number of notes, determines voicing types based on key and chord, and uses voicing pattern selection to instruct a sound source to produce chords, mimicking live performances by adjusting note timing and voicing.
The device achieves natural automatic chord accompaniment that replicates the timing and voicings of a live jazz performance, allowing for dynamic and varied chord progressions while incorporating tension notes, enhancing the musical experience.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an automatic performance device, an automatic performance method, a program, and an electronic musical instrument that automatically plays chords. [Background technology]
[0002] In jazz piano or guitar performances, even when the same constituent notes or chords are played repeatedly, they may be played at different timings each time. In jazz performances, the voicings (constituent notes) of the chords of the music being performed are not necessarily written exactly as they are written on the chord chart, but rather chords that contain tension notes that have a sense of tension that is unique to jazz are generally used. Tension notes are non-harmonic notes used together with the harmonies of major and minor keys of music that give tension to the sound of the chord and do not impede the progression of the chord. Tension notes are not uniformly determined by the type of chord.
[0003] In automatic performance by an electronic musical instrument, the following prior art is known to realize automatic performance using tension notes of a specified chord name and to enable the creation of performance data with a stylish sound (for example, Patent Document 1). During automatic performance, chord data consisting of a set of root note data, type data, and available note scale data is specified in sequence, and this available note scale data is referenced. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Publication No. 10-78779 Summary of the Invention [Problem to be solved by the invention]
[0005] However, with conventional automatic accompaniment, which relied on digitized, pre-determined performances, it was difficult to control tension notes, and as the number of notes increased, tension notes would get in the way of the melody, or the performance would end up being the same every time, making it impossible to reproduce the characteristics of music such as jazz. For example, even with conventional technology such as that described in Patent Document 1, automatic performance is merely performed based on predetermined chord data, including available note scale data, and there was a problem in that it was not possible to automatically perform the same chord by subtly changing the performance timing, number of notes in a measure, or voicing (sound composition) based on chance occurrences when playing the chord.
[0006] Therefore, an object of the present invention is to realize a natural automatic chord accompaniment that can express the timing and voicing of a live musical instrument performance by a performer. [Means for solving the problem]
[0007] An automatic musical performance device according to one embodiment includes a number of notes selection means for probabilistically selecting the number of notes to be played, a voicing type determination means for determining a voicing type corresponding to a range of notes, a voicing pattern selection means for selecting a voicing pattern corresponding to a combination of the selected number of notes and the determined voicing type from a plurality of voicing patterns based on a scale determined by the key and chords of a musical piece, and a pronunciation instruction means for instructing a sound source to play a chord voiced based on the selected voicing pattern. Effect of the Invention
[0008] According to the present invention, a voicing pattern is selected from a probabilistically selected combination of the number of notes and voicing type, and a sound source is instructed to produce the voiced chord, thereby making it possible to realize natural automatic chord accompaniment that can express the voicings of a live instrument performance by a performer. [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] 11 is a flowchart showing an example of an automatic chord accompaniment process of the automatic performance device. [Diagram 3] 13 is a flowchart showing a detailed example of a timing data generating process. [Figure 4] 13 is a diagram illustrating an example of a data configuration of a frequency table used in the timing data generation process. FIG. [Diagram 5] 1A and 1B are diagrams showing an example of the data structure of a note timing table and a musical score representation of note timing based on the data. [Figure 6] 13 is a flowchart showing a detailed example of an anticipation code acquisition process. [Figure 7] FIG. 13 is an explanatory diagram of the anticipation code acquisition process. [Figure 8] 13 is a flowchart showing a detailed example of a voicing process. [Figure 9] 11A to 11C are diagrams showing examples of data configurations of chord progression data, a scale determination table, and a voicing table for each scale. [Figure 10] 13 is a diagram illustrating an example of a data configuration of a frequency table used in the voicing process. FIG. [Figure 11] FIG. 1 illustrates a musical score representation of an example scale and example voicing variations within that scale. [Figure 12] FIG. 13 is a diagram showing a connection configuration of another embodiment in which the automatic performance device and the electronic musical instrument operate independently. [Figure 13] FIG. 13 is a diagram showing an example of the hardware configuration of an automatic musical performance device in another embodiment in which the automatic musical performance device and the electronic musical instrument operate independently. 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] This electronic keyboard instrument 100 has the function of an automatic performance device that automatically plays chord accompaniment to the piano part. The automatic performance device of this electronic keyboard instrument 100 can automatically generate sound data for, for example, a jazz automatic piano accompaniment by an algorithm within the scope of certain musical rules, rather than simply reproducing programmed data.
[0012] The CPU 101 loads a control program stored in the ROM 102 into the RAM 103 while using the RAM 103 as a working memory, and executes the control operation of the electronic keyboard instrument 100 in Fig. 1. In particular, the CPU 101 loads a control program shown in a flowchart described later from the ROM 102 into the RAM 103, and executes the control operation of automatically playing chord accompaniment to the piano part.
[0013] The keyboard unit 104 detects key depression or key release of each of a plurality of performance operators and notifies the CPU 101. The CPU 101 executes a process of generating sound generation instruction data for controlling the sound generation or muting of musical tones corresponding to keyboard performance by a performer, based on the detection notification of key depression or key release notified from the keyboard unit 104, in addition to a control operation for automatic chord accompaniment of the piano part, which will be described later. The CPU 101 notifies the generated sound generation instruction data to the sound source LSI 106.
[0014] The switch section 105 detects the operation of various switches by the performer and notifies the CPU 101 of the operation.
[0015] The sound source LSI 106 is a large-scale integrated circuit for generating musical tones. 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.
[0016] The automatic chord accompaniment process for the piano part by the embodiment of the automatic performance device of the electronic keyboard instrument 100 having the above configuration (hereinafter referred to as "this automatic performance device") will be described in detail below. Fig. 2 is a flow chart showing an example of the automatic chord accompaniment process of this automatic performance device. This process is a process in which the CPU 101 in Fig. 1 loads a program for controlling the automatic chord accompaniment process for the piano part stored in the ROM 102 into the RAM 103 and executes it.
[0017] When the performer operates switch section 105 in FIG. 1 to select the genre (e.g., "Jazz") and tempo of the automatic accompaniment, and then presses an automatic accompaniment start switch (not shown) in switch section 105, CPU 101 starts the automatic chord accompaniment processing illustrated in the flowchart of FIG. 2.
[0018] First, the CPU 101 executes a counter reset process (step S201). Specifically, the CPU 101 resets the bar counter variable value stored in the RAM 103, which indicates the number of bars from the start of the automatic chord accompaniment of the piano part, to a value (e.g., "1") indicating the first bar of the automatic chord performance of the piano part. The CPU 101 also resets the beat counter variable value stored in the RAM 103, which indicates the number of beats (beat position) in the bar, to a value (e.g., "1") indicating the first beat. Next, the control of the automatic piano accompaniment by the automatic performance device progresses in units of the value of a tick variable stored in the RAM 103 (hereinafter, the value of this variable will be referred to as the "tick variable value"). In the ROM 102 of FIG. 2, a TimeDivision constant (hereinafter, the value of this constant will be referred to as the "TimeDivision constant value") indicating the time resolution of the automatic chord accompaniment is preset, and this TimeDivision constant value indicates a resolution of a quarter note. If this value is 128, for example, then a quarter note will have a duration of "128 x tick variable value." The actual number of seconds in one tick depends on the tempo specified for the piano part of the automatic chord accompaniment. If the value set in the Tempo variable on RAM 103 according to the user's settings is "Tempo variable value [beats / minute]," then the number of seconds in one tick (hereafter referred to as "tick second value") is calculated using the following formula (1).
[0019] tick second value = 60 / Tempo variable value / TimeDivision variable value (1)
[0020] Therefore, in the counter reset process of step S201 in Fig. 2, the CPU 101 first calculates the tick second value by arithmetic processing corresponding to the above formula (1) and stores it in the "tick second variable" on the RAM 103. Note that the Tempo variable value may be initially set to a predetermined value read from the constants in the ROM 102 in Fig. 2, for example, 60 [beats / second]. Alternatively, the Tempo variable may be stored in a non-volatile memory, and when the power of the electronic keyboard instrument 100 is turned on again, the Tempo variable value at the time of the previous shutdown may be held as it is.
[0021] Next, in the counter reset process of step S201 in Fig. 2, CPU 101 first resets the tick variable value in RAM 103 to 0. After that, for the built-in timer hardware (not shown), a timer interrupt is set by the tick second value calculated as described above and stored in the tick second variable in RAM 103. As a result, an interrupt (hereinafter referred to as a "tick interrupt") occurs in the timer every time the number of seconds equal to the tick second value elapses.
[0022] 1 during the automatic chord accompaniment of the piano part, the CPU 101 calculates the tick second value by executing the calculation process corresponding to the above-mentioned formula (1) again using the Tempo variable value reset in the RAM 103, in the same manner as the counter reset process in step S201. After that, the CPU 101 sets a timer interrupt with the newly calculated tick second value in the built-in timer hardware. As a result, a tick interrupt occurs every time the number of seconds of the newly set tick second value elapses in the timer.
[0023] After the counter reset process in step S201, CPU 101 repeatedly executes a series of processes from steps S202 to S211 as a loop process. This loop process is repeatedly executed until it is determined in step S210 that the automatic chord accompaniment data has run out or the performer has instructed to end the automatic piano accompaniment using a switch (not shown) of switch section 105 in FIG.
[0024] In the counter update process of step S211 in the above loop process, if a new tick interrupt request is generated from the timer, the CPU 101 counts up the tick counter variable value in the RAM 103 through the tick interrupt process. After that, the CPU 101 cancels the tick interrupt. If no tick interrupt request is generated, the CPU 101 does not count up the tick counter variable value through the tick interrupt process, and ends the counter update process of step S211. As a result, the tick counter variable value is counted up for each tick second value calculated in accordance with the Tempo variable value set by the performer.
[0025] The CPU 101 controls the progress of the automatic chord accompaniment based on the tick counter variable value, which is counted up every tick second value in step S211. Hereinafter, the time unit synchronized with the tempo, with this tick counter variable value = 1 as a unit, will be referred to as [tick]. As mentioned above, if the TimeDivision constant value indicating the resolution of a quarter note is, for example, 128, a quarter note has a time length of 128 [ticks]. Therefore, if the piano part to be accompanied by the automatic chord is, for example, a 4-beat, one beat = 128 [ticks], and one measure = 128 [ticks] x 4 beats = 512 [ticks]. In the counter update process in step S211 of the above loop process, if a 4-beat piano part is selected, for example, the CPU 101 updates the beat counter variable value stored in the RAM 103 by looping between 1 and 4, that is, 1 → 2 → 3 → 4 → 1 → 2 → 3... each time the tick counter variable value is updated to a multiple of 128. Furthermore, in the counter update process of step S211, the CPU 101 resets the within-beat tick counter variable value, which counts the tick time from the beginning of each beat, to 0 at the timing when the beat counter variable value changes. Furthermore, in the counter update process of step S211, the CPU 101 counts up the bar counter variable value stored in the RAM 103 by +1 at the timing when the beat counter variable value changes from 4 to 1. This bar counter variable value represents the number of bars from the start of the automatic chord accompaniment of the piano part, and the beat counter variable value represents the number of beats (beat position) in each bar represented by the bar counter variable value. Furthermore, if the within-beat tick counter variable value is between 0 and 63 (=128÷2-1), it indicates the timing of the upbeat, and if it is between 64 and 127, it indicates the timing of the downbeat. This value is determined in step S602 of the anticipation chord acquisition process illustrated in the flowchart of FIG. 6 described later.
[0026] The CPU 101 repeatedly executes step S211 as loop processing to update the tick counter variable value, the within-beat tick counter variable value, the beat counter variable value, and the bar counter variable value, while executing a series of control processes from steps S202 to S210 described below.
[0027] The details of the series of control processes from steps S202 to S210 in Fig. 2 will be described below. First, CPU 101 judges whether the current timing is the beginning of a bar (step S202). Specifically, CPU 101 judges whether the bar counter variable value stored in RAM 103 has changed (become +1) between the previous execution of step S202 and the current execution of step S202.
[0028] If the determination in step S202 is YES, the CPU 101 executes a timing data generation process (step S203). In this process, the CPU 101 generates note timing table data indicating the sounding timings of chords for a new measure indicated by the updated measure counter variable value, and stores the data in the RAM 103. The CPU 101 also reads each piece of automatic chord accompaniment data for a new measure indicated by the updated measure counter variable value corresponding to each sounding timing of the generated note timing data from, for example, the ROM 102 to the RAM 103. The automatic chord accompaniment data includes at least a chord and a key, for example. Details of this process will be described later with reference to the flowchart in FIG. 3. If the determination in step S202 is NO, the CPU 101 skips the timing data generation process in step S203 without executing it.
[0029] Next, the CPU 101 judges whether the current timing is a note-off timing (step S204). Specifically, the CPU 101 judges whether the current beat counter variable value and the tick counter variable value within a beat stored in the RAM 103 match the beat number and [tick] time of any chord mute timing of the note timing data stored in the RAM 103 in step S203. In this case, the beat number of any chord mute timing is any "beat" item value including a timing in which a non-zero "Gate" item value is set in the note timing data exemplified in FIG. 5(c) or (e) described later. Also, the [tick] time of any of the chord mute timings described above is a [tick] time value obtained by adding the "Tick" item value of the timing in which the non-zero "Gate" item value is set and the "Gate" item value.
[0030] If the determination in step S204 is YES, the CPU 101 executes a note-off process (step S205). Specifically, the CPU 101 instructs the sound source LSI 508 to mute the voice group indicated by the voicing table data stored in the RAM 103 in the voicing process in step S208 (to be described later) in response to the timing determined in step S204.
[0031] If the determination in step S204 is NO, the CPU 101 determines whether the current timing is a note-on timing (step S206). Specifically, the CPU 101 determines whether the current beat counter variable value and the in-beat tick counter variable value stored in the RAM 103 match the beat number and [tick] time of any chord sounding timing in the note timing table stored in the RAM 103 in step S203. The beat number of any chord sounding timing in this case is any "beat" item value including a timing in which a non-zero "Gate" item value is set in the note timing table exemplified in FIG. 5(a) or (c) described later. Also, the [tick] time of any of the chord sounding timings described above is the "Tick" item value of the timing in which the non-zero "Gate" item value is set.
[0032] If the determination in step S206 is YES, the CPU 101 executes an anticipation code acquisition process (step S207). The details of this process will be described later with reference to the flowchart illustrated in FIG.
[0033] Next, CPU 101 executes a voicing process (step S208). In this process, CPU 101 determines voicing table data for the chord and key corresponding to the current note-on extracted from the automatic chord accompaniment data of the current measure stored in RAM 103, and stores the data in the note-on area of RAM 103. The automatic chord accompaniment data of the current measure stored in RAM 103 is read in the timing data generation process of step S203, which will be described later in detail. The details of the voicing process of step S208 will be described later with reference to the flowchart illustrated in FIG.
[0034] After the process of step S208, the CPU 101 executes a note-on process (step S209). In this process, the CPU 101 instructs the sound source LSI 508 to generate a sound at the anticipation timing of step S207, and to generate a musical tone of a note number corresponding to each voice of the voice group indicated by the voicing table data stored in the RAM 103 in the voicing process of step S208. At this time, the velocity specified to the sound source LSI 508 together with each note number is the "Velocity" item value stored in the note timing data of the current measure corresponding to the note-on timing determined in step S206. The CPU 101 executing the process of step S209 operates as a sound generation instruction means.
[0035] If the determination in step S206 is NO, or after the processing of step S209, the CPU 101 determines whether there is still automatic chord accompaniment data to be read from the ROM 102 or the like, and whether the performer has not instructed the end of the automatic piano accompaniment by using a switch (not shown) of the switch section 105 in FIG. 1 (step S210).
[0036] If the determination in step S210 is YES, the CPU 101 executes the counter update process described above in step S211, and then returns to the process in step S202 to continue the loop process. If the determination in step S210 is NO, the CPU 101 ends the automatic chord accompaniment process exemplified in the flowchart of FIG.
[0037] Fig. 3 is a flow chart showing a detailed example of the timing data generation process in step S203 in Fig. 2. In this process, CPU 101 determines the note timing and gate time to be sounded in the newly updated current measure for each timing of the beginning of the measure determined in step S202. In this case, CPU 101 probabilistically determines the number of times a chord is sounded in the measure (timing type) and a note timing table that specifies the timing at which each chord is sounded.
[0038] In the flow chart of Fig. 3, the CPU 101 first obtains the automatic chord accompaniment data for one measure corresponding to the newly updated bar counter variable value on the RAM 103, for example from the ROM 102, and stores it in the RAM 103 (step S301). The automatic chord accompaniment data for one measure includes, for example, zero or more data sets, each of which includes at least a chord. If there is no chord to be sounded in that measure, the number of data sets will be zero. Note that the performer can select a piece of music for the automatic chord accompaniment data in advance using a selection switch (not shown) in the switch section 105 of Fig. 1. This determines the key of the music for the automatic chord accompaniment data and a tempo range (described later).
[0039] Next, the CPU 101 stochastically determines the timing type by referring to a timing type selection frequency table stored in the ROM 102 of Fig. 1 (step S302). The timing type is data that specifies the number of times a chord is to be sounded in one measure. That is, in step S302, the number of times a chord is to be sounded in the current measure is determined stochastically.
[0040] Fig. 4(a) is a diagram showing an example of the data configuration of a timing type selection frequency table stored in the ROM 102 of Fig. 1 to realize the processing of step S302. "Type0", "Type1", "Type2", "Type3", and "TypeC" shown in Fig. 4(a) each indicate a timing type having the following meaning. Note that in Fig. 4(a) and in the following description, "timing type" may be abbreviated to "Type". Type0: Specifies that the chord is played 0 times in one measure Type1: Instructs the chord to sound once per measure Type2: Two chords are played in one measure Type3: Instructs the chord to sound three times in one measure Type C: Chord pronunciation at the beginning of a measure and at each chord change
[0041] "Ballad", "Slow", "Mid", "Fast", and "Very Fast" registered in the leftmost column of the timing type selection frequency table illustrated in FIG. 4(a) each indicate a tempo range of the automatic chord accompaniment data. When the performer selects one of the automatic chord accompaniment songs provided by using a selection switch (not shown) in the switch section 105 in FIG. 1 at the start of the automatic chord accompaniment, the selected automatic chord accompaniment data is preset with a tempo range of "Ballad", "Slow", "Mid", "Fast", or "Very Fast". Here, "Ballad" corresponds to a tempo range of less than 70, for example. "Slow" corresponds to a tempo range of 70 or more and less than 100, for example. "Mid" corresponds to a tempo range of 100 or more and less than 150, for example. "Fast" corresponds to a tempo range of 150 or more and less than 250, for example. And "Very Fast" corresponds to a tempo range of 250 or more, for example.
[0042] In step S302 in FIG. 3, the CPU 101 executes the following control process using a timing type selection frequency table shown in FIG. 4(a) stored in the ROM 102. First, when the tempo range "Ballad" is set in the automatic chord accompaniment data read from the ROM 102 in step S301 in FIG. 3, the CPU 101 refers to the data in the row in which "Ballad" is registered in the leftmost item in the timing type selection frequency table shown in FIG. 4(a). In this row, each frequency value indicating that each of the above-mentioned timing types Type0, Type1, Type2, Type3, or TypeC is selected with a probability of 0%, 10%, 20%, 10%, or 60%, respectively, is set. In response to this, the CPU 101 generates an arbitrary random number value having a range of, for example, 1 to 100. Then, the CPU 101 selects the timing type "Type1" if the generated random number value is in the random number range of 1 to 10 (corresponding to a frequency value of 10% for "Type1"). Alternatively, the CPU 101 selects the timing type "Type2" if the generated random number is in the random number range of 11 to 30 (corresponding to a frequency value of 20% for "Type2"). Alternatively, the CPU 101 selects the timing type "Type3" if the generated random number is in the random number range of 31 to 40 (corresponding to a frequency value of 10% for "Type3"). Alternatively, the CPU 101 selects the timing type "TypeC" if the generated random number is in the random number range of 41 to 100 (corresponding to a frequency value of 60% for "TypeC"). Note that in the example of FIG. 4(a), the frequency value of "Type0" is 0%, so no random number range is set and "Type0" is not selected. Of course, a random number range may be set for "Type0" such that it is selected with a certain probability (frequency value). In this way, CPU 101 can select each of the timing types "Type 0", "Type 1", "Type 2", "Type 3", and "Type C" with probabilities of 0%, 10%, 20%, 10%, and 60%, respectively, which are set in the "Ballad" row of the timing type selection frequency table.
[0043] When the tempo range "Slow", "Mid", "Fast" or "Very Fast" is set in the automatic chord accompaniment data read from the ROM 102 in step S301 of FIG. 3, the CPU 101 refers to each frequency value of any row in which "Slow", "Mid", "Fast" or "Very Fast" is registered in the leftmost item in the timing type selection frequency table having the configuration exemplified in FIG. 4(a), in the same manner as in the above-mentioned case in which "Ballad" is set. Next, the CPU 101 sets each random number range within the range of 1 to 100 according to the frequency value [%] set for each timing type of "Type0", "Type1", "Type2", "Type3" or "TypeC" in that row. Then, the CPU 101 generates a random number value within the range of 1 to 100, and selects one of the timing types "Type0", "Type1", "Type2", "Type3" or "TypeC" depending on which of the random number ranges the generated random number value falls within. In this way, the CPU 101 can select each of the timing types "Type 0", "Type 1", "Type 2", "Type 3", and "Type C" with a probability corresponding to each frequency value set in the row of each tempo range in the timing type selection frequency table.
[0044] In an automatic chord accompaniment with a slow tempo like “Ballad,” the pronunciation within a measure is often performed for each chord, so the frequency value (probability) of selecting “Type C” becomes large, for example 60% in Figure 4(a).
[0045] The content of chord accompaniment in music is greatly influenced by the tempo. For example, if a fast tempo song contains many chords (= many note timings), the performance will be hectic and deviate from natural performance, becoming very mechanical. At the same time, even in a slow tempo song, a performance with many chords will sound unnatural. On the other hand, since appropriate variations are necessary even within a single piece of music, it is not good to uniformly determine the occurrence probability of each timing type. Therefore, in this embodiment, by using a technique called a frequency table, i.e., a timing type selection frequency table exemplified in FIG. 4(a), it becomes possible to probabilistically select an appropriate timing type (the number of times a chord is pronounced in one measure) that matches the tempo of the automatic chord accompaniment.
[0046] 3, CPU 101 determines the contents of the timing type probabilistically selected in step S302 (step S303). If the timing type is "Type 1", "Type 2", or "Type 3", CPU 101 executes step S304, if the timing type is "Type 0", it executes step S305, and if the timing type is "Type C", it executes steps S306 and S307.
[0047] If the result of the determination in step S303 is that the timing type is "Type 1," "Type 2," or "Type 3," i.e., if the number of times a chord is sounded in a measure is 1, 2, or 3, then in step S304, the CPU 101 probabilistically selects, for example, one of a plurality of note timing tables stored in the ROM 102 for each timing type, and stores the selected table in the RAM 103. In this way, in this embodiment, for each probabilistically selected timing type (the number of times a chord is sounded in a measure), one note timing table can further be probabilistically selected from a plurality of variations.
[0048] 5(a) and (c) are diagrams showing data configuration examples of multiple (e.g., eight) note timing tables 1 and 2 prepared for, for example, timing type "Type 2." As shown in these examples, one note timing table has the following information set for each of eight horizontal rows of sounding timings, e.g., beats 1 to 4 of one measure and further divided into half beats. Note that this example is for a case where the automatic chord accompaniment has a four-beat signature, and if the automatic chord accompaniment has a different beat signature, the sounding timings are divided based on the number of beats corresponding to the number of beats.
[0049] First, for each head timing of the half-beat unit in the row in which the character string "Tick" is set in the leftmost column of FIG. 5(a) or (c) (hereinafter, this row is called the "Tick row"), a [tick] time from the head of the beat containing that timing to the head of that timing is set. As for these values, 0 [tick] is set for the head timing of the first half beat (hereinafter "downbeat") of each of the first, second, third, and fourth beats, since it is the head of each beat. Also, as for these values, 64 [tick] is set for the head timing of the second half beat (hereinafter "backbeat") of each of the first, second, third, and fourth beats, since it is exactly half of each beat (=128 [tick]). Note that FIG. 5(a) or (c) is an example in which one beat is 128 [tick].
[0050] Next, for each head timing of the half-beat unit in the row in which the character string "Gate" is set in the leftmost column of FIG. 5(a) or (c) (hereinafter, this row is called the "Gate row"), if that timing is a chord sounding timing, a value is set that represents the length of the chord sounded at that timing in [tick] time. In the "Type2 Note Timing Table 1" illustrated in FIG. 5(a), the chord note length is set to 15 [tick] for both the backbeat of the first beat and the backbeat of the third beat in the Gate row. On the other hand, in the "Type2 Note Timing Table 2" illustrated in FIG. 5(c), the chord note length is set to 15 [tick] for both the downbeat of the first beat and the backbeat of the second beat in the Gate row.
[0051] Furthermore, for each head timing of the half-beat unit in the row in which the character string "Velocity" is set in the leftmost column of FIG. 5(a) or (c) (hereinafter, this row is called the "Velocity row"), if the timing is a chord sounding timing, the velocity value (maximum value is 127) of each voice constituting the chord sound sounded there is set. In the "Type2 Note Timing Table 1" exemplified in FIG. 5(a), the velocity value = 75 is set in both the two timings of the backbeat of the first beat and the backbeat of the third beat in the Velocity row. Similarly, in the "Type2 Note Timing Table 2" exemplified in FIG. 5(c), the velocity value = 75 is set in both the two timings of the downbeat of the first beat and the backbeat of the second beat in the Velocity row. At the timing where no sound is sounded, the velocity value = 0 is set.
[0052] In this manner, in step S303->step S304 of FIG. 3, if, for example, "Type 2 note timing table 1" of FIG. 5(a) is selected, chord notes for one measure are sounded at the sounding timing shown as the musical score representation in FIG. 5(b), and if, for example, "Type 2 note timing table 2" of FIG. 5(c) is selected, chord notes for one measure are sounded at the sounding timing different from that of FIG. 5(b), as shown as the musical score representation in FIG. 5(d).
[0053] As the above-mentioned note timing table, a plurality of note timing tables may be prepared in the ROM 102 for each of "Type 1", "Type 2", and "Type 3", as exemplified in Figures 5(a) and (c). In this case, the CPU 101 probabilistically selects one of the plurality of note timing tables stored in the ROM 102 in accordance with the timing type determined in step S302, and stores it in the RAM 103.
[0054] In order to realize this probabilistic selection operation, in this embodiment, a frequency table for selecting a note timing table by timing type, having a data structure as exemplified in FIG. 4(b), is stored in the ROM 102 and used. As this frequency table, one with different settings may be prepared for each timing type. In the frequency table for selecting a note timing table by timing type, having a data structure as exemplified in FIG. 4(b), in a row in which "No" is registered in the leftmost item, the numbers of the note timing tables of the selectable timing types as exemplified in FIG. 5(a) or (c) are set in order from 1 to 8 in the example of FIG. 4(b). In addition, in each column in a row in which "frequency" is registered in the leftmost item, a frequency value [%] at which the note timing table having the number set in the same column is selected is set. For the frequency table as exemplified in FIG. 4(b), the CPU 101 generates any random number having a value range, for example, from 1 to 100, in the same way as in the case of the frequency table for selecting a timing type in FIG. 4(a). Then, for example, if the generated random number value is in the random number range of 1 to 20 (corresponding to a 20% probability of selecting note timing table number 1), CPU 101 selects note timing table 1. Alternatively, for example, if the generated random number value is in the random number range of 21 to 40 (corresponding to a 20% probability of selecting note timing table number 2), CPU 101 selects note timing table 2. Note timing tables with other numbers are also selected probabilistically, in the same manner as note timing tables 1 and 2.
[0055] As described above, in this embodiment, for each measure, first in step S302 of FIG. 3, by using the timing type selection frequency table exemplified in FIG. 4(a), it is possible to probabilistically select the number of chord sounds in the measure that matches the currently selected tempo of the automatic chord accompaniment as the timing type. Then, for each measure, in steps S303->S304 of FIG. 3, by using the frequency data for selecting a note timing table by timing type as exemplified in FIG. 4(b), it becomes possible to probabilistically select one of a plurality of note timing tables, each having a different chord sounding timing and prepared for the selected timing type ("Type 1", "Type 2", or "Type 3"). As a result, in this embodiment, automatic chord accompaniment can be performed while stochastically changing the number of chord sounds and the chord sounding timing for each measure. In other words, musical expression in which a performer changes the number of chord sounds in each measure and the chord sounding timing in half-beat units in a live jazz performance on the piano or guitar can also be realized with automatic chord accompaniment.
[0056] If the result of the determination in step S303 in FIG. 3 is that the timing type is "Type 0", the CPU 101 selects one note timing table dedicated to "Type 0" stored in the ROM 102 and stores it in the RAM 103 in step S305.
[0057] Fig. 5(e) is a diagram showing an example of the data structure of one note timing table prepared for the timing type "Type 0". The basic data structure is similar to the table examples for "Types 1 to 3" shown in Fig. 5(a) or 5(c). However, in the Gate row of the "Type 0 note timing table" shown in Fig. 5(e), the chord note length = 0 [tick] is set for each of the eight sounding timings in half beat units for one measure.
[0058] In this way, if CPU 101 selects, for example, the "Type 0 note timing table" of FIG. 5(e) in step S303->step S305, the measure will result in a whole rest and no chord notes will be sounded, as shown in the musical score representation of FIG. 5(f).
[0059] In this manner, in this embodiment, the timing type "Type 0" is probabilistically selected for each measure, making it possible to realize automatic chord accompaniment in which no chord notes are sounded in that measure as a musical expression.
[0060] If the result of the determination in step S303 in FIG. 3 is that the timing type is "Type C", first, in step S306, the CPU 101 searches for the chord position set in the automatic chord accompaniment data acquired from the ROM 102 in step S301.
[0061] Then, in step S307, the CPU 101 generates a note timing table having a format similar to that of FIG. 5(a) or (c) in accordance with the chord positions searched for in step S306, and stores the table in the RAM 103.
[0062] In this manner, when CPU 101 generates a note timing table for “Type C” in step S303->step S306, each time a chord is changed by the automatic chord accompaniment data in that measure, the changed chord will be sounded.
[0063] FIG. 6 is a flow chart showing a detailed example of the anticipation chord acquisition process in step S207 in FIG. 2. This process generates anticipation. "Anticipation" refers to a performance in which a designated chord is played half a beat ahead of the others. Depending on the melody of the music piece with the automatic chord accompaniment, anticipation may be effective or not, so the performer can switch anticipation on or off using a selector switch (not shown) in the switch section 105 in FIG. 1. Alternatively, anticipation may be set to on or off at the time of shipment from the factory when the automatic chord accompaniment is stored in the ROM 102.
[0064] In the flowchart of FIG. 6, first, if all of the following determinations are YES in steps S601, S602, and S603, the CPU 101 proceeds to step S604 and generates anticipation. Step S601: Whether or not anticipation processing is on, according to the performer's setting or the factory setting. Step S602: Is the current note timing a backbeat? Step S603: Is there a chord change (a chord different from the current chord) in the automatic chord accompaniment on the next beat?
[0065] Fig. 7 is an explanatory diagram of the anticipation chord acquisition process. For example, as shown in Fig. 7(a), the following chords are given as the chord progression: CM7 (down beat of the first measure, first beat), A7 (down beat of the second measure, first beat), Dm7 (down beat of the third measure, first beat), G7 (down beat of the fourth measure, first beat), CM7 (down beat of the fifth measure, first beat), A7 (down beat of the sixth measure, first beat), Dm7 (down beat of the seventh measure, first beat), G7 (down beat of the seventh measure, third beat), and CM7 (down beat of the eighth measure, first beat). 7(b), it is assumed that the current timing 701 is located at the start timing of the backbeat of the second beat of the seventh bar, which is indicated as "current position." The chord G7 is specified for the start timing of the downbeat of the third beat of the seventh bar, which is the next to the backbeat of the second beat of the seventh bar. In this case, in the anticipation chord acquisition process in step S207 in FIG. 2, at the timing of the backbeat of the second beat of the seventh measure, which is the current timing 701, the chord G7 designated for the next beat, the downbeat of the third beat of the seventh measure, is instructed to be sounded half a beat ahead of the current timing 701.
[0066] Specifically, if anticipation processing is currently turned on, when CPU 101 executes the anticipation code acquisition processing of step S207 in FIG. 2 at timing 701 in FIG. 7, the determinations of steps S601, S602, and S603 in FIG. 6 all become YES. As described above in the explanation of the counter update process in step S211 of FIG. 2, CPU 101 determines whether the within-beat tick counter variable value stored in RAM 103 has become, for example, 64 [ticks], thereby determining whether the current timing is the start timing of the backbeat in step S602 of FIG. 6. Furthermore, the CPU 101 checks the chord designations for the current beat and the next beat stored in the RAM 103 to determine whether or not a chord change exists in the next beat in step S603 of FIG.
[0067] If there is no chord change on the next beat (NO in step S603), CPU 101 obtains the current chord (step S604).
[0068] If a chord change exists on the next beat (determination in step S603 is YES), that is, if the chord will change on the next beat, CPU 101 obtains the chord on the next beat (step S605).
[0069] Finally, the CPU 101 stores the acquired code in the RAM 103 as pronunciation code data for use in the voicing process described later (step S606).
[0070] As described above, when all the determinations in steps S601, S602, and S603 are YES, the CPU 101 executes the anticipation process, that is, acquires the chord of the next beat as the chord to be generated this time. If the sounding timing is the offbeat of the fourth beat, the accompaniment data of the next measure is loaded into the RAM 103, and the chord of the first beat of the next measure is referenced to determine whether or not there is a chord change.
[0071] Fig. 8 is a flowchart showing a detailed example of the voicing process in step S208 in Fig. 2. In the voicing process, the CPU 101 determines voicing table data for the chord and key corresponding to the current note-on extracted from the automatic chord accompaniment data of the current measure stored in the RAM 103, and stores the data in the note-on area of the RAM 103.
[0072] First, the CPU 101 determines whether or not the pronunciation code data stored in the RAM 103 in step S606 in FIG. 6 is the same as the code stored in the RAM 103 at the time of the previous pronunciation (step S801).
[0073] If the determination in step S801 is YES, the CPU 101 continues to use the previously selected voicing table data, and ends the voicing process in step S208 in Fig. 2, as exemplified in the flowchart in Fig. 8. As a result, in the note-on process in step S209 in Fig. 2 described above, the CPU 101 instructs the sound source LSI 508 to generate musical tones of note numbers corresponding to each voice of the voice group indicated by the same voicing table data stored in the RAM 103 as the previous time.
[0074] If the determination in step S801 is NO, the CPU 101 executes a voicing process which will be described below.
[0075] First, CPU 101 obtains the music key at the current note-on timing from the automatic chord accompaniment data loaded into RAM 103 (step S803). The automatic chord accompaniment data is loaded into RAM 103 in step S301 of Fig. 3 described above in the timing data generation process of step S203 of Fig. 2. For chords, the pronunciation code data stored in RAM 103 in step S606 of Fig. 6 is used in the following voicing process. Note that since the key often does not change throughout a piece of music, it may be possible to load the key information separately into RAM 103 in step S301 of Fig. 3 and use that information here, rather than loading it for each measure. The CPU 101 stores the acquired code information in the RAM 103 as the previous code information to be determined in the above-mentioned step S801 the next time.
[0076] For example, the automatic chord accompaniment data loaded into RAM 103 sequentially specifies the key of C (shown as "Key C" in the figure) and the chord progressions of Dm7, G7, CM7, FM7, Bm7♭5, E7, Am7, and A7 (e.g., one chord per measure), as illustrated in FIG. 9(a). For example, consider a case where the voicing process of step S208 in Fig. 2 shown in the flow chart of Fig. 8 is executed at an arbitrary note-on timing (chord sounding timing) specified by the above-mentioned note timing data in the second measure shown in Fig. 9(a). In this case, the CPU 101 obtains, for example, chord=G7 and key=C in step S803. Also, for example, consider a case where the voicing process of step S208 in Fig. 2 illustrated in the flowchart of Fig. 8 is executed at an arbitrary note-on timing (chord sounding timing) specified by the above-mentioned note timing data in the sixth measure illustrated in Fig. 9(a). In this case, for example, CPU 101 obtains chord=E7 and key=C in step S803.
[0077] Next, the CPU 101 executes a process of determining a scale by referring to a scale determination table stored in the ROM 102 (step S804). Fig. 9(b) is an example of the data structure of the scale determination table. In the scale determination table, the name of the scale that the chord has is registered at the registration position where each row and each column of the table shown in Fig. 9(b) intersects, according to the chord type of the acquired chord (each horizontal column of the table shown in Fig. 9(b)) and the degree from the key pitch to the root pitch of the chord (each vertical row of the table shown in Fig. 9(b)). As shown in Fig. 9(b), the following scales can be registered: major scale, Lydian scale, Mixolydian scale, Mixolydian #11 scale, Mixolydian scale♭9 scale, Mixolydian scale♭9♭13 scale, altered scale, Dorian scale, Phylidian scale, Aeolian scale, Locrian scale, etc. In addition, scales that can be used in various music genres may be registered. For example, consider the case where CPU 101 acquires chord G7 and key C at the current note-on timing (chord sounding timing) in the second measure of the chord progression in Fig. 9(a) in step S803. In this case, CPU 101 refers to the scale determination table shown in Fig. 9(b) based on the degree of 5 ("V" in Fig. 9(b)) from the key C to the root note G of chord G7 and the chord type 7. As a result, CPU 101 determines the scale to be "Mixolydian" from the intersection of row "V" and column "7". Also, for example, consider a case where CPU 101 acquires chord=E7 and key=C at any note-on timing (chord sounding timing) in the sixth bar of the chord progression in Fig. 9(a), which is the current note-on timing, in step S803. In this case, CPU 101 refers to the scale determination table illustrated in Fig. 9(b) based on the degree from key=C to the root note E of chord E7=3 ("III" in Fig. 9(b)) and chord type=7. As a result, CPU 101 determines the scale="Mixolydian♭9♭13" from the intersection point of row "III" and column "7".
[0078] Next, CPU 101 acquires from ROM 102 a voicing table that is prepared in advance for each scale determined in step S804 and that is stored in ROM 102 (step S805). Fig. 9(c) is a diagram showing an example of the data configuration of a voicing table when the scale is "Mixolydian". For example, as described above, when CPU 101 acquires chord=G7 and key=C in step S803 and further determines scale="Mixolydian" in step S804, CPU 101 acquires from ROM 102 the voicing table exemplified in Fig. 9(c).
[0079] In chord accompaniment, chord voicing is important. Voicing is determining which voices are stacked in an octave to sound one chord. In music genres such as jazz, so-called tension notes that are 9th, 11th, or 13th semitones above the root note are often used in chord accompaniment, and using these voices achieves chord performance that is tense and rich in musicality. In chord performance, the key is which scale to use, and the tensions that can be used vary depending on the key and chord. Therefore, in this embodiment, the CPU 101 determines a playable scale, for example, a "Mixolydian" scale, based on, for example, chord=G7 and key=C specified at the current note-on timing in steps S803 and S804 of FIG. 8.
[0080] Furthermore, in this embodiment, when a chord, for example, G7 is to be sounded in the "Mixolydian" scale at the current note-on timing, even if it is the same "Mixolydian G7", one voicing (voicing pattern) is probabilistically selected from multiple voicing variations (for example, six in Figure 9(c)), and the chord, G7, can be note-on with that voicing. For example, in the voicing table illustrated in FIG. 9(c), when voicing table data No. 1 is selected, for a note-on of the chord G7, a voice group consisting of four notes having intervals of 4 semitones (major third: B), 9 semitones (major sixth: E), 10 semitones (minor seventh: F), and 14 semitones (major ninth: A) in semitone units are used for the root note G. For example, when voicing table data No. 3 is selected, for a note-on of the chord G7, a voice group consisting of three notes with intervals of 4 semitones (major third: B), 10 semitones (minor seventh: F), and 14 semitones (major ninth: A) in semitone units relative to the root note G is used. In addition, in jazz and other chord playing with tension, the root note is generally not pronounced, so the voices in the voicing table often do not include the root note (degree 1).
[0081] The factors for determining a set of voicing table data from a voicing table are the voicing type, generally called Atype or Btype in many music genres including jazz, and the polyphony number, which specifies how many notes are to be generated. Atype and Btype refer to voicings with a wide range or narrow range. Atype refers to a voicing type that includes tension notes and is made by stacking voices, for example, 3rd, 5th, 7th, and 9th, around the root note. Btype refers to a voicing type that narrows the range of Atype by lowering the 7th and 9th by an octave, for example. The voicing table illustrated in Fig. 9(c) indicates that the voicing table data No. 1 and No. 2 can be selected when the voicing type is A type and the number of polyphony voices is 4. Both of these two voicing table data can be selected when the voicing type is A type and the number of polyphony voices is 4, but which one is selected in this case is determined probabilistically by the process of step S810 in Fig. 8 (described later) using a voicing table data selection frequency table illustrated in Fig. 10(b) (described later). Also, it shows that the voicing table data No. 3 can be selected when the voicing type is A type and the number of polyphony voices is 3. When the voicing type is A type and the number of polyphony voices is 3, the only voicing table data that can be selected is No. 3, so in that case, the voicing table data No. 3 is always selected. Furthermore, it is shown that the voicing table data of No. 4 and No. 5 can be selected when the voicing type is B type and the number of polyphony voices is 4. Both of these two voicing table data can be selected when the voicing type is B type and the number of polyphony voices is 4, but which one is selected in this case is determined probabilistically by the process of step S810 in Fig. 8, which will be described later, using a voicing table data selection frequency table exemplified in Fig. 10(b), which will be described later. It also shows that the voicing table data No. 6 can be selected when the voicing type is B type and the number of polyphony voices is 3. When the voicing type is B type and the number of polyphony voices is 3, the only voicing table data that can be selected is No. 6, so in that case, the voicing table data No. 6 is always selected.
[0082] In order to realize the above-mentioned voicing table data selection operation, the CPU 101 first determines the number of polyphony elements probabilistically by referring to a frequency table for number of polyphony elements selection that has been prepared in advance and stored in the ROM 102 (step S806). Fig. 10(a) is a diagram showing an example of the data structure of the frequency table for number of polyphony elements selection. "Ballad", "Slow", "Mid", "Fast", and "Very Fast" registered in the leftmost column of the frequency table for number of polyphony elements selection exemplified in Fig. 10(a) each indicate the tempo range of the automatic chord accompaniment data, as in the case of the frequency table for timing type selection in Fig. 4(a).
[0083] In step S806 of Fig. 8, the CPU 101 executes the following control process using the frequency table for selecting the number of polyphony elements, as exemplified in Fig. 10(a), stored in the ROM 102. First, when the tempo range "Ballad" is set in the automatic chord accompaniment data read from the ROM 102 in step S301 of Fig. 3 in the timing data generation process of step S203 of Fig. 2, the CPU 101 refers to the data in the row in which "Ballad" is registered in the leftmost item in the frequency table for selecting the number of polyphony elements, as exemplified in Fig. 10(a). In this row, frequency values [%] are set indicating that the number of polyphony elements 3 or the number of polyphony elements 4 will be selected with a probability of 10% or 90%, respectively. In response to this, the CPU 101 generates an arbitrary random number value having a range, for example, from 1 to 100, in the same manner as in step S302 of Fig. 3 described above. Then, for example, if the generated random number value is in the random number range of 1 to 10 (corresponding to a frequency value of 10% for "polynumber 3"), the CPU 101 selects "polynumber 3". Alternatively, for example, if the generated random number value is in the random number range of 11 to 100 (corresponding to a frequency value of 90% for "polynumber 4"), the CPU 101 selects "polynumber 4". In this way, the CPU 101 can select each of the polynumbers "polynumber 3" and "polynumber 4" with the probabilities of 10% and 90%, respectively, set in the "Ballad" row of the polynumber selection frequency table.
[0084] When the tempo range "Slow", "Mid", "Fast" or "Very Fast" is set in the automatic chord accompaniment data read from the ROM 102 in step S301 of FIG. 3, the CPU 101 refers to each frequency value of any row in which "Slow", "Mid", "Fast" or "Very Fast" is registered in the leftmost item in the frequency table for selecting the number of polyphony elements having the configuration exemplified in FIG. 10(a), in the same manner as the above-mentioned case in which "Ballad" is set. Next, the CPU 101 sets each random number range within the range of 1 to 100 according to the frequency value [%] set for each polyphony element of "polyphony element 3" or "polyphony element 4" in that row. Then, the CPU 101 generates a random number value within the range of 1 to 100, and selects either "polyphony element 3" or "polyphony element 4" depending on which of the above-mentioned random number ranges the generated random number value falls within. In this way, the CPU 101 can select each of the "number of polyphony elements: 3" and "number of polyphony elements: 4" with a probability corresponding to each frequency value set in the row of each tempo range in the frequency table for polyphony element selection.
[0085] The number of polyphony notes that will produce a natural performance varies depending on the tempo and melody of the music. For this reason, in this embodiment, a frequency table for selecting the number of polyphony notes, which has a data structure as shown in Fig. 10(a) and determines the frequency with which the number of polyphony notes will appear, is referenced for each melody, such as "Ballad", "Slow", "Mid", "Fast", or "Very Fast". The CPU 101 that executes the process of step S806 described above operates as a number-of-notes selection means.
[0086] After determining the polyphony number in step S806, the CPU 101 determines whether the chord to be note-on should be of the above-mentioned voicing type A or B. Specifically, the CPU 101 determines whether the pitch of the root note of the chord to be note-on is F# or higher (step S807). If the determination in step S807 is NO, the CPU 101 selects the A type as the voicing type of the current chord (step S808). If the determination in step S807 is YES, the CPU 101 selects the B type as the voicing type of the current chord (step S809). The determination in step S807 is made in order to divide one octave in half so that each chord falls within a certain range and so that the range does not jump too much due to chord transitions. CPU 101, which executes steps S807 to S809, operates as a voicing type determining means.
[0087] Finally, the CPU 101 uses a voicing table data selection frequency table prepared corresponding to the voicing table illustrated in FIG. 9(c) obtained from ROM 102 in the above-mentioned step S805 and stored in ROM 102 to probabilistically extract optimal voicing table data from the voicing table illustrated in FIG. 9(c) based on the combination of the number of polyphony parts (3 or 4) and voicing type (A or B) determined by the processing of steps S806 to S809, and stores the data in RAM 103 (step S810). CPU 101 executing step S810 operates as a voicing pattern selection means.
[0088] Fig. 10(b) is a diagram showing an example of the data configuration of a voicing table data selection frequency table. "4 / A", "4 / B", "3 / A", and "3 / B" registered in the leftmost column of the voicing table data selection frequency table shown in Fig. 10(b) each indicate a combination of the number of polyphony parts (3 or 4) and the voicing type (A type or B type) determined in steps S806 to S809.
[0089] CPU 101 executes the following control process in step S810 of FIG. 8. First, when the "number of polyphony elements / voicing type" determined in steps S806 to S809 is "4 / A", CPU 101 refers to the data of the row in which "4 / A" is registered in the leftmost item in the voicing table data selection frequency table illustrated in FIG. 10(b). The frequency values [%] are set to indicate that the voicing table data of numbers 1 and 2 are selected with a probability of 60% or 40%, respectively. Since 0% is set as the frequency value for the voicing table data of other numbers, the voicing table data of these numbers cannot be selected for the combination of "4 / A". In response to this, CPU 101 generates any random number value having a range of, for example, 1 to 100, in the same manner as in the case of step S806 described above. Then, CPU 101 selects the voicing table data of number 1 if the generated random number value is within the random number range of 1 to 60 (corresponding to the frequency value of 60% for number 1), for example. Alternatively, for example, if the generated random number value is within the random number range of 61 to 100 (corresponding to a frequency value of 40% for number 1), CPU 101 selects voicing table data number 1. In this manner, CPU 101 selects voicing table data number 1 and number 2 with the probabilities of 60% and 40%, respectively, set in the "4 / A" row of the frequency table for voicing table data selection.
[0090] When the "number of polynomials / voicing type" determined in steps S806 to S809 is "4 / B", "3 / A", or "3 / B", similarly to the above-mentioned case where "4 / A" is set, CPU 101 refers to each frequency value of any row in which "4 / B", "3 / A", or "3 / B" is registered in the leftmost item in the voicing table data selection frequency table having the configuration exemplified in FIG. 10(b), for example. Next, CPU 101 sets each random number range within the range of 1 to 100 according to the frequency value [%] set for each voicing table data numbered 1 to 6 in that row. Then, CPU 101 generates a random number value within the range of 1 to 100, and selects one of the voicing table data numbers 1 to 6 depending on which of the random number ranges the generated random number value falls within. In this way, CPU 101 selects each of the voicing table data numbers 1 to 6 on the voicing table of Figure 9(c) with a probability corresponding to each frequency value set in each "number of polyphony / voicing type" row of the frequency table for voicing table data selection of Figure 10(b). In step S810, CPU 101 stores in RAM 103 the voicing table data extracted from the voicing table of FIG.
[0091] After the process of step S810, CPU 101 ends the voicing process of step S208 in FIG. 2 illustrated in the flowchart of FIG.
[0092] By the voicing process described above, in this embodiment, a scale that conforms to music theory can be appropriately selected in response to the chord and key to be note-on in an automatic chord accompaniment, and candidates for voicing table data of a plurality of variations corresponding to the scale can be provided as a voicing table. Next, in this embodiment, one set of candidates for voicing table data of the plurality of variations can be probabilistically extracted based on a combination of polyphony count and voicing type that is determined probabilistically. Then, in this embodiment, the voice group provided as the voicing table data extracted in this manner can be used to execute the note-on process of chords in the automatic chord accompaniment. This makes it possible to realize a wide variety of automatic chord accompaniments that conform to music theory.
[0093] FIG. 11(a) is a musical score representation of C7 (Mixolydian scale), and FIG. 11(b), (c), (d), (e), (f), and (g) are musical score representations showing examples of voicing variations in C7 (Mixolydian scale). FIG. 11(b) is a musical score representation of an example of a C7 chord with a polyphony number of four notes, including 9th and 13th tension notes, whose voicing type is A type. FIG. 11(c) is a musical score representation of an example of a C7 chord with a polyphony number of four notes, including 9th tension notes, whose voicing type is A type. FIG. 11(d) is a musical score representation of an example of a C7 chord with a polyphony number of three notes, including 9th tension notes, whose voicing type is A type. FIG. 11(e) is a musical score representation of an example of a C7 chord with a polyphony number of four notes, including 9th and 13th tension notes, whose voicing type is B type. Figure 11(f) is a musical score representation of an example of a C7 chord with a polyphony number of four notes, including a 9th tension note, and a B type voicing. Figure 11(g) is a musical score representation of an example of a C7 chord with a polyphony number of three notes, including a 13th tension note, and a B type voicing.
[0094] FIG. 10(h) is a musical score representation of the C7 (Mixolydian ♭9♭13) scale used in the minor scale, and FIG. 10(i) and (j) are musical score representations showing examples of voicing variations in the “C7 Mixolydian ♭9♭13” scale. FIG. 11(i) is a musical score representation of an example of a C7 chord with a polyphony number of four notes, including a ♭9th tension note, whose voicing type is A type. FIG. 11(j) is a musical score representation of an example of a C7 chord with a polyphony number of four notes, including a ♭9th and a ♭13th tension note, whose voicing type is A type.
[0095] As shown in FIG. 11, in this embodiment, it is possible to perform automatic chord accompaniment using chords of various voicings.
[0096] In the above-described embodiment, the automatic performance device according to the present invention is built into the electronic keyboard instrument 100 of FIG. 1. On the other hand, the automatic performance device and the electronic instrument may be separate devices. Specifically, as shown in FIG. 12, the automatic performance device may be installed as an automatic performance application on a smartphone or tablet terminal (hereinafter referred to as "smartphone or the like 1201"), and the electronic instrument may be, for example, an electronic keyboard instrument 1202 without an automatic chord accompaniment function. In this case, the smartphone or the like 1201 and the electronic keyboard instrument 1202 communicate wirelessly based on a standard called MIDI over Bluetooth Low Energy (hereinafter referred to as "BLE-MIDI", Bluetooth is a registered trademark). BLE-MIDI is an inter-instrument wireless communication standard that enables communication over the wireless standard Bluetooth Low Energy using the standard MIDI (Musical Instrument Digital Interface) for communication between instruments. The electronic keyboard instrument 1202 can be connected to the smartphone or the like 1201 using the Bluetooth Low Energy standard. In this state, the automatic chord accompaniment data based on the automatic chord accompaniment function described in Figures 2 to 11 is transmitted as MIDI data via a BLE-MIDI standard communication path to the electronic keyboard instrument 1202 by an automatic performance application executed on the smartphone or the like 1201. The electronic keyboard instrument 1202 performs the automatic chord accompaniment described in Figures 2 to 11 based on the automatic chord accompaniment MIDI data received via the BLE-MIDI standard.
[0097] FIG. 13 is a diagram showing an example of the hardware configuration of an automatic musical instrument 1201 in another embodiment in which the automatic musical instrument and the electronic musical instrument having the connection form shown in FIG. 12 operate separately. In FIG. 13, a CPU 1301, a ROM 1302, a RAM 1303, and a touch panel display 1305 have the same functions as the CPU 101, the ROM 102, and the RAM 103 in FIG. 1. The CPU 1301 executes the program of the automatic musical instrument application downloaded and installed in the RAM 1303, thereby realizing the same function as the automatic chord accompaniment function described in FIG. 2 to FIG. 11, which is realized by the CPU 101 executing the control program. At this time, the function equivalent to the switch unit 105 in FIG. 1 is provided by the touch panel display 1305. Then, the automatic musical instrument application converts the control data for the automatic chord accompaniment into automatic chord accompaniment MIDI data and passes it to the BLE-MIDI communication interface 1305.
[0098] The BLE-MIDI communication interface 1305 transmits the automatic chord accompaniment MIDI data generated by the automatic performance application to the electronic keyboard instrument 1202 in accordance with the BLE-MIDI standard. As a result, the electronic keyboard instrument 1202 performs the automatic chord accompaniment similar to that of the electronic keyboard instrument 100 in FIG. In addition, instead of the BLE-MIDI communication interface 1305, a MIDI communication interface that is connected to the electronic keyboard instrument 1202 via a wired MIDI cable may be used.
[0099] As described above, in this embodiment, a problem that was previously solved by the prior art is solved by realizing the chord pronunciation structure (voicing) that includes tension notes that are characteristic of jazz and other genres, as well as automatic chord accompaniment with a more natural number of notes and range, making it possible to provide automatic accompaniment for chord parts that sounds as if they were being played by a jazz pianist or the like. In particular, in this embodiment, chords are pronounced in a more natural range, and when changing chords, they are pronounced in a playing position that includes tension notes that require less range movement. When there are no chord changes, the voicing is not changed unnecessarily to produce natural pronunciation. The number of notes that are pronounced simultaneously (or not pronounced in some cases) is also adjusted by an algorithm to match the melody and the specific musical structure of jazz, such as themes and solos, making it possible to provide more natural chord accompaniment. This allows performers to have a performance experience that feels as if they are participating in a jam session. It can also be used as part of training for those who want to play jazz but are hesitant to join a jam session because they lack the courage to do so. In addition, the automatic chord accompaniment that captures the characteristics of jazz and other genres can be used as part of education, such as for studying and practicing phrasing when playing jazz solos (improvisation). In this way, the automatic performance device according to this embodiment makes it possible to realize natural automatic chord accompaniment that can express the timing and voicing of a live musical instrument performance by a performer.
[0100] The following supplementary notes are further disclosed regarding the above-described embodiment. (Appendix 1) A sound number selection means for probabilistically selecting the number of sounds to be generated; a voicing type determining means for determining a voicing type corresponding to a range; a voicing pattern selection means for selecting a voicing pattern corresponding to a combination of the selected number of notes and the determined voicing type from a plurality of voicing patterns based on a scale determined by the key and chord of a musical piece; a sound generation instruction means for instructing a sound source to generate a chord voiced based on the selected voicing pattern; An automatic musical instrument comprising: (Appendix 2) 2. The automatic musical instrument according to claim 1, wherein, if there are multiple voicing patterns corresponding to the combination, one of the multiple voicing patterns is probabilistically selected. (Appendix 3) 3. The automatic musical instrument according to claim 1, wherein the voicing type determination means determines the voicing type based on the root pitch of a chord to be sounded. (Appendix 4) Further comprising a communication means for transmitting and receiving musical tone information, the sound generation instruction means instructs the sound source to generate the sound of the chord via the communication means; 4. An automatic musical instrument according to claim 1, (Appendix 5) 4. An electronic musical instrument comprising the automatic musical performance device according to any one of claims 1 to 3 and the sound source, wherein the sound source performs automatic chord accompaniment based on an instruction by the sound generation instruction means of the automatic musical performance device to generate a chord voiced based on the selected voicing pattern. (Appendix 6) Select the number of sounds to be played, Determine the voicing type that corresponds to the range, selecting a voicing pattern corresponding to a combination of the selected number of notes and the determined voicing type from a plurality of voicing patterns based on a scale determined by the key and chord of the music piece; instructing a sound source to generate a voiced chord based on the selected voicing pattern; Automatic playing method. (Appendix 7) Select the number of sounds to be played, Determine the voicing type that corresponds to the range, selecting a voicing pattern corresponding to a combination of the selected number of notes and the determined voicing type from a plurality of voicing patterns based on a scale determined by the key and chord of the music piece; instructing a sound source to generate a voiced chord based on the selected voicing pattern; A program that causes a computer to execute a process. [Explanation of symbols]
[0101] 100 Electronic Keyboard Instruments 101 CPU 102 ROM 103 RAM 104 Keyboard section 105 Switch section 106 Sound source LSI 107 Sound System 108 System Bus
Claims
1. A voicing type determination means for determining a voicing type corresponding to a range of tones; a voicing pattern selection means for probabilistically selecting one voicing pattern corresponding to a combination of the selected number of notes and the determined voicing type from a plurality of voicing patterns based on a scale determined by the key and chords of a musical piece; a sound generation instruction means for instructing a sound source to generate a chord voiced based on the selected voicing pattern; An automatic musical instrument comprising:
2. 2. The automatic musical instrument according to claim 1, wherein said voicing type determining means determines said voicing type based on the root pitch of a chord to be sounded.
3. Further comprising a communication means for transmitting and receiving musical tone information, the sound generation instruction means instructs the sound source to generate the sound of the chord via the communication means; 3. The automatic musical instrument according to claim 1 or 2.
4. 4. An electronic musical instrument comprising the automatic performance device according to claim 1 and the sound source, wherein the sound source performs automatic chord accompaniment based on an instruction by the sound generation instruction means of the automatic performance device to generate a chord voiced based on the selected voicing pattern.
5. A voicing type corresponding to a range is determined, probabilistically selecting one voicing pattern corresponding to a combination of the selected number of notes and the determined voicing type from a plurality of voicing patterns based on a scale determined by the key and chord of the musical piece; instructing a sound source to generate a voiced chord based on the selected voicing pattern; Automatic playing method.
6. A voicing type corresponding to a range is determined, probabilistically selecting one voicing pattern corresponding to a combination of the selected number of notes and the determined voicing type from a plurality of voicing patterns based on a scale determined by the key and chord of the musical piece; instructing a sound source to generate a voiced chord based on the selected voicing pattern; A program that causes a computer to execute a process.
