This invention relates to a keyboard-controlled electronic musical instrument capable of emulating a strumming guitar.
When a guitarist plays a guitar with standard string tuning and the standard physical configuration (left hand selecting notes on the fretboard and right hand strumming the strings), a downstrum (in which the right hand strokes downward) generally produces an ascending arpeggiated chord. An upstrum generally produces a descending arpeggiated chord. Generally, a guitarist will alternate up and downstrums, producing arpeggiated chords which are alternately ascending and descending. This action is easy, smooth and natural, due to the fact that two chords may be produced with a single up-down cycle of the right hand. This two-chord-per-cycle technique enables a guitarist to easily produce strums in rapid succession. Also, this technique allows a guitarist to easily introduce a swing factor into the timing of the strums. A swing factor or “feel” is present when the elapsed time between an upstrum and a downstrum is different than the elapsed time between a downstrum and an upstrum. By consistently alternating strums with the same time difference, a guitarist can produce a desired swing feel. A guitarist may easily achieve this effect by simply displacing the center of his stroke either slightly above or slightly below the vertical center of the six strings (the vertical center of the strings is between the D and G strings). This displacement of stroke is so easy and natural that guitarists are often not even aware that they are doing it.
Various known prior art processing systems enable a keyboardist to simulate guitar strums. However, these prior art systems have been found to be lacking in the above stated advantageous qualities which a guitar possesses.
For example, U.S. Pat. No. 4,379,420 (Deutsch) describes a keyboard guitar emulator in which a group of keys perform the dual function of chord selection and arpeggiated chord triggering. In text column 11, lines 44-68, an alternating strum direction feature is disclosed. A musician, or user, may trigger a first strum by depressing a chord on the keyboard. Once the chord is depressed and held, an additional strum, alternating in direction, may be triggered by lifting any key within the chord and re-pressing it. Since a chord is triggered only when the key moves from rest to depressed position, the two-chord-per-cycle technique described above is not possible and the above described advantages of this technique are not realized.
Other guitar emulators provide a separate trigger switch to trigger arpeggiated chords, e.g., U.S. Pat. No. 3,967,520 (Drydyk), but none of the known prior art enables a user to produce arpeggiated chords in alternating directions with the same easy, smooth, and natural action of strumming a guitar.
Key:
An electronic triggering device which may be alternated between a rest state (typically “up” position) and a pressed state (typically “down”, or “depressed” position) such as a key in a standard musical keyboard, an electronic Janko musical keyboard (e.g. as in U.S. Pat. No. 5,726,374), a standard computer keyboard, a foot-pedal board or any other array of push-button keys or switches. For the present invention, a keyboard may be worn on the user with the same orientation as the Z-Tar (manufactured by Starr Switch Co. of San Diego, Calif.), an accordion, or other strap-on keyboard, or a keyboard may be horizontally situated in the traditional fashion. The invention may also be realized through the use of two separate keyboards, one or both of which may be foot-pedal boards.
One or more keys may comprise a stationary metal plate which may be electrically connected to a finger sensing circuit. In this alternate embodiment, the triggering device comprises the metal plate key and the sensing circuit. The sensing circuit would occupy a rest key state (e.g., a low current state) when it is untouched and would occupy a selected key state (e.g., a relatively high current state) when a fingertip is making direct contact.
It should be noted that, for any type of key according to the present invention, the two trigger states are not transitory. They are distinct static states. A static state is to be distinguished from a transitory event in that a static state may be maintained indefinitely, and a transitory event may not. For example, the sweeping of a guitar pick over a set of guitar strings is an event. A keyboard key in rest position is in a static state. A key according to the present invention triggers an arpeggiated chord when it is shifted by the user from one static state to another. A key according to the present invention may be configured in such a manner that, under normal operating circumstances, the processing system is always informed of a shift from one state to the other.
Key state changes may be affected through movement of a human appendage, e.g., a finger, foot, elbow, palm, knee, or other body part. The speed with which this appendage moves may be measured in ways which are familiar to those of ordinary skill in the art. Information regarding the speed with which a human appendage effects a state change may be used to determine performance parameters, such as output velocity (e.g., midi velocity messages; normally used by a tone generating device to determine loudness) or arpeggiation rate.
Keyboard:
An array of keys as defined above.
Patch:
A software configuration of the system in which functions and/or chord types are assigned to keys, i.e., a “mapping” of the keyboard.
Tone-Generating Device:
An electronic and/or electrical machine which produces musical tones including (but not limited to) a standard midi sound module, a Steinberg VST-equipped computer system, a computer-controlled automatic piano, e.g., a PianoDisc® piano, or a computer-controlled automatic guitar, e.g., the “Crazy-J”, developed at the George W. Woodruff School of Mechanical Engineering, Georgia Tech University, USA.
Overview:
According to the present invention, an electronic musical instrument is provided which includes at least fourteen keys contained within at least one keyboard. The electronic musical instrument also includes a digital data processing system, and a tone generating device.
The data processing system receives signals representing key state information from the keys, processes the information into musical event information (e.g., tone triggering/muting instructions) according to a predetermined software program, and transmits the musical event information to the tone generating device. The keyboard, processing system, and tone generating device may be housed within a single stand-alone unit, or separate units may be provided for each. For example, the invention may be realized through the use of a standard MIDI controller keyboard sending MDI data to a stand-alone computer which then processes the received data according to the invention and sends this processed data via MDI to a standard stand-alone electronic tone producing module. In the preferred embodiment, the keyboard and microprocessor-controlled processing system are housed in a single unit and communicate via MIDI and/or USB-midi to a tone-generating device. Alternately, the processing system and tone generating device may be incorporated into the same electronic device, circuit board, or even into the same microprocessor-driven computer system. Other hardware configurations are within the scope of the invention as well.
The software program divides the at least fourteen keys into at least two groups.
At least twelve keys are assigned to a root-select function. The system/software interprets these twelve root-select keys to each correspond with a different note of the twelve standard notes contained within an octave. The twelve root-select keys may be contiguous within the keyboard. The data processing system establishes the root-select function assignment by processing information about movement of these keys in a manner which is consistent with a root-select function. The tone generating device is capable of producing at least twelve different tones corresponding with the at least twelve root-select keys. The root-select keys are used to select the root note of the chord to be played. For example, if the desired chord is C major, then the musician presses the root-select key which corresponds with C. If a musical keyboard is used, then that key will be C. The data processing system may select a root-select key based on root-select keystrokes performed by the user. This selected key may then be stored in a data memory location. Alternately, the data processing system may scan the twelve root-select keys to select a pressed key when this data is needed. Since the musician may have no reason to simultaneously depress more than one root-select key at a time, the selected key generally corresponds with the last-pressed root-select key. However, a musician will sometimes accidentally strike two adjacent keys at once. Hence, as is discussed in the Performance Operating Software section below, the software may be engineered so that if a first root-select key is held in pressed state as a second root-select key is pressed, the selected root-select key is the second root-select key; and if either of the two pressed root-select keys are released as the other remains pressed, then the remaining pressed key is the selected root-select key. At least two methods may be used to achieve this result. In the first method, at least two root-select keys may be recorded as pressed in a list in data memory. When one is released, it is removed from the list and another pressed key, which remains in the list, is selected. This first note-determining method is used in the preferred embodiment described below. In a second method, all of the root-select keys are scanned immediately after a root-select key has been released. A key which remains down is then selected.
In addition to the root-select keys, at least two keys are assigned to a strum-trigger function. The data processing system establishes the strum-trigger function assignment by processing information about movement of these keys in a manner which is consistent with a strum-trigger function. The system/software interprets each of the at least two strum-trigger keys to correspond with a different chord type (e.g., major and minor). Each strum-trigger key performs the dual function of chord type selection and strum triggering. At least two strum-trigger keys are provided so that at least two different types of chords may be played. The data processing system transmits musical event information (e.g., midi note-on commands) representing a group of notes in response to a rest-to-pressed state change of a strum-trigger key. The group of notes comprises a musical chord. This chord is based, at least in part, on two factors: (1) the root note corresponding with a root-select key which has been pressed and thereby selected, and (2) the chord type corresponding with the pressed strum-trigger key.
At least two methods may be used to determine the notes within the chord.
In the first note-determining method, pre-determined note lists, or chords, may be stored in an array, or look-up table, in the processing system's memory (RAM 38 or ROM 39 as shown in
In a second note-determining method the processing system may call a chord-constructing subroutine when a strum-trigger key is pressed. This subroutine may calculate note lists according to a predetermined algorithm which may consider various predetermined factors such as common guitar chord voicings.
Other note-determining methods may be used alternately.
The invention may be realized through at least two methods which are described in the following two sections.
1. Single Trigger Keys Method:
With this method, when a strum-trigger key is pressed, the resultant chord comprises a group of notes which is transmitted in an ascending sequence. A pressed-to-rest state change of a strum-trigger key (e.g., an upstroke) causes the data processing system to perform a second transmission of musical event information representing a group of notes which is transmitted in a descending sequence. Hence, the musical results of strum-trigger key movements correspond with the movement of a guitar pick on a standard guitar. These transmissions are contingent upon at least one root-select key being held in pressed state as either of the strum-trigger key state changes occur. The data processing system transmits note-muting musical event information as a result of a pressed-to-rest state change (e.g., an upstroke) of the at least one pressed root-select key; i.e., strummed chords are muted by release of the root-select key.
2. Paired Trigger Keys Method:
With this second method, a strum-trigger key state change from pressed to rest state (i.e., a key release) does not initiate a chord or tone. Only state changes from rest to pressed state (e.g., downstrokes) cause the data processing system to initiate tone production. The data-processing system groups the strum-trigger keys into pairs, each pair consisting of an ASC (ascending) key and a DES (descending) key. A single chord type is assigned to each pair. Hence, at least four strum-trigger keys are required in order for a minimum of two different chord types (e.g., major and minor) to be played. The two keys within each pair operate interactively and are in close physical proximity to each other (not more than 166 mm apart) so that they may easily be played with two fingers within one hand. The data processing system transmits musical event information representing an ascending group of notes as a result of a rest-to-pressed state change of an ASC key, and transmits musical event information representing a descending group of notes as a result of a rest-to-pressed state change of a DES key. The keyboard may include at least two key rows, and the two keys within at least one of the strum-trigger key pairs may occupy different key rows.
If a sustain pedal is included in the system, then muting of sustaining tones may be contingent upon release of the sustain pedal.
The drawing figures each show aspects of the presently preferred embodiment.
I. Overview
The preferred embodiment of the invention is a midi/USB-midi controller keyboard unit incorporating the following features (See
(1) a standard two-row (one white keys row and one black keys row) 61-note keyboard 25 which extends five octaves from a low C note to a high C note;
(2) a key state sensing system (including key position/velocity/pressure sensors 28 and a system to scan these sensors 30) which can, for each key of the keyboard 25, sense downward/upward velocity;
(3) two foot-switch pedals 35, consisting of a left-side select pedal and a right-side sustain pedal;
(4) a microprocessor-controlled computer system 36 (including a central processing unit 37, a random-access memory 38, and a read-only memory 39) which can process information received from the key state sensors and other input devices;
(5) a control panel including various switches 40 to perform various control duties (e.g., changing the operating mode of the unit and/or patches);
(6) a panel scanning circuit 41 for reading control panel key state information;
(7) a panel display screen 43 for displaying the current patch and other system data of interest to the user;
(8) at least one data input/output port 45 which can transmit processed information to a tone-producing module 50 via a standardized digital protocol such as MIDI, USB-MIDI, or both. This processed information includes note-on/velocity commands, note-off/velocity commands. A small microprocessor (not shown) may be provided, dedicated to the task of sending out MIDI data.
It is recommended that the sound module which receives midi data from the keyboard unit be of the type which can produce authentic audio reproductions of guitar string attacks, sustains, and string-muting sounds in response to corresponding midi commands, e.g., VSTi computer systems.
IIa. Summary of Features:
As shown in
Single Trigger Keys Modes:
Mode 1:
Mode 2:
Mode 3:
Mode 4:
Mode 5:
Mode 6:
An implementation of the present invention with any of Modes 4-6 is shown in
For Modes 1, 2, 4, and 5, the musical event information (e.g. midi data) includes a loudness value (e.g., midi velocity messages). The keyboard measures a velocity with which strum-trigger keys are toggled between rest and pressed state (i.e., moved from either state to the other) and transmits this velocity data to the data processing system. The data processing system then assigns a loudness value to the musical tones which is proportional to the velocity data. Hence, faster strum-trigger keystrokes trigger louder musical tones.
For Modes 2 and 5, the data processing system transmits the group of notes (i.e., the musical chord) in a sequence (ascending or descending) with a delay period between successive notes. This delay period determines the strum rate, i.e., the rate at which the notes are sounded. The data processing system also measures an elapsed time between successive strum-trigger key state changes, and employs a predetermined algorithm which proportionally modulates the delay period according the elapsed time between key strokes. Hence, a shorter elapsed time between successive strum-trigger keystrokes will result in a shorter delay period between successive notes.
For Modes 3 and 6, the musical event information (e.g. midi data) includes a loudness value (e.g., midi velocity messages). The keyboard measures the pressure with which root-select keys are held in pressed state and transmits this aftertouch pressure data to the data processing system. (This raw aftertouch data may be monophonic keyboard aftertouch, or may be polyphonic. Polyphonic is preferred for this function because root-select key pressure may then be monitored independently of pressure applied to the keyboard by other keys.) The data processing system assigns a loudness value to the musical tones. This loudness value is proportional to the aftertouch pressure data. Hence, strum-trigger keystrokes trigger louder musical tones when root-select keys are held and pressed with more downward force.
For Modes 1, 3, 4, and 6, the data processing system transmits the group of notes (i.e., the musical chord) in a sequence (ascending or descending) with a delay period between successive notes. This delay period determines the strum rate, i.e., the rate at which the notes are sounded. The keyboard measures a velocity with which strum-trigger keys are toggled between rest and pressed state (i.e., moved from either state to the other) and transmits this velocity data to the data processing system. The data processing system then employs a predetermined algorithm which inversely modulates the delay period according the velocity. Hence, faster strum-trigger keystrokes will result in a shorter delay period between successive notes.
IIb. Relative Advantages of Modes:
An advantage of Modes 1, 2, & 3 is that only one key is required for each desired chord type. Hence, the number of different chord types which may be simultaneously available to the user is limited only by the number of strum-trigger keys.
Advantages of Modes 4, 5, & 6: Strums are easily and naturally triggered by downstrokes only; muting is easily accomplished by release of the depressed strum-trigger key; and consecutive strums of the same direction (e.g., downstrums) may be performed.
An advantage of Modes 1, 3, 4, & 6 over Modes 2 & 5 is that a wider span of strum note delays may be produced in real time, since modes 2 & 5 must set an arbitrary limit (e.g., 398 milliseconds) on measured strum delays (and, hence, on strum note delay values) to differentiate between successive strums & compositional pauses.
An advantage of Modes 1 & 4 is that they are easy to learn and master since both loudness and strum rate are controlled by downward keystroke velocity-a performance parameter which is easy and natural to control.
Advantages of Modes 2 & 6: The strum rate is calculated automatically; as though the user is strumming an actual guitar; and the loudness of the strummed notes can be modulated without affecting the strum rate (unlike Modes 1 & 4).
An advantage of Modes 3 & 6 is that loudness and strum rate may each be controlled directly and independently in real time without affecting any other parameters.
III. Performance Operating Software:
The software architecture may include a memory array containing predetermined note lists, i.e., chords stored in RAM 38 or ROM 39 (shown in
Following are some of the system's memory registers and their functions:
AFTREG: (7 bits) The current aftertouch pressure of the currently-depressed root-select key (may be measured from channel or poly aftertouch). This value may be scaled as discussed below.
CRNTCHRD: (# of bits depends on numerous factors, incl: # of stored chords & system architecture) The memory index number for the current chord (defined by root note and chord type).
CRNTVEL: (7 bits) The raw velocity (e.g., the initial midi velocity value) of the strum-trigger keystroke currently being processed (this initial value may be proportional to the speed with which the key was depressed.).
PREVCHRD: (# of bits depends on numerous factors, incl: # of stored chords & system architecture) The memory index number for the previous chord (defined by root note and chord type).
ROOTREG: (4 bits) The currently selected of twelve root notes (C, C# . . . B). The note stored in ROOTREG is used to select the root of a chord triggered with a strum-trigger key.
ROOTREGB: (4 bits) An auxiliary register used to record the identity of a recently depressed root-select key. In the event that a user's finger accidentally strikes two root-select keys simultaneously (e.g., G & A), ROOTREGB may be used to ensure that the key which remains depressed is the key which is used to select the root of the next strum chord.
RTKYSDWN: (4 bits) The number of root-select-keys in down position. This register may be set at zero during initialization and may be configured to never have a negative value. Hence, in the event that RTKYSDWN has a value of zero and a software step (e.g., step 260) subtracts 1, RTKYSDWN remains unchanged at zero. This situation is expected to occur only in the event that the user holds one or more root-select keys down during initialization.
SLOWSTRUM: (1 bit) When this bit is set, it indicates that one of the slow-strum keys is depressed. In this case, triggered strums may be executed with a predetermined strum delay of 127 milliseconds per note.
SNGLKEY: (1 bit) Set: Indicates that the previous strum was triggered by a single-trigger-key type (Mode 1, 2, or 3) strum-trigger key; Clear: Indicates that the previous strum was triggered by a double-trigger-key type (Mode 4, 5, or 6) strum-trigger key.
STKYSDWN: (# of bits depends on the maximum number of keys on the keyboard which may be assigned as strum-trigger keys; e.g., the total number of keys minus 12) The number of strum-trigger keys in down position. This register may be set at zero during initialization and may be configured to never have a negative value. Hence, in the event that STKYSDWN has a value of zero and a software step (e.g., step 301) subtracts 1, STKYSDWN may remain unchanged at zero. This situation is expected to occur only in the event that the user holds one or more strum-trigger keys down-during initialization.
STRMNOTEDLAY: (# of bits depends on desired resolution) The time delay between successive notes within a strum. For a maximum fast strum, STRMNOTEDLAY=0.8 bits are recommended, each unit representing 0.5 milliseconds; thereby allowing a maximum delay of 127 milliseconds per note. With this value, a maximum slow six-string strum takes 635 milliseconds—a very slow strum.
STRUMVEL: (7 bits) The velocity (e.g., the midi velocity value or loudness) of individual notes within a strum as transmitted from the keyboard unit to a sound module.
SUS_PED: (1 Bit) Set: Indicates that the sustain pedal is up; Clear: Indicates that the sustain pedal is down.
TIMER: (# of bits depends on desired resolution, but 6 is recommended) The time delay between successive ascending-chord-triggering strum-trigger key events. This register may be set up with a software or hardware timer to start with a value of zero, count up by one integer every 22.73 milliseconds, and automatically stop advancing at a predetermined maximum value of 35 after 796 milliseconds.
Software flow charts for the invention are shown beginning with
In step 120, the processor may be initialized and the main keyboard operating system, or program, may be called.
In step 130, a patch may be loaded. This patch may define a configuration of key functions, e.g., the configuration shown in
In step 140, a predetermined strum note delay value of 22 may be loaded into STRMNOTEDLAY. This value may correspond with the elapsed time between successive string (note) pluckings for a medium guitar strum hand speed. This value is loaded because the first trigger-key stroke of a Mode 2 or 5 key will have no previous key stroke from which to measure elapsed time. Hence a value must be loaded so that a first strum speed can be executed.
In step 150, C may be loaded as a root note so that an initial depression of a Mode 4-6 key will produce a strum of some type of C chord (e.g., C major).
In step 160, it may be determined whether a new key event has occurred. If not, aftertouch pressure may be measured and recorded in AFTREG in step 165. If the keyboard action used is only capable of measuring channel aftertouch, then the aftertouch for the entire keyboard may be measured. If the keyboard action can measure aftertouch of individual keys (poly-pressure), then only the pressure applied to the depressed root-select key is recorded in AFTREG. An algorithm may be employed to scale aftertouch data so that a minimum value greater than zero is always recorded in AFTREG. For example, while an aftertouch sensor may normally read a value of 0-127, this value may be scaled so that an input of 127 returns a 127 in AFTREG, while an input of 0 returns a 7, an input of 7 returns a 13, and so forth. Hence, if no root-select key is currently pressed, then the value in AFTREG will be 7. Thus, a Mode 3-6 strum-trigger key downstroke will always result in a sounded chord, regardless of whether any root-select keys are pressed.
In step 170, it may be determined whether the user has commanded a change of the chord type and/or Mode type of any strum-trigger keys by some state change of a control panel push-button switch or the left-side select pedal. If so, the new key-assignment data may be loaded in step 175. For example, depression of the left-side select pedal may call a second chord map (a second patch of the same Mode for the strum-trigger keys). Release of the pedal may return the keyboard to the first map. The chords in the second map may be chosen as common variations of the chords in the first map, e.g., an A key may trigger a dominant 7th chord with the pedal up, and trigger a dominant 7th sus. 4 with the pedal down. The control panel keys may also take the keyboard into a completely different mode, e.g., a conventional midi controller keyboard, or any of the various modes described in U.S. Pat. No. 5,726,374.
In step 185, it may be determined whether the user has moved the sustain pedal up or down.
In step 190, it may be determined whether the new key event is a state change of a root-select key.
In step 195, it may be determined whether the new key event is a state change of a slow-strum key.
In step 200, it may be determined whether the new key event is a state change of a Mode 1 strum-trigger key.
In step 205, it may be determined whether the new key event is a state change of a Mode 2 strum-trigger key.
In step 210, it may be determined whether the new key event is a state change of a Mode 3 strum-trigger key.
In step 215, it may be determined whether the new key event is a state change of a Mode 4 strum-trigger key.
In step 220, it may be determined whether the new key event is a state change of a Mode 5 strum-trigger key. If not, then the active key is a Mode 6 key by process of elimination.
Referring to
Referring to
Referring to
In steps 305 and 310, algorithms may be used to translate the input velocity of keystrokes as triggered by the user to velocity values for the individual notes (strings) within the strum to be sent (transmitted) to the sound module. The data-processing algorithms may consist of equations, look-up tables, or some combination, or the initial velocity value from the keyboard may simply be copied and attached to the strum notes (if this simple algorithm is found to produce satisfactory results) to produce a velocity-to-velocity response curve. It is recommended that two different velocity-to-velocity algorithms be used: An upstroke velocity-to-velocity algorithm called in step 305, and a downstroke velocity-to-velocity algorithm called in step 310. The velocity response curve for the upstroke algorithm may be pre-programmed with a higher gain than the downstroke response. For example, consider a key which physically moves from an up position to a down position. The velocity of this key movement may be measured by the duration of time the key spends in the middle ⅓ of its stroke. This measured value may be referred to as the key's “transit time”. The two algorithms may be written so that a downstroke transit time of 16 milliseconds may produce a MIDI velocity value of 60, and an upstroke transit time of 16 ms might produce a MIDI velocity value of 100. The reason for this recommended higher gain for upstrokes is that a user will generally be able to move a key faster-on a downstroke than on an upstroke. Even if the key-scanning system is programmed to accommodate this difference, some tweaking of each response curve may be desired to achieve optimal results. In step 315, the value (a note list location in the memory array representing a musical chord) in PREVCHRD may be overwritten with the value in CRNTCHRD so that the value representing the memory array location of the previous strum chord may be found in PREVCHRD. In step 320, the memory array location of the new chord to be transmitted may be calculated. The value representing this new chord may then be written into CRNTCHRD in step 323.
Referring to
Referring to
Referring to
In step 420 the value in TIMER may be loaded directly into STRMNOTEDLAY. This simple data transfer produces the desired result because of the 22.73 millisecond TIMER count-up period. Here is an explanation for how the 22.73 Ms period may be calculated: A guitar player, when strumming a string of chords (e.g., continuous eighth-notes), typically strums in an up-down oscillating pattern in which the elapsed time for a complete cycle (one downstroke and one upstroke) is between approx. 250 milliseconds and 800 milliseconds. During this cycle, the elapsed time during one strum from when the first string is plucked to when the sixth string is plucked is approx. 11% of the total cycle period. Since there are five delay periods between the six strings, the delay time between each adjacent string is 2.2% of the total period (11% divided by 5). For example, playing continuous eighth-notes during a song with a medium tempo of 120 quarter-notes per minute, the strum cycle period is 500 milliseconds; the elapsed time from first to last string pluck is 55 Ms (500 Ms×0.11) and the delay time between adjacent strings is 11 Ms (500 Ms×0.022). Since the value in STRMNOTEDLAY specifies the delay time between successive notes in 0.5 Ms increments, and the delay time between strings is 2.2% of the strum period, the TIMER period may be set at 22.73 Ms (0.5 Ms divided by 0.022) so that the value in TIMER can be directly loaded into STRMNOTEDLAY. Rather than measure elapsed time between ascending strums, the software could instead be written to measure the elapsed time between successive strums of opposite directions. This alternate method would have the advantage of measuring strum rate more quickly and updating the strum rate twice as often. However, this method is not advised because, as discussed above, guitar players often place a “swing feel” in their strum cycle. With a swing feel, the strings are not placed in the vertical center of the stroke and upstrums do not occur halfway in time between downstrums. Thus, the strum rate measurement between up & down strums would be different than between down and up strums during the same strumming pattern. Also, a swing feel pattern would have a different strum rate than an even-eighth-note pattern of the same tempo.
In step 423 TIMER may be reset to begin counting up from zero so that it may measure the time which will elapse between now and the next downstroke of a Mode 2 strum-trigger key or a Mode 5 ASC strum-trigger key. The Ascending Strum Routine may then be called in step 426. This routine can be found in
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
In step 810 it may be determined whether the note transmitted in step 806 or 823 was the lowest-pitched note in the CRNTCHRD list. If not, the value in the scratchpad may be incremented to index the next lowest note in step 813. In step 816, a note-off command may be sent for this newly-indexed note. In step 820 a pause may be inserted as in step 803. Then, in step 823, a note-on command may be sent for the note which was muted in step 816. When it is determined in step 810 that all notes of the chord have been sounded, the strum is finished and the routine may be exited.
Referring to
Referring to
In step 876 it may be determined whether the note transmitted in step 873 or 890 was the lowest-pitched note in the CRNTCHRD list. If not, the value in the scratchpad may be incremented to index the next lowest note in step 880. In step 883, a note-off command may be sent for this newly-indexed note. In step 886 a pause may be inserted as in step 870. Then, in step 890, a note-on command may be sent for the note which was muted in step 883. When it is determined in step 876 that all notes of the chord have been sounded, the strum is finished and the routine may be exited.
Referring to
Referring to
Two additional strum-trigger modes may be implemented. These modes are variations of Modes 3 & 6 in which the velocity of individual notes is determined by strum-trigger key velocity; and the strum rate is determined by root-select key aftertouch pressure. Various steps in the flow charts provided can be interchanged to produce charts for these two additional strum-trigger modes.
For the Paired Trigger Keys Modes, the arpeggiation direction of the white and black keys may be reversed so that ascending chords are triggered with the index finger and descending chords are triggered with the thumb.
In another variation on the key mapping shown in
To assist the user in using the invention, it is recommended that a heavy paper or plastic strip be provided which can be fastened to the keyboard case on the rail immediately behind the keys. The various chord types as well as the slow-strum keys may be printed on the strip. Thus, the user will easily be able to find the trigger keys for whichever chord he/she wishes to play at any moment. Two different strips may be provided: one for Modes 1-3 and another for Modes 4-6. Alternately, chord types may be printed directly onto the keyboard frame or top panel.
The invention may be used in a Janko keyboard w/independent keys, as described in U.S. Pat. No. 5,726,374.
The invention may be realized in a patch which assigns some keys as conventional note-sounding keys; i.e., the keyboard may be configured so that some keys are used for the present invention while other keys are simultaneously assigned to other functions.
Instead of using keys on the keyboard to select root notes, a conventional midi bass foot-pedals unit, e.g., the Roland PK-7, may be used with a midi-in jack on the keyboard. Bass keys on the keyboard may then be used to play basslines or other musical parts. Alternately, foot-pedals may be used as strum-trigger keys or for both root-select and strum-trigger keys. In this latter configuration, one foot presses root-select keys (pedals) and the other foot presses strum-trigger keys (pedals), thus freeing up both hands to play other musical parts. By using foot-pedals for both root-select and strum-trigger keys, the musician may then use his/her hands to play a keyboard, lead guitar, saxophone, or other instrument.
Since the chords provided with the keyboard (e.g., the map shown in
Other features may be added to the unit; such as a floppy disk drive, control panel LEDs, pitch/mod wheels, etc.
In Modes 2 & 5, the software may allow the user to select from several maximum timer limits in addition to the 796 millisecond limit shown in steps 416 & 660. A 1000 millisecond limit can be selected in case a musician likes to play slow tempos, and a 600 millisecond limit can be selected for fast tempos. These modifications can be accomplished by changing the period value for TIMER and leaving the maximum TIMER value unchanged at 35. For example, to decrease the limit to 600 milliseconds, the timer period may be decreased from 22.72 milliseconds to 17.14 Ms. Also, since some guitarists tend to strum with vertically wide arm movements and others with small movements of the wrist only, different guitarists will naturally produce strums with different elapsed times from first note to last, even when playing the same pattern at the same tempo. Thus, the software should allow the user to globally adjust the strum rate. This adjustment can be accomplished by changing the 0.5 millisecond function value in steps 803, 820, 836, & 853 (see
The invention may be realized in a keyboard in which other guitar-emulation modes (e.g., those described in U.S. Pat. No. 5,726,374) are also available to the user via control-panel switches.
The sequence of key-type identification inquiries shown in
The invention may be modified in many additional ways which will be obvious to those of ordinary skill in the art. The scope of the invention is thus in no way to be considered limited by the preferred embodiment and variations described above; but rather, by the allowed claims and their full scope of equivalents.
This application claims the benefit of provisional patent application Ser. No. 60/579,417, filed 2004 June 14 by the present inventor.
Number | Name | Date | Kind |
---|---|---|---|
3227027 | Von Gunten | Jan 1966 | A |
3358070 | Young | Dec 1967 | A |
3617602 | Kniepkamp | Nov 1971 | A |
3725562 | Munch, Jr. et al. | Apr 1973 | A |
3842182 | Bunger | Oct 1974 | A |
3967520 | Drydyk | Jul 1976 | A |
4154131 | Studer et al. | May 1979 | A |
4332183 | Deutsch | Jun 1982 | A |
4379420 | Deutsch | Apr 1983 | A |
4519286 | Hall et al. | May 1985 | A |
5136914 | Letts et al. | Aug 1992 | A |
5398585 | Starr | Mar 1995 | A |
5425297 | Young, Jr. | Jun 1995 | A |
5440071 | Johnson | Aug 1995 | A |
5544562 | Jeon | Aug 1996 | A |
5726374 | Vandervoort | Mar 1998 | A |
5729374 | Tiszauer et al. | Mar 1998 | A |
6063994 | Kew et al. | May 2000 | A |
6448486 | Shinsky | Sep 2002 | B1 |
6657115 | Egorov et al. | Dec 2003 | B1 |
Number | Date | Country | |
---|---|---|---|
60579417 | Jun 2004 | US |