Skip to content

User Documentation

Todd West edited this page Jan 3, 2017 · 4 revisions

Music Libraries

Cross Time DSP has no particular preferences about where it reads input files from or where it writes its output files. When converting just a few tracks to try out Cross Time DSP it doesn't really matter where you put them. When processing many tracks it's suggested to send Cross Time DSP's output to a directory someplace outside of the library. This makes it easier to manage the original and modified tracks, simplifying copying or burning the output tracks and avoiding the need to select between different versions of the track in your media player.

Metadata and Tags

Cross Time DSP copies the tags from the files it reads to the files it writes. If your tags are stored elsewhere Cross Time DSP doesn't know about them and you'll need to make your own arrangements to propagate them. Not all media players are good about placing tags in music files and updating files when tags are edited. So if the input file looks fine but tags are missing from Cross Time DSP's output check that the input really is fine. Often it's easiest to use a dedicated tag management tool to update files, such as Mp3tag (which, despite its name, supports most audio file formats).

Supported Audio Codecs

Cross Time DSP can, in principle, read and write any audio file format supported by Windows Media Foundation. This includes most common formats, ALAC (.m4a), FLAC (.flac), MP3 (.mp3), WMA lossless (.wma, also used for lossy encodings), and Wave (.wav) among them. Cross Time DSP is, however, a low priority project for the author and testing is limited to FLAC and Wave in stereo formats, primarily 16 and 24 bit.

Common Speaker Corrections

The table below lists starting points for a few typical speaker designs. Some refinement may be needed based on measurement of room variations and component tolerances.

speaker design what to put in Cross Time DSP's config file
two way
second or third order crossover
ported
<thirdOrder timeDirection="Reverse">
<biquad type="Allpass" f0="port frequency" q="0.7071" />
<firstOrder type="Allpass" f0="crossover frequency" />
<thirdOrder />
two way
LR4 crossover
ported
<biquad timeDirection="Reverse" type="Allpass" f0="port frequency" q="0.7071" />
<biquad timeDirection="Reverse" type="Allpass" f0="crossover frequency" q="0.7071" />
three way
LR4 crossovers
ported
<biquad timeDirection="Reverse" type="Allpass" f0="port frequency" q="0.7071" />
<biquad timeDirection="Reverse" type="Allpass" f0="low crossover frequency" q="0.7071" />
<biquad timeDirection="Reverse" type="Allpass" f0="high crossover frequency" q="0.7071" />

Specifying Inverse Allpass Filters for Phase Linearization

If the table above doesn't address your needs the table below provides a cookbook for most other linearizations; the phase linearization wiki page provides background on why inverse allpass filters are a common choice. If you cam measure the phase response of your playback system that's often helpful in identifying the optimum corrections to apply.

what to correct what to put in Cross Time DSP's config file
sealed bass <firstOrder timeDirection="Reverse" type="Allpass" f0="corner frequency of bass rolloff" />
ported bass <biquad timeDirection="Reverse" type="Allpass" f0="port tuning frequency" q="0.7071" />
LR2 crossover <firstOrder timeDirection="Reverse" type="Allpass" f0="crossover frequency;" />
LR4 crossover <biquad timeDirection="Reverse" type="Allpass" f0="crossover frequency;" q="0.7071" />
LR6 crossover <biquad timeDirection="Reverse" type="Allpass" f0="crossover frequency" q="1.0" />
<firstOrder timeDirection="Reverse" type="Allpass" f0="crossover frequency" />
LR8 crossover <biquad timeDirection="Reverse" type="Allpass" f0="crossover frequency" q="0.54" />
<biquad timeDirection="Reverse" type="Allpass" f0="crossover frequency" q="1.34" />
dipole <biquad timeDirection="Reverse" type="Allpass" f0="center of peaking filter" q="0.7071" />