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.
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.
In the drawings:
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
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
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
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
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
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.
The pedal assembly 400 may also include control logic 405, which is one implementation of the control logic 36 of
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
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
As is shown in
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
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
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.
The pedal assembly 400 may also include control logic 605, which is one implementation of the control logic 36 of
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
The control logic 605 may also include a Proportional-Integral-Derivative (PID) controller 408. As described above with reference to
The PID controller 408 may optionally receive a sense coil output, which is, for example, the output of the sense coil 50 of
As is shown in
While the pedal assembly mechanism 400 of
There are several ways in which the Hall-modified commanded position may be determined in step 704. As discussed above with reference to
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
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.
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
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
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 rest 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.
Number | Name | Date | Kind |
---|---|---|---|
5451708 | Fujiwara et al. | Sep 1995 | A |
5568138 | Mantani | Oct 1996 | A |
5652399 | Fujiwara et al. | Jul 1997 | A |
5714702 | Ishii | Feb 1998 | A |
5739450 | Fujiwara et al. | Apr 1998 | A |
6201173 | Black | Mar 2001 | B1 |
6359207 | Oba et al. | Mar 2002 | B1 |
6737572 | Jameson et al. | May 2004 | B1 |
6969791 | Fujiwara | Nov 2005 | B2 |
6992241 | Fujiwara | Jan 2006 | B2 |
7238873 | Fujiwara et al. | Jul 2007 | B2 |
7285715 | Sasaki et al. | Oct 2007 | B2 |
7473841 | Fujiwara | Jan 2009 | B2 |
7557280 | Fujiwara | Jul 2009 | B2 |
7598448 | Ohba | Oct 2009 | B2 |
8138407 | Matahira et al. | Mar 2012 | B2 |
8273977 | Uehara | Sep 2012 | B2 |
20020059862 | Muramatsu et al. | May 2002 | A1 |
20030070526 | Muramatsu et al. | Apr 2003 | A1 |
20050145087 | Fujiwara | Jul 2005 | A1 |
20050211048 | Fujiwara | Sep 2005 | A1 |
20050211049 | Fujiwara et al. | Sep 2005 | A1 |
20060021488 | Fujiwara et al. | Feb 2006 | A1 |
20060053999 | Sasaki | Mar 2006 | A1 |
20060156905 | Sant | Jul 2006 | A1 |
20060185503 | Fujiwara | Aug 2006 | A1 |
20060201313 | Sasaki et al. | Sep 2006 | A1 |
20060213357 | Ohba | Sep 2006 | A1 |
20070256550 | Muramatsu | Nov 2007 | A1 |
20080072743 | Ohba et al. | Mar 2008 | A1 |
20080156181 | Sasaki | Jul 2008 | A1 |
20080202322 | Ishii | Aug 2008 | A1 |
20100162872 | Matahira et al. | Jul 2010 | A1 |
20110185876 | Fujiwara et al. | Aug 2011 | A1 |