Performance device, method, and program

The electronic keyboard instrument provides real-time feedback through audio and visual cues to correct incorrect key presses, improving the learning experience by ensuring performers recognize and rectify mistakes.

JP7622775B2Active Publication Date: 2025-01-28CASIO COMPUTER CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2023077539
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-05-10
Publication Date
2025-01-28
Estimated Expiration
2040-12-08

AI Technical Summary

Technical Problem

Conventional performance devices fail to provide immediate feedback to performers when they incorrectly press keys, leading to a sense of discomfort or misunderstanding, especially in lessons where correct key pressing is crucial.

Method used

An electronic keyboard instrument equipped with a detection unit to identify key operations and a control unit that determines the correctness of key presses, providing audio feedback for incorrect answers and guiding performers through light cues on the keyboard.

Benefits of technology

Enables performers to recognize and correct incorrect key presses, preventing discomfort and misunderstanding, thereby enhancing the learning experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007622775000001
    Figure 0007622775000001
  • Figure 0007622775000002
    Figure 0007622775000002
  • Figure 0007622775000003
    Figure 0007622775000003
Patent Text Reader

Abstract

To let a player neither have a feeling of incompatibility nor misunderstand a fault etc., by enabling the player to recognize incorrectness when pressing an incorrect key with respect to a technique such that the player has a musical performance lesson by performing keying operation based upon guided keying indication information.SOLUTION: As chords of music advance, keys corresponding to the chords are guided by, for example, illumination. Then it is determined whether a correct key is pressed based upon relation between constituent sounds of a chord and the key whose keying is detected (S1203, S1204). If a determination result indicates incorrectness, a static code corresponding to the incorrectness is sounded (S1206), and an evaluation voice ("Not, yet!", "Close!", etc.) corresponding to the level of the incorrectness is sounded (S1207).SELECTED DRAWING: Figure 12
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a performance device, method, and program for conducting performance lessons by having a performer perform key-pressing operations based on guided key-pressing instruction information. [Background technology]

[0002] There is a well-known technology for providing performance lessons by guiding a performer as to which keys to press for, for example, the chord or melody part of a piece of music, and sounding the chord notes of the chord part or the melody note of the melody part of the piece of music when the performer follows the guidance and performs the correct key pressing operation.

[0003] Furthermore, there is also known a technique for preventing a performer from falling behind in a lesson by stopping the progression of a guide if the performer does not correctly press a key that is being guided to be pressed in a lesson part by the timing set by the guide (for example, the technique described in Patent Document 1).

[0004] Furthermore, there is also known technology that, even if the performance operators specified by the performance data of a performance part are not operated by the specified timing and the reading of the performance data in accordance with the progression of the music piece is interrupted, continues to generate some musical tone signals, thereby preventing the performer from being surprised or mistakenly thinking that something is wrong with the electronic musical instrument (for example, the technology described in Patent Document 2). [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Patent No. 2707853 [Patent Document 2] JP 2004-101979 A Summary of the Invention [Problem to be solved by the invention]

[0006] However, in the above-mentioned conventional technology, if the player accidentally presses an incorrect key, there is no reaction, which can cause a sense of discomfort that the sound is not produced as played, and in some cases can lead to the player misunderstanding that the instrument is broken.

[0007] Therefore, the present invention aims to prevent the player from misunderstanding the fact that he / she has pressed an incorrect key by enabling the player to recognize the incorrect key when the player has pressed an incorrect key, and thus preventing the player from feeling uncomfortable or having a malfunction. [Means for solving the problem]

[0008] The musical instrument playing device according to one embodiment of the present invention has a plurality of keys, The above The detector detects key operation and the chord progression of the song. The above The notes that make up the chord The above Based on the relationship between the pressed key and the key detected by the detection unit, The above Key press The chord was determined from the corresponding pitch. A control unit that determines whether the answer is correct or not, The above The control unit The above When the detection unit detects a key press, The above A tone is generated at the pitch of the key that is detected as pressed by the detector. and if the key depression is correct, a sound generation process is performed to generate the constituent sounds of the chord after muting the musical sound being generated. . Effect of the Invention

[0009] According to the present invention, when a performer presses an incorrect key, the performer can recognize the incorrect key, and it is possible to prevent the performer from misunderstanding the fact that the key is not correct, such as feeling uncomfortable or having a malfunction. [Brief description of the drawings]

[0010] [Figure 1] 1 is an external view of an electronic keyboard instrument according to an embodiment; [Diagram 2] 1 is a block diagram showing an electronic keyboard instrument system according to an embodiment; [Diagram 3] FIG. 2 is a data configuration diagram showing an example of the configuration of music piece data. [Figure 4] 11 is a flowchart illustrating an example of a main process according to an embodiment. [Diagram 5] 13A is a flowchart showing a detailed example of an initialization process, FIG. 13B is a flowchart showing a detailed example of a tempo change process, and FIG. 13C is a flowchart showing a detailed example of a song opening process. [Figure 6] 13 is a flowchart showing a detailed example of a switch process. [Figure 7] 13 is a flowchart showing a detailed example of key processing. [Figure 8] 13 is a flowchart (part 1) showing a detailed example of a song playback interrupt process. [Figure 9] 13 is a flowchart (part 2) showing a detailed example of a song playback interrupt process. [Figure 10] 10 is a flowchart showing a detailed example of a music playback process. [Figure 11] 13 is a flowchart showing a detailed example of a melody lesson reproducing process. [Figure 12] 13 is a flowchart showing a detailed example of a first embodiment of a chord lesson reproducing process. [Figure 13] 13 is a flowchart showing a detailed example of a second embodiment of a chord lesson reproducing process. [Figure 14] 13 is a flowchart showing a detailed example of a chord lesson reproducing process according to a third embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. Fig. 1 is an external view of an electronic keyboard instrument 100 according to an embodiment, and Fig. 2 is a diagram showing an example of the configuration of a system 200 of the electronic keyboard instrument 100 according to the embodiment.

[0012] 1, an electronic keyboard instrument 100 according to this embodiment includes a keyboard 110 having a plurality of keys 101, an LCD display unit 102, and an operation unit 103. Each key 101 includes a light-emitting element such as an LED (Light Emitting Diode) therein, and the surface of each key 101 can be illuminated.

[0013] The LCD display unit 102 displays messages accompanying the operation of the operation unit 103, and displays for selecting a lesson mode, which will be described later.

[0014] The operation unit 103 has operation buttons that allow the performer to make various settings, and a power switch that turns the power of the electronic keyboard instrument 100 on / off. The operation buttons are used to perform various setting operations such as selecting a performance mode and adjusting the volume.

[0015] The performance modes include normal performance mode, automatic performance mode, lesson mode (right part lesson mode, left part lesson mode, right and left part lesson mode), and settings for chord input method in lesson mode.

[0016] The normal performance mode is a mode in which the performer plays the instrument normally without relying on chord progressions or the like.

[0017] The automatic performance mode is a mode in which automatic performance is performed according to music piece data sequentially read out from the ROM 202, without the involvement of a performer.

[0018] The lesson mode is a mode in which the player takes a performance lesson while being guided by lighting each key 101 on the keyboard 110 to be played according to music data sequentially read from the ROM 202. The right part lesson mode is a mode in which melody guidance is performed by lighting the LEDs of the keys 101 in the melody range played mainly with the right hand, and the player takes a performance lesson while pressing the keys 101 that are sequentially lit up in response to the lights. The left part lesson mode is a mode in which chord guidance is performed by flashing (for root notes) or lighting (for other chord notes) the LEDs of multiple (3 or 4) keys 101 that constitute chord notes in the chord range played mainly with the left hand, and the player takes a performance lesson while simultaneously pressing the multiple keys 101 that are sequentially lit up. The left and right part lesson mode is a mode in which a melody lesson in the right part lesson mode and a chord lesson in the left part lesson mode can be performed simultaneously.

[0019] Next, in the electronic keyboard instrument system 200 shown in FIG. 2, a CPU (Central Processing Unit) 201, a ROM (Read Only Memory) 202 which is a read-only memory, a RAM (Random Access Memory) 203 which is a readable and writable memory, a detection unit 204, an LED controller 206, an LCD controller 207, a switch interface 208, and a sound source LSI 210 are interconnected by a system bus 213.

[0020] The switch interface 208 detects the switch setting state of the operation unit 103 and notifies the CPU 201 of it.

[0021] The ROM 202 stores the control program that the CPU 201 loads into the RAM 203 and executes, as well as music piece data for the automatic performance mode and lesson mode described above.

[0022] The RAM 203 stores the control program transferred from the ROM 202, music data, and various variable data for program execution.

[0023] The CPU 201 performs various controls such as issuing instructions to the sound source LSI 210 to generate / mute musical tones and for automatic performance or performance lessons in accordance with a control program loaded from the ROM 202 to the RAM 203. The details of this control operation will be described later with reference to the data structure diagram of FIG. 3 and the flowcharts of FIG. 4 to FIG. 14.

[0024] The timer 209 is used in the song playback interrupt process, which will be described later.

[0025] 2 is provided corresponding to each of the operators of the keys 101 (white or black keys), and the part of each operator facing the LED 205 can transmit the light of the LED 205. In the lesson mode, the LED 205 blinks (in the case of the root note of the chord) or lights up (in the case of a melody note or a constituent note of the chord other than the root note) for the key 101 to be pressed next.

[0026] The LED controller 206 in FIG. 2 blinks, lights, or turns off each of the LEDs 205 provided on each of the keys 101 based on an instruction from the CPU 201.

[0027] A sound source LSI (Large Scale Integrated Circuit) 210 generates musical tone data in accordance with instructions from a CPU 201 .

[0028] The D / A converter 211 converts the digital musical sound data generated by the sound source LSI 210 into an analog musical sound signal. This analog musical sound signal is output from a speaker 213 via an amplifier 212.

[0029] The outline of the operation of the present embodiment having the above configuration will be described. The CPU 201 in FIG. 2 executes a control program loaded into the RAM 203, sequentially reading and executing music data selected by a performer and loaded from the ROM 202 into the RAM 203, and executes the music data. In accordance with the progression of each chord in the music, the CPU 201 performs a determination process to determine whether or not the key press is correct based on the relationship between the constituent notes of the chord and the key press sound of one or more keys 101 detected by the detection unit 204, while guiding the keys 101 corresponding to the constituent notes of the chord with light by, for example, the LED 205. If the determination result of the determination process is incorrect, the CPU 201 issues to the sound source LSI 210 sound generation control data instructing sound generation corresponding to the incorrect answer, and the sound source LSI 210 executes the corresponding sound generation process. If the determination result of the determination process is correct, the CPU 201 issues to the sound source LSI 210 a plurality of sound generation control data for simultaneously generating the constituent notes of the chord, and the sound source LSI 210 processes the sound generation of the chord sound. This makes it possible for the performer to recognize an incorrect answer when, for example, the performer presses a key 101 with an incorrect chord decision in the left part lesson mode, and to prevent the performer from misunderstanding that something is wrong or that a malfunction has occurred.

[0030] As one embodiment, in the above-mentioned sound generation process, the CPU 201 generates a sound corresponding to an incorrect answer by using a static chord of an incorrect chord determined in response to a pressed key via the sound source LSI 210. Here, a static chord refers to a chord in which all of the constituent notes of the determined chord are continuously sounded with a dedicated tone while the key is pressed, regardless of which key is pressed. Details of this process will be described as a first embodiment of the chord lesson reproducing process using the flowchart in FIG. 12. This allows the performer to naturally recognize the incorrect answer by the static chord when the chord decision is incorrect.

[0031] As another embodiment, in the above-mentioned sound generation process, when the pitches of one or more keys 101 detected as pressed by the detection unit 204 are not included in the constituent notes of the correct chord determined according to the progression of each chord in the music piece, the CPU 201 generates musical tones corresponding to the pitches of the one or more keys 101 detected as pressed via the sound source LSI 210. This allows the performer to recognize that he or she has pressed a key 101 in the chord key range that is not a constituent note of the correct chord.

[0032] As yet another embodiment, the CPU 201, in the sound generation process described above, generates musical tones corresponding to the pitches of the keys 101 detected as pressed by the detection unit 204 via the sound source LSI 210, and when the determination result of the determination process is correct, mutes the musical tones being generated and then generates the constituent tones of the correct chord. This allows the constituent tones of the correct chord to be played as a lesson while muting unnecessary sounds generated in the case of an incorrect answer, preventing the player from feeling uncomfortable.

[0033] Here, if the judgment result of the judgment process is incorrect, the CPU 201 may further execute, via the sound source LSI 210, a sound generation process of an evaluation sound according to the degree of incorrectness, such as "Not yet!" or "Nice!", or an explosion sound if the answer is completely wrong. This allows the performer to enjoy playing lessons.

[0034] In addition to the light guide by the LEDs 205 of the keys 101, the same image as the keyboard 110 may be displayed on the LCD display unit 102 in Fig. 1, and multiple keys 101 corresponding to the constituent notes of a chord may be displayed as guide displays. This allows the player to check the lesson guide on the LCD display unit 102 in addition to the illuminated keys 101.

[0035] In addition to the light guide of the LEDs 205 of the keys 101, the finger numbers for pressing the multiple keys 101 corresponding to the constituent notes of the chord may be sounded as guide voices via the sound source LSI 210. This allows the player to check the fingering by the guide voice in addition to the illuminated keys 101.

[0036] In addition to the light guide by the LEDs 205 of the keys 101, note names corresponding to the multiple keys 101 that correspond to the constituent notes of a chord may be sounded as guide voices via the sound source LSI 210. This allows the player to confirm which key 101 to press by the guide voice in addition to the illuminated keys 101.

[0037] 3 is a diagram showing an example of the data structure of music data loaded from the ROM 202 in FIG. 2 to the RAM 203 in this embodiment. This data structure example conforms to the standard MIDI file format, which is one of the file formats for MIDI (Musical Instrument Digital Interface). This music data is made up of data blocks called chunks. Specifically, the music data is made up of a header chunk indicating data size and format information, followed by a track chunk 1 in which melody performance data for the melody part is stored, and a track chunk 2 in which chord performance data for the chord part is stored. The chord part may be accompaniment pattern data including a bass pattern and a rhythm pattern.

[0038] Track chunks 1 and 2 each consist of a ChunkID, a ChunkSize, and a performance data set consisting of DeltaTime_1[i] and Event_1[i] (for track chunk 1 / melody part) or DeltaTime_2[i] and Event_2[i] (for track chunk 2 / chord part) (0≦i≦L: for track chunk 1 / melody part, 0≦i≦M: for track chunk 2 / chord part).

[0039] DeltaTime_1[i] is 1-4 bytes of variable length data indicating the waiting time (relative time) from the execution time of the immediately preceding Event_1[i-1]. Similarly, DeltaTime_2[i] is 1-4 bytes of variable length data indicating the waiting time (relative time) from the execution time of the immediately preceding Event_2[i-1]. Event_1[i] is a meta event in track chunk 1 / melody part that indicates the timing and pitch of the melody. Event_2[i] is a MIDI event in track chunk 2 / chord part that indicates note-on or note-off, or a meta event that indicates the beat. For track chunk 1 / melody part, in each performance data set DeltaTime_1[i] and Event_1[i], Event_1[i] is executed after waiting DeltaTime_1[i] from the execution time of the immediately preceding Event_1[i-1], thereby realizing the pronunciation progression of the melody. On the other hand, for track chunk 2 / chord part, in each performance data set DeltaTime_2[i] and Event_2[i], the chord pronunciation progression is realized by waiting DeltaTime_2[i] from the execution time of the immediately preceding Event_2[i-1] before executing Event_2[i].

[0040] 4 is a main flow chart showing an example of control processing of the electronic musical instrument in this embodiment. This control processing is, for example, an operation in which the CPU 201 in FIG.

[0041] The CPU 201 first executes an initialization process (step S401), and then repeatedly executes a series of processes from steps S402 to S407.

[0042] In this repeat process, the CPU 201 first executes a switch process (step S402). Here, the CPU 201 executes a process corresponding to a switch operation on the operation unit 103 in Fig. 1 based on an interrupt from the switch interface 208 in Fig. 2. A detailed example of the switch process will be described later with reference to the flowchart in Fig. 6.

[0043] Next, the CPU 201 executes key processing to determine whether or not any of the keys 101 of the keyboard 110 in Fig. 1 has been operated based on an interrupt from the detection unit 204 in Fig. 2 (step S403). Here, the CPU 201 outputs sound generation control data instructing note-on (start of sound generation) or note-off (stop of sound generation) to the sound source LSI 204 in Fig. 2 in response to the performer's operation of pressing or releasing any of the keys. A detailed example of the key processing will be described later with reference to the flowchart in Fig. 7.

[0044] Next, the CPU 201 processes data to be displayed on the LCD display unit 102 of Fig. 1, and executes display processing to display the data on the LCD display unit 102 via the LCD controller 207 of Fig. 2 (step S404). Data displayed on the LCD display unit 102 includes, for example, the musical score of a piece of music used in a lesson mode to be played, a lesson guide display of each key image corresponding to each key 101 on a keyboard image corresponding to the key keyboard 110, and various setting information.

[0045] Next, the CPU 201 executes a music playback process (step S405). In this process, a melody lesson playback process, a chord lesson playback process, an automatic performance playback process, etc. A detailed example of the music playback process will be described later with reference to the flowchart of FIG.

[0046] Next, the CPU 201 executes a sound source process (step S406). In the sound source process, the CPU 201 executes processes such as envelope control of the musical tones being generated in the sound source LSI 204.

[0047] Finally, the CPU 201 judges whether or not the performer has turned off the power by pressing a power-off switch (not shown) (step S407). If the judgment in step S407 is NO, the CPU 201 returns to the process in step S402. If the judgment in step S407 is YES, the CPU 201 ends the control process shown in the flowchart of FIG. 4 and turns off the power to the electronic keyboard instrument 100.

[0048] 5(a), (b), and (c) are flowcharts respectively showing a detailed example of the initialization processing of step S401 in FIG. 4, a detailed example of the tempo change processing of step S602 in FIG. 6 (to be described later) in the switch processing of step S402 in FIG. 4, and a detailed example of the song start processing of step S606 in FIG. 6.

[0049] First, in FIG. 5(a) showing a detailed example of the initialization process of step S401 in FIG. 4, the CPU 201 executes the initialization process of TickTime. In this embodiment, the melody progression and chord progression progress in units of time called TickTime. The time base value specified as the TimeDivision value in the header chunk of the music data in FIG. 3 indicates the resolution of a quarter note, and if this value is 480, for example, a quarter note has a time length of 480 TickTime. The latency values ​​DeltaTime_1[i] and DeltaTime_2[i] in the track chunk of the music data in FIG. 3 are also counted in units of TickTime. Here, how many seconds one TickTime actually is depends on the tempo specified for the music data. Now, assuming that the tempo value is Tempo [beats / minute] and the time base value is TimeDivision, the number of seconds of TickTime is calculated by the following formula.

[0050] TickTime[seconds]=60 / Tempo / TimeDivision (1)

[0051] Therefore, in the initialization process exemplified in the flowchart of Fig. 5(a), the CPU 201 first calculates TickTime [seconds] by performing an arithmetic process corresponding to the above formula (1) (step S501). Note that the tempo value Tempo is initially stored in the ROM 202 of Fig. 2 as a predetermined value, for example, 60 [beats / second]. Alternatively, the tempo value at the time of the previous termination may be stored in the non-volatile memory.

[0052] Next, CPU 201 sets a timer interrupt for the TickTime [seconds] calculated in step S501 for timer 209 in Fig. 2 (step S502). As a result, every time the TickTime [seconds] elapses in timer 209, an interrupt for melody progression and chord progression (hereinafter referred to as a "song playback interrupt") is generated for CPU 201. Therefore, in song playback interrupt processing (Figs. 8 and 9 to be described later) executed by CPU 201 based on this song playback interrupt, a control process for progressing the melody and chords every tick is executed.

[0053] Next, the CPU 201 executes other initialization processes such as the initialization of the RAM 203 in Fig. 2 (step S503). After that, the CPU 201 ends the initialization process in step S401 in Fig. 4, which is exemplified in the flowchart in Fig. 5(a).

[0054] The flowcharts of FIGS. 5(b) and (c) will be described later.

[0055] Fig. 6 is a flow chart showing a detailed example of the switch processing in step S402 in Fig. 4. First, the CPU 201 judges whether or not the tempo of the melody progression and chord progression has been changed by the tempo change switch in the operation unit 103 in Fig. 1 (step S601). If the judgment is YES, the CPU 201 executes a tempo change process (step S602). Details of this process will be described later with reference to Fig. 5(b). If the judgment in step S601 is NO, the CPU 201 skips the process in step S602.

[0056] Next, the CPU 201 determines whether any song has been selected on the operation unit 103 (step S603). If the determination is YES, the CPU 201 executes a song read process (step S604). This process is a process for reading music data having the data structure described in FIG. 3 from the ROM 202 in FIG. 2 into the RAM 203. After this, data access to track chunk 1 or 2 in the data structure illustrated in FIG. 3 is performed on the music data read into the RAM 203. If the determination in step S603 is NO, the CPU 201 skips the process in step S604.

[0057] Next, the CPU 201 determines whether or not the song start switch has been operated on the operation unit 103 of Fig. 1 (step S605). If the determination is YES, the CPU 201 executes song start processing (step S606). Details of this processing will be described later with reference to Fig. 5(c). If the determination in step S605 is NO, the CPU 201 skips the processing in step S606.

[0058] Next, the CPU 201 judges whether or not a right part lesson indicating a melody lesson has been selected by turning on the lesson mode switch and the right part switch on the operation unit 103 in FIG. 1 (step S607). If the judgement is YES, the CPU 201 executes a process to turn on the right part lesson (step S608). Specifically, the CPU 201 sets the right part lesson flag, which is a variable on the RAM 203, to ON (value "1"). If the judgement in step S607 is NO, the CPU 201 skips the process of step S608.

[0059] Furthermore, the CPU 201 judges whether or not a left part lesson indicating a chord lesson has been selected by turning on the lesson mode switch and the left part switch on the operation unit 103 in FIG. 1 (step S609). If the judgement is YES, the CPU 201 executes a process to turn on the left part lesson (step S610). Specifically, the CPU 201 sets the left part lesson flag, which is a variable on the RAM 203, to ON (value "1"). If the judgement in step S609 is NO, the CPU 201 skips the process of step S610.

[0060] The right part lesson corresponding to the melody lesson and the left part lesson corresponding to the chord lesson can be turned on at the same time, that is, the right part lesson and the left part lesson can be performed at the same time.

[0061] Finally, the CPU 201 determines whether any other switches have been operated on the operation unit 103 in Fig. 1, and executes processing corresponding to each switch operation (step S611). For example, when it is detected that the performer has turned on the autoplay switch on the operation unit 103 in Fig. 1 and selected a desired autoplay music piece, the autoplay flag, which is a variable on the RAM 203, is turned on (value "1"), and music piece data with the data structure exemplified in Fig. 3 corresponding to the selected autoplay music piece is transferred from the ROM 202 to the RAM 203. After that, the CPU 201 ends the switch processing of step S402 in Fig. 4 exemplified in the flow chart in Fig. 6.

[0062] Fig. 5(b) is a flowchart showing a detailed example of the tempo change process in step S602 in Fig. 6. As described above, when the tempo value is changed, the TickTime [seconds] is also changed. In the flowchart in Fig. 5(b), the CPU 201 executes control processing related to the change of this TickTime [seconds].

[0063] First, the CPU 201 calculates TickTime [seconds] (step S511) by the calculation process corresponding to the above-mentioned formula (1), in the same manner as in step S501 in Fig. 5(a) executed in the initialization process of step S401 in Fig. 4. Note that it is assumed that the tempo value Tempo is a value changed by the tempo change switch in the operation unit 103 in Fig. 1 and stored in the RAM 203 or the like.

[0064] Next, the CPU 201 sets a timer interrupt based on the TickTime [seconds] calculated in step S511 for the timer 209 in Fig. 2 (step S512), in the same manner as in step S502 in Fig. 5(a) executed in the initialization process in step S401 in Fig. 4. Thereafter, the CPU 201 ends the tempo change process in step S602 in Fig. 6, exemplified in the flowchart in Fig. 5(b).

[0065] FIG. 5C is a flow chart showing a detailed example of the song start process in step S606 of FIG.

[0066] First, the CPU 201 initializes the values ​​of variables DeltaT_1 (track chunk 1) and DeltaT_2 (track chunk 2) on the RAM 203, which are used to count the relative time from the occurrence time of the immediately preceding event in units of TickTime during the progress of the automatic performance or lesson mode, to 0. Next, the CPU 201 initializes the values ​​of variables AutoIndex_1 on the RAM 203, which are used to specify i of each of the performance data sets DeltaTime_1[i] and Event_1[i] (1≦i≦L-1) in the track chunk 1 of the music data illustrated in Fig. 3, and variables AutoIndex_2 on the RAM 203, which are used to specify i of each of the performance data sets DeltaTime_2[i] and Event_2[i] (1≦i≦M-1) in the track chunk 2, to 0 (step S521). In the example of FIG. 3, therefore, the first performance data sets DeltaTime_1[0] and Event_1[0] in track chunk 1, and the first performance data sets DeltaTime_2[0] and Event_2[0] in track chunk 2 are referenced as the initial state.

[0067] Next, CPU 201 initializes the value of variable MelodyIndex in RAM 203, which indicates the current melody event in track chunk 1 of the music data, and each element value of array variable CodeIndex() in RAM 203, which indicates the current chord event group in track chunk 2 of the music data, to a null value (undefined value) (step S522). Note that the chord in this embodiment is a chord consisting of three or four notes and does not include so-called tension notes. Therefore, CodeIndex() is a variable array having three or four element values.

[0068] Furthermore, the CPU 201 initializes the value of a variable SongStart in the RAM 203, which indicates whether a melody and chord progression will be performed (value "1") or not (value "0"), to "1" (progress) (step S523). Thereafter, the CPU 201 ends the song start process of step S606 in Fig. 6, which is exemplified in the flowchart of Fig. 5(c).

[0069] Fig. 7 is a flowchart showing a detailed example of the key processing in step S403 in Fig. 4. First, the CPU 201 checks the value of each variable, right part lesson flag or left part lesson flag, in the RAM 203 to determine whether the right part lesson or left part lesson is on (see steps S608, S610) (step S701).

[0070] If neither the right part lesson nor the left part lesson is turned on (NO in step S701), the CPU 201 further determines via the detection unit 204 whether or not a key 101 has been pressed (step S702).

[0071] If the determination in step S702 is YES, the CPU 201 issues sound generation control data to the sound source LSI 210 to instruct a note-on based on the pressed note number (pressed key note) detected via the detection unit 204, and instructs the sound source LSI 210 to generate a sound (step S703). That is, in a mode other than the lesson mode, when the performer presses any key 101, a musical tone is generated according to the key pressed by the performer.

[0072] If no key press is detected in step S702 (the determination in step S702 is NO) or after the processing of step S703, the CPU 201 determines via the detection unit 204 whether or not a key release has occurred on any of the keys 101 (step S704).

[0073] If the determination in step S704 is YES, the CPU 201 issues sound generation control data instructing note-off for the released note number (released note) detected via the detection unit 204 to the sound source LSI 210, thereby instructing it to mute the sound (step S705).

[0074] After the process of step S705, or if the determination in step S704 is NO, the CPU 201 ends the key process of step S403 in Fig. 4 illustrated in the flowchart of Fig. 7. If the right part lesson or left part lesson is on and the lesson mode is designated, the determination in step S701 becomes YES, and the performer's key depression and release operations are not substantially processed by the key process, but are processed by the music playback process of step S405 in Fig. 4, which will be described later.

[0075] 8 and 9 are flow charts showing a detailed example of a song playback interrupt process that is executed by interrupting the main process of Fig. 4 based on an interrupt that occurs every TickTime [seconds] in the timer 209 of Fig. 2 (see step S502 of Fig. 5(a) or step S512 of Fig. 5(b)). The following process is executed for the performance data sets of track chunks 1 and 2 of the music data exemplified in Fig. 3.

[0076] First, the CPU 201 executes a series of processes (steps S801 to S813) corresponding to track chunk 1. First, the CPU 201 determines whether or not the value of the SongStart variable in the RAM 203 is 1, that is, whether or not a melody and chord progression is specified (step S801).

[0077] If it is determined that the melody and chord progression has not been instructed (the determination in step S801 is NO), the CPU 201 does not perform the melody and chord progression and ends the song playback interrupt processing exemplified in the flowcharts of Figures 8 and 9.

[0078] If it is determined that a melody and chord progression has been instructed (YES in step S801), the CPU 201 determines whether or not a right part lesson or automatic performance is turned on (step S802).

[0079] If neither the right part lesson nor the automatic performance is turned on (the determination in step S802 is NO), the CPU 201 does not execute the control processing for the melody part of track chunk 1 shown in steps S803 to S813, but proceeds to processing for the chord part of track chunk 2 in step S814 of FIG. 9.

[0080] If either the right part lesson or the automatic performance is on (YES in step S802), the CPU 201 executes a series of processes from step S803 to S813 for track chunk 1.

[0081] First, the CPU 201 determines whether the DeltaT_1 value, which indicates the relative time from the occurrence time of the previous event related to track chunk 1, matches the waiting time DeltaTime_1[AutoIndex_1] of the performance data set to be executed, which is indicated by the AutoIndex_1 value (step S803).

[0082] If the determination in step S803 is NO, the CPU 201 increments the DeltaT_1 value, which indicates the relative time from the occurrence time of the previous event, by +1 for track chunk 1, and advances the time by one TickTime unit corresponding to the current interrupt (step S813). Thereafter, the CPU 201 proceeds to processing related to the code part of track chunk 2 in step S814 in FIG. 9, which will be described later.

[0083] If the determination in step S803 is YES, the CPU 201 determines whether the event Event[AutoIndex_1] of the performance data set indicated by the AutoIndex_1 value is EOT (end of track) indicating the end of the melody music data of track chunk 1 (see FIG. 3) (step S804).

[0084] If the determination in step S804 is YES, the CPU 201 ends the processing of the melody music data, and proceeds to processing related to the chord part of track chunk 2 in step S814 in FIG.

[0085] If the determination in step S804 is NO, the CPU 201 determines whether or not the event Event[AutoIndex_1] of the performance data set indicated by the AutoIndex_1 value for track chunk 1 is a note-on event (step S805).

[0086] If the determination in step S805 is NO, the CPU 201 immediately executes the event Event[AutoIndex_1] of the performance data set indicated by the AutoIndex_1 value (step S810), and then the CPU 201 proceeds to the process of step S811.

[0087] If the determination in step S805 is YES, the CPU 201 stores the AutoIndex_1 value for track chunk 1 in the variable MelodyIndex on the RAM 203 (step S806). The CPU 201 does not execute this note-on event here, but performs a determination in the melody key range by the performer in the musical sound reproduction process in step S405 in Fig. 4, which will be described later, and then performs sound generation process based on the variable MelodyIndex (see step S1107 in Fig. 11 in step S1002 in Fig. 10, which will be described later).

[0088] Next, the CPU 201 turns off the LED 205 of the key 101 corresponding to the note number of the note-on stored in the event Event[AutoIndex_1] of the current performance data set indicated by the AutoIndex_1 value, via the LED controller 206 of FIG. 2 (step S807).

[0089] Next, the CPU 201 searches for a performance data set of α events (α≧1) corresponding to a note-on event occurring next to the AutoIndex_1 value, and lights up the LED 205 of the key 101 corresponding to the note number of the note-on stored in the event Event[AutoIndex_1+α] via the LED controller 206 in Fig. 2 (step S808). If there is no corresponding event, the CPU 201 does not execute the lighting operation of step S808.

[0090] In this embodiment, in order to prevent the performer from being hesitant in playing, the key 101 to be pressed next to the key 101 the performer is currently trying to press is light-guided in advance. Therefore, the LED 205 of the key 101 the performer is currently trying to press has already been lit when the key was pressed at the timing immediately before the current one, and since there is no need to light it any more when the current key-press timing arrives, first, in step S807, the LED 205 of the key 101 the performer is currently trying to press is turned off. Then, in step S808, the LED 205 of the key 101 to be pressed next to the key 101 the performer is currently trying to press is lit in advance.

[0091] Next, the CPU 201 executes the process of generating a guide sound corresponding to the note-on stored in the event Event[AutoIndex_1+α] of the performance data set of the α event destination, as in the case of step S808 (step S809). Specifically, the CPU 201 may instruct the sound source LSI 210 to generate a sound (any of the sounds of "ichi", "ni", "san", "yon", and "go") corresponding to the fingering information for pressing the key 101 corresponding to the note-on stored in Event[AutoIndex_1+α]. Instead of this, the CPU 201 may instruct the sound source LSI 210 to generate a note name (any of the sounds from "shi" (C) to "bi" (B)) corresponding to the note number of the note-on stored in Event[AutoIndex_1+α]. The sound source LSI 210 holds, for example, these sound data as, for example, PCM sound, and can generate sounds by reading out these sound data.

[0092] After the processing of step S809 above, or after the processing of step S810 which is executed if Event[AutoIndex_1] is not a note-on event (the determination of step S805 is NO), CPU 201 increments the AutoIndex_1 value for referencing the performance data set in track chunk 1 by +1 (step S811).

[0093] 9. Furthermore, the CPU 201 resets the DeltaT_1 value, which indicates the relative time from the occurrence time of the currently referenced song event for track chunk 1, to 0 (step S812). After that, the CPU 201 proceeds to processing for the chord part of track chunk 2 in step S814 of FIG.

[0094] Next, moving to the explanation of the flowchart in FIG. 9, the CPU 201 determines whether the left part lesson or automatic performance is turned on (step S814).

[0095] If neither the left part lesson nor the automatic performance is on (the determination in step S814 is NO), the CPU 201 does not execute the control processing for the chord part of track chunk 2 shown in steps S815 to S828, but terminates the current song playback interrupt processing shown in the flowcharts of FIGS. 8 and 9, and returns to execution of the processing at the time of the interruption of the main processing in FIG. 4.

[0096] If either the left part lesson or the automatic performance is on (YES in step S814), the CPU 201 executes a series of processes from steps S815 to S828 for track chunk 2.

[0097] First, the CPU 201 determines whether the DeltaT_2 value, which indicates the relative time from the occurrence time of the previous event related to track chunk 2, matches the waiting time DeltaTime_2[AutoIndex_2] of the performance data set to be executed, which is indicated by the AutoIndex_2 value (step S815).

[0098] If the determination in step S815 is NO, the CPU 201 increments the DeltaT_2 value, which indicates the relative time from the occurrence time of the previous event, by +1 for track chunk 2, and advances the time by one TickTime unit corresponding to the current interrupt (step S828). Thereafter, the CPU 201 ends the current song playback interrupt process shown in the flowcharts of Figures 8 and 9, and returns to the execution of the process at the time of the interrupt in the main process of Figure 4.

[0099] If the determination in step S815 is YES, the CPU 201 determines whether the event Event[AutoIndex_2] of the performance data set indicated by the AutoIndex_2 value is EOT (see FIG. 3) indicating the end of the chord music data of the track chunk 2 (step S816).

[0100] If the determination in step S816 is YES, the CPU 201 ends the processing of the chord music data, ends the current song playback interrupt process shown in the flowcharts of FIGS. 8 and 9, and returns to the execution of the process at the time of the interruption of the main process in FIG.

[0101] If the determination in step S816 is NO, the CPU 201 determines whether or not the event Event[AutoIndex_2] of the performance data set indicated by the AutoIndex_2 value for track chunk 2 is a note-on event (step S817).

[0102] If the determination in step S817 is NO, the CPU 201 immediately executes the event Event[AutoIndex_2] of the performance data set indicated by the AutoIndex_2 value (step S824), and then the CPU 201 proceeds to the process of step S825.

[0103] If the determination in step S817 is YES, the CPU 201 stores the AutoIndex_2 value for track chunk 2 in the last element of the array variable CodeIndex() in the RAM 203 (step S818). The CPU 201 does not execute this note-on event here, but performs a determination in the chord key range by the performer in the musical sound reproduction process in step S405 in Fig. 4 described later, and then performs sound generation process based on the array variable CodeIndex() (see step S1207 in Fig. 12, 13, or 14 in step S1004 in Fig. 10 described later).

[0104] Next, the CPU 201 turns off the LED 205 of the key 101 corresponding to the note number of the note-on stored in the event Event[AutoIndex_2] of the current performance data set indicated by the AutoIndex_2 value via the LED controller 206 in Fig. 2 (step S819). This process is the same as the process in step S807 for the melody part.

[0105] Next, the CPU 201 searches for the performance data set of the β event destination (β≧1) corresponding to the note-on event occurring next to the AutoIndex_2 value, and judges whether the note number of the note-on stored in the event Event[AutoIndex_2+β] is the root note of a chord (step S820). Information indicating whether it is the root note is stored in Event[AutoIndex_2+β].

[0106] If it is determined in step S820 that the note is the root note, the CPU 201 blinks the LED 205 of the key 101 corresponding to the note number of the note-on stored in Event[AutoIndex_2+β] via the LED controller 206 in Fig. 2 (step S821). If there is no corresponding event, the CPU 201 does not execute the blinking operation of step S821.

[0107] If it is determined in step S820 that the note is not the root note, the CPU 201 lights up the LED 205 of the key 101 corresponding to the note number of the note-on stored in Event[AutoIndex_2+β] via the LED controller 206 in Fig. 2 (step S822). If there is no corresponding event, the CPU 201 does not execute the blinking operation of step S821.

[0108] In this way, in this embodiment, the root note and other chord constituent notes can be distinguished and guided on the key 101, so the performer can press the appropriate key while keeping in mind the inversion even for complex chords. The above-mentioned operation of "+β" in step S821 and step S822 is the same as the operation of "+α" in step S808 of Fig. 8 in the melody part.

[0109] After the process of step S821 or step S822, the CPU 201 executes the process of generating the guide sound corresponding to the note-on stored in the event Event[AutoIndex_2+β] of the performance data set of the β event destination (step S823). This operation is the same as the process of step S809 in FIG. 8 for the melody part.

[0110] After the processing of step S823 above, or after the processing of step S824 which is executed if Event[AutoIndex_2] is not a note-on event (the judgment of step S817 is NO), CPU 201 increments the AutoIndex_2 value for referencing the performance data set in track chunk 2 by +1 (step S825).

[0111] Furthermore, the CPU 201 resets the DeltaT_2 value, which indicates the relative time from the occurrence time of the currently referenced chord event for track chunk 2, to 0 (step S826).

[0112] Then, the CPU 201 determines whether the waiting time DeltaTime_2[AutoIndex_2] of the performance data set on track chunk 2 to be executed next, which is indicated by the AutoIndex_2 value, is 0, i.e., whether the event is related to a chord to be executed simultaneously with the current event (step S827).

[0113] If the determination in step S827 is NO, the CPU 201 ends the processing of the chord music data, ends the current song playback interrupt processing shown in the flowcharts of FIGS. 8 and 9, and returns to executing the processing at the time of the interruption of the main processing in FIG.

[0114] If the determination in step S827 is YES, the CPU 201 returns to step S816 and repeats the control process for the event Event_2[AutoIndex_2] of the performance data set to be executed next on the track chunk 2 indicated by the AutoIndex_2 value. The CPU 201 repeats the process from step S816 to step S827 for the number of constituent notes of the chord to be executed simultaneously this time. The above process sequence is executed when multiple note-on events are sounded at the same time, such as the processing of the current chord part.

[0115] By repeating the above processes from step S816 to step S827, a group of indexes referencing a group of events indicating the constituent notes of the chord to be determined at this timing is obtained in the array variable CodeIndex() in the RAM 203.

[0116] Fig. 10 is a flowchart showing a detailed example of the music playback process in step S405 in Fig. 4. First, the CPU 201 checks the value of the right part lesson flag, which is a variable on the RAM 203, to determine whether the right part lesson is on (step S608) (step S1001).

[0117] If the right part lesson is turned on (the determination in step S1001 is YES), the CPU 201 executes a melody lesson reproduction process (step S1002). A detailed example of this process will be described later with reference to the flowchart in FIG.

[0118] If the right part lesson is not turned on (the determination in step S1001 is NO), the CPU 201 skips the melody lesson reproduction process in step S1002.

[0119] Next, the CPU 201 checks the value of the left part lesson flag, which is a variable on the RAM 203, to determine whether or not the left part lesson is turned on (step S610) (step S1003).

[0120] If the left part lesson is on (the determination in step S1003 is YES), the CPU 201 executes a chord lesson playback process (step S1004). A detailed example of this process will be described later with reference to the flowcharts of Figs. 12 to 14.

[0121] If the left part lesson is not on (NO in step S1003), the CPU 201 skips the chord lesson playback process in step S1004.

[0122] After that, the CPU 201 determines whether or not the automatic performance is turned on (step S1005). The performer turns on the automatic performance switch in the operation unit 103 in Fig. 1 and further selects an automatic performance piece of music, and the information is stored in the RAM 203 (see step S611 in Fig. 6). In step S1005, the CPU 201 determines whether or not the automatic performance flag, which is a variable in the RAM 203, is turned on.

[0123] If the determination in step S1005 is YES, the CPU 201 obtains the note-on event Event_1[MelodyIndex] (see steps S805 and S806 in FIG. 8) on track chunk 1 (melody part) (see FIG. 3) of the automatic performance music data stored in the RAM 203 using the variable MelodyIndex in the RAM 203, and issues the sound generation control data indicated by the event to the sound source LSI 210 (FIG. 2), and the sound source LSI 210 executes the sound generation process of the automatic performance melody (step S1006).

[0124] Next, the CPU 201 acquires a group of multiple note-on events Event_2[CodeIndex()] (see steps S817 and S818 in FIG. 9) in track chunk 2 (chord part) (see FIG. 3) in the music data for automatic performance stored in the RAM 203 using the array variable CodeIndex() in the RAM 203, and issues multiple pieces of sound generation control data specifying the chord notes indicated by the group of events to the sound source LSI 210 (FIG. 2) (step S1007). Since CodeIndex() is an array variable, each piece of sound generation control data indicating a note-on corresponding to each of three or four note-on events, such as Event_2[CodeIndex(0)], Event_2[CodeIndex(1)], Event_2[CodeIndex(3)], and Event_2[CodeIndex(4)], indicating chord notes, is actually issued from the CPU 201 to the sound source LSI 210, and the sound source LSI 210 executes sound generation processing for the automatic performance chord.

[0125] When the automatic performance is on, the melody part and performance part of the music piece designated by the performer are automatically performed via the sound source LSI 210 in the above-mentioned steps S1006 and S1007. When the performer performs a performance operation of pressing or releasing the keys 101 in time with this automatic performance, the determination in step S701 in Fig. 7, which is a detailed example of the key processing in step S403 in Fig. 4, becomes NO, and sound generation processing in response to a pressed note (step S703) or sound silencing processing in response to a released note (step S705) is executed. As a result, the performer can enjoy playing along with the automatic accompaniment.

[0126] If the determination in step S1005 is NO, the CPU 201 skips the processes in steps S1006 and S1007. After that, the CPU 201 ends the music playback process in step S405 in Fig. 4, which is exemplified in the flowchart in Fig. 10.

[0127] Fig. 11 is a flow chart showing a detailed example of the melody lesson reproduction process in step S1002 in Fig. 10. This process is a control process executed so that a player can have a lesson on a melody part.

[0128] First, the CPU 201 determines whether or not the melody determination process has not been performed for the index value indicated by the variable MelodyIndex stored in the RAM 203 by the processes in steps S805 and S806 in FIG. 8 (step S1101).

[0129] If it is recorded in the variable on the RAM 203 that the index value indicated by the variable MelodyIndex has been processed (the determination in step S1101 is NO), the CPU 201 ends the melody lesson playback process in step S1002 of FIG. 10 as exemplified in the flowchart of FIG. 11.

[0130] If the variable in RAM 203 does not record that the index value indicated by the variable MelodyIndex has been processed and is unprocessed (the determination in step S1101 is YES), the CPU 201 records in an appropriate variable in RAM 203 that the variable MelodyIndex has been processed, and then blocks the song playback interrupt by timer 209 for the song playback interrupt processing exemplified in the flowcharts of Figures 8 and 9, so that the song playback interrupt processing is not executed temporarily (step S1102). As a result, the progress of the lesson mode is stopped until the performer performs the operation to press the correct melody note.

[0131] Thereafter, the CPU 201 waits for a key 101 in the melody range to be pressed by the performer via the detection unit 204 (step S1103). As long as no key is pressed in the melody range, the determination in step S1103 is NO, and the determination process in step S1103 is repeatedly executed.

[0132] When a key is pressed in the melody range (the determination in step S1103 is YES), the CPU 201 acquires the note-on event Event_1[MelodyIndex] (see steps S805 and S806 in FIG. 8) in track chunk 1 (melody part) (see FIG. 3) in the music data for automatic performance stored in the RAM 203, which is referenced by the variable MelodyIndex in the RAM 203, and determines whether the note number indicated by the event is equal to the pressed note notified by the detection unit 204 (step S1104). That is, here, it is determined whether the performer correctly pressed the same key 101 of the melody part that was displayed on the light guide on the keys 101.

[0133] If the determination in step S1104 is NO, that is, if the performer has pressed an incorrect key in the melody range, the CPU 201 generates a sound of the pitch of the key pressed by the performer in a tone color dedicated to incorrect answers via the sound source LSI 210 (step S1105). This allows the performer to naturally recognize that the melody judgment is incorrect.

[0134] Following step S1105, the CPU 201 executes an evaluation voice pronunciation process (step S1106). In this process, the CPU 201 issues to the sound source LSI 210 pronunciation control data instructing the sound source LSI 210 to pronounce an evaluation voice according to the degree of incorrectness of the melody part, such as "The melody is not quite there yet!" or "The melody is close!", or an explosion sound if the melody part is completely inaccurate, and the sound source LSI 210 executes the pronunciation process of these evaluation voices. This allows the performer to enjoy playing the melody part. Thereafter, the CPU 201 returns to the state of waiting for a key to be pressed in step S1103.

[0135] If the determination in step S1104 is YES, i.e., if the performer pressed the correct key in the melody key range, the CPU 201 obtains the note-on event Event_1[MelodyIndex] (see steps S805 and S806 in FIG. 8) in track chunk 1 (melody part) (see FIG. 3) in the automatic performance music data stored in the RAM 203, which is referenced by the variable MelodyIndex in the RAM 203, and issues sound generation control data for the note-on indicated by the event to the sound source LSI 210 (FIG. 2), and the sound source LSI 210 executes melody sound generation processing (step S1107).

[0136] Thereafter, the CPU 201 releases the block of the song playback interrupt by the timer 209 for the song playback process illustrated in the flowcharts of Figures 8 and 9, and resumes the song playback interrupt process (step S1108). As a result, the progress of the lesson mode is resumed. The CPU 201 then ends the melody lesson playback process of step S1002 in Figure 10 illustrated in the flowchart of Figure 11.

[0137] Fig. 12 is a flow chart showing a detailed example of a first embodiment of the chord lesson reproduction process in step S1004 of Fig. 10. This process is a control process executed so that a player can take a lesson on a chord part.

[0138] First, the CPU 201 determines whether or not the chord determination process has not been performed for the index value indicated by the variable CodeIndex stored in the RAM 203 by the processes in steps S817 and S818 in FIG. 9 (step S1201).

[0139] If it is recorded in the variable on RAM 203 that the index value indicated by the variable CodeIndex has already been processed (the determination in step S1201 is NO), CPU 201 ends the chord lesson playback process of step S1004 in FIG. 10 as exemplified in the flowchart in FIG. 12.

[0140] If the index value indicated by the variable CodeIndex has not been processed and is unprocessed (YES in step S1201), CPU 201 records in an appropriate variable in RAM 203 that the variable CodeIndex has been processed, and then blocks the song playback interrupt by timer 209 for the song playback interrupt process exemplified in the flowcharts of Figures 8 and 9, so that the song playback interrupt process is not executed temporarily (step S1202). As a result, the progress of the lesson mode stops until the performer presses the correct chord.

[0141] Thereafter, the CPU 201 waits for a key depression by the performer from the key 101 in the chord key range via the detection unit 204 (step S1203). As long as no key depression occurs in the chord key range, the determination in step S1203 is NO, and the determination process in step S1203 is repeatedly executed.

[0142] When a key is pressed in the chord key range (YES in step S1203), the CPU 201 acquires a group of multiple note-on events Event_2[CodeIndex()] (see steps S817 and S818 in FIG. 9) in the track chunk 2 (chord part) (see FIG. 3) in the lesson music piece data stored in the RAM 203, which is referenced by the array variable CodeIndex() in the RAM 203, and performs chord judgment to determine whether the correct chord determined by the group of events can be determined by each key pressed by the keys pressed so far (step S1204). As a method of chord judgment, various judgment levels can be adopted according to the performer's level of proficiency in the performance lesson, such as determining a major chord by simply pressing the root note, determining the chord by pressing the root note and one more note, or not determining the chord unless all the chord constituent notes are pressed. For this reason, the performer may be allowed to specify the level of difficulty of the chord lesson on the operation unit 103. As a code determination method, for example, the technology described in JP 2018-54713 A can be adopted, so detailed explanation is omitted.

[0143] As a result of the chord determination process in step S1204, CPU 201 determines whether or not the correct chord has been confirmed (step S1205).

[0144] If the performer has not determined the correct chord by the key depressions up to now (the determination in step S1205 is NO), the CPU 201 sounds an incorrect chord that can be determined by the key depressions up to now as a static chord via the sound source LSI 210 (step S1206). Here, a static chord means that all of the determined chord constituent notes are continuously sounded with a dedicated tone while the keys are being pressed, regardless of which key is pressed. This allows the performer to naturally recognize that the chord determination is incorrect. The incorrect chord here may be a major chord whose root note is a pitch that does not constitute the correct chord pressed by the performer, or if there are multiple keys pressed that can be determined as a chord, the determined chord may be used.

[0145] Following step S1206, the CPU 201 executes an evaluation sound pronunciation process (step S1207). In this process, the CPU 201 issues to the sound source LSI 210 pronunciation control data instructing the sound source LSI 210 to pronounce an evaluation sound according to the degree of incorrectness of the chord part, such as "You've got a lot more to do on the chord!" or "That chord was close!", or an explosion sound if the chord part is completely incorrect, and the sound source LSI 210 executes the pronunciation process of these evaluation sounds. This allows the performer to enjoy playing the chord part. After that, the CPU 201 returns to the state of waiting for a key to be pressed in step S1203.

[0146] If the determination in step S12005 is YES, i.e., if the performer has confirmed that the keys pressed in the chord key range are the correct chord, the CPU 201 acquires a group of multiple note-on events Event_2[CodeIndex()] (see steps S817 and S818 in FIG. 9) in track chunk 2 (chord part) (see FIG. 3) in the lesson music data stored in RAM 203, which is referenced by the array variable CodeIndex() in RAM 203, and issues a plurality of sound generation control data specifying the chord notes indicated by these group of events to the sound source LSI 210 (FIG. 2) (step S1208). As in the case of step S1007 in FIG. 10, since CodeIndex() is an array variable, each sound generation control data indicating a note-on corresponding to each of the three or four note-on events, such as Event_2[CodeIndex(0)], Event_2[CodeIndex(1)], Event_2[CodeIndex(3)], and Event_2[CodeIndex(4)], which actually indicate the constituent notes of the chord, is issued from the CPU 201 to the sound source LSI 210, and the sound source LSI 210 executes the sound generation process of the correct chord.

[0147] Thereafter, the CPU 201 releases the block of the song playback interrupt by the timer 209 for the song playback process illustrated in the flowcharts of Figures 8 and 9, and resumes the song playback interrupt process (step S1209). As a result, progress in the lesson mode is resumed. The CPU 201 then ends the chord lesson playback process of step S1004 in Figure 10 illustrated in the flowchart of Figure 12.

[0148] Fig. 13 is a flow chart showing a detailed example of the second embodiment of the chord lesson reproducing process in step S1004 of Fig. 10. This process is a control process executed for a performer to perform a lesson on a chord part. The same step numbers as in Fig. 12 are given to steps that perform the same processes as in the detailed example of the first embodiment of the chord lesson reproducing process shown in Fig. 12.

[0149] Therefore, the processes in steps S1201, S1202, and S1203 in FIG. 13 are the same as those in the first embodiment in FIG.

[0150] When a key is pressed in the chord key range (the determination in step S1203 in FIG. 13 is YES), the CPU 201 acquires a group of multiple note-on events Event_2[CodeIndex()] (see steps S817 and S818 in FIG. 9) in track chunk 2 (chord part) (see FIG. 3) of the lesson music data stored in the RAM 203, which is referenced by the array variable CodeIndex() in the RAM 203. Then, the CPU 201 determines whether or not any of the constituent notes of the correct chord determined by the group of events has been pressed this time in the key press detection in step S1203 (step S1301).

[0151] If the determination in step S1301 is NO, the CPU 201 issues to the sound source LSI 210 sound generation control data instructing a note-on based on the pressed note detected via the detection unit 204 in step S1203 (step S1302). As a result, the sound source LSI 210 executes sound generation processing for musical tones that are not constituent tones of the correct chord.

[0152] After the sound generation process in step S1302, the CPU 201 executes the evaluation voice sound generation process (step S1207 in FIG. 13) similar to the case of step S1207 in FIG. 12. After that, the CPU 201 returns to the key press waiting state in step S1203 in FIG.

[0153] If the determination in step S1301 is YES, the CPU 201 determines whether or not any key 101 of a musical note other than the constituent notes of the correct chord determined by the group of multiple note-on events Event_2[CodeIndex()] has been pressed so far (step S1303).

[0154] If a key 101 of a musical tone other than the constituent tones of the correct chord is pressed (determination in step S1303 is NO), the CPU 201 executes evaluation sound pronunciation processing in step S1207, and then returns to the key pressing waiting state in step S1203 in FIG.

[0155] If no key 101 of a musical tone other than the constituent tones of the correct chord is pressed (the determination in step S1303 is YES), the CPU 201 executes the chord determination process of the correct chord (step S1204 in FIG. 13) and the final determination process (step S1205 in FIG. 13) in the same manner as in the case of FIG. 12.

[0156] As a result, if the correct chord cannot be determined (determination in step S1205 in FIG. 13 is NO), the CPU 201 executes an evaluation voice pronunciation process in step S1207, and then returns to the key press waiting state in step S1203 in FIG.

[0157] If the correct chord has been determined (determination in step S1205 in FIG. 13 is YES), CPU 201 executes the sound generation process of the correct chord in the same manner as in the case of FIG. 12 (step S1208 in FIG. 13).

[0158] 12, CPU 201 releases the block of the song playback interrupt (step S1209 in FIG. 13), and then ends the chord lesson playback process of step S1004 in FIG. 10 illustrated in the flowchart in FIG.

[0159] As described above, according to the second embodiment of the chord lesson reproducing process, the performer can recognize that he or she has pressed a key 101 in the chord key range that is not a constituent note of the correct chord.

[0160] Fig. 14 is a flow chart showing a detailed example of the third embodiment of the chord lesson reproducing process in step S1004 of Fig. 10. This process is a control process executed so that the performer can learn the chord part. The same step numbers as in Fig. 12 are given to the steps that perform the same processes as in the detailed example of the first embodiment of the chord lesson reproducing process shown in Fig. 12.

[0161] Therefore, the processes in steps S1201, S1202, and S1203 in FIG. 13 are the same as those in the first embodiment in FIG.

[0162] When a key is pressed in the chord key range (the determination in step S1203 in FIG. 14 is YES), the CPU 201 issues to the sound source LSI 210 sound generation control data instructing a note-on based on the pressed key note notified by the detection unit 204 (step S1401). As a result, the sound source LSI 210 generates a musical tone corresponding to the pressed key 101.

[0163] Next, similarly to the case of FIG. 12, CPU 201 performs a chord determination as to whether or not the correct chord can be determined with the key presses detected so far (step S1204 in FIG. 14), and determines whether or not the correct chord has been determined (step S1205 in FIG. 14).

[0164] If the correct chord cannot be determined (the determination in step S1205 is NO), the CPU 201 executes an evaluation voice pronunciation process similar to that in step S1207 in FIG. 12 (step S1207 in FIG. 14), and then returns to the key press waiting state in step S1203 in FIG. 14.

[0165] If the correct chord has been confirmed (determination in step S1205 is YES), the CPU 201 issues to the sound source LSI 210 sound generation control data instructing the muting of the musical tones currently being generated based on the key depressions up to this point in step S1401.

[0166] Next, CPU 201 executes the sounding process of the correct chord in the same manner as in FIG. 12 (step S1208 in FIG. 14).

[0167] 12, CPU 201 releases the block of the song playback interrupt (step S1209 in FIG. 14), and then ends the chord lesson playback process of step S1004 in FIG. 10 illustrated in the flowchart in FIG.

[0168] As described above, according to the third embodiment of the chord lesson playback process, the correct chord constituent notes can be played as a lesson while unnecessary sounds generated when the chord is played incorrectly are muted, thereby preventing the player from feeling uncomfortable.

[0169] The following supplementary notes are further disclosed regarding the above-described embodiment. (Appendix 1) Multiple keys and A detection unit for detecting the operation of the key; A control unit; The control unit includes: a determination process for guiding a key corresponding to a chord in accordance with a progression of the chord of the music piece, and determining whether or not the key pressing is correct based on a relationship between the constituent notes of the chord and the key detected by the detection unit; a pronunciation process for making a pronunciation corresponding to the incorrect answer when the result of the judgment process is incorrect; A musical instrument that performs the above. (Appendix 2) The performance device according to claim 1, wherein the control unit, in the sound generation process, generates a sound corresponding to the incorrect answer by generating a constituent note of an incorrect chord determined by one or more keys whose pressing is detected. (Appendix 3) The control unit, in the sound generation process, If the key whose depression is detected is not included in the plurality of keys constituting the correct answer of the determination process, a musical tone corresponding to the key whose depression is detected is generated; If the result of the determination process is correct, the constituent notes of the chord are sounded. 2. A musical performance device as described in claim 1. (Appendix 4) The control unit, in the sound generation process, generating a musical tone corresponding to the key whose depression has been detected by the detection unit; When the determination result of the determination process is correct, the musical tone being sounded is muted, and then the constituent tones of the chord are sounded. 2. A musical performance device as described in claim 1. (Appendix 5) A performance device as described in any one of appendices 1 to 4, wherein the control unit further executes a process of sounding an evaluation sound corresponding to the degree of inaccuracy when the judgment result of the judgment process is inaccurate. (Appendix 6) 6. A performance device as described in any one of appendices 1 to 5, wherein the guide illuminates keys that the performer should press. (Appendix 7) 7. The performance device according to claim 1, wherein the guide displays on a display device the keys that the performer should press. (Appendix 8) 8. The performance device according to claim 1, wherein the guide indicates, by voice guidance, the number of the finger corresponding to the key that the performer should press. (Appendix 9) 8. A performance device as described in any one of appendices 1 to 7, wherein the guide instructs the performer to press the note name of the key as a guide voice. (Appendix 10) a determination process for guiding a key corresponding to a chord in accordance with a chord progression of a piece of music, and determining whether or not the key press is correct based on a relationship between the constituent notes of the chord and the key detected by the detection unit; a pronunciation process for making a pronunciation corresponding to the incorrect answer when the result of the judgment process is incorrect; How to perform playing lessons. (Appendix 11) a determination process for guiding a key corresponding to a chord in accordance with a chord progression of a piece of music, and determining whether or not the key press is correct based on a relationship between the constituent notes of the chord and the key detected by the detection unit; a pronunciation process for making a pronunciation corresponding to the incorrect answer when the result of the judgment process is incorrect; A program for causing a computer to execute the following. [Explanation of symbols]

[0170] 101 key 102 LCD display section 103 Operation section 104 Speaker 110 keys 201 CPU 202 ROM 203 RAM 204 Detection unit 205 LED 206 LED Controller 207 LCD Controller 208 Switch Interface 209 Timer 210 Sound source LSI 211 D / A conversion section 212 Amplifier 213 System Bus

Claims

1. Multiple keys and A detection unit for detecting the operation of the key; a control unit that, in accordance with a progression of chords of a piece of music, determines whether or not the pressed key is a correct answer that determines the chord from the corresponding pitch based on a relationship between the constituent notes of the chord and the key detected by the detection unit that the pressed key is pressed; Equipped with The control unit is when the detection unit detects a key being pressed, generating a musical tone at the pitch of the key whose pressing is detected by the detection unit; If the key depression is correct, the musical performance device executes a sound generation process for generating the constituent tones of the chord after muting the musical tone being generated.

2. The musical performance device according to claim 1 , wherein the control unit executes a process of, when the key depression is incorrect, emitting a sound corresponding to the incorrect key depression.

3. 2. The performance device according to claim 1, wherein the key whose depression is detected by said detection section is a key located in a chord key range.

4. 2. The performance device according to claim 1, wherein a musical tone generated at the pitch of a key detected by said detection unit and a constituent note of a chord determined by the key detected by said detection unit are different from each other.

5. 2. The performance device according to claim 1, wherein, when a key press is detected by the detection unit, the control unit produces a musical tone at the pitch of the key whose press is detected by the detection unit, and then determines whether the key press is correct.

6. A sound generation process for generating musical tones; a determination process for determining whether the key depression is a correct answer that can determine the chord from the corresponding pitch based on a relationship between the constituent notes of the chord and the key depression detected by the detection unit in accordance with the progression of the chord of the music piece; Run When the detection unit detects a key depression in the sound generation process, a musical tone is generated at a pitch of the key whose depression is detected by the detection unit; When the determination process determines that the key depression is correct, the musical tone being sounded is muted and then the constituent tones of the chord are sounded.

7. A sound generation process for generating musical tones; a determination process for determining whether the key depression is a correct answer that can determine the chord from the corresponding pitch based on a relationship between the constituent notes of the chord and the key depression detected by the detection unit in accordance with the progression of the chord of the music piece; Run When the detection unit detects a key depression in the sound generation process, a musical tone is generated at a pitch of the key whose depression is detected by the detection unit; When the key depression is determined to be correct in the determination process, the musical tone being sounded is muted, and then the constituent tones of the chord are sounded. A program for causing a computer to execute the following.

Citation Information

Patent Citations

  • Electronic musical instrument

    JP1994067653A

  • Hearing training device

    JP2001100630A

  • Electronic musical instrument, automatic accompaniment method, computer program, and computer-readable recording medium

    JP2004045528A

  • Electronic musical instrument

    JP2004101979A

  • Code teaching apparatus and code teaching program

    JP2007156308A