Headphone crossfeed research faded out. Flash forward 30 years and the scene had changed significantly. By the 1980s, headphones were being used in large numbers for portable equipment; integrated circuits made the construction of complex analog filters much simpler and less expensive; headphone quality had improved significantly; and the high. Canz3D is currently implemented as an AudioUnit and a VST plug-in for Mac OS. It should work with any AU or VST plug-in compatible audio editor or other host under OS 8.6 and up, including OS X. Version 2.3 supports OS X 10.5 and 10.4 on Intel or PowerPC. Version 2.2 supports OS X. The crossfeed filter also works surprisingly well when coupled with my Playstation 3 and cmoy headphone amp. There was some benefit when playing first-person shooters online with headphones on. It was easier to determine where sounds were coming from in-game and it felt a lot more natural with the crossfeed. Audio plugins for all operating systems (Windows, Mac OS X, Linux, iOS and Android), tagged as Headphone Calibrator / Simulator. The results are sorted by date added (newest first). You can amend the search above.
A Spatial Simulation Audio Plug-in for Headphone Listening
Last Updated 2/31/2016
Site Index
- Installation
- Operation
What's New?
(2/31/2016): A beta version of the AudioUnit supporting 32 and 64-bit operation is now available.
What is It?
Canz3D is an audio plug-in which processes sound to improve stereo imaging for listening with headphones. It performs a limited simulation of a room with two speakers. The dimensions of the room, it's acoustic properties and many other simulation parameters are adjustable. Canz3D is currently implemented as an AudioUnit and a VST plug-in for Mac OS. It should work with any AU or VST plug-in compatible audio editor or other host under OS 8.6 and up, including OS X. Version 2.3 supports OS X 10.5 and 10.4 on Intel or PowerPC. Version 2.2 supports OS X 10.3.9 and later on PowerPC. Earlier releases have separate versions for Classic, Carbon and Mach-O, as well as AltiVec and non-Altivec.
Stereo perception with headphones is generally limited to a sensation of sound being in one ear only or centered between them. Canz3D uses a combination of channel blending (crossfeed), frequency shaping and delays to simulate a 3D environment. Some high end headphone amplifiers incorporate similar effects, generally for hundreds to thousands of dollars. Originally, my intention was to build a home-brew crossfeed headphone amplifier. The plug-in was just supposed to be a way to test filters in software that I would implement in analog circuits. That plan didn't last very long as the complexity quickly outgrew any practical analog implementation and I decided to stick with a software solution.
How well Canz3D works depends a lot on the quality of your headphones and the sound being processed. With high fidelity audio recorded using stereo microphones, the results can be impressive. I find that with some classical recordings not only do I have better spatial perception, but I can more clearly distinguish instruments that seemed to blend together before. Most popular music is mixed from monaural sources by amplitude panning then compressed/limited to sound loud all the time. Canz3D will simulate what it would sound like on speakers in any case, but it can't restore fidelity or bring out a spatial image that isn't there. You may have to experiment with the simulation parameters to obtain the best results for different kinds of material.
The best way to find out how well it will work for you is to download the plug-ins and try it for yourself. I have also added some before and after sound samples to the site which I believe are a good demonstration but may not be representative of the material you want to use it with.
The unregistered plug-ins fade the output to silence after processing 3 minutes of continuous audio, which restarts every time the plugin is stopped/started. There is no demo expiration date. The limit only applies to the duration of audio which can be processed in a single continuous operation.
Installation
AudioUnit Component
To install the component at the system level, copy it to the /Library/Audio/Plug-Ins/Components folder. To install at the user level copy it to the $(HOME)/Library/Audio/Plug-Ins/Components folder. You may have to log out and log back in again for it to be recognized.
VST Plugin Bundle
To install the plugin at the system level, copy it to the /Library/Audio/Plug-Ins/VST folder. To install at the user level copy it to the $(HOME)/Library/Audio/Plug-Ins/VST folder. Your host may allow (or prefer) you to install it in other locations, but these are probably the most common.
Operation
Using with a Host Application
Canz3D is a component/plug-in which requires a host application in order to work. There are a variety of freeware, shareware and commercial audio editors and other hosts for the Mac which support AudioUnits and/or VST plug-ins. Please refer to the operating instructions for your application. Currently there is no custom GUI for Canz3D. Both the AudioUnit and VST plug-in versions use the default interfaces implemented by the host and may appear and operate differently depending on their implementation.
The plug-ins as downloaded are unregistered (i.e. demos) and fade the output to silence after processing 3 minutes of continuous audio. This limit resets every time the plugin is stopped/started and limits only the duration of audio which can be processed in a single continuous operation.
Adjustable Parameter List
Parameter | Description |
---|---|
Master | Master gain adjustment applied to all sources |
Speaker | Relative gain adjustment for sound directly from the simulated speakers |
Live | Relative gain adjustment for all reflections except the back wall |
Dead | Relative gain adjustment for the back wall reflections |
Balance | The balance between the simulated speakers |
Blend | Parameter which controls the channel crossfeed (0=none, 1=full simulation) |
Shape | Parameter which controls the frequency shaping (0=none, 1=full simulation) |
Delay | Parameter which controls the left-right relative delays (0=none, 1=full simulation) |
Spkr Tap | (Speaker Tap) The time width of the tap for sound directly from the simulated speakers |
Live Tap | The time width of the tap for all reflections except the back wall |
Dead Tap | The time width of the tap for the back wall reflections |
Live ACL | Low frequency absorption coefficient for all reflections except the back wall |
Dead ACL | Low frequency absorption coefficient for the back wall reflections |
Live ACH | High frequency absorption coefficient for all reflections except the back wall |
Dead ACH | High frequency absorption coefficient for the back wall reflections |
Live ATF | Absorption transition frequency for all reflections except the back wall |
Dead ATF | Absorption transition frequency for the back wall reflections |
Head Siz | (Head Size) Approximate circumference of the listener's head |
Spkr Ang | (Speaker Angle) The angle between the speakers from the listener's perspective |
Spkr Spc | (Speaker Space) Distance between the listener and the speaker plane |
Frnt Spc | (Front Space) Distance between the speakers and the front wall |
Side Spc | (Side Space) Distance between the speakers and the adjacent side walls |
Back Spc | (Back Space) Distance between the listener and the back wall |
Flor Spc | (Floor Space) Distance between the speakers/listener and the floor |
Ceil Spc | (Ceiling Space) Distance between the speakers/listener and the ceiling |
Snd Sped | (Sound Speed) The speed of sound used in the simulation |
Gain and Balance Parameters
The master gain control is used to adjust the gain of all sources (speakers and reflections) together. There are also gain controls to separately adjust the relative sound levels from the simulated speakers and reflections. It is possible to listen to only the speakers or only the reflections by setting some of the relative gains to negative infinity. Setting a relative gain to negative infinity eliminates the processing associated with that sound source or sources and will reduce CPU time. The balance adjustment controls the balance between the simulated speakers, not the plug-in output channels.
Simulation Parameters
The blend factor, shape factor and delay factor parameters allow you to control the level of channel blending, frequency shaping and relative delay effects in the simulation. Set at the default value of one, they will be fully simulated. A parameter value of zero removes that effect from the simulation. With all three set at zero, Canz3D reduces to a pass through with reflections and diffusion.
Tap (Diffusion) Parameters
Tapping into the same audio stream at different delays and summing causes an undesirable effect called comb filtering. To mitigate this effect Canz3D uses weighted sums of samples rather than single sample taps. I believe this is also called diffusion. Some degree of comb filtering is a realistic part of the simulation and can't entirely be avoided. Too wide a tap for the speakers can cause the output to sound muddled. The time widths of the taps are adjustable separately for the speakers, live end (everything but the back wall) reflections and dead end (back wall) reflections. The widths of the taps also have a major impact on CPU usage.
Acoustic Absorption Parameters
The acoustic properties of the simulated room as specified by the absorption coefficient (the fraction of sound amplitude absorbed, i.e. not reflected) can be controlled separately for the live end (everything but the back wall) and dead end (back wall). The absorption coefficient of an object is a function of frequency (among other factors). Canz3D models this function as a constant low frequency absorption coefficient (ACL), a constant high frequency absorption coefficient (ACH) and a single-pole, single-zero transition specified by the absorption transition frequency (ATF) where the absorption coefficient is halfway between ACL and ACH. The following diagram illustrates the absorption coefficient function over frequency. Note that most acoustic tiles and other such materials absorb high frequencies better than low frequencies, but you can specify the opposite.
Absorption Coefficient Over Frequency
Physical Parameters
The physical parameters Canz3D needs to perform a simulation are: the speed of sound, the effective circumference of the listener's head, the dimensions of the room and locations of objects in it. All of these parameters are adjustable. The default values for the speed of sound and head size should work ok for most people, but you may want to tweak them for best results. I suggest you set the reflection gains to negative infinity and adjust the speaker angle, head size to achieve the best stereo image. Then add and adjust the echoes. The dimensions of the simulated listening room will change the effect of the reflections. The following diagrams illustrate the various room geometry parameters.
Simulated Listening Room: Top View
Simulated Listening Room: Side View
Factory Presets
The combination of all the parameter values for a plug-in is called a program. Many VST hosts allow you to save the parameter settings for a plug-in as a preset program which can be reloaded. The following are the predefined or 'factory' default preset programs for Canz3D.
Preset | Description |
---|---|
Full blown | The full simulation with my default room settings. Most of the other presets are based on this program. |
CPU saver | Only the back wall reflections are simulated, with amplitude boosted to make up for the rest. This reduces the CPU time required while still preserving most of the effect. |
No echoes | Only direct sound from the virtual speakers is simulated. |
No speakers | The direct sound from the speakers is removed, leaving only the echoes. |
No blending | No crossfeed between channels. |
No shaping | No frequency shaping. |
No delay | No relative delays between channels. This does not eliminate echo delays. |
No effects | No crossfeed, shaping or relative delays. Room echoes are still simulated. |
No echoes or effects | No crossfeed, shaping, relative delays or room echoes, and the speaker tap is set to 0 (i.e. interpolation only). This setting reduces Canz3D to an elaborate pass-through. Start with this if you want to experiment with one effect at a time. |
Big room | Large room dimensions and long taps. This setting requires the most CPU time. |
Download
Download the beta 64-bit version of Canz3D here (current version 2.5b1): Canz3D_2_5b1.dmg
The distribution includes only an AudioUnit version of the plug-in for Intel Macs.
Download release versions of Canz3D here (current version 2.3): Canz3D_2_3.dmg
The distribution includes AudioUnit and VST versions of the plug-in for Intel and PowerPC (universal binaries). There is also a README file and an enabler application to install a registration code.
Crossfeed Eq
Previous releases and a version history can be found here: Canz3D Releases
Samples
For those who would like to hear what Canz3D can do without having to install and run the plugs, I have posted a couple of sound samples before and after processing with the default 'Full blown' preset program. They are taken from a performance of Brahms Requiem by the Holden Consort and released under the EFF Open Audio License version 1.0. All are in Ogg Vorbis format.
Sample 1 (1MB, about 1:00): original and processed .
Sample 2 (1.4MB, about 1:32): original and processed .
Contact
Please send me questions or feedback by email: support@midnightwalrus.com
Registration is not necessary to report bugs or ask questions, and (constructive) comments will be greatly appreciated.
Crossfeed And Eq For Headphones Mac Os 10.13
Registration
Canz3D is currently in testing only. All previous registration codes should still work.
Known Problems
- Not all audio unit hosts support the method Canz3D uses to display parameter values. If the master level value reads 0.89 with no units instead of 0.0 dB, that's why. It will still work, the display just won't read useful values. It's not a problem with Apple products such as Garage Band, only third party software.
- The 64 bit upgrade has been a long time coming due to a lack of time for development. Apple has made changes to the SDK and to the way plug-ins are registered and there may be issues with hosts not recognizing it at all.
Canz3D, copyright © 2001-2016, Jeff DuMonthier, all rights reserved
VST is a trademark of Steinberg Soft- und Hardware GmbH
Apple and Mac OS are trademarks of Apple (formerly known as Apple Computer Inc).
AltiVec and PowerPC are trademarks of Motorola Inc.
The UHA-4 is the first Leckerton amplifier to incorporate headphone crossfeed. Some love it and just leave it always enabled, others prefer the sound without it and may never use it. I tend to use it sparingly, only on recordings with hard-panned instruments. In any case, the topic deserves some additional insight.First of all, what is crossfeed? When we listen to a recording with headphones or earphones, the right ear gets only the right channel, and the left ear gets only the left channel. If a sound occurs only in the left channel, it's heard only in the left ear. The right ear gets nothing. This almost never occurs naturally due to a principle called diffraction. Diffraction is essentially the ability of a sound wave to bend around an obstacle. For example, when you are sitting in front of a stereo pair of loudspeakers, there may be no direct path from the left speaker to your right ear (because your head is in the way), but some of the sound from the left speaker is able to bend around your head and reach your right ear. The lower the frequency of the sound (compared to your head), the better it is able to diffract around your head. Really high frequency sounds mostly get absorbed by your head, but the low-frequency stuff just goes right around as if your head weren't there. As the sound is bending around your head to get to the opposite ear, it has to travel a longer distance, so there is also a slight delay of the sound to that opposite ear. Headphone crossfeed aims to simulate these three effects: diffraction, head absorption, and time delay. This is why it is sometimes referred to as an acoustic simulator. It simulates the acoustics of loudspeaker listening.
The idea of a simple, passive crossfeed circuit has been around for quite a long time. Siegfried Linkwitz described a circuit back in 1971. In fact, the 'Linkwitz' crossfeed circuit is the basis for many crossfeed designs still in use today, including the UHA-4. The version used in the UHA-4 has a modified configuration which allows true bypass when the switch is off. The circuit is isolated between two active stages, which means it cannot be affected by the source impedance or the load impedance. In other words, its sound doesn't change with different headphones or sound sources.
Crossfeed Plugin
If you'd like to read more about crossfeed in general, I've seen plenty of great explanations and illustrations out there, including this one:HeadRoom Learning Center: Headphone Imaging
Why use crossfeed? Quite simply, it can make headphone listening more natural and less fatiguing, especially over long periods of time. If you are sometimes bothered by that 'inside-your-head' sound which headphones can give, crossfeed can reduce that.
How does the UHA-4 crossfeed sound? It is designed to have minimal impact on overall frequency response. The effect depends on the nature of the recording. With a very wide sound stage or hard-panned instruments, the crossfeed moves the image forwards and away from your ears. On a recording which has a narrower soundstage to begin with, the effect is more subtle. Like I mentioned, I don't use it often, but I'm glad I have it available when I need it.