1. Field of the Disclosure
This disclosure concerns generating bar coded sheet music for use with Musical Instrument Digital Interface (MIDI) devices.
2. Introduction
The Musical Instrument Digital Interface (MIDI) protocol has been widely accepted and utilized by musicians and composers since its introduction in the early 1980's. MIDI data represents computer programmed musical performance information which specifies time, key and strength of stroke, for example, and send the signal to a musical instrument.
For the past several years, many pianos have been equipped with both factory installed and aftermarket MIDI file readers and player bars. These systems allow pianos to read optical or magnetic media with MIDI data. For example, MIDI data may be sent player bars within the piano, which comprise 88 solenoid driven actuators, one for each piano key. These file readers typically utilize preprogrammed floppy disks and/or CDs, created by the reader manufacturers and are both limited in performance material and expensive (costing $25-60, for a single CD). The vast majority of music available on sheet music is not available on these CDs.
This disclosure concerns a method and apparatus that generates bar coded sheet music for use with Musical Instrument Digital Interface (MIDI) devices. The method may include receiving sheet music data, converting the sheet music data to MIDI data, encoding the MIDI data to bar code data, and outputting bar coded sheet music.
Aspects of the embodiments disclosed herein relate to methods for generating bar coded sheet music for use with Musical Instrument Digital Interface (MIDI) devices, a corresponding apparatus, and an apparatus that reads the bar coded sheet music. The disclosed embodiments concern a method and apparatus that will allow music publishers to print sheet music with bar codes that will be readable by a proposed proprietary barcode reader that the end user could mount on or near a musical instrument, such as a piano. Sheet music with the proposed bar coded MIDI data would then be passed through the reader and be played in real time by the piano through the MIDI playing system.
The disclosed embodiments may include a method for generating bar coded sheet music for use with Musical Instrument Digital Interface (MIDI) devices. The method may include receiving sheet music data, converting the sheet music data to MIDI data, encoding the MIDI data to bar code data, associating the bar code data to the sheet music data, and outputting bar coded sheet music.
The disclosed embodiments may further include an apparatus that generates bar coded sheet music for use with MIDI devices. The apparatus may include a MIDI data converter that receives sheet music data and converts the sheet music data to MIDI data, an encoder that encodes the MIDI data to bar code data, and an output device that associates the bar code data to the sheet music data and outputs bar coded sheet music.
The disclosed embodiments may further include an apparatus that reads bar coded sheet music for use with MIDI devices. The apparatus may include a MIDI interface, and a bar coded sheet music reader that reads bar coded data, converts the bar coded data to MIDI data, and outputs the MIDI data to a MIDI device using the MIDI interface.
Processor 220 may include at least one conventional processor or microprocessor that interprets and executes instructions. The processor 220 may be a general purpose processor or a special purpose integrated circuit, such as an ASIC, and may include more than one processor section. Additionally, the bar coded sheet music generator 110 may include a plurality of processors 220.
Memory 230 may be a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor 220. Memory 230 may also include a read-only memory (ROM) which may include a conventional ROM device or another type of static storage device that stores static information and instructions for processor 220. The memory 230 may be any memory device that stores data for use by the bar coded sheet music generator 110.
Input devices 140 may include one or more conventional input mechanisms that permit a user to input information to the bar coded sheet music generator 110, such as a microphone, touchpad, keypad, keyboard, mouse, pen, stylus, voice recognition device, buttons, and the like, and/or interfaces for the above. Output devices 270 such as one or more conventional mechanisms that output information to the user, including a display, one or more speakers, a storage medium, such as a memory, magnetic or optical disk, disk drive, a printer device, and the like, and/or interfaces for the above.
Communication interface 280 may include any mechanism that facilitates communication via one or more communications network. For example, communication interface 280 may include a modem. Alternatively, communication interface 280 may include other mechanisms in communicating with other devices and/or systems via wireless connections.
The bar coded sheet music generator 110 may perform functions in response to processor 220 by executing sequences of instructions or instruction sets contained in a computer-readable medium, such as, for example, memory 230. Such instructions may be read into memory 230 from another computer-readable medium, such as a storage device, or from a separate device via a communication interface, or may be downloaded from an external source such as the Internet. The bar coded sheet music generator 110 may be a stand-alone system, such as a personal computer, or may be connected to a network such as an intranet, the Internet, and the like. Other elements may be included with the bar coded sheet music generator 110 as needed.
Note that while the MIDI data converter 240 and the encoder 250 are shown as separate elements, any or all of their functions may be performed by the processor 220. The operation of the encoder 250 and the MIDI data converter 240 will be discussed below in relation to the discussion concerning
At 5400, the encoder 250 may encode the MIDI data to bar code data. The bar code data may be encoded in any bar code format known to one of skill in the art, including PDF417 & Macro PDF417, PDF417 Truncated, Maxicode, DataMatrix, QRCode, UCC EAN RSS 14 Stacked, UCC EAN RSS 14 Stacked Omni directional, and UCC EAN RSS Expanded Stacked.
The output device 270 may associate the bar code data to the sheet music data. In this manner, the bar codes are configured to properly correspond to the printed sheet music. For example, the associated bar code may be printed directly above or below the corresponding music notes. At step 5500, the output device 270 may output the bar coded sheet music. The output device 270 may be any device that can print sheet music, such as a printer, or assist in the printing of sheet music such as a memory device. The process then goes to step 5600 and ends. Note that for long printed musical compositions, the bar codes may be consolidated onto a single page that is supplied loose leaf from the rest of the music to facilitate sending through a reader.
Embodiments as disclosed may also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures. When information is transferred or provided over a network or another communications connection (either hard wired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable media.
Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, objects, components, and data structures, and the like that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described therein.
It will be appreciated that various of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.