1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<refentry id="lorismorph">
<indexterm id="IndexLorisMorph"><primary>lorismorph</primary></indexterm>
<refentryinfo><title>Spectral Processing:Loris</title></refentryinfo>
<refmeta>
<refentrytitle>lorismorph</refentrytitle>
</refmeta>
<refnamediv>
<refname>lorismorph</refname>
<refpurpose>Morphs two stored sets of bandwidth-enhanced partials
and stores a new set of partials representing the morphed
sound. The morph is performed by linearly interpolating the
parameter envelopes (frequency, amplitude, and bandwidth, or
noisiness) of the bandwidth-enhanced partials according to
control-rate frequency, amplitude, and bandwidth morphing
functions. </refpurpose>
</refnamediv>
<refsect1>
<title>Syntax</title>
<synopsis><command>lorismorph</command> isrcidx, itgtidx, istoreidx, kfreqmorphenv, kampmorphenv, kbwmorphenv</synopsis>
</refsect1>
<refsect1>
<title>Description</title>
<para><emphasis>lorismorph</emphasis> morphs two stored sets of bandwidth-enhanced
partials and stores a new set of partials representing the morphed
sound. The morph is performed by linearly interpolating the
parameter envelopes (frequency, amplitude, and bandwidth, or
noisiness) of the bandwidth-enhanced partials according to
control-rate frequency, amplitude, and bandwidth morphing
functions.
</para>
</refsect1>
<refsect1>
<title>Initialization</title>
<para><emphasis>istoreidx, ireadidx, isrcidx, itgtidx</emphasis> are
labels that identify a stored set of bandwidth-enhanced
partials. <emphasis>lorisread</emphasis> imports partials from a SDIF file and stores them
with the integer label istoreidx. <emphasis>lorismorph</emphasis> morphs sets of partials
labeled <emphasis>isrcidx</emphasis> and <emphasis>itgtidx</emphasis>, and stores the resulting partials with
the integer label <emphasis>istoreidx</emphasis>. <emphasis>lorisplay</emphasis> renders the partials stored
with the label <emphasis>ireadidx</emphasis>. The labels are used only at initialization
time, and may be reused without any cost or benefit in efficiency, and
without introducing any interaction between instruments or
instances.</para>
</refsect1>
<refsect1>
<title>Performance</title>
<para><emphasis>lorismorph</emphasis> generates a set of bandwidth-enhanced partials by
morphing two stored sets of partials, the source and target partials,
which may have been imported using <emphasis>lorisread</emphasis>, or generated by another
unit generator, including another instance of <emphasis>lorismorph</emphasis>. The morph is
performed by interpolating the parameters of corresponding (labeled)
partials in the two source sounds. The sound morph is
described by three control-rate morphing envelopes. <emphasis>kfreqmorphenv</emphasis>
describes the interpolation of partial frequency values in the two
source sounds. When <emphasis>kfreqmorphenv</emphasis> is 0, partial frequencies are
obtained from the partials stored at <emphasis>isrcidx</emphasis>. When <emphasis>kfreqmorphenv</emphasis> is 1,
partial frequencies are obtained from the partials at <emphasis>itgtidx</emphasis>. When
<emphasis>kfreqmorphenv</emphasis> is between 0 and 1, the partial frequencies are
interpolated between corresponding source and target
partials. Interpolation of partial amplitudes and bandwidth
(noisiness) coefficients are similarly described by <emphasis>kampmorphenv</emphasis> and
<emphasis>kbwmorphenv</emphasis>.</para>
</refsect1>
<refsect1>
<title>Credits</title>
<para>This implementation of the Loris unit generators was written by Kelly
Fitz (<ulink
url="mailto:loris@cerlsoundgroup.org">loris@cerlsoundgroup.org</ulink>). It is patterned after a prototype implementation of the
<emphasis>lorisplay</emphasis> unit generator written by Corbin Champion, and based on the
method of Bandwidth-Enhanced Additive Synthesis and on the sound
morphing algorithms implemented in the Loris library for sound
modeling and manipulation. The opcodes were further adapted as a
plugin for Csound 5 by Michael gogins.</para>
</refsect1>
</refentry>
|