Patent US5852251A successfully refreshed from Google Patents.
US5852251A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and apparatus for real-time dynamic midi control
Assignee: MStar Semiconductor Inc Taiwan
•
Filing: 1997-06-25
•
Granted: 1998-12-22
•
Expires: 2017-06-25
Abstract
Abstract A real time dynamic MIDI controller pre-processes MIDI files to facilitate playback by re-formatting stored MIDI files into a modified MIDI file format and simultaneously eliminating MIDI META events that are stored in the file, but unnecessary for playback. The MIDI controller includes an administrator to effect channel grouping, channel voice message grouping, or a combination thereof, to facilitate the control of selected MIDI file parameters. The real time dynamic MIDI controller also includes an output interface circuit to coordinate the transmission of one or more MIDI file that the MIDI controller has processed.
Inventors
- 👤 Alvin Wen-Yu Su
- 👤 Ching-Min Chang
- 👤 Liang-Chen Chien
- 👤 Der-Jang Yu
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-09 13:21
CPC Classifications
G; G10; G10H; G10H1/00; G10H1/0033; G10H1/0041; G10H1/0058; G10H1/0066; G10H2240/00; G10H2240/011; G10H2240/016; G10H2240/021
Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
105 words
A method for processing musical instrument digital interface (MIDI) files, comprising the steps, performed by a processor, of: receiving a MIDI file having a plurality of events that represent musical information; extracting from the MIDI file timing information; storing the extracted timing information in a modified file; extracting a next event from the MIDI file; determining whether the next event is necessary for musical production; storing the next event in the modified file if the next event is necessary for musical production; repeating the extracting and next event storing steps if a further next event exists in the MIDI file; and outputting the modified file.
Claim 2
Independent Claim
105 words
A method for processing musical instrument digital interface (MIDI) files, comprising the steps, performed by a processor, of: receiving a MIDI file having a plurality of events that represent musical information; extracting from the MIDI file timing information; storing the extracted timing information in a modified file; extracting a next event from the MIDI file; determining whether the next event is necessary for musical production; storing the next event in the modified file if the next event is necessary for musical production; repeating the extracting and next event storing steps if a further next event exists in the MIDI file; and outputting the modified file.
Claim 3
Independent Claim
306 words
A method for processing musical instrument digital interface (MIDI) files, comprising the steps, performed by a processor, of: (a) receiving a MIDI file having a plurality of chunk data, each chunk data including a plurality of events; (b) extracting a first chunk data from the MIDI file; (c) extracting from the first chunk data timing information; (d) storing the extracted timing information in a modified file; (e) extracting a next event from the first chunk data; (f) determining whether the next event is necessary for musical production and storing the next event in the modified file if the next event is necessary for musical production; (g) repeating steps (e)-(f) if a further next event exists in the first chunk data; (h) transferring the timing information from the modified file to a temporary file; (i) extracting a next chunk data from the MIDI file; (j) extracting a first next event from the modified file; (k) generating a first next event time accumulation signal; (l) extracting a second next event from the next chunk data; (m) generating a second next event time accumulation signal; (n) storing the first next event in the temporary file and the second next event in the next chunk data if the first next event time accumulation signal is no greater than the second next event time accumulation signal; (o) storing the second next event in the temporary file and the first next event in the modified file if the first next event time accumulation signal is greater than the second next event time accumulation signal; (p) repeating steps (j)-(o) until all of the modified events and chunk data events have been stored in the temporary file; (q) storing the temporary file as the modified file; and (r) repeating steps (i)-(q) until all of the chunk data have been stored into the modified file.
Claim 4
Independent Claim
306 words
A method for processing musical instrument digital interface (MIDI) files, comprising the steps, performed by a processor, of: (a) receiving a MIDI file having a plurality of chunk data, each chunk data including a plurality of events; (b) extracting a first chunk data from the MIDI file; (c) extracting from the first chunk data timing information; (d) storing the extracted timing information in a modified file; (e) extracting a next event from the first chunk data; (f) determining whether the next event is necessary for musical production and storing the next event in the modified file if the next event is necessary for musical production; (g) repeating steps (e)-(f) if a further next event exists in the first chunk data; (h) transferring the timing information from the modified file to a temporary file; (i) extracting a next chunk data from the MIDI file; (j) extracting a first next event from the modified file; (k) generating a first next event time accumulation signal; (l) extracting a second next event from the next chunk data; (m) generating a second next event time accumulation signal; (n) storing the first next event in the temporary file and the second next event in the next chunk data if the first next event time accumulation signal is no greater than the second next event time accumulation signal; (o) storing the second next event in the temporary file and the first next event in the modified file if the first next event time accumulation signal is greater than the second next event time accumulation signal; (p) repeating steps (j)-(o) until all of the modified events and chunk data events have been stored in the temporary file; (q) storing the temporary file as the modified file; and (r) repeating steps (i)-(q) until all of the chunk data have been stored into the modified file.
Claim 5
Dependent Claim
54 words
The method of claim 2 wherein each of the steps (k) and (m) comprise the steps of: selecting a set tempo and a number of clock ticks per MIDI quarter note value; and generating an accumulated time signal based on the set tempo and the number of clock ticks per MIDI quarter note value.
Claim 6
Independent Claim
79 words
An apparatus for processing musical instrument digital interface (MIDI) files, comprising: a memory for storing MIDI files in one of formats 0, 1, and 2; and a MIDI controller including a pre-processor for converting the MIDI files into a predetermined format, a control process administrator for selectively changing MIDI parameters of each converted MIDI file, and a data optimizer to ensure each converted MIDI file processed by the control process administrator has a size within a predetermined transmission capacity.
Claim 7
Independent Claim
79 words
An apparatus for processing musical instrument digital interface (MIDI) files, comprising: a memory for storing MIDI files in one of formats 0, 1, and 2; and a MIDI controller including a pre-processor for converting the MIDI files into a predetermined format, a control process administrator for selectively changing MIDI parameters of each converted MIDI file, and a data optimizer to ensure each converted MIDI file processed by the control process administrator has a size within a predetermined transmission capacity.
Claim 8
Dependent Claim
95 words
The apparatus of claim 4 wherein the MIDI controller includes a timer including a counter; a MIDI time signal generating circuit including an interrupt storage register, a tick high time storage register, and a SSP storage register; a MIDI signal generating circuit for receiving a MIDI file; and means for comparing values in the interrupt storage register, the tick high time register, and the SSP storage register with a current value of the counter; and wherein the MIDI time signal generating circuit includes means, responsive to the comparing means, for generating an output MIDI file.
Claim 9
Dependent Claim
166 words
A musical instrument digital interface (MIDI) controller comprising: means for pre-processing a standard MIDI file stored in a memory to generate a modified MIDI file wherein the processing means comprises: means for extracting the standard MIDI file from the memory; means for determining a format of the standard MIDI file; and means for converting the standard MIDI file to the modified MIDI file in accordance with the determined format, wherein the means for converting the standard MIDI file comprises: means for storing timing information of the standard MIDI file in a modified MIDI file; means for iteratively extracting a plurality of MIDI events from the standard MIDI file; means for determining, for each extracted MIDI event, whether the extracted MIDI event is required for playback; and means for storing each extracted MIDI event determined to be required for playback in the modified MIDI file; means for controlling at least one parameter of the modified MIDI file; and means for optimizing the modified MIDI file for transmission.
Claim 10
Dependent Claim
166 words
A musical instrument digital interface (MIDI) controller comprising: means for pre-processing a standard MIDI file stored in a memory to generate a modified MIDI file wherein the processing means comprises: means for extracting the standard MIDI file from the memory; means for determining a format of the standard MIDI file; and means for converting the standard MIDI file to the modified MIDI file in accordance with the determined format, wherein the means for converting the standard MIDI file comprises: means for storing timing information of the standard MIDI file in a modified MIDI file; means for iteratively extracting a plurality of MIDI events from the standard MIDI file; means for determining, for each extracted MIDI event, whether the extracted MIDI event is required for playback; and means for storing each extracted MIDI event determined to be required for playback in the modified MIDI file; means for controlling at least one parameter of the modified MIDI file; and means for optimizing the modified MIDI file for transmission.
Claim 11
Dependent Claim
21 words
The MIDI controller of claim 6 wherein the controlling means includes a schedule controller, a manual controller, and a software controller.
Claim 12
Dependent Claim
24 words
The MIDI controller of claim 6 wherein the controlling means includes means for discretely revising at least one parameter of the modified MIDI file.
Claim 13
Dependent Claim
46 words
The MIDI controller of claim 6 wherein the controlling means includes means for changing at least one parameter of the modified MIDI file from a first value to a second value in accordance with a predetermined function defining additional values between the first and second values.
Claim 14
Dependent Claim
60 words
A MIDI controller of claim 6 wherein the controlling means includes means for discretely revising at least one parameter of the modified MIDI file and means for changing at least one parameter of the modified MIDI file from a first value to a second value in accordance with a predetermined function defining additional values between the first and second values.
Claim 15
Dependent Claim
15 words
The MIDI controller of claim 9 wherein the predetermined function is a linear conversion function.
Claim 16
Dependent Claim
15 words
The MIDI controller of claim 9 wherein the predetermined function is a log conversion function.
Claim 17
Dependent Claim
15 words
The MIDI controller of claim 9 wherein the predetermined function is an exponential conversion function.
Claim 18
Dependent Claim
15 words
The MIDI controller of claim 9 wherein the predetermined function is a non-linear mapping function.
Claim 19
Dependent Claim
32 words
The MIDI controller of claim 9 wherein the predetermined function is at least one of a linear conversion function, a log conversion function, an exponential conversion function, and a non-linear mapping function.
Claim 20
Dependent Claim
132 words
A computer program product comprising: a computer usable medium having computer readable code embodied therein for processing data and a musical instrument digital interface (MIDI) controller, the computer usable medium comprising: a receiving module configured to receive a MIDI file to be processed by the MIDI controller; an event module configured to process events in the MIDI file and determine whether each event is necessary for musical production; a preprocessing module configured to convert the MIDI file into a predetermined format, said predetermined format including only events necessary for musical production; a control process module configured to selectively change MIDI parameters of the converted MIDI file; and a data optimizing module configured to optimize the converted MIDI file processed by the control process module into a size within a predetermined transmission capacity.
Claim 21
Dependent Claim
132 words
A computer program product comprising: a computer usable medium having computer readable code embodied therein for processing data and a musical instrument digital interface (MIDI) controller, the computer usable medium comprising: a receiving module configured to receive a MIDI file to be processed by the MIDI controller; an event module configured to process events in the MIDI file and determine whether each event is necessary for musical production; a preprocessing module configured to convert the MIDI file into a predetermined format, said predetermined format including only events necessary for musical production; a control process module configured to selectively change MIDI parameters of the converted MIDI file; and a data optimizing module configured to optimize the converted MIDI file processed by the control process module into a size within a predetermined transmission capacity.
References Cited (Backward Citations)
US5119711A
Cited
US5208421A
Cited
US5471008A
Cited
US5140887A
Cited
US5453570A
Cited
US5376752A
Cited
US5521323A
Cited
US5574243A
Cited
US5521324A
Cited
US5616878A
Cited
US5596159A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2001-12-21 | 2002-06-22 | 2002-12-22 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2005-12-21 | 2006-06-22 | 2006-12-22 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2009-12-21 | 2010-06-22 | 2010-12-22 | $7700.00 | Window Closed / Lapsed |