A controller for an electromechanical transducer, the controller comprising: driving means operable to actuate a mechanical output of the transducer; impedance cancelling means operable to at least partially cancel an electrical impedance of the transducer by use of positive feedback of transducer current, the feedback being applied via a transfer function having a low-pass or band-pass characteristic; and linearising means between an input of the controller and the driving means, wherein the linearising means are operable to: receive an input signal to the linearising means and state signals indicative of state variables of the transducer, the state signals comprising a transducer velocity signal and a transducer displacement signal; and generate an output signal by applying a nonlinear function to the input signal to the linearising means to compensate for nonlinear behaviour of the transducer, the nonlinear function being dependent on the transducer velocity signal and the transducer displacement signal, and wherein the impedance cancelling means are operable to: receive, from the linearising means, an input signal to the impedance cancelling means; derive a feedback signal from a transducer current signal; and feed, to the driving means, a sum of the feedback signal and the input signal to the impedance cancelling means. driving means operable to actuate a mechanical output of the transducer; impedance cancelling means operable to at least partially cancel an electrical impedance of the transducer by use of positive feedback of transducer current, the feedback being applied via a transfer function having a low-pass or band-pass characteristic; and linearising means between an input of the controller and the driving means, wherein the linearising means are operable to: receive an input signal to the linearising means and state signals indicative of state variables of the transducer, the state signals comprising a transducer velocity signal and a transducer displacement signal; and generate an output signal by applying a nonlinear function to the input signal to the linearising means to compensate for nonlinear behaviour of the transducer, the nonlinear function being dependent on the transducer velocity signal and the transducer displacement signal, and receive an input signal to the linearising means and state signals indicative of state variables of the transducer, the state signals comprising a transducer velocity signal and a transducer displacement signal; and generate an output signal by applying a nonlinear function to the input signal to the linearising means to compensate for nonlinear behaviour of the transducer, the nonlinear function being dependent on the transducer velocity signal and the transducer displacement signal, and wherein the impedance cancelling means are operable to: receive, from the linearising means, an input signal to the impedance cancelling means; derive a feedback signal from a transducer current signal; and feed, to the driving means, a sum of the feedback signal and the input signal to the impedance cancelling means. receive, from the linearising means, an input signal to the impedance cancelling means; derive a feedback signal from a transducer current signal; and feed, to the driving means, a sum of the feedback signal and the input signal to the impedance cancelling means.