Keyboardists often complain that their digital/electronic piano sounds harsh, honky, thin, muffled, resonant, tinny, strident, boxy, like a toy/budget instrument, and other kinds of terrible and awful, such as the “ice-pick-in-the-ear effect”. I’ve been frustrated by these issues myself; no one feels inspired playing an instrument that sounds bad!
After a few years of working on understanding the causes of these problems, I’m convinced they can be solved by careful loudspeaker design, especially with attention to directivity control. It is possible to achieve a much more inspiring sound with existing keyboards. However, most off-the-shelf sound systems (e.g. “keyboard” amps, monitors and compact PAs) aren’t up to the task, for reasons described below. There is a real need for a purpose-built system for naturalistic, acoustic piano sound. I want to build that system.
Continuing with my aim to design a sound system for accurate reproduction of digital piano, I made some measurements to determine the required amplifier power and driver excursion capabilities. For output levels on par with a 6′ grand piano, an adequate system will need to reproduce transient peaks of at least 109dB SPL @ 1m and be capable of displacing at least 50 cm3. See below for details.
In my quest for high-quality live reproduction of digital piano, I have often heard it said that a piano needs full-range speakers. The argument is that the lowest fundamental is at a very low 28Hz, while the percussive nature of a piano generates lots of high frequencies. This claim sounds reasonable, but some measurements and spectral analysis show it doesn’t hold up.
In my linux pc-based dsp system for crossover and EQ of active loudspeakers, I use a pc to send 6 channels of processed audio over hdmi, with an Atlona AT-HD570 to convert all channels to analog before amplification. Recently I discovered that this setup can distort badly at moderately high signal levels, in a way that produces large transient subsonic signals which, when amplified, could permanently damage loudspeaker drivers. My measurements point to a flaw in the HD570.
Several people have asked for the code that I used in a previous post to calculate and plot first-reflection delay times as a function of listener- and loudspeaker-placement. So here it is.
Running the script below will produce pdf or postscript graphics output that looks like this:
When two loudspeaker drivers are crossed over we typically want their on-axis acoustic outputs to sum in-phase. For example the 4th-order Linkwitz-Riley (LR4) crossover is designed for this. In practice, however, things rarely work out so well because there are potentially many sources of (often nonlinear) phase distortion, e.g. equalization filters, physical offset of the drivers, band-pass characteristic of the drivers, and acoustical interaction with the baffle.
Crossover phase alignment is often corrected by delaying the signal to one of the drivers. This typically aligns the drivers’ acoustic phases only up to zeroth-order, which is a bit rough. It’s possible to do much better: one can design an allpass phase-equalization filter that gives accurate alignment throughout the crossover region. My aim here is to briefly demonstrate the technique. Continue reading
I’ve been doing some work on determining the best toe-in angle for a dipole loudspeaker. The mathematical details are in this draft manuscript, but here is a brief summary.
Attenuating Lateral Room Reflections
By toeing-in a dipole one can selectively attenuate various room reflections by placing them at or near a dipole null (i.e. 90° off-axis). Shown here are two scenarios for the first lateral reflection paths in a room, with the polar response of an ideal dipole superimposed. Only the dipole orientation changes, the reflection paths are the same in both cases:
The first case is typical; the side-wall reflection is severely attenuated (about 30dB) since it is radiated near the dipole null. The front reflection is helped a bit, but it’s only down 3dB (plus about 4dB due to path length). In practice a mirror placed at the side wall reflection point will show an image of the loudspeaker on-edge. Continue reading
About a year ago I implemented a software-DSP version of the Linkwitz Labs Pluto 2.1. My aim was to replace the original analog signal processor (ASP) with a small, standalone PC that can double as a media server: like a Squeezebox that also performs xover/eq duties.
Pluto is an outstanding loudspeaker, and really deserves to be built/heard by more people. Part of my motivation is to provide a lower-cost, easier-to-build alternative to the ASP.
I own the original ASP version of Pluto 2.1 as well: in several hours of level-matched A/B listening tests I haven’t been able to hear any difference — except that my DSP version currently has a less powerful amplifier on the woofers, which limits the peak output somewhat.
If you want to go the software-DSP route yourself, follow the 2-way crossover instructions in my DSP how-to article. I’ll post the proprietary Pluto-specific configuration files in the Owners’ area of the Orion/Pluto Forum. Continue reading
The following setup can be used to implement a 2- or 3-way digital crossover (with equalization) for active loudspeakers. It runs on a linux PC and uses only free, open-source software. My design goal was a small, self-contained unit that can live on a shelf beside an amplifier: it runs without need of a display, keyboard, or mouse, and it looks like this:
The PC is the small box on the left. It’s silent, always on, and requires no user interaction.
One could use this system to implement the xover/eq for the Linkwitz Labs Pluto 2.1 or LX521. For those interested, I’ll post specific configuration files in the Owners’ area of the Orion/Pluto/LX521 Forum: together with this how-to, those files can be used to build a DSP version of the Analog Signal Processor (ASP) for those loudspeakers. I’ve written a long article detailing my development of the LX521 implementation; my Pluto implementation is similar. Continue reading
Here are the LADSPA plugins I use in my software DSP approach to active loudspeakers. I mostly use them within ecasound, but they should work just as well in any other LADSPA host.
You can download the source code here. Install with the usual
make; make install. Continue reading