Information processor, electronic musical instrument, sound generation control method nad program
The information processing device addresses the challenge of correcting pronunciation timing in musical instruments by detecting performance operations relative to sound timings in songs, ensuring accurate pitch and timing alignment, and preventing unwanted sound production.
Patent Information
- Application Number
- JP2023179123
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-17
- Publication Date
- 2025-04-30
AI Technical Summary
Existing technologies fail to appropriately correct the timing of pronunciation corresponding to performance operations in musical instruments, especially for beginners who struggle to perform at the right timing.
An information processing device that detects performance operations within specific intervals relative to the sound timing in a song, and adjusts the pronunciation timing accordingly, ensuring correct pitch and timing alignment with the music.
Effectively corrects the timing of pronunciation based on the music's timing, enabling even beginners to perform at the correct timing, while preventing unnecessary sound production if the user is not actively playing.
Smart Images

Figure 2025068977000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing device, an electronic musical instrument, a sound generation control method, and a program. [Background technology]
[0002] The performance of a piece of music requires the skill to play the pitches specified in the score at the timing specified in the score. Experienced performers may intentionally shift the timing of their performance operations from the exact timing specified in the score to express a so-called "groove," but the basis is to first perform at the timing specified in the score. However, it is extremely difficult for beginners to perform with perfect timing, and they may end up performing too early or too late, resulting in a poor performance.
[0003] As a technology for supporting beginners in playing, for example, Patent Document 1 describes an electronic musical instrument that controls the generation of musical tones according to performance data when a predetermined time has elapsed from the timing to play in a specific section set in the performance data. In the technology described in Patent Document 1, for specific sections that the performer is not good at, automatic performance is performed instead of the performer's manual performance, allowing the performer to play the entire song smoothly from start to finish. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2007-72387 A Summary of the Invention [Problem to be solved by the invention]
[0005] However, the performance assistance described in Patent Document 1 only automatically plays certain sections that the performer is weak at, instead of the performer manually playing them, and is not able to appropriately correct the pronunciation timing corresponding to the performance operations based on the pronunciation timing in the music piece.
[0006] An object of the present invention is to make it possible to appropriately correct the timing of sound generation corresponding to a performance operation based on the timing of sound generation in a musical piece. [Means for solving the problem]
[0007] In order to solve the above problems, the information processing device of the present invention comprises: when a performance operation is detected in a pre-touch section between a predetermined time before a sound generation timing of a musical tone in a piece of music and the sound generation timing, a sound generation unit generates a sound corresponding to the performance operation at the sound generation timing; a control unit that, when a performance operation is not detected in the first push section and a performance operation is not detected at the sound generation timing, controls the sound generation unit not to generate sound at the sound generation timing; Equipped with. Effect of the Invention
[0008] According to the present invention, the timing of sound generation corresponding to a performance operation can be appropriately corrected based on the timing of sound generation in a musical piece. [Brief description of the drawings]
[0009] [Figure 1] 1 is a block diagram showing a functional configuration of an information processing device according to an embodiment of the present invention; [Diagram 2] 11A and 11B are diagrams for explaining a timing control operation in the performance support function. [Diagram 3] 2 is a flowchart showing the flow of main processing executed by the CPU of FIG. 1. [Figure 4]4 is a flowchart showing the process of MIDI data processing A during performance support, which is executed in step S104 of FIG. 3 when the performance support function is on in the first embodiment. [Diagram 5] 4 is a flowchart showing the flow of tick processing A executed by the CPU of FIG. 1 in the first embodiment. [Figure 6] 10 is a flowchart showing the process B for MIDI data processing during performance support, which is executed in step S104 of FIG. 3 when the performance support function is on in the second embodiment. [Figure 7] 13 is a flowchart showing the flow of tick processing B executed by the CPU of FIG. 1 in the second embodiment. [Figure 8] 13A to 13C are conceptual diagrams for explaining a performance support operation in the second embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Hereinafter, the embodiments of the present invention will be described with reference to the drawings. However, the embodiments described below are subject to various technically preferable limitations for implementing the present invention. Therefore, the technical scope of the present invention is not limited to the following embodiments and illustrated examples.
[0011] <First embodiment> [Configuration of information processing device 1] First, the configuration of an information processing device 1 according to a first embodiment of the present invention will be described. The information processing device 1 is a device for supporting a user (player) in playing an electronic musical instrument 2 connected via a Musical Instrument Digital Interface (MIDI) interface 107.
[0012] As shown in FIG. 1, the information processing device 1 is configured to include a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, a storage unit 104, a display unit 105, an operation unit 106, a MIDI interface 107, a sound source 108, a DAC (Digital Analog Converter) 109, an output unit 110, etc., and each unit is connected by a bus 112.
[0013] The CPU 101 (processor) is a computer that controls each unit of the information processing device 1, and functions as a control unit. The CPU 101 reads out a specified program from among the programs stored in the ROM 102 or the storage unit 104, loads it in the RAM 103, and executes various processes in cooperation with the loaded program. Note that the CPU 101 may be multiple CPUs, and multiple processes executed by the CPU 101 may be executed by multiple CPUs.
[0014] The ROM 102 stores programs and various data. The RAM 103 provides a working memory space for the CPU 101 and temporarily stores data.
[0015] The storage unit 104 is configured with a non-volatile semiconductor memory such as a flash memory, a HDD (Hard Disk Drive), etc. The storage unit 104 stores programs, various data, etc. The storage unit 104 is not limited to being built into the information processing device 1, and may include an external recording medium that is detachable from the information processing device 1, such as an external HDD or a USB memory.
[0016] In this embodiment, music data (e.g., MIDI data) of a plurality of music pieces is stored in the storage unit 104. The music data includes, for example, information on the sounding timing (time from the start of the music piece), pitch, velocity value (strength), and duration (tone) of each musical tone included in the music piece.
[0017] The display unit 105 is configured with an LCD (Liquid Crystal Display), an EL (Electro Luminescence) display, or the like, and performs various displays according to display information instructed by the CPU 101.
[0018] The operation unit 106 is composed of a plurality of push button switches, etc. The operation unit 106 detects the operation of the push button switches and outputs an operation signal to the CPU 101. In this embodiment, the operation unit 106 is configured with a push button switch, but the operation unit 106 may also be configured to include a touch panel or the like attached to the display unit 105 and to output an operation signal from the touch panel to the CPU 101.
[0019] The MIDI interface 107 is connected to the electronic musical instrument 2 and transmits and receives data to and from the electronic musical instrument 2 in accordance with the MIDI standard.
[0020] The sound source 108 , in accordance with an instruction from the CPU 101 , reads out waveform data (audio data) prestored in the ROM 102 or generates waveform data and outputs it to the DAC 109 . The DAC 109 performs D / A conversion on the waveform data output from the sound source 108, and outputs analog sound. The output unit 110 includes an amplifier and a speaker, and amplifies and outputs the analog sound (musical instrument sound, etc.) input from the DAC 109. The sound source 108 , the DAC 109 , and the output unit 110 constitute a sound generating unit 111 .
[0021] The electronic musical instrument 2 is, for example, a keyboard instrument equipped with a keyboard 201 consisting of a plurality of keys (performance operators). The electronic musical instrument 2 outputs MIDI data (note data such as a note-on event and a note-off event) to the information processing device 1 via a MIDI interface (not shown) each time any key on the keyboard 201 is pressed or released. For example, the electronic musical instrument 2 outputs a note-on event (including pitch and velocity information) when any key on the keyboard 201 is pressed. When any key that is being pressed is released, the electronic musical instrument 2 outputs a note-off event (including pitch, etc.). The electronic musical instrument 2 also outputs MIDI data (for example, information such as control change and program change) in response to operations of an operation unit (not shown) to the information processing device 1 via a MIDI interface (not shown).
[0022] [Operation of information processing device 1] Next, the operation of the information processing device 1 in this embodiment will be described. In the information processing device 1, when the performance support function is set to ON by the operation unit 106, the pitch and timing of the performance operation by the user are corrected so that the musical tones (notes) constituting the selected music piece are generated at the correct timing and pitch. Note that in this application, the performance operation refers to an operation for generating musical tones, that is, a key pressing operation (note-on).
[0023] 2 is a diagram for explaining the timing control operation in the performance support function. On the time axis shown in Fig. 2, it is assumed that the time of the musical piece progresses from left to right. In FIG. 2, a solid circle indicates the sounding timing (the timing at which the note should be sounded) of one of the notes (musical sounds) that make up the melody of a piece of music. The note that should be sounded at the sounding timing is called the target note. A dotted circle indicates a delayed sounding timing. The delayed sounding timing is a timing that is set a predetermined time after the sounding timing, and is the timing at which the target note is sounded if no performance operation corresponding to the target note is detected from the advance pressing section described below to this timing. Here, the delayed sounding timing is an extremely short moment, and is not the timing at which the note should be sounded by the piece of music, so the timing of the note-on operation by the user can be considered to have a slight time difference from the delayed sounding timing.
[0024] 2, in the performance support function, the section between a predetermined time before the sounding timing and the sounding timing is defined as a pre-press section, the section between the sounding timing and the delayed sounding timing is defined as a delayed sounding standby section (section A), and the section between the delayed sounding timing and the beginning of the pre-press section of the next note is defined as section B. The pre-press section, section A, delayed sounding timing, and section B are set in the part of the music piece that is the target of performance support (in this embodiment, the melody).
[0025] When the performance support function is set, when the CPU 101 detects a performance operation by the user in the first push section (when a note-on event is input from the electronic musical instrument 2), the CPU 101 immediately holds the target note corresponding to the performance operation without sounding it, and when the sounding timing of the target note in the music piece is reached, the CPU 101 causes the sounding unit 111 to sound the target note at the correct pitch according to the music piece. If a performance operation is not detected until the sounding timing and a performance operation is detected in the A section, the CPU 101 causes the sounding unit 111 to sound the target note at the correct pitch at the timing when the performance operation is detected. If a performance operation is not detected from the first push section to the A section, the CPU 101 causes the sounding unit 111 to sound the target note at the correct pitch at the delayed sounding timing. If a performance operation is detected in the B section, the CPU 101 controls not to sound the note corresponding to the first performance operation in the B section, and if a performance operation is detected in the B section after that, the CPU 101 causes the sounding unit 111 to sound the note at the pitch according to the performance operation at the timing when the performance operation is detected. When sound is generated at the delayed sound generation timing, and a performance operation is not detected until the next delayed sound generation timing, the CPU 101 controls so that sound is not generated at the next delayed sound generation timing.
[0026] To summarize the above operations, in the performance support function, if a performance operation is detected in the first press section, a musical tone is generated at the sound generation timing, if a performance operation is detected in section A, a musical tone is generated at the performance operation timing, and if no performance operation is detected in section A, a musical tone is generated at the delayed sound generation timing. If a musical tone is generated at the delayed sound generation timing, and if a performance operation by the user is not detected by the delayed sound generation timing of the next target note, the delayed sound generation is not performed for the next target note. In other words, if the user does not continue playing, the musical tone is not generated.
[0027] Here, the time lengths of the first push section and section A may be determined arbitrarily, but it is desirable for the CPU 101 to set them according to the note length of the music piece. For example, if the music piece is mainly composed of eighth notes, the first push section is set to a 16th note length, which is half of an eighth note, and section A is set to a 32nd note length, which is half of that. In this case, a performance operation before the sounding timing is sounded at the sounding timing, and even if the performance operation is delayed, it will be sounded within a 32nd note length from the sounding timing. A delay of about the length of a 32nd note is within the range that can be considered as a correct performance. In this way, section A is set to a length that can be considered as a correct sounding timing.
[0028] 3 is a flowchart showing the flow of main processing executed after power-on in the information processing device 1. The main processing is executed by the CPU 101 in cooperation with a program stored in the ROM 102 or the storage unit 104.
[0029] In the main process, first, the CPU 101 executes an initialization process (step S101). In the initialization process, the components of the information processing device 1 are initialized, and variables used in various processes are initialized (for example, a sound reservation flag, a sound completion flag, and a playing flag, which will be described later, are turned on, etc.).
[0030] Next, the CPU 101 executes an operation state acquisition process (step S102). In the operation state acquisition process, the CPU 101 acquires the operation states of various switches of the operation unit 106 .
[0031] Next, the CPU 101 executes the function processing (step S103). In the function processing, the CPU 101 executes a function corresponding to the operation state of the switches on the operation unit 106, based on the operation state of the switches acquired in the operation state acquisition processing. For example, when a switch for selecting a piece of music is pressed, the CPU 101 loads the music data of the piece of music selected by pressing the switch from the storage unit 104 to the RAM 103. Also, for example, when a switch for turning on the performance support function is pressed, the CPU 101 turns on the performance support function. When a piece of music is selected and a switch for instructing the start of performance is pressed with the performance support function on, the CPU 101 starts the progression of the selected piece of music. For example, the CPU 101 starts the reproduction of musical tones of a part (here, accompaniment) other than the part played by the user (here, melody) based on the music data loaded in the RAM 103. If none of the switches are operated, the CPU 101 proceeds to step S104.
[0032] Next, the CPU 101 executes a MIDI data process (step S104). In the MIDI data processing, the CPU 101 processes the MIDI data input from the electronic musical instrument 2 via the MIDI interface 107. Details will be described later. If no MIDI data is input from the electronic musical instrument 2, the CPU 101 proceeds to step S105.
[0033] Next, CPU 101 executes sound generation processing (step S105). In the sound generation process, the CPU 101 drives the sound source 108 based on sound generation instruction information and sound mute instruction information output to the sound source 108 in MIDI data processing or the like, and causes the sound generation unit 111 to generate or mute musical tones. If there is no musical tone to be sounded or muted, the CPU 101 proceeds to step S106.
[0034] Next, CPU 101 determines whether or not the power switch of operation unit 106 has been pressed (step S106). When it is determined that the power switch of the operation unit 106 has not been pressed (step S106; N), the CPU 101 returns to step S102. When it is determined that the power switch of the operation unit 106 has been pressed (step S106; YES), the CPU 101 ends the main processing.
[0035] The MIDI data processing executed in S104 of FIG. 3 will now be described. When the performance support function is not set to ON, the CPU 101 outputs, in MIDI data processing, for example, sound generation instruction information, sound muting instruction information, and the like based on the MIDI data input from the electronic musical instrument 2 to the sound source 108. When the performance support function is set to ON, the CPU 101 executes the MIDI data processing during performance support shown in FIG.
[0036] 4 is a flowchart showing the flow of MIDI data processing during performance support in this embodiment. The MIDI data processing during performance support is executed by cooperation between the CPU 101 and a program stored in the ROM 102 or the storage unit 104. Note that, to distinguish it from the MIDI data processing during performance support in the second embodiment, the MIDI data processing during performance support in this embodiment is referred to as MIDI data processing A during performance support.
[0037] In MIDI data processing A during performance support, CPU 101 first determines whether or not the input MIDI data is a note-on event (step S201).
[0038] When it is determined that the input MIDI data is a note-on event (step S201; YES), the CPU 101 determines whether the position where the music is currently progressing is within the first push section (step S202). If it is determined that the current position of the music is within the first-push section (step S202; YES), that is, if it is determined that a note-on event has been input within the first-push section (a performance operation has been detected within the first-push section), CPU 101 turns on the sound reservation flag (step S203). The sound generation reservation flag is a flag indicating whether or not sound generation at the next sound generation timing is reserved. If sound generation at the next sound generation timing is reserved, the sound generation reservation flag is turned on.
[0039] Next, CPU 101 turns on the already-sounded flag (step S204), and proceeds to step S205. The already-sounded flag is a flag used to determine whether or not to sound a sound at the delayed sounding timing or in section B. For example, the already-sounded flag is turned on when sounding is reserved or sounded in the first push section to section A, or when sounding is performed at the delayed sounding timing.
[0040] On the other hand, when it is determined that the position where the music is currently progressing is not within the first push section (step S202; NO), the CPU 101 proceeds to step S205.
[0041] In step S205, the CPU 101 determines whether or not the current position of the music piece is within the sound generation timing or the A section (delayed sound generation standby section) (step S205). When it is determined that the current position of the music is not at the sounding timing or within section A (step S205; NO), the CPU 101 proceeds to step S208.
[0042] On the other hand, if it is determined that the current position of the music piece is within the sounding timing or section A (step S205; YES), that is, if it is determined that the input note-on event was input within the sounding timing or section A (the performance operation was detected within the sounding timing or section A), the CPU 101 outputs sound generation instruction information for the sound generation of the pitch that should be generated at that time to the sound source 108 of the sound generation unit 111, regardless of the note number (pitch) specified by the note-on event (step S206).Then, the CPU 101 turns on the sound generation flag (step S207), and proceeds to step S208. The pitch to be sounded at that time is the pitch to be sounded at that timing in the ongoing music piece if the current time is the sounding timing, and is the pitch to be sounded at the immediately preceding sounding timing if the current time is section A. In the sounding unit 111, sound is produced based on the sounding instruction information in the sounding process of step S105 in FIG. In other words, no matter what pitch the user plays, the sound will be generated at the correct pitch and timing as it should be in the music. The sound generated in section A is slightly delayed from the timing of the sound generated in the music, but within a range that can be considered to be correct timing.
[0043] In step S208, CPU 101 determines whether the current position of the music is within section B (step S208). When it is determined that the current position of the music is not within section B (step S208; NO), the CPU 101 proceeds to step S212.
[0044] When it is determined that the current position of the music piece is within section B (step S208; YES), CPU 101 determines whether or not the already-sounded flag is on (step S209). If it is determined that the already-sounded flag is not on (step S209; NO), CPU 101 outputs sound generation instruction information instructing sound source 108 to sound the pitch of the note number specified by the note-on event (step S210), and proceeds to step S211. In the sound generation unit 111 including the sound source 108, sound is generated based on the sound generation instruction information in the sound generation process of step S105 in FIG.
[0045] On the other hand, if it is determined that the already-sounded flag is on (step S209; YES), CPU 101 proceeds to step S211.
[0046] Here, if a musical tone that should be sounded in the music is sounded during the first push section to section A, or during the delayed sounding timing in the tick process described later, the sounding already-sounded flag is on in step S209, so no sounding instruction corresponding to the note-on event (performance operation) is made in step S210. However, since the sounding already-sounded flag is turned off in the next step S211, if a note-on event is input next in section B, a sounding instruction corresponding to that note-on event is made.
[0047] That is, if a musical tone is sounded during the first push section to section A, or at the delayed sounding timing in the tick processing described later, the sounding corresponding to the performance operation detected in section B is canceled only once afterwards (no sounding is produced by the sounding unit 111). This is because the first performance operation in section B is considered to be a delayed performance operation caused by the user's inexperienced performance operation, and a musical tone of the correct pitch has already been sounded at the correct timing, so there is no need to sound it again. However, the performance operation after the cancellation of one sounding must be sounded because it is considered to be an intentional operation by the user as a performance expression. Therefore, only the sounding corresponding to the first note-on event in section B is canceled.
[0048] In step S211, the CPU 101 turns off the pronunciation completion flag (step S211), and the process proceeds to step S212.
[0049] In step S212, the CPU 101 turns on the playing flag (step S212), and the process proceeds to step S105 in FIG. The playing flag is a flag for the CPU 101 to determine whether or not the user is continuing a performance operation. When a note-on event is input, that is, when a performance operation on the electronic musical instrument 2 is detected, the playing flag is turned on.
[0050] On the other hand, if it is determined that the input MIDI data is not a note-on event (step S201; NO), the CPU 101 executes a process based on the input MIDI data (step S213), and proceeds to step S105 in FIG. For example, when the input MIDI data is a note-off event, the CPU 101 outputs sound muting instruction information corresponding to the pitch specified by the note-off event to the sound source 108 of the sound generation unit 111. When the input MIDI data is control change or program change information, the CPU 101 changes various settings such as volume and tone color based on the input MIDI data.
[0051] In the information processing device 1, a tick process is executed at a predetermined time interval. The tick process is started at a predetermined time interval by a timer interrupt while the power is on. In this embodiment, the cycle of the timer interrupt is, for example, 1 millisecond.
[0052] 5 is a flowchart showing the flow of tick processing. The tick processing is executed by cooperation between the CPU 101 and a program stored in the ROM 102 or the storage unit 104. Note that the tick processing in this embodiment is referred to as tick processing A to distinguish it from the tick processing in the second embodiment.
[0053] In tick processing A, the CPU 101 determines whether or not a piece of music is in progress (step S301). For example, if a song is stopped or if no song has been selected to be played, it is determined that a song is not in progress. When it is determined that the music piece is not in progress (step S301; NO), the CPU 101 ends the tick process.
[0054] When it is determined that a piece of music is in progress (step S301; YES), the CPU 101 executes a piece of music progression process (step S302). In the music progression process, the CPU 101 progresses the music by a time period corresponding to the time difference (progressed time) between the previous tick process and the current tick process, for example. In this embodiment, the CPU 101 causes the sound generation unit 111 to generate sounds that should be generated during the progression time in the accompaniment of the music, and processes events such as program changes and control changes that should be performed during the progression time.
[0055] Next, CPU 101 determines whether the current position of the music piece is the timing for sounding the melody (step S303). When it is determined that it is time to sound the melody in the music piece (step S303; YES), CPU 101 further determines whether or not the sound reservation flag is on (step S304). Here, if a note-on event is input (a performance operation is detected) in the first-press section, the sound generation reservation flag is turned on. When it is determined that the sound production reservation flag is on (step S304; YES), the CPU 101 outputs sound production instruction information instructing sound production at the pitch that should be produced at this timing in the music piece to the sound source 108 (step S305). In the sound generation unit 111, sound generation is performed based on the sound generation instruction information in the sound generation process in step S105 of FIG. That is, in response to a note-on event (performance operation) in the first-press section, a musical tone of the correct pitch of the music piece is generated at the exact timing (tone generation timing) at which it should be generated.
[0056] Next, CPU 101 turns off the sound generation reservation flag (step S306), and proceeds to step S307.
[0057] If it is determined in step S303 that the current position of the music is not the timing for the melody to be pronounced (step S303; NO), or if it is determined in step S304 that the pronunciation reservation flag is not on (step S304; NO), CPU 101 proceeds to step S307.
[0058] In step S307, CPU 101 determines whether or not the current position of the music piece is at a delayed sound generation timing (step S307). When it is determined that the current position of the music piece is at the delayed sound generation timing (step S307; YES), the CPU 101 determines whether the playing flag is on or not (step S308). That is, the CPU 101 determines whether or not the user is continuing the performance operation. When it is determined that the playing flag is on (step S308; YES), the CPU 101 determines whether or not the already-sounded flag is on (step S309). When it is determined that the already-pronounced flag is not on (step S309; NO), the CPU 101 outputs to the sound source 108 sound generation instruction information for a sound generation at the pitch that should have been generated at the immediately preceding sound generation timing in the music piece (step S310). In the sound generation unit 111, sound generation is performed based on the sound generation instruction information in the sound generation process in step S105 of FIG. That is, even if the user's performance operation is not completed in time for the delayed sounding timing that is considered to be the correct sounding timing, the sound is generated at the correct pitch of the music piece at the delayed sounding timing.
[0059] Next, CPU 101 turns on the already-sounded flag (step S311), turns off the playing flag (step S312), and ends the tick process. Here, the fact that a sound was generated at the delayed sound generation timing (sound generation instruction information was output in step S310) means that no performance operation by the user was detected between the first push section and the delayed sound generation timing. Therefore, in step S312, CPU 101 sets the playing flag to OFF, and controls so that sound is not generated at the delayed sound generation timing until a performance operation is detected thereafter. In other words, if the user does not perform a performance operation thereafter, a musical tone of the correct pitch will not be automatically generated at the delayed sound generation timing thereafter. On the other hand, if any performance operation is performed, the playing flag is turned ON (step S212 in FIG. 4), and delayed sound generation support continues. This makes it possible to prevent musical tones from being generated even though the user is not continuing to play.
[0060] On the other hand, in step S307, if it is determined that the current progression position of the music piece is not at the delayed pronunciation timing (step S307; NO), if it is determined that the playing flag is not on (step S308; NO), or if it is determined that the already-pronounced flag is on (step S309; YES), CPU 101 ends the tick processing.
[0061] In this way, in the first embodiment, the timing of the sound corresponding to the performance operation can be appropriately corrected based on the sound timing in the music piece. Therefore, even a user with inexperienced performance technique can perform at the correct timing. In addition, since the musical tones will not be generated unless the user continues playing, it is possible to prevent the musical tones from being generated even when the user is not playing, and to prevent the user from losing the feeling that he or she is playing by himself or herself.
[0062] <Second embodiment> Next, a second embodiment of the present invention will be described. The configuration of the information processing device 1 in the second embodiment is similar to that described in the first embodiment, so the description will be used here and the operation of the second embodiment will be described below.
[0063] In the second embodiment, the information processing device 1 executes the main processing described in the first embodiment with reference to FIG. 3, but the MIDI data processing and tick processing during performance support, which are executed in step S104 when the performance support function is set to ON, are different from those in the first embodiment. The MIDI data processing and tick processing during performance support in the second embodiment will be described below. Note that, in order to distinguish it from the MIDI data processing during performance support in the first embodiment, the MIDI data processing during performance support in this embodiment will be referred to as MIDI data processing B during performance support. Also, the tick processing in this embodiment will be referred to as tick processing B.
[0064] 6 is a flowchart showing the flow of MIDI data processing B during performance support in the second embodiment. This processing is executed by the CPU 101 in cooperation with a program stored in the ROM 102 or the storage unit 104.
[0065] In MIDI data processing B during performance support, first, CPU 101 determines whether or not the input MIDI data is a note-on event (step S401).
[0066] When it is determined that the input MIDI data is a note-on event (step S401; YES), the CPU 101 determines whether the position where the music is currently progressing is within the first push section (step S402). When it is determined that the current position of the music is within the first push section (step S402; YES), the CPU 101 executes the processes of steps S403 to S404, and proceeds to step S405. The processes of steps S403 to S404 are similar to the processes of steps S203 to S204 in FIG. 4, and therefore the description thereof will be cited.
[0067] On the other hand, when it is determined that the position where the music is currently progressing is not within the first push section (step S402; NO), the CPU 101 proceeds to step S405.
[0068] In step S405, the CPU 101 determines whether or not the current position of the music piece is within the sound generation timing or the A section (delayed sound generation standby section) (step S405). When it is determined that the current position of the music piece is not at the sounding timing or within section A (step S405; NO), the CPU 101 proceeds to step S408.
[0069] On the other hand, if it is determined that the current position of the music is within the sounding timing or section A (step S405; YES), CPU 101 executes the processes of steps S406 to S407, and proceeds to step S408. The processes of steps S406 to S407 are similar to the processes of steps S206 to S207 in FIG. 4, and therefore the same description will be used.
[0070] In step S408, the CPU 101 determines whether the current position of the music is within section B (step S408). When it is determined that the current position of the music is not within section B (step S408; NO), CPU 101 proceeds to step S412.
[0071] When it is determined that the current position of the music piece is within section B (step S408; YES), CPU 101 determines whether the already-sounded flag is on (step S409). If it is determined that the pronunciation completed flag is on (step S409; YES), CPU 101 proceeds to step S411. When it is determined that the pronunciation completion flag is not on (step S409; NO), CPU 101 executes the process of step S410 (step S410), and proceeds to step S411. The process of step S410 is similar to the process of step S210 in FIG. 4, and therefore the description thereof will be cited.
[0072] In step S411, the CPU 101 turns off the pronunciation completion flag (step S411), and the process proceeds to step S412.
[0073] In step S412, the CPU 101 turns on the playing flag (step S412). Next, the CPU 101 sets the non-performance counter to 0 (step S413), and proceeds to step S105 in FIG. The non-performance counter counts the number of notes that are generated with delayed sounding timing without a performance operation being detected. When a note-on event is input, the non-performance counter is reset to 0.
[0074] On the other hand, if it is determined that the input MIDI data is not a note-on event (step S401; NO), the CPU 101 executes a process based on the input MIDI data (step S414), and proceeds to step S105 in FIG.
[0075] 7 is a flowchart showing the flow of tick processing in the second embodiment. Tick processing B is executed by the CPU 101 in cooperation with a program stored in the ROM 102 or the storage unit 104.
[0076] In the tick process B, first, the CPU 101 determines whether or not a piece of music is being played (step S501). When it is determined that the music piece is not in progress (step S501; NO), the CPU 101 ends the tick process B.
[0077] When it is determined that a piece of music is in progress (step S501; YES), the CPU 101 executes a piece of music progression process (step S502).
[0078] Next, CPU 101 determines whether the current position of the music piece is the timing for sounding the melody (step S503). If it is determined that it is time to sound the melody in the music piece (step S503; YES), CPU 101 further determines whether or not the sound reservation flag is on (step S504). When it is determined that the sound production reservation flag is on (step S504; YES), CPU 101 executes the processes of steps S505 to S506, and proceeds to step S507. The processes of steps S505 to S506 are similar to the processes of steps S305 to S306 in FIG. 5, and therefore the description thereof will be cited.
[0079] If it is determined in step S503 that the current position of the music is not the timing for the melody to be pronounced (step S503; NO), or if it is determined in step S504 that the pronunciation reservation flag is not on (step S504; NO), CPU 101 proceeds to step S507.
[0080] In step S507, CPU 101 determines whether or not the current position of the music piece is at a delayed sound generation timing (step S507). When it is determined that the current position of the music piece is at the delayed sound generation timing (step S507; YES), the CPU 101 determines whether the playing flag is on or not (step S508). When it is determined that the playing flag is on (step S508; YES), the CPU 101 determines whether or not the already-sounded flag is on (step S509). When it is determined that the already-pronounced flag is not on (step S509; NO), the CPU 101 outputs to the sound source 108 sound generation instruction information for a sound generation at the pitch that should have been generated at the immediately preceding sound generation timing in the music piece (step S510).
[0081] Next, the CPU 101 turns on the already-sounded flag (step S511), and increments the non-performance counter (step S512). Next, the CPU 101 determines whether the non-performance counter is equal to or greater than 2 (step S513). When it is determined that the non-performance counter is not equal to or greater than 2 (step S513; NO), the CPU 101 ends tick process B. If it is determined that the non-performance counter is equal to or greater than 2 (step S513; YES), the CPU 101 turns off the performance flag (step S514) and ends tick process B.
[0082] Here, if the non-playing counter is 2 or more, that is, if two consecutive musical tones are automatically sounded at the delayed sounding timing, and no performance operation is detected between the first sound's advance section and the delayed sounding timing of the second sound, the playing flag is turned off. That is, after the delayed sounding of the second sound, no sound is produced at the delayed playing timing until a performance operation is detected. In other words, even if no performance operation is detected, up to two sounds are produced at the delayed sounding timing. When a performance operation is detected, the playing flag is turned on in step S412 of FIG. 6, and the non-playing counter is reset. That is, even if the performance operation is not in time for a fast phrase, if you continue playing after that, the sound will be automatically supported for the part where the performance operation was missed.
[0083] In this embodiment, if the user's performance operation is not detected for two consecutive notes, the subsequent musical notes are not generated at the delayed generation timing, but if the user's performance operation is not detected for three or more consecutive notes, the subsequent musical notes may not be generated at the delayed generation timing. However, if the number of notes is increased to three or four, the number of automatically generated notes will increase, and the user will feel less like he or she is playing the notes himself or herself, which is not preferable.
[0084] FIG. 8 is a conceptual diagram for explaining the performance support operation of the second embodiment. The sixteenth notes t1 to t8 in the upper part of Fig. 8 are the original sounding timings of the musical notes of the music piece. The quarter notes A to C in the lower part of Fig. 8 are the performance of the user. Since the user's performance A is performed before the original sounding timing t1, it is in the preceding section. Due to the sounding reservation flag, sounding by performance A is performed at timing t1. The musical tones with sounding timings t2 and t3 are automatically sounded by the performance support function. Since there was no performance operation by the user for two consecutive notes, the playing flag is temporarily turned off. However, the playing flag is turned on again by the user's performance B, and the sound at t4 is sounded by sounding reservation according to performance B, and the sounds at t5 and t6 that are not being played are automatically sounded at the delayed sounding timing. Since there was no performance operation by the user for two consecutive notes, the playing flag is temporarily turned off. However, the playing flag is turned on again by the user's performance C, and the sound at t7 is sounded by sounding reservation according to performance C, and the sound at t8 that is not being played is automatically sounded at the delayed sounding timing. In this way, even if a user can only perform quarter notes, the performance support function in the second embodiment allows the user to perform a piece of music that includes sixteenth notes. Furthermore, if the user does not continue performing, no sound is produced, so the user can get the feeling that he or she is performing the piece himself or herself.
[0085] As described above, when a performance operation is detected in a pre-push section between a predetermined time before the sounding timing of a musical sound in a musical piece and the sounding timing, the CPU 101 of the information processing device 1 causes the sound generation unit 111 to generate sound corresponding to the performance operation at the sounding timing. When a performance operation is not detected in the pre-push section and a performance operation is not detected at the sounding timing, the CPU 101 controls the sound generation unit 111 not to generate sound at the sounding timing. Therefore, the timing of the sound to be generated corresponding to the performance operation can be appropriately corrected based on the sound generation timing in the music piece. Specifically, when a performance operation is detected in a first-push section, the sound generation can be corrected to occur at the sound generation timing.
[0086] Furthermore, when a performance operation is detected between a sound generation timing in a piece of music and a delayed sound generation timing that is a predetermined time after the sound generation timing, the CPU 101 causes the sound generation unit 111 to generate a sound at the timing at which the performance operation was detected. Therefore, even if a performance operation is not detected by the sound generation timing, as long as the performance operation is detected by the delayed sound generation timing that can be regarded as the correct sound generation timing, it is possible to cause the sound generation unit 111 to generate sound at the timing when the performance operation is detected.
[0087] Furthermore, if no performance operation is detected during the period from the first push section to the delayed sound generation timing, the CPU 101 causes the sound generation unit 111 to generate a sound at the delayed sound generation timing. Therefore, even if a performance operation is not detected by the delayed sound generation timing, it is possible to cause the sound generation unit 111 to generate sound at the delayed sound generation timing that can be regarded as the correct sound generation timing.
[0088] Furthermore, if no performance operation is detected between the first push section and the delayed sounding timing, the CPU 101 causes the sounding unit 111 to produce sound at the delayed sounding timing, and then controls the sounding unit 111 not to produce sound at the delayed sounding timing corresponding to the sounding timing of the subsequent musical tone in the music piece until a performance operation is detected. Therefore, if the user does not continue playing, the sound will not be produced automatically, so that it is possible to prevent the sound from being produced even when the user is not playing, and to prevent the user from losing the feeling that he or she is playing the instrument himself or herself.
[0089] In addition, when two consecutive musical tones are sounded at delayed sounding timings in a song, and no performance operation is detected between the advance press section of the first tone and the delayed sounding timing of the second tone, the CPU 101 causes the sound producing unit 111 to sound at the delayed sounding timing of the second tone, and then controls the sound producing unit 111 not to sound at the delayed sounding timing corresponding to the sounding timing of the subsequent musical tone in the song until a performance operation is detected. Therefore, even if no performance operation is detected, up to two notes are produced with delayed pronunciation timing, so that even if the user's performance operation is not in time for a fast phrase, if the user continues playing, the part where the performance operation is missing will be automatically produced with delayed pronunciation timing.
[0090] In addition, when a musical sound that should be sounded at the sounding timing is sounded by the delayed sounding timing, and a performance operation is detected in the section between the delayed sounding timing and the beginning of the advance press section for the next sounding timing, the CPU 101 controls the sounding unit 111 not to sound the sound corresponding to the first performance operation detected in that section. Therefore, when the user's performance operation is delayed, it is possible to prevent a tone that has already been sounded from being sounded again at the correct timing.
[0091] Furthermore, the CPU 101 causes the sound generation unit 111 to generate sounds at the pitches that should be generated at the sound generation timings in the music piece, thereby enabling sounds to be generated at the correct pitches.
[0092] The contents described in the above first and second embodiments are preferred examples of the information processing device, electronic musical instrument, sound generation control method, and program according to the present invention, and the present invention is not limited to these.
[0093] For example, in the above embodiment, the correct pitch is generated regardless of the pitch of the key that is played, but it may be possible to generate the sound at the pitch of the key that is played and support only the sound generation timing. Also, the sound may be generated at a constant velocity, or may be generated at a velocity specified in the music data or at a velocity in the user's playing operation.
[0094] Also, for example, in the above embodiment, the information processing device 1 and the electronic musical instrument 2 are separate entities, but the functions and sound generation unit of the present invention implemented by the CPU 101 of the information processing device 1 may be provided in the electronic musical instrument 2.
[0095] Also, for example, in the above embodiment, the electronic musical instrument 2 is a keyboard instrument, but it may be another electronic musical instrument, such as a wind synthesizer, electric guitar, or MIDI violin.
[0096] Furthermore, in the above embodiment, an example has been described in which the present invention is applied to performance support for the melody of a piece of music, but the present invention may also be applied to performance support for other parts (for example, accompaniment).
[0097] In the above embodiment, a semiconductor memory such as a ROM or a hard disk is used as a computer-readable medium for the program according to the present invention, but the present invention is not limited to this example. As other computer-readable media, a portable recording medium such as a CD-ROM can be applied. Furthermore, a carrier wave can be applied as a medium for providing data of the program according to the present invention via a communication line.
[0098] Additionally, the detailed configuration and operation of the information processing device 1 may be modified as appropriate without departing from the spirit of the invention.
[0099] Although the embodiment of the present invention has been described above, the technical scope of the present invention is not limited to the above embodiment, but is defined based on the claims. Furthermore, the technical scope of the present invention also includes equivalent ranges that are made by adding modifications that are not related to the essence of the present invention from the claims. [Explanation of symbols]
[0100] 1. Information processing device 101 CPU 102 ROM 103 RAM 104 Storage section 105 Display section 106 Operation section 107 MIDI Interface 108 Sound Sources 109 DAC 110 Output section 111 Pronunciation Section 2. Electronic Instruments
Claims
1. when a performance operation is detected in a pre-touch section between a predetermined time before a sound generation timing of a musical tone in a piece of music and the sound generation timing, a sound generation unit generates a sound corresponding to the performance operation at the sound generation timing; a control unit that, when a performance operation is not detected in the first push section and a performance operation is not detected at the sound generation timing, controls the sound generation unit not to generate sound at the sound generation timing; An information processing device comprising:
2. The control unit is when a performance operation is detected between the sound generation timing and a delayed sound generation timing that is a predetermined time after the sound generation timing, the sound generation unit is caused to generate a sound at the timing when the performance operation is detected. The information processing device according to claim 1 .
3. The control unit is when no performance operation is detected during the period from the first push section to the delayed sounding timing, the sound generation unit is caused to generate sound at the delayed sounding timing. The information processing device according to claim 2 .
4. The control unit is when no performance operation is detected between the first push section and the delayed sounding timing, the sound generation unit is caused to generate a sound at the delayed sounding timing, and then, until a performance operation is detected, the sound generation unit is controlled not to generate a sound at the delayed sounding timing corresponding to the sounding timing of a subsequent musical tone in the music piece. The information processing device according to claim 3 .
5. The control unit is When two consecutive musical tones are generated at the delayed sounding timing in the music piece, and no performance operation is detected between the first pressing section of the first tone and the delayed sounding timing of the second tone, the sound generating unit is caused to generate sound at the delayed sounding timing of the second tone, and then, until a performance operation is detected, the sound generating unit is controlled not to generate sound at the delayed sounding timing corresponding to the sounding timing of the subsequent musical tone in the music piece. The information processing device according to claim 3 .
6. The control unit is When a musical sound that should be sounded at the sounding timing is sounded by the delayed sounding timing, and a performance operation is detected in a section between the delayed sounding timing and the beginning of the advance push section for the next sounding timing, control is performed so that the sounding unit does not sound the first performance operation detected in the section. The information processing device according to claim 2 .
7. The control unit is controlling the sound generating unit to generate a sound corresponding to a performance operation subsequent to the first performance operation; The information processing device according to claim 6.
8. An information processing device according to any one of claims 1 to 7; a performance operator for a user to perform a performance operation; An electronic musical instrument comprising:
9. The computer when a performance operation is detected in a pre-touch section between a predetermined time before a sound generation timing of a musical tone in a piece of music and the sound generation timing, a sound generation unit generates a sound corresponding to the performance operation at the sound generation timing; When a performance operation is not detected in the first push section and a performance operation is not detected at the sound generation timing, the sound generation unit is controlled not to generate sound at the sound generation timing. Sound control method.
10. Computer, when a performance operation is detected in a pre-touch section between a predetermined time before a sound generation timing of a musical tone in a piece of music and the sound generation timing, a sound generation unit generates a sound corresponding to the performance operation at the sound generation timing; a control unit that, when a performance operation is not detected in the first push section and a performance operation is not detected at the sound generation timing, controls the sound generation unit not to generate sound at the sound generation timing; A program to function as a
Citation Information
Patent Citations
Playing information processing device
JP1995152371A
Music performance assisting device and program
JP2007072387A
Music modification program and music modification apparatus
JP2009192619A
Performance assisting device
JP2010231052A
Electronic music instrument
JP2012132991A