1. Field of the Invention
The present invention relates to devices for indicating tempo or rhythm and, in particular, to metronomes using light.
2. Background Information
A metronome is a device that indicates a tempo or a rhythm. Musicians use metronomes when they practice or perform in order to keep a consistent tempo and/or to synchronize multiple musicians playing multiple musical instruments. A metronome may be adjusted to indicate any one of a range of tempos commonly used in musical compositions.
Musicians have used traditional pendulum metronomes for centuries. A pendulum metronome is a mechanical device using a weight on a rod to control the tempo. The rod swings back and forth with a consistent tempo, and a mechanical structure inside the metronome produces a clicking sound on each swing of the rod. To adjust the tempo, a user adjusts the physical placement of the weight on the rod. Traditional pendulum metronomes work well only for those musicians within direct view or audible range of the metronome. Furthermore, the clicking sound may be undesirable for live performances or recordings.
Current electronic metronomes provide a similar function to traditional pendulum metronomes, typically in a portable unit. These metronomes may include a dial or buttons for controlling the tempo, with one or more flashing lights and/or a speaker producing an auditory queue, such as a clicking sound, to indicate each beat. The flashing lights and/or the speaker share the primary disadvantages of the rod and the clicking sound of traditional pendulum metronomes; namely, these indicators work well only for those musicians within direct view of the metronome, and the auditory queue may be undesirable for live performances or recordings. Furthermore, a flash of light and/or a single auditory queue gives no information to the musician as to how time is progressing between beats. Also, the light may be out of view of a vast number of the musicians in a large ensemble.
To address some of the disadvantages posed by flashing lights and/or a speaker producing an auditory queue, current electronic metronomes may also include an output for connecting a set of headphones, to send the auditory queue directly to the musician's ears without broadcasting an undesirable sound during live performances or recordings. Multiple sets of headphones may be connected to the metronome to send the auditory queue to multiple musicians, thereby synchronizing the musicians without requiring a direct view of the metronome. Although sending the auditory queue via headphones may overcome some of the disadvantages of prior metronome designs, this solution requires additional equipment, such as additional wiring, additional connections, and a set of headphones for each musician. All of this additional equipment adds complexity, expense, potential distraction, and new potential points of failure to prior systems. Furthermore, an auditory queue via headphones still gives no information to the musician as to how time is progressing between beats.
The present invention overcomes the disadvantages of the prior art by providing a system and method for projecting a visual queue to a conveniently viewable surface so as to indicate a tempo or a rhythm such that one or more musicians may be synchronized without requiring auditory interference, headphones, multiple devices, and/or a direct line of sight to the device. The present invention also provides a continuous visual indication of the progress of the tempo such that a musician may anticipate a beat.
Illustratively, a laser or other substantially collimated light source is operatively connected to a reciprocating driver that causes a beam from the laser to sweep back and forth across the conveniently viewable surface at an adjustable frequency, thereby tracing a path across the surface between two beam path boundaries. The beam's direction change at a beam path boundary generally serves as a visual indication of a new musical beat. The laser may be positioned and/or aimed to project the beam on any surface, including, e.g., a far surface such as a wall of a music studio or a near surface such as a sheet of music in front of a musician. The frequency of driver reciprocation (i.e., the tempo) may be adjusted to correspond to one of a range of typical musical tempos, thereby providing the functionality of a metronome but with the novel and useful additional element of a projected beat image and without the disadvantages of the prior art. Thus, a “laser metronome” is herein described.
In an illustrative embodiment, the laser metronome includes a laser or other light source mounted on a reciprocating driver that may comprise a servo or other motorized transport. The servo and the laser are interconnected to a microcontroller that includes a Central Processing Unit (CPU), a Random Access Memory (RAM), a non-volatile memory, a Universal Synchronous Asynchronous Receiver-Transmitter (USART), a plurality of timers, and a plurality of Input/Output (I/O) Pins. The microcontroller interfaces with a display, a Musical Instrument Digital Interface (MIDI interface), a plurality of control buttons, and a foot switch input. The laser metronome may include a different configuration of components according to alternate embodiments.
According to alternate embodiments, the laser metronome may have additional functionality or features, such as a computer data connection, a digital display, a programmable tempo memory, a downbeat queue, additional visual queues, more complex beam paths, an auditory queue, a tap sensor, and/or features to enhance the laser metronome's portability. It will be apparent that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages.
The invention description below refers to the accompanying drawings, of which:
The present invention is directed to a system and method for projecting a visual queue to a conveniently viewable surface so as to indicate a tempo or a rhythm such that one or more musicians may be synchronized without requiring auditory interference, headphones, multiple devices, and/or a direct line of sight to the device. The present invention also provides a continuous visual indication of the progress of the tempo such that a musician may anticipate a beat.
Illustratively, a laser or other substantially collimated light source is operatively connected to a reciprocating driver that causes a beam from the laser to sweep back and forth across the conveniently viewable surface at an adjustable frequency, thereby tracing a path across the surface between two beam path boundaries. The beam's direction change at a beam path boundary generally serves as a visual indication of a new musical beat. The laser may be positioned and/or aimed to project the beam on any surface, including, e.g., a far surface such as a wall of a music studio or a near surface such as a sheet of music in front of a musician. The frequency of driver reciprocation (i.e., the tempo) may be adjusted to correspond to one of a range of typical musical tempos (e.g., a predetermined range between 60 and 230 beats per minute, inclusive), thereby providing the functionality of a metronome but with the novel and useful additional element of a projected beat image and without the disadvantages of the prior art. Thus, a “laser metronome” is herein described.
In an illustrative embodiment, the laser metronome 100 includes a laser 200 or other light source mounted on a reciprocating driver that may comprise a servo 205 or other motorized transport. The servo 205 and the laser 200 are interconnected to a microcontroller 300 that includes a Central Processing Unit (CPU) 305, a Random Access Memory (RAM) 500, a non-volatile memory 400, a Universal Synchronous Asynchronous Receiver-Transmitter (USART) 330, a plurality of timers 310, 315, 320, and a plurality of Input/Output (I/O) Pins 325. The microcontroller 300 interfaces with a display 135, a Musical Instrument Digital Interface (MIDI interface) 220, a plurality of control buttons 130, and a foot switch input 215. The laser metronome 100 may include a different configuration of components according to alternate embodiments.
According to the illustrative embodiment, the control buttons 130 include a Next Function button, a Mode Function button, and other buttons according to alternate embodiments. “Control buttons” 130, as described herein, refer to any means for control, including, for example, a switch, a rotary dial, a sliding indicator, a touchscreen, a keypad, and/or other means for sending commands to the laser metronome 100. Illustratively, the display 135 includes three 7-segment Light-Emitting Diode (LED) units, altogether capable of displaying up to a three-digit number for indicating the metronome's current tempo setting. According to alternate embodiments, the display 135 may include one or more lights for indicating metronome status or other information, e.g., an LED indicating power, a blinking LED indicating each beat, and/or a series of blinking LEDs indicating a downbeat or other aspects of the music. Alternately, the display 135 may include a screen, such as a liquid crystal display (LCD), for displaying the tempo, configuration settings, active connections, and/or other information. “Display” 135, as described herein, generally refers to any means for conveying information to users of the laser metronome 100.
As illustrated in
According to an alternate embodiment, the path 110 may be nonlinear and may include more than two beam path boundaries 140. For example, the beam 115 may sweep between three beam path boundaries 140 to trace an L-shaped pattern wherein each downbeat is visually emphasized by a variation in the path 110. Likewise, other variations in path 110 may emphasize other aspects of the music or act as visual queues to the musicians. For example, a musician may use a foot switch to trigger a pre-programmed beam pattern during an improvisational live performance to indicate to other musicians an impending musical transition. Moreover, the predetermined pattern (i.e., the path 110) may be any pattern which serves to indicate tempo and/or changes in tempo, e.g., a line, a circle, an L-shape, or any combination thereof.
The distance and surface may be varied, as illustrated in
Thus, the laser metronome 100 may be used on a variety of surfaces at infinitely variable distances while still achieving the purpose of the invention. A “surface”, as described herein, may refer to any number of objects, substrates, targets, and/or reflective media to which the laser beam 115 is directed. External mounting hardware and/or other features of the laser metronome 100 may be adapted to the wide variety of possible surfaces and distances. For example, the laser metronome 100 may include a ring clip for mounting the metronome to a microphone stand, or a threaded socket for attaching a tri-pod or a microphone stand to the metronome. The laser metronome 100 may also include an attached and/or detachable screen, such as a folding sheet or a roll of paper, which may be used as a surface. For convenience, the laser metronome 100 may also be divided into multiple components, such as a beam emitter component and a separate control/input component, to provide greater flexibility in mounting the beam emitter while preserving convenient access to metronome controls. Such variations and modifications to the illustrative embodiments as would be apparent, particularly surface and distance variations, remain within the scope of the invention.
According to the illustrative embodiment, the reciprocating driver is a servo 205, such as a radio-control (RC) hobby servo. However, by “driver”, as used herein, it is meant a mechanical and/or electromechanical element that causes the laser 200 and/or corresponding laser beam 115 to move in a predetermined or reciprocating pattern, as described above, and that can be a servo 205 (as in the illustrative embodiment), a stepper motor that performs a reversing function, or another electromechanical device, for example a unidirectional motor (regulated in the manner of a stepper motor or unregulated in the manner of a DC or AC motor) operatively connected to a clevis holding the laser 200 by a tie-bar such that the rotation of the motor causes the clevis to move in a reciprocating manner similar to the structure of a locomotive drive wheel. Conversely, it is contemplated that the “driver” can be a solid state mechanism that redirects the laser beam (or a plurality of beams or light rays) into different locations across the beam path to generate an image that has the appearance of motion. For example, the “driver” may be one or more variably refractive filaments or crystals which refract the laser beam in different directions in response to an electric field, a magnetic field, an electrical potential, and/or a signal from the microcontroller 300.
Illustratively, the microcontroller 300 controls the servo 205 and the laser 200 via channels 225, 230. In this example, the servo 205 is a conventional RC hobby servo controlled by sending a series of pulses (i.e., a pulse train) to the servo 205 at a rate of 100 pulses per second (100 Hz or one pulse per 10 ms). The position of the servo 205 is controlled by the width of the pulses in the pulse train, various pulse widths corresponding to various servo positions. In the case of exemplary servo 205, the pulse widths may be between one and two milliseconds (1 ms to 2 ms) wide. For example: a pulse train with pulse widths of 1.5 ms per pulse may correspond to a center position of the servo 205; a pulse train with pulse widths of 2 ms per pulse may correspond to a 90 degree turn of the servo 205 relative to the center position; and a pulse train with pulse widths of 1 ms per pulse may correspond to a −90 (negative 90) degree turn of the servo 205 relative to the center position. The relationship between pulse width and servo position may vary depending on the type of hobby servo 205. Likewise, the microcontroller signal for controlling servo position may vary depending on the type of servo 205. For example, typical hobby servos may be controlled by a pulse train with any rate between 50 Hz and 100 Hz. Other servos, including some hobby servos, may be controlled by pulse trains with other rates. As such, a 100 Hz pulse train controlling hobby servo position by pulse width should be taken as exemplary only.
In the illustrative embodiment, wherein the servo 205 is a hobby servo controlled by a 100 Hz pulse train and the beam path 110 is linear with two beam path boundaries 140, the motion of the servo 205 and the corresponding beam 115 is divided into 24 steps during each beat. Thus, in response to changes in the pulse widths of pulses in the pulse train, the servo 205 assumes 24 evenly spaced intermediate positions while causing the laser beam 115 to traverse the sweep angle A1. Likewise, the corresponding beam 115 assumes 24 evenly spaced intermediate positions as it sweeps between the beam path boundaries 140. Thus, according to the illustrative embodiment, the motion of the beam 155 is not perfectly continuous; however, in alternate embodiments, it may be. The illustrative embodiment uses 24 steps as exemplary only, because this is the number of hexa-decimal “F8” characters used to indicate a single beat under the Musical Instrument Digital Interface (MIDI) protocol. Alternately, the servo 205 or reciprocating driver may assume more or less intermediate positions. For example, the pulse widths of pulses in the pulse train may be increased or decreased between each pulse, yielding 100 steps per second when the servo 205 is controlled by a 100 Hz pulse train (depending on the tempo, this may be more or less than 24 steps per beat). It is expressly contemplated that, according to some embodiments, it may be undesirable to step the servo 205 on every pulse, due to vibration and/or settling effects resulting from the incremental stepping motion of the servo 205. Thus, it may be desirable to provide at least two pulses between each step (e.g., by stepping the servo 205 at a rate of 50 steps per second, where the servo 205 is controlled by a 100 Hz pulse train). Alternately, the reciprocating driver may be a mechanical or electromechanical device controlled by an analog regulator, such as an AC motor, thereby yielding continuous beam motion without intermediate steps. Moreover, depending on the embodiment, the number of intermediate steps between beats may be varied while still remaining within the scope of this invention.
Illustratively, a foot switch input 215 is one of the inputs 125 and is operatively connected to the microcontroller 300. A foot switch is a device commonly used by musicians to control equipment while the musician plays a musical instrument. A foot switch may be a simple device functioning as a single pole, single throw switch, or a more complex device with multiple configurable functions. The foot switch input 215 may receive signals from a foot switch to control the microcontroller 300. For example, the microcontroller 300 may be programmed to increment the tempo by 1 beat-per-minute (bpm) in response to a signal from the foot switch input 215. Other functions of the laser metronome 100 may also be controlled by the foot switch input 215.
A Musical Instrument Digital Interface (MIDI interface) 220 is also one of the inputs 125 and is operatively connected to the microcontroller 300, according to the illustrative embodiment. MIDI is an industry standard protocol which allows electronic musical instruments, computers, and other electronic music-related devices to communicate. Illustratively, the MIDI interface 220 is a 5-pin DIN (Deutsches Institut fur Normung; the German Institute for Standardization) connector operatively connecting an external MIDI device to the laser metronome 100. An external MIDI device, as described herein, is any device capable of communicating via the MIDI protocol, for example a computer, an electronic musical instrument, and/or another electronic music-related device. The microcontroller 300 may respond to MIDI messages received at the MIDI interface 220 to control and configure laser metronome 100 functionality, for example to set the tempo as described below in reference to
Illustratively, the microcontroller 300 includes a Central Processing Unit (CPU) 305, a non-volatile memory 400, a Random Access Memory (RAM) 500, a Universal Synchronous Asynchronous Receiver-Transmitter (USART) 330, a Step Time Timer 310, a Pulse Start Timer 315, a Pulse Width Timer 320, and a plurality of Input/Output (I/O) Pins 325. CPU 305 interfaces with and controls the servo 205, the laser 200, and the other components of the microcontroller 300. Illustratively, CPU 305 executes software to implement the functionality of the laser metronome 100, however, according to alternate embodiments, the functions of the CPU 305 and/or microcontroller 300 may be implemented in hardware, e.g., as an application-specific integrated circuit (ASIC) or similar state machine architecture. Non-volatile memory 400 stores software and variables required by the CPU 305 during initialization and control data necessary for generating a range of tempos, as described below in reference to
Illustratively, flash memory 450 stores metronome operating software 405 and one or more lookup tables 410 (described below). The metronome software 405 is loaded by the CPU 305 when the laser metronome 100 is turned on. The CPU 305 then executes the metronome software 405 to control the components of the microcontroller 300 and, more generally, the laser metronome 100.
The lookup tables 410 contain a plurality of step gaps 415 corresponding to tempo settings 440 and additional information 435 according to alternate embodiments. A step gap 415 is a data value representing the amount of time between each step. The amount of time between each step depends on the tempo setting of the laser metronome 100 and the number of steps during each beat. For example, according to the illustrative embodiment wherein the motion of the servo 205 and corresponding laser beam 115 is divided into 24 steps during each beat, given a tempo of 60 bpm (1 beat per second) the amount of time between each step is 41.667 ms (1 second divided by 24 steps). The lookup tables 410 store a list of tempo settings 440 and their corresponding step gaps 415. Note that the step gaps 415 may be stored according to any data format recognizable and/or usable by the CPU 305. For example, the step gaps 415 may be stored as data values representing the number of CPU processor cycles and/or instructions between steps. For example, where the CPU 305 executes instructions at a rate of 1 MHz (1 million instructions per second) and there are 24 steps per beat, the value of the step gap 415 corresponding to a tempo setting 440 of 60 bpm would be 41,667 (representing 41,667 instructions between steps). When a musician selects a tempo setting 440 for the laser metronome 100, CPU 305 reads the corresponding step gap 415 from the lookup tables 410, as described below in reference to
According to the illustrative embodiment, EEPROM 445 stores a last tempo setting 425, one or more user tempo settings 430, and additional information 435 according to alternate embodiments. The last tempo setting 425 corresponds to the most recently used user tempo setting 430 and is loaded by the CPU 305 when the laser metronome 100 is turned on, as described below in reference to
The non-volatile memory 400 may store additional information 435 according to alternate embodiments; for example, a musician may store one or more custom routines and/or sequences of tempo settings to be triggered by a signal from, e.g., the foot switch input 215. The illustrative embodiment provides an example technique for adjusting the tempo of the laser metronome 100, however the present invention is not limited to this technique. As such, the described control buttons 130 and tempo setting data stored in the EEPROM 445 should be taken as illustrative only. Likewise, dividing the non-volatile memory 400 into a flash memory 450 and EEPROM 445 should also be taken as illustrative only.
Illustratively, RAM 500 stores one or more counters 505, a plurality of runtime variables 510, and additional information 555 according to alternate embodiments. The counters 505 include a step counter 515 and additional counters 520 according to alternate embodiments. The runtime variables 510 include a current tempo setting 560, a pulse width 525, a pulse gap 530, a current step gap 535, a number of steps per beat 540, a direction 545, and additional variables 550 according to alternate embodiments.
The counters 505 are data values incremented and/or decremented by CPU 305 to track changing aspects of the laser metronome 100 and/or data received by the laser metronome 100. Illustratively, the step counter 515 tracks the intermediate steps of the servo 205 and the corresponding laser beam 115. According to the illustrative embodiment, where there are 24 steps during each beat, the step counter 515 counts from 0 to 24, incrementing by 1 in response to each step. More generally, the step counter 515 counts from 0 to the number of steps per beat 540, which is stored as a runtime variable 510. In response to the step counter 515 reaching the number of steps per beat 540, the microcontroller 300 reverses the direction of motion of the servo 205 and the corresponding laser beam 115 and resets the step counter 515, as described below in reference to
The runtime variables 510 are data values generated, stored, and/or accessed by the CPU 305 during runtime operation of the laser metronome 100. The current tempo setting 560 represents the current tempo which the laser metronome 100 is set to. Illustratively, the current tempo setting 560 is a pointer pointing to the memory location in the flash memory 450 of a tempo setting 440, however it may alternately be a pointer pointing to the corresponding step gap 415, depending on the implementation of the flash memory 450. Illustratively, the pulse width 525 represents the duration of the pulses of the pulse train to the servo 205. Thus, for each step of the servo 205 during each beat, the pulse width 525 corresponding to the current servo position is either recomputed by the CPU 305 or retrieved from a lookup table 410. The pulse gap 530 represents the amount of time between pulses of the pulse train to the servo 205. According to the illustrative embodiment, where the servo 205 is a hobby servo controlled by a 100 Hz pulse train, the pulse gap 530 is 10 ms, and the pulse width 525 may be between 1 ms and 2 ms. The current step gap 535 represents the amount of time between each step of the servo 205 at the current tempo setting 560. As discussed above, in reference to step gaps 415, variables representing amounts of time may be stored according to any data format recognizable and/or usable by the CPU 305. For example, the pulse gap 530 may be stored as a data value representing the number of CPU processor cycles and/or instructions between pulses. For example, where the CPU 305 executes instructions at a rate of 1 MHz (1 million instructions per second) and the amount of time between pulses is 10 ms, the value of the pulse gap 530 may be 10,000.
The number of steps per beat 540 represents the number of intermediate steps of the servo 205 and corresponding laser beam 115 during each beat. Illustratively, the number of steps per beat 540 is 24, however, according to alternate embodiments, this number may be different, adjustable, and/or variable. Direction 545 represents the current direction of motion of the servo 205 and corresponding laser beam 115. Illustratively, where the beam path 110 is linear with only two beam path boundaries 140, direction 545 is a single bit. A value of 0 indicates the laser beam 115 is sweeping in one direction; a value of 1 indicates the laser beam 115 is sweeping in the opposite direction. According to alternate embodiments, such as where the beam path 110 is nonlinear with more than two beam path boundaries 140, direction 545 may be a more complex variable indicating, e.g., a current segment of the path 110.
According to alternate embodiments, additional runtime variables 550 and additional information 555 may be stored in RAM 500. For example, where the laser 200 is fixed inside the enclosure and the beam path 110 is controlled by one or more mirrors, additional runtime variables 550 may be used to regulate one or more drivers controlling the mirrors. The drivers controlling the mirrors may be servos requiring counters and variables similar to the embodiment described above. Alternately, other variables, counters, and information may be stored in RAM 500 to control and/or regulate the drivers. Likewise, depending on the embodiment, aspects of the functionality of non-volatile memory 400 and RAM 500 may be combined, for example where the functionality of both components is provided by a rewritable computer readable medium, such as a disk drive. Furthermore, RAM 500 may use the same hardware architecture as non-volatile memory 400 (i.e., RAM 500 is not necessarily a volatile memory circuit); these two memory components are separately described herein for illustrative purposes only.
When the laser metronome 100 is operating under MIDI control, step 720 proceeds to step 745 where there CPU 305 enables USART 330 to receive messages from the MIDI interface 220. According to the MIDI protocol, each beat is divided into 24 hexadecimal “F8” characters in a sequence of MIDI messages. Note that use of the “F8” character is exemplary, and other characters, messages, and/or signals may be employed to indicate steps and/or beats. Thus, according to the illustrative embodiment, each beat is divided into 24 steps, each step corresponding to a received “F8” character when the laser metronome is operating under MIDI control. At step 750, the CPU 305 checks the received MIDI message for an “F8” character. When the USART 330 receives an “F8” character, the procedure 700 continues to step 755 where the CPU 305 steps the servo 205, the procedure 800 for which is described below in reference to
The laser metronome 100 may also respond to other MIDI messages, such as “start” or “stop” signals. The MIDI protocol defines a “start” signal as a hexadecimal “FA” character and a “stop” signal as a hexadecimal “FC” character, however other signals, characters, and/or messages may be employed as “start” or “stop” signals. When the USART 330 is not receiving an “F8” character, procedure 700 continues from step 750 to step 760 to check for other recognized MIDI messages. At step 760, the CPU 305 checks for a “start” signal, which may be any sequence of MIDI characters predetermined to represent an instruction to start the laser metronome 100. In response to a “start” signal, CPU 305 activates the laser 200 at step 770, and the procedure 700 returns to step 750. Alternately, at step 765, the CPU 305 checks for a “stop” signal, which may be any sequence of MIDI characters predetermined to represent an instruction to stop the laser metronome 100. In response to a “stop” signal, CPU 305 deactivates the laser 200 at step 775, and the procedure returns to step 750. According to alternate embodiments, the laser metronome 100 may respond to other MIDI messages, such as MIDI information representing a percussion track, to enable alternate features, such as a downbeat indicator. Where the received MIDI message is not a recognized message representing an instruction to the laser metronome 100, the procedure 700 returns to step 750.
The above-described procedures 600, 700, 800, 900, 1000 (
The laser metronome 100 of
According to further alternate embodiments, the laser metronome may have additional functionality or features, such as a computer data connection, a digital display, a programmable tempo memory, a downbeat queue, additional visual queues, more complex beam paths, an auditory queue, a tap sensor, and/or features to enhance the laser metronome's portability (e.g., remote controls and wireless features). For example, typically for shorter range operations, the virtual or actual pivot can be replaced with (or supplemented by) a shuttle system that moves the beam in substantially lateral (e.g., side-to-side) rather than pivotal motion. The term “driver” should be taken to include such lateral movement capability. The laser metronome 100 may even include a plurality of drivers and/or lasers which may be selectively enabled to provide a plurality of patterns and/or visual queues. Likewise, the sweep angle of the beam may be variable and/or adjustable. It will be apparent that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages.
The foregoing description has been directed to particular embodiments of this invention. It will be apparent, however, that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages. Specifically, it should be noted that the principles of the present invention may be implemented using any technique for controlling a beam of substantially collimated light. Similarly, while a point of light may be the projected visual queue in an illustrative embodiment, a variety of more complex shapes and even varying shapes that follow a predetermined pattern on a surface can be used. Such shapes can include text, pictures, or abstract visuals. Additionally, the procedures, processes, and/or components described herein may be implemented in hardware, software, embodied as a computer-readable medium having program instructions, firmware, or a combination thereof. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.
The present application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/633,466, which was filed on Dec. 6, 2004, by Robert Lawliss et al. for a METRONOME WITH PROJECTED BEAT IMAGE and is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60633466 | Dec 2004 | US |