|

C/C++ Library
for High Quality Audio Time Stretching
and Pitch Shifting
In this
document:
What
is DIRAC?
In a world where high definition audio is
becoming a technology of daily life it is
surprising how little attention is actually being
paid to the quality of processes that are almost as
important when handling digital audio, for example
changing speed and pitch independently from one
another. In our research, we've found the
algorithms available on the market today to
severely alter the quality of the processed audio
which is intolerable in a professional context.
This is why we were motivated to develop a new
algorithm that excels at providing both excellent
quality, high performance and perfect fidelity -
DIRAC.
DIRAC is
envisioned to become a new standard in digital
audio applications and embedded systems. Featuring
an entirely free full-quality LE version, it was
created to provide a free basis to give developers
of all kinds of audio software a common, high
quality toolset for creating their applications. We
believe that time stretching and pitch shifting are
tools that should not be limited to proprietary
applications but are indeed important enough to be
readily available as building block for all
software developers, without costly licensing,
nebulous marketing language and trade secret
issues.
DIRAC LE is free
for all and intended to provide a common, high
quality basis across all platforms. It can be
expanded beyond the features of the free LE version
as needed if you require more. Recognizing that a
chain is only as strong as its weakest link, our
goal is to provide your client's audio processing
chain with the best option for changing speed and
pitch to make them worry less about what is
happening with their precious data.
But see for
yourself and test drive DIRAC LE today - it's
entirely free and there are no obligations on your
part.
Why
should I use DIRAC?
There are several time stretching algorithms
available on the market today. However, every one
of them has one specific type of signal for which
it doesn't work well. For example, most algorithms
that produce good results with voice don't work
well with entire mixes, and vice versa. Some
introduce distortion when processing critical
material such as classical music, or echoes when
dealing with percussion. Many of them even alter
the stereo image when processing stereo tracks,
others are designed to work with a specific type of
signal only, such as drum loops, and fail in all
other cases.
Due to its new
time-frequency approach that unites the best of
both worlds and adds the advantages of
wavelet-based processing, only DIRAC can be scaled
to work with all signals with equal ease and
success and without destroying the timing or
quality of your music. What's more - it doesn't
hide its inadequacies behind a massive set of
parameters that leave the user wondering why
tweaking them makes the result sound always worse.
DIRAC is very easy to set up and guarantees a
smooth and professional result every time. And if
you don't believe us - try it for yourself now. The
basic DIRAC LE library is free and comes without
any obligation. We've not seen any other company
allow others to evaluate the quality of their
algorithms so freely.
The more advanced
versions of this technology are available at an
incredibly low licensing rate considering the
benefits that this technology brings to your
applications. And it doesn't stop there - if you
need source code to customize DIRAC to suit your
specific needs we're open to licensing that as
well. Our time stretching API isn't shrouded in
trade secrets and non-disclosure agreements. You
can see and try everything before you make your
decision about licensing any of the full-fledged
packages. If you have any questions or require a
customized version we're standing by to help you
and provide assistance as needed.
What
versions are there and how do they compare?
There are 3 different incarnations of DIRAC
available at this time, called LE, STUDIO and PRO.
DIRAC LE is the
free version of the library that provides the exact
same quality as the STUDIO and PRO versions but has
some minor restrictions. For example, DIRAC LE can
only process one audio channel per DIRAC instance.
This doesn't mean that you cannot process stereo
files with the LE version - you simply need to
create one separate DIRAC LE object per
channel.
DIRAC STUDIO
offers phase locked stereo processing while the PRO
version allows processing an arbitrary number of
channels (5.1 surround and more) in a phase locked,
mono-compatible manner.
Here's a feature
comparison chart that lists the differences between
the three versions:
|
Feature
|
|
|
|
|
|
|
|
|
|
|
YES
|
YES
|
YES
|
|
Dynamic
Time and Pitch Changes
|
-
|
-
|
YES
|
|
Phase
locked stereo processing
|
-
|
YES
|
YES
|
|
Phase-locked
surround processing
|
-
|
-
|
YES
|
|
Formant
Correction
|
-
|
Preservation
only
|
Preservation
& free adjustment
|
|
Surround
compatible
|
-
|
-
|
YES
|
|
Supported
Sample Rates
|
44.1
and 48kHz
|
8
- 96kHz
|
Unlimited
|
|
Time
Frequency Localization
|
YES
|
YES
|
YES
|
|
High
Quality
|
YES
|
YES
|
YES
|
|
High
stretch ratio accuracy
|
YES
|
YES
|
YES
|
|
Pitch
Shift Anti-Aliasing
|
YES
|
YES
|
YES
|
|
Pitch
Shift Interpolation
|
Band-Limited
|
Band-Limited
|
Band-Limited
|
|
PowerPC
Altivec Optimization
|
-
|
YES
|
YES
|
|
Pitch/Intonation
Correction
|
YES/static
|
YES/dynamic
|
YES/dynamic
|
For more
information we recommend you download the DIRAC LE
documentation from our download
page.
What
about realtime processing?
DIRAC is highly optimized. Its quality settings
range from very fast to very good, with a dedicated
realtime/preview mode that offers astonishingly
good results. DIRAC STUDIO and PRO have full
support for AltiVec optimization on the Mac and are
therefore even faster than the LE version. Try the
LE version now to sample the quality for
yourself.
What
quality parameters does it offer?
DIRAC offers two quality-related parameters.
"Quality" determines the quality/speed tradeoff,
ranging from very fast/realtime preview to full
quality for very high end applications. "Lambda"
determines the time-frequency localization tradoff,
ranging from very localized (good for voice and
single instruments) to very smooth (good for
complete mixes or critical material). An additional
selector enabling/disabling compact support for the
time-frequency decomposition is available as an
option. Please see the DIRAC
manual
for more information.
Does
it do pitch and intonation correction?
Yes! Being an ideal tool for sung or
instrumental tracks that aren't in perfect tune,
DIRAC 1.1 now incorporates an advanced way of
improving intonation on instrument and vocal
tracks. Its automatic pitch detection and
correction lets you automatically correct notes
that deviate from their closest key on the piano
keyboard. The DIRAC pitch correction is a lightning
fast process that makes this application faster
than realtime and ideal for A/B comparison
sessions. Contrary to other pitch correction
schemes on the market today that sound rather
synthetic and lend a robotic quality to the
processed tracks, DIRAC's advanced intonation
parameters allow for a natural result that is
indistinguishable from the orginal track. Due to
the fact that it doesn't use granular synthesis
like many of the other pitch correctors it does not
produce any distortion or artifacts, and it doesn't
rely on the underlying signal being 100% periodic
to produce a musical result. When you enable pitch
correction you can adjust the pitch correction
strength and capture range as well as the slur rate
that defines the time until the note settles at the
correct pitch. Much like a singer who adjusts the
note while he sings, DIRAC adapts to the signal and
smoothly shifts it to match the predefined pitch.
Of course, DIRAC gives you full control over the
reference tuning to match your
recording.
What
about the costs for the STUDIO and PRO
version?
DIRAC
LE Licensing
Use of DIRAC LE is entirely free of charge. You can
use it in any commercial and non-commercial
applications that you develop, without a licensing
fee, subject to the DIRAC LE licensing agreement.
Please read, download or print the full
DIRAC
LE licensing agreement from
here for
more information on the DIRAC LE
license.
DIRAC
STUDIO and PRO
Licensing
There are two licensing modes available to suit the
different business models:
1.
Annual
licensing
This is a recurring annual licensing fee for
every company, individual or institution
incorporating our DIRAC STUDIO or PRO technology
into their products. The fee is independent of
the number of products or copies that are sold
that incorporate the DIRAC technology and
independent of the number of operating systems
that are supported or used. This means you're
free to sell as many end user licenses and
programs that incorporate DIRAC STUDIO and PRO
as you wish, without paying a higher
price.
The licensing
period begins at the date of signing the
licensing contract and automatically renews on
the same day one year later. Termination is
possible at any time until 4 weeks before the
period renews. There are no refunds for the
"unused" time if you cancel before the year is
over.
For DIRAC
STUDIO, the yearly licensing fee is 1870 EUR,
for DIRAC PRO the licensing fee is 3360 EUR
including all applicable taxes. The first
payment is due in advance upon execution of the
licensing contract and is payable in Euro (EUR)
currency.
Future
revisions, potential bug fixes and customer
support are included in the licensing costs for
the duration of the licensing period as far as
they refer to existing features.
Additional
update fees may apply for future DIRAC versions
that incorporate new features. In this case you
are offered the choice if you want to update or
stay with the current version of
DIRAC.
-
or -
2.
One-time up front payment
This
is a one-time payment for every company,
individual or institution incorporating our
DIRAC STUDIO or PRO technology into their
products. The fee is independent of the number
of products or copies that are sold that
incorporate the DIRAC technology, independent of
the number of operating systems that are
supported or used and independent of the time
period for which DIRAC is used. This means
you're free to sell as many end user licenses
and programs that incorporate DIRAC STUDIO and
PRO as you wish, without paying a higher
price.
For DIRAC
STUDIO, the up-front fee is 4630 EUR, for DIRAC
PRO the licensing fee is 9870 EUR including all
applicable taxes. Payment is due upon execution
of the licensing contract and is payable in Euro
(EUR) currency.
Future
revisions, potential bug fixes and customer
support are included in the licensing costs for
the period of one year as far as they refer to
existing features.
Additional
update fees may apply for future DIRAC versions
that incorporate new features. In this case you
are offered the choice if you want to update or
stay with the current version of DIRAC.
Upgrading
form STUDIO to PRO
Upgrading from STUDIO to PRO is possible at any
time (the cost is the difference between STUDIO and
PRO).
Source
Code Licensing and
customization/porting
DIRAC source code is available in special cases
(commercial use only) upon request,
please
inquire
for more details and prices. Note that the cost for
source code licensing is generally at least twice
the cost for the up-front licensing of DIRAC
PRO.
Porting to other
platforms and delivery of custom-tailored versions
can be arranged, please
inquire.
Note that the
most efficient way is to first incorporate the free
DIRAC LE library into your application and upgrade
to STUDIO and PRO as needed. The changes to your
code will be minor to non-existent. You will find
the documentation for all 3 versions on our
download
page.
How
do I get the STUDIO and PRO version?
Licensing STUDIO or PRO is simple. Please
use
our contact page
for getting in touch with us. We will then email
you our licensing contract as PDF file depending on
your preferred option, and also send you our
payment details. A CD ROM with the STUDIO or PRO
binaries and documentation is shipped to you when
the signed contract is received via fax or postal
mail. Alternatively, you can download the binaries
and documentation from our secure server for which
you get an access code upon receipt of the signed
contract.
Contact
us!
We'd love to hear from you. Please use our
contact
page to
send us your questions or comments. Note that we've
set up a contact form to prevent SPAM, you'll
receive an email address and a personal contact
with our reply.
DIRAC
Version History
v1.2.9
DiracReset() now has an option to clear its
state buffers. Other minor fixes. Added
Universal Binary support
v1.2.8r1
Fixed glitch in sample rate converter and
DiracReset()
v1.2.8
Fixed glitch at the beginning of the audio
signal. DiracReset() should now be working more
consistently
v1.2.7
Several minor fixes for interlaced mode and
memory allocation
v1.2.6
Fixed quality problem in kDiracLambda1 for
kDiracQualityBest. Optimized formant handling.
Formant correction now works correctly in
kDiracLambda1 and kDiracLambdaPreview
v1.2.5
Fixed interlaced channel callback on
Windows
v1.2.4
Removed obsolete code and fixed memory
leaks
v1.2.3
Cleaned up code and reinstated package
flags
v1.2.2
Reinstated formant handling
Extended ranges for pitch, time and formant
handling to 10x/0.1x
v1.2.1
Optimized better and best quality
modes
v1.1.0
Implemented pitch/intonation correction
Fixed a problem with glitches during dynamic
pitch shifts when the shift changed
sign
v1.0.5
Many internal bug fixes, wrong return values
etc.
Fixed a problem with the cache management
Fixed a long term quality issue (> 5 min.
play time) due to a wrong type cast
Moved to Xcode 2.1 on the Mac
Introduced kDiracPropertyCacheGranularity
selector for DiracSetProperty() which sets the
minimum chunk size the cache uses for
consecutive reads. The range is 0-4096. Note
that this feature is somewhat experimental at
this time and should probably not be used in a
retail product without further
testing
v1.0.2
Setting processor type to be at least a G4 on
the Mac. Previous versions would only run on G5
equipped Macs
Fixed annoying audio garbage in the last buffer
to be processed
Changed internal settings for the
kDiracQualityGood mode to provide better
performance while also offering improved
quality
v1.0.1
Fixed a quality problem in preview mode
Fixed a potential crash in modes other than
preview
Removed kDiracLambda6 enum (this was left over
for debugging only)
Did some further optimization
Fixed gain mismatch in preview mode
Other minor bug fixes
v1.0.0
First release
DIRAC
Frequently Asked Questions
Q: Will there
be a Linux version?
A: Yes, I am working on a linux version at this
time. I'm planning for compilation under Debian
linux on x86 CPUs with other flavors upon
demand.
Q: What will
it cost to license source code?
A: There are no "general terms" for source code
licensing. Licensing source code depends on what
you intend to do with it and is therefore subject
to discussion and further negotiation. The
licensing fee is a one-time up-front payment and
would depend on who you are and how large your user
base is. Note that the cost for source code
licensing is generally at least twice the cost for
the up-front licensing of DIRAC PRO.
Q: When will
the STUDIO and PRO versions become available?
A: STUDIO and PRO are planned for release in
July 2005
Q: Is there
any way to process the audio in a random-access
manner, possibly even reverse playback?
A: Not yet, but I am working on an addition to
the API that allows realtime non-sequential
playback of audio for special effects (unlimited
time stretching, reverse effects) and DJ
applications.
Q: Evaluating
DIRAC using the examples is a bit cumbersome. Do
you have any other way of demoing the
technology?
A: I am working on both audio examples and
standalone demo applications on the MacOS and
Windows platforms at this time. They will become
available as a free download off the DSP Dimension
web site.
Q: What about
a 64bit Windows version?
A: A 64bit Windows version is currently being
worked on. If you're interested in evaluating a
pre-release version please contact me and I will
send you the required prototype NDA as well as more
information on the planned release of a 64bit
version of DIRAC
Q: If I
process my files using the demo projects I'm always
getting a mono file as a result. What gives?
A: The AIFF file reader (miniAIFF) I am using
in the demo application cannot write stereo
interlaced AIFF files at this time. It will also
always use the left input channel for its
processing. This is not a restriction of DIRAC but
rather one of the demo project which could easily
be changed by duplicating processing to include two
instead of one channel.
Q: I'm having
problems getting DIRAC LE to run in realtime.
What's the best setting?
A: Try using kDiracLambdaPreview in combination
with kDiracQualityPreview for the fastest
rendering. Quality can be further improved by using
kDiracLambda3 in combination with
kDiracQualityPreview or kDiracQualityGood if your
target system can handle the load. I'm still
working on optimizing DIRAC more, the initial 1.0
release was more concerned with quality than with
performance so you should see an improvement with
the next releases. As a ballpark number for the Mac
platform, the fastest setting takes up about 26%
for stereo processing and the better setting uses
about 38% CPU on a G5/2GHz Macintosh with MacOS X
10.4.1. I'm compiling a performance figure for the
PC right now (there's a larger variance due to the
greater variety in systems and CPU
architecture).
Q: What about
Intel Macs and the new Universal Binary format?
A: I have made certain that there are no issues
with the new Macintosh models. DIRAC is entirely
Intel-ready and compiles directly in the new format
including all optimizations that I've implemented
so far.
|