Information processing device, electronic musical instrument, control method, and program
The information processing device allows users to play suitable parts during silent sections in electronic musical instruments by analyzing MIDI data and transitioning parts, addressing the limitation of forced listening in conventional instruments.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-20
- Publication Date
- 2026-04-02
AI Technical Summary
Conventional electronic musical instruments force users to listen to automatic performances during silent sections of a piece, limiting user interaction.
An information processing device that identifies silent sections in a musical piece and transitions the user's part to a predetermined part suitable for performance during these sections, using MIDI interface and analysis to determine suitable parts.
Enables users to play other parts during silent sections, enhancing user engagement and interaction.
Smart Images

Figure 2026056914000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus, an electronic musical instrument, a control method, and a program.
Background Art
[0002] Conventionally, there are electronic musical instruments that automatically play music including a part that plays a main melody such as a melody and a plurality of parts that play other accompaniments. There are also electronic musical instruments equipped with a performance guide function for the purpose of enabling a user to acquire the performance of the main melody part. Furthermore, as described in Patent Document 1, there are also electronic musical instruments that can select, by user operation, a part of a piece of music to which the performance guide function is applied (a performance part that the user plays) and a part of a piece of music that is automatically performed.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the conventional technology, the user had no choice but to listen to the automatic performance of other parts during the silent section where the performance part in the music was silent.
[0005] An object of the present invention is to enable a user to play other parts during a silent section where the part played by the user in a piece of music becomes silent.
Means for Solving the Problems
[0006] To solve the above problems, the information processing device of the present invention includes a control unit that searches for silent sections in a musical piece consisting of multiple parts in which the first part played by the user is silent, determines one of the parts other than the first part among the multiple parts to be played by the user in the silent section, and transitions the part played by the user from the first part to the second part when the silent section is reached during the progress of the musical piece. [Effects of the Invention]
[0007] According to the present invention, a user can play other parts in a song during silent sections where the user's part is silent. [Brief explanation of the drawing]
[0008] [Figure 1] This is a block diagram showing the functional configuration of an information processing apparatus according to an embodiment of the present invention. [Figure 2] This diagram schematically shows the main switches included in the control unit. [Figure 3] This diagram illustrates part transitions during silent sections. [Figure 4] Figure 1 is a flowchart showing the flow of the main processing performed by the CPU. [Figure 5] This is a flowchart showing the flow of the functional processing performed in step S403 of Figure 4. [Figure 6] This is a flowchart showing the flow of the music analysis process performed in step S513 of Figure 5. [Figure 7] This is a diagram illustrating a method for searching for silent sections. [Figure 8] This is a flowchart showing the flow of the silent section search process performed in step S601 of Figure 6. [Figure 9] This flowchart shows the flow of the preferred part setting process performed in step S602 of Figure 6. [Figure 10] This figure shows an example of suitable part transition data. [Figure 11] This flowchart shows the flow of the music progression process performed in step S404 of Figure 4. [Figure 12] This is a flowchart showing the flow of the preferred part transition process performed in step S1202 of Figure 11. [Modes for carrying out the invention]
[0009] The embodiments for carrying out the present invention will be described below with reference to the drawings. However, the embodiments described below are subject to various technically preferred limitations for carrying out the present invention. Therefore, the technical scope of the present invention is not limited to the embodiments and illustrated examples below.
[0010] First, the configuration of the information processing device 1 according to an embodiment of the present invention will be described. The information processing device 1 is a device for supporting the performance of an electronic musical instrument 2 connected via a MIDI (Musical Instrument Digital Interface) interface 107 by a user (performer).
[0011] As shown in Figure 1, the information processing device 1 is configured to include a CPU (Central Processing Unit) 101, ROM (Read Only Memory) 102, RAM (Random Access Memory) 103, storage unit 104, display unit 105, operation unit 106, MIDI interface 107, sound source 108, DAC (Digital Analog Converter) 109, output unit 110, etc., and each unit is connected by a bus 112.
[0012] The CPU 101 (processor) is a computer that controls each part of the information processing apparatus 1 and functions as a control unit. The CPU 101 reads out a specified program from the programs stored in the ROM 102 or the storage unit 104 and expands it in the RAM 103, and executes various processes in cooperation with the expanded program. Note that the CPU 101 may be a plurality of CPUs, and a plurality of CPUs may execute the plurality of processes executed by the CPU 101.
[0013] The ROM 102 stores programs and various data. The RAM 103 provides a working memory space for the CPU 101 and temporarily stores data.
[0014] The storage unit 104 is composed of a non-volatile semiconductor memory such as a flash memory or an HDD (Hard Disk Drive). The storage unit 104 stores programs and various data. The storage unit 104 is not limited to being built into the information processing apparatus 1, and may include an external recording medium such as an external HDD or a USB memory that is detachable from the information processing apparatus 1.
[0015] In the present embodiment, music data (for example, SMF (Standard MIDI File)) is stored in the storage unit 104. The music data includes events such as note-on events, note-off events, and control change events for each of a plurality of parts (for example, a melody part, an oboe part, an electric guitar part, a trumpet part, a bass part, a drum part) from the start to the end of the music. A note-on event is an event that instructs sounding and includes at least information on pitch and velocity value (intensity). A note-off event is an event that instructs silencing and includes at least information on pitch. A control change event includes events related to control of expressions added to musical sounds such as volume and tone quality, and events related to other controls such as master volume change and panning.
[0016] The display unit 105 is composed of an LCD (Liquid Crystal Display), an EL (Electro Luminescence) display, etc., and performs various displays according to the display information instructed by the CPU 101.
[0017] 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 switch and outputs an operation signal to the CPU 101. The operation unit 106 includes a music selection switch 161, a music analysis switch 162, a music start switch 163, a music stop switch 164, etc. shown in FIG. 2. The music selection switch 161 is a switch for selecting a music piece to be played from a plurality of music data. The music analysis switch 162 is a switch for instructing the execution of the music analysis process described later. The music start switch 163 is a switch for instructing the start of the automatic performance (reproduction) of the music piece. The music stop switch 164 is a switch for instructing the stop of the automatic performance of the music piece.
[0018] In this embodiment, it is assumed that the operation unit 106 is composed of push button switches. However, the operation unit 106 may be provided with a touch panel attached to the display unit 105, etc., and may be configured to output an operation signal of the touch panel to the CPU 101.
[0019] The MIDI interface 107 is connected to the electronic musical instrument 2 and performs data transmission and reception with the electronic musical instrument 2 according to the MIDI standard.
[0020] The sound source 108 reads out waveform data (audio data) previously stored in the ROM 102 or generates waveform data according to an instruction from the CPU 101 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 audio. The output unit 110 includes an amplifier and a speaker, and amplifies and outputs the analog audio (instrument sound, etc.) input from the DAC 109. The sound source 108, the DAC 109, and the output unit 110 constitute a sound generation unit 111 (reproduction unit).
[0021] The electronic instrument 2 is, for example, a keyboard instrument equipped with a keyboard 201 consisting of multiple keys (playing controls). The electronic instrument 2 generates performance operation information (note-on event, note-off event, etc.) and outputs it to the information processing device 1 each time any of the keys on the keyboard 201 is pressed or released, that is, each time a performance operation is performed.
[0022] Next, the operation of the information processing device 1 in this embodiment will be described. In the information processing device 1 of this embodiment, the melody part (first part), which is the main melody of the song selected as the song to be played, is set as the performance part to be played by the user. When the song is played back, the melody part is not automatically played so that the user can play it, while parts other than the melody part are automatically played based on the song data. However, as shown in Figure 3, in silent sections where the melody part is silent (pause state), the performance part is automatically switched to a predetermined preferred part (second part) so that the user can play the preferred part. Here, the preferred part is the part other than the melody part that is presumed to be the most suitable for the user to play in silent sections where the melody part played by the user is silent. The preferred part is determined by the song analysis process described later. As a preferred part, for example, a part in which a solo performance takes place in the intro or interlude is preferred.
[0023] The processes performed in the information processing device 1 will be described below with reference to Figures 4 to 12. Each of the processes shown in Figures 4 to 12 is executed through the cooperation of the CPU 101 and the program stored in the ROM 102 or the storage unit 104.
[0024] When the power to the information processing device 1 is turned on, the CPU 101 starts the main processing shown in Figure 4. In the main processing, the CPU 101 first performs initialization processing (step S401). In the initialization processing, the initialization of each component of the information processing device 1 and the initialization of buffers and variables used in various processes are performed.
[0025] Next, the CPU 101 executes the operation state acquisition process (step S402). In the operation state acquisition process, the CPU 101 acquires the operation status of the various switches on the operation unit 106.
[0026] Next, the CPU 101 executes a function process (step S403). The function process is the process of executing a function corresponding to the operating state of the switch obtained in the operating state acquisition process.
[0027] As shown in Figure 5, in the functional processing, first the CPU 101 determines whether the song selection switch 161 has been operated (step S501). If it is determined that the song selection switch 161 has been operated (step S501; YES), the CPU 101 determines whether a song is in progress (playing) or not (step S502). If it is determined that a song is not in progress (step S502; NO), the CPU 101 proceeds to step S504. If it is determined that a song is in progress (step S502; YES), the CPU 101 stops the song that is in progress (step S503) and proceeds to step S504.
[0028] In step S504, the CPU 101 executes the song selection process (step S504) and proceeds to step S404 in Figure 4. During the song selection process, the CPU 101 displays a list of selectable song names on the display unit 105 and waits for the user to select a song. When a song selection operation is performed, the CPU 101 reads the song data of the selected song from the storage unit 104 and loads it into the song storage area of the RAM 103. Songs that were previously in RAM 103 are overwritten and erased.
[0029] On the other hand, if it is determined in step S501 that the song selection switch 161 has not been operated (step S501; NO), the CPU 101 determines whether or not the song start switch 163 has been operated (step S505). If it is determined that the song start switch 163 has been operated (step S505; YES), the CPU 101 determines whether or not the song data has been loaded into the song storage area of RAM 103 (step S506). If it is determined that the song data has not been loaded into the song storage area of RAM 103 (step S506; NO), the CPU 101 proceeds to step S404 in Figure 4.
[0030] If the CPU 101 determines that the music data has been loaded into the music storage area of RAM 103 (step S506; YES), it determines whether or not the music is currently playing (step S507). If it determines that the music is currently playing (step S507; YES), the CPU 101 proceeds to step S404 in Figure 4.
[0031] If it is determined that the music is not currently playing (step S507; NO), the CPU 101 executes the music start process (step S508) and proceeds to step S404 in Figure 4. In the music start process, the CPU 101 starts automatic playback based on the music data loaded into the music storage area of RAM 103. For example, the CPU 101 initializes variables to be used in the music progression process described later and starts the music progression process described later based on the music data loaded into the music storage area of RAM 103. For example, the CPU 101 initializes the variables used in the music progression process, namely "data index" as 1, "playing part" as the melody part, and "state" as waiting for part transition to start.
[0032] On the other hand, if in step S505 it is determined that the music start switch 163 has not been operated (step S505; NO), the CPU 101 determines whether or not the music stop switch 164 has been operated (step S509). If it is determined that the music stop switch 164 has been operated (step S509; YES), the CPU 101 determines whether or not music is in progress (step S510). If it is determined that music is in progress (step S510; YES), the CPU 101 executes a music stop process to stop the automatic playback of the music in progress (step S511), and proceeds to step S404 in Figure 4. If it is determined that music is not in progress (step S510; NO), the CPU 101 proceeds to step S404 in Figure 4.
[0033] On the other hand, if it is determined in step S509 that the music stop switch 164 has not been operated (step S509; NO), the CPU 101 determines whether or not the music analysis switch 162 has been operated (step S512). If it is determined that the music analysis switch 162 has been operated (step S512; YES), the CPU 101 executes the music analysis process (step S513) and proceeds to step S404 in Figure 4. The music analysis process will be described in detail later.
[0034] On the other hand, if it is determined in step S512 that the music analysis switch 162 has not been operated (step S512; NO), the CPU 101 performs other functional processing in response to the operation of the operation unit 106 (step S514), and then proceeds to step S404 in Figure 4.
[0035] In step S404 of Figure 4, the CPU 101 executes the music progression process (step S404). The music progression process is the process by which the CPU 101 advances the music (advances music playback) based on the music data of the selected song. The music progression process will be described in detail later.
[0036] Next, the CPU 101 executes the performance operation process (step S405). The performance operation process executes processing according to the performance operation based on the performance operation information input from the electronic instrument 2. For example, if the input performance operation information is a note-on event, the CPU 101 generates sound production instruction information instructing the sound source 108 to produce sound at the pitch specified in the note-on event with the specified velocity value, and outputs it to the sound source 108. For example, if the input performance operation information is a note-off event, the CPU 101 generates mute instruction information instructing the sound source 108 to mute the musical note at the pitch specified in the note-off event, and outputs it to the sound source 108. Also, if the input performance operation information is a control change event, the CPU 101 generates control information for the musical note and outputs it to the sound source 108.
[0037] Next, the CPU 101 performs sound generation processing (step S406). In sound generation processing, the CPU 101 causes the sound generation unit 111 to generate, mute, or modify musical tones based on sound generation instruction information, mute instruction information, or control information output to the sound source 108 during music progression processing or performance operation processing.
[0038] Next, the CPU 101 performs display processing (step S407). During the display processing, the CPU 101 displays information related to the progress of the music on the display unit 105 while the music is in progress. For example, the current tempo, key, time signature, chords, etc., are displayed on the display unit 105. The musical score of the music may also be displayed. The current performance part is also displayed on the display unit 105. The performance part is the part that the user plays. This allows the user to recognize which part to play when transitioning to a suitable part.
[0039] Next, the CPU 101 determines whether or not the power switch of the control unit 106 has been pressed (i.e., whether or not a power-off command has been issued) (step S408). If it determines that the power switch of the control unit 106 has not been pressed (step S408; NO), the CPU 101 returns to step S402 and repeats steps S402 to S408. If it determines that the power switch of the control unit 106 has been pressed (step S408; YES), the CPU 101 terminates the main processing.
[0040] Next, with reference to Figure 6, we will explain the music analysis process that is performed during the function processing. As shown in Figure 6, in the music analysis process, first, the CPU 101 performs a silent section search process to search for silent sections in the melody part of the music based on the music data (step S601).
[0041] In the silent section search process of this embodiment, as shown in Figure 7, the song is divided into multiple sections based on the same chord, and silent sections are searched for in the melody part where there are no note-on or note-off events and no continuous note-ons. In general, the chords in songs often change in the intro, melody, and interlude sections. Also, the phrases of songs themselves are generally based on chord progression patterns. Therefore, it is reasonable to search for silent sections in a song based on the same chord.
[0042] In this embodiment, the chord information (chord events) of a song is embedded in the song data as a string using meta-event markers (0xFF, 0x06) defined in SMF. For example, information for the chord Am is embedded in the SMF as the sequence 0xFF, 0x06, 0x02, 'A', 'm'. The 0x02 after 0x06 is the number of data points that follow. In Figure 7, sections of the same chord are sequentially numbered as section 1, section 2, ..., section 8. The shaded lines at the bottom of Figure 7 represent notes. These are designated as note 1, note 2, and note 3, respectively. A note begins with a note-on event and continues until a note-off event occurs. A section in which notes continue is not a silent section. Therefore, if there is a note-on event or note-off event within a section, or if there are continuing notes, that section is not a silent section.
[0043] For example, in Figure 7, section 1 is not a silent section because there is a note-on event for note 1. Similarly, section 2 is not a silent section because there is a note-off event for note 1. Section 3 is not a silent section because there are both a note-on and note-off event for note 2. Sections 4 and 5 are silent sections because there are neither note-on nor note-off events, and there are no continuing notes. Section 6 is not a silent section because there is a note-on event for note 3. Section 7 has neither a note-on nor note-off event, but there is a note-on event for note 3 in section 6, and that note is continuing, so it is not a silent section. Section 8 is not a silent section because there is a note-off event for note 3.
[0044] The silent section search process will be explained below with reference to Figure 8. First, the CPU 101 initializes the continuation flag, which indicates that the note is continuing, to the off state, and also initializes a variable to store the number of silent intervals to 0 (step S801).
[0045] Next, the CPU 101 searches for a chord event within the chord track (in this embodiment, track 0) in the music data (SMF) (step S802). The CPU 101 sets the time position (tick) of the found chord event to the variable begin (step S803). The value set to the variable begin at this time corresponds to the start position of section 1 in Figure 7.
[0046] Next, CPU 101 searches for the next code event (step S804). CPU 101 sets the time position of the found code event to the variable end (step S805). The value of the variable end when it is first set corresponds to the start position of section 2 (end position of section 1) in Figure 7. Therefore, the begin-end section at this point corresponds to section 1 in Figure 7.
[0047] Next, the CPU 101 searches within the melody part between begin and end (step S806) and determines whether or not a note-on event exists in the melody part in that section (step S807). If it determines that a note-on event exists in the melody part in that section (step S807; YES), the CPU 101 turns on the continuation flag (step S808) and proceeds to the processing in step S814.
[0048] If the CPU determines that there are no note-on events in the melody part of the section in question (step S807; NO), the CPU 101 determines whether or not there are note-off events in the melody part of the section in question (step S809). If the CPU determines that there are note-off events in the melody part of the section in question (step S809; YES), the CPU 101 turns off the continuation flag (step S810) and proceeds to the processing in step S814.
[0049] If the CPU determines that there are no note-on or note-off events in the melody part of the section in question (step S809; NO), the CPU 101 determines whether the continuation flag is on or off (step S811). If the CPU determines that the continuation flag is on (step S811; YES), the CPU 101 proceeds to the processing in step S814.
[0050] If the CPU determines that the continuation flag is not on (step S811; NO), the CPU 101 registers the section as a silent section in the RAM 103 (step S812). For example, the silent section is registered using the value of the variable that stores the current number of silent sections plus 1 as the section number, the time position stored in the variable begin as the start position of the silent section, and the time position stored in the variable end as the end position of the silent section. Next, the CPU 101 increments the number of silent sections (step S813) and proceeds to the process in step S814.
[0051] In step S814, the CPU 101 determines whether or not the end of the music data has been reached (step S814). If it determines that the end of the music data has not been reached (step S814; NO), the CPU 101 sets the time position that was set in the variable end to the variable begin (step S814) and returns to step S804. The CPU 101 repeats the processing in steps S804 to S815 until the end of the music data is reached. If it determines that the end of the music data has been reached (step S814; YES), the CPU 101 terminates the silent section search process.
[0052] Here, sections 4 and 5 shown in Figure 7 are both silent sections, but they are consecutive. Although omitted in the flowchart in Figure 8, such consecutive silent sections may be treated as a single silent section. However, if a silent section is four measures or longer, it is divided. Since only one suitable part can be set in a single silent section, if a silent section is too long, it becomes impossible to transition to another, more suitable part even if one exists along the way; therefore, a limit is placed on the length of silent sections.
[0053] Returning to Figure 6, once the silent section search process is complete, the CPU 101 executes the suitable part setting process. In the suitable part setting process, for each silent section found in the silent section search process described above, the CPU 101 determines the suitable part for the user to play in that silent section. Specifically, for each part other than the melody part in the silent section, an evaluation score is assigned based on whether or not it is suitable for the user to play, and the part with the highest evaluation score is registered as the suitable part for that silent section.
[0054] In this embodiment, the other parts (target parts) to be searched for as suitable parts are the obbligato part, the electric guitar part, and the trumpet part. The melody part is excluded from the target because it is the part that plays the original main melody. The bass part and the drum part are excluded from the target of suitable parts in this embodiment because they are the parts that carry the rhythm of the song and not the melody. However, if these parts are playable on the instrument interface connected via the MIDI interface 107, they may be included as targets. For example, if the guitar controller is the instrument interface, the bass part is playable, and if the pad controller is the instrument interface, the drum part may be included as a target.
[0055] The process for setting the preferred part will be explained below with reference to Figure 9. First, CPU 101 sets the variable that stores the section number to an initial value of 1 (step S901). The section number is a number assigned sequentially to the silent sections found during the silent section search process. For example, section number 1 is the first silent section in the song.
[0056] Next, the CPU 101 calculates the evaluation score for each of the target parts (obbli part, electric guitar part, trumpet part) in the silent section corresponding to the current section number (step S902).
[0057] In step S902, the CPU 101 calculates an evaluation score based on at least one note-on event, note-off event, or volume event in the music data of each target part of the silent section corresponding to the current section number. For example, the CPU 101 obtains information on the number of note repetitions (number of chords), the number of note-ons, and the volume value based on the note-on events, note-off events, or volume events of each target part in the silent section, and calculates an evaluation score. Note that in the case of chords, the number of note-ons is counted as one note-on.
[0058] For example, CPU 101 first excludes parts with three or more note overlaps (two overlaps are acceptable) or parts without note-on notes for two measures or more from the selection of suitable parts. In this embodiment, since the melody part, which is the performance part, is a single note, it is preferable that the suitable parts also be single notes. Allowing two note overlaps is because, for example, when playing notes smoothly by connecting them, such as in legato playing, the note-off of the previous note may come after the note-on of the following note. However, if the number of note overlaps is two, points will be deducted as described later.
[0059] Next, CPU101 calculates the score for the target parts that do not fall under the excluded parts as follows. 1. Points will be deducted if there are duplicate notes (2 duplicates). 2. The higher the volume value, the more points you will receive. 3.1 The best performance is one where the number of notes in a measure is the predetermined number (8 in this embodiment), and points will be deducted if it deviates from this.
[0060] Regarding point 1 above, as mentioned above, note overlaps of 3 or more were excluded before calculating the evaluation score, but note overlaps of 2 were allowed, so note overlaps of 2 that are not single notes will be subject to deductions. Regarding point 2 above, the higher the volume value, the more prominent (stands out) the part is among the parts of the song, and therefore it is more likely to be a solo performance. Regarding point 3 above, the section becomes unsuitable for performance if there are too many or too few notes. In other words, too many notes make it difficult to play, and conversely, too few notes make it likely to be boring to play.
[0061] For example, CPU 101 calculates the evaluation score P for the target part (excluding those that have been excluded) in the silent section using the following procedure. (1) First, the initial point value of the evaluation score P for each target part is set to 1.0. (2) If the number of duplicate notes is 2, multiply the evaluation score P by 0.8. (3) Multiply the evaluation score P by the value obtained by dividing the volume value by 100. The volume value is the value of MIDI control change 7 (main volume). Since the range of this value is 0 to 127, points are added if the volume value is greater than 100, and points are deducted if it is less than 100. (4) The following process (Equation 1) is performed to deduct points from the evaluation score P if the number of notes deviates from 8. P = P × (1.0 - abs(8.0 - number of notes) × 0.1) ... (Equation 1) Here, abs(8.0 - number of notes) represents the absolute value obtained by subtracting the number of notes in the relevant part during the silent section from 8.0.
[0062] Regarding (4) above, for example, if the number of notes in the target part during the silent section is 16, the value multiplied by the evaluation score P will be 0.2, resulting in a deduction. If the number of notes in the target part during the silent section is 1, the value multiplied by the evaluation score P will be 0.3, also resulting in a deduction. If the number of notes in the target part during the silent section is 8, the value multiplied by the evaluation score P will be 1.0, resulting in no deduction.
[0063] Returning to the flowchart in Figure 9, the CPU 101 records the part with the highest evaluation score P among the target parts as the preferred part for the silent section in the RAM 103 (step S903). For example, the CPU 101 associates the current section number with the name of the part determined to be the preferred part and stores them in the RAM 103.
[0064] Next, the CPU 101 increments the section number (variable) (step S904) and determines whether the section number exceeds the number of silent sections (step S905). If it determines that the section number does not exceed the number of silent sections (step S905; NO), the CPU 101 returns to step S902 and repeatedly executes the processes in steps S902 to S905. If it determines that the section number exceeds the number of silent sections (step S905; YES), the CPU 101 generates and outputs information for automatically transitioning to a suitable part in each silent section (suitable part transition data) (step S906), and terminates the suitable part setting process.
[0065] In step S906, the CPU 101 calculates, for example, the number of beats from the beginning of the song at the start and end positions of the automatic transition to a suitable part in each silent section, based on the start and end positions of each silent section in the music data. The CPU 101 then generates suitable part transition data, which includes automatic transition data consisting of the beat at which the automatic transition to a suitable part begins (start beat), the beat at which it ends (end beat), and the name of the suitable part to which it transitions, as well as the number of automatic transition data (number of silent sections), and outputs this data to the suitable part transition process described later. The output format of the suitable part transition data can be, for example, JSON (JavaScript Object Notation) format. The suitable part transition data may also be stored in the storage unit 104 in association with the music data. This makes it possible to skip the music analysis process when playing a music that has already undergone music analysis processing.
[0066] Figure 10 shows an example of preferred part transition data output in step S906. The preferred part transition data consists of two keys, autopart and autopart_count, as shown in Figure 10. autopart_count is a key that indicates how many auto transition data there are for transitioning to the preferred part. In the example in Figure 10, it is 4. The autopart key is an array and contains multiple auto transition data as elements of the array. The auto transition data consists of a combination of three keys and values. The begin key is the number of beats from the beginning of the song at the timing when the auto transition starts. The end key is the number of beats from the beginning of the song at the timing when the auto transition ends. The part key is the name of the part to which the transition is to take place.
[0067] In the example shown in Figure 10, there are four automatic transition data points. In the first automatic transition data, the music transitions to the obbligato part from beat 1 to beat 36. This section is where the song's intro is played, so it is thought that the melody part becomes silent during this section. In the second automatic transition data, the music transitions to the trumpet part from beat 181 to beat 196. Similarly, in the third automatic transition data, the music transitions to the guitar part from beat 197 to beat 300. These sections are thought to be where the song's interlude is played, and therefore the melody part becomes silent during this section. In the final automatic transition data, the music transitions to the trumpet part from beat 440 to beat 466 as the song's ending.
[0068] Next, with reference to Figure 11, the music progression process performed in step S404 of Figure 4 will be described. The music progression process is the process of advancing the playback of the music according to the passage of time. The music progression process includes a preferred part transition process that switches the performance parts based on the created preferred part transition data.
[0069] In the music progression process, first, the CPU 101 determines whether music is currently being played automatically (step S1201). If it determines that music is not being played (step S1201; NO), the CPU 101 exits the music progression process and proceeds to step S405 in Figure 4. If it determines that music is being played (step S1201; YES), the CPU 101 executes the appropriate part transition process (step S1202).
[0070] Now, with reference to Figure 12, the preferred part transition process will be explained. First, the CPU 101 determines whether or not preferred part transition data exists for the currently playing song (step S1300). If it determines that preferred part transition data does not exist for the currently playing song (step S1300; NO), the CPU 101 exits the preferred part transition process and proceeds to the process in step S1203 of Figure 11.
[0071] If the CPU 101 determines that suitable part transition data exists for the currently playing song (step S1300; YES), it determines whether the data index exceeds the number of automatic transition data mentioned above (step S1301). The data index is the number of the automatic transition data to be referenced (a number assigned sequentially from the beginning), and is initially set to 1. If the CPU 101 determines that the data index exceeds the number of automatic transition data mentioned above (step S1301; YES), it exits the suitable part transition process and proceeds to the process in step S1203 of Figure 11. If the data index exceeds the number of automatic transition data mentioned above, all transitions to suitable parts in the currently playing song have been completed, and the CPU 101 exits the suitable part transition process.
[0072] If the CPU determines that the data index does not exceed the number of automatic transition data mentioned above (step S1301; NO), the CPU 101 determines whether or not it is in a part transition start waiting state (step S1302). The part transition start waiting state is a state in which the CPU is waiting for the timing to transition the performance part from the melody part to a suitable part described in the automatic transition data. Whether or not it is in a part transition start waiting state can be determined from the value of the variable that stores the state.
[0073] If the CPU determines that it is waiting for the start of a part transition (step S1302; YES), it determines whether the current beat in the music has reached the start beat described in the automatic transition data (step S1303). If the CPU determines that the current beat has not reached the start beat described in the automatic transition data (step S1303; NO), the CPU exits the preferred part transition process and proceeds to the process in step S1203 of Figure 11.
[0074] If the CPU 101 determines that the current beat has reached the start beat described in the automatic transition data (step S1303; YES), it transitions the performance part to the preferred part described in the automatic transition data (step S1304). As will be described later, in the music progression process, the part designated as the performance part is controlled not to be played by automatic playback, that is, not to be played back. Therefore, the user can play the preferred part set as the performance part themselves.
[0075] Next, the CPU 101 sets the state to the variable that stores the state, which is the "waiting for part transition completion" state (step S1305), and proceeds to the process in step S1203 of Figure 11. Here, the "waiting for part transition completion" state is the state in which the system is waiting for the timing to finish the transition to the preferred part and return to playing the normal melody part.
[0076] On the other hand, if in step S1302 it is determined that the current state is not a state of waiting for the start of a part transition, that is, the current state is a state of waiting for the end of a part transition (step S1302; NO), the CPU 101 determines whether the current beat in the music has exceeded the end beat of the automatic transition data (step S1306). If it is determined that the current beat has not exceeded the end beat of the automatic transition data (step S1306; NO), the CPU 101 exits the preferred part transition process and proceeds to the process in step S1203 in Figure 11.
[0077] If the CPU determines that the current beat has exceeded the end beat of the automatic transition data (step S1306; YES), the CPU 101 returns the performance part to the melody part, i.e., transitions to it (step S1307).
[0078] Next, the CPU 101 increments the data index (step S1308) and determines whether the value of the data index is greater than the number of automatically transitioned data (step S1309). If it is determined that the value of the data index is greater than the number of automatically transitioned data (step S1309; YES), the CPU 101 proceeds to the process in step S1203 of Figure 11.
[0079] If the CPU determines that the value of the data index is less than or equal to the number of auto-transition data (step S1309; NO), the CPU 101 determines whether the start beat of the auto-transition data is equal to the end beat of the previous auto-transition data (step S1310). If the start beat of the auto-transition data is equal to the end beat of the previous auto-transition data, it means that there are consecutive silent intervals.
[0080] If the CPU 101 determines that the start beat of the automatic transition data is equal to the end beat of the previous automatic transition data (step S1310; YES), the CPU 101 transitions the performance part to the preferred part described in the automatic transition data (step S1312) and proceeds to the process in step S1203 of Figure 11.
[0081] If the CPU determines that the start beat of the automatic transition data is not equal to the end beat of the previous automatic transition data (step S1310; NO), the CPU 101 sets the state to a variable that stores the state, indicating that it is waiting for the start of a part transition (step S1311), and proceeds to the process in step S1203 of Figure 11.
[0082] In step S1203 of Figure 11, the CPU 101 determines whether or not there are any events in the music data that need to be processed at this time (step S1203). If it determines that there are no events in the music data that need to be processed at this time (step S1203; NO), the CPU 101 exits the music progression process and proceeds to step S405 of Figure 4.
[0083] If the CPU 101 determines that there is an event in the music data that needs to be processed at this time (step S1203; YES), it determines whether the event is a note-on event (step S1204). If the CPU 101 determines that the event is a note-on event (step S1204; YES), it determines whether the event is a note-on event belonging to a performance part (step S1205). If the CPU 101 determines that the event is a note-on event belonging to a performance part (step S1205; YES), it exits the music progression processing and proceeds to step S405 in Figure 4. Here, since the performance part is the part that the user plays, automatic playback is not performed in this embodiment. That is, the CPU 101 controls not to play the performance part.
[0084] If it is determined that the event is not a note-on event belonging to a performance part (step S1205; NO), the CPU 101 performs note-on processing (step S1206) and proceeds to step S405 in Figure 4. In note-on processing, sound production instruction information is generated to cause the sound production unit 111 to produce sound corresponding to the note-on event, and this information is output to the sound source 108.
[0085] On the other hand, if in step S1204 it is determined that the event is not a note-on event (step S1204; NO), the CPU 101 determines whether the event is a note-off event (step S1207). If it is determined that the event is a note-off event (step S1207; YES), the CPU 101 determines whether the note-off event belongs to a performance part (step S1208). If it is determined that the note-off event belongs to a performance part (step S1208; YES), the CPU 101 exits the music progression process and proceeds to step S405 in Figure 4. Here, since the performance part is the part played by the user, automatic performance is not performed in this embodiment.
[0086] If the CPU determines that the note-off event belongs to a performance part (step S1208; NO), the CPU 101 executes the note-off process (step S1209) and proceeds to step S405 in Figure 4. In the note-off process, mute instruction information is generated to cause the sound generation unit 111 to mute the musical sound corresponding to the note-off event, and this information is output to the sound source 108.
[0087] On the other hand, if it is determined in step S1207 that the event is not a note-off event (step S1207; NO), the CPU 101 performs other event processing (step S1210) and proceeds to step S405 in Figure 4.
[0088] Here, the events processed by other event processing are decorative events that control the volume and pitch of the sounded musical note, such as expression and pitch bend in control change events. In this embodiment, for events other than note-on and note-off events that directly produce / mute musical notes, processing is performed according to the event, even if the part belongs to the performance part. For example, for a sound produced by the user's performance operation, decorations such as changing the volume with an expression event included in the musical data or changing the pitch with a pitch bend event are performed based on the musical data. Note that other events belonging to the performance part may not be processed in the same way as note-on and note-off events. For example, pitch bend data included in the musical data may be discarded, and the user may operate the pitch bend device provided in the electronic instrument 2 to apply a pitch bend effect to the musical note.
[0089] As described above, through the preferred part transition processing in the music progression processing, when the melody part is in a silent section, the transition of the performance part to the preferred part determined by the preferred part setting processing is realized.
[0090] In this embodiment, the CPU 101 allows the user to play the performance part in a so-called karaoke state, rather than having the electronic instrument 2 automatically play it. In this case, the user may be guided to play by lighting up LEDs embedded in the performance controls of the electronic instrument 2 (e.g., optical keys) or LEDs placed near the performance controls that correspond to the pitch to be played at the appropriate timing. This performance guidance can also be implemented using an app on a smartphone or tablet equipped with a display device. Alternatively, instead of putting the performance part in a karaoke state, the system may perform so-called any-key playing, where the correct pitch is produced regardless of the pitch specified by the performance controls. In this way, even if the user is a beginner and unsure about pitch specification, they can still play the song and enjoy playing the entire song, including the intro, interlude, and ending.
[0091] As explained above, the CPU 101 of the information processing device 1 searches for silent sections in a musical piece consisting of multiple parts where the melody part played by the user is silent, and determines the most suitable part among the parts other than the melody part that is presumed to be most suitable for the user to play during the silent section. Then, when the silent section is reached during the progress of the musical piece, the CPU 101 transitions the part played by the user from the melody part to the suitable part, and when the silent section ends, it transitions the part played by the user back to the melody part. Therefore, it is possible for the user to play other parts during silent sections in the musical piece where the part played by the user is silent.
[0092] For example, CPU 101 divides the song into multiple sections based on the same chord intervals, and searches for silent sections in the melody part where there are no note-on or note-off events, and where a note-on event is not ongoing. Therefore, it can appropriately search for silent sections in the song based on the same chord intervals.
[0093] Furthermore, the CPU 101 determines a suitable part based on at least one of the following: the number of notes, the number of notes, and the volume value of each note in the parts other than the melody part during the silent section. Therefore, the CPU can appropriately determine a suitable part for the user to play during the silent section based on at least one of the following: the number of notes, the number of notes, and the volume value.
[0094] Furthermore, the CPU 101 calculates an evaluation value for each part other than the melody part as a part that the user can play, based on the number of repetitions, the number of notes, and the volume value of each note in the parts other than the melody part during the silent section, and determines the part with the highest calculated evaluation value as the preferred part. Therefore, the part that receives the highest evaluation as a part that the user can play during the silent section can be determined as the preferred part.
[0095] Furthermore, the above evaluation values are higher when there are fewer duplicate notes, the number of notes is close to a predetermined number, and the volume value is high. Therefore, a prominent part with a single note, an appropriate number of notes, and a high volume can be selected as the suitable part and allowed to be played by the user.
[0096] Furthermore, when a silent section ends during the progress of a song, the CPU 101 transitions the part played by the user to a suitable part determined for the next silent section, provided that the silent section is followed by another silent section. Therefore, even when silent sections are consecutive, the performance part can be transitioned to a suitable part determined for each silent section.
[0097] Furthermore, CPU 101 controls the playback so that it does not play the part that the user is playing while the song is progressing. Therefore, the playback sound does not interfere with the user's performance.
[0098] The descriptions in the above embodiments are merely preferred examples of the information processing device, electronic musical instrument, control method, and program according to the present invention, and are not limited thereto.
[0099] For example, in the above embodiment, the case in which the information processing device 1 and the electronic musical instrument 2 are separate entities was described as an example, but the functions of the present invention performed by the CPU 101 of the information processing device 1 and the sound-producing unit may also be provided in the electronic musical instrument 2.
[0100] Furthermore, although the above embodiment was described using the case where the first part is the melody part as an example, it is not limited to this.
[0101] Furthermore, in the above embodiment, the music was divided by chords, and sections within the same chord interval where there were no note-on-on events or note-off events, and where the note-on state was not continuous, were defined as silent sections. However, the method for finding silent sections is not limited to this. For example, regardless of the chord, sections where the state of not having a continuous note-on state continues for a predetermined period of time or longer may be defined as silent sections.
[0102] Furthermore, although the above embodiment described the case where the electronic instrument 2 is a keyboard instrument, other electronic instruments such as a wind synthesizer, electric guitar, or MIDI violin may also be used.
[0103] Furthermore, while the above embodiments disclose examples in which semiconductor memory such as ROM or hard disks are used as computer-readable media for the program according to the present invention, the invention is not limited to these examples. Portable recording media such as CD-ROMs can also be used as other computer-readable media. In addition, carrier waves can also be used as a medium for providing the data of the program according to the present invention via a communication line.
[0104] Furthermore, the detailed configuration and operation of the information processing device 1 can also be modified as appropriate without departing from the spirit of the invention.
[0105] Although embodiments of the present invention have been described above, the technical scope of the present invention is not limited to the embodiments described above, but is determined based on the claims. Furthermore, equivalent scopes of the present invention that have been modified from the claims but are not related to the essence of the present invention are also included in the technical scope of the present invention. [Explanation of Symbols]
[0106] 1 Information processing unit, 101 CPU, 102 ROM, 103 RAM, 104 Storage unit, 105 Display unit, 106 Operation unit, 107 MIDI interface, 108 Sound source, 109 DAC, 110 Output unit, 111 Sound generation unit, 2 Electronic musical instrument
Claims
1. In a song consisting of multiple parts, the system searches for silent sections where the first part played by the user is silent. One of the parts other than the first part among the aforementioned multiple parts is determined to be the second part to be played by the user during the silent section. When the silent section is reached during the progress of the aforementioned song, the part played by the user is transitioned from the first part to the second part. An information processing device equipped with a control unit.
2. The control unit divides the musical piece into multiple sections based on intervals of the same chord, and searches for a section in the first part in which there are no note-on events and note-off events, and in which a note-on is not ongoing, as the silent section. The information processing apparatus according to claim 1.
3. The control unit determines the second part based on at least one of the following: the number of overlapping notes, the number of notes, and the volume value of each of the parts other than the first part in the silent section. The information processing apparatus according to claim 1.
4. The control unit, when the silent section ends during the progress of the music, transitions the part played by the user to the first part. The information processing apparatus according to claim 1.
5. The control unit, when the silent section ends during the progress of the music, and if the next silent section follows the previous silent section, transitions the part played by the user to the second part determined for the next silent section. The information processing apparatus according to claim 1.
6. The control unit controls the playback of the part to be played by the user during the progress of the music. The information processing apparatus according to claim 1.
7. An information processing device according to any one of claims 1 to 6, A control unit for the user to perform performance operations, An electronic musical instrument equipped with [specific features / features].
8. Computers In a song consisting of multiple parts, the system searches for silent sections where the first part played by the user is silent. One of the parts other than the first part among the aforementioned multiple parts is determined to be the second part to be played by the user during the silent section. When the silent section is reached during the progress of the aforementioned song, the part played by the user is transitioned from the first part to the second part. Control method.
9. On the computer, In a song consisting of multiple parts, the system searches for silent sections where the first part played by the user is silent. One of the parts other than the first part among the aforementioned multiple parts is determined to be the second part to be played by the user during the silent section. When the silent section is reached during the progress of the aforementioned song, the part played by the user is transitioned from the first part to the second part. A program to execute a process.
Citation Information
Patent Citations
Electronic musical apparatus with keying indicator
JP1987036692A