Automatically adjusting keyboard divide
10109266 ยท 2018-10-23
Inventors
Cpc classification
G10H1/0025
PHYSICS
G10H2220/221
PHYSICS
International classification
Abstract
In the present invention, a user is capable of choosing manually or automatically a point on a chosen keyboard where a division will occur. For musical/artistic reasons, this point must regularly change. To accommodate this need, the user can store that location in an existing preset/restore system and recall it upon demand with other settings.
Claims
1. A method comprising: receiving, from a controller in communication with at least one processor, incoming note data input on demand from a musical instrument; generating a split point of the musical instrument, wherein the split point is generated by a routine which includes determining an address of a lowest held note and a highest held note by crawling through an array from bottom to top to determine the address of the lowest active note and crawling through an array from top to bottom to determine the address of the highest active note; providing a selector which can be set to either automatic or manual mode; storing, by the at least one processor, a routine corresponding to the incoming note data input; recalling, from non-volatile memory, values from each preset pressed, wherein each value is stored until the next preset is recalled, and using the selected value in a current overall preset during a live playing.
2. The method of claim 1, further comprising storing the saved divide point into a reserved byte.
3. The method of claim 2, further comprising using the reserved byte if the selector is in manual and ignoring the byte if the selector is in auto.
4. The method of claim 2, further comprising saving the current overall preset and the automatic divide point to non-volatile memory.
5. The method of claim 4, wherein if the selector is set to manual, the known correct divide point is then recalled and copied into volatile memory.
6. The method of claim 4, wherein the value saved to the current overall preset is the same value used in live playing.
7. The method of claim 6, wherein the musical instrument is an organ keyboard.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The foregoing and other objects, features, and advantages of the inventions herein, as well as the inventions themselves, will be more fully understood from the following description of various embodiments, when read together with the accompanying drawings, in which:
(2)
(3)
(4)
(5)
DETAILED DESCRIPTION
(6) Embodiments of the disclosed subject matter provide techniques for automatically adjusting a keyboard divider. One of the objects of this feature is to provide a system where an artist can just turn on an organ and play it without having to set a divide point.
(7) An embodiment of the present disclosure provides a software process where a local processor/controller within a musical instrument is capable of analyzing incoming data upon demand, musically deciding where a split should occur, and storing that data for later recall at the user's discretion.
(8) Another embodiment allows a user of a musical instrument to choose (either manually or automatically) a divide point on a chosen keyboard where a division will occur. A selector button or knob allows the user to choose between manual and automatic mode. The user can store the location of the divide point in an existing preset/restore system and recall it upon demand with other settings.
(9)
(10) The user interface allows the user to verify the work of automatic detection routines provided in this disclosure, and view the values recalled by presets. The screen may or may not be a dedicated physical screen and could include virtual interfaces through smart phones, tablets, computers. The user interface may be located on the instrument.
(11)
(12)
(13) In one embodiment, the divide point is set by a routine which includes determining a lowest held note and a highest held note. A lowest_held_note function crawls through an array (one bit at a time) from bottom to top and returns the address of the lowest active bit. A highest_held_note function crawls through an array (one bit at a time) from top to bottom and returns the address of the highest active bit. If only one note is held, the functions will return the same result, disqualifying the need for a split point.
(14) If both feet are playing close together, then the divide point should be closer to whichever foot is the root calc value. There are a number of ways to determine this value. In one embodiment, the system detects two feet and measures down from the top foot. For example, if the user is playing with two feet and the highest_held_note is greater than 13, then the divide point is set as the highest_held_note4, otherwise the divide point is set as the highest_held_note3.
(15) In a further embodiment, the system detects two feet and measures up from the bottom one. For example, if the user is playing with two feet and the highest_held_notelowest_held_note is less than 7, then the divide point is set at the lowest_held_note+2.
(16) Three parameters passed to the routine: enable (allow or disallow changes), a timer byte, and the byte value representing the actual divide point.
(17) In one embodiment, the code below runs in an 8 bit operating system. In one embodiment, the language is JAL (Pascal Derivative), and this code is also ported to Oberon (a 16 bit higher level Pascal Derivative). The code is run in a real time control system, so it is run every x milliseconds (typically 8-10) when the keyboard is scanned.
(18) In one embodiment, if one of the hands/feet stops playing and the other continues, the software freezes the dividing point and does not move it unless the remaining hand/foot begins to approach it, then it moves it, but no further than the legacy position. In another embodiment, the split point calculation is only ever performed if two feet are believed to be depressed. In yet another embodiment, the actual split point calculation method is dependent on a constant known as reachability. In one embodiment, reachability is determined by far a foot's heel-toe can reach in a pedalboard. In another embodiment, reachability is determined by how far a thumb-finger can reach in a keyboard.
(19) In one embodiment, the lowest held note is added to reachability to determine the split point. In another embodiment, reachability is subtracted from the highest held note to determine the split point. In another embodiment, the center point between the highest and lowest held notes determines the split point. In yet another embodiment, the split point is centered in the middle of the unused notes between the playing notes.
(20) In one embodiment, there is a diminishing value being subtracted to create the split point. This is typically made fairly generous because of the reach one person can make with one foot between two notes. For example, by holding one note with their heel and pressing another with the tip of their toes, a user can span a surprising distance, the system needs to accommodate for this large distance without classifying it as two feet.
(21) At block 304, a software routine is constantly recalling values from each present. That is, when a preset is recalled, the system takes the saved pedal divide value and puts it into a byte that is reserved just for this purpose. This value is stored until the next preset is recalled.
(22) Block 306 discloses an automatic or manual selector. If the selector is in manual, the system will use the reserved byte. If the selector is in auto, the system will ignore the byte (but not change it). When a preset is saved, the selector is ignoredwhatever is currently the playing value is saved.
(23) Additionally, when the user saves the current overall preset (known in the industry as setting a piston), if the selector is set to automatic, the automatic divide point is copied with the rest of the settings to non-volatile memory. This ensures that during performance playback, if the divide mode is set to manual then a known setting from a rehearsal can be used. When the user recalls that setting at a later time, if the selector is in manual mode, the known correct divide point is then recalled and copied into non-volatile memory. At block 308, the selected value is used during live playing.
(24)
(25) The capabilities of the present invention can be implemented in software, firmware, hardware or some combination thereof.
(26) As one example, one or more aspects of the present invention can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media. The media has embodied therein, for instance, computer readable program code means for providing and facilitating the capabilities of the present invention. The article of manufacture can be included as a part of a computer system or sold separately.
(27) Additionally, at least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided.
(28) The flow diagrams depicted herein are just examples. There may be many variations to these diagrams or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention.
(29) While the preferred embodiment to the invention has been described, it will be understood that those skilled in the art, both now and in the future, may make various improvements and enhancements which fall within the scope of the claims which follow. These claims should be construed to maintain the proper protection for the invention first described.