Musical sound reproduction device, electronic musical instrument, musical sound reproduction method, and recording medium
The interpolation data is generated by the interpolation unit, which solves the problems of large data capacity and discontinuous changes in existing musical sound reproduction devices, realizes subtle and continuous changes in musical sounds, and improves the expressiveness of the musical sound reproduction device.
Patent Information
- Application Number
- CN201710928161.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2016-10-07
- Filing Date
- 2017-10-09
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2038-07-20
AI Technical Summary
In existing musical sound reproduction devices, the capacity of performance data is large, and it is difficult to achieve subtle and continuous musical sound changes.
The interpolation part generates interpolation data, and generates a plurality of instruction data according to the musical sound change amount and interval value, and realizes subtle and continuous changes of musical sound through the sound source part and the reproduction control part.
The capacity of performance data is reduced while achieving subtle and continuous changes in musical sounds, enhancing the expressiveness of the musical sound reproduction device.
Smart Images

Figure CN107919113B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a musical sound reproducing device, an electronic musical instrument, a musical sound reproducing method, and a recording medium for reproducing musical sound based on input data. Background Art
[0002] A known performance device (musical sound reproduction device) is called a music sequencer. This device stores performance data representing the pitch and sound timing of each note that constitutes a piece of music in a memory, each corresponding to a performance segment (instrument segment). The performance data for each track stored in the memory is sequentially read out in synchronization with the rhythm of the music, and reproduced (performed). For example, Patent Document 1 discloses a performance device capable of reproducing sequence data containing a mixture of drum tones and non-drum tones on a single track.
[0003] Patent Document 1: Japanese Patent Application Laid-Open No. 2002-169547
[0004] However, in conventional performance devices, pitch, volume, etc. are controlled according to the instruction set constituting the performance data, but continuous changes are also all performed in instruction set units. Specifically, for example Figure 10 As shown in the example shown, when changing the volume level of a musical instrument from "0" to "50," five sets of commands are used to control the volume level in stages, thereby achieving a continuous change. Furthermore, a command set consists of an event time step indicating the execution timing of the command, a command indicating the control content (event), and a value indicating the set value.
[0005] Therefore, in order to achieve more minute and continuous changes, the number of instruction sets increases, which leads to a problem of increasing the capacity of the performance data.
[0006] The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a musical sound reproducing device, an electronic musical instrument, a musical sound reproducing method, and a recording medium that can reduce the capacity of performance data and can also modify the performed sound finely and continuously. Summary of the Invention
[0007] The present invention provides a musical sound reproducing device comprising: a sound source section, which generates musical sound while changing it in sequence in accordance with the receipt of indication data for indicating a musical sound state to be achieved, so as to become the indicated musical sound state; an interpolation section, which uses data in a memory to generate a plurality of interpolation data obtained by interpolating the input data corresponding to the interval, based on values related to the interval corresponding to the musical sound and the amount of change of the musical sound reproduced in the interval, as values included in the input data; and a reproducing control section, which generates a plurality of indication data for indicating a plurality of musical sound states to be achieved at regular intervals within the interval, based on the plurality of interpolation data, and sends the generated plurality of indication data to the sound source section in sequence when reproducing the musical sound in the interval.
[0008] The present invention also provides an electronic musical instrument, characterized in that it has the above-mentioned musical sound regeneration device; and a performance control unit, which generates indication data for indicating the musical sound state to be achieved in sequence according to the performance input operation, and, based on the above-mentioned indication data generated in sequence, indicates the musical sound state to be achieved in sequence to the above-mentioned sound source unit.
[0009] The present invention also provides a musical sound regeneration method, characterized in that the device executes: processing of generating a plurality of interpolation data obtained by interpolating the input data corresponding to the above interval based on a value related to the interval corresponding to the musical sound and the change amount of the above musical sound reproduced in the above interval, which is a value contained in the input data; processing of generating a plurality of indication data for indicating a plurality of musical sound states that should be achieved at a certain time within the above interval based on the above multiple interpolation data; and processing of sending the above multiple indication data generated to the above sound source circuit in sequence when reproducing the musical sound in the above interval, in order to generate the musical sound while changing in sequence in a manner that becomes the musical sound state indicated by the above indication data.
[0010] The present invention also provides a recording medium, which is a computer-readable storage medium, characterized in that a device that executes the program recorded on the above-mentioned storage medium executes: processing of generating a plurality of interpolation data obtained by interpolating the input data corresponding to the above-mentioned interval based on a value related to the interval corresponding to the musical sound and the change amount of the above-mentioned musical sound reproduced in the above-mentioned interval as a value contained in the input data; processing of generating a plurality of indication data for indicating a plurality of timing musical sound states that should be achieved within the above-mentioned interval based on the above-mentioned plurality of interpolation data; and processing of sending the above-mentioned plurality of indication data generated to the above-mentioned sound source circuit in sequence when the musical sound in the above-mentioned interval is reproduced, in order to cause the musical sound to change in sequence while being generated in a manner that becomes the musical sound state indicated by the above-mentioned indication data. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 This is a block diagram showing the electrical configuration of the electronic musical instrument 100 according to the first embodiment of the present invention.
[0012] Figure 2A is a memory image representing the data structure of ROM 14, Figure 2B It is a memory image showing the data structure of RAM15.
[0013] Figure 3A is a diagram showing the structure of performance data PD(N), Figure 3B This is a diagram showing the structure of enlivenment data MD(N). Figure 3C This is a diagram for explaining the contents of the instruction set of the intense data MD(N).
[0014] Figures 4A to 4C These flowcharts respectively show the operations of the playback start operation process, the intensive start operation process, and the Tick event process executed by the CPU 13 .
[0015] Figure 5A 、 Figure 5B This is a flowchart showing the operations of the track tick process and the intense function tick process executed by the CPU 13 .
[0016] Figure 6 This is a flowchart showing the operation of the intense command processing executed by the CPU 13 .
[0017] Figure 7 This is a flowchart showing the operation of the tick process executed by the CPU 13 .
[0018] Figure 8 This is a flowchart showing the operation of the intense command processing according to the second embodiment executed by the CPU 13 .
[0019] Figure 9 This is a flowchart showing the operation of the tick process according to the second embodiment executed by the CPU 13 .
[0020] Figure 10 This is a diagram for explaining a problem in a conventional example. DETAILED DESCRIPTION
[0021] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.
[0022] A. Composition
[0023] Figure 1This block diagram shows the overall structure of an electronic musical instrument 100 according to the first embodiment of the present invention. In this diagram, the keyboard 10 generates performance input information corresponding to performance input operations (key-up and key-down operations), including key-on / key-off signals, key numbers, and velocity. The performance input information generated by the keyboard 10 is converted into MIDI note-on / note-off events by the CPU 13 (processor) and then supplied to the sound source unit 16.
[0024] The operation unit 11 includes various operation switches, such as a power switch for turning the device on and off, a music selection switch for selecting a piece of music to be played, a playback start switch for instructing the start of playback (start of performance), and an intense start switch for instructing the start of intense playback, in addition to a power switch for turning the device on and off. The operation unit 11 generates switch events corresponding to the operation of each of these switches. The various switch events generated by the operation unit 11 are acquired by the CPU 13.
[0025] The display unit 12, which is composed of a liquid crystal display panel and a display driver, displays the settings and operating status of various parts of the musical instrument on a screen based on display control signals supplied from the CPU 13. The CPU 13 sets the operating status of various parts of the instrument based on various switch events supplied from the operation unit 11 and instructs the sound source unit 16 (sound source circuit) to generate musical sound data W based on performance input information supplied from the keyboard 10.
[0026] Furthermore, the CPU 13 instructs the sound source unit 16 to start a performance in response to a playback start switch operation, or instructs the sound source unit 16 to perform a more intense modification of the sound being reproduced by the performance in accordance with intense data (described later). The characteristic processing operations of the CPU 13, namely, playback start operation processing, intense start operation processing, tick event processing, track tick processing, intense tick processing, command processing, and tick processing, which are described later, will be described in detail later.
[0027] like Figure 2A As shown in the figure, the ROM 14 includes a program area PA, a performance data area PDA, and a dynamic data area MDA. The program area PA of the ROM 14 stores various control programs to be loaded into the CPU 13. These control programs include programs for the playback start operation process, dynamic start operation process, tick event process, track tick process, dynamic tick process, command process, and tick process, which will be described later.
[0028] The performance data area PDA of the ROM 14 stores a plurality of music pieces of performance data PD(1) to PD(n). Of these performance data PD(1) to PD(n), the performance data PD(N) selected by the music selection switch operation is read from the performance data area PDA under the control of the CPU 13 and stored in the playback data area SDA of the RAM 15 (see Figure 2B ).
[0029] A plurality of intense data MD(1) to MD(n) are stored in the intense data area MDA of the ROM 14. Of these intense data MD(1) to MD(n), the intense data MD(N) selected by operating the intense selection switch is read from the intense data area MDA under the control of the CPU 13 and stored in the reproduced data area SDA of the RAM 15 (see Figure 2B ).
[0030] like Figure 2B As shown in the figure, the RAM 15 includes a work area WA and a reproduced data area SDA. Under the control of the CPU 13, the performance data PD(N) of the music selected by operating the music selection switch and the dynamic data MD(N) corresponding to the performance data PD(N) are read from the ROM 14 and stored in the reproduced data area SDA of the RAM 15.
[0031] Performance data PD(N) consists of a system track and multiple performance tracks. The system track stores music attributes such as time base (resolution), song title, tempo (BPM), and beat. The multiple performance tracks, corresponding to each performance segment (instrument segment) of the music, store performance data PD that not only indicates the pitch and sounding timing of each note constituting the corresponding performance segment, but also changes control parameters such as pitch and volume.
[0032] like Figure 3A As shown in the figure, performance data PD(N) is formed by addressing a command set consisting of three pieces of information ("step," "command," and "value") in a time-series order corresponding to the music progression. In this command set, "step" represents an event time, indicating the execution timing of a command based on the elapsed time from the beginning of the music. "Command" represents a note-on or note-off event, indicating control content such as pitch bend (pitch control) and control change (volume control). "Value" represents a set value.
[0033] The intense data MD(N) is composed of a plurality of performance tracks corresponding to the respective performance segments (instrument segments) of the performance data PD(N). Each performance track stores intense data MD that modifies (arranges) the performance data PD(N) in such a way as to make the musical tune of the corresponding performance segment intense. Figure 3B As shown in the figure, the dynamic data MD(N) is formed by addressing a command set consisting of "step", "command", "seg" and "diff" in a time series order corresponding to the music progress.
[0034] In such an instruction set, step is the event time, which represents the execution timing of the command according to the elapsed time from the beginning of the music. Command is the note-on and note-off events, which represent control contents such as pitch bend (pitch control) and control change (volume control). Seg represents the interval for executing the command, and diff represents the differential value (or arrival value).
[0035] That is, in the past performance data, Figure 10 As shown in the example shown in the figure, when the volume level of the performance sound is changed from "0" to "50" using a command set consisting of "step (event time)", "command (control object)" and "value (set value)", the volume level value is set in stages by 5 sets of command sets to achieve continuous change. On the other hand, in the performance data of the present invention, Figure 3C As shown in the example shown in the figure, continuous changes are defined based on seg (segment) and diff (difference value or reach value) included in one instruction set. By adopting such a data format, the capacity of the performance data can be reduced.
[0036] In addition, in order to achieve continuous changes defined by seg (segment) and diff (difference value or arrival value) included in one instruction set, the present invention controls the value of the control object in tick units. The so-called tick refers to the minimum unit time calculated by 60 / BPM (tempo) / time base (resolution). For example, in Figure 3C In the illustrated example, the value of the controlled object is increased by +1 every 6 ticks, thereby achieving continuous change and enabling fine and continuous modification of the controlled object. This tick-based control will be described in detail later.
[0037] Various register and flag data used for processing by the CPU 13 are temporarily stored in the work area WA of the RAM 15 . Figure 2BThis figure illustrates the main register and flag data involved in the present invention. In this figure, music attributes include the time base (resolution), music title, tempo (BPM), and beat extracted from the system track of the performance data PD(N) stored in the playback data area SDA. The player_state flag is "PLAY" when the playback start switch is operated to start the performance, and "STOP" when the performance is stopped.
[0038] The flag excite_state is set to "PLAY" for an intense start due to an intense switch operation and to "STOP" for an intense stop. The register diff temporarily stores the difference value diff included in the instruction set being processed. The flag sign_flag is set to "0" if the difference value diff obtained from the instruction set is positive, and to "1" if it is negative. The register ticknum temporarily stores the number of ticks required for each difference value "1." The counter ctr counts the number of ticks.
[0039] Next, refer to Figure 1 The structure of the electronic musical instrument 100 will be described. Figure 1 The sound source unit 16 has a plurality of sound generation channels configured by a known waveform memory readout method, and generates musical sound data in response to note-on / note-off events based on performance input information supplied from the CPU 13 .
[0040] In addition, the sound source section 16 is such that, when the performance starts according to the operation of the reproduction start switch, the CPU 13 reproduces the performance data PD(N) read from the reproduction data area SDA of the RAM 15 to generate performance sound data for each performance track, or, when the intense start is caused by the operation of the intense start switch, the CPU 13 reproduces the intense data MD(N) read from the reproduction data area SDA of the RAM 15 to modify the performance sound data during the performance.
[0041] The sound system 17 converts the musical sound data / performance sound data output from the sound source unit 16 into analog musical sound signals / performance sound signals, filters the musical sound signals / performance sound signals to remove unnecessary noise, amplifies the signals, and produces the sounds from speakers (not shown).
[0042] B.Action
[0043] Next, as for the operation of the electronic musical instrument 100 configured as described above, referring to FIG. 4 to FIG. Figure 7The following describes the various operations of playback start operation processing, intense start operation processing, tick event processing, track tick processing, intense tick processing, command processing, and tick processing performed by the CPU 13. In the following description of the operations, the CPU 13 is the main operator unless otherwise specified.
[0044] (1) Operations of playback start operation processing
[0045] Figure 4A 1 is a flowchart showing the operation of the playback start operation process executed by the CPU 13. Assume that the user operates the playback start switch of the operation unit 11 while the electronic musical instrument 100 is powered on. Then, the CPU 13 enters the process Figure 4A In step SA1 shown in the figure, the performance data area PDA (refer to Figure 2A ) reads the performance data PD(N) selected by operating the music selection switch and stores it in the playback data area SDA of RAM15 (refer to Figure 2B ).
[0046] Next, in step SA2, the music attributes are extracted from the system track of the performance data PD(N) stored in the playback data area SDA and set as initial values in the work area WA of RAM 15. The process then proceeds to step SA3, where the playback position of the performance data PD(N) is set to the read start address corresponding to the beginning of the data. Then, in step SA4, the command set is retrieved, and in the following step SA5, the player_state flag is set to "PLAY," terminating the present process.
[0047] (2) Actions that drastically start processing
[0048] Figure 4B FIG1 is a flowchart showing the operation of the intense start operation process executed by the CPU 13. Assume that the user operates the intense start switch of the operation unit 11 while the electronic musical instrument 100 is powered on. Then, the CPU 13 enters the process Figure 4B In step SB1 shown in the figure, the intense data area MDA (refer to Figure 2A ) reads the intense data MD(N) selected by the intense selection operation and stores it in the reproduced data area SDA of the RAM 15 (refer to Figure 2B ).
[0049] Next, in step SB2, the first command set is retrieved from the exciting data MD(N) stored in the playback data area SDA as the initial value. The process then proceeds to step SB3, where the playback position of the exciting data MD(N) is set to the read start address corresponding to the beginning of the data. Then, in step SB4, the next command set is retrieved, and in the following step SB5, the excite_state flag is set to "PLAY," terminating the process.
[0050] (3) Tick event processing actions
[0051] Figure 4C This is a flowchart showing the operation of the Tick event processing executed by the CPU 13. This processing is interrupted and executed every tick (minimum unit time) by the timer interrupt. In addition, the so-called tick (minimum unit time) refers to the time calculated by 60 / BPM (tempo) / time base (resolution).
[0052] When the execution timing of this process comes, the CPU 13 enters Figure 4C In the illustrated step SC1, it is determined whether the flag player_stage is "PLAY," that is, whether playback of the performance data PD(N) has started. If the flag player_stage is "STOP," meaning playback of the performance data PD(N) has stopped, this processing ends. However, if playback of the performance data PD(N) has started and the flag player_stage is "PLAY," the process proceeds to the next step SC2, where the track tick processing described below is executed.
[0053] Next, the process proceeds to step SC3, where it is determined whether the excite_set flag is "PLAY," that is, whether the reproduction of the exciting data MD(N) has started. If the excite_set flag is "STOP," meaning the reproduction of the exciting data MD(N) has stopped, the present process ends. However, if the reproduction of the exciting data MD(N) has started and the excite_set flag is "PLAY," the process proceeds to the next step SC4, where the exciting function tick process, described later, is executed.
[0054] (4) Track tick processing actions
[0055] Figure 5A This is a flowchart showing the operation of the track tick processing executed by CPU 13. Figure 4C ) step SC2 and execute this process, CPU13 makes the process enter Figure 5AIn step SD1 shown in the figure, it is determined whether the instruction execution timing has been reached. If the instruction execution timing has not been reached, the result of the determination is "No", and the process proceeds to step SD5 described later.
[0056] On the other hand, if the command execution timing is reached, the result of the determination in step SD1 becomes "Yes," and the process proceeds to step SD2. When the process proceeds to step SD2, the CPU 13 executes a track command process to reproduce the performance data PD(N) of the currently processed performance track. Specifically, in the track command process, the CPU 13 instructs the sound source unit 16 to produce the musical sound specified by the "command" and "value" contained in the command set of the performance data PD(N).
[0057] Next, when the process proceeds to step SD3 , the CPU 13 steps the read address of the performance data PD(N), and in the following step SD4 , acquires the next command set read out based on the stepped read address.
[0058] (5) Actions of intense function tick processing
[0059] Figure 5B This is a flowchart showing the action of the intense function tick processing executed by CPU13. Figure 4C When the step SC4 of ) is executed, the CPU 13 makes the process enter Figure 5B In step SE1 shown in the figure, it is determined whether the instruction execution timing has been reached. If the instruction execution timing has not been reached, the result of the determination is "No", and the process proceeds to step SE5 described later.
[0060] On the other hand, if the command execution timing is reached, the result of the judgment in step SE1 is "Yes," and the process proceeds to step SE2, where the intense command processing is executed. In the intense command processing, as described below, the difference value diff and the interval seg are obtained from the command set of the intense data MD(N) corresponding to the currently processed performance track. The flag sign_flag is set to "1 (positive)" or "0 (negative)" depending on the sign of the obtained difference value diff. The interval seg, which has been converted to a tick number, is then integer-divided by the difference value diff. This results in the number of ticks ticknum required for each difference value "1," and the counter ctr, which counts the number of ticks, is reset to zero.
[0061] Next, when the process proceeds to step SE3, the CPU 13 steps the read address of the intense data MD(N), and in the following step SE4, acquires the next instruction set to be read based on the stepped read address. Then, the process proceeds to step SE5 to execute the tick process.
[0062] In the tick processing, as described later, when the differential value diff is greater than "0" and the value of the counter ctr reaches the tick number ticknum, if the differential value diff before absolutization is "negative", the value of the control object specified by the command in the instruction set of the current processing object is decremented (subtracted), and the differential value diff is decremented (subtracted) and updated. On the other hand, if the differential value diff is "positive", the value of the control object specified by the command in the instruction set of the current processing object is incremented (added), and the differential value diff is decremented (subtracted) and updated, and then this processing is terminated.
[0063] (6) Actions for intense instruction processing
[0064] Figure 6 This is a flowchart showing the operation of the intense instruction processing executed by the CPU 13. Figure 5B ) step SE2 and execute this process, CPU13 makes the process enter the Figure 6 In step SF1 shown in the figure, a difference value diff and a segment seg are acquired from the instruction set currently being processed.
[0065] For example, when the instruction set currently being processed represents pitch bend, when the value of the differential value diff is "63", the value of the interval seg is "4 beats", and the time base (resolution) of the performance data PD(N) is "96", the interval seg is converted into the number of ticks and becomes "384" (4 beats × 96).
[0066] Next, in step SF2, a determination is made as to whether the difference value diff is less than 0. If the difference value diff is equal to or greater than 0, the determination is "No," and the process proceeds to step SF3, where the flag sign_flag is set to "0," indicating that the difference value diff is positive. On the other hand, if the difference value diff is less than 0, the determination in step SF2 is "Yes," and the process proceeds to step SE4, where the flag sign_flag is set to "1," indicating that the difference value diff is negative, and the difference value diff is multiplied by -1 to convert it into an absolute value.
[0067] Next, in step SF5, the interval seg (in ticks) is integer-divided by the difference value diff to obtain the number of ticks ticknum required for each difference value "1." In the example above, the number of ticks ticknum is "6" based on (4 beats × 96) / 63. This means that the difference value diff increases by "1" every six ticks. Then, in step SF6, the counter ctr counting the number of ticks is reset to zero, terminating the process.
[0068] Thus, during intense instruction processing, the difference value diff and interval seg are obtained from the instruction set currently being processed. Depending on the sign of the obtained difference value diff, the flag sign_flag is set to "1 (positive)" or "0 (negative)." The interval seg, which has been converted to a number of ticks, is then divided by the difference value diff by an integer to obtain the number of ticks ticknum required for each difference value of "1." Afterwards, the counter ctr, which counts the number of ticks, is reset to zero.
[0069] (7) Tick processing action
[0070] Figure 7 This is a flowchart showing the tick processing operation executed by the CPU 13. Figure 5B When the step SE5 of ) executes this process, the CPU 13 enters the process Figure 7 In step SG1 shown in the figure, it is determined whether the difference value diff is greater than "0". If the difference value diff is less than "0", the result of the determination is "no", and the current process ends. However, if the difference value diff is greater than "0", the result of the determination is "yes", and the process proceeds to the next step SG2.
[0071] In step SG2, it is determined whether the value of the counter ctr for counting the number of ticks has reached the value in the above instruction processing (refer to Figure 6 If the value of the counter ctr does not reach the tick number ticknum, the judgment result becomes "no", and the process goes to step SG8, and after the value of the counter ctr is incremented and stepped, the present process is temporarily ended.
[0072] If the value of the counter ctr reaches the tick number ticknum, the judgment result of step SG2 becomes "yes," and the process proceeds to step SG3. In step SG3, it is determined whether the flag sign_flag is "1," that is, whether the difference value diff is negative. If the difference value diff is negative, the judgment result becomes "yes," and the process proceeds to step SG4.
[0073] In step SG4 , for example, when the control object specified by the command included in the instruction set currently being processed is “pitch bend”, the current pitch bend value is decremented (“−1” subtraction).
[0074] On the other hand, if the flag sign_flag is "0," meaning the difference value diff is positive, the result of step SG3 is "No," and processing proceeds to step SG5. For example, if the control target specified by the command included in the currently processed command set is "pitch bend," the current pitch bend value is incremented ("+1" added). Furthermore, if the current pitch bend sensitivity value is "2" and the pitch bend value range is "0-127," a pitch bend value of "127" becomes "+2 (up 2 semitones)," a pitch bend value of "64" becomes "0 (center)," and a pitch bend value of "0" becomes "-2 (down 2 semitones)."
[0075] In this manner, when the value of counter ctr reaches the tick number ticknum and the value of the control object specified by command included in the instruction set currently being processed is incremented (added) or decremented (subtracted) and then completes, the process proceeds to step SG6, where the difference value diff is decremented (subtracted) and updated. Thereafter, the process proceeds to step SG7, where counter ctr is temporarily reset to zero. In the following step SG8, counter ctr is incremented and stepped for the next tick, terminating the process.
[0076] In this way, in the tick processing, when the differential value diff is greater than "0" and the value of the counter ctr reaches the tick number ticknum, if the differential value diff before absolutization is "negative", the value of the control object specified by the command in the instruction set of the current processing object is decremented (subtracted), and the differential value diff is also decremented (subtracted) and updated. On the other hand, if the differential value diff is "positive", the value of the control object specified by the command in the instruction set of the current processing object is incremented (added), and the differential value diff is decremented (subtracted) and updated.
[0077] As described above, in the first embodiment, intense data MD(N) consisting of an instruction set including an interval seg and a differential value diff is used, and the flag sign_flag is set to "1 (positive)" or "0 (negative)" according to the positive or negative sign of the differential value diff obtained from the instruction set of the current processing object, and the interval seg converted into the number of ticks is divided by integer using the differential value diff to obtain the number of ticks ticknum required for each differential value "1".
[0078] Then, when the differential value diff is greater than "0" and the value of the counter ctr reaches the tick number ticknum, if the differential value diff before absolutization is "negative", the value of the control object specified by the command in the instruction set of the current processing object is decremented (subtracted), and the differential value diff is also decremented (subtracted) and updated. On the other hand, if the differential value diff is "positive", the value of the control object specified by the command in the instruction set that is the current processing object is incremented (added), and the differential value diff is decremented (subtracted) and updated, thereby reducing the performance data capacity and being able to modify the performed sound subtly and continuously.
[0079] Furthermore, in the first embodiment, the performance data PD that changes control objects such as pitch and volume in addition to representing the pitch and sound timing of each note of each performance segment (instrument segment) constituting the music piece, like the above-mentioned intensity data MD(N), as long as it is composed of an instruction set having an interval seg and a differential value diff that expresses continuous changes, the performance data capacity can be reduced, and the performance sound to be played can also be produced subtly and continuously.
[0080] C. Second Implementation
[0081] Next, the operation of the command processing and tick processing of the second embodiment will be described. In the first embodiment, the maximum differential value per 1 tick is set to ±1, and it is not possible to follow the change of the rate above it. Therefore, in the second embodiment, the command processing and tick processing that can correspond to the change of the rate exceeding ±1 "differential value / tick" are performed. Figures 8 and 9 These operations are described below.
[0082] (1) Operation of the Intensive Command Processing in the Second Embodiment
[0083] Figure 8 This is a flowchart showing the operation of the intense instruction processing of the second embodiment executed by the CPU 13. As in the first embodiment described above, when the intense function tick processing (see Figure 5B ) step SE2 and execute this process, CPU13 enters Figure 8 In step SH1 shown in the figure, a difference value diff and a segment seg are obtained from the instruction set currently being processed.
[0084] For example, when the instruction set of the current processing object represents pitch bend, when the value of the differential value diff is "120", the value of the interval seg is "1 beat", and the time base (resolution) of the performance data PD(N) is "48", the interval seg is converted into the number of ticks and becomes "48" (1 beat × 48).
[0085] Next, in step SH2, a determination is made as to whether the difference value diff is less than "0." If the difference value diff is equal to or greater than "0," the determination is "No," and the process proceeds to step SH3, where the flag sign_flag is set to "0" to indicate that the difference value diff is positive. On the other hand, if the difference value diff is less than "0," the determination in step SH2 is "Yes," and the process proceeds to step SH4, where the flag sign_flag is set to "1" to indicate that the difference value diff is negative, and the difference value diff is multiplied by "-1" to convert it to an absolute value.
[0086] Then, when the process proceeds to step SH5, the value of X is calculated using the integer division of the following equation (1), and the initial value "1" is set for the value of Y. In the above example, when the value of the interval seg "48" and the value of the difference value diff "120" are substituted into the following equation (1), the value of X after the integer division becomes "0".
[0087] X = interval seg / (difference value diff - interval seg) ... (1)
[0088] Next, in step SH6, a determination is made as to whether the X value calculated using equation (1) is "0." If the X value is "0," the determination is "Yes," and the process proceeds to step SH7. In step SH7, the Y value is incremented by (Y+1) and stepped. In the following step SH8, the stepped (Y+1) value is multiplied by the value of the interval seg to calculate a SEG value that multiplies the interval seg by (Y+1). In the above example, the SEG value is "96" by multiplying 48 x 2.
[0089] Then, in step SH9, the value X is calculated by integer division according to the following equation (2). In the above example, when the value of the interval seg "48", the value of the difference value diff "120", and the SEG value "96" are substituted into the following equation (2), the value X after the integer division becomes "2".
[0090] X = interval seg / (difference value diff - SEG value) ... (2)
[0091] Thus, in steps SH6 to SH9, in the above example, when the Y value is "2," the X value becomes "2." That is, if the X value is other than "2," the Y value to be added (or subtracted) is set to "2," and if the X value is "2," the value to be added (or subtracted) is set to "3."
[0092] Thus, in the tick processing of the second embodiment described later, when the value of the counter ctr is other than "2", the value to be added (or subtracted) is set to "2", and when the value of the counter ctr is "2", the value to be added (or subtracted) is set to "3". Then, when the value of X calculated by the above formula (2) is other than "0", the result of the judgment in the above step SH6 becomes "No", and the process proceeds to step SH10, where the counter ctr counting the number of ticks is reset to zero, and the present process ends.
[0093] (2) Tick Processing Operations in the Second Embodiment
[0094] Figure 9 1 is a flowchart showing the tick processing operation of the second embodiment executed by the CPU 13. As in the first embodiment, after the above-mentioned intense function tick processing (see Figure 5B ) step SE5 and execute this process, CPU13 enters Figure 9 In the illustrated step SJ1, it is determined whether the difference value diff is greater than "0". If the difference value diff is less than "0", the result of the determination is "no", and the present process ends. However, if the difference value diff is greater than "0", the result of the determination is "yes", and the process proceeds to the next step SJ2.
[0095] In step SJ2, it is determined whether the value of the counter ctr for counting the number of ticks is the same as that of the counter ctr obtained by the above instruction processing (see Figure 8 If the value of the counter ctr is not consistent with the value of X, the judgment result becomes "no", and the process goes to step SJ5, and the above instruction processing (refer to Figure 8 )The calculated Y value is set as the change amount N and enters step SJ6.
[0096] On the other hand, when the value of the counter ctr is consistent with the value of X, the judgment result of the above step SJ2 becomes "yes", and the processing proceeds to the next step SJ3. In step SJ3, the above instruction processing (refer to Figure 8 ) is set as the change amount N and enters step SJ6.
[0097] Next, in step SJ6, a check is made to determine whether the flag sign_flag is "1," that is, whether the difference value diff is negative. If the difference value diff is negative, the result is "yes," and the process proceeds to step SJ7. In step SJ7, for example, if the control target specified by the command included in the currently processed command set is "pitch bend," the change amount N is subtracted from the current pitch bend value, and the process proceeds to step SJ9.
[0098] On the other hand, if the flag sign_flag is "0," meaning the difference value diff is positive, the result of step SJ6 is "No," and the process proceeds to step SJ8. In step SJ8, for example, if the control target specified by the command included in the currently processed command set is "pitch bend," the change amount N is added to the current pitch bend value, and the process proceeds to step SJ9. Then, in step SJ9, the change amount N is subtracted from the difference value diff to update the difference value diff. The process then proceeds to step SJ10, where the counter ctr is incremented for the next tick, terminating the process.
[0099] As described above, in the second embodiment, for example, when the Y value is determined to be "2" and the X value is determined to be "2" based on the difference value diff and the interval seg included in the instruction set currently being processed, if the value of the counter ctr that counts the number of ticks is other than "2", the amount of change N to be increased (or decreased) is set to "2" (Y). On the other hand, if the value of the counter ctr is "2", the amount of change N to be increased (or decreased) is set to "3" (Y+1).
[0100] Then, for example, if the control content specified by the command in the instruction set currently being processed is "pitch bend," a change amount N corresponding to the value of the counter ctr is added to (or subtracted from) the current pitch bend value, and the difference value diff is updated based on the added (or subtracted) change amount N. This allows for subtle and continuous modification of the performed notes while reducing data size and responding to changes in rate exceeding ±1 "difference value / tick."
[0101] The embodiments of the present invention have been described above, but the present invention is not limited to the above embodiments, and various modifications can be made in the implementation stage without departing from the scope of the main purpose. In addition, the functions performed in the above embodiments can also be implemented in combination as appropriately as possible. The above embodiments include various stages, and various inventions can be extracted by appropriately combining the multiple components disclosed. For example, even if several components are deleted from all the components shown in the embodiment, as long as the effect can be obtained, the structure from which the components are deleted can also be extracted as an invention.
[0102] Furthermore, in the above embodiment, a CPU (general-purpose processor) executes a program stored in a ROM (memory) to implement a control unit that performs various controls. However, each of the multiple controls may be assigned to a dedicated processor. In this case, each dedicated processor may be composed of a general-purpose processor (electronic circuit) capable of executing any program and a memory storing a control program specialized for each control, or may be composed of a dedicated electronic circuit specialized for each control.
[0103] In addition, the devices required to produce the various effects described above are not limited to the above-mentioned configurations, and may be configured as follows, for example.
[0104] (Configuration Example 1)
[0105] A musical sound reproduction device includes an interpolation unit (interpolation processing) that uses data in a memory to generate a plurality of interpolation data obtained by interpolating the input data corresponding to the above interval based on the values contained in the input data (instruction set) and related to the interval corresponding to the musical sound and the change amount of the above musical sound reproduced in the above interval.
[0106] (Configuration Example 2)
[0107] The musical sound reproducing device of Example 1 includes a sound source unit (sound source circuit) that generates musical sounds while sequentially changing in a manner to achieve the indicated musical sound state in response to receipt of instruction data indicating a musical sound state to be achieved.
[0108] It also includes a reproduction control unit that generates multiple indication data (MIDI data) for indicating the musical sound states that should be achieved at multiple timings within the above-mentioned interval based on the above-mentioned multiple interpolation data, and sends the generated multiple indication data to the above-mentioned sound source unit in sequence when reproducing the musical sound in the above-mentioned interval.
[0109] (Configuration Example 3)
[0110] In the musical sound reproducing device of the second configuration example, the memory stores intensity data that specifies a control object related to the generation of musical sound, a range for changing a set value of the control object, and an amount of change in the set value of the control object.
[0111] The above-mentioned reproduction control unit reads the above-mentioned intense data stored in the above-mentioned memory as the above-mentioned input data, and generates a plurality of indication data for gradually changing the set value for the above-mentioned control object by the above-mentioned change amount within the above-mentioned interval based on the read-in intense data, and when the musical sound in the above-mentioned interval is reproduced, the above-mentioned plurality of indication data generated are sent to the above-mentioned sound source unit in sequence.
[0112] (Configuration Example 4)
[0113] In the musical sound reproducing device of Example 3, the memory further stores performance data, the performance data specifying a plurality of control objects related to the generation of musical sounds, a plurality of setting values for the control objects, and a plurality of timings at which the setting values should be set for the control objects.
[0114] The above-mentioned regeneration control unit reads the above-mentioned performance data stored in the above-mentioned memory as the above-mentioned input data, and according to the read-in above-mentioned performance data, sets the musical sound state of each of the above-mentioned setting values for each of the above-mentioned control objects as the musical sound state to be realized, and sends it to the above-mentioned sound source unit in sequence at each timing.
[0115] (Configuration Example 5)
[0116] The musical sound reproducing device of Structural Example 4 further includes a setting unit that sets whether or not each of the performance data and the intensity data stored in the memory is to be used in the reproduction of the musical sound by the reproduction control unit.
[0117] (Configuration Example 6)
[0118] In the musical sound reproducing device of Configuration Example 3, the control target includes at least one of pitch, modulation, and volume.
[0119] (Configuration Example 7)
[0120] In the musical sound reproducing device of Example 1, the above-mentioned interpolation refers to interpolating the above-mentioned input data in a manner such that at least any one of the pitch, modulation and volume of the above-mentioned musical sound changes in the above-mentioned interval based on an identifier representing at least any one of the pitch, modulation and volume contained in the above-mentioned input data in the form of an instruction set.
[0121] (Configuration Example 8)
[0122] In the musical sound reproducing device of the second configuration example, the sound source section determines the minimum unit time and the minimum change amount that can change the state of the generated musical sound once.
[0123] The regeneration control unit is configured to, under the constraints of the minimum unit time and the minimum change amount,
[0124] When the number of times the state of the musical sound can be changed within the above interval is greater than the number of times required to change the above amount of change in stages, the above plurality of indication data are generated based on either a method of changing the state of the musical sound by the above minimum amount of change per the above minimum unit time or by the above minimum amount of change per a plurality of the above minimum unit time.
[0125] When the number of times the state of the generated musical sound can be changed within the above-mentioned interval is less than the number of times required to change the above-mentioned change amount in stages, the above-mentioned multiple indication data are generated based on any one of the changing methods of changing the state of the generated musical sound by the above-mentioned minimum change amount per the above-mentioned minimum unit time, or by multiple above-mentioned minimum change amounts per the above-mentioned minimum unit time.
[0126] (Configuration Example 9)
[0127] The musical sound reproducing device of the first structural example further comprises a calculation unit for calculating a time resolution required for a certain integer value of the variation when the resolution of the interval is greater than the variation.
[0128] The regeneration control unit is:
[0129] The musical sound is reproduced by interpolating the input data so that the musical sound changes by the integer value at every time corresponding to the time resolution.
[0130] (Configuration Example 10)
[0131] The musical sound reproduction device of Example 1 includes an x calculation unit that, when the resolution of the interval is smaller than the amount of change, repeatedly calculates x by incrementing the value of y by 1 until x becomes equal to or greater than 1, when the time resolution calculated by setting the integer value y in Formula 1 to 1 and the integer value after the decimal point is rounded off, i.e., x is 0.
[0132]
Formula 1
[0133] x = interval resolution / (change - y × interval resolution),
[0134] The regeneration control unit is:
[0135] The musical sound is reproduced by interpolating the input data by incrementing the integer value y by 1 for each time resolution x calculated by the x calculation unit and not incrementing the integer value y for time resolutions other than x.
[0136] (Configuration Example 11)
[0137] In the musical sound reproducing device of the fourth embodiment, the memory stores the performance data and the pulsation data in correspondence with the plurality of tracks, respectively.
[0138] The reproduction control section reproduces the musical sounds of a plurality of tracks simultaneously and in parallel based on the performance data and the intensity data stored corresponding to the respective tracks.
[0139] (Configuration Example 12)
[0140] An electronic musical instrument, characterized by comprising:
[0141] The musical sound reproducing device of any one of the configuration examples 1 to 11; and
[0142] The performance control section sequentially generates instruction data for instructing a musical sound state to be achieved according to a performance input operation, and sequentially instructs the sound source section on the musical sound state to be achieved based on the sequentially generated instruction data.
[0143] (Configuration Example 13)
[0144] In the electronic musical instrument of Example 12, it is characterized in that
[0145] Having a keyboard with a plurality of keys,
[0146] The performance input operation is an operation based on the performance of the keyboard.
Claims
1. A musical sound reproduction device comprising: a sound source section that, upon receiving instruction data for instructing a musical sound state to be achieved, generates the musical sound while sequentially changing so as to achieve the instructed musical sound state; a storage unit storing performance data specifying set values for a plurality of control objects related to the generation of musical sounds and timings at which the set values should be set for the control objects, and a dynamic data specifying intervals within which the set values of the control objects are to be changed and amounts of change in the set values of the control objects; an interpolation unit that, when the input data includes a value related to the interval and an amount of change in the set value of the controlled object reproduced in the interval, generates a plurality of interpolation data by interpolating the input data corresponding to the interval based on the interval and the amount of change; and The reproducing unit generates a plurality of instruction data for indicating musical sound states to be achieved at a plurality of timings within the interval based on the plurality of interpolation data, and sequentially transmits the generated plurality of instruction data to the sound source unit when reproducing the musical sound in the interval. The above-mentioned regeneration section, when the above-mentioned performance data stored in the above-mentioned storage section is read as the above-mentioned input data, does not generate the above-mentioned multiple interpolation data through the above-mentioned interpolation section, but uses the above-mentioned respective set values specified by the above-mentioned performance data as the above-mentioned indication data, and sends them sequentially to the above-mentioned sound source section at each timing specified by the above-mentioned performance data. When the above-mentioned intense data stored in the above-mentioned storage section is read as the above-mentioned input data, the above-mentioned multiple interpolation data interpolated by the above-mentioned interpolation section are respectively used as the above-mentioned indication data based on the above-mentioned interval and the above-mentioned change amount specified by the above-mentioned intense data, and are sent sequentially to the above-mentioned sound source section.
2. The musical sound reproduction device according to claim 1, wherein The interpolation unit generates a plurality of interpolation data for changing the set value for the control object by the amount of change in stages within the interval based on the interval and the amount of change specified by the extreme data.
3. The musical sound reproduction device according to claim 1 or 2, wherein: The apparatus further includes a setting unit configured to set whether or not each of the performance data and the intensity data stored in the storage unit is to be used for reproduction of musical sounds by the reproduction unit.
4. The musical sound reproduction device according to any one of claims 1 to 3, wherein: The control object includes at least one of pitch, modulation and volume. The interpolation unit interpolates the input data in a manner such that at least one of the pitch, modulation and volume of the musical sound changes within the interval based on an identifier indicating at least one of the pitch, modulation and volume contained in the input data in the form of an instruction set.
5. The musical sound reproduction device according to any one of claims 1 to 4, wherein: The sound source section is configured such that the minimum unit time and the minimum change amount that can change the state of the generated musical sound once are determined. The interpolation unit is, under the constraints of the minimum unit time and the minimum change amount, When the number of times the state of the musical sound can be changed within the above interval is greater than the number of times required to change the above amount of change in stages, the above plurality of indication data are generated based on either a method of changing the state of the musical sound by the above minimum amount of change per the above minimum unit time or by the above minimum amount of change per a plurality of the above minimum unit time. When the number of times the state of the generated musical sound can be changed within the above-mentioned interval is less than the number of times required to change the above-mentioned change amount in stages, the above-mentioned multiple interpolation data are generated based on any one of the changing methods of changing the state of the generated musical sound by the above-mentioned minimum change amount per the above-mentioned minimum unit time, or by changing multiple above-mentioned minimum change amounts per the above-mentioned minimum unit time.
6. The musical sound reproducing device according to claim 5, wherein: The interpolation unit further includes a first calculation unit for calculating a time resolution required to change the minimum change amount per a plurality of the minimum unit times when the number of times the state of the musical sound can be changed within the interval is greater than the number of times required to change the change amount in stages. The interpolation data is generated by interpolating the input data so that the state of the musical sound changes by an integer value at each time corresponding to the time resolution calculated by the first calculation unit.
7. The musical sound reproducing device according to claim 5, wherein: The interpolation unit includes a second calculation unit that, when the number of times the state of the musical sound can be changed within the interval is less than the number of times required to change the amount of change in stages, uses Formula 1 for calculating the time resolution x with an initial value of the integer value y set to 1, performs integer division on the time length of the interval converted to the number of the minimum unit time by subtracting the result obtained by multiplying the integer value y by the time length from the amount of change, and repeatedly calculates x by incrementing the value of y by 1 until x becomes equal to or greater than 1. 【Formula 1】 x = the time length of the interval / (amount of change - y × the time length of the interval), The interpolated data is generated by interpolating the input data so that the state of the musical sound changes by an integer value y+1 for each time resolution x calculated by the second calculation unit and the state of the musical sound becomes the integer value y for time resolutions other than x.
8. An electronic musical instrument, characterized in that have: The musical sound reproduction device according to any one of claims 1 to 7; and The performance control section sequentially generates instruction data for instructing a musical sound state to be achieved according to a performance input operation, and sequentially instructs the sound source section on the musical sound state to be achieved based on the sequentially generated instruction data.
9. A method for reproducing musical sound, characterized in that: Executed by a device comprising: a sound source section that, upon receiving instruction data for instructing a musical sound state to be achieved, generates the musical sound while sequentially changing so as to achieve the instructed musical sound state; a storage unit storing performance data and a dynamic data unit, wherein the performance data specifies setting values for a plurality of control objects related to the generation of musical sounds and timings at which the setting values should be set for the control objects, and the dynamic data unit specifies intervals within which the setting values of the control objects are to be changed and amounts of change in the setting values of the control objects. The above-mentioned musical sound regeneration method comprises: When reproducing musical sounds based on input data, if a value related to the interval and the amount of change in the set value of the control object reproduced in the interval is included in the input data, generating a plurality of interpolated data by interpolating the input data corresponding to the interval based on the interval and the amount of change; a process of generating a plurality of instruction data for indicating musical sound states to be achieved at a plurality of timings within the interval based on the plurality of interpolation data; and The sound source circuit sequentially transmits the plurality of instruction data generated during the reproduction of the musical sound in the above-mentioned interval to the sound source circuit in order to generate the musical sound while sequentially changing the musical sound state indicated by the instruction data. When the performance data stored in the storage unit is read in as the input data, the plurality of interpolation data are not generated. Instead, the respective setting values specified by the performance data are used as the indication data and are sequentially sent to the sound source unit at the respective timings specified by the performance data. When the intense data stored in the storage unit is read in as the input data, the plurality of interpolation data after interpolation are respectively used as the indication data based on the interval and the variation specified by the intense data and are sequentially sent to the sound source unit.
10. A recording medium, which is a computer-readable storage medium, characterized in that: The program recorded on the storage medium is executed by a device, the device comprising: a sound source section that, upon receiving instruction data for instructing a musical sound state to be achieved, generates the musical sound while sequentially changing so as to achieve the instructed musical sound state; a storage unit storing performance data and a dynamic data unit, wherein the performance data specifies setting values for a plurality of control objects related to the generation of musical sounds and timings at which the setting values should be set for the control objects, and the dynamic data unit specifies intervals within which the setting values of the control objects are to be changed and amounts of change in the setting values of the control objects. The recording medium causes the apparatus to execute: When reproducing musical sounds based on input data, if a value related to the interval and the amount of change in the set value of the control object reproduced in the interval is included in the input data, generating a plurality of interpolated data by interpolating the input data corresponding to the interval based on the interval and the amount of change; a process of generating, based on the plurality of interpolation data, a plurality of instruction data for indicating musical sound states to be achieved at a plurality of timings within the interval; as well as The sound source circuit sequentially transmits the plurality of instruction data generated during the reproduction of the musical sound in the above-mentioned interval to the sound source circuit in order to generate the musical sound while sequentially changing the musical sound state indicated by the instruction data. When the performance data stored in the storage unit is read in as the input data, the plurality of interpolation data are not generated. Instead, the respective setting values specified by the performance data are used as the indication data and are sequentially sent to the sound source unit at the respective timings specified by the performance data. When the intense data stored in the storage unit is read in as the input data, the plurality of interpolation data after interpolation are respectively used as the indication data based on the interval and the variation specified by the intense data and are sequentially sent to the sound source unit.
Citation Information
Patent Citations
Automatic music player and automatic music playing method
JP2002169547A
Apparatus for controlling music reproduction and apparatus for reproducing music
CN101002985A
Music performance apparatus and tone generation method
CN101034546A
Incremental-type speech online synthesis method based on statistic parameter model
CN102592594A
Sound generation device and sound generation method
CN103325365A