-
Notifications
You must be signed in to change notification settings - Fork 29
/
STKVoicForm.xml
91 lines (81 loc) · 4.16 KB
/
STKVoicForm.xml
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
87
88
89
90
91
<refentry id="STKVoicForm">
<indexterm id="IndexStkvoicform"><primary>STKVoicForm</primary></indexterm>
<refentryinfo><title>Signal Generators:STK Opcodes</title></refentryinfo>
<refmeta>
<refentrytitle>STKVoicForm</refentrytitle>
</refmeta>
<refnamediv>
<refname>STKVoicForm</refname>
<refpurpose>
STKVoicForm is a four formant synthesis instrument.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>Plugin opcode in stkopd. This opcode is part of the plugin repository and has to be installed separately.
The plugin repository can be found here: <ulink url="https://github.com/csound/plugins"><citetitle>https://github.com/csound/plugins</citetitle></ulink></para>
<para>
STKVoicForm is a four formant synthesis instrument.
This instrument contains an excitation singing wavetable (looping wave with random and periodic vibrato, smoothing on frequency, etc.), excitation noise, and four sweepable complex resonances.
Measured formant data is included, and enough data is there to support
either parallel or cascade synthesis. In the floating point case
cascade synthesis is the most natural so that us what you will find here.</para>
</refsect1>
<refsect1>
<title>Syntax</title>
<synopsis>asignal <command>STKVoicForm</command> ifrequency, iamplitude, [kmix, kv1[, ksel, kv2[, klfo, kv3[, klfodepth, kv4[, kloud, kv5]]]]]</synopsis>
</refsect1>
<refsect1>
<title>Initialization</title>
<para>
<emphasis>ifrequency</emphasis> -- Frequency of note played, in Hertz.
</para>
<para>
<emphasis>iamplitude</emphasis> -- Amplitude of note played (range 0-1).
</para>
</refsect1>
<refsect1>
<title>Performance</title>
<para><emphasis>kmix</emphasis> -- controller 2, voiced/unvoiced mix. Value range of kv1 is 0-127.</para>
<para><emphasis>ksel</emphasis> -- controller 4, vowel/phoneme selection. Value range of kv2 is 0-127.</para>
<para><emphasis>klfo</emphasis> -- controller 11, speed of low-frequency oscillator. Value range of kv3 is 0-127.</para>
<para><emphasis>klfodepth</emphasis> -- controller 1, depth of low-frequency oscillator. Value range of kv4 is 0-127.</para>
<para><emphasis>kloud</emphasis> -- controller 128, loudness (spectral tilt). Value range of kv5 is 0-127.</para>
</refsect1>
<refsect1>
<note>
<title>Note</title>
<para>
The code for this opcode is taken directly from the VoicForm class in the Synthesis Toolkit in C++ by Perry R. Cook and Gary P. Scavone. More on the STK classes can be found here:
<ulink url="https://ccrma.stanford.edu/software/stk/classes.html"><citetitle>https://ccrma.stanford.edu/software/stk/classes.html</citetitle></ulink>
</para>
<para>
<emphasis>kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8</emphasis> -- Up to 8 optional k-rate controller pairs for the STK opcodes.
Each controller pair consists of a controller number (kc) followed by a controller value (kv). Both the controller numbers and the controller values are krate variables. However, during a performance, normally the controller numbers stay fixed while the corresponding controller values may change at any time.
The order of the controller pair is arbitrary, as long as they are after <emphasis>iamplitude</emphasis>. Also, it is not needed that all controller pairs are used.
</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
Here is an example of the STKVoicForm opcode.
It uses the file <ulink url="examples/STKVoicForm.csd"><citetitle>STKVoicForm.csd</citetitle></ulink>.
<example>
<title>Example of the STKVoicForm opcode.</title>
<xi:include href="examples-xml/STKVoicForm.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
<refsect1>
<title>Credits</title>
<para>
<simplelist>
<member>Author: &namemichael; (after &nameperry;)</member>
<member>Irreducible Productions</member>
<member>New York, NY</member>
</simplelist>
</para>
<para>New in Csound version 5.11</para>
</refsect1>
</refentry>