US9177538B2ActiveUtilityA1

Channel-mapped MIDI learn mode

Assignee: MIXERMUSE LLPPriority: Oct 10, 2011Filed: Nov 5, 2013Granted: Nov 3, 2015
Est. expiryOct 10, 2031(~5.2 yrs left)· nominal 20-yr term from priority
G10H 1/46G10H 2240/056G10H 2220/106G10H 2240/311G10H 1/0066G10H 1/0033G10H 2240/011
62
PatentIndex Score
4
Cited by
27
References
20
Claims

Abstract

Embodiments of the invention include systems and methods for inferential generation of virtual sequencer controls in a MIDI sequencer to automate functionality of physical or virtual controls of MIDI instruments. MIDI source data from a song or a live feed is analyzed to determine a sequence of MIDI control commands from which a set of virtual sequencer controls can be automatically inferred without manual generation or configuration of the virtual control. The virtual sequencer controls are generated to automate a corresponding MIDI instrument control. Some embodiments provide functionality, including generation and handling of clone controls, use of virtual sequencer controls as slave and/or translation controls, and handling of after-click control information through a virtual synthesizers and the like.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
       1. A method for inferentially generating a virtual sequencer control from a sequence of MIDI commands, the method comprising:
 receiving the sequence of MIDI commands generated by a plurality of MIDI instrument controls of at least one MIDI instrument; 
 identifying a set of control data from the sequence of MIDI commands as sharing an identified MIDI port, an identified MIDI channel, and an identified MIDI control change; 
 identifying an extended MIDI control command from the sequence of MIDI commands that extends functionality of the identified MIDI control change; and 
 generating a proposed virtual sequencer control within a virtual MIDI sequencer, such that the proposed virtual sequencer control is configured to generate control commands corresponding to the identified MIDI control change and to output the control commands over the identified MIDI port and the identified MIDI channel in accordance with the extended functionality of the extended MIDI control command. 
 
     
     
       2. The method of  claim 1 , wherein:
 the identified MIDI channel is a first MIDI channel; 
 identifying the extended MIDI control command from the sequence of MIDI commands that extends functionality of the identified MIDI control change comprises identifying a second MIDI channel associated with the extended MIDI control command; and 
 generating the proposed virtual sequencer control within the virtual MIDI sequencer is in accordance with the extended functionality of the extended MIDI control command only when it is determined, according to a predefined channel mapping, that the extended MIDI control command operates to extend functionality of the identified MIDI control change when the extended MIDI control command is communicated on the second MIDI channel and data corresponding to the identified MIDI control change is communicated on the first MIDI channel. 
 
     
     
       3. The method of  claim 2 , wherein the first MIDI channel is different from the second MIDI channel. 
     
     
       4. The method of  claim 2 , wherein the proposed virtual sequencer control is configured to generate extended control commands corresponding to the extended functionality of the extended MIDI control command and to output the extended control commands over the identified MIDI port and the second MIDI channel. 
     
     
       5. The method of  claim 1 , wherein the extended MIDI control command is a bank switch command. 
     
     
       6. The method of  claim 5 , wherein the proposed virtual sequencer control is configured to be associated with a particular bank according to the received bank switch command, and, when generating control commands, to:
 determine a present bank associated with the identified MIDI port and the identified MIDI channel; and 
 output a generated bank switch command only when the present bank is different from the particular bank. 
 
     
     
       7. The method of  claim 6 , wherein the bank switch command is received over a particular MIDI channel, and the proposed virtual sequencer control is configured to output the generated bank switch command over the particular MIDI channel. 
     
     
       8. The method of  claim 5 , wherein:
 the extended MIDI control command indicates a change from a first bank associated with the identified MIDI control change during a first time window to a second bank associated with the identified MIDI control change during a second time window; and 
 generating the proposed virtual sequencer control within the virtual MIDI sequencer comprises: 
 generating a first proposed virtual sequencer control corresponding to the identified MIDI control change to output the control commands over the identified MIDI port, the identified MIDI channel, and the first bank in accordance with the extended MIDI control command; and 
 generating a second proposed virtual sequencer control corresponding to the identified MIDI control change to output the control commands over the identified MIDI port, the identified MIDI channel, and the second bank in accordance with the extended MIDI control command. 
 
     
     
       9. The method of  claim 1 , wherein the extended MIDI control command is a non-registered parameter number or a registered parameter number command. 
     
     
       10. The method of  claim 1 , further comprising:
 generating an interactive graphical user interface element corresponding to the proposed virtual sequencer control, such that user manipulation of the graphical user interface element causes the proposed virtual sequencer control to generate and output control commands according to the manipulation. 
 
     
     
       11. A computer-implemented sequencer system configured to communicate with a plurality of MIDI instrument controls of at least one MIDI instrument via a plurality of MIDI channels over at least one MIDI port, the sequencer system comprising:
 a plurality of virtual sequencer control modules, each configured to generate and output control commands for automating at least one of the MIDI instrument controls; 
 a graphical user interface (GUI) module configured to provide manipulation of the control commands associated with each virtual sequencer control via virtual manipulation by a user of an interactive GUI element corresponding to that virtual sequencer control; and 
 an inferential control generator, configured to: 
 identify a set of control data from a received sequence of MIDI commands as sharing an identified MIDI port, an identified MIDI channel, and an identified MIDI control change, all associated with a particular MIDI instrument control; 
 identify an extended MIDI control command from the sequence of MIDI commands that extends functionality of the identified MIDI control change; and 
 generate a proposed virtual sequencer control configured to generate control commands corresponding to the identified MIDI control change and to output the control commands over the identified MIDI port and the identified MIDI channel in accordance with the extended functionality of the extended MIDI control command. 
 
     
     
       12. The sequencer system of  claim 11 , wherein the inferential control generator is further configured to:
 generate a virtual sequencer control module from the proposed virtual sequencer control. 
 
     
     
       13. The sequencer system of  claim 11 , wherein the GUI further comprises a learn mode interface configured to allow a user to preselect a learn widow defining a temporal portion of a MIDI source data location from which to parse the sequence of MIDI commands for use in inferential control generation. 
     
     
       14. The sequencer system of  claim 11 , wherein:
 the identified MIDI channel is a first MIDI channel; 
 the inferential control generator is configured to identify the extended MIDI control command from the sequence of MIDI commands that extends functionality of the identified MIDI control change by identifying a second MIDI channel associated with the extended MIDI control command; and 
 the inferential control generator is configured to generate the proposed virtual sequencer control within the virtual MIDI sequencer in accordance with the extended functionality of the extended MIDI control command only when it is determined, according to a predefined channel mapping, that the extended MIDI control command operates to extend functionality of the identified MIDI control change when the extended MIDI control command is communicated on the second MIDI channel and data corresponding to the identified MIDI control change is communicated on the first MIDI channel. 
 
     
     
       15. The sequencer system of  claim 14 , wherein the first MIDI channel is different from the second MIDI channel. 
     
     
       16. The sequencer system of  claim 14 , wherein the proposed virtual sequencer control is configured to generate extended control commands corresponding to the extended functionality of the extended MIDI control command and to output the extended control commands over the identified MIDI port and the second MIDI channel. 
     
     
       17. The sequencer system of  claim 11 , wherein the extended MIDI control command is a bank switch command. 
     
     
       18. The sequencer system of  claim 17 , wherein the proposed virtual sequencer control is configured to be associated with a particular bank according to the received bank switch command, and, when generating control commands, to:
 determine a present bank associated with the identified MIDI port and the identified MIDI channel; and 
 output a generated bank switch command only when the present bank is different from the particular bank. 
 
     
     
       19. The sequencer system of  claim 18 , wherein the bank switch command is received over a particular MIDI channel, and the proposed virtual sequencer control is configured to output the generated bank switch command over the particular MIDI channel. 
     
     
       20. The sequencer system of  claim 17 , wherein:
 the extended MIDI control command indicates a change from a first bank associated with the identified MIDI control change during a first time window to a second bank associated with the identified MIDI control change during a second time window; and 
 the inferential control generator is configured to generate the proposed virtual sequencer control within the virtual MIDI sequencer by: 
 generating a first proposed virtual sequencer control corresponding to the identified MIDI control change to output the control commands over the identified MIDI port, the identified MIDI channel, and the first bank in accordance with the extended MIDI control command; and 
 generating a second proposed virtual sequencer control corresponding to the identified MIDI control change to output the control commands over the identified MIDI port, the identified MIDI channel, and the second bank in accordance with the extended MIDI control command.

Join the waitlist — get patent alerts

Track US9177538B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.