Automatic phonetic data generation method, automatic phonetic data generation device, electronic musical instrument, and program
The automatic performance device addresses the limitations of conventional systems by probabilistically controlling note timing and voicing, achieving natural and expressive chord accompaniment.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CASIO COMPUTER CO LTD
- Filing Date
- 2026-03-02
- Publication Date
- 2026-05-01
AI Technical Summary
Conventional automated accompaniment systems struggle with controlling tension notes, leading to interference with melodies and a lack of musical expression, as they cannot dynamically change performance timing, note count, or voicing based on the randomness of live performances.
An automatic performance device employs a timing type selection mechanism to probabilistically determine note playing frequency and timing, using note timing tables to instruct sound sources to play chords at varying intervals, simulating live instrument performances.
This approach enables natural automatic chord accompaniment that captures the timing and voicing nuances of live instrument performances, enhancing musical expression.
Smart Images

Figure 2026074334000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an automatic performance device that automatically performs codes, an electronic musical instrument, an automatic performance method, and a program.
Background Art
[0002] In performances such as jazz piano parts and guitar parts, even when repeatedly performing the same constituent sounds or chord sounds, the performance may be done at different timings each time. Also, in jazz performances, it is common to use chords (harmonies) that include tension notes with a unique jazz-like sense of tension instead of performing the voicing (constituent sounds) of the chords (harmonies) of the piece to be performed according to the chord sheet. A tension note refers to a constituent sound that gives a sense of tension to the sound of a harmony and does not inhibit the harmonic progression among the non-harmonic sounds used together with the harmony of music based on major and minor keys. Tension notes are not uniformly determined by chord types.
[0003] In order to realize an automatic performance using tension notes of a specified chord name in an automatic performance by an electronic musical instrument and create performance data with a refined sound, the following prior art is known (for example, Patent Document 1). During automatic performance, chord data including root note data, type data, and available note scale data as a set is sequentially specified, and this available note scale data is referred to.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] However, with conventional automated accompaniment systems that digitize pre-determined performances, controlling tension notes is difficult. This can lead to an increase in the number of notes, causing tension notes to interfere with the melody, or resulting in the performance being the same every time, making it impossible to reproduce the characteristics of music such as jazz. For example, even with the prior art described in Patent Document 1, automatic performance is only performed based on predetermined chord data, including available note scale data. There is a problem in that it is not possible to automatically perform the same chord by subtly changing the performance timing, the number of notes in a measure, or the voicing (sound composition) based on the randomness of the performance.
[0006] Therefore, the present invention aims to realize natural automatic chord accompaniment that can express the timing and voicing of live instrument performances by musicians. [Means for solving the problem]
[0007] An example of an automatic performance device includes a timing type selection means for probabilistically selecting one of a plurality of timing types that define the number of times a note is played, a timing table selection means for probabilistically selecting one of a plurality of note timing tables that define the timing of the note playing corresponding to the selected timing type, and a sound playing instruction means for instructing a sound source to play a chord at the timing of the note playing based on the selected note timing table. [Effects of the Invention]
[0008] According to the present invention, the sound source is instructed to play chords at timings based on a probabilistically selected note timing table, making it possible to realize natural automatic chord accompaniment that can express the chord timing in live instrument performances by musicians. [Brief explanation of the drawing]
[0009] [Figure 1] This figure shows an example of the hardware configuration of an electronic musical instrument. [Figure 2]This flowchart shows an example of automatic chord accompaniment processing by an automatic musical instrument. [Figure 3] The flowchart shows a detailed example of the timing data generation process. [Figure 4] This figure shows an example of the data structure of the frequency table used in the timing data generation process. [Figure 5] This figure shows an example of the data structure of a note timing table and how that data is used to represent note timing in musical notation. [Figure 6] This flowchart shows a detailed example of the anticipation code acquisition process. [Figure 7] This is an explanatory diagram of the anticipation code acquisition process. [Figure 8] This flowchart shows a detailed example of the voicing process. [Figure 9] This figure shows an example of the data structure for chord progression data, scale determination tables, and voicing tables for each scale. [Figure 10] This figure shows an example of the data structure of the frequency table used in the voicing process. [Figure 11] This figure shows musical notation examples of scales and variations in voicings within those scales. [Figure 12] This diagram shows a connection configuration for another embodiment in which the automatic playing device and the electronic musical instrument operate independently. [Figure 13] This figure shows an example of the hardware configuration of an automatic musical instrument in another embodiment in which the automatic musical instrument and the electronic musical instrument operate independently. [Modes for carrying out the invention]
[0010] Hereinafter, embodiments for implementing the present invention will be described in detail while referring 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, the 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, and they are configured to be mutually connected by a system bus 108. Further, the output of the sound source LSI 106 is input to a sound system 107.
[0011] This electronic keyboard instrument 100 has a function of an automatic performance device that automatically chords the piano part. And the automatic performance device of this electronic keyboard instrument 100 can automatically generate, by an algorithm within a certain range of musical rules, pronunciation data for automatic piano accompaniment of, for example, jazz, rather than simply playing back the programmed data.
[0012] The CPU 101 executes the control operation of the electronic keyboard instrument 100 in FIG. 1 by loading the control program stored in the ROM 102 into the RAM 103 and executing it while using the RAM 103 as a working memory. In particular, the CPU 101 executes the control operation of automatically chording the piano part by loading the control program shown by the flowchart described later from the ROM 102 into the RAM 103 and executing it.
[0013] The keyboard section 104 detects the key-pressing or key-releasing operation of each key as a plurality of performance operators and notifies the CPU 101. In addition to the control operation for automatically chording the piano part described later, the CPU 101 executes a process of generating pronunciation instruction data for controlling the pronunciation or silencing of musical sounds corresponding to the keyboard performance by the performer based on the detection notification of the key-pressing or key-releasing operation notified from the keyboard section 104. The CPU 101 notifies the generated pronunciation instruction data to the sound source LSI 106.
[0014] The switch unit 105 detects operations of various switches by the performer and notifies the CPU 101.
[0015] The sound source LSI 106 is a large-scale integrated circuit for generating musical sounds. Based on the tone generation instruction data input from the CPU 101, the sound source LSI 106 generates digital musical tone waveform data and outputs it to the sound system 107. The sound system 107 converts the digital musical tone waveform data input from the sound source LSI 106 into an analog musical tone waveform signal, amplifies the analog musical tone waveform signal with a built-in amplifier, and emits sound from a built-in speaker.
[0016] Details of the automatic chord accompaniment processing for the piano part by an 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 below. FIG. 2 is a flowchart showing an example of the automatic chord accompaniment processing of this automatic performance device. This processing is a process in which the CPU 101 in FIG. 1 loads and executes a program for the control processing of the automatic chord accompaniment of the piano part stored in the ROM 102 into the RAM 103.
[0017] After the performer operates the switch unit 105 in FIG. 1 to select the genre (e.g., "jazz") and tempo of the automatic accompaniment, and then presses a start switch for automatic accompaniment (not particularly shown in the figure) in the switch unit 105, the CPU 101 starts the automatic chord accompaniment processing exemplified in the flowchart of FIG. 2.
[0018] First, the CPU 101 performs a counter reset process (step S201). Specifically, the CPU 101 resets the measure counter variable value stored in RAM 103, which represents the number of measures from the start of the automatic chord accompaniment of the piano part, to a value indicating the first measure of the automatic chord performance of the piano part (for example, "1"). The CPU 101 also resets the beat counter variable value stored in RAM 103, which represents the number of beats (beat position) within a measure, to a value indicating the first beat (for example, "1"). Next, the control of the automatic piano accompaniment by the automatic performance device proceeds in units of the value of the tick variable stored in RAM 103 (hereinafter this value will be referred to as the "tick variable value"). In ROM 102 in Figure 2, a TimeDivision constant (hereinafter this value will be referred to as the "TimeDivision constant value") indicating the time resolution of the automatic chord accompaniment is pre-set, and this TimeDivision constant value indicates the resolution of a quarter note. If this value is, for example, 128, then a quarter note has a duration of "128 × tick variable value". Here, the actual number of seconds in one tick depends on the tempo specified for the piano part of the automatic chord accompaniment. If we now define the value set in the Tempo variable on RAM103 according to the user settings as "Tempo variable value [beats / minute]", then the number of seconds in one tick (hereinafter referred to as "tick second value") is calculated by the following formula (1).
[0019] tick seconds value = 60 / Tempo variable value / TimeDivision variable value ...(1)
[0020] Therefore, in the counter reset process of step S201 in Figure 2, the CPU 101 first calculates the tick second value by the arithmetic process corresponding to equation (1) above and stores it in the "tick second variable" on RAM 103. Initially, the Tempo variable value may be set to a predetermined value read from the constants in ROM 102 in Figure 2, for example, 60 [beats / second]. Alternatively, the Tempo variable may be stored in non-volatile memory, and the Tempo variable value from the previous shutdown may be retained when the power to the electronic keyboard instrument 100 is turned on again.
[0021] Next, in the counter reset process of step S201 in Figure 2, the CPU 101 first resets the tick variable value in RAM 103 to 0. Then, it sets a timer interrupt for the built-in timer hardware (not shown) using 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 "tick interrupt") occurs in the timer every time the above tick second value has elapsed.
[0022] If the performer changes the tempo of the automatic chord accompaniment of the piano part by operating the switch unit 105 in Figure 1 during the automatic chord accompaniment, the CPU 101 calculates the tick time value by executing the calculation process corresponding to equation (1) above again using the Tempo variable value that has been reset in 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 built-in timer hardware using the newly calculated tick time value. As a result, a tick interrupt will occur every time the number of seconds specified by the newly set tick time value has elapsed in the timer.
[0023] After the counter reset process in step S201, the CPU 101 repeatedly executes the series of processes in steps S202 to S211 as a loop. This loop process is repeatedly executed until step S210 determines that there is no more automatic chord accompaniment data or that the performer has instructed the end of the automatic piano accompaniment using a switch (not shown) on the switch unit 105 in Figure 1.
[0024] In the counter update process of step S211 within the loop processing described above, if a new tick interrupt request is generated from the timer, CPU 101 increments the tick counter variable value on RAM 103 via the tick interrupt process. After that, CPU 101 cancels the tick interrupt. If no tick interrupt request is generated, CPU 101 does not increment the tick counter variable value via the tick interrupt process and terminates the counter update process of step S211. As a result, the tick counter variable value is incremented every number of seconds, corresponding to the tick second value calculated in relation to 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 second of the tick second value in step S211. Hereafter, the time unit synchronized with the tempo, where this tick counter variable value = 1, will be referred to as [tick]. As mentioned above, if the TimeDivision constant value, which indicates the resolution of a quarter note, is 128, then a quarter note has a time length of 128 [ticks]. Therefore, if the piano part being automatically accompanied by chords is, for example, in 4 / 4 time, then 1 beat = 128 [ticks], and 1 measure = 128 [ticks] × 4 beats = 512 [ticks]. In the counter update process of step S211 of the above loop process, if, for example, a piano part in 4 / 4 time is selected, the CPU 101 updates the beat counter variable value stored in RAM 103 in a loop between 1 and 4, 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 in-beat tick counter variable value, which counts the tick time from the beginning of each beat, to 0 when the beat counter variable value changes. In addition, in the counter update process of step S211, the CPU 101 increments the measure counter variable value stored in RAM 103 by +1 when the beat counter variable value changes from 4 to 1. This measure counter variable value represents the number of measures 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) within each measure represented by the measure counter variable value. Also, if the value of the in-beat tick counter variable value is between 0 and 63 (=128÷2-1), it indicates the downbeat, and if it is between 64 and 127, it indicates the upbeat. This value is determined in step S602 of the anticipation chord acquisition process, which is illustrated in the flowchart of Figure 6 described later.
[0026] The CPU 101 repeatedly executes step S211 as a loop process, updating the tick counter variable value, the in-beat tick counter variable value, the beat counter variable value, and the measure counter variable value, while executing the 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 Figure 2 are described below. First, the CPU 101 determines whether the current timing is the beginning of a measure (step S202). Specifically, the CPU 101 determines whether the measure counter variable value stored in RAM 103 has changed (been increased by +1) between the time step S202 was executed the previous time and the time it is executed now.
[0028] If the determination in step S202 is YES, the CPU 101 executes the timing data generation process (step S203). In this process, the CPU 101 generates note timing table data that indicates the timing of the new chords for one measure indicated by the updated measure counter variable value, and stores it in RAM 103. The CPU 101 also reads the new automatic chord accompaniment data for each measure indicated by the updated measure counter variable value corresponding to each note timing in the generated note timing data, for example, from ROM 102 to RAM 103. The automatic chord accompaniment data includes, for example, at least the chord and key. Details of this process will be described later using the flowchart in Figure 3. If the determination in step S202 is NO, the CPU 101 skips the timing data generation process in step S203.
[0029] Next, the CPU 101 determines whether the current timing is a note-off timing (step S204). Specifically, the CPU 101 determines whether the current beat counter variable value and the beat tick counter variable value stored in the RAM 103 match the beat number and [tick] time of any code mute timing in the note timing data stored in the RAM 103 in step S203. In this case, the beat number of any code mute timing is any "beat" item value that includes a timing where a non-zero "Gate" item value is set in the note timing data exemplified in Figure 5(c) or (e) described later. Also, the [tick] time of any of the above-mentioned code mute timings is the [tick] time value obtained by adding the "Tick" item value of the timing where that non-zero "Gate" item value is set to the "Gate" item value.
[0030] If the determination in step S204 is YES, the CPU 101 executes the 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 RAM 103 in the voicing process of step S208, which will be described later, in accordance with 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 beat tick counter variable value stored in RAM 103 match the beat number and [tick] time of any chord sound timing in the note timing table stored in RAM 103 in step S203. In this case, the beat number of any chord sound timing is any "beat" item value that includes a timing where a non-zero "Gate" item value is set in the note timing table exemplified in Figure 5(a) or (c) described later. Also, the [tick] time of any chord sound timing is the "Tick" item value of the timing where that non-zero "Gate" item value is set.
[0032] If the determination in step S206 is YES, the CPU 101 executes the anticipation code acquisition process (step S207). Details of this process will be described later using the flowchart illustrated in Figure 6.
[0033] Next, the CPU 101 performs the voicing process (step S208). In this 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 RAM 103, and stores it 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 in detail later. Details of the voicing process in step S208 will be described later using the flowchart illustrated in Figure 8.
[0034] After the processing in step S208, the CPU 101 executes note-on processing (step S209). In this process, the CPU 101 instructs the sound source LSI 508 to play the musical tone corresponding to the note number of each voice in the voice group indicated by the voicing table data stored in RAM 103 during the voicing processing in step S208. The velocity specified to the sound source LSI 508 along with each note number at this time 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, which executes the processing in step S209, operates as a means of instructing sound production.
[0035] If the determination in step S206 is NO, or after processing in step S209, the CPU 101 determines whether there is still automatic chord accompaniment data to be read from ROM 102, etc., and whether the performer has not instructed the end of the automatic piano accompaniment using a switch (not shown) on the switch unit 105 in Figure 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. If the determination in step S210 is NO, the CPU 101 terminates the automatic chord accompaniment process as illustrated in the flowchart in Figure 2.
[0037] Figure 3 is a flowchart showing a detailed example of the timing data generation process in step S203 of Figure 2. In this process, the CPU 101 determines the newly updated note timings and gate times to be played in the current measure for each timing at the beginning of the measure determined in step S202. In this case, the CPU 101 probabilistically determines the number of times (timing type) chords will be played in the measure and a note timing table that specifies when each chord should be played.
[0038] In the flowchart of Figure 3, the CPU 101 first obtains, for example, ROM 102, the automatic chord accompaniment data for one measure corresponding to the newly updated measure counter variable value in RAM 103, and stores it in RAM 103 (step S301). The automatic chord accompaniment data for one measure includes, for example, zero or more data sets, each containing at least one chord. If there are no chords to be played in that measure, the data set will be zero. The performer can pre-select the song for the automatic chord accompaniment data using a selection switch (not shown) in the switch unit 105 of Figure 1. This determines the key of the song for the automatic chord accompaniment data and the tempo range, which will be described later.
[0039] Next, the CPU 101 probabilistically determines the timing type by referring to a timing type selection frequency table stored in, for example, the ROM 102 in Figure 1 (step S302). The timing type is data that specifies the number of times a chord is played in one measure. In other words, in step S302, the number of times the chord to be played in the current measure is determined probabilistically. The CPU 101 that executes the process in step S302 operates as a timing type selection means.
[0040] Figure 4(a) shows an example of the data structure of the timing type selection frequency table stored in ROM 102 of Figure 1 in order to implement the processing of step S302. "Type0", "Type1", "Type2", "Type3", and "TypeC" shown in Figure 4(a) represent timing types with the following meanings, respectively. Note that in Figure 4(a) and the following explanation, "timing type" may be abbreviated as "Type". Type 0: Indicates that the chord is played 0 times within a measure. Type 1: Indicates that a chord should be played once per measure. Type 2: Indicates that two chords should be played within one measure. Type 3: Instructs the player to play three chords within one measure. Type C: Indicates the sound of the chord at the beginning of each measure and at each chord change.
[0041] The terms "Ballad," "Slow," "Mid," "Fast," and "Very Fast," registered in the leftmost column of the timing type selection frequency table illustrated in Figure 4(a), each indicate the tempo range of the automatic chord accompaniment data. When a performer selects one of the multiple automatic chord accompaniment songs provided by using a selection switch (not shown) in the switch unit 105 of Figure 1 at the start of the automatic chord accompaniment, the selected automatic chord accompaniment data is pre-set with one of the above tempo ranges: "Ballad," "Slow," "Mid," "Fast," or "Very Fast." Here, "Ballad" corresponds to a tempo range of, for example, less than 70. "Slow" corresponds to a tempo range of, for example, 70 or more and less than 100. "Mid" corresponds to a tempo range of, for example, 100 or more and less than 150. "Fast" corresponds to a tempo range of, for example, 150 or more and less than 250. And "Very Fast" corresponds to a tempo range of, for example, 250 or more.
[0042] In step S302 of Figure 3, the CPU 101 uses the timing type selection frequency table exemplified in Figure 4(a) stored in the ROM 102 to perform the following control processing. First, if the tempo range "Ballad" is set in the automatic chord accompaniment data read from the ROM 102 in step S301 of Figure 3, the CPU 101 refers to the data in the row where "Ballad" is registered as the leftmost item in the timing type selection frequency table exemplified in Figure 4(a). This row contains frequency values indicating that each timing type, Type0, Type1, Type2, Type3, or TypeC, is selected with a probability of 0%, 10%, 20%, 10%, or 60%, respectively. In response to this, the CPU 101 generates an arbitrary random number with a range of values from 1 to 100. Then, if the generated random number falls within the random number range of 1 to 10 (corresponding to the frequency value of 10% for "Type1"), the CPU 101 selects the timing type "Type1". Alternatively, CPU101 may select timing type "Type2" if the generated random number falls within the range of 11 to 30 (corresponding to a frequency of 20% for "Type2"). Alternatively, CPU101 may select timing type "Type3" if the generated random number falls within the range of 31 to 40 (corresponding to a frequency of 10% for "Type3"). Alternatively, CPU101 may select timing type "TypeC" if the generated random number falls within the range of 41 to 100 (corresponding to a frequency of 60% for "TypeC"). Note that "Type0" has a frequency of 0% in the example shown in Figure 4(a), so no random number range is set and it is not selected. Of course, a random number range may be set for "Type0" such that it is selected with a certain probability (frequency). In this way, CPU101 can select each of the timing types "Type0", "Type1", "Type2", "Type3", and "TypeC" with probabilities of 0%, 10%, 20%, 10%, and 60%, respectively, as set in the "Ballad" row of the timing type selection frequency table.
[0043] Even if the automatic chord accompaniment data read from ROM102 in step S301 of Figure 3 has a tempo range of, for example, "Slow," "Mid," "Fast," or "Very Fast," the CPU101, in the same manner as in the case described above where "Ballad" is set, refers to the frequency values of any row in the timing type selection frequency table having the configuration exemplified in Figure 4(a) where "Slow," "Mid," "Fast," or "Very Fast" is registered as the leftmost item. Next, the CPU101 sets random number ranges within the range of 1 to 100 according to the frequency value [%] set for each timing type "Type0," "Type1," "Type2," "Type3," or "TypeC" in that row. Then, the CPU101 generates random numbers 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 above random number ranges the generated random number falls into. In this way, the CPU 101 can select each of the timing types, "Type0", "Type1", "Type2", "Type3", and "TypeC", with probabilities corresponding to the frequency values set in each tempo range row of the timing type selection frequency table.
[0044] In slow-tempo automatic chord accompaniments like "Ballad," the sound is often produced chord by chord within a measure, so the frequency (probability) of "Type C" being selected becomes high, 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 with many note counts (i.e., many note timings), the performance will sound rushed, deviate from natural playing, and become very mechanical. At the same time, even in slow-tempo songs, playing with many note counts will sound unnatural. On the other hand, since appropriate variations are necessary even within a single song, it's not ideal to uniformly determine the probability of each timing type occurring. Therefore, in this embodiment, by using a frequency table method, specifically the timing type selection frequency table exemplified in Figure 4(a), it becomes possible to probabilistically select an appropriate timing type (number of times a chord is played in one measure) that matches the tempo of the automatic chord accompaniment.
[0046] Next, in the flowchart illustrated in Figure 3, the CPU 101 determines the content of the timing type probabilistically selected in step S302 (step S303). The CPU 101 executes step 304 if the timing type is "Type 1", "Type 2", or "Type 3", step S305 if the timing type is "Type 0", and steps S306 and S307 if the timing type is "Type C".
[0047] If the result of the determination in step S303 is that the timing type is "Type 1", "Type 2", or "Type 3", that is, if the number of times the chord is played in a measure is 1, 2, or 3, then in step S304, the CPU 101 probabilistically selects one of several note timing tables stored in the ROM 102 for each timing type and stores it in the RAM 103. In this way, in this embodiment, for each probabilistically selected timing type (number of times the chord is played in a measure), one note timing table can be probabilistically selected from among several variations. The CPU 101 that executes the process in step S304 operates as a timing table selection means.
[0048] Figures 5(a) and (c) show examples of the data structure of note timing tables 1 and 2, for example, when multiple (e.g., 8) are prepared for timing type "Type 2". As shown in these examples, one note timing table contains the following information for each of the eight horizontal columns of note timings, for example, beats 1 to 4 of a measure and further divided into half-beat intervals. Note that this example is for when the automatic chord accompaniment is in 4 / 4 time; if the automatic chord accompaniment is in a different time signature, the note timings will be divided based on the number of beats corresponding to that time signature.
[0049] First, for each half-beat unit's beginning timing in the rows where the string "Tick" is set in the leftmost column of Figure 5(a) or (c) (hereinafter referred to as "Tick rows"), the [tick] time from the beginning of the beat containing that timing to the beginning of that timing is set. For example, for the beginning timing of the first half-beat (hereinafter referred to as "downbeat") of the 1st, 2nd, 3rd, and 4th beats, since it is the beginning of each beat, 0 [tick] is set. For example, for the beginning timing of the second half-beat (hereinafter referred to as "upbeat") of the 1st, 2nd, 3rd, and 4th beats, since it is exactly half of each beat (=128 [tick]), 64 [tick] is set. Note that Figure 5(a) or (c) is an example where 1 beat is 128 [tick].
[0050] Next, for each half-beat unit at the beginning of each row in the leftmost column of Figure 5(a) or (c) where the string "Gate" is set (hereinafter referred to as the "Gate row"), if that timing is the timing for the sound of a chord, a value representing the length of the chord sound produced at that time in [tick] time is set. In the "Type2 Note Timing Table 1" exemplified in Figure 5(a), in the Gate row, the chord length = 15 [tick] is set for both the off-beat of the first beat and the off-beat of the third beat. On the other hand, in the "Type2 Note Timing Table 2" exemplified in Figure 5(c), in the Gate row, the chord length = 15 [tick] is set for both the downbeat of the first beat and the off-beat of the second beat.
[0051] Furthermore, for each half-beat unit at the beginning of each timing in the rows where the string "Velocity" is set in the leftmost column of Figure 5(a) or (c) (hereinafter referred to as the "Velocity row"), if that timing is the timing for the sounding of a chord, the velocity value (maximum value is 127) of each voice that makes up the chord sound played at that time is set. In the "Type2 Note Timing Table 1" exemplified in Figure 5(a), in the Velocity row, the velocity value = 75 is set for both the off-beat of the first beat and the off-beat of the third beat. Similarly, in the "Type2 Note Timing Table 2" exemplified in Figure 5(c), the velocity value = 75 is set for both the down-beat of the first beat and the off-beat of the second beat in the Velocity row. At timings where no sound is produced, the velocity value = 0 is set.
[0052] As described above, in step S303->step S304 in Figure 3, if, for example, "Type2 note timing table 1" in Figure 5(a) is selected, the chord tones for one measure will be played at the timing shown in the musical notation in Figure 5(b). If, for example, "Type2 note timing table 2" in Figure 5(c) is selected, the chord tones for one measure will be played at a different timing than in Figure 5(b), as shown in the musical notation in Figure 5(d).
[0053] As described above, for each of "Type 1," "Type 2," and "Type 3," multiple note timing tables may be provided in ROM 102, as illustrated in Figures 5(a) and (c). In this case, the CPU 101 probabilistically selects one of the multiple note timing tables stored in ROM 102 corresponding to the timing type determined in step S302 and stores it in RAM 103.
[0054] To realize this probabilistic selection operation, in this embodiment, a frequency table for selecting note timing tables by timing type, having a data structure as illustrated in Figure 4(b), is stored in the ROM 102 and used. Different frequency tables may be prepared for each timing type. In the frequency table for selecting note timing tables by timing type having the data structure illustrated in Figure 4(b), the row with "No" registered as the leftmost item is set with the numbers of the selectable timing type note timing tables, as illustrated in Figure 5(a) or (c), from 1 to 8 in the example of Figure 4(b). In addition, each column of the row with "Frequency" registered as the leftmost item is set with a frequency value [%] for selecting the note timing table with the number set in the same column. For the frequency table illustrated in Figure 4(b), the CPU 101 generates an arbitrary random value having a range of values from, for example, 1 to 100, similar to the timing type selection frequency table in Figure 4(a). Then, CPU101 selects note timing table 1 if, for example, the generated random number falls within the range of 1 to 20 (corresponding to a 20% probability of selecting note timing table number 1). Alternatively, CPU101 selects note timing table 2 if, for example, the generated random number falls within the range of 21 to 40 (corresponding to a 20% probability of selecting note timing table number 2). Note timing tables with other numbers are selected probabilistically in the same way as note timing table 1 or 2.
[0055] As described above, in this embodiment, for each measure, first in step S302 in Figure 3, by using the timing type selection frequency table illustrated in Figure 4(a), it becomes possible to probabilistically select the number of times a chord is played within a measure that matches the tempo of the currently selected automatic chord accompaniment as the timing type. Then, for each measure, in steps S303->S304 in Figure 3, by using the frequency data for selecting note timing tables by timing type, as exemplified in Figure 4(b), it becomes possible to probabilistically select one of several note timing tables, each having a different chord sound timing, that are prepared for each selected timing type ("Type1", "Type2", or "Type3"). This makes it possible in this embodiment to perform automatic chord accompaniment while probabilistically changing the number of chord sounds and the timing of chord sounds in each measure. In other words, it becomes possible to realize in automatic chord accompaniment the musical expression that a performer uses in live jazz performances on piano or guitar, where they change the number of chord sounds and the timing of chord sounds in half-beat increments within each measure.
[0056] If the result of the determination in step S303 in Figure 3 indicates that the timing type is "Type0", then in step S305, the CPU 101 selects one note timing table specifically for "Type0" stored in the ROM 102 and stores it in the RAM 103.
[0057] Figure 5(e) shows an example of the data structure of a note timing table provided for timing type "Type0". The basic data structure is the same as the example tables for "Type1~3" shown in Figure 5(a) or Figure 5(c). However, in the Gate row of the "Type0 note timing table" shown in Figure 5(e), the chord note length = 0 [tick] is set for all eight sound timings in half-beat units within one measure.
[0058] As described above, if CPU 101 selects, for example, the "Type 0 note timing table" in Figure 5(e) as step S303->step S305, the measure will become a whole rest and no chord tones will be played, as shown in the musical notation in Figure 5(f).
[0059] In this way, in this embodiment, by probabilistically selecting timing type "Type0" for each measure, it becomes possible to realize automatic chord accompaniment in which chord tones are not played in that measure as a musical expression.
[0060] If the timing type is determined to be "Type C" as a result of the determination in step S303 in Figure 3, the CPU 101 first searches for the chord position set in the automatic chord accompaniment data obtained from ROM 102 in step S301 in step S306.
[0061] Then, in step S307, the CPU 101 generates a note timing table in the same format as shown in Figure 5(a) or (c), etc., according to the code location searched in step S306, and stores it in RAM 103.
[0062] As described above, when CPU 101 generates a note timing table for "Type C" as step S303 -> step S306, the result is that each time the chord changes due to the automatic chord accompaniment data in that measure, the changed chord is played.
[0063] Figure 6 is a flowchart showing a detailed example of the anticipation chord acquisition process in step S207 of Figure 2. This process generates anticipation. "Anticipation" refers to playing a specified chord half a beat ahead of its actual timing. Depending on the style of the song with automatic chord accompaniment, anticipation may be effective for some songs but not others. Therefore, the performer can switch anticipation on or off using a changeover switch (not shown) in the switch unit 105 of Figure 1. Alternatively, anticipation may be set to on or off at the time of factory shipment when the automatic chord accompaniment is stored in the ROM 102.
[0064] In the flowchart of Figure 6, the CPU 101 first proceeds to step S604 and generates anticipation if all of the following conditions are met in steps S601, S602, and S603. Step S601: Whether anticipation processing is turned on or off, depending on the performer's settings or factory settings. Step S602: Is the current note timing on the off-beat or not? Step S603: Is there a chord change (a different chord from the current one) in the automatic chord accompaniment on the next beat?
[0065] Figure 7 is an explanatory diagram of the anticipation chord acquisition process. For example, as shown in Figure 7(a), suppose the chord progression is given to include the following chords: CM7 (1st beat of measure 1), A7 (1st beat of measure 2), Dm7 (1st beat of measure 3), G7 (1st beat of measure 4), CM7 (1st beat of measure 5), A7 (1st beat of measure 6), Dm7 (1st beat of measure 7), G7 (3rd beat of measure 7), and CM7 (1st beat of measure 8). Furthermore, as shown in the enlarged view of measure 7 in Figure 7(b), the current timing 701 is located at the beginning of the off-beat of the second beat of measure 7, which is labeled as the "current position." The chord G7 is specified for the beginning of the downbeat of the third beat of measure 7, which follows the off-beat of the second beat of measure 7. In this case, during the anticipation chord acquisition process in step S207 of Figure 2, at the off-beat of the second beat of the seventh measure, which is the current timing 701, the chord G7, which is specified for the next beat, the third beat of the seventh measure, is instructed to be played half a beat ahead.
[0066] Specifically, if anticipation processing is currently enabled, then when CPU 101 executes the anticipation code acquisition process in step S207 of Figure 2 at timing 701 in Figure 7, all of the judgments in steps S601, S602, and S603 of Figure 6 will be YES. Furthermore, as described above in the explanation of the counter update process in step S211 of Figure 2, the CPU 101 determines whether the current timing is the beginning of an off-beat by checking whether the intrabeat tick counter variable value stored in RAM 103 has become, for example, 64 [tick]. Furthermore, the CPU 101 checks the code specifications for the current beat and the next beat stored in the RAM 103 to determine in step S603 of Figure 6 whether or not there is a chord change in the next beat.
[0067] If there is no chord change in the next beat (the judgment in step S603 is NO), CPU101 obtains the current chord (step S604).
[0068] If a chord change occurs on the next beat (the judgment in step S603 is YES), that is, if the chord changes on the next beat, CPU 101 obtains the chord for the next beat (step S605).
[0069] Finally, the CPU 101 stores the acquired code in the RAM 103 as phonetic code data for use in the voicing process described later (step S606).
[0070] As described above, since all the judgments in steps S601, S602, and S603 are YES, the CPU 101 performs anticipation processing. That is, it obtains the chord of the next beat as the chord to be played this time. If the timing of the sound is on the off-beat of the fourth beat, you can load the accompaniment data for the next measure into RAM103 and refer to the chord on the first beat of the next measure to determine whether or not there is a chord change.
[0071] The CPU 101, which executes the anticipation code acquisition process in step S207 of Figure 2, as shown in the flowchart illustrated in Figure 6, operates as an anticipation processing means.
[0072] Figure 8 is a flowchart showing a detailed example of the voicing process in step S208 of Figure 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 RAM 103, and stores it in the note-on area of RAM 103.
[0073] First, the CPU 101 determines whether the pronunciation code data stored in the RAM 103 in step S606 of Figure 6 is the same as the code from the previous pronunciation stored in the RAM 103 (step S801).
[0074] If the determination in step S801 is YES, the CPU 101 continues to use the previously selected voicing table data and terminates the voicing process in step S208 of Figure 2, as illustrated in the flowchart of Figure 8. As a result, in the note-on process in step S209 of Figure 2 described above, the CPU 101 instructs the sound source LSI 508 to play the musical tone corresponding to the note number of each voice in the voice group indicated by the same voicing table data stored in RAM 103 as before.
[0075] If the result of step S801 is NO, the CPU 101 executes the voicing process described below.
[0076] First, the CPU 101 obtains the key of the song at the time of this note-on from the automatic chord accompaniment data loaded into RAM 103 (step S803). The automatic chord accompaniment data is loaded into RAM103 in step S301 of Figure 3, as described above, within the timing data generation process in step S203 of Figure 2. For the chords, the sound chord data stored in RAM103 in step S606 of Figure 6 is used in the following voicing process. Note that since the key often does not change throughout the song, instead of loading it bar by bar, it may be better to load the key information separately into RAM103 in step S301 of Figure 3 and use that information here. The CPU 101 stores the acquired code information in the RAM 103 as the previous code information to be used for determination in step S801 described above in the next step.
[0077] For example, let's assume that the automatic chord accompaniment data loaded into RAM103 specifies the key as C (indicated as "KeyC" in the figure) and the chord progression as Dm7, G7, CM7, FM7, Bm7♭5, E7, Am7, and A7 (for example, one chord per measure), as illustrated in Figure 9(a). Here, for example, consider the case where the voicing process in step S208 of Figure 2, as exemplified in the flowchart of Figure 8, is executed at an arbitrary note-on timing (chord sound timing) specified by the aforementioned note timing data in the second measure illustrated in Figure 9(a). In this case, the CPU 101 obtains, for example, the chord = G7 and the key = C in step S803. For example, consider the case where, in the sixth measure illustrated in Figure 9(a), at an arbitrary note-on timing (chord sound timing) specified by the aforementioned note timing data, the voicing process in step S208 of Figure 2, as illustrated in the flowchart of Figure 8, is executed. In this case, for example, in step S803, the CPU 101 obtains the code = E7 and the key = C.
[0078] Next, the CPU 101 performs a process to determine the scale by referring to the scale determination table stored in the ROM 102 (step S804). Figure 9(b) shows an example of the data structure of the scale determination table. The scale determination table registers the name of the scale that the chord belongs to at the registration position where each row and column of the table shown in Figure 9(b) intersects, according to the chord type of the acquired chord (each horizontal column in the table shown in Figure 9(b)) and the degree from the pitch of the key to the pitch of the root note of that chord (each vertical row in the table shown in Figure 9(b)). As shown in Figure 9(b), the following scales can be registered: major scale, Lydian scale, Mixolydian scale, Mixolydian #11 scale, Mixolydian ♭9 scale, Mixolydian ♭9♭13 scale, altered scale, Dorian scale, Phrygian scale, Aeolian scale, Locrian scale, and others. In addition, scales that can be used in various musical genres may also be registered. For example, consider a case where, in step S803, CPU 101 obtains the chord = G7 and key = C at an arbitrary note-on timing (chord sound timing) in the second measure of the chord progression shown in Figure 9(a), which is the current note-on timing. In this case, CPU 101 refers to the scale determination table exemplified in Figure 9(b) based on the degree from key = C to the root note G of chord G7 = 5 ("V" in Figure 9(b)) and the chord type = 7. As a result, CPU 101 determines the scale = "Mixolydian" from the intersection of row "V" and column "7". For example, consider the case where, in step S803, CPU 101 obtains the chord = E7 and key = C at an arbitrary note-on timing (chord sound timing) in the 6th measure of the chord progression shown in Figure 9(a), which is the current note-on timing. In this case, CPU 101 refers to the scale determination table exemplified in Figure 9(b) based on the degree = 3 ("III" in Figure 9(b)) from the key = C to the root note E of chord E7, and the chord type = 7. As a result, CPU 101 determines the scale = "Mixolydian ♭9♭13" from the intersection of row "III" and column "7".
[0079] Next, the CPU 101 retrieves a voicing table from the ROM 102 that has been prepared in advance for each scale determined in step S804 and stored in the ROM 102 (step S805). Figure 9(c) shows an example of the data structure of the voicing table when the scale is "Mixolydian". For example, if the CPU 101 obtains the code = G7 and key = C in step S803, as described above, and then determines the scale = "Mixolydian" in step S804, it retrieves the voicing table shown in Figure 9(c) from the ROM 102.
[0080] In chord accompaniment, chord voicing is crucial. Voicing is the process of determining which voices to stack within an octave and how to play a single chord. In musical genres such as jazz, so-called tension notes—a 9th, 11th, or 13th above the root note in semitone increments—are often used in chord accompaniment. Using these voices creates a sense of tension and musicality in the chord performance. In chord performance, the choice of scale is key, as the available tensions differ depending on the key and chord. Therefore, in this embodiment, the CPU 101 determines a playable scale, such as the "Mixolydian" scale, based on the current note-on timing, for example, the specified chord = G7 and key = C, in steps S803 and S804 of Figure 8.
[0081] Furthermore, in this embodiment, when, for example, a chord G7 is played in the "Mixolydian" scale at the note-on timing, even for the same "Mixolydian G7," one voicing (voicing pattern) can be probabilistically selected from multiple voicing variations (for example, six types in Figure 9(c)), and the chord G7 can be played using that voicing. For example, in the voicing table illustrated in Figure 9(c), if voicing table data number 1 is selected, then when the chord=G7 note-on is played, a group of four voices consisting of intervals of 4 semitones (major third: B), 9 semitones (major sixth: E), 10 semitones (minor seventh: F), and 14 semitones (major ninth: A) are used relative to the root note G. For example, if voicing table data number 3 is selected, when the chord G7 is played, a group of three voices will be used with intervals of 4 semitones (major third: B), 10 semitones (minor seventh: F), and 14 semitones (major ninth: A) relative to the root note G. In jazz and other chord performances that incorporate tensions, the root note is generally not played, and therefore the voice group in the voicing table often does not include the root note (degree 1).
[0082] Factors involved in determining a set of voicing table data from a voicing table include the voicing type, commonly known as A-type or B-type in many music genres including jazz, and the polyphony number, which indicates how many notes are used to produce a sound. The difference between A-type and B-type voicing is whether it has a wide range or a narrow range. A-type voicing includes tension notes and is a voicing type that can be created by stacking voices, for example, 3rd, 5th, 7th, and 9th intervals, relative to the root note. B-type voicing is a voicing type that has a narrower range compared to A-type, for example, by lowering the 7th and 9th intervals by an octave. In the voicing table illustrated in Figure 9(c), voicing table data 1 and 2 can be selected when the voicing type is Atype and the number of polyphony notes is 4. Both of these voicing table data can be selected when the voicing type is Atype and the number of polyphony notes is 4, but which one is selected in that case is probabilistically determined by the process in step S810 of Figure 8, which will be described later, using the frequency table for selecting voicing table data illustrated in Figure 10(b) which will be described later. Furthermore, voicing table data number 3 indicates that it can be selected when the voicing type is Atype and the number of polyphony notes is 3. Since voicing table data number 3 is the only one that can be selected when the voicing type is Atype and the number of polyphony notes is 3, voicing table data number 3 will always be selected in that case. Furthermore, voicing table data 4 and 5 indicate that they can be selected when the voicing type is Btype and the number of polyphony notes is 4. Both of these voicing table data can be selected when the voicing type is Btype and the number of polyphony notes is 4, but which one is selected in that case is probabilistically determined by the process in step S810 of Figure 8, which will be described later, using the frequency table for selecting voicing table data exemplified in Figure 10(b) which will be described later. Furthermore, voicing table data number 6 indicates that it can be selected when the voicing type is B-type and the number of polyphony notes is 3. Since voicing table data number 6 is the only one that can be selected when the voicing type is B-type and the number of polyphony notes is 3, voicing table data number 6 will always be selected in that case.
[0083] To implement the voicing table data selection operation described above, the CPU 101 first probabilistically determines the number of polyphony by referring to a polyphony selection frequency table that has been prepared in advance and stored in the ROM 102 (step S806). Figure 10(a) shows an example of the data structure of the polyphony selection frequency table. "Ballad," "Slow," "Mid," "Fast," and "Very Fast," registered in the leftmost column of the polyphony selection frequency table exemplified in Figure 10(a), each indicate the tempo range of the automatic chord accompaniment data, similar to the timing type selection frequency table in Figure 4(a).
[0084] In step S806 of Figure 8, the CPU 101 uses the polyphony selection frequency table exemplified in Figure 10(a) stored in the ROM 102 to perform the following control processing. First, if the tempo range "Ballad" is set in the automatic chord accompaniment data read from the ROM 102 in step S301 of Figure 3 within the timing data generation process in step S203 of Figure 2, the CPU 101 refers to the data in the row where "Ballad" is registered as the leftmost item in the polyphony selection frequency table exemplified in Figure 10(a). This row contains frequency values [%] indicating that polyphony number 3 or polyphony number 4 are selected with a probability of 10% or 90%, respectively. In response to this, the CPU 101 generates an arbitrary random value having a range of values from 1 to 100, for example, in the same manner as in step S302 of Figure 3 described above. Then, CPU101 will, for example, select "Polygon 3" if the generated random number falls within the random number range of 1 to 10 (corresponding to a frequency value of 10% for "Polygon 3"). Alternatively, CPU101 will select "Polygon 4" if the generated random number falls within the random number range of 11 to 100 (corresponding to a frequency value of 90% for "Polygon 4"). In this way, CPU101 can select each of the polygons, "Polygon 3" and "Polygon 4," with probabilities of 10% and 90%, respectively, set in the "Ballad" row of the polygon selection frequency table.
[0085] Even if the automatic chord accompaniment data read from ROM102 in step S301 of Figure 3 has a tempo range set to, for example, "Slow," "Mid," "Fast," or "Very Fast," the CPU101, in the same manner as in the case described above where "Ballad" is set, refers to the frequency values of any row in the frequency table for selecting the number of polyphony, which has the configuration illustrated in Figure 10(a), where "Slow," "Mid," "Fast," or "Very Fast" is registered as the leftmost item. Next, the CPU101 sets random number ranges within the range of 1 to 100 according to the frequency value [%] set for each polyphony of "3 polyphony" or "4 polyphony" in that row. Then, the CPU101 generates random numbers within the range of 1 to 100, and selects either "3 polyphony" or "4 polyphony" depending on which of the above random number ranges the generated random number falls into. In this way, the CPU 101 can select each of the polyphony counts, "polyphony count 3" and "polyphony count 4," with probabilities corresponding to the frequency values set in each tempo range row of the polyphony count selection frequency table.
[0086] The optimal number of polyphony notes varies depending on the tempo and style of the music, resulting in a more natural performance. Therefore, in this embodiment, a polyphony frequency table, exemplified in Figure 10(a), is referenced to determine the degree to which polyphony notes appear for each musical style, such as "Ballad," "Slow," "Mid," "Fast," or "Very Fast."
[0087] After determining the polyphony in step S806, the CPU 101 determines whether the chord to be note-added is of the aforementioned voicing type A or B. Specifically, the CPU 101 determines whether the pitch of the root note of the chord to be note-added is F# or higher (step S807). If the determination in step S807 is NO, the CPU 101 selects Atype as the voicing type for the current code (step S808). If the determination in step S807 is YES, the CPU 101 selects Btype as the voicing type for the current code (step S809). The purpose of step S807 is to divide an octave in half so that each chord fits within a certain range and the range doesn't jump too much when transitioning between chords.
[0088] Finally, the CPU 101 uses a frequency table for selecting voicing table data, which is prepared in the ROM 102 and stored in the ROM 102 in response to the voicing table exemplified in Figure 9(c) obtained from the ROM 102 in step S805 described above. Based on the combination of polyphony (3 or 4) and voicing type (A or B) determined in steps S806 to S809, the CPU 101 probabilistically extracts the optimal voicing table data from the voicing table exemplified in Figure 9(c) and stores it in the RAM 103 (step S810).
[0089] Figure 10(b) shows an example of the data structure of the frequency table for selecting voicing table data. The "4 / A", "4 / B", "3 / A", and "3 / B" registered in the leftmost column of the frequency table for selecting voicing table data shown in Figure 10(b) represent the combinations of polyphony (3 or 4) and voicing type (A type or B type) determined in steps S806 to S809, respectively.
[0090] In step S810 of Figure 8, the CPU 101 performs the following control processing. First, if the "polygon count / voicing type" determined in steps S806 to S809 is "4 / A", the CPU 101 refers to the data in the row where "4 / A" is registered as the leftmost item in the frequency table for selecting voicing table data, as illustrated in Figure 10(b). Each voicing table data for number 1 or 2 has a frequency value [%] set to indicate that it is selected with a probability of 60% or 40%, respectively. Since the frequency value for voicing table data for other numbers is set to 0%, these numbers cannot be selected for the "4 / A" combination. In contrast, the CPU 101 generates an arbitrary random number having a range of values from 1 to 100, for example, in the same way as in step S806 described above. Then, for example, if the generated random number is within the random number range of 1 to 60 (corresponding to the frequency value of 60% for number 1), the CPU 101 selects the voicing table data for number 1. Alternatively, CPU 101 may, for example, select the voicing table data for number 1 if the generated random number falls within the random number range of 61 to 100 (corresponding to a frequency value of 40% for number 1). In this way, CPU 101 selects the voicing table data for number 1 and number 2, respectively, with probabilities of 60% and 40% set in the "4 / A" row of the frequency table for selecting voicing table data.
[0091] If the "Polyphony / Voicing Type" determined in steps S806 to S809 is "4 / B", "3 / A", or "3 / B", the CPU 101, in the same manner as in the above case where "4 / A" is set, refers to the frequency values of any row in the voicing table data selection frequency table having the configuration illustrated in Figure 10(b) where "4 / B", "3 / A", or "3 / B" is registered as the leftmost item. Next, the CPU 101 sets random number ranges 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, the CPU 101 generates random values within the range of 1 to 100, and selects one of the voicing table data numbers 1 to 6 depending on which of the above random number ranges the generated random values fall into. In this way, the CPU 101 selects each of the voicing table data numbers 1 to 6 on the voicing table in Figure 9(c) with a probability corresponding to each frequency value set in each "Polymetric / Voicing Type" row of the voicing table data selection frequency table in Figure 10(b). In step S810, the CPU 101 stores the voicing table data extracted from the voicing table in Figure 9(c) as described above in the RAM 103.
[0092] After the processing in step S810, the CPU 101 terminates the voicing process in step S208 of Figure 2, as illustrated in the flowchart of Figure 8.
[0093] Through the voicing process described above, in this embodiment, in automatic chord accompaniment, a scale in accordance with music theory can be appropriately selected corresponding to the chord and key to be note-on, and multiple variations of candidate voicing table data corresponding to that scale can be provided as a voicing table. Subsequently, in this embodiment, one set of the above multiple variations of candidate voicing table data can be probabilistically extracted based on a combination of polyphony and voicing type that is determined probabilistically. Then, in this embodiment, the note-on processing of chords in automatic chord accompaniment can be performed using the voice group provided as the voicing table data extracted in this way. This makes it possible to realize automatic chord accompaniment with a wide variety of variations while adhering to music theory.
[0094] Figure 11(a) is a musical representation of the C7 (Mixolydian scale), and Figures 11(b), (c), (d), (e), (f), and (g) are musical representations showing examples of voicing variations in the C7 (Mixolydian scale). Figure 11(b) is a musical representation of an example of a C7 chord with a voicing type of A, including 9th and 13th tension notes, and a polyphony count of 4. Figure 11(c) is a musical representation of an example of a C7 chord with a voicing type of A, including 9th tension notes, and a polyphony count of 4. Figure 11(d) is a musical representation of an example of a C7 chord with a voicing type of A, including 9th tension notes, and a polyphony count of 3. Figure 11(e) is a musical representation of an example of a C7 chord with a voicing type of B, including 9th and 13th tension notes, and a polyphony count of 4. Figure 11(f) shows a musical notation example of a C7 chord with a B-type voicing and 4 polyphony notes including a 9th tension note. Figure 11(g) shows a musical notation example of a C7 chord with a B-type voicing and 3 polyphony notes including a 13th tension note.
[0095] Furthermore, Figure 10(h) is a musical representation of the C7 (Mixolydian ♭9♭13) scale used in the minor scale, and Figures 10(i) and (j) are musical representations showing examples of voicing variations in the "C7 Mixolydian ♭9♭13" scale. Figure 11(i) is a musical representation of an example of a C7 chord with a voicing type of A type and a polyphony of 4 notes including a ♭9th tension note. Figure 11(j) is a musical representation of an example of a C7 chord with a voicing type of A type and a polyphony of 4 notes including ♭9th and ♭13th tension notes.
[0096] As illustrated in Figure 11, in this embodiment, it is possible to perform automatic chord accompaniment with a variety of chord voicings.
[0097] The embodiments described above were embodiments in which the automatic playing device according to the present invention is built into the electronic keyboard instrument 100 shown in Figure 1. On the other hand, the automatic playing device and the electronic instrument may be separate devices. Specifically, for example, as shown in Figure 12, the automatic playing device may be installed as an automatic playing application on a smartphone or tablet device (hereinafter referred to as "smartphone etc. 1201"), and the electronic instrument may be an electronic keyboard instrument 1202 that does not have an automatic chord accompaniment function. In this case, the smartphone etc. 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 a wireless communication standard between musical instruments that enables communication using the MIDI (Musical Instrument Digital Interface) standard for communication between instruments over the Bluetooth Low Energy wireless standard. The electronic keyboard instrument 1202 can connect to the smartphone etc. 1201 using the Bluetooth Low Energy standard. In this state, an automatic performance application running on a smartphone or the like 1201 transmits automatic chord accompaniment data, based on the automatic chord accompaniment function described in Figures 2 to 11, to the electronic keyboard instrument 1202 as MIDI data via a BLE-MIDI communication channel. The electronic keyboard instrument 1202 then 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.
[0098] Figure 13 shows an example of the hardware configuration of the automatic performance device 1201 in another embodiment in which the automatic performance device and electronic instrument operate independently, having the connection configuration shown in Figure 12. In Figure 13, the CPU 1301, ROM 1302, RAM 1303, and touch panel display 1305 have the same functions as the CPU 101, ROM 102, and RAM 103 in Figure 1. The CPU 1301 executes the automatic performance application program downloaded and installed in RAM 1303, thereby realizing the same function as the automatic chord accompaniment function described in Figures 2 to 11, which was realized by the CPU 101 executing the control program. At this time, the touch panel display 1305 provides the same function as the switch unit 105 in Figure 1. The automatic performance application then converts the control data for automatic chord accompaniment into automatic chord accompaniment MIDI data and passes it to the BLE-MIDI communication interface 1305.
[0099] 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 automatic chord accompaniment in the same way as the electronic keyboard instrument 100 in Figure 1. Alternatively, instead of the BLE-MIDI communication interface 1305, a MIDI communication interface connected to the electronic keyboard instrument 1202 via a wired MIDI cable may be used.
[0100] As described above, this embodiment makes it possible to reproduce natural automatic chord accompaniment with timing appropriate for musical genres such as jazz, which could not be expressed with conventional automatic accompaniment technology, allowing performers to have a performance experience as if they were participating in a jam session. Furthermore, it can be used as part of training for people who want to play jazz but lack the courage to participate in a jam session. Thus, 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 performer's live instrument performance.
[0101] The following additional information is disclosed regarding the embodiments described above. (Note 1) A timing type selection means that probabilistically selects one of several timing types that define the number of pronunciations, A timing table selection means for probabilistically selecting one of a plurality of note timing tables that define the timing of sound production, corresponding to the selected timing type, A sound production instruction means that instructs a sound source to produce a chord at a timing based on the selected note timing table, An automatic musical instrument equipped with the following features. (Note 2) The automatic performance device according to Appendix 1, wherein the plurality of timing types selected by the timing type selection means include a plurality of timing types that differ in the number of times the chord is sounded within a predetermined time. (Note 3) The automatic performance device according to Appendix 2, wherein the plurality of timing types selected by the timing type selection means includes a timing type in which the number of chord sounds within the predetermined time is 0. (Note 4) The automatic playing device according to Appendix 2 or 3, wherein the plurality of timing types selected by the timing type selection means include a timing type in which a chord is sounded at the timing in which the chord changes within the predetermined time. (Note 5) The automatic performance device described in any one of the appendices 1 to 4, wherein the plurality of timing types selected by the timing type selection means exist in pairs for each of the plurality of tempo ranges obtained by dividing the tempo of the musical piece into predetermined ranges. (Note 6) The automatic performance device according to any one of the appendices 1 to 5, wherein, in the selected note timing table, if the off-beat is designated as the sounding timing and there is a chord change on the next beat, the sounding instruction means instructs the sound source to sound the chord on the next beat at the off-beat sounding timing. (Note 7) It is further equipped with a means of communication for sending and receiving musical sound information, The sound generation instruction means, via the communication means, instructs the sound source to pronounce the code. An automatic playing device as described in any one of the appendices 1 through 6. (Note 8) An electronic musical instrument comprising an automatic playing device described in any one of Appendix 1 to 6 and the sound source, wherein the sound source performs automatic chord accompaniment based on instructions from the sound generation instruction means of the automatic playing device to sound the chord at the sound generation timing based on the selected note timing table. (Note 9) One of several timing types that define the number of pronunciations is probabilistically selected. From among a plurality of note timing tables that define the timing of sound production, corresponding to the selected timing type, one is probabilistically selected. The sound source is instructed to play the chord at the timing of the sound based on the selected note timing table. Automatic playing method. (Note 10) One of several timing types that define the number of pronunciations is probabilistically selected. From among a plurality of note timing tables that define the timing of sound production, corresponding to the selected timing type, one is probabilistically selected. The sound source is instructed to play the chord at the timing of the sound based on the selected note timing table. A program that causes a computer to perform a process. [Explanation of Symbols]
[0102] 100 Electronic Keyboard Instruments 101 CPU 102 ROM 103 RAM 104-key keyboard section 105 Switch section 106 Sound source LSI 107 Sound System 108 System Bus
Claims
1. A timing type selection means that probabilistically selects one of several timing types that define the number of pronunciations, A timing table selection means for probabilistically selecting one of a plurality of note timing tables that define the timing of sound production, corresponding to the selected timing type, A sound production instruction means that instructs a sound source to produce a chord at a timing based on the selected note timing table, An automatic musical instrument equipped with the following features.
2. The automatic performance device according to claim 1, wherein the plurality of timing types selected by the timing type selection means include a plurality of timing types that differ in the number of times a chord is sounded within a predetermined time.
3. The automatic playing device according to claim 2, wherein the plurality of timing types selected by the timing type selection means includes a timing type in which the number of chord sounds within the predetermined time is zero.
4. The automatic playing device according to claim 2 or 3, wherein the plurality of timing types selected by the timing type selection means includes a timing type in which a chord is sounded at the timing in which the chord changes within the predetermined time.
5. The automatic performance device according to any one of claims 1 to 4, wherein the plurality of timing types selected by the timing type selection means exist in pairs for each of the plurality of tempo ranges obtained by dividing the tempo of the musical piece into predetermined ranges.
6. The automatic performance device according to any one of claims 1 to 5, wherein, in the selected note timing table, if the off-beat is designated as the sounding timing and there is a chord change on the next beat, the sounding instruction means instructs the sound source to sound the chord on the next beat at the sounding timing of the off-beat.
7. It is further equipped with a means of communication for sending and receiving musical sound information, The sound generation instruction means, via the communication means, instructs the sound source to pronounce the code. An automatic playing device according to any one of claims 1 to 6.
8. An electronic musical instrument comprising an automatic playing device according to any one of claims 1 to 6 and the sound source, wherein the sound source performs automatic chord accompaniment based on an instruction from the sound generation instruction means of the automatic playing device to sound the chord at a sound generation timing based on the selected note timing table.
9. One of several timing types that define the number of pronunciations is probabilistically selected. From among a plurality of note timing tables that define the timing of sound production, corresponding to the selected timing type, one is probabilistically selected. The sound source is instructed to play the chord at the timing of the sound based on the selected note timing table. Automatic playing method.
10. One of several timing types that define the number of pronunciations is probabilistically selected. From among a plurality of note timing tables that define the timing of sound production, corresponding to the selected timing type, one is probabilistically selected. The sound source is instructed to play the chord at the timing of the sound based on the selected note timing table. A program that causes a computer to perform a process.
Citation Information
Patent Citations
Automatic playing device, automatic playing method and recording medium
JP1998078779A