Original PDF Flash format hard-sync-without-aliasing  


Hard Sync Without Aliasing

Hard Sync Without Aliasing
Eli Brandt
School of Computer Science, Carnegie Mellon University
email: eli@cs.cmu.edu
Abstract
to f0. This is equivalent to sampling from the ideal hard-
sync signal y(t). That signal, however, is not bandlimited,
“Hard sync”, a form of oscillator synchronization, is a tech-
and sampling it directly means aliasing. Just as with saw-
nique which synthesizes a characteristic rich family of sounds.
tooth or other simple oscillators, this is heard as roughness,
We describe how to perform it by integrating a bandlimited
sub-fundamental tones, and inharmonicity. Figure 2 shows
impulse pattern, avoiding the unpleasant aliasing heard in a
the aliased spectrum that results, compared with the correct
naive digital rendering. The synthesis is refined by using a
spectrum (from a waveform calculated as in Section 4.1), for
minimum-phase bandlimited step function, which eliminates
f
lookahead and integration. This idea also gives simple band-
0 = 3/128 and f1 = 8/128.
limited syntheses of other discontinuous waveforms.
0
correct
naive
1
What is hard sync?
−20
Oscillator synchronization involves two oscillators, a mas-
ter and a slave, with frequencies f
−40
0 and f1. We will consider
sawtooth oscillators. In hard sync, whenever the master cy-
cles around, it resets the phase of the slave oscillator. The
−60
power (dB)
fundamental frequency of the slave’s output, is thus equal to
f0. Figure 1 shows this for a master wavelength of 10 and a
slave wavelength of 3. We treat the signal as unipolar, 0 to 1,
−80
for simplicity.
−100
1
0
0.1
0.2
0.3
0.4
0.5
frequency (relative)
Figure 2: Spectra of correct and of naive hard sync
0
3
Hard sync in terms of impulse trains
0
5
10
15
20
Figure 1: two cycles of hard-sync signal y(t)
We construct our hard-sync signal from impulse trains
The interesting regime is where f1 is higher than f0, but
(whose bandlimited synthesis is a solved problem), follow-
not (for very long) a multiple of it. Generally, the spec-
ing Stilson and Smith (1996). Later, in Section 6.1, we will
trum has formants at multiples of f1—the technique is related
construct hard sync from step functions.
to VOSIM (Kaegi and Tempelaars 1978) and FOF (Rodet
The derivative of y(t) in Figure 1 is the impulse pattern
1984)—but the sound’s richness comes from the complex evo-
y (t) in Figure 3, with an appropriate DC offset. We treat
lution of harmonic amplitudes as f
y(t)
1 is swept.
as unipolar, 0 to 1, for simplicity.
Varieties other than hard sync, and oscillators other than
sawtooth, will be mentioned below.
1
0.67
0.33
2
Digital aliasing
0
−0.33
The naive way to synthesize hard sync digitally is to run
0
5
10
15
20
a simple digital oscillator at f1, and reset its phase according
Figure 3: two cycles of hard-sync impulse pattern y (t)

In general, for frequencies f0 and f1 (normalized 0–1
4.2
Windowed-sinc approximation
from DC to fs),
A bandlimited impulse is a sinc function, time-scaled so
n01
as to have one zero-crossing per sample period. (Bandlimit-
y (t) =
p(t − iT1) + r01p(t) − d
ing to below fNyq means dilation, and concomitant scaling-
i=1
down.) Stilson and Smith truncate and apply a window func-
tion to this signal, store it in a table, and use it to gener-
where
T
ate bandlimited impulse trains (BLITs): subsample the table
0 = 1/f0
whenever an impulse is desired. We reapply the technique,
T1 = 1/f1
bypassing the BLIT pb(t) and generating our impulse pattern
n01 = T0/T1
y (t) directly.
r01 = T0/T1 − n01
The windowed-sinc table is oversampled by a factor of

Ω. Generate each impulse by subsampling the table—by a
p(t) =
δ(t − i/f0)
factor of Ω, if the bandlimit is fNyq; that is, stepping through
i=−∞
it Ω places at a time. Linear interpolation is adequate if Ω is
δ(t) is the Dirac delta function
large enough. If a pulse is to be centered between samples,
and
d = f
shifted past the last sample by α, then start stepping from
1 is a DC offset correction.
place Ω(1 − α).
To get a hard-sync signal yb(t) that is bandlimited to fb
Master and slave phases are updated as in the straight-
(fb ≤ fNyq = 1/2), we integrate the bandlimited derivative
forward (aliased) version. The difference is in the output,
y (t).
which is generated by placing an impulse center wherever the
b
slave phase resets. The placement must be predicted, looking
n01
ahead half of an impulse length, which is troublesome when
y (t) =
p
b
b(t − iT1)
+ r01pb(t) − d
frequencies are varying. One can either make control inputs
i=1
take effect with a delay, or assume they don’t vary too quickly
and predict as if they were constant over the span of the pre-

diction.
where
pb(t) =
sinc(t − i/f0)
There are several parameters in building the windowed-
i=−∞
sinc table: the oversampling factor Ω, the number of zero
sinc x = (sin πx)/πx
crossings Nz, and the window function. Ω should be large
and
d = f1 is a DC offset correction.
enough that the linear interpolation doesn’t cause noise. The
window function determines the level of the stopband—the
So we have reduced the problem to the synthesis of pb(t),
level of aliasing—and also the shape of the transition from
a bandlimited impulse train.
passband to stopband. The value of Nz then determines the
width of the transition, and fb its position, so that enough high
4
Synthesizing impulse trains
frequencies are passed, but aliases are blocked.
Figure 4 reprises Figure 2, but uses the windowed-sinc
This section summarizes the work of Stilson and Smith
technique, with fb = 1, Ω = 64, Nz = 16, and a Blackman
(1996), and applies it to the problem of hard-sync synthesis.
window.
0
correct
4.1
Exact syntheses
approx
−20
The signal pb(t) can be calculated exactly. Additive syn-
thesis from cosines is straighforward, and will be efficient for
sufficiently high f
−40
0. For lower f0, a better exact synthesis is
M
M
−60
pb(t) =
sincM
t
power (dB)
P
P
where
P = 1/f1
−80
M = bP
sin πx
−100
and
sinc
0
0.1
0.2
0.3
0.4
0.5
M t = M sin(πx/M)
frequency (relative)
Figure 4: Spectra of correct and of windowed-sinc hard sync
Some care must be taken here with the 0/0 case.

5
Performing the integration
6.1
Hard sync in terms of steps
This would be a good place to explain the DC offset cor-
The integration is complicated by the DC offset in y ,
b
rection d. The y signals need their DC component to be zero.
which requires us to tune parameters on the integrator, and
Each impulse has a sum of 1, so the appropriate downward
which still leaks through transiently, as at startup. Why not
shift is the number of full-height impulses plus the height of
eliminate the entire integration stage? Simply pre-integrate
the single scaled-down one. This turns out, after some can-
the windowed sinc to get what we might call a BLEP (a band-
cellation, to be f
limited step function), whose final value we can ensure is 1.
1:
Now instead of placing impulses, place BLEPs.
f
Integrating by taking a running sum is not strictly correct,
0(n01 + r01) =f0(n01 + T0/T1 − n01)
=f
but the deviation is at high frequencies, falling to 0.25 dB at
0(T0/T1)
-2 octaves. The table being integrated here is typically over-
=f0(f1/f0)
sampled several octaves more than that.
=f1
6.2
Minimum-phase impulses
In fact, the windowed-sinc approximation generates an
impulse whose sum is only approximately equal to 1. The
Also, the windowed-sinc approximation is complicated
deviation seems impossible to predict exactly (a table could
by having to look ahead to place impulse centers. This look-
approximate it), so y has a slight offset. Nor is it obvious
b
ahead comes about because the windowed sinc is symmetric,
how to get the DC offset correction exactly right while f1 is
placing the bulk of its energy in the middle. This problem
changing. In any case, there is roundoff error. From these
goes away if we consider the windowed sinc as an FIR filter,
sources, y has an offset which is variable, but on the rough
b
construct a minimum-phase filter with the same amplitude re-
order of 10−6, or −120 dB.
sponse, and use that instead.
As a consequence of all this, the integrator has to be leaky,
Z-domain (polynomial) methods have some difficulty cal-
as a perfect integrator has infinite DC gain. A first-order leaky
culating a minimum-phase filter as long as this one, but work-
integrator has finite DC gain, and if it is tuned to pass audio
ing in the cepstral domain (Oppenheim and Schafer 1975)
(attenuating 20 Hz by 0.5 dB), that DC gain is substantial,
is robust and fast. The MATLAB function rceps (The Math-
60 dB. This brings the y offset up to a persistent
b
−60 dB,
Works 2001) performs the desired operation, which in essence
enough to be bothersome.
is to zero the upper half of the cepstrum.
A second-order leaky integrator has a DC gain of zero.
Figure 5 shows the original linear-phase sinc pulse (with
It can be constructed by cascading a leaky integrator with a
parameters as in Figure 4), and Figure 6 shows the minimum-
one-pole highpass:
phase pulse.
π
k(1 − z−1)
1
H(z) = 1 − cz−1 1 − cz−1
0.5
where
k = (1 + c)/2
and
c = 0.9992 for −0.5 dB at 20 Hz (fs = 44.1 kHz)
0
The initial conditions for the integration are
−0.5
y
−1
−0.5
0
0.5
1
b(0) = 1 − r01
Figure 5: windowed-sinc pulse.
6
A more elegant synthesis
1
So far we have paralleled Stilson and Smith, developing
0.5
syntheses for hard sync homologous to theirs for sawtooth.
Now, the windowed-sinc approximation can be refined in two
ways: rendering the integration step unnecessary, and elimi-
0
nating the lookahead to the impulse center. These refinements
translate back to the synthesis of bandlimited sawtooth and
−0.5
other waveforms.
0
0.5
1
1.5
2
Figure 6: minimum-phase windowed-sinc pulse.

6.3
Minimum-phase steps
8
Extensions
These improvements can be combined, for no lookahead
So far only hard sync has been addressed. In soft sync,
and no integration stage, by integrating the minimum-phase
the slave oscillator’s phase is reset only if its current value
bandlimited impulse to form a minimum-phase bandlimited
lies within some window around zero. This is cumbersome
step (a MinBLEP), shown in Figure 7.
to synthesize from BLITs, as its period of repetition can be
arbitrarily long. However, the windowed-sinc or MinBLEP
1.5
approximation of hard sync could be adapted to do this, even
with variable hardness, by examining the slave phase at the
1
end of each master cycle.
Further afield, the slave frequency can vary over the course
of each master cycle. (The Korg Mono/Poly analog synthe-
0.5
sizer allows this, for example.) Or the slave phase need not be
reset to zero; it could be multiplied by a value between zero
and one (or greater than one), or processed in other ways.
00
0.5
1
1.5
2
Figure 7: minimum-phase bandlimited step.
9
Conclusion
The MinBLEP solves directly the quite general problem
Anyone who has worked with analog synthesizers will re-
of how to introduce a bandlimited discontinuity into a wave-
member the sound of hard sync. Digital synthesizers com-
form: don’t just jump to the new level, mix in a MinBLEP
monly omit hard sync, or render it with aliasing; this paper
instead.
describes ways to synthesize it correctly. One of the tech-
This is sufficient only if the first and higher derivatives
niques described, the minimum-phase bandlimited step, ap-
are essentially continuous across the point of discontinuity, a
plies beyond hard sync, to all of the basic ‘analog’ waveforms
property we name C1 continuity. Square wave, sawtooth, and
having discontinuities, and further.
hard-synced square and sawtooth have this property, so their
aliased digital syntheses can be corrected simply by replacing
steps with MinBLEPs.
References
Hard-synced triangle, on the other hand, does not have C1
continuity, but does have C2. It could be synthesized from
Kaegi, W. and S. Tempelaars (1978). VOSIM—a new sound
MinBLEPs and minimum-phase bandlimited ramps (which
synthesis system. Journal of the Audio Engineering Soci-
we will refrain from naming).
ety 26(6), 418–426.
Hard-synced sine, finally, has no Cn continuity. This ap-
Oppenheim, A. V. and R. W. Schafer (1975). Digital Signal Pro-
proach cannot synthesize it exactly, but only approximate it;
cessing. Prentice-Hall.
aliasing will fall off by 6dB/oct per derivative whose discon-
Rodet, X. (1984). Time-domain formant wave-function synthe-
tinuity is made bandlimited.
sis. Computer Music Journal 8(3), 9–14.
Stilson, T. and J. Smith (1996). Alias-free digital synthesis of
classic analog waveforms. In Proc. International Computer
7
Efficiency
Music Conference. International Computer Music Associa-
tion.
The per-sample cost of the MinBLEP approximation is
The MathWorks (2001). rceps (Signal Processing Toolbox).
roughly proportional to f
Online at http://www.mathworks.com/access/
1, this being (as worked out in Sec-
tion 5) the number of windowed-sinc impulses called for per
helpdesk/help/toolbox/signal/rceps.shtml.
sample. If an impulse is 32 samples long and f1 is 1/32, the
cost is one table lookup and some bookkeeping overhead (in-
cluding a branch). The number of table lookups scales with
f1.
It is true that users of hard sync do often sweep f1 higher
than 1/32 (1.4 kHz at a sampling rate of 44.1 kHz). Very
high f1 is problematic for real-time implementation. The ex-
act syntheses also take time linear in f1, so they don’t help.
Finding an approximation that takes time sublinear in f1 is an
open problem.