Skip to content
Todd West edited this page Dec 21, 2016 · 6 revisions

How it Works

Cross Time DSP is a PowerShell module. Unzip the latest release in a folder listed in $env:PSModulePath so the files are located in a WindowsPowerShell\Modules\CrossTimeDsp folder. From PowerShell, do

Import-Module CrossTimeDsp;
Sync-Files -Config <path to configuration file> -Input <path to music files> -Output <desired location> -Verbose;

For more information see Get-Help Sync-Files, the comments in the ExampleConfig.xml file included with the release, and the user documentation.

Summary

Cross Time DSP implements conventional forward time IIR processing of music files as well as time reversed IIR. Time reversal allows phase linearization at low frequencies via inverse allpass or other inverse filters at much lower CPU cost than FIR filters. This makes Cross Time DSP useful in providing music to embedded audio systems which cannot support long FIR filters, such as MiniDSP's SigmaDSP and SHARC based offerings or Hypex's DLCP. When running PCs long FIRs are computationally feasible and deploying filters designed in rePhase is convenient, though Cross Time DSP's one time processing is lower power and can be helpful when operating from batteries.

Time reversed IIR implementations running in plugins have to reverse short blocks of music to keep playback latency reasonable. This introduces distortion as the phase corrections result in popping at block boundaries. The lower the frequency the worse the pops, the higher the THD, and the greater the amount of CPU and latency required to mitigate the problem. As a result, such real time time reversed IIR implementations are often less attractive than long FIR. Cross Time DSP instead performs offline time reversed IIR. This allows a single reverse time pass over the entire file and avoids the difficulties with blocks. Computationally, this is about three orders of magnitude faster as an IIR biquad is comparable to a six tap FIR filter. In comparison, low frequency FIR filters often require around 6000 taps at 44.1kHz sample rates and 13,000 at 96kHz.

Features

  • forward IIR and time reversed IIR processing
  • 64 bit floating point processing by default
  • 32 bit fixed point with extended precision options
  • most common audio encodings supported
  • sync between input and output music libraries
Clone this wiki locally