Information processing apparatus, method, and program

By dividing music data into note and other commands and storing them separately with calculated wait times, the device efficiently reduces fast-rewind processing times in information processing devices.

JP2026034723APending Publication Date: 2026-02-27CASIO COMPUTER CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025270069
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-12-22
Publication Date
2026-02-27

AI Technical Summary

Technical Problem

Existing information processing devices require long processing times for fast-rewind operations due to the need to read large song data files from the beginning to the playback restart position, especially when the playback start position is near the end of the song.

Method used

The device divides music data into first data for note commands and second data for other commands, storing them in separate memories and calculating and storing the wait times for each, allowing direct access to playback positions without full re-reading.

Benefits of technology

This approach significantly reduces the time required for fast-rewind processing, particularly for large song data files and playback positions near the end, by optimizing data access and playback.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026034723000001_ABST
    Figure 2026034723000001_ABST
Patent Text Reader

Abstract

To suppress the time required for quick return processing.SOLUTION: The information processing device includes a control unit that executes processing of dividing music data including first data for executing the first command and second data for executing the second command into the first data and the second data, and storing the first data and the second data after the division in a first memory and a second memory, respectively. The controller sets the standby time of the first data after the division (the standby time from the execution of the previous command in the musical piece data to the execution of the next command) as: Calculating a time from execution of a previous first command to execution of the current first command and storing the calculated time in a first memory, and calculating a time from execution of a previous second command to execution of the current second command and storing the calculated time in a second memory as a standby time of the divided second data; SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The disclosure of this specification relates to an information processing device, a method, and a program. [Background technology]

[0002] There is known an information processing device that can perform processes such as fast forwarding and fast rewinding of music data (e.g., song data) that conforms to a predetermined standard such as MIDI (Musical Instrument Digital Interface). For example, Patent Document 1 describes a specific configuration of this type of information processing device. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2002-182646 Summary of the Invention [Problem to be solved by the invention]

[0004] For example, to fast-rewind song data and play it back, the song data format requires internal fast-forward processing from the beginning of the song data to the playback restart position after fast-rewind. That is, the information processing device reads the song data from its memory from the beginning to the position corresponding to the playback restart position, and then resumes playback of the song data from this playback start position.

[0005] For example, the larger the song data size and the closer to the end of the song the playback start position after fast rewind is, the longer it takes to read the song data from the beginning of the memory to the position corresponding to the playback restart position. In other words, the problem of long fast rewind processing time has been pointed out.

[0006] The present invention has been made in view of the above circumstances, and an object of the present invention is to provide an information processing device, method, and program that can reduce the time required for fast-rewind processing. [Means for solving the problem]

[0007] An information processing device according to one embodiment of the present invention includes a control unit that executes a process of dividing music data, the music data including first data for executing a first command and second data for executing a second command, into the first data and the second data, and storing the divided first data and the second data in a first memory and a second memory, respectively. The first data and the second data include information on a wait time from when a previous command is executed in the music data until when a next command is executed. The control unit calculates, as the wait time for the divided first data, the time from when the previous first command is executed until when the current first command is executed, and stores the calculated time in the first memory. Also, as the wait time for the divided second data, the control unit calculates, as the time from when the previous second command is executed until when the current second command is executed, and stores the calculated time in the second memory. [Effects of the Invention]

[0008] According to one embodiment of the present invention, there are provided an information processing device, method, and program that can reduce the time required for fast rewind processing. [Brief explanation of the drawings]

[0009] [Figure 1] 1 is a block diagram showing a configuration of an information processing device according to an embodiment of the present invention; [Figure 2] 2 is a diagram showing the data structure of song data stored in a memory of an information processing device according to an embodiment of the present invention. FIG. [Figure 3] 3 is a diagram showing the data structure of track data included in the song data of FIG. 2. FIG. [Figure 4]5 is a flowchart showing a data division process executed by a processor of an information processing device according to an embodiment of the present invention. [Figure 5A] 5 is a diagram showing the data structure of a first data group stored in a memory of an information processing device as a result of executing the data division processing shown in FIG. 4. FIG. [Figure 5B] 5 is a diagram showing the data structure of a second data group stored in a memory of the information processing device as a result of executing the data division processing shown in FIG. 4. FIG. [Figure 6] 10 is a flowchart showing a measure information setting process executed by a processor of an information processing device according to an embodiment of the present invention. [Figure 7] 10 is a flowchart showing a playback process executed by a processor of an information processing device in one embodiment of the present invention. [Figure 8] 10 is a flowchart showing a fast-rewind process executed by a processor of an information processing device according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0010] An information processing device according to an embodiment of the present invention, and a method and program executed by the information processing device will be described in detail with reference to the drawings.

[0011] 1 is a block diagram showing the configuration of an information processing device 1 according to one embodiment of the present invention. The information processing device 1 is, for example, an electronic musical instrument. The information processing device 1 may also be another type of device, such as a tablet terminal, a smartphone, a feature phone, a notebook PC (Personal Computer), a desktop PC, a portable game console, or a PDA (Personal Digital Assistant).

[0012] As shown in FIG. 1, the information processing device 1 includes a processor 100, a memory 110, a display unit 120, an operation unit 130, and an audio output unit 140.

[0013] 1 shows the main components necessary for explaining this embodiment, and some components, such as a housing that is an essential component of the information processing device 1, are omitted as appropriate.

[0014] The processor 100 is an example of a computer that executes a program 111 stored in a memory 110. The processor 100 is an element that includes a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), etc. The RAM included in the processor 100 is denoted by the reference symbol 101.

[0015] The processor 100 controls the information processing device 1 in an overall manner by reading out various programs and various data, including a program 111, stored in the memory 110, and using the RAM 101 as a work area.

[0016] The processor 100 is, for example, a single processor or a multi-processor, and includes at least one processor. When multiple processors are included, the processor 100 may be packaged as a single device, or may be configured as multiple physically separated devices within the information processing device 1. The processor 100 may be referred to as a "control unit."

[0017] The memory 110 is a non-volatile semiconductor memory such as a flash memory, an EPROM (Erasable Programmable ROM), or an EEPROM (Electrically Erasable Programmable ROM), and serves as a secondary storage device or auxiliary storage device. The memory 110 stores programs and data, including a program 111, that the processor 100 uses to perform various processes.

[0018] For example, a song database (DB) 112 that stores song data (an example of music data) is stored in the memory 110. The song data is, for example, data that indicates one piece of music, and has a data structure that complies with a predetermined standard (for example, the MIDI standard).

[0019] 2 is a diagram showing the data structure of song data SD stored in song DB 112. As shown in FIG. 2, song data SD consists of header data HD and a plurality of (N1+1) pieces of track data TD0 to TD N1 The header data HD includes information such as the number of tracks. The track data TD0 to TD N1 includes musical instrument performance tracks, for example, a piano performance track, a guitar performance track, and the like.

[0020] 3 shows the data structure of track data TD0 included in song data SD. N1 also has a similar data structure.

[0021] Track data TD0 consists of multiple (M1+1) events E0 to E M1 At the end of the track data TD0, an EOT (End of Track) command indicating the end of the track is written.

[0022] Events E0~E M1 In other words, events E0 to E1, which are examples of first data and second data, respectively describe a delta time, a command type, and command data. M1 includes delta time, command type and command data.

[0023] Delta time is an example of information indicating the wait time in song data SD between the execution of the previous command (more specifically, the command for the previous event) and the execution of the next command (more specifically, the command for the next event). Note that the delta time before the EOT command indicates the time between the execution of the command for the event before the EOT command and the reading of the EOT command. Depending on the song data SD standard, this wait time is referred to as, for example, "gate time."

[0024] The command type is an example of type information that indicates the type of command, such as note on, note off, control change, pitch bend change, etc. The command type (in other words, type information) is called a status byte in the MIDI standard.

[0025] The command data is an example of the setting information of the command indicated by the command type (in other words, type information). For example, if the command type is note on, the command data includes information on the note number and velocity. In the MIDI standard, the command data (in other words, setting information) is called a data byte.

[0026] Program 111 stored in memory 110 causes processor 100, which is a computer, to execute the following process: divide song data, which includes first data for executing a first command and second data for executing a second command, into the first data and the second data, and store the divided first data and second data in a first memory and a second memory, respectively. Execution of program 111 reduces the time required for fast-rewinding song data. Details of program 111 will be described later.

[0027] Processor 100 includes functional blocks: song data division unit 100A, song data storage unit 100B, and song data playback unit 100C. Each functional block is implemented by program 111 executed by processor 100, which is an example of a computer. In other words, the method and program according to one embodiment of the present invention are implemented by causing the functional blocks of processor 100 to execute various processes. Note that each functional block may be implemented in part or in whole by hardware such as a dedicated logic circuit.

[0028] The display unit 120 is, for example, an LCD (Liquid Crystal Display) equipped with a touch panel, an organic EL (Electro Luminescence), etc. In response to an instruction from the processor 100, the display unit 120 displays an operation screen, etc.

[0029] The operation unit 130 is a user interface that is operated by a user and is made of hardware, software, or a combination of these. In this embodiment, the display unit 120 is equipped with a touch panel, so the display unit 120 also serves as the operation unit 130.

[0030] The operation unit 130 accepts various operations, including a fast-rewind operation of the song data SD, and outputs an input signal representing the operation content to the processor 100. The processor 100 controls the information processing device 1 in accordance with the input signal from the operation unit 130.

[0031] The audio output unit 140 includes a speaker and a driver, and plays back a song based on the song data, based on the output from the processor 100.

[0032] For example, in a conventional information processing device, the larger the size of the song data SD and the closer to the end of the song the playback start position after fast-rewind is, the longer it takes to read the song data SD from the beginning of the memory to the position corresponding to the playback restart position. In other words, the longer it takes to perform fast-rewind processing.

[0033] Therefore, the information processing device 1 according to this embodiment executes the process described below. By executing this process, the time required for fast-rewind processing can be reduced compared to information processing devices with conventional configurations.

[0034] 4 is a flowchart showing data division processing by program 111 executed by processor 100 in one embodiment of the present invention. For example, when a user performs a predetermined operation on operation unit 130, execution of the data division processing shown in FIG.

[0035] In the data division process shown in Figure 4, a series of processes is executed in which the song data SD is divided into first data and second data, and the divided first data and second data are stored in a first memory and a second memory, respectively.

[0036] For example, the number of first data included in the song data SD is greater than the number of second data included in the song data SD.

[0037] The first command included in the first data is, for example, a note command, such as note on or note off.

[0038] The second command included in the second data is, for example, a command other than a note command. For convenience, commands other than note commands are referred to as "other commands." Examples of other commands include control change, program change, channel pressure, and pitch bend. Some other commands are located at the beginning of the song data SD. In other words, at least one piece of second data included in the song data SD is located at the beginning of the song data SD.

[0039] As shown in FIG. 4, the program 111 expands the song data SD to be processed in the RAM 101, which is a work area, and sets the value i indicating the track number to zero (step S101).

[0040] The song data SD to be processed is, for example, one song data SD selected from the song data SD stored in the song DB 112 by a user operating the operation unit 130. The song data SD to be processed may also be obtained from a server on a network, for example.

[0041] The program 111 initializes the tick information (step S102).

[0042] For example, the program 111 resets the values ​​of the counters ATC, T1, and T2 to 0. The counters ATC, T1, and T2 are realized by the program 111 executed by the processor 100, which is an example of a computer.

[0043] The counter ATC holds the tick value of the current event (which may also be called a "command") referenced during execution of the program 111. In other words, the value of the counter ATC indicates time information within the song according to the song data SD. In this embodiment, the value of the counter ATC may be expressed as "all_tick_counter."

[0044] Counters T1 and T2 hold the tick values ​​of the events last stored in the first memory and the second memory, respectively, during the execution of the data division process shown in Fig. 4. In this embodiment, the values ​​of counters T1 and T2 may be expressed as "last_reced_tick_1" and "last_reced_tick_2," respectively.

[0045] In this embodiment, the first memory and the second memory are respectively realized by a first memory area 113 and a second memory area 114 in a logically separated memory 110. In another embodiment, the first memory and the second memory may be configured as two separate, independent memories rather than a single memory 110. That is, in the data division process shown in Fig. 4, the first data including note commands and the second data including other commands may be stored in separate memories.

[0046] Track data TD0~TD N1 is assigned a track number indicated by the subscript number after "TD." For example, if the value i indicating the track number is set to zero, track data TD0 will be the track data to be processed.

[0047] In the data division process shown in FIG. 4, steps S103 to S113 are repeatedly executed to divide the song data SD into first data and second data.

[0048] Specifically, the program 111 acquires the delta time described in the event in the track data to be processed (step S103).

[0049] When step S103 is executed for the first time for the track data to be processed, the delta time written in the first event of the track data to be processed is acquired. When step S103 is executed for the next time or later for the track data to be processed, the delta time written in the event following the previous event for which the delta time was acquired (in other words, the current event) is acquired.

[0050] The program 111 updates the value of the counter ATC (all_tick_counter) (step S104).

[0051] Specifically, the program 111 updates the value of the counter ATC by adding the delta time (unit: tick) acquired in step S103 to the value of the counter ATC (all_tick_counter), as shown in the following equation.

[0052] all_tick_counter=all_tick_counter+delta time

[0053] The program 111 acquires the command type and command data described in the event whose delta time was acquired in step S103 (step S105).

[0054] If the command type acquired in step S105 indicates a note command (step S106: note command), the program 111 calculates a differential tick and stores the calculated differential tick together with the command type and command data acquired in step S105 as a note command event (in other words, as first data for executing the first command) in the first memory area 113 (step S107).

[0055] In step S107, the differential tick is obtained by subtracting the tick value of the event last saved in the first memory area 113 (in other words, the tick value of the event saved in the previous processing of step S107, which is the value of counter T1 (last_reced_tick_1)) from the tick value of the event currently being processed (in other words, the value of the counter ATC (all_tick_counter) updated in the processing of step S104). Specifically, the differential tick in step S107 is calculated by the following formula.

[0056] differential ticks = all_tick_counter-last_reced_tick_1

[0057] Note that, when the process of step S107 is executed for the first time, no event has been saved in the first memory area 113 for the track data to be processed. Therefore, the value of counter T1 (last_reced_tick_1) is zero. Therefore, when the process of step S107 is executed for the first time, zero is subtracted from the value of counter ATC (all_tick_counter) updated in the process of step S104.

[0058] The program 111 updates the value of the counter T1 (last_reced_tick_1) (step S108).

[0059] Specifically, the program 111 updates the value of the counter T1 (last_reced_tick_1) with the value of the counter ATC (all_tick_counter) as shown in the following equation.

[0060] last_reced_tick_1=all_tick_counter

[0061] In this way, in the process of step S108, the value of counter T1 (last_reced_tick_1) is updated with the value of counter ATC (all_tick_counter). Therefore, when the process of step S107 is executed next time or later for the track data to be processed, the value of counter T1 (last_reced_tick_1) updated in the previous process of step S108 is subtracted from the value of counter ATC (all_tick_counter) updated in the process of step S104 to obtain the differential tick.

[0062] The program 111 returns to step S103 and performs the process from step S103 onward for the event in which the next command is described with respect to the track data to be processed.

[0063] If the command type acquired in step S105 indicates other commands (step S106: other commands), the program 111 calculates the differential ticks and stores the calculated differential ticks together with the command type and command data acquired in step S105 as an event of the other command (in other words, as second data for executing the second command) in the second memory area 114 (step S109).

[0064] In step S109, the differential tick is calculated by subtracting the tick value of the event last saved in the second memory area 114 (in other words, the tick value of the event saved in the previous processing of step S109, which is the value of counter T2 (last_reced_tick_2)) from the tick value of the event currently being processed. Specifically, the differential tick in step S109 is calculated by the following formula.

[0065] differential ticks = all_tick_counter-last_reced_tick_2

[0066] Note that, when the process of step S109 is executed for the first time, no event has been saved in the second memory area 114 for the track data to be processed. Therefore, the value of counter T2 (last_reced_tick_2) is zero. Therefore, when the process of step S109 is executed for the first time, zero is subtracted from the value of counter ATC (all_tick_counter) updated in the process of step S104.

[0067] The program 111 updates the value of the counter T2 (last_reced_tick_2) (step S110).

[0068] Specifically, the program 111 updates the value of the counter T2 (last_reced_tick_2) with the value of the counter ATC (all_tick_counter) as shown in the following equation.

[0069] last_reced_tick_2=all_tick_counter

[0070] In this way, in the process of step S110, the value of counter T2 (last_reced_tick_2) is updated with the value of counter ATC (all_tick_counter). Therefore, when the process of step S109 is executed next time or later for the track data to be processed, the value of counter T2 (last_reced_tick_2) updated in the previous process of step S110 is subtracted from the value of counter ATC (all_tick_counter) updated in the process of step S104 to obtain the differential tick.

[0071] The program 111 returns to step S103 and performs the process from step S103 onward for the event in which the next command is described with respect to the track data to be processed.

[0072] If the command type acquired in step S105 indicates an EOT command (step S106: EOT command), the program 111 calculates a differential tick for each of the first memory area 113 and the second memory area 114, and stores the calculated differential tick together with the EOT command as an EOT command event in each of the first memory area 113 and the second memory area 114 (step S111).

[0073] To add, for the first memory area 113, the program 111 calculates the differential tick by subtracting the tick value of the event last saved in the first memory area 113 (in other words, the tick value of the event immediately before the EOT command, which is the value of counter T1 (last_reced_tick_1)) from the tick value of the EOT command (in other words, the value of the counter ATC (all_tick_counter) updated in the processing of step S104).

[0074] Furthermore, for the second memory area 114, the program 111 calculates the differential tick by subtracting the tick value of the event last saved in the second memory area 114 (in other words, the tick value of the event immediately before the EOT command, which is the value of counter T2 (last_reced_tick_2)) from the tick value of the EOT command.

[0075] The program 111 increments the value i indicating the track number by 1 (step S112).

[0076] The program 111 determines whether the value i has reached the number of tracks (N1+1 in this embodiment) (step S113). If the value i has not reached the number of tracks (step S113: NO), the program 111 processes the next track data in the song data SD and executes the processes from step S102 onwards. If the value i has reached the number of tracks (step S113: YES), the program 111 ends the data division process shown in FIG.

[0077] Fig. 5A shows the data structure of the first data group SD1 stored in the first memory area 113 as a result of executing the data division process shown in Fig. 4. Fig. 5B shows the data structure of the second data group SD2 stored in the second memory area 114 as a result of executing the data division process shown in Fig. 4.

[0078] 5A, the first data group SD1 has a data structure in which only note command events are arranged in order, excluding the EOT command and the delta time immediately before it. In the first data group SD1, the delta time described for each event indicates the time from when the note command for the previous event is executed until when the note command for the next event is executed.

[0079] 5B, the second data group SD2 has a data structure in which, excluding the EOT command and the delta time immediately before it, only the events of other commands are arranged in order. In the second data group SD2, the delta time described for each event indicates the time from when the other command for the previous event is executed until when the other command for the next event is executed.

[0080] 4, processor 100 executing program 111 operates as song data divider 100A, which divides song data SD, which includes first data (note command events) for executing a first command and second data (other command events) for executing a second command, into the first data and the second data. More specifically, processor 100 operating as song data divider 100A divides song data SD into the first data and the second data based on type information (e.g., command type).

[0081] In the data division process shown in Figure 4, the processor 100 further operates as a song data storage unit 100B that stores the divided first data and second data in a first memory (first memory area 113) and a second memory (second memory area 114), respectively.

[0082] The differential tick calculated in step S107 indicates the delta time of the first data after division (in other words, the delta time described in the note command event stored in the first memory). That is, in the data division process shown in Fig. 4, processor 100 calculates the time from when the immediately preceding first command was executed to when the current first command is executed, and stores the calculated time in the first memory.

[0083] The differential tick calculated in step S109 indicates the delta time of the second data after division (in other words, the delta time described in the note command event stored in the second memory). That is, in the data division process shown in Fig. 4, the processor 100 calculates the time from when the immediately preceding second command is executed to when the current second command is executed, and stores the calculated time in the second memory.

[0084] 6 is a flowchart showing the bar information setting process by program 111 executed by processor 100 in one embodiment of the present invention. The bar information setting process shown in FIG. 6 is executed in parallel with or after the data division process shown in FIG. 4 is executed.

[0085] In the bar information setting process shown in FIG. 6, bar information necessary for fast-rewind processing of song data SD is set.

[0086] As shown in FIG. 6, the program 111 reserves a third memory as a preliminary step (step S201).

[0087] For example, if the maximum number of bars is N and the number of tracks is T, the program 111 allocates the third memory by declaring the following array.

[0088] int pointer [T][N] int step [T][N]

[0089] "int pointer [T][N]" indicates the location in the third memory. "int step [T][N]" indicates the time (unit: ticks) from the beginning of the measure until the next note command is executed.

[0090] In this embodiment, as an example of the third memory, a third memory area 115 that is logically separated from the first memory area 113 and the second memory area 114 is secured in the memory 110. In another embodiment, the third memory may be a memory separate from the memory 110.

[0091] In this embodiment, the series of processes from step S202 onwards are executed sequentially for all track data included in the song data SD. For the sake of simplicity, the series of processes from step S202 onwards executed for one track data will be explained here.

[0092] The program 111 sets the number of ticks for one measure for the track data to be processed (step S202).

[0093] For example, one measure is set to 4 beats and one beat is set to 96 ticks, so 384 ticks are set. That is, in this embodiment, the bar information setting process shown in Fig. 6 is executed assuming that the music advances to the next bar every time 384 ticks have passed. The number of ticks in one bar may be expressed as "tickpermeasure."

[0094] In addition, depending on the song data SD, the time signature setting may change during the song. In this case, the program 111 updates the number of ticks per measure each time.

[0095] The program 111 performs an initialization process (step S203).

[0096] Specifically, the program 111 resets the value of the counter ATC (all_tick_counter), the current pointer (current_pointer), and the value n to zero. The current pointer (current_pointer) indicates the current reference position in the first memory area 113. The current pointer (current_pointer) is expressed in bytes. The value n indicates the ordinal number of the bar included in the track data to be processed (i.e., the ordinal number of the bar within the track data to be processed).

[0097] The program 111 acquires the delta time (step S204).

[0098] Specifically, program 111 acquires the delta time written in the event located closest to the beginning of the first data group SD1 among the unprocessed note command events (i.e., the processing after step S204 has not been executed) in the first data group SD1 stored in the first memory area 113.

[0099] The program 111 updates the value of the counter ATC (all_tick_counter) and the current pointer (current_pointer) (step S205).

[0100] Specifically, the program 111 updates the value of the counter ATC by adding the delta time (unit: tick) acquired in step S204 to the value of the counter ATC (all_tick_counter), as shown in the following equation.

[0101] all_tick_counter=all_tick_counter+delta time

[0102] The program 111 further updates the current pointer (current_pointer) by adding the number of bytes of the delta time acquired in step S204 to the current pointer (current_pointer) as shown in the following equation: As a result, the current pointer (current_pointer), which indicates the current reference position in the first memory area 113, advances to the position (for example, position P1 in FIG. 5A) corresponding to just before the command type (note command).

[0103] current_pointer = current_pointer + number of bytes of delta time

[0104] The program 111 determines whether the value of the counter ATC (all_tick_counter) is equal to or greater than the number of ticks at the beginning of the nth bar (step S206). In other words, the program 111 determines whether the tick currently being referred to has reached the first tick of the nth bar.

[0105] For example, the program 111 multiplies the value n by the number of ticks (tick per measure) and determines whether the multiplied value (unit: tick) is equal to or greater than the value of the counter ATC (all_tick_counter).

[0106] If the value of the counter ATC (all_tick_counter) is greater than or equal to the number of ticks at the beginning of the nth bar (step S206: YES), the program 111 sets the information of the nth bar and saves the set information in the third memory area 115 (step S207).

[0107] Specifically, program 111 sets and saves the current pointer (current_pointer) as pointer[n], as shown in the following equation, sets and saves the value obtained by subtracting the above multiplied value from the value of the counter ATC (all_tick_counter) as step[n], and further increments the value n by 1.

[0108] pointer[n]=current_pointer step[n]=all_tick_counter-n×tickpermeasure

[0109] "pointer[n]" indicates a pointer indicating the position of the nth measure (in other words, a position in the third memory). Here, "pointer[n]" indicates the position immediately before the command type (note command) (for example, position P1 in Figure 5A). "step[n]" indicates the time (unit: tick) from the beginning of the nth measure until the next note command is executed.

[0110] "Pointer[n]" and "step[n]" are examples of information indicating the timing to execute the first command of the first data after division (i.e., the note command stored in the first memory area 113). More specifically, "pointer[n]" is an example of information indicating the beginning of the measure at which the first command is executed. Furthermore, "step[n]" is an example of information indicating the time from the beginning of the measure until the first command is executed.

[0111] The data sizes of "pointer[n]" and "step[n]" are small, so the third memory area 115 that needs to be allocated is small.

[0112] Thus, in step S207, the processor 100 executing the program 111 generates information indicating the timing for executing the first command of the divided first data and stores it in the third memory area 115, which is an example of a third memory.

[0113] If the value of the counter ATC (all_tick_counter) is less than the number of ticks at the beginning of the nth bar (step S206: NO), the program 111 determines whether the command corresponding to the value of the counter ATC is an EOT command (step S208).

[0114] If the command corresponding to the value of the counter ATC (all_tick_counter) is not an EOT command (step S208: NO), the program 111 proceeds to the next note command event (step S209).

[0115] Specifically, the program 111 updates the current pointer (current_pointer) by adding the command type and the number of bytes of command data described in the event belonging to the nth measure to the current pointer (current_pointer) as shown in the following formula: This advances the current pointer (current_pointer) to the position corresponding to just before the delta time described in the event of the next note command (for example, position P2 in FIG. 5A).

[0116] The program 111 repeatedly executes the processes of steps S204 to S209 to sequentially set information for subsequent bars and save it in the third memory area 115. In this way, information for all bars in the track, separated by 384 ticks, is set and saved in the third memory area 115. After information for all bars in the track has been set, the determination in step S208 is YES. This causes the program 111 to end the bar information setting process shown in FIG. 6.

[0117] Figure 7 is a flowchart showing the playback process by program 111 executed by processor 100 in one embodiment of the present invention. For example, when a user performs a playback operation on operation unit 130, execution of the playback process shown in Figure 7 begins. Also, for example, when song data SD is played to the end or when the user performs a playback stop operation on operation unit 130, execution of the playback process shown in Figure 7 ends.

[0118] 7, song data SD is played back based on a first data group SD1 stored in first memory area 113 and a second data group SD2 stored in second memory area 114. In other words, song data SD is played back based on a first data group SD1 that is split from song data SD and stored in a first memory and includes first data for executing a first command, and a second data group SD2 that is split from song data SD and stored in a second memory and includes second data for executing a second command.

[0119] A first player that plays back the first data group SD1 and a second player that plays back the second data group SD2 are implemented in the program 111. The entities of the first player and the second player are variable sets required to play back the first data group SD1 and the second data group SD2, respectively.

[0120] As shown in FIG. 7, the program 111 initializes the settings of the first player and the second player (step S301).

[0121] Program 111 simultaneously starts playback of first data group SD1 by the first player and playback of second data group SD2 by the second player (step S302). As a result, note command events in first data group SD1 are executed sequentially according to the delta time, and other command events in second data group SD2 are executed sequentially according to the delta time. As a result, the same sound (music) as when the original song data SD was played is output from audio output unit 140.

[0122] Fig. 8 is a flowchart showing the fast-rewind process by program 111 executed by processor 100 in one embodiment of the present invention. Operation unit 130 operates as an operation unit that accepts a fast-rewind operation. For example, if a user performs a fast-rewind operation on operation unit 130 during execution of the playback process shown in Fig. 7, execution of the fast-rewind process shown in Fig. 8 is started. Here, it is assumed that the fast-rewind process is performed to the beginning of the n1th bar, for example.

[0123] As shown in FIG. 8, the program 111 acquires information on the playback start position designated by the fast-rewind operation from the third memory area 115 (step S401).

[0124] Specifically, the program 111 acquires "pointer[n1]" and "step[n1]," which are information about the n1-th measure. "pointer[n1]" indicates the position in the third memory area 115 that corresponds to the beginning of the n1-th measure. "step[n1]" indicates the time from the beginning of the n1-th measure until the next note command is executed.

[0125] The program 111 sets the information of the playback start position acquired in step S401 (i.e., "pointer[n1]" and "step[n1]") in the first player (step S402). In other words, the program 111 specifies a position in the first memory area 113 (first memory) that corresponds to the playback resume position acquired in step S401.

[0126] The program 111 reads the second data group SD2 stored in the second memory area 114 in fast forward from its beginning to the playback start position (i.e., the beginning of the n1th bar), and updates the sound source settings (e.g., timbre, tempo, pan, etc.) in accordance with other commands read during the fast forward process (step S403). As a result, the sound source settings become the settings for playing back the beginning of the n1th bar.

[0127] Upon completion of the processing of steps S402 and S403, the program 111 simultaneously resumes playback of the first data group SD1 by the first player and playback of the second data group SD2 by the second player (step S404). In other words, the program 111 resumes playback of the song data SD from the playback start position specified by the fast-rewind operation. Additionally, once the time indicated by "step[n1]" has elapsed since playback resumed, the note command following the beginning of the n1th measure is executed.

[0128] In this way, in the fast rewind processing shown in Figure 8, the processor 100 executing the program 111 obtains information on the playback resume position indicated by the fast rewind operation received by the operation unit 130, reads the second memory area 114 (an example of a second memory) from the beginning of the second data group SD2 (an example of a data group including at least one second data) to a position corresponding to the above-mentioned playback resume position, specifies a position in the first memory area 113 (an example of a first memory) that corresponds to the above-mentioned playback resume position, and plays the song data SD (more specifically, the first data group SD1 and second data group SD2 that constitute the song data SD) from the above-mentioned playback resume position.

[0129] In this embodiment, processor 100 executing program 111 directly specifies the playback start position for note commands without fast-forwarding from the beginning of first data group SD1 to the playback start position. By eliminating fast-forwarding for note commands, which are more numerous than other commands, the time required for fast-rewinding is reduced compared to information processing devices with conventional configurations. The effect of reducing the time required for fast-rewinding is more pronounced the larger the size of song data SD and the closer the playback start position after fast-rewinding is to the end of the song.

[0130] 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.

[0131] The inventions described in the claims of the present application as originally filed are as follows: [Appendix 1] dividing music data including first data for executing a first command and second data for executing a second command into the first data and the second data; storing the divided first data and the divided second data in a first memory and a second memory, respectively; A control unit for executing processing, the first data and the second data include information about a waiting time from when a previous command is executed until when a next command is executed in the song data, The control unit calculating a time from when the immediately preceding first command is executed to when the current first command is executed as a waiting time for the divided first data, and storing the calculated time in the first memory; calculating a time from when the immediately preceding second command is executed to when the current second command is executed as a waiting time for the second data after division, and storing the calculated time in the second memory; Information processing device. [Appendix 2] the first data and the second data further include type information indicating a type of the command and setting information of the command indicated by the type information; 10. The information processing device according to claim 1. [Appendix 3] the control unit divides the music data into the first data and the second data based on the type information. 3. The information processing device according to claim 2. [Appendix 4] the control unit generates information indicating a timing for executing the first command of the divided first data, and stores the information in a third memory; 4. The information processing device according to claim 1, [Appendix 5] the information indicating the timing includes information indicating the beginning of a measure in which the first command is executed, and information indicating a time from the beginning of the measure until the first command is executed. 5. The information processing device according to claim 4. [Appendix 6] the control unit reproduces the music data based on the first data stored in the first memory and the second data stored in the second memory. 6. The information processing device according to claim 1, [Appendix 7] playing the music data based on first data for executing a first command, which is separated from the music data and stored in a first memory, and second data for executing a second command, which is separated from the music data and stored in a second memory; a control unit that executes processing; an operation unit that accepts a fast-rewind operation, The control unit acquiring information about a playback restart position designated by the fast-rewind operation received by the operation unit; reading the second memory from the beginning of a data group including at least one of the second data to a position corresponding to the playback resume position, and specifying a position in the first memory corresponding to the playback resume position; reproducing the song data from the playback restart position; Information processing device. [Appendix 8] The number of first data included in the music data is greater than the number of second data included in the music data. 8. The information processing device according to any one of Supplementary Note 1 to Supplementary Note 7. [Appendix 9] the first command is a note command, the second command is a command other than the note command; 9. The information processing device according to any one of Supplementary Note 1 to Supplementary Note 8. [Appendix 10] At least one of the second data included in the song data is arranged at the beginning of the song data. 10. The information processing device according to any one of Supplementary Note 1 to Supplementary Note 9. [Appendix 11] A process of dividing music data including first data for executing a first command and second data for executing a second command into the first data and the second data; storing the divided first data and the divided second data in a first memory and a second memory, respectively; the first data and the second data include information about a waiting time from when a previous command is executed until when a next command is executed in the song data, In the storing process, the computer calculating a time from when the immediately preceding first command is executed to when the current first command is executed as a waiting time for the first data after division, and storing the calculated time in the first memory; calculates a time from when the immediately preceding second command is executed to when the current second command is executed as a waiting time for the second data after division, and stores the calculated time in the second memory; method. [Appendix 12] A process of dividing music data including first data for executing a first command and second data for executing a second command into the first data and the second data; storing the divided first data and the divided second data in a first memory and a second memory, respectively; the first data and the second data include information about a waiting time from when a previous command is executed until when a next command is executed in the song data, In the storing process, the computer calculating a time from when the immediately preceding first command is executed to when the current first command is executed as a waiting time for the first data after division, and storing the calculated time in the first memory; calculates a time from when the immediately preceding second command is executed to when the current second command is executed as a waiting time for the second data after division, and stores the calculated time in the second memory; program. [Appendix 13] a process of playing the music data based on first data for executing a first command, which is separated from the music data and stored in a first memory, and second data for executing a second command, which is separated from the music data and stored in a second memory; and causing the computer to execute a process of accepting a fast-rewind operation; The computer further comprises: acquiring information about a playback restart position designated by the fast-rewind operation; reading the second memory from the beginning of a data group including at least one of the second data to a position corresponding to the playback resume position, and specifying a position in the first memory corresponding to the playback resume position; playing the song data from the playback restart position; method. [Appendix 14] a process of playing the music data based on first data for executing a first command, which is separated from the music data and stored in a first memory, and second data for executing a second command, which is separated from the music data and stored in a second memory; and causing the computer to execute a process of accepting a fast-rewind operation; The computer further comprises: acquiring information about a playback restart position designated by the fast-rewind operation; reading the second memory from the beginning of a data group including at least one of the second data to a position corresponding to the playback resume position, and specifying a position in the first memory corresponding to the playback resume position; playing the song data from the playback restart position; program. [Explanation of symbols]

[0132] 1: Information processing equipment 100: Processor 100A: Song data division section 100B: Song data storage section 100C: Song data playback section 101:RAM 110: Memory 111: Program 112: Song DB 113: First memory area 114: Second memory area 115: Third memory area 120:Display section 130: Operation section 140: Audio output section ATC: Counter T1: Counter T2: Counter

Claims

1. dividing music data including first data for executing a first command and second data for executing a second command into the first data and the second data; storing the divided first data and the divided second data in a first memory and a second memory, respectively; A control unit for executing processing, the first data and the second data include information about a waiting time from when a previous command is executed until when a next command is executed in the song data; The control unit calculating a time from when the immediately preceding first command is executed to when the current first command is executed as a waiting time for the divided first data, and storing the calculated time in the first memory; calculating a time from when the immediately preceding second command is executed to when the current second command is executed as a waiting time for the second data after division, and storing the calculated time in the second memory; Information processing device.

2. the first data and the second data further include type information indicating a type of the command and setting information of the command indicated by the type information; The information processing device according to claim 1 .

3. the control unit divides the music data into the first data and the second data based on the type information; The information processing device according to claim 2 .

4. the control unit generates information indicating a timing for executing the first command of the divided first data, and stores the information in a third memory; The information processing device according to any one of claims 1 to 3.

5. the information indicating the timing includes information indicating the beginning of a measure at which the first command is to be executed, and information indicating a time period from the beginning of the measure until the first command is to be executed; The information processing device according to claim 4 .

6. the control unit reproduces the music data based on the first data stored in the first memory and the second data stored in the second memory. The information processing device according to any one of claims 1 to 5.

7. reproducing the music data based on first data for executing a first command, which is separated from the music data and stored in a first memory, and second data for executing a second command, which is separated from the music data and stored in a second memory; a control unit that executes processing; an operation unit that accepts a fast-rewind operation, The control unit acquiring information about a playback restart position designated by the fast-rewind operation received by the operation unit; reading the second memory from the beginning of a data group including at least one of the second data to a position corresponding to the playback resume position, and specifying a position in the first memory corresponding to the playback resume position; reproducing the song data from the playback restart position; Information processing device.

8. the number of first data included in the music data is greater than the number of second data included in the music data; The information processing device according to any one of claims 1 to 7.

9. the first command is a note command, the second command is a command other than the note command; The information processing device according to any one of claims 1 to 8.

10. At least one of the second data included in the song data is arranged at the beginning of the song data. The information processing device according to any one of claims 1 to 9.

11. A process of dividing music data including first data for executing a first command and second data for executing a second command into the first data and the second data; storing the divided first data and the divided second data in a first memory and a second memory, respectively; the first data and the second data include information about a waiting time from when a previous command is executed until when a next command is executed in the song data; In the storing process, the computer calculating a time from when the immediately preceding first command is executed to when the current first command is executed as a waiting time for the divided first data, and storing the calculated time in the first memory; a time from when the immediately preceding second command is executed to when the current second command is executed is calculated as the waiting time of the second data after division, and the calculated time is stored in the second memory; method.

12. A process of dividing music data including first data for executing a first command and second data for executing a second command into the first data and the second data; storing the divided first data and the divided second data in a first memory and a second memory, respectively; the first data and the second data include information about a waiting time from when a previous command is executed until when a next command is executed in the song data; In the storing process, the computer calculating a time from when the immediately preceding first command is executed to when the current first command is executed as a waiting time for the divided first data, and storing the calculated time in the first memory; a time from when the immediately preceding second command is executed to when the current second command is executed is calculated as the waiting time of the second data after division, and the calculated time is stored in the second memory; program.

13. a process of reproducing the music piece data based on first data for executing a first command, which is separated from the music piece data and stored in a first memory, and second data for executing a second command, which is separated from the music piece data and stored in a second memory; and causing the computer to execute a process of accepting a fast-rewind operation; The computer further comprises: acquiring information about a playback restart position designated by the fast-rewind operation; reading the second memory from the beginning of a data group including at least one of the second data to a position corresponding to the playback resume position, and specifying a position in the first memory corresponding to the playback resume position; playing the song data from the playback restart position; method.

14. a process of reproducing the music piece data based on first data for executing a first command, which is separated from the music piece data and stored in a first memory, and second data for executing a second command, which is separated from the music piece data and stored in a second memory; and causing the computer to execute a process of accepting a fast-rewind operation; The computer further comprises: acquiring information about a playback restart position designated by the fast-rewind operation; reading the second memory from the beginning of a data group including at least one of the second data to a position corresponding to the playback resume position, and specifying a position in the first memory corresponding to the playback resume position; playing the song data from the playback restart position; program.

Citation Information

Patent Citations

  • Storage device with sound source

    JP2002182646A