Digital Piano: Mono-Compatibility and Phase Correlation Metering

Digital pianos can sound disappointing (thin, tinny, nasal, dull) in live settings, even if they sound great in headphones. This is often due to stereo piano samples that have mono-compatibility issues: interference between left and right channels causes distorted timbre due to phase cancellation.

I have an earlier (and even earlier) post with measurements that show this happening on my Yamaha CP50. Those measurements can be hard to interpret. For making comparisons between pianos, I’d prefer one simple measure of how bad these phase issues are. One possibility is a phase correlation meter of the kind sometimes found in DAWs and mixers. This is a quick post to share the results of running my Yamaha DP through such a meter.

Continue reading

Atlona HD570 distortion / subsonic transients

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.
Continue reading

Digital Piano Reproduction: Phase Issues 2

Following up on an earlier post, I’ve been investigating why digital pianos sound so bad in stereo.  I did a spectral analysis on the outputs of my Yamaha CP50 stage piano.  The results confirm what I and others have been hearing: because of how they are sampled, stereo pianos don’t reproduce well except in headphones.

Update: based on my investigations here and elsewhere, I’ve designed a new loudspeaker system to deal with the challenges of turning piano samples into naturalistic live piano sound. Visit to purchase or get more info.

Continue reading

Digital Piano Reproduction: Phase Issues 1

Musicians often complain that their digital piano sounds good through headphones but terrible through an amp/PA, describing their live piano sound as “thin”, “nasal” or “boxy”.  This can be frustrating and musically uninspiring.  Because the piano sounds good through ‘phones, people naturally blame their amp/speakers and seek a solution there.

Update: based on my investigations here and elsewhere, I’ve designed a new loudspeaker system to deal with the challenges of turning piano samples into naturalistic live piano sound. Visit to purchase or get more info.

Continue reading

rt-plugins-0.0.4 released

I just posted version 0.0.4 of my LADSPA plugins for doing crossover/equalization of active loudspeakers.  Just a couple of changes to note:

  • First-order low- and high-pass filters are now available.
  • The build system has been moved to cmake; hopefully this makes it easier to build the plugins on other platforms.  Also some code cleanup and restructuring. (All thanks to Florian Franzmann.)

There’s no need to upgrade if these changes don’t affect you.

At some point the LADSPA API will become deprecated and my plugins will have to be migrated to LV2.  Any volunteers?

Digital Allpass Filters for Crossover Phase Equalization

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

Pluto 2.1 with Software DSP

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

Digital Crossover/EQ with Open-Source Software: HOWTO

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