# Patent

## Title
Method and system for automatic calibration of pedal actuator in a reproducing piano

## Abstract

A piano is equipped with an actuator that moves the piano pedal mechanism in a mariner that reproduces the pedaling effects of an original performance with high accuracy. The actuator comprises a solenoid, a permanent magnet, a velocity sense coil, and a Hall-effect sensor. The Hall-effect sensor provides an indication of the displacement of the solenoid plunger in accordance with an inverse-square law. Closed-loop feedback control is provided to effect a very true reproduction of pedaling effects. Automatic calibration allows for simple installation.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a system and method for controlling mechanically-driven musical instruments, and in particular to a system and method for controlling the pedaling of a mechanically-driven piano or other instrument.
2. Background of the Technology
Beginning with the invention of pneumatically-driven reproducing pianos in the early twentieth century, systems and methods have been developed for recording music played by a human pianist and for reproducing that music on a piano. In modern reproducing pianos, music played by a human pianist may be recorded on a recording medium such as a Compact Disc or the like, and the recorded music may be recreated, for example, using actuators to drive the keys and pedals of the piano. Many reproducing pianos have attempted to reproduce the subtle pedaling effects of the original performance.
One way of controlling the pedals in a reproducing piano is described and illustrated in U.S. Pat. No. 4,450,749 to Stahnke issued May 29, 1984, which is hereby incorporated by reference in its entirety. That method and apparatus provide in the reproduced performance a very accurate reproduction of the pedaling effects in the original performance. During the original performance, the instantaneous position of the pedal mechanism (e.g. the damper lifter tray in a grand piano, or the actuator bar in a vertical piano) is sensed and recorded. At a later time when the performance is reproduced, the actuator positions the pedal mechanism in such a way that the dampers are positioned in substantially the same way they were positioned during the original performance. This method of “position pedaling” gives excellent results, but a very high price, because it requires a linear potentiometer and very accurate adjustments. The output signal from such a linear potentiometer is a linear function of the actual or achieved position of the pedal mechanism itself.
Position pedaling using a linear potentiometer requires costly hardware. In addition, installing and adjusting a mechanism including a linear potentiometer is difficult and may require specialized tools. These defects are particularly problematic for so-called “piano kits,” which include electrical and mechanical parts that are designed to be retrofitted into existing pianos. Ideally, piano kits should be easy to install, because the kits may be fitted into the pianos by technicians having a wide range of skills and tools.
One approach designed to reduce cost and simplify installation is described in U.S. Pat. No. 5,016,513 to Stahnke issued May 21, 1991, which is incorporated herein by reference in its entirety. That method and apparatus provide an approximation to pedaling effects that is relatively cost effective and easy to install. However, that approach suffers from decreased accuracy in the pedaling effects.
There is an unmet need in the art for a pedal assembly that provides accurate reproduction of pedaling effects at reduced cost. There is a further unmet need in the art for a pedal assembly that provides accurate reproduction of pedaling effects, while allowing for simpler installation.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a low-cost, highly accurate pedal assembly. It is a further object of the invention to provide a control mechanism capable of controlling the operation of such assembly. It is a further object of the invention to provide automatic calibration of a pedal assembly, eliminating the necessity for operator assistance and thus allowing for simpler installation.
A pedal assembly may consist of an actuator, which moves mechanical portions of a piano to recreate pedaling effects; and a sensor, which provides information about the position of the actuator. In operation, musical performance information is received, for example, from a Compact Disc, computer memory, a network, or the like. The musical performance information is used to calculate a commanded position. The commanded position is, for example, a desired position of the actuator. The commanded position is compared to the output of the sensor. Based on this comparison, a drive is calculated and provided to the actuator to move the actuator to the commanded position.
Various sensors may be used in embodiments of the invention. The sensor used may be, for example, a nonlinear sensor, such as a Hall-effect sensor, an optical sensor, or the like. In one implementation, a Hall-effect sensor may be used as the sensor, which may reduce the cost of the pedal assembly. Reference to a Hall-effect sensor will be made throughout. However, those skilled in the art will appreciate that other types of sensors are equally well suited to the task, for example, optical sensors or other nonlinear sensors. Thus, the term “Hall-effect sensor” is intended to be interchangeable with the term “nonlinear sensor” throughout.
Nonlinear sensors, such as Hall-effect sensors, differ from linear potentiometers in several ways. Most notably, when used in a pedal assembly, the output voltage of a Hall-effect sensor is not a linear function of the position of the pedal mechanism. Rather, the output voltage of a Hall-effect sensor is highly nonlinear, and thus, the Hall-effect sensor cannot be used to directly measure the position of the pedal mechanism. Therefore, embodiments of the present invention include a control mechanism that allows the commanded position to be effectively compared to the output of the sensor.
In one implementation, the control mechanism accepts the output of the Hall-effect sensor, and calculates a “linearized sensor output,” which can be effectively compared to the commanded position. In another implementation, the control mechanism accepts the commanded position, and calculates a “Hall-modified commanded position,” which can be effectively compared to the output of the Hall-effect sensor. The results of the comparison may be used to calculate a drive, which is applied to the actuator to move it into the commanded position.
In an alternate embodiment of the invention, systems and methods for performing calibration of a pedal assembly are provided. Calibration may be performed by first withdrawing drive from the actuator and subsequently providing a full drive to the actuator (or vice versa), measuring the Hall-effect sensor output for both positions. The measured Hall-effect sensor outputs may be used to calculate constants. In one implementation, the constants are used directly in operation of the pedal assembly. In another implementation, the constants are used to create a lookup table, which is used in operation of the pedal assembly. The calibration process can be fully automated, resulting in a pedal assembly that is simple to install and maintain.



BRIEF DESCRIPTION OF THE FIGURES
In the drawings:
FIG. 1 is a schematic illustration of the basic piano pedal mechanism in a reproducing piano employing the method and apparatus of the present invention to reproduce the pedal mechanism movements of an original performance;
FIG. 2 is an exploded view illustrating an actuator used to drive a pedal, in accordance with an embodiment of the present invention;
FIG. 3 is a schematic illustrating an actuator used to drive a pedal, in accordance with an embodiment of the present invention;
FIG. 4 is a block diagram illustrating a pedal assembly, in accordance with an embodiment of the invention;
FIG. 5 is a flow chart illustrating a method for controlling a pedal assembly, in accordance with an embodiment of the invention;
FIG. 6 is a block diagram illustrating a pedal assembly, in accordance with an embodiment of the invention;
FIG. 7 is a flow chart illustrating a method for controlling a pedal assembly, in accordance with an embodiment of the invention;
FIG. 8 is a flow chart illustrating a method for automatic calibration of a pedal assembly, in accordance with an embodiment of the invention; and
FIG. 9 is a flow chart illustrating a method for automatic calibration of a pedal assembly, in accordance with an embodiment of the invention.



DETAILED DESCRIPTION
Embodiments of the invention provide systems and methods for driving one or more pedaling assemblies in a piano or other musical instrument. During playback of a musical performance, an actuator effects movement of a pedal mechanism. A sensor, such as a Hall-effect sensor, is used to provide information about the position of the pedal mechanism. The Hall-effect sensor does not directly measure the position of the pedal mechanism. Control logic uses the output of the Hall-effect sensor to calculate a desired drive, which is provided to the actuator.
Example embodiments will now be described in conjunction with the following figures.
In FIG. 1, there are illustrated several basic components of the pedal mechanism in a typical piano such as a grand piano. This particular view is a side view. Extending approximately the width of the piano is a fixed rail 10, having a hinge member 10a affixed thereto. In FIG. 1, only one such hinge member 10a is shown, however it will be appreciated that there is a hinge member at each end of the fixed rail 10 and usually one or more between the ends. A damper lifter tray 11 also extends substantially the width of the piano, and has several end hinge members 12 (only one of which is shown in FIG. 1), each of which corresponds to and is joined to the corresponding hinge member 10a of the fixed rail by means of a horizontal hinge pin 13. The damper lifter tray is thus movable about the horizontal pivotal axis of the hinge pins 13 between the positions illustrated in solid lines in FIG. 1 and the position illustrated in dotted lines.
Above the damper lifter tray 11 is a damper lifter 14 which is also hingedly connected to a hinge member (not shown) affixed to the fixed rail 10 along the horizontal pivotal axis of the hinge pins 13. Thus the damper lifter 14 will be lifted upwardly and pivoted about the same axis as the damper lifter tray 11 between the solid line and dotted line positions illustrated in FIG. 1. The damper lifter tray has a felt pad 16 which extends the length of the damper lifter tray for engaging the underside of the various damper lifters 14. Each damper lifter 14 is connected through a damper wire 17 to a damper 18 adapted to engage piano strings 19. For each set of piano strings representing a note of the piano to be damped, there is a damper 18, a damper wire 17 and a damper lifter 14.
The piano sustaining pedal 20 is coupled to the underside of the damper lifter tray 11 by means of trapwork 21. Thus when the pedal 20 is depressed, it will rotate about its pivotal mounting to lift by means of the trapwork 21 the damper lifter tray 11, causing the latter to rotate about its horizontal axis as defined by the hinge pins 13. This pivotal movement of the damper lifter tray causes all of the damper lifters 14 to raise the dampers 18 from the strings 19. This is so because the damper lifter tray extends the entire width of the notes to be damped, under all of the damper lifters 14, and thus all of the damper lifters accordingly will be lifted simultaneously.
Since each of the damper lifters is associated with an individual set of piano strings representing a note of the piano, each is associated with an individual piano key 22 having a felt pad 22a which is adapted to engage the end of the damper lifter 14 when the key is depressed and the end of the key illustrated in FIG. 1 is pivoted upwardly. Thus the striking of the piano key will momentarily lift the damper 18 from the piano strings 19 with which the particular key and damper are associated. Since the piano illustrated in FIG. 1 is a reproducing piano, appropriate actuating means such as the solenoid coil 23, acting through a conventional pusher rod 24, moves the key to effect striking of the piano strings by the appropriate hammers (not shown) in response to recorded signals.
In the particular reproducing piano illustrated, there is means for moving the pedal mechanism, i.e., the damper lifter tray, the damper lifter, and the damper, between the dotted line and solid line positions automatically in response to recorded signals. This is done by means of an actuator. In the implementation shown in FIG. 1, the actuator comprises a solenoid 26 having a plunger 28 which has a tip 28a. However, those skilled in the art will appreciate that other actuators can be used. The plunger tip 28a engages a lever 30, and through the medium of the trapwork 32 is able to move the damper lifter 14 and the other portions of the pedal mechanism between their solid line and dotted line positions as illustrated in FIG. 1. Various alternate interconnections can be made between the plunger 28 and the damper lifter 14 to accomplish this movement of the damper lifter and the other portions of the pedal mechanism. The particular connection described and illustrated is only one example of this connection, and this structure thus far described is conventional in reproducing pianos.
The illustrated structure of the pedal mechanism is conventional in a grand piano. However, in the case of a vertical or upright piano, the dampers 18 are controlled by a damper actuator bar as opposed to a damper lifter tray. In connection with the soft pedal mechanism, the entire piano key frame in a grand piano is moved laterally so that only two of the set of three strings (or one of the set of two strings) will be struck by the hammer when the key is depressed, and thus, a softer note will result. Thus, the key frame and its operational mechanisms which are laterally movable to achieve this soft play function may be considered the pedal mechanism in this description, all of which is conventional. The solenoid 26 and its plunger 28 would be operatively connected to the piano key frame to effect lateral movement of the key frame for operation of the soft pedal mechanism.
A magnet 48, for example, a rare-earth magnet, is movable within a sense coil 50. The magnet 48 in the illustrated embodiment is connected to the plunger 28 of the solenoid 26 by means of a connecting arm 52. Since the movement of the plunger 28 is in accordance with the movement of the pedal mechanisms, including the damper lifter tray 11, it has been found convenient to connect the magnet 48 directly to the plunger 28 of the solenoid. It will be appreciated, however, that if desired, the magnet 48 may be connected directly to the damper lifter tray 11, or to an immediate portion of the trapwork 32. The displacement of the magnet 48 is sensed by a Hall-effect sensor 60, and the velocity of the magnet is sensed by the sense coil 50.
The Hall-effect sensor includes, for example, an electrical conductor through which an electrical current is caused to flow. The presence of a magnet near the conductor gives rise to a voltage difference across the conductor, which may be amplified to form the Hall-effect sensor output voltage. As the magnet recedes from the conductor, the voltage difference, and consequently the output voltage, is reduced in accordance with an inverse square law. Thus, the Hall-effect sensor output voltage is a nonlinear function of the displacement of the magnet. While the Hall-effect sensor can be used to sense displacement of the magnet, the sense coil can be used to sense velocity of the magnet, in accordance with Faraday's Law of Induction. The sense coil output voltage is a linear function of the velocity of the magnet.
The means for controlling the operation of the solenoid 26 is schematically illustrated in FIG. 1, and further details are shown in FIGS. 4-7. Musical performance information is received, for example, from a recorded medium, which may be a Compact Disc, flash drive, computer memory, or the like. Alternatively, the musical performance information may be received via a network. The musical performance information includes data representative of the commanded positions. In operation, the control logic 36 receives the musical performance information and calculates a commanded position. Alternatively, the control logic 36 receives a commanded position. The control logic 36 compares the commanded position with the output of the Hall-effect sensor 60, and calculates a drive, which is used to drive the solenoid 26 or other actuator.
The output of the control logic 36 is used to drive the solenoid 26 or other actuator, causing corresponding movement of the plunger 28 and resulting in movement of the damper lifter tray 11. This movement of the plunger also causes corresponding movement of the magnet 48 within the sense coil 50, and displacement of the magnet 48 with respect to the Hall-effect sensor 60, so that a closed loop feedback control results.
FIG. 2 is an exploded view illustrating an actuator used to drive a pedal, in accordance with an embodiment of the present invention, and FIG. 3 is a schematic illustrating an actuator used to drive a pedal, in accordance with an embodiment of the present invention. As shown in FIGS. 2-3, a magnet 48, such as a cylindrical rare-earth magnet, is affixed to the rear of the plunger 28 of a solenoid with its axis in line with the axis of the plunger. A Hall-effect sensor 60 or other sensor is placed beyond the distal end of the magnet 48, aligned with the axis of the magnet and the plunger. A sense coil 50 is placed such that the distal end of the magnet 48 moves within the sense coil 50 as the plunger 28 moves from its resting position to its fully actuated position.
FIG. 4 is a block diagram illustrating a pedal assembly 400, in accordance with an embodiment of the invention. As shown in FIG. 4, the pedal assembly 400 may include a pedal block 402, which includes an actuator 404 (such as the solenoid 26 of FIG. 1), which effects movement of a pedal mechanism (not shown); and a Hall-effect sensor 60, which senses displacement of the actuator. For example, the Hall-effect sensor 60 may sense displacement of a magnet affixed to the rear of a plunger.
The pedal assembly 400 may also include control logic 405, which is one implementation of the control logic 36 of FIG. 1. Control logic 405 may be configured to receive commanded position information describing the commanded position of the actuator. Alternatively, control logic 405 may be configured to receive musical performance information and to calculate the commanded position information from the musical performance information.
The control logic 405 may include a sensor output linearization block 406. The sensor output linearization block 406 may be configured to receive the output of the Hall-effect sensor 60, and to calculate an output, known as the “linearized sensor output,” that may be effectively compared with the commanded position. Operation of the sensor output linearization block will be described further with reference to FIG. 5.
The control logic 405 may also include a Proportional-Integral-Derivative (PID) controller 408. The PID Controller 408 is well-known in the art. The PID controller 408 receives a commanded position and a sensor output, which must comparable, and calculates a drive. The drive may then be applied to the actuator 404. The function of the Sensor Output Linearization block 406 is to calculate the linearized sensor output, which is comparable to the commanded position, so that the two can be effectively compared by the PID controller 408.
The PID controller 408 may optionally receive a sense coil output, which is, for example, the output of the sense coil 50 of FIGS. 1-3. In calculating a drive, the PID controller may perform three intermediate calculations: a Proportionality calculation, an Integration calculation, and a Derivative calculation. The results of the three intermediate calculations are used to calculate the drive. The Proportionality calculation and the Integration calculation may affect the static accuracy of the actuator, while the Derivative calculation may be used only for stability, or to improve the dynamic accuracy of the actuator. Derivative calculation normally takes the derivative of the position of the actuator, for example, as measured by the Hall-effect sensor 60. As will be appreciated by those skilled in the art, the derivative of position is equivalent to the velocity. The sense coil output is a voltage that is proportional to the velocity of the actuator. Thus, rather than performing a Derivative calculation based on the output of the Hall-effect sensor 60, the PID controller 408 may use the sense coil output to find the velocity of the actuator. This may provide several benefits. For example, the sense coil output is of very high quality, that is, it has a very high signal-to-noise ratio, and consequently, using the sense coil output to determine velocity may result in a relatively accurate result. In contrast, the results of a Derivative calculation based on the output of the Hall-effect sensor 60 may be contaminated by a large amount of noise, reducing the accuracy.
As is shown in FIG. 4, the pedal block 402 and the control logic 405 form a closed-loop control circuit that controls the operation of the actuator 404.
FIG. 5 is a flow chart illustrating a method for controlling a pedal assembly. As shown in FIG. 5, the method may begin in step 500, wherein musical performance information may be received, for example, from a recorded medium, from computer memory, or from a network. In step 502, a commanded position may be calculated from the musical performance information. Because these steps may occur outside of the feedback loop shown in FIG. 4, the commanded position information may be calculated in advance and buffered.
In step 504, the Hall-effect sensor may sense the position of the actuator, and in step 506, a linearized sensor output may be determined based on the Hall-effect sensor output. The nonlinearity of Hall-effect sensor derives from the fact that its output voltage is linearly proportional to the strength of an applied magnetic field provided by a permanent magnet. The arrangement shown in FIGS. 1-3 yields a magnetic field strength that is inversely proportional to the square of the distance between the Hall-effect sensor and the magnet. Thus, the output voltage v(out) of a Hall-effect sensor is given by equation (1):

v(out)=k/(s+s(0))2  (1)

where k is a constant of proportionality that depends on the sensor, the magnet, and the mechanical construction, s is the displacement, or the distance between the distal end of the magnet and the surface of the Hall-effect sensor, and s(0) is a constant that is determined by the characteristics of the Hall-effect sensor and the mechanical construction.

Thus, the linearized sensor output voltage v(linear), which is linearly proportional to displacement, is found using equation (2):

v(linear)=√(k/v(out))−v(0)  (2)

The constants k and v(0) depend on the physical construction and settings of the piano, and are determined during a calibration process, as will be described further below with reference to FIG. 8. In one implementation, the calibration process used to determine the constants k and v(0) may be automated. However, in alternate implementations the calibration may be performed with the assistance of a human operator.
Equation (2) may be used to populate a lookup table. The Hall-effect sensor output v(out) may be used as the address of the lookup table, and the linearized sensor output v(linear) may be found by consulting the lookup table. This may increase the speed of the computation and reduce timing issues. In some implementations, there may be fewer values in the lookup table than there are possible values of the input signal, and the linearized sensor output v(linear) is found by interpolation or extrapolation. In other implementations, no lookup table is used. Instead, equation (2) is used to calculate the value of the linearized sensor output v(linear) for a given value of v(out).
In step 508, a drive may be calculated, for example, by a PID controller. The drive is calculated, for example, based on the commanded position and the linearized sensor output. Optionally, a sense coil output may also be used in calculating the drive. In one implementation, the sense coil output may be used to perform a velocity calculation instead of performing a Differentiation calculation. The drive calculated in step 508 may be the drive that is applied to the actuator to move the actuator into the commanded position. In step 510, the drive may be applied to the actuator. In step 512, the actuator moves into the commanded position, effectuating pedaling.
It may then be determined whether a new commanded position is needed. During playback of a musical performance, the commanded position will change based on the desired pedaling. In one implementation, the commanded position will be updated periodically based on the musical performance information. The commanded position may be updated frequently, for example, every 10 ms. Based on the musical performance information and/or the timing circuitry, it may be determined that a new commanded position is needed, that a new commanded position is not needed, or that the musical performance has ended.
If it is determined that a new commanded position is needed, the method may return to step 502. Alternatively, the commanded position may be determined in advance and buffered, so that the calculation of the commanded position in step 502 is performed independently of, or in advance of, the timing of the musical performance. If it is determined that a new commanded position is not needed, the method may return to step 504. If it is determined that the performance has ended, the method may end.
Furthermore, during the performance, the Hall-effect sensor output v(out) will change continuously as the position of the actuator 404 changes. Consequently, the linearized sensor output v(linear) will also change. In one implementation, the linearized sensor output v(linear) will change continuously, for example, if the sensor output linearization block 406 is implemented using analog circuitry. In another implementation, the sensor output linearization block 406 will regularly sample the Hall-effect sensor output v(out) and calculate an updated linearized sensor output v(linear), for example, if the sensor output linearization block 406 is implemented using digital logic.
FIG. 6 is a block diagram illustrating a pedal assembly 600, in accordance with an embodiment of the invention. As shown in FIG. 6, the pedal assembly 600 may include a pedal block 402, which, as described above with reference to FIG. 4, includes an actuator 404 and a Hall-effect sensor 60, which senses displacement of the actuator.
The pedal assembly 400 may also include control logic 605, which is one implementation of the control logic 36 of FIG. 1. Control logic 605 may be configured to receive commanded position information describing the commanded position of the actuator. Alternatively, control logic 605 may be configured to receive musical performance information and to calculate the commanded position information from the musical performance information.
The control logic 605 may include a Hall modification block 606. The Hall modification block 606 may be configured to receive the commanded position, and to calculate an output, known as the “Hall-modified commanded position,” that may be effectively compared with Hall-effect sensor output. Operation of the sensor output linearization block will be described further with reference to FIG. 5.
The control logic 605 may also include a Proportional-Integral-Derivative (PID) controller 408. As described above with reference to FIG. 4, the PID Controller 408 receives a commanded position and a sensor output, which must comparable, and calculates a drive. The drive may then be applied to the actuator 404. The function of the Hall Modification block 606 is to calculate the Hall-modified commanded position, which is comparable to the Hall-effect sensor output, so that the two can be effectively compared by the PID controller 408.
The PID controller 408 may optionally receive a sense coil output, which is, for example, the output of the sense coil 50 of FIGS. 1-3. In calculating a drive, the PID controller may perform three intermediate calculations: a Proportionality calculation, an Integration calculation, and a Derivative calculation. The Proportionality calculation and the Integration calculation may affect the static accuracy of the actuator, while the Derivative calculation may be used only for stability, or to improve the dynamic accuracy of the actuator. The results of the three intermediate calculations are used to calculate the drive. The Derivative calculation normally takes the derivative of the position of the actuator, for example, as measured by the Hall-effect sensor 60. As will be appreciated by those skilled in the art, the derivative of position is equivalent to the velocity. The sense coil output is a voltage that is proportional to the velocity of the actuator. Thus, rather than performing a Derivative calculation based on the output of the Hall-effect sensor 60, the PID controller 408 may use the sense coil output to find the velocity of the actuator. This may provide several benefits. For example, the sense coil output is of very high quality, that is, it has a very high signal-to-noise ratio, which may result in a relatively accurate result, as discussed above with reference to FIG. 4. In addition, there are further benefits to using the sense coil output in the particular implementation shown in FIG. 6, that is, when the Hall-effect sensor output is provided directly to the PID block without modification. Because the Hall-effect sensor output is not linear with respect to position, performing a Derivative calculation based on the Hall-effect sensor output will create a nonlinear velocity term, which may result in an inaccurate drive. The sense-coil output is linear with respect to velocity, so using the sense-coil output to calculate the velocity will result in a linear velocity term, ensuring accurate calculation of the drive.
As is shown in FIG. 6, the pedal block 402 and the control logic 605 form a closed-loop control circuit that controls the operation of the actuator 404.
While the pedal assembly mechanism 400 of FIG. 4 includes a Sensor Output Linearization block 406 that is located within the closed-loop control circuit, the pedal assembly mechanism 600 of FIG. 6 includes a Hall Modification Block 606 that is located outside the closed-loop control circuit. This may provide certain advantages. For example, because the block is located outside the closed-loop control circuit and does not require any real-time information, the calculation of the Hall-modified commanded position may occur in advance and may be buffered. In addition, because the block is located outside the closed-loop control circuit, timing complications within the closed-loop control circuit may be reduced.
FIG. 7 is a flow chart illustrating a method for controlling a pedal assembly. As shown in FIG. 7, the method may begin in step 700, wherein musical performance information may be received, for example, from a recorded medium, from computer memory, or from a network. In step 702, a commanded position may be calculated from the musical performance information. In step 704, the Hall-modified commanded position may be determined, for example, by the Hall Modification block, as will be described below. Because steps 700, 702, and 704 may occur outside of the feedback loop shown in FIG. 7, the Hall-modified commanded position information may be calculated in advance and buffered.
There are several ways in which the Hall-modified commanded position may be determined in step 704. As discussed above with reference to FIG. 5, the output voltage v(out) of a Hall-effect sensor is given by equation (1):

v(out)=k/(s+s(0))2  (1)

where k is a constant of proportionality that depends on the sensor, the magnet, and the mechanical construction, s is the displacement of the magnet, or the distance between the distal end of the magnet and the surface of the Hall-effect sensor, and s(0) is a constant that is determined by the characteristics of the Hall-effect sensor and the mechanical construction. The constants k and s(0) may be determined during calibration, as will be discussed further below with reference to FIG. 8.

Thus, the Hall-modified command position voltage v(modified), which is comparable to the Hall-effect sensor output, is found using equation (3):

v(modified)=k/(v(command)+v(0))2  (3)

Equation (3) may be used to populate a lookup table. The commanded position v(command) may be used as the address of the lookup table, and the Hall-modified command position voltage v(modified) may be found by consulting the lookup table. This may increase the speed of the computation and reduce timing issues. In some implementations, there may be fewer values in the lookup table than there are possible values of the commanded position, and the Hall-modified command position voltage v(modified) is found by interpolation or extrapolation. In other implementations, no lookup table is used. Instead, equation (3) is used to calculate the Hall-modified command position voltage v(modified) for a given value of the commanded position v(command).

In step 706, the Hall-effect sensor may sense the position of the actuator, and in step 708, a drive may be calculated, for example, by a Proportional-Integral-Derivative (PID) controller. The drive is calculated, for example, based on the Hall-modified commanded position and the Hall-effect sensor output. Optionally, a sense coil output may also be used in calculating the drive. In one implementation, the sense coil output may be used to perform a velocity calculation instead of performing a Differentiation calculation. The drive calculated in step 708 may be the drive that is applied to the actuator to move the actuator into the commanded position. In step 710, the drive may be applied to the actuator. In step 712, the actuator moves into the commanded position, effectuating pedaling.
It may then be determined whether a new commanded position is needed. During playback of a musical performance, the commanded position will change based on the desired pedaling. In one implementation, the commanded position will be updated periodically based on the musical performance information. The commanded position may be updated frequently, for example, every 10 ms. Based on the musical performance information and/or the timing circuitry, it may be determined that a new commanded position is needed, that a new commanded position is not needed, or that the musical performance has ended.
If it is determined that a new commanded position is needed, the method may return to step 702 and subsequently continue in step 704. Alternatively, the commanded position and Hall-modified commanded position may be determined in advance and buffered, so that the calculation of the commanded position in step 702 and the Hall-modified commanded position in step 704 are performed independently of, or in advance of, the timing of the musical performance. If it is determined that a new commanded position is not needed, the method may return to step 706. If it is determined that the performance has ended, the method may end.
Furthermore, during the performance, the Hall-effect sensor output v(out) will change continuously as the position of the actuator 404 changes. Consequently, the linearized sensor output v(linear) will also change. In one implementation, the linearized sensor output v(linear) will change continuously, for example, if the sensor output linearization block 406 is implemented using analog circuitry. In another implementation, the sensor output linearization block 406 will regularly sample the Hall-effect sensor output v(out) and calculate an updated linearized sensor output v(linear), for example, if the sensor output linearization block 406 is implemented using digital logic.
FIG. 8 is a flow chart illustrating a method for automatic calibration of a pedal assembly. As described above, the Hall-effect sensor output is related to the linear position, or displacement s, by equation (1):

v(out)=k/(s+s(0))2  (1)

where k is a constant of proportionality that depends on the sensor, the magnet, and the mechanical construction, s is the distance between the distal end of the magnet and the surface of the Hall-effect sensor, and s(0) is a constant that is determined by the characteristics of the Hall-effect sensor and the mechanical construction.

The constants k and s(0) may vary greatly depending on the physical construction of the actuator, the physical construction of the piano, and the personalized user preferences made when adjusting the sound of the piano. Slight modifications in the physical construction of the actuator or the piano may affect the values of the constants k and s(0). In addition, user preferences may affect the values of the constants k and s(0). For example, some piano owners may prefer to adjust the piano to provide “dry,” or minimally sustained, pedaling, while other piano owners prefer to adjust the piano to provide pedaling with longer sustain. Such preferences can be made, for example, by professional piano tuners, or by the owners themselves, by adjusting certain mechanical components of the piano.
Calibration of the pedal assembly may occur, for example, during or after installation of the pedal assembly, after moving the piano, after tuning or adjusting the piano, after making repairs to the piano or pedal assembly, or at any other appropriate time. Calibration of the pedal assembly may include testing the pedal assembly to calculate values of k and s(0). In embodiments of the present invention, calibration of the pedal assembly may be fully automated. In alternate embodiments, calibration of the pedal assembly may be partially or fully performed by a human operator.
A method for calibration of a pedal assembly is shown in FIG. 8. The method shown in FIG. 8 may be used to calibrate a pedal assembly using a nonlinear sensor, such as a Hall-effect sensor. The method may begin in step 800 in FIG. 8, wherein the actuator may be placed in a resting position (that is, there is no drive to the actuator and the pedal mechanism is not engaged). The method may continue in step 802, wherein Hall-effect sensor output is measured while the actuator is in the resting position. The method may continue in step 804, wherein the actuator may be placed in a fully actuated position (that it, a very large drive or a maximum drive is provided to the actuator such that the pedal mechanism is fully engaged). The method may continue in step 806, wherein Hall-effect sensor output is measured while the actuator is in the fully actuated position. The method may continue in step 808, wherein the constants are calculated. In step 810, the constants may be stored. In step 812, one or more lookup tables may be created using the constants, for example, as described above with reference to FIGS. 5 and 7. In creating a linearized sensor output or a Hall-modified command position, various implementations may use lookup tables, mathematical formulas, or both lookup tables and mathematical formulas. If only lookup tables are used, the step of storing the constants 810 may be eliminated in some implementations. If only mathematical formulas are used, the step of creating the lookup tables 812 may be eliminated. Furthermore, those skilled in the art will appreciate that the steps of the calibration may be performed in different orders. For example, the actuator may first be placed in the fully actuated position, and subsequently may be placed in the resting position.
As described above, the Hall-effect sensor output is related to displacement s by equation (1):

v(out)=k/(s+s(0))2  (1)

Thus, for the resting position and the fully actuated position, the Hall-effect sensor outputs are given by equations (4) and (5), respectively:

v(rest)=k/(s(rest)+s(0))2  (4)

v(actuate)=k/(s(actuate)+s(0))2  (5)

The goal of calibration is for the commanded positions to accurately drive the actuator to effect the desired position. Thus, for an appropriately calibrated system, the minimum commanded position will cause the actuator to be located at the resting position s(rest), and the maximum commanded position will cause the actuator to be located at the fully actuated position s(actuate). Therefore, in order to appropriately calibrate the pedal assembly, the resting position s(rest) can be set to be equal to the minimum commanded position, and the fully actuated position s(actuate) can be set to be equal to the maximum commanded position. The minimum and maximum commanded positions are defined in the protocols used for recording and playback. Therefore, the minimum and maximum commanded positions are known for any particular implementation.
Because s(rest) and s(actuate) are known from the protocols used, we have two equations in the two unknowns k and s(0). Solving yields

s(0)=((m*s(actuate))−s(rest))/(1−m),

k=v(rest)*(s(rest)+s(0))2 

where m=√(v(actuate)/v(rest)).

A method for calibration of a pedal assembly is shown in FIG. 9. The method shown in FIG. 9 may be used to calibrate a pedal assembly using a linear sensor, such as a linear potentiometer. The method may begin in step 900 in FIG. 9, wherein the actuator may be placed in a resting position (that is, there is no drive to the actuator and the pedal mechanism is not engaged). The method may continue in step 902, wherein linear sensor output is measured while the actuator is in the resting position. The method may continue in step 904, wherein the actuator may be placed in a fully actuated position (that it, a very large drive or a maximum drive is provided to the actuator such that the pedal mechanism is fully engaged). The method may continue in step 906, wherein linear sensor output is measured while the actuator is in the fully actuated position. The method may continue in step 908, wherein the constants are calculated. In step 910, the constants may be stored. In step 912, one or more lookup tables may be created using the constants, in a similar manner to that described above with reference to FIGS. 5 and 7. Various implementations may use lookup tables, mathematical formulas, or both lookup tables and mathematical formulas. If only lookup tables are used, the step of storing the constants 910 may be eliminated in some implementations. If only mathematical formulas are used, the step of creating the lookup tables 912 may be eliminated. Furthermore, those skilled in the art will appreciate that the steps of the calibration may be performed in different orders. For example, the actuator may first be placed in the fully actuated position, and subsequently may be placed in the resting position.
The output of a linear potentiometer v(pot) is related to displacement s by equation (6):

v(pot)=a*s+b  (6)

Thus, for the resting position and the fully actuated position, outputs of the linear potentiometer are given by equations (7) and (8), respectively:

v(rest)=a*(s(rest))+b  (7)

v(actuate)=a*(s(actuate))+b  (8)

The goal of calibration is for the commanded positions to accurately drive the actuator to effect the desired position. Thus, for an appropriately calibrated system, the minimum commanded position will cause the actuator to be located at the resting position s(rest), and the maximum commanded position will cause the actuator to be located at the fully actuated position s(actuate). Therefore, in order to appropriately calibrate the pedal assembly, the resting position s(rest) can be set to be equal to the minimum commanded position, and the fully actuated position s(actuate) can be set to be equal to the maximum commanded position. The minimum and maximum commanded positions are defined in the protocols used for recording and playback. Therefore, the minimum and maximum commanded positions are known for any particular implementation.
Because s(rest) and s(actuate) are known from the protocols used, we have two equations in the two unknowns a and b Solving yields:

a=(v(actuate)−v(rest))/(s(actuate)−s(rest))

b=v(actuate)−(s(actuate)*(v(actuate)−v(rest)))/(s(actuate)−s(rest))

It will be appreciated that, according to embodiments of the present invention, the pedal assembly may be calibrated automatically. In this case, drive may be automatically applied to and withdrawn from the actuator, the Hall-effect sensor outputs may be measured, calculations may be made, and the result of the calculations may be stored, all without the intervention of a human operator. Furthermore, if a lookup table is to be used with the present invention, the lookup table may be created automatically based on the calculated values. This may greatly simplify the installation and maintenance of the pedal assembly.

## Claims

1. A method for calibrating an actuator assembly, comprising:
applying a minimum drive to the actuator;
while the minimum drive is applied to the actuator, finding a resting sensor output, the resting sensor output being an output of a sensor, the sensor operable to sense a displacement of an element moveable by the actuator;
applying a maximum drive to the actuator;
while the maximum drive is applied to the actuator, finding an actuated sensor output, the actuated sensor output being an output of the sensor;
calculating a constant based on the resting sensor output and the maximum sensor output; and
storing calibration information based on the constant.

2. The method of claim 1, wherein the actuator drives a pedal mechanism in a piano.

3. The method of claim 2, wherein the minimum drive is the smallest drive that may be applied to the actuator during a musical performance, and the maximum drive is the largest drive that may be applied to the actuator during a musical performance.

4. The method of claim 2, wherein the element is the pedal mechanism.

5. The method of claim 4, wherein output of the sensor is proportional to the inverse square of the distance from the sensor to the pedal mechanism.

6. The method of claim 4, wherein the output of the sensor is directly proportional to the distance from the sensor to the pedal mechanism.

7. The method of claim 1, wherein the element is the actuator.

8. The method of claim 7, wherein the output of the sensor is proportional to the inverse square of the distance from the sensor to the actuator.

9. The method of claim 7, wherein the output of the sensor is directly proportional to the distance from the sensor to the actuator.

10. The method of claim 1, wherein the sensor is a nonlinear sensor.

11. The method of claim 10, wherein the nonlinear sensor is an optical sensor.

12. The method of claim 10, wherein the nonlinear sensor is a Hall-effect sensor.

13. The method of claim 1, wherein the sensor is a linear sensor.

14. The method of claim 13, wherein the linear sensor is a linear potentiometer.

15. The method of claim 1, wherein the minimum drive is zero.

16. The method of claim 1, wherein the actuator is in a resting position when the minimum drive is applied to the actuator.

17. The method of claim 1, wherein actuator is in a fully actuated position when the maximum drive is applied to the actuator.

18. The method of claim 1, wherein the maximum drive and the maximum drive are specified by protocol.

19. The method of claim 1, wherein the constant is calculated according to the equation:


s(0)=((m*s(actuate))−s(rest))/(1−m),


where s(0) is the constant, s(actuate) is a first known position, s(rest) is a second known position, m=√(v(actuate)/v(rest)), v(actuate) is the actuated sensor output, and v(rest) is the resting sensor output.

20. The method of claim 19, wherein s(actuate) is the position of the actuator when the maximum drive is applied to the actuator.

21. The method of claim 19, wherein s(rest) is the position of the actuator when the minimum drive is applied to the actuator.

22. The method of claim 19, further comprising
calculating a second constant according to the equation:


k=v(rest)*(s(rest)+s(0))2 


where k is the second constant; and
storing second calibration information based on the second constant.

23. The method of claim 22, wherein the second calibration information comprises the second constant.

24. The method of claim 22, wherein the second calibration information comprises a lookup table.

25. The method of claim 1, further comprising:
calculating a second constant based on the resting sensor output and the maximum sensor output; and
storing second calibration information based on the second constant.

26. The method of claim 25, wherein the second calibration information comprises the second constant.

27. The method of claim 25, wherein the second calibration information comprises a lookup table.

28. The method of claim 1, wherein the calibration information comprises the constant.

29. The method of claim 1, wherein the calibration information comprises a lookup table.

30. The method of claim 1, wherein the constant is calculated according to the equation:


a=(v(actuate)−v(rest))/(s(actuate)−s(rest))


where a is the constant, v(actuate) is the actuated sensor output, v(rest) is the resting sensor output, s(actuate) is a first known position, an s(rest) is a second known position.

31. The method of claim 30, wherein s(actuate) is the position of the actuator when the maximum drive is applied to the actuator.

32. The method of claim 30, wherein s(rest) is the position of the actuator when the minimum drive is applied to the actuator.

33. The method of claim 1, wherein the constant is calculated according to the equation:


b=v(actuate)−(s(actuate)*(v(actuate)−v(rest)))/(s(actuate)−s(rest))


where b is the constant, v(actuate) is the actuated sensor output, v(rest) is the resting sensor output, s(actuate) is a first known position, an s(rest) is a second known position.

34. The method of claim 33, wherein s(actuate) is the position of the actuator when the maximum drive is applied to the actuator.

35. The method of claim 34, wherein s(rest) is the position of the actuator when the minimum drive is applied to the actuator.

36. The method of claim 1, further comprising:
calculating a second constant based on the resting sensor output and the maximum sensor output; and
storing second calibration information based on the second constant.

37. The method of claim 36, wherein the second calibration information comprises the second constant.

38. The method of claim 36, wherein the second calibration information comprises a lookup table.

39. The method of claim 1, wherein the method is performed without intervention of a human operator.

40. A computer-readable medium encoded with instructions executable to perform a method comprising:
applying a minimum drive to the actuator;
while the minimum drive is applied to the actuator, finding a resting sensor output, the resting sensor output being an output of a sensor, the sensor operable to sense a displacement of an element moveable by the actuator;
applying a maximum drive to the actuator;
while the maximum drive is applied to the actuator, finding an actuated sensor output, the actuated sensor output being an output of the sensor;
calculating a constant based on the resting sensor output and the maximum sensor output; and
storing calibration information based on the constant.

41. The computer-readable medium of claim 40, wherein the actuator drives a pedal mechanism in a piano.

42. The computer-readable medium of claim 41, wherein the element is the pedal mechanism.

43. The computer-readable medium of claim 42, wherein output of the sensor is proportional to the inverse square of the distance from the sensor to the pedal mechanism.

44. The computer-readable medium of claim 42, wherein the output of the sensor is directly proportional to the distance from the sensor to the pedal mechanism.

45. The computer-readable medium of claim 41, wherein the minimum drive is the smallest drive that may be applied to the actuator during a musical performance, and the maximum drive is the largest drive that may be applied to the actuator during a musical performance.

46. The computer-readable medium of claim 40, wherein the element is the actuator.

47. The computer-readable medium of claim 46, wherein the output of the sensor is proportional to the inverse square of the distance from the sensor to the actuator.

48. The computer-readable medium of claim 46, wherein the output of the sensor is directly proportional to the distance from the sensor to the actuator.

49. The computer-readable medium of claim 40, wherein the sensor is a nonlinear sensor.

50. The computer-readable medium of claim 49, wherein the nonlinear sensor is an optical sensor.

51. The computer-readable medium of claim 49, wherein the nonlinear sensor is a Hall-effect sensor.

52. The computer-readable medium of claim 40, wherein the sensor is a linear sensor.

53. The computer-readable medium of claim 52, wherein the linear sensor is a linear potentiometer.

54. The computer-readable medium of claim 40, wherein the minimum drive is zero.

55. The computer-readable medium of claim 54, wherein the method further comprises
calculating a second constant according to the equation:


k=v(rest)*(s(rest)+s(0))2 


where k is the second constant; and
storing second calibration information based on the second constant.

56. The computer-readable medium of claim 55, wherein the second calibration information comprises the second constant.

57. The computer-readable medium of claim 55, wherein the second calibration information comprises a lookup table.

58. The computer-readable medium of claim 40, wherein the actuator is in a resting position when the minimum drive is applied to the actuator.

59. The computer-readable medium of claim 40, wherein actuator is in a fully actuated position when the maximum drive is applied to the actuator.

60. The computer-readable medium of claim 40, wherein the maximum drive and the maximum drive are specified by protocol.

61. The computer-readable medium of claim 40, wherein the constant is calculated according to the equation:


s(0)=((m*s(actuate))−s(rest))/(1−m),


where s(0) is the constant, s(actuate) is a first known position, s(rest) is a second known position, m=√(v(actuate)/v(rest)), v(actuate) is the actuated sensor output, and v(rest) is the resting sensor output.

62. The computer-readable medium of claim 61, wherein s(actuate) is the position of the actuator when the maximum drive is applied to the actuator.

63. The computer-readable medium of claim 61, wherein s(rest) is the position of the actuator when the minimum drive is applied to the actuator.

64. The computer-readable medium of claim 40, wherein the method further comprises:
calculating a second constant based on the resting sensor output and the maximum sensor output; and
storing second calibration information based on the second constant.

65. The computer-readable medium of claim 64, wherein the second calibration information comprises the second constant.

66. The computer-readable medium of claim 64, wherein the second calibration information comprises a lookup table.

67. The computer-readable medium of claim 40 wherein the calibration information comprises the constant.

68. The computer-readable medium of claim 40, wherein the calibration information comprises a lookup table.

69. The computer-readable medium of claim 40 wherein the constant is calculated according to the equation:


a=(v(actuate)−v(rest))/(s(actuate)−s(rest))


where a is the constant, v(actuate) is the actuated sensor output, v(rest) is the resting sensor output, s(actuate) is a first known position, an s(rest) is a second known position.

70. The computer-readable medium of claim 69, wherein s(actuate) is the position of the actuator when the maximum drive is applied to the actuator.

71. The computer-readable medium of claim 69, wherein s(rest) is the position of the actuator when the minimum drive is applied to the actuator.

72. The computer-readable medium of claim 40 wherein the constant is calculated according to the equation:


b=v(actuate)−(s(actuate)*(v(actuate)−v(rest)))/(s(actuate)−s(rest))


where b is the constant, v(actuate) is the actuated sensor output, v(rest) is the resting sensor output, s(actuate) is a first known position, an s(rest) is a second known position.

73. The computer-readable medium of claim 72, wherein s(actuate) is the position of the actuator when the maximum drive is applied to the actuator.

74. The computer-readable medium of claim 73, wherein s(rest) is the position of the actuator when the minimum drive is applied to the actuator.

75. The computer-readable medium of claim 40, wherein the method further comprises:
calculating a second constant based on the resting sensor output and the maximum sensor output; and
storing second calibration information based on the second constant.

76. The computer-readable medium of claim 75, wherein the second calibration information comprises the second constant.

77. The computer-readable medium of claim 75, wherein the second calibration information comprises a lookup table.

78. The computer-readable medium of claim 40, wherein the method is performed without intervention of a human operator.