SXQ



SXQ stands for 'Software Crossover Filter and Equalizer'. It is mostly used in conjunction with a Virtual Audio Cable, more about this below. SXQ is a versatile tool that can be used in many ways. Typical applications & features:




- A software digital Crossover/Equalizer in the vein of the Behringer DCX 2496, for bi- tri- and also quad-amping.

- Link between different devices, thanks to the SXQ PLL also in cases where a Virtual Audio Cable alone won't work because of slight sample clock differences.

- SXQ is 'What You Play Is What You Get', no 'integrated player' or 'music server' kind of solution, just your multimedia PC with 2 to 8 DSP outputs instead of the usual stereo pair.

- A parametric equalizer.

- The configurable filters are IIR type.

- All data processing is 64 bit double precision floating point.


System Requirements

- Windows Vista, Windows 7, Windows 8

- A browser, preferably Firefox. Chrome does not work due to a problem with Chrome and forms beyond a certain amount of controls.

- Network and Internet connectivity. The chart component is 'from the cloud'.

- A sufficiently fast machine. That is, SXQ should not use several % of CPU. I have used SXQ continuously for more than a month as I write this, without any problems. It's a tri-amp setup with quite some EQ, and it uses an average of about 0.02% CPU on my Sandy Bridge i5. Other users run SXQ successfully on a fanless Atom based machine. YMMV.

Installation and Usage

It is presumed that the user is familiar with such concepts as filter types, frequency, Q, and decibel.
SXQ has an embedded lightweight web server, and uses a web interface for configuration. Web interfaces have their limitations, but do give instant portability and network transparency.
No user data whatsoever is sent away over the Internet.

A very common SXQ installation makes use of a so-called Virtual Audio Cable (VAC), which is to be used as the default audio rendering device. The VAC is then used as the input device for SXQ.

Make sure that all devices are configured properly; Open the sound option in the control panel. Aside from the general 'Properties' buttons for the devices there is also a 'Configuration' option (in the sound section of the control panel that lists the sound devices), and that is where to configure stereo or multi-channel for the output device. The rendering (output) device has to grant exclusive access to applications (in advanced options).

The VAC has a rendering and a recording (capture) side. The VAC capture side (cable output) has to have the same sample rate as the SXQ input. Choose 16 or 24 bits resolution.

There are a couple of available VAC's: there is a good one from VB-Audio. The best option is to use their so called 'HiFi Cable', it is bit-perfect with equal input and output sample rates.

There is also a VAC available here.

OR..

Use the sound adapter full duplex, so you can connect external analog sources, or digital via S/PDIF; select the line in device as SXQ input. Make sure that all sample rates correspond with SXQ; in such cases there is one sample rate for all settings. The synchronization box in the platform settings can be checked, because usually the ADC and DAC clocks are divided from the same crystal. You may also use different physical devices for input and output, in such cases there is no synchronization, do not check the box.

- Unzip the SXQ archive into a new directory

- Start SXQ.exe

- An additional volume control will appear as soon as the engine is running and configured properly. A VAC will also spawn a volume control, but that one is useless, even though it's the only one with a green level indicator.

- To exit SXQ use the context menu on the icon in the system tray

- To uninstall SXQ just delete the installed files. No registry modifications are made at any point.

Once SXQ has been started, the engine will automatically run given it has been configured properly. You need the browser for configuration only.
A starting point for configuration of your SXQ instance is http://127.0.0.1:8395/pf.html, the port is now 8395 as of v1.0.7.


Configuration, the Menu Items

Platform Settings



A facility to set variables specific for the platform. These settings will end up in a file 'sxq_pf.prp', which is specific for your system.

- Select the input and output devices.

- Select the input and output sample frequency.

- Select the number of ouput channels. Number of input channels is always 2.

- Indicate if the input and output devices are clock synchronized. This box is generally left unchecked. If the input device is a VAC there is no synchronization, do not check box. There usually is synchronization when only one device is used for input and output in full duplex mode.



I/O Configuration



- L/R Link: Indicate if settings are to be duplicated for the path associated with the other input channel. This does not apply to path specific setings like delay and level presets.

- The actual I/O Configuration, or how the two input channels are mapped to output channels through paths. Unused output channels are silenced.



Build DSP



Add filters to the paths. Delay and level settings are path specific and are not mirrored automatically for the other channel. Delay values are absolute, so sign is irrelevant. Try to avoid too much digital 'amplification'.
The individual filters can be added, modified and deleted using the butons. Each filter's response graph is shown, together with a total path response graph.
These settings will end up in a file 'sxq.prp', which can be shared with other SXQ instances with same number of channels.
It is not recommendable to modify the config file directly, as the order of the parameters matters in ways not obvious to the user.

Per filter type overview:

- Any type of low pass or high pass filter: Set or modify F0.

- Equalizer: Set or modify F0, Q, dbGain (positive or negative). Linkwitz Transform is not included as such because it is not elementary; it can for example be created with a shelf and one or two eq's. Just like any other response correction for that matter, like for OB.

- Shelf: Set or modify F0, dbGain, and set S between 0.1 and 1 to determine the slope. A walue of 1 gives the steepest slope.

- The interface will guide you for the other types too.



Beware..

- Windows has a tendency to shuffle the order of the devices at startup. Check the config.

- Arithmetic overflows are prone when gain is configured, especially in the midrange. Lower the input level of the path proportionally. Up to +20dB of eq in the sub range usually is no problem however.

- It is not recommendable to use an output sample rate which is lower than the input sample rate (that would be 48k/44k1). TODO inhibit such combination in the GUI.




Download SXQ

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, SXQ IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF SXQ. YOU USE
SXQ ENTIRELY AT YOUR OWN RISK.
COMMERCIAL USE IS PROHIBITED WITHOUT PRIOR AUTHORIZATION OF THE AUTHOR
REDISTRIBUTION IS PROHIBITED

Usage of SXQ indicates that you agree to the above conditions.

All trademarks and other registered names contained in the SXQ
package are the property of their respective owners.


sxq108.rar


Version 1.0.7 may 12, 2015 - Changed config port to 8395 so upgrading users may need to refresh bookmarks.

Version 1.0.6 april 16, 2015 - Re-tuned PLL for best synchronization.

Version 1.0.4 november 29, 2014 - delay in centimeters. From 0.7 to 2000 cm. Solved problem with SSE and very small IIR register values causing high CPU in case of silence.

Version 1.0.3 november 21, 2014 - some fixes and proper saturation behavior. No more overflows if path attenuation is set proportional to the gain (especially midrange) of the filters.

Version 1.0.2 november 3, 2014 - first release.

Fresh releases with fixes and new features appear regularly. Uncommented releases are maintenance releases. SXQ is new and not all permutations of use cases have been tested extensively on all platforms. I'll give support here at diyaudio.com.


SXQ is Donationware!

'Donationware' means that you can determine the License price according to your means.
For SXQ, recommended License price is around 10 to 20 Euro but all other participations are welcome.




TODO
  • Actually implement the bandpass filter option (which I deem unnecessary but anyway..)


Future Features
  • Ports for Linux and maybe even OS/X
  • Add trunk EQ paths before the branched paths(get it?)
  • Display path phase graphs


© Rik Ruiter