Electronic musical instrument, method, and program
The electronic musical instrument allows users to quickly specify the playback start position by using performance operators and a processor to determine a fast-rewind time, addressing the challenge of manual dial selection.
Patent Information
- Application Number
- JP2025248145
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-12-15
- Publication Date
- 2026-02-24
AI Technical Summary
Existing electronic musical instruments require users to manually turn a dial to specify the playback start position, making it difficult to quickly locate the desired playback start point.
An electronic musical instrument equipped with performance operators, a storage unit, and a processor that determines a fast-rewind time from the most recent recording point, allowing quick specification of the playback start position by operating one of the performance operators.
Enables users to quickly and intuitively specify the playback start position, reducing operational burden and enhancing playback efficiency.
Smart Images

Figure 2026031802000001_ABST
Abstract
Description
[Technical Field]
[0001] The disclosure herein relates to electronic musical instruments, methods and programs. [Background technology]
[0002] There is known an electronic musical instrument that can record and play back a performance by a user (see, for example, Patent Document 1). The electronic musical instrument described in Patent Document 1 is provided with a playback switch and a dial. When a user operates the dial to specify a recorded performance piece and presses the playback switch, this electronic musical instrument plays back the performance piece. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2008-152054 Summary of the Invention [Problem to be solved by the invention]
[0004] In the electronic musical instrument described in Patent Document 1, the user must turn a dial to find the piece of music that will be the playback start position, which can make it difficult to quickly specify the playback start position.
[0005] The present invention has been made in view of the above circumstances, and an object of the present invention is to provide an electronic musical instrument, method, and program that allows a user to quickly specify a playback start position. [Means for solving the problem]
[0006] An electronic musical instrument according to one embodiment of the present invention comprises a plurality of performance operators, a storage unit in which performance data corresponding to the user's performance operation each time the user operates one of the plurality of performance operators, and at least one processor. When the user operates one of the plurality of performance operators in a first operation state, the at least one processor determines a fast-rewind time from the most recent recording point of the performance data stored in the storage unit, the fast-rewind time corresponding to the operated performance operator, and starts outputting the performance data from a playback start position of the performance data in the storage unit that corresponds to the fast-rewind time. [Effects of the Invention]
[0007] According to one embodiment of the present invention, there are provided an electronic musical instrument, a method, and a program that allow a user to quickly specify a playback start position. [Brief explanation of the drawings]
[0008] [Figure 1] 1 is a diagram showing the appearance of an electronic musical instrument according to an embodiment of the present invention; [Figure 2] 1 is a block diagram showing the configuration of an electronic musical instrument according to an embodiment of the present invention; [Figure 3] 1 is an explanatory diagram illustrating writing of performance data to a ring buffer provided in an electronic musical instrument according to an embodiment of the present invention. FIG. [Figure 4] FIG. 2 is a state transition diagram of a processor provided in the electronic musical instrument according to one embodiment of the present invention. [Figure 5A] FIG. 10 is an explanatory diagram illustrating writing performance data to a ring buffer in an embodiment of the present invention. [Figure 5B] FIG. 10 is an explanatory diagram illustrating writing performance data to a ring buffer in an embodiment of the present invention. [Figure 6] 10A and 10B are explanatory diagrams relating to a playback start point in response to a key depression operation on a white key of an electronic musical instrument according to an embodiment of the present invention. [Figure 7]10A and 10B are diagrams illustrating an example of fast-rewind processing in response to a key depression operation on a white key of an electronic musical instrument according to an embodiment of the present invention. [Figure 8] 10A and 10B are explanatory diagrams relating to a playback start point in response to a key depression operation on a black key of an electronic musical instrument according to an embodiment of the present invention. [Figure 9] 10A and 10B are diagrams showing an example of processing timing when playing back performance data in one embodiment of the present invention. [Figure 10] 10 is a flowchart of a recording process executed by a processor in one embodiment of the present invention. [Figure 11] This is a subroutine of the recording task (step S102) shown in FIG. [Figure 12] 10 is a flowchart of a playback process executed by a processor in one embodiment of the present invention. [Figure 13] 13 is a subroutine of the playback start point determination process (step S301) shown in FIG. [Figure 14] This is a subroutine of the output task (step S305) shown in FIG. DETAILED DESCRIPTION OF THE INVENTION
[0009] An electronic musical instrument according to an embodiment of the present invention, and a method and program executed by the electronic musical instrument, which is an example of a computer, will be described in detail with reference to the drawings.
[0010] FIG. 1 is a diagram showing the appearance of an electronic musical instrument 1 according to an embodiment of the present invention. FIG. 2 is a block diagram showing the configuration of the electronic musical instrument 1. The electronic musical instrument 1 is, for example, an electronic keyboard. The electronic musical instrument 1 may also be an electronic keyboard instrument other than an electronic keyboard, such as an electronic piano. The electronic musical instrument 1 may also be another type of electronic musical instrument, such as an electronic percussion instrument, an electronic wind instrument, or an electronic string instrument.
[0011] The electronic musical instrument 1 includes, as its hardware configuration, a processor 10, a RAM (Random Access Memory) 11, a flash ROM (Read Only Memory) 12, a keyboard 13, a pedal unit 14, a switch panel 15, a key scanner 16, a sound source LSI (Large Scale Integration) 17, a D / A converter 18, an amplifier 19, and a speaker 20. The various components of the electronic musical instrument 1 are connected via a bus 21.
[0012] The processor 10 reads out the programs and data stored in the flash ROM 12. The processor 10 controls the electronic musical instrument 1 in an integrated manner by using the RAM 11 as a work area.
[0013] The processor 10 may be, for example, a single processor or a multi-processor, and includes at least one processor. When multiple processors are included, the processor 10 may be packaged as a single device, or may be configured as multiple devices that are physically separated within the electronic musical instrument 1. The processor 10 may be called, for example, a control unit, a CPU (Central Processing Unit), an MPU (Micro Processor Unit), or an MCU (Micro Controller Unit).
[0014] The processor 10 includes an RTC (Real Time Clock) 10A. The RTC 10A generates and outputs digital data (an example of system time) of the date and time.
[0015] The RAM 11 temporarily stores data and programs, and stores various programs read from the flash ROM 12 and various data such as waveform data.
[0016] 2, a first memory section 11A and a second memory section 11B are allocated in the RAM 11. The second memory section 11B is an example of a memory section separate from the first memory section 11A. The memory section allocating the first memory section 11A and the memory section allocating the second memory section 11B may be separate.
[0017] 3 is an explanatory diagram regarding writing of performance data D to the first storage unit 11A. The first storage unit 11A is an example of a ring buffer, and operates as a FIFO (First In First Out) buffer in which the beginning (Buffer[0]) and the end (Buffer[MAX]) are logically linked.
[0018] 3, the processor 10 writes the performance data D into the first storage unit 11A sequentially from the beginning (Buffer[0]) to the end (Buffer[MAX]). The performance data D is data generated by the processor 10 for each performance operation performed on one performance operator.
[0019] That is, the first storage unit 11A is an example of a storage unit that stores performance data D corresponding to the operation each time the user operates one of the multiple performance operators. In addition, the first storage unit 11A is an example of a ring buffer that stores first performance data D corresponding to the operation of a key, which is an example of a performance operator, each time the user operates a key, and stores second performance data D corresponding to the operation of a pedal, which is an example of a second operator, each time the user operates a pedal.
[0020] In addition, the first memory unit 11A is an example of a first memory area (ring buffer area) that stores performance data D (an example of first performance data) corresponding to operations on the performance controls and performance data (performance data P described below, such as setting change information for tone colors and various effects, an example of second performance data) corresponding to operations on the second controls.
[0021] When processor 10 has written performance data D up to the end (Buffer[MAX]) of first storage unit 11A, processor 10 moves the recording pointer (latest recording point PT2, described later) to the beginning (Buffer[0]) of first storage unit 11A. After moving the recording pointer, processor 10 again writes performance data D sequentially from the beginning (Buffer[0]).
[0022] The performance data D includes various information such as a differential time Da, a command type Db, and command data Dc.
[0023] The differential time Da is an example of differential time information. The differential time Da is the difference between the time (time) when the user last operated one of the performance operators and the time (time) when the user currently operates one of the performance operators. As an example, when the user operates one key on the keyboard 13 and then operates another key, the time difference between these two performance operations is the differential time Da. The processor 10 obtains the time when the performance operation was performed (an example of system time) from the RTC 10A.
[0024] The command type Db includes note on, note off, control change, and the like.
[0025] The command data Dc includes a key number, velocity, part, pedal type, part, data value, and the like.
[0026] When the recording pointer moves to the beginning (Buffer[0]) of the first storage unit 11A and new performance data D is written, the performance data D stored in that write area is overwritten with the new performance data D. As will be described in detail later, the second storage unit 11B stores pedal performance data D that would be erased by overwriting in the first storage unit 11A. In other words, the second storage unit 11B is an example of a second storage area that stores second performance data.
[0027] The performance data D in the first storage section 11A and the second storage section 11B is erased when the power to the electronic musical instrument 1 is turned off.
[0028] The flash ROM 12 is a non-volatile semiconductor memory such as a flash memory, an EPROM (Erasable Programmable ROM), an EEPROM (Electrically Erasable Programmable ROM), etc. The flash ROM 12 stores, as an example, a control program 12A that executes various processes according to an embodiment of the present invention.
[0029] The keyboard 13 has 88 keys that are performance controls. Specifically, the keyboard 13 has 52 white keys 13W and 36 black keys 13B. Each key is associated with a different pitch. The electronic musical instrument 1 produces musical tones in response to the depression of the keys on the keyboard 13.
[0030] The number of keys on the keyboard 13 is not limited to 88. The keyboard 13 may have other numbers of keys, such as 61 keys or 76 keys.
[0031] The pedal unit 14 includes three pedals that are performance controls. Specifically, the pedal unit 14 includes a damper pedal, a soft pedal, and a sostenuto pedal. When a user presses a key while depressing a pedal, the electronic musical instrument 1 performs sound generation processing by adding a sound effect associated with the pedal that is being pressed to the musical tone.
[0032] That is, the pedal unit 14 is an example of a second operator that adds an effect (for example, a sound effect) to a musical sound corresponding to a key, which is an example of a performance operator.
[0033] The switch panel 15 includes a power button B0, a record button B1, and a play / stop button B2. For convenience, the switch panel 15 also includes other controls for adjusting parameters such as volume and tone, and for selecting items.
[0034] The user can turn the power of the electronic musical instrument 1 on or off by pressing the power button B0. The user can record a performance performed using the electronic musical instrument 1 by pressing the record button B1. The user can play and stop the performance data D stored in the electronic musical instrument 1 by pressing the play / stop button B2.
[0035] For convenience, the power button B0, the record button B1, and the play / stop button B2 may be abbreviated as buttons B0, B1, and B2, respectively.
[0036] The switch panel 15 may include operators other than the buttons B0 to B2.
[0037] The key scanner 16 monitors key presses and releases on the keyboard 13. For example, when the key scanner 16 detects a key press by the user, it outputs a key press event to the processor 10. The key press event includes information about the pitch of the key related to the key press (key number). The key number is also called a key number, a MIDI (Musical Instrument Digital Interface) key, or a note number.
[0038] In this embodiment, a separate means is provided for measuring the key pressing speed (velocity), and the velocity measured by this means is also included in the key pressing event. For example, multiple contact switches are provided for each key. The velocity is measured based on the difference in the time that each contact switch remains conductive when the key is pressed. Velocity can be considered a value that indicates the strength of the key pressing operation, and also a value that indicates the loudness (volume) of the musical sound.
[0039] The waveform data is stored in flash ROM 12 or another memory (not shown). This waveform data is loaded into RAM 11 during startup of electronic musical instrument 1 so that musical tones are quickly generated in response to key presses. When key scanner 16 detects a key press, processor 10 instructs sound source LSI 17 to read corresponding waveform data from the waveform data loaded into RAM 11. The waveform data to be read is determined, for example, by the tone color selected by the user and the key press event.
[0040] The tone generator LSI 17 generates musical tones based on waveform data read from the RAM 11 under the instruction of the processor 10. The tone generator LSI 17 has, for example, 128 generator sections and can simultaneously generate up to 128 musical tones. In this embodiment, the processor 10 and the tone generator LSI 17 are configured as separate processors, but in another embodiment, the processor 10 and the tone generator LSI 17 may be configured as a single processor.
[0041] The digital musical sound data generated by the sound source LSI 17 is converted into an analog signal by a D / A converter 18, and then amplified by an amplifier 19 and output to a speaker 20.
[0042] 4 is a state transition diagram of the processor 10. As shown in FIG. 4, the processor 10 alternates between three states: a standby state ST1, a recording state ST2, and a playback state ST3. The standby state ST1 is a state in which the processor waits for recording and playback of a performance by the user on the electronic musical instrument 1. The recording state ST2 is a state in which the processor records a performance by the user on the electronic musical instrument 1. The playback state ST3 is a state in which the processor plays back (replays) the recorded performance.
[0043] When the power of the electronic musical instrument 1 is off, if the user presses the power button B0, the electronic musical instrument 1 starts up, causing the processor 10 to enter a standby state ST1.
[0044] When the user performs a performance operation in standby state ST1, processor 10 transitions to recording state ST2. This performance operation is a key press operation on any of the keys on keyboard 13 or a pedal depression operation on any of the pedal unit 14. That is, processor 10 transitions from standby state ST1 to recording state ST2 in response to an operation on any of the performance controls. In this way, recording starts automatically when the user begins playing. This allows the user to record their performance without any operational burden.
[0045] When the processor 10 transitions to the recording state ST2, it starts the recording process. The recording process is a process in which, each time the user operates one of the performance controls, performance data D corresponding to that operation is stored in the first storage unit 11A. This recording process is executed, for example, at a 1 ms cycle (an example of a first cycle). The above "user operates one of the performance controls" means that the user operates one of the 52 white keys 13W, one of the 36 black keys 13B, or one of the three pedals. "ms" stands for milliseconds.
[0046] In this way, when in recording state ST2, processor 10 executes the process of storing performance data D in first storage unit 11A in response to user operations on performance controls at a first cycle (1 ms cycle).
[0047] 5A and 5B are explanatory diagrams regarding writing performance data D into first storage unit 11A. Hereinafter, when distinguishing between note performance data D and pedal performance data D, for convenience, note performance data D will be referred to as "performance data N" and pedal performance data D will be referred to as "performance data P."
[0048] The oldest recording point PT1 indicates the storage position of the oldest performance data D among the performance data D currently stored in the first storage section 11A.
[0049] The latest recording point PT2 indicates the position where performance data D corresponding to the next performance operation is to be stored.
[0050] The playback start point PT3 indicates the position in the first storage unit 11A at which the output of the performance data D starts during playback processing. The playback start point PT3 is an example of a first position corresponding to a first time (the time specified by the user in a fast-rewind operation) prior to a predetermined reference time (the time at which the performance data D corresponding to the next operation on the performance controls is stored, which is the time indicated by the latest recording point PT2).
[0051] In order to fast-rewind the performance data D, it is necessary to internally fast-forward from the earliest recording point PT1 to the playback start point PT3 due to the structure of the format of the performance data D. That is, the processor 10 fast-forward reads the data in the first memory unit 11A from the earliest recording point PT1 to the playback start point PT3, and starts playing the performance data D from the playback start point PT3 (in other words, outputting the performance data D to the sound source LSI 17).
[0052] The example in Figure 5A shows a state in which performance data D has been written from the beginning (Buffer[0]) to partway through the first storage unit 11A. In the example in Figure 5A, performance data D has not been written up to the end (Buffer[MAX]) of the first storage unit 11A. Therefore, at this stage, the performance data D will not be overwritten or erased in the first storage unit 11A. In the example in Figure 5A, performance data D is not stored in the second storage unit 11B. For convenience, the write area for performance data D corresponding to the next performance operation will be referred to as "write area W1."
[0053] 5A, the processor 10 fast-forwards data from the first storage unit 11A from the earliest recording point PT1 to the playback start point PT3, and updates the pedal operation setting values in accordance with the performance data P1 read during fast-forward (for example, by writing the pedal operation setting values based on the performance data P1 in the header chunk of an SMF (Standard MIDI File) and outputting the result to the sound source LSI 17). As a result, when playback starts from the playback start point PT3, sound effects according to the performance data P1 are added to the musical tones, and sound generation processing is performed.
[0054] That is, when the first storage unit 11A contains second performance data (for example, performance data P), the processor 10 instructs the sound source LSI 17 to generate musical tones based on the performance data P in the playback state, thereby causing the sound source LSI 17 to perform the generation process.
[0055] The example in Figure 5B shows a state in which recording processing has continued from the state in Figure 5A. In Figure 5B, the newly written performance data D from the state in Figure 5A is referred to as "performance data D'." In the example in Figure 5B, performance data D is written up to the end (Buffer[MAX]) of first storage unit 11A, the recording point returns to the beginning (Buffer[0]), and new performance data D' is written sequentially from the beginning (Buffer[0]). The pedal performance data P1 in first storage unit 11A has been overwritten with the new performance data D' and is erased.
[0056] When the processor 10 fast-forwards the playback process from the oldest recording point PT1 to the playback start point PT3 in the first storage unit 11A, the pedal performance data P1 has been overwritten and erased, so the processor 10 cannot obtain the setting values corresponding to the performance data P1. In this case, when playback starts from the playback start point PT3, the sound generation process is performed without adding the sound effects corresponding to the performance data P1 to the musical tones.
[0057] Therefore, if pedal performance data P is already stored in an area in first storage unit 11A where new performance data D' is to be written, processor 10 stores the performance data P in that area in second storage unit 11B, which is separate from first storage unit 11A, and then overwrites the performance data P in that area with the new performance data D'. In other words, when processor 10 overwrites performance data P (an example of second performance data) stored in first storage unit 11A (an example of the first storage area) during recording, it stores the overwritten performance data P in second storage unit 11B (an example of the second storage area).
[0058] In addition, each time the processor 10 overwrites the performance data P in the first storage unit 11A with new performance data D', it updates the performance data P stored in the second storage unit 11B to the performance data P that will be deleted from the first storage unit 11A by the overwrite.
[0059] As a preprocessing step for the fast-forward process, processor 10 checks whether or not there is performance data P in second storage unit 11B. If performance data P is stored in second storage unit 11B, processor 10 updates the settings related to pedal performance in accordance with the performance data P, and then fast-forward reads data from first storage unit 11A from the oldest recording point PT1 to the playback start point PT3. As a result, even if the performance data P has been overwritten and lost, processor 10 can add sound effects corresponding to the performance data P to the musical tones when playback starts from playback start point PT3 (i.e., add appropriate sound effects to the musical tones that faithfully reproduce the user's recorded performance) and perform sound generation processing.
[0060] In this way, when the processor 10 plays back the performance data D, it outputs the pedal performance data P stored in the second memory unit 11B by reflecting it in the oldest performance data N among the performance data N stored in the first memory unit 11A.
[0061] That is, in the playback state, the processor 10 instructs the sound source LSI 17 to generate musical tones based on the performance data D (an example of first performance data) stored in the first memory unit 11A (an example of the first memory area) and the performance data P (an example of second performance data) stored in the second memory unit 11B (an example of the second memory area), thereby causing the sound source LSI 17 to perform the generation process.
[0062] In addition, when the processor 10 fast-forwards the first memory unit 11A from the oldest recording point PT1 to the playback start point PT3, if second performance data (e.g., performance data P or setting change information described below) is stored in the second memory unit 11B, the processor 10 changes the setting information for the performance data D in the first memory unit 11A, such as adding sound effects based on the performance data P or changing the tone color based on the setting change information, and instructs the sound source LSI 17 to start producing sound from the playback start point PT3, causing the sound source LSI 17 to perform the sound production process.
[0063] In the recording state ST2, when the user presses the record button B1 for a short time or for a long time, the processor 10 stops recording (storing the performance data D in response to the performance operation) and returns to the standby state ST1.
[0064] In the standby state ST1 (or the recording state ST2), when the user briefly presses the play / stop button B2 or presses any key while pressing the play / stop button B2, the processor 10 transitions to the playback state ST3.
[0065] When the user briefly presses the play / stop button B2, the processor 10 determines a playback start point PT3 in the first storage unit 11A and starts playing the performance data D from the determined playback start point PT3. For example, the processor 10 determines a point a fixed time (e.g., 10 seconds) before the latest recording point PT2 as the playback start point PT3 and starts playing the performance data D.
[0066] When the user performs a key depression operation on any key while pressing the play / stop button B2, the processor 10 starts playing back the performance data D from a playback start point PT3 corresponding to the key depression operation.
[0067] 6 is an explanatory diagram of the playback start point PT3 when the user presses the white key 13W while pressing the play / stop button B2. Fig. 6 shows a schematic diagram of the relationship between the white key 13W pressed by the user and the fast-rewind time.
[0068] There are 52 white keys 13W, each corresponding to a range from A0 to C8. As shown in Fig. 6, the processor 10 determines the fast-rewind time during playback depending on the white key 13W that is pressed. For example, the processor 10 lengthens the fast-rewind time as a white key 13W corresponding to a higher range is pressed (in other words, as a white key 13W located further to the right in Fig. 6 is pressed).
[0069] The fast-rewind time is calculated using the following formula (1).
[0070] Formula (1) Rewind time (s) = n x 5 (s) + 10 (s) However, (s) indicates the unit of seconds.
[0071] Processor 10 associates a value n (an example of a first value) with each of white keys 13W in the range A0 to C8 and stores the value. Value n is any value between 1 and 52. The lower the range of a white key 13W, the smaller the value of n associated with that white key.
[0072] The smallest value n, "1," is assigned to the white key 13W in the lowest range A0 of the range A0 to C8. The value n increases by 1 for each new note in the white key 13W range. Therefore, the largest value n, "52," is assigned to the white key 13W in the highest range C8 of the range A0 to C8.
[0073] The processor 10 acquires the value n associated with the white key 13W pressed by the user, and substitutes the acquired value n into the above formula (1) to calculate the fast-rewind time (an example of the first time).
[0074] For example, if the user presses the white key 13W in the A0 range while pressing the play / stop button B2, the processor 10 calculates a fast-rewind time of 15 seconds. For example, if the user presses the white key 13W in the C2 range while pressing the play / stop button B2, the processor 10 calculates a fast-rewind time of 60 seconds. For example, if the user presses the white key 13W in the C8 range while pressing the play / stop button B2, the processor 10 calculates a fast-rewind time of 270 seconds.
[0075] In this way, the user can specify a short rewind time by pressing a white key 13W in a low range. The user can specify a long rewind time by pressing a white key 13W in a high range. The user can grasp the length of the rewind time based on the range and position of the white key 13W to be pressed, allowing for intuitive rewind operation.
[0076] The processor 10 determines the playback start point PT3 to be a position (an example of a first position) corresponding to the point going back from the latest recording point PT2 (an example of a predetermined reference point) by the fast-rewind time (an example of a first time) calculated using the above formula (1).
[0077] 7 is a diagram illustrating an example of fast-rewind processing that is executed when the user presses the white key 13W while pressing the play / stop button B2. In FIG. 7, "cumulative Da" is the cumulative total of the differential times Da, and indicates the time obtained by adding up the differential times Da of each performance data D in order from the earliest recording point PT1. As an example, the cumulative Da from the earliest recording point PT1 to the performance data D next to it is 739 ms, which is 313 ms plus 426 ms.
[0078] In the example of Figure 7, the cumulative Da of the latest recording point PT2 is 123,656 ms. If the user presses the white key 13W in the C2 range while pressing the Play / Stop button B2, the fast-rewind time is calculated as 60,000 ms (=60 seconds).
[0079] In the fast-rewind process, processor 10 calculates the cumulative total Da by adding up the differential time Da of each piece of performance data D from the earliest recording point PT1 to the latest recording point PT2. Processor 10 determines 63,656 ms, which corresponds to the point 60,000 ms back from the calculated cumulative total Da (123,656 ms), as the playback start point PT3. As a more specific example, processor 10 determines the position of performance data D whose cumulative total Da is closest to 63,656 ms as the playback start point PT3.
[0080] For example, in the general SMF format, the time difference between each piece of performance data D is managed using delta time, which is information in units of ticks. During fast-rewind processing, it is necessary to convert the fast-rewind time specified by the user into information in units of ticks and then search for the position of the playback start point PT3 after fast-rewinding. In contrast, in this embodiment, the time difference between each piece of performance data D is managed using differential time Da, which indicates time itself. Since conversion to information in units of ticks is not required, the processing load on the processor 10 is reduced.
[0081] In this way, the processor 10 uses the differential time Da contained in each of the multiple performance data D to identify a first position (a position corresponding to the point going back by the calculated fast-rewind time) in the first memory unit 11A (an example of a memory unit), and determines the identified first position as the playback start point PT3.
[0082] During playback processing, the processor 10 fast-forward reads data from the first memory unit 11A from the oldest recording point PT1, where the cumulative Da is 0 ms, to the playback start point PT3 (the position of the performance data D where the cumulative Da is closest to 63,656 ms), and starts playback of the performance data D from the playback start point PT3.
[0083] 8 is an explanatory diagram of a playback start point PT3 when the user presses the black key 13B while pressing the play / stop button B2. Fig. 8 shows a schematic diagram of the relationship between the black key 13B pressed by the user and the fast-rewind time.
[0084] There are 36 black keys 13B, each corresponding to a range of A#0 to A#7. As shown in Fig. 8, the processor 10 determines the fast-rewind time during playback according to the black key 13B pressed by the user.
[0085] Processor 10 stores marks M1 to M36 (examples of identifiers) in association with each of 36 black keys 13B (black keys 13B in the range A#0 to A#7).
[0086] For example, in recording state ST2, each time the user briefly presses button B1 (each time the user performs a mark operation), the processor 10 registers mark M at the recording start position on the first memory unit 11A indicated by the latest recording point PT2 at that time (in other words, associates mark M with the above-mentioned recording start position).
[0087] More specifically, when the user performs a mark operation, the processor 10 always registers a mark M1 associated with the leftmost black key 13B (A#0) on the keyboard 13 at the recording start position on the first memory unit 11A indicated by the latest recording point PT2 at that time.
[0088] Each time a mark M1 is registered for a new recording start position, the black key 13B corresponding to each previous recording start position is moved to the right by one black key 13B. In other words, a mark M with a code number that is one greater is registered for each previous recording start position.
[0089] For example, when mark M1 is registered at a new recording start position, marks M2, M3, and M4 are registered at the recording start positions where marks M1, M2, and M3 were previously registered, respectively. That is, marks M with numbers incremented by one are registered at each previous recording start position. Therefore, for example, the black key 13B (F#1) corresponding to mark M4 indicates the playback start position in the first memory unit 11A that was marked four times before.
[0090] When the processor 10 transitions to the recording state ST2, the processor 10 may register a mark M1 at the recording start position in the first storage unit 11A indicated by the latest recording point PT2 at that time, regardless of whether or not the user has performed a mark operation.
[0091] The registration information of mark M is erased when the power of the electronic musical instrument 1 is turned off.
[0092] For example, if the recording process is executed 13 times after the power of the electronic musical instrument 1 is turned on, marks M1 to M13 are registered at the recording start positions at each time (see FIG. 8). The marks M1 to M13 are stored in association with the black keys 13B in the ranges A#0 to D#3, respectively.
[0093] Therefore, for example, when the user presses the black key 13B in the C#3 range while pressing the play / stop button B2, the processor 10 acquires the mark M12 associated with this black key 13B, and determines the position in the first memory unit 11A where the mark M12 is registered as the playback start point PT3, as shown in FIG. 8.
[0094] Also, for example, when the user presses the black key 13B in the range F#1 while pressing the play / stop button B2, the processor 10 acquires the mark M4 associated with this black key 13B, and determines the position in the first memory unit 11A where the mark M4 is registered as the playback start point PT3, as shown in FIG. 8.
[0095] In this way, the lower the black key 13B that the user presses, the more recently recorded the performance will be played back, and the higher the black key 13B that the user presses, the more previously recorded the performance will be played back.The user can intuitively grasp the point in time to which the rewind will be performed by using the range and position of the black key 13B that is pressed as a clue.
[0096] For example, if a user presses a certain black key 13B to play back the performance data of their own performance, and then wants to listen to their own performance from a point a little earlier than the playback point (for example, the position marked just before), they can simply press the black key 13B to the right of the certain black key 13B. Also, if the user wants to listen to their own performance from a point a little later than the playback point (for example, the position marked just after), they can simply press the black key 13B to the left of the certain black key 13B.
[0097] Whether in standby state ST1 or recording state ST2, the user can determine the fast-rewind time with a single action by pressing the white key 13W or the black key 13B while pressing the play / stop button B2 (in other words, quickly specify the playback start point PT3, which is the playback start position).
[0098] The reproduction process is executed, for example, at a cycle of 5 ms (an example of a second cycle) until the reproduction of the performance data D, which started from the reproduction start point PT3, is stopped or terminated.
[0099] That is, during playback processing, the processor 10 executes processing to output the performance data D stored in the first storage unit 11A at a 5 ms period (an example of a second period) longer than the 1 ms period (an example of a first period). More specifically, during playback processing, the processor 10 outputs the performance data D stored in the first storage unit 11A to the sound source LSI 17 at a 5 ms period, which is longer than the 1 ms period of the recording processing. The sound source LSI 17 performs sound generation processing based on the performance data D input from the processor 10.
[0100] The processor 10 can obtain performance data D at a high sampling rate by executing the recording process at a cycle of 1 ms. Here, in order to play back the recorded performance with high reproducibility, it is conceivable to execute the playback process at the same 1 ms cycle as the recording process. However, executing the playback process at high speed increases the processing load on the electronic musical instrument 1. This increased processing load can result in the playback sound not being played back properly (for example, the playback sound lags). "Playback sound lags" means, for example, that the playback sound is slightly delayed or temporarily out of sync.
[0101] Therefore, in this embodiment, the execution cycle of the playback process is set shorter than the execution cycle of the recording process, which reduces the processing load on the electronic musical instrument 1 and prevents problems such as inappropriate playback of sound.
[0102] If the playback process is performed at a 5 ms interval, for example, it is possible to reproduce up to 128th notes (approximately 7.3 ms per note) at a tempo of 255 bpm. In other words, even if the playback process execution interval is slower than the recording process execution interval, it is possible to obtain sufficient reproducibility that does not sound strange to the ear.
[0103] 9 is a diagram showing an example of processing timing when the electronic musical instrument 1 plays back performance data D. In the example of Fig. 9, a playback start point PT3 is placed at a position indicating performance data D1. In the first storage unit 11A, performance data D1, D2, D3, D4, D5, and D6 are located in this order from the playback start point PT3.
[0104] Processor 10 acquires the differential time Da included in each piece of performance data D (performance data D2 and onward) located after playback start point PT3. For example, processor 10 acquires 3 ms, 8 ms, 1 ms, 5 ms, and 2 ms as the differential time Da included in performance data D2 to D6, respectively.
[0105] Based on the acquired differential time Da, the processor 10 outputs the corresponding performance data D to the sound source LSI 17 every time the execution period (5 ms period) of the playback process arrives.
[0106] Specifically, the processor 10 detects the performance data D to be output in the first execution cycle (elapsed playback time: 0 ms to 5 ms) based on the differential time Da, and outputs the detected performance data D to the sound source LSI 17. The processor 10 also detects and outputs the corresponding performance data D in the subsequent execution cycles (elapsed playback time: 5 ms to 10 ms, 10 ms to 15 ms, ...) based on the differential time Da.
[0107] The differential times Da of the performance data D2 to D6 are 3 ms, 8 ms, 1 ms, 5 ms, and 2 ms, respectively. This means that the output timing of performance data D2 arrives 3 ms after the output of performance data D1, the output timing of performance data D3 arrives 8 ms later, the output timing of performance data D4 arrives 1 ms later, the output timing of performance data D5 arrives 5 ms later, and the output timing of performance data D6 arrives 2 ms later.
[0108] The performance data D1 and D2 are output at 0 seconds and 3 ms, respectively, of the elapsed playback time. Therefore, the output timings of the performance data D1 and D2 belong to the first execution cycle (elapsed playback time: 0 ms to 5 ms). The processor 10 detects the performance data D1 and D2 as the performance data D to be output in the first execution cycle (elapsed playback time: 0 ms to 5 ms), and outputs them to the sound source LSI 17.
[0109] The performance data D3 and D4 are output at 11 ms (3 ms plus 8 ms) and 12 ms (11 ms plus 1 ms) of the elapsed playback time, respectively. Therefore, the output timings of the performance data D3 and D4 do not belong to the second execution cycle (elapsed playback time: 5 ms to 10 ms). The output timings of the performance data D3 and D4 belong to the third execution cycle (elapsed playback time: 10 ms to 15 ms). The processor 10 does not output any of the performance data D in the second execution cycle (elapsed playback time: 5 ms to 10 ms). The processor 10 detects the performance data D3 and D4 as the performance data D to be output in the third execution cycle (elapsed playback time: 10 ms to 15 ms) and outputs them to the sound source LSI 17.
[0110] The performance data D5 and D6 are output at 17 ms and 19 ms, respectively, of the elapsed playback time. Therefore, the output timings of the performance data D5 and D6 belong to the fourth execution cycle (elapsed playback time: 15 ms to 20 ms). The processor 10 detects the performance data D5 and D6 as the performance data D to be output in the fourth execution cycle (elapsed playback time: 15 ms to 20 ms), and outputs them to the sound source LSI 17.
[0111] That is, each time an execution period (5 ms period) of the playback process arrives, the processor 10 collectively outputs the performance data D belonging to that period to the sound source LSI 17. In other words, the processor 10 aligns the performance data D in 5 ms units (quantizes the data in 5 ms units, which is an example of a second period) and outputs the data to the sound source LSI 17.
[0112] In this embodiment, the output timing of each piece of performance data D is managed using a differential time Da, which indicates time itself. This reduces the processing load on the processor 10 compared to when the output timing of the performance data D is managed using delta time, which is information in tick units.
[0113] In the playback state ST3, if the user presses any key, the processor 10 stops outputting the performance data D, and performs fast-rewind processing from the stop position as a starting point for a time period corresponding to the pressed key. The processor 10 then resumes outputting the performance data D from the position after fast-rewind.
[0114] When the user briefly presses the play / stop button B2 in the playback state ST3, the electronic musical instrument 1 stops the playback process that is currently being performed and returns to the standby state ST1.
[0115] FIG. 10 is a flowchart of the recording process executed by the processor 10 when the standby state ST1 transitions to the recording state ST2.
[0116] Processor 10 registers mark M at the recording start position in first storage unit 11A indicated by latest recording point PT2 at that time (step S101).
[0117] For example, in response to a marking operation by the user, processor 10 registers mark M1 at the recording start position in first memory unit 11A indicated by the most recent recording point PT2 at that time. Thereafter, each time a marking operation is performed, processor 10 registers mark M1 at the recording start position at that time and increments the number of the previously registered mark M by 1.
[0118] In this way, when the processor 10 starts storing performance data D in the first memory unit 11A (an example of a memory unit), it registers a mark M (an example of an identifier) at the recording start position indicated by the latest recording point PT2 (an example of the storage start position of the performance data in the memory unit).
[0119] The processor 10 executes the recording task (step S102).
[0120] Fig. 11 is a subroutine showing details of the recording task (step S102) in Fig. 10. Processor 10 repeatedly executes this recording task at 1 ms intervals until the recording process is completed (in other words, until the recording state ST2 transitions to the standby state ST1 or the playback state ST3).
[0121] If the previous performance data D has been written up to the end (Buffer[MAX]) of the first storage unit 11A (step S201: YES), the processor 10 moves the latest recording point PT2 to the beginning (Buffer[0]) of the first storage unit 11A (step S202). That is, the beginning area of the first storage unit 11A becomes the next write area W1.
[0122] If the previous performance data D has not been written up to the end (Buffer[MAX]) of first storage unit 11A (step S201: NO), processor 10 moves latest recording point PT2 to the next area in first storage unit 11A (step S203). That is, the area immediately following the area where the previous performance data D was written becomes the next write area W1.
[0123] Processor 10 determines whether the performance data D has been written to first storage unit 11A for the second or subsequent time (step S204). "The second or subsequent time" means that performance data D has been written up to the end (Buffer[MAX]) of first storage unit 11A at least once since the power of electronic musical instrument 1 was turned on, and the latest recording point PT2 has moved to the beginning (Buffer[0]).
[0124] If the performance data D has not been written to the first storage unit 11A for the second or subsequent round (in other words, it is the first round) (step S204: NO), the processor 10 determines whether or not a key has been pressed on the keyboard 13 (step S207). If a key has not been pressed (step S207: NO), the processor 10 determines whether or not a pedal has been pressed on the pedal unit 14 (step S210).
[0125] During the execution of the recording task of FIG. 11, processor 10 repeatedly executes the determination processes of steps S207 and S210 at 1 ms intervals until a key depression operation or pedal operation is performed.
[0126] If a key press operation is performed (step S207: YES), processor 10 acquires a key press event corresponding to the key press operation (step S208). Processor 10 acquires the time of the key press operation from RTC 10A (step S209). The key press event includes, for example, a note number, a velocity, and the like.
[0127] If a pedal operation is performed (step S210: YES), the processor 10 acquires a pedal event corresponding to the pedal operation (step S211). The processor 10 acquires the time of the pedal operation from the RTC 10A (step S212). The pedal event includes, for example, the type of pedal, the pedal depression value, etc.
[0128] Processor 10 calculates a differential time Da between the time of the previous performance operation (key depression or pedal operation) and the time of the current performance operation (key depression or pedal operation) (step S213).
[0129] Processor 10 adds the differential time Da calculated in step S213 to the command type Db (note on, control change, etc.) and command data Dc (note number, velocity, etc.) contained in the event (key press event or pedal event), writes this information as performance data D (note performance data N or pedal performance data P) into the next write area W1 indicated by the latest recording point PT2 (step S214), and returns to processing in step S201.
[0130] If the performance data D is being written to the first memory unit 11A for the second or subsequent round (step S204: YES), the processor 10 determines whether pedal performance data P is stored in the next write area W1 indicated by the latest recording point PT2 (step S205).
[0131] If pedal performance data P is stored in the next write area W1 (step S205: YES), processor 10 writes this performance data P to second storage unit 11B (step S206) and then executes the processing from step S207 onwards.
[0132] As a result, even if the processing from step S207 onwards is executed and the performance data P in the next write area W1 is overwritten and erased, when playback starts from playback start point PT3, processor 10 can read the performance data P written in second memory unit 11B and update the setting values related to pedal performance, thereby adding the sound effect to the musical sound and performing sound generation processing.
[0133] It should be noted that every time performance data P is overwritten and erased in first storage section 11A, performance data P in second storage section 11B is updated to the performance data P that has been overwritten and erased.
[0134] FIG. 12 is a flowchart of the playback process executed by the processor 10 when the standby state ST1 or the recording state ST2 is transitioned to the playback state ST3.
[0135] The processor 10 executes a playback start point determination process (step S301).
[0136] FIG. 13 shows a subroutine illustrating details of the playback start point determination process (step S301) shown in FIG.
[0137] Processor 10 determines a playback start point PT3 according to the operation that triggered the transition from standby state ST1 or recording state ST2 to playback state ST3.
[0138] Specifically, if only the play / stop button B2 is pressed (step S401: YES), the processor 10 determines the fast-rewind time to be 10 seconds (step S402).The processor 10 then determines the point 10 seconds before the latest recording point PT2 as the playback start point PT3 (step S407).
[0139] When the white key 13W is pressed while the play / stop button B2 is pressed (step S401: NO, step S403: YES), the processor 10 acquires the value n associated with the pressed white key 13W (step S404), and calculates the fast-rewind time by substituting the acquired value n into the above formula (1) (step S405). The processor 10 determines the point going back from the latest recording point PT2 by the fast-rewind time calculated in step S405 as the playback start point PT3 (step S407).
[0140] When the black key 13B is pressed while the play / stop button B2 is pressed (step S401: NO, step S403: NO), the processor 10 acquires the mark M associated with the pressed black key 13B (step S406), and determines the position in the first memory unit 11A where the acquired mark M is registered as the playback start point PT3 (step S407).
[0141] In this way, when the user operates one of the multiple performance operators (one of the white keys 13W or one of the black keys 13B) while the play / stop button B2 (an example of a first operating unit) is pressed (an example of a first operating state), the processor 10 determines the playback start point PT3 in the first memory unit 11A according to the performance operator operated (white key 13W or black key 13B).
[0142] Processor 10 determines whether pedal performance data P is stored in second storage unit 11B (step S302).
[0143] If the performance data P is stored in the second storage unit 11B (step S302: YES), the processor 10 performs pedal information processing (step S303). Specifically, the processor 10 reads out the performance data P stored in the second storage unit 11B, and writes setting values related to pedal operation based on the read performance data P in a header chunk and outputs the header chunk to the sound source LSI 17. This updates the setting values related to pedal performance, and sound effects according to the updated setting values are added to the musical sounds and sound is generated.
[0144] Processor 10 fast-rewinds to the playback start point PT3 determined in step S301 (step S304). Specifically, processor 10 internally fast-forwards from the oldest recording point PT1 in first storage unit 11A to the playback start point PT3.
[0145] The processor 10 executes the output task (step S305).
[0146] Fig. 14 is a subroutine showing details of the output task (step S305) of Fig. 12. Processor 10 repeatedly executes this output task at 5 ms intervals until the output of performance data D stops or ends.
[0147] If a transition operation to the standby state ST1 is performed during the execution of the output task (step S305), the output task ends as soon as the output of the performance data D stops. Also, if the user presses any key during the execution of the output task, the output task ends as soon as the output of the performance data D stops. In the latter case, after the output of the performance data D stops, the playback process in FIG. 12 starts again from the beginning (i.e., from step S301).
[0148] When all of the performance data D from the playback start point PT3 to the latest recording point PT2 has been output to the sound source LSI 17, the output of the performance data D ends and the output task also ends.
[0149] The processor 10 measures the elapsed time (elapsed playback time) after the start of the output task from the time acquired from the RTC 10A (step S501). Here, the elapsed playback time at the first execution of step S501 is set to 0 ms. Note that the elapsed playback time at the mth (m is 2 or more) or subsequent executions of step S501 may vary slightly depending on the processing load of the processor 10, but is basically 5 ms multiplied by the value m.
[0150] The processor 10 calculates the next reproduction period (step S502).
[0151] For example, processor 10 calculates the next playback period as a period starting from the elapsed playback time measured in step S501 and ending 5 ms after this starting point, which is the period of the output task. As an example, when step S502 is executed for the first time, 0 ms to 5 ms is calculated as the next playback period. When step S501 is executed for the second time, if the elapsed playback time is 5.1 ms, 5.1 ms to 10.1 ms is calculated as the next playback period.
[0152] Processor 10 detects performance data D to be reproduced within the next reproduction cycle calculated in step S502 (step S503). In the example of FIG. 9, if the next reproduction cycle is 0 ms to 5 ms, processor 10 detects performance data D1 and D2 as the reproduction targets (step S503: YES). If performance data D to be reproduced is not detected (step S503: NO), processor 10 returns to the process of step S501 and executes the process for the next reproduction cycle.
[0153] The processor 10 performs a sound generation process on the performance data D to be reproduced that was detected in step S503 (step S504). That is, the processor 10 outputs the performance data D to be reproduced to the sound source LSI 17.
[0154] If the processor 10 has not output the latest performance data D (performance data D of the latest recording point PT2) to the sound source LSI 17 (step S505: NO), the processor 10 returns to the process of step S501 and executes the process for the next playback cycle. That is, the processor 10 repeats the processes of steps S501 to S505 until the performance data D of the latest recording point PT2 is output to the sound source LSI 17.
[0155] When the performance data D of the latest recording point PT2 is output to the sound source LSI 17 (step S505: YES), the processor 10 ends the output task, thereby ending the playback process and causing the processor 10 to transition to the standby state ST1.
[0156] In this way, processor 10 starts outputting performance data D from the playback start point PT3 determined in the playback start point determination process (step S301), and repeatedly executes the output task (step S305) at 5 ms intervals until the output of performance data D stops or ends.
[0157] Furthermore, the present invention is not limited to the above-described embodiments, and various modifications can be made in the implementation stage without departing from the spirit of the invention. Furthermore, the functions performed in the above-described embodiments may be implemented in appropriate combinations as much as possible. The above-described embodiments include various steps, and various inventions can be extracted by appropriate combinations of the disclosed multiple constituent elements. For example, if the effect can be obtained even if some constituent elements are deleted from all the constituent elements shown in the embodiments, the configuration from which these constituent elements are deleted can be extracted as an invention.
[0158] In the above embodiment, during recording processing, the processor 10 writes the pedal performance data P that is to be overwritten and erased in the first storage unit 11A to the second storage unit 11B. During playback processing, the processor 10 reads the performance data P stored in the second storage unit 11B, and writes setting values related to pedal operation based on the read performance data P in a header chunk and outputs the header chunk to the sound source LSI 17.
[0159] In another embodiment, during recording processing, processor 10 may write not only pedal performance data P but also setting change information for tone colors and various effects to second storage unit 11B in the same manner as pedal performance data P. This setting change information may be, for example, tone color information that is set in response to a user's tone color switching operation on switch panel 15, or effect switching information that is set in response to a user's effect switching operation on switch panel 15. Switch panel 15 is a setting change operator, which is an example of a second operator, and accepts operations to change setting information including tone colors and various effects.
[0160] In another embodiment, during playback processing, the processor 10 reads out setting change information for timbres and various effects stored in the second storage unit 11B, writes the read setting change information in a header chunk, and outputs the header chunk to the tone generator LSI 17. This allows musical tones to be generated with timbres and effects corresponding to the setting change information, even if the setting change information for timbres and various effects is overwritten and erased in the first storage unit 11A, for example. [Explanation of symbols]
[0161] 1: Electronic instruments 10: Processor 11: RAM 11A: First memory unit (ring buffer) 11B:Second storage section 12: Flash ROM 12A: Control program 13: Keyboard 13B: Black key 13W:White key 14: Pedal unit 15: Switch panel 16: Key scanner 17: Sound source LSI 18: D / A converter 19: Amplifier 20: Speaker ST1: Standby state ST2: Recording state ST3: Playback status
Claims
1. A plurality of performance controls; a storage unit for storing performance data corresponding to a user's performance operation each time the user operates any one of the plurality of performance operators; at least one processor; The at least one processor When the user operates any one of the plurality of performance operators in the first operation state, a fast-rewind time from a latest recording point of the performance data stored in the storage unit is determined, the fast-rewind time corresponding to the operated performance operator; outputting the performance data from a playback start position of the performance data in the storage unit that corresponds to the fast-rewind time; Electronic musical instrument.
2. Further provided with a first operating unit, the first operation state is a state in which the first operation unit is pressed by a user; 2. The electronic musical instrument according to claim 1.
3. the plurality of performance operators include a plurality of white keys, The at least one processor storing a first value in association with each of the plurality of white keys; When a user presses any one of the plurality of white keys, the first value associated with the pressed white key is acquired; determining the playback start position based on the acquired first value; 2. The electronic musical instrument according to claim 1.
4. The at least one processor calculating a first time period based on the acquired first value; determining, as the playback start position, a first position in the performance data stored in the storage unit, the first position corresponding to a point in time preceding a predetermined reference point in time by the first time; 4. The electronic musical instrument according to claim 3.
5. a difference in time between the previous time when any of the plurality of performance operators was operated and the current time when any of the plurality of performance operators was operated is stored as part of the current performance data; The at least one processor identifying the first position in the storage unit using the differential time included in each of the plurality of performance data; determining the identified first position as the playback start position; 5. The electronic musical instrument according to claim 4.
6. the predetermined reference time point is a time point at which performance data corresponding to the next operation on the performance operator is to be stored in the storage unit; 6. The electronic musical instrument according to claim 4 or 5.
7. the plurality of performance operators include a plurality of black keys, an identifier corresponding to one of the plurality of black keys is associated with each of the plurality of locations in the storage unit where the performance data is stored; The at least one processor When a user presses any one of the plurality of black keys, the identifier associated with the pressed black key is acquired; determining a position in the storage unit associated with the acquired identifier as the playback start position; 2. The electronic musical instrument according to claim 1.
8. The computer In a recording state, performance data generated in response to user operations on a plurality of performance operators is stored in a storage unit; In a first operating state, when a user operates any one of the plurality of performance operators, a fast-rewind time from a latest recording point of the performance data stored in the storage unit is determined according to the operated performance operator; outputting the performance data from a playback start position in the storage unit that corresponds to the fast-rewind time; method.
9. On the computer, In a recording state, performance data generated in response to user operations on a plurality of performance operators is stored in a storage unit; In a first operating state, when a user operates any one of the plurality of performance operators, a fast-rewind time from a latest recording point of the performance data stored in the storage unit is determined according to the operated performance operator; outputting the performance data from a playback start position in the storage unit that corresponds to the fast-rewind time; Execute the process, program.
Citation Information
Patent Citations
Electronic instrument with performance recording function
JP2008152054A