~ubuntu-branches/ubuntu/hoary/kdemultimedia/hoary

« back to all changes in this revision

Viewing changes to doc/artsbuilder/modules.docbook

  • Committer: Bazaar Package Importer
  • Author(s): Martin Schulze
  • Date: 2003-01-22 15:00:51 UTC
  • Revision ID: james.westby@ubuntu.com-20030122150051-uihwkdoxf15mi1tn
Tags: upstream-2.2.2
ImportĀ upstreamĀ versionĀ 2.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!-- <?xml version="1.0" ?>
 
2
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd">
 
3
To validate or process this file as a standalone document, uncomment
 
4
this prolog. Be sure to comment it out again when you are done -->
 
5
 
 
6
<chapter id="arts-modules">
 
7
<title>&arts; modules</title>
 
8
 
 
9
  <sect1 id="modules-introduction">
 
10
<title>Introduction</title>
 
11
 
 
12
<para>
 
13
This chapter describes all of the standard &arts; modules. One of the
 
14
most powerful features of &arts;, modules can be connected together into
 
15
structures to implement new functions such as effects and instruments.
 
16
</para>
 
17
 
 
18
<para>
 
19
Modules are broken down into two categories. Synthesis modules are used
 
20
for implementing the <quote>plumbing</quote> that manipulates multimedia
 
21
data streams to implement new effects, instruments, mixers, and
 
22
applications. Visual modules allow you to provide a graphical user
 
23
interface to control the sound structures that are built up with the
 
24
synthesis modules.
 
25
</para>
 
26
 
 
27
</sect1>
 
28
 
 
29
<sect1 id="synth-modules-reference">
 
30
<title>Synthesis Modules Reference</title>
 
31
<para>
 
32
</para>
 
33
 
 
34
<sect2 id="mcat-synth-arithmetic-mixing">
 
35
<title>Arithmetic + Mixing</title>
 
36
 
 
37
<para>
 
38
</para>
 
39
 
 
40
<sect3 id="mref-synth-add-sect">
 
41
<title>Synth&lowbar;ADD</title>
 
42
<anchor id="mref-synth-add" />
 
43
 
 
44
<mediaobject>
 
45
<imageobject>
 
46
<imagedata fileref="images/Synth_ADD.png" format="PNG"/></imageobject>
 
47
<textobject><phrase>Synth&lowbar;ADD</phrase></textobject>
 
48
</mediaobject>
 
49
 
 
50
<para>
 
51
This adds two signals.
 
52
</para>
 
53
 
 
54
</sect3>
 
55
 
 
56
<sect3 id="mref-synth-mul-sect">
 
57
<title>Synth&lowbar;MUL</title>
 
58
<anchor id="mref-synth-mul"/>
 
59
 
 
60
<mediaobject>
 
61
<imageobject>
 
62
<imagedata fileref="images/Synth_MUL.png" format="PNG"/></imageobject>
 
63
<textobject><phrase>Synth&lowbar;MUL</phrase></textobject>
 
64
</mediaobject>
 
65
 
 
66
<para>
 
67
This multiplies a signal by a factor. You can use this to scale signals
 
68
down (0 &lt; factor &lt; 1) or up (factor &gt; 1) or invert signals
 
69
(factor &lt; 0). Note that the factor may be a signal and don't has to
 
70
be constant (&eg; envelope or real signal).
 
71
</para>
 
72
 
 
73
</sect3>
 
74
 
 
75
<sect3 id="mref-synth-multi-add-sect">
 
76
<title>Synth&lowbar;MULTI&lowbar;ADD</title>
 
77
<anchor id="mref-synth-multi-add" />
 
78
 
 
79
<mediaobject>
 
80
<imageobject>
 
81
<imagedata fileref="images/Synth_MULTI_ADD.png"
 
82
  format="PNG"/></imageobject>
 
83
<textobject><phrase>Synth&lowbar;MULTI&lowbar;ADD</phrase></textobject>
 
84
</mediaobject>
 
85
 
 
86
<para>
 
87
This adds an arbitary number of signals. If you need to sum up the
 
88
waveforms produces by four different oscillators, you for instance can
 
89
connect all their outputs to one Synth&lowbar;MULTI&lowbar;ADD
 
90
module. This is more efficient than using three Synth&lowbar;ADD
 
91
modules.
 
92
</para>
 
93
 
 
94
</sect3>
 
95
 
 
96
<sect3 id="mref-synth-xfade-sect">
 
97
<title>Synth&lowbar;XFADE</title>
 
98
<anchor id="mref-synth-xfade" />
 
99
 
 
100
<mediaobject>
 
101
<imageobject><imagedata fileref="images/Synth_XFADE.png" format="PNG"/>
 
102
</imageobject>
 
103
<textobject><phrase>Synth&lowbar;XFADE</phrase></textobject>
 
104
</mediaobject>
 
105
 
 
106
<para>
 
107
This crossfades two signals. If the percentage input is -1, only the
 
108
left signal is heard, if it is 1, only the right signal is heard. When
 
109
it is 0, both signals a heard with the same volume.
 
110
</para>
 
111
 
 
112
<para>
 
113
This allows you to ensure that your signal stays in a well defined
 
114
range.  If you had two signals that were between -1 and 1 before
 
115
crossfading, they will be in the same range after crossfading.
 
116
</para>
 
117
</sect3>
 
118
 
 
119
<sect3 id="mref-synth-autopanner-sect">
 
120
<title>Synth&lowbar;AUTOPANNER</title>
 
121
<anchor id="mref-synth-autopanner" />
 
122
 
 
123
<para>
 
124
The opposite of a crossfader. This takes a mono signal and splits it
 
125
into a stereo signal: It is used to automatically pan the input signal
 
126
between the left and the right output. This makes mixes more lively. A
 
127
standard application would be a guitar or lead sound.
 
128
</para>
 
129
 
 
130
<para>
 
131
Connect a <acronym>LFO</acronym>, a sine or saw wave for example to
 
132
inlfo.  and select a frequency between 0.1 and 5Hz for a traditional
 
133
effect or even more for Special <acronym>FX</acronym>.
 
134
</para>
 
135
 
 
136
</sect3>
 
137
 
 
138
</sect2>
 
139
 
 
140
<sect2 id="mcat-synth-busses">
 
141
<title>Busses</title>
 
142
 
 
143
<para>
 
144
</para>
 
145
 
 
146
<sect3 id="mref-synth-bus-uplink-sect">
 
147
<title>Synth&lowbar;BUS&lowbar;UPLINK</title>
 
148
<anchor id="mref-synth-bus-uplink" />
 
149
 
 
150
<mediaobject>
 
151
<imageobject><imagedata fileref="images/Synth_BUS_UPLINK.png"
 
152
               format="PNG"/>
 
153
</imageobject>
 
154
<textobject><phrase>Synth&lowbar;BUS&lowbar;UPLINK</phrase></textobject>
 
155
</mediaobject>
 
156
 
 
157
<para>
 
158
An uplink to a bus. Give signals to left and right, and the name of the
 
159
bus where the data should go on the <quote>bus</quote> port. The
 
160
combined signal from all uplinks with this name will appear on every
 
161
downlink on that <quote>bus</quote>.
 
162
</para>
 
163
</sect3>
 
164
 
 
165
<sect3 id="mref-synth-bus-downlink-sect">
 
166
<title>Synth&lowbar;BUS&lowbar;DOWNLINK</title>
 
167
<anchor id="mref-synth-bus-downlink" />
 
168
 
 
169
<mediaobject>
 
170
<imageobject>
 
171
<imagedata fileref="images/Synth_BUS_DOWNLINK.png"
 
172
  format="PNG"/></imageobject>
 
173
<textobject><phrase>Synth&lowbar;BUS&lowbar;DOWNLINK</phrase></textobject>
 
174
</mediaobject>
 
175
 
 
176
<para>
 
177
Gets (the sum of) all data that is put to a certain bus (with the name
 
178
you specify at the <quote>bus</quote> port).
 
179
</para>
 
180
</sect3>
 
181
 
 
182
</sect2>
 
183
 
 
184
<!-- TODO AFTER KDE2.1: move freeverb into delays, and rename category to
 
185
     Delays &amp; reverbs -->
 
186
 
 
187
<sect2 id="mcat-synth-delays">
 
188
<title>Delays</title>
 
189
 
 
190
<para>
 
191
</para>
 
192
 
 
193
<sect3 id="mref-synth-delay-sect">
 
194
<title>Synth&lowbar;DELAY</title>
 
195
<anchor id="mref-synth-delay" />
 
196
 
 
197
<mediaobject>
 
198
<imageobject><imagedata fileref="images/Synth_DELAY.png"
 
199
               format="PNG"/></imageobject></mediaobject>
 
200
 
 
201
<para>
 
202
This delays the input signal for an amount of time. The time
 
203
specification must be between 0 and 1 for a delay between 0 seconds and
 
204
1 second.
 
205
</para>
 
206
 
 
207
<para>
 
208
This kind of delay <emphasis>may not be used</emphasis> in feedback
 
209
structures. This is because it's a variable delay. You can modify it's
 
210
length while it is running, and even set it down to zero. But since in a
 
211
feedback structure the own output is needed to calculate the next
 
212
samples, a delay whose value could drop to zero during synthesis could
 
213
lead to a stall situation.
 
214
</para>
 
215
 
 
216
<para>
 
217
Use CDELAYs in that setup, perhaps combine a small constant delay (of
 
218
0.001 seconds) with a flexible delay.
 
219
</para>
 
220
 
 
221
<para>
 
222
You can also combine a CDELAY and a DELAY to achieve a variable length
 
223
delay with a minimum value in a feedback loop. Just make sure that you
 
224
have a CDELAY involved.
 
225
</para>
 
226
 
 
227
</sect3>
 
228
 
 
229
<sect3 id="mref-synth-cdelay-sect">
 
230
<title>Synth&lowbar;CDELAY</title>
 
231
<anchor id="mref-synth-cdelay" />
 
232
 
 
233
<mediaobject>
 
234
<imageobject><imagedata fileref="images/Synth_CDELAY.png"
 
235
format="PNG"/></imageobject>
 
236
<textobject><phrase>Synth&lowbar;CDELAY</phrase></textobject>
 
237
</mediaobject>
 
238
 
 
239
<para>
 
240
This delays the input signal for an amount of time. The time
 
241
specification must be between 0 and 1 for a delay between 0 seconds and
 
242
1 second. The delay is constant during the calculation, that means it
 
243
can't be modified.
 
244
</para>
 
245
 
 
246
<para>
 
247
This saves computing time as no interpolation is done, and is useful for
 
248
recursive structures. See description above (Synth&lowbar;DELAY).
 
249
</para>
 
250
 
 
251
</sect3>
 
252
 
 
253
</sect2>
 
254
 
 
255
<sect2 id="mcat-synth-envelopes">
 
256
<title>Envelopes</title>
 
257
 
 
258
<para>
 
259
</para>
 
260
 
 
261
<sect3 id="mref-synth-envelope-adsr-sect">
 
262
<title>Synth&lowbar;ENVELOPE&lowbar;ADSR</title>
 
263
<anchor id="mref-synth-envelope-adsr" />
 
264
 
 
265
<mediaobject>
 
266
<imageobject><imagedata fileref="images/Synth_ENVELOPE_ADSR.png"
 
267
               format="PNG"/></imageobject>
 
268
<textobject><phrase>Synth&lowbar;ENVELOPE&lowbar;ADSR</phrase></textobject>
 
269
</mediaobject>
 
270
 
 
271
<para>
 
272
This is a classic <acronym>ADSR</acronym> envelope which means you
 
273
specify:
 
274
</para>
 
275
 
 
276
<variablelist>
 
277
<varlistentry>
 
278
<term>active</term>
 
279
<listitem>
 
280
<para>
 
281
Whether the note is being pressed right now by the user.
 
282
</para>
 
283
</listitem>
 
284
</varlistentry>
 
285
 
 
286
<varlistentry>
 
287
<term>invalue</term>
 
288
<listitem>
 
289
<para>
 
290
The input signal.
 
291
</para>
 
292
</listitem>
 
293
</varlistentry>
 
294
 
 
295
<varlistentry>
 
296
<term>attack</term>
 
297
<listitem>
 
298
<para>
 
299
The time that should pass between the user presses the note and the signal
 
300
reaching it's maximum amplitude (in seconds).
 
301
</para>
 
302
</listitem>
 
303
</varlistentry>
 
304
 
 
305
<varlistentry>
 
306
<term>decay</term>
 
307
<listitem>
 
308
<para>
 
309
The time that should pass between the the signal reaching it's maximum
 
310
amplitude and the signal going back to some constant level (in seconds).
 
311
</para>
 
312
</listitem>
 
313
</varlistentry>
 
314
 
 
315
<varlistentry>
 
316
<term>sustain</term>
 
317
<listitem>
 
318
<para>
 
319
The constant level the signal is held at afterwards, until the user
 
320
releases the note.
 
321
</para>
 
322
</listitem>
 
323
</varlistentry>
 
324
 
 
325
<varlistentry>
 
326
<term>release</term>
 
327
<listitem>
 
328
<para>
 
329
The time that should pass after the user has released the note until the
 
330
signal is scaled down to zero (in seconds).
 
331
</para>
 
332
</listitem>
 
333
</varlistentry>
 
334
</variablelist>
 
335
 
 
336
<para>
 
337
You'll get the scaled signal at outvalue. If the <acronym>ASDR</acronym>
 
338
envelope is finished, it will set done to 1. You can use this to provide
 
339
the <quote>done</quote> output of an instrument (which will make the
 
340
instrument structure be deleted by the &MIDI; router object once the
 
341
release phase is over).
 
342
</para>
 
343
 
 
344
</sect3>
 
345
 
 
346
<sect3 id="mref-synth-pscale-sect">
 
347
<title>Synth&lowbar;PSCALE</title>
 
348
<anchor id="mref-synth-pscale" />
 
349
 
 
350
<mediaobject>
 
351
<imageobject><imagedata fileref="images/Synth_PSCALE.png"
 
352
format="PNG"/></imageobject>
 
353
<textobject><phrase>Synth&lowbar;PSCALE</phrase></textobject>
 
354
</mediaobject>
 
355
 
 
356
<para>
 
357
The Synth&lowbar;PSCALE module will scale the audio stream that is
 
358
directed through it from a volume 0 (silent) to 1 (original loudness)
 
359
back to 0 (silent). According to the position (get the position from
 
360
Synth&lowbar;SEQUENCE).  The position where the peak should occur can be
 
361
given as pos.
 
362
</para>
 
363
 
 
364
<para>
 
365
Example: Setting top to 0.1 means that after 10&percnt; of the note has
 
366
been played, the volume has reached its maximum, and starts decaying
 
367
afterwards.
 
368
</para>
 
369
</sect3>
 
370
 
 
371
</sect2>
 
372
 
 
373
<sect2 id="mcat-synth-effects">
 
374
<title>Effects</title>
 
375
 
 
376
<sect3 id="mref-synth-freeverb-sect">
 
377
<title>Synth&lowbar;FREEVERB</title>
 
378
<anchor id="mref-synth-freeverb" />
 
379
 
 
380
<mediaobject>
 
381
<imageobject><imagedata fileref="images/Synth_FREEVERB.png"
 
382
format="PNG"/></imageobject>
 
383
<textobject><phrase>Synth&lowbar;FREEVERB</phrase></textobject>
 
384
</mediaobject>
 
385
 
 
386
<para>
 
387
This is a reverb effect. In the current implementation, it is thought to
 
388
pass a stereo signal through the reverb, and it will -add- it's reverb
 
389
effect to the signal.
 
390
</para>
 
391
 
 
392
<note>
 
393
<para>
 
394
This means that it can be used inside an StereoEffectStack as well.
 
395
</para>
 
396
</note>
 
397
 
 
398
<para>
 
399
The input signal should be connected to (inleft, inright), the output
 
400
signal will be (outleft, outright).
 
401
</para>
 
402
 
 
403
<para>
 
404
The parameters which you can configure are:
 
405
</para>
 
406
 
 
407
<variablelist>
 
408
<varlistentry>
 
409
<term>roomsize</term>
 
410
<listitem>
 
411
<para>
 
412
The size of the room which the reverb simulates (range: 0..1, where 1 is
 
413
the largest possible room).
 
414
</para>
 
415
</listitem>
 
416
</varlistentry>
 
417
 
 
418
<varlistentry>
 
419
<term>damp</term>
 
420
<listitem>
 
421
<para>
 
422
This specifies a filter which will make the simulated room absorb high
 
423
frequencies (range 0..1, where 1 means absorb high frequencies quite
 
424
agressive).
 
425
</para>
 
426
</listitem>
 
427
</varlistentry>
 
428
 
 
429
<varlistentry>
 
430
<term>wet</term>
 
431
<listitem>
 
432
<para>
 
433
The amount of reverb-signal (that is, the amount of the signal that
 
434
should be modified by the filters, resulting in a <quote>wet</quote>,
 
435
that is <quote>reverb sound</quote>.
 
436
</para>
 
437
</listitem>
 
438
</varlistentry>
 
439
 
 
440
<varlistentry>
 
441
<term>dry</term>
 
442
<listitem>
 
443
<para>
 
444
The amount of pure signal passed through, resulting in an echo (or
 
445
combined delay) rather than reverb effect (range: 0..1).
 
446
</para>
 
447
<!-- TODO: do some measurements to show that this documentation -is- correct,
 
448
I am not sure if it is echo, or really pure (non-delayed), or multiple delay
 
449
or whatever -->
 
450
</listitem>
 
451
</varlistentry>
 
452
 
 
453
<varlistentry>
 
454
<term>width</term>
 
455
<listitem>
 
456
<para>
 
457
The amount of stereo-magic the reverb algorithm adds to the reverb
 
458
effect, making the reverb sound wider in the stereo panorama (range:
 
459
0..1).
 
460
</para>
 
461
</listitem>
 
462
</varlistentry>
 
463
 
 
464
<varlistentry>
 
465
<term>mode</term>
 
466
<listitem>
 
467
<para>
 
468
[ TODO: I think if mode is 1, the reverb holds the current image of the
 
469
sound, whereas 0 is normal operation ]
 
470
</para>
 
471
</listitem>
 
472
</varlistentry>
 
473
</variablelist>
 
474
 
 
475
</sect3>
 
476
 
 
477
<sect3 id="mref-synth-tremolo-sect">
 
478
<title>Synth&lowbar;TREMOLO</title>
 
479
<anchor id="mref-synth-tremolo" />
 
480
 
 
481
<mediaobject><imageobject><imagedata fileref="images/Synth_TREMOLO.png"
 
482
format="PNG" /></imageobject>
 
483
<textobject><phrase>Synth&lowbar;TREMOLO</phrase></textobject>
 
484
</mediaobject>
 
485
 
 
486
<para>
 
487
The tremolo module modulates the amplitude according to a
 
488
<acronym>LFO</acronym>-Wave.  Traditionally you would use a sine wave
 
489
but why limit yourself?  What you get is a very intense effect that cuts
 
490
through most arrangements because of its high dynamic range.  The
 
491
tremolo effect is still one of guitarists favourite effects although
 
492
it's not as popular as in the 1960's.
 
493
</para>
 
494
 
 
495
<para>
 
496
[ TODO: currently this is implemented as invalue + abs(inlfo) - maybe it
 
497
would make more sense to implement it as invalue * (1+inlfo*depth),
 
498
where depth would be a parameter between 0..1 - decide this after &kde;2.1
 
499
; if you have a comment, send a mail to the &arts; list ;). ]
 
500
</para>
 
501
 
 
502
</sect3>
 
503
<sect3 id="mref-synth-fx-cflanger-sect">
 
504
<title>Synth&lowbar;FX&lowbar;CFLANGER</title>
 
505
<anchor id="mref-synth-fx-cflanger" />
 
506
 
 
507
<mediaobject><imageobject><imagedata
 
508
fileref="images/Synth_FX_CFLANGER.png" format="PNG" /></imageobject>
 
509
<textobject><phrase>Synth&lowbar;FX&lowbar;CFLANGER</phrase></textobject>
 
510
</mediaobject>
 
511
 
 
512
<para>
 
513
A flanger is a time-varying delay effect. To make development of complex
 
514
flanger effects simpler, this module is provided, which contains the
 
515
core of a one-channel flanger.
 
516
</para>
 
517
 
 
518
<para>It has the following ports:</para>
 
519
 
 
520
<variablelist>
 
521
<varlistentry>
 
522
<term>invalue</term>
 
523
<listitem>
 
524
<para>
 
525
The signal which you want to process.
 
526
</para>
 
527
</listitem>
 
528
</varlistentry>
 
529
 
 
530
<varlistentry>
 
531
<term>lfo</term>
 
532
<listitem>
 
533
<para>
 
534
Preferably a sine wave which modulates the delay time inside the
 
535
flanger (-1 .. 1).
 
536
</para>
 
537
</listitem>
 
538
</varlistentry>
 
539
 
 
540
<varlistentry>
 
541
<term>mintime</term>
 
542
<listitem>
 
543
<para>
 
544
The minimum value for the delay inside the flanger in milliseconds.
 
545
Suggested values: try something like 1 ms. Please use values &lt; 1000
 
546
ms.
 
547
</para>
 
548
</listitem>
 
549
</varlistentry>
 
550
 
 
551
<varlistentry>
 
552
<term>maxtime</term>
 
553
<listitem>
 
554
<para>
 
555
The minimum value for the delay inside the flanger in milliseconds.
 
556
Suggested values: try something like 5 ms. Please use values &lt; 1000
 
557
ms.
 
558
</para>
 
559
</listitem>
 
560
</varlistentry>
 
561
 
 
562
<varlistentry>
 
563
<term>outvalue</term>
 
564
<listitem>
 
565
<para>
 
566
The output signal. It is important that you mix that with the
 
567
original (unflanged) signal to get the desired effect.
 
568
</para>
 
569
</listitem>
 
570
</varlistentry>
 
571
</variablelist>
 
572
 
 
573
<tip>
 
574
<para>
 
575
You can use this as a basis for a chorus effect.
 
576
</para>
 
577
</tip>
 
578
 
 
579
</sect3>
 
580
 
 
581
</sect2>
 
582
 
 
583
<sect2 id="mcat-synth-filters">
 
584
<title>Filters</title>
 
585
 
 
586
<sect3 id="mref-synth-pitch-shift-sect">
 
587
<title>Synth&lowbar;PITCH&lowbar;SHIFT</title>
 
588
<anchor id="mref-synth-pitch-shift" />
 
589
 
 
590
<mediaobject><imageobject><imagedata
 
591
fileref="images/Synth_PITCH_SHIFT.png" format="PNG"/></imageobject>
 
592
<textobject><phrase>Synth&lowbar;PITCH&lowbar;SHIFT</phrase></textobject>
 
593
</mediaobject>
 
594
 
 
595
<para>
 
596
This pitch shifting effect changes the frequency of the input signal
 
597
without affecting the speed. An application for this is for instance
 
598
changing the pitch of your voice while you record (and replay) it in
 
599
realtime.
 
600
</para>
 
601
 
 
602
<para>
 
603
The <emphasis>speed</emphasis> parameter is the relative speed with
 
604
which the signal will be replayed. So a speed of two would make it sound
 
605
twice as high (&ie; an input frequency of 440 Hz would result in an
 
606
output frequency of 880 Hz).
 
607
</para>
 
608
 
 
609
<para>
 
610
The <emphasis>frequency</emphasis> parameter is used internally to
 
611
switch between different grains of the signal. It is tunable, and
 
612
depending on your choice, the pitch shifting will sound more or less
 
613
realistic for your use case. A good value to start with is something
 
614
like 5 or 10.
 
615
</para>
 
616
 
 
617
</sect3>
 
618
 
 
619
<sect3 id="mref-synth-shelve-cutoff-sect">
 
620
<title>Synth&lowbar;SHELVE&lowbar;CUTOFF</title>
 
621
<anchor id="mref-synth-shelve-cutoff" />
 
622
 
 
623
<mediaobject><imageobject><imagedata
 
624
fileref="images/Synth_SHELVE_CUTOFF.png" format="PNG"/></imageobject>
 
625
<textobject><phrase>Synth&lowbar;SHELVE&lowbar;CUTOFF</phrase></textobject>
 
626
</mediaobject>
 
627
 
 
628
<para>
 
629
Filters out all frequencies over the cutoff frequency.
 
630
</para>
 
631
 
 
632
</sect3>
 
633
 
 
634
<sect3 id="mref-synth-brickwall-limiter-sect">
 
635
<title>Synth&lowbar;BRICKWALL&lowbar;LIMITER</title>
 
636
<anchor id="mref-synth-brickwall-limiter" />
 
637
 
 
638
<mediaobject><imageobject><imagedata
 
639
fileref="images/Synth_BRICKWALL_LIMITER.png"
 
640
                            format="PNG"/></imageobject>
 
641
<textobject><phrase>Synth&lowbar;BRICKWALL&lowbar;LIMITER</phrase></textobject>
 
642
</mediaobject>
 
643
 
 
644
<para>
 
645
This modules clips a signal to make it fit into the range of [-1;1]. It
 
646
doesn't do anything to prevent the distortion that happens when clipping
 
647
loud signals. You can use this as effect (for instance to create a
 
648
slightly clipped sine wave). However, it's probably a good idea to run
 
649
the signal through a lowpass filter afterwards if you do so, to make it
 
650
sound less agressive.
 
651
</para>
 
652
</sect3>
 
653
 
 
654
<sect3 id="mref-synth-std-equalizer-sect">
 
655
<title>Synth&lowbar;STD&lowbar;EQUALIZER</title>
 
656
<anchor id="mref-synth-std-equalizer" />
 
657
 
 
658
<mediaobject><imageobject><imagedata
 
659
fileref="images/Synth_STD_EQUALIZER.png" format="PNG" /></imageobject>
 
660
<textobject><phrase>Synth&lowbar;STD&lowbar;EQUALIZER</phrase></textobject>
 
661
</mediaobject>
 
662
 
 
663
<para>
 
664
This is a nice parametric equalizer building block. It's parameters are:
 
665
</para>
 
666
 
 
667
<variablelist>
 
668
<varlistentry>
 
669
<term>invalue, outvalue</term>
 
670
<listitem>
 
671
<para>
 
672
The signal that gets filtered by the equalizer.
 
673
</para>
 
674
</listitem>
 
675
</varlistentry>
 
676
 
 
677
<varlistentry>
 
678
<term>low</term>
 
679
<listitem>
 
680
<para>
 
681
How low frequencies should be changed. The value is in dB, while 0 means
 
682
don't change low frequencies, -6 would mean take them out by 6dB, and +6
 
683
mean boost them by 6dB.
 
684
</para>
 
685
</listitem>
 
686
</varlistentry>
 
687
 
 
688
<varlistentry>
 
689
<term>mid</term>
 
690
<listitem>
 
691
<para>
 
692
How middle frequencies should be changed by the equalizer in dB (see
 
693
low).
 
694
</para>
 
695
</listitem>
 
696
</varlistentry>
 
697
 
 
698
<varlistentry>
 
699
<term>high</term>
 
700
<listitem>
 
701
<para>
 
702
How high frequencies should be changed by the equalizer in dB (see low).
 
703
</para>
 
704
</listitem>
 
705
</varlistentry>
 
706
 
 
707
<varlistentry>
 
708
<term>frequency</term>
 
709
<listitem>
 
710
<para>
 
711
This is the center frequency of the equalizer in Hz, the mid frequencies
 
712
are around that spectrum, the low and high frequencies below and above.
 
713
Note that the frequency may not be higher than half the sampling rate,
 
714
usually that is 22050 Hz, and not lower than 1 Hz.
 
715
</para>
 
716
</listitem>
 
717
</varlistentry>
 
718
 
 
719
<varlistentry>
 
720
<term>q</term>
 
721
<listitem>
 
722
<para>
 
723
This influences how broad the mid spectrum is. It must be be a positive
 
724
number &gt; 0. A value of one is reasonable, higher values of q mean a
 
725
narrower spectrum of middle frequencies. Lower values than one mean a
 
726
broader sprectrum.
 
727
</para>
 
728
</listitem>
 
729
</varlistentry>
 
730
</variablelist>
 
731
 
 
732
</sect3>
 
733
 
 
734
<sect3 id="mref-synth-rc-sect">
 
735
<title>Synth&lowbar;RC</title>
 
736
<anchor id="mref-synth-rc" />
 
737
 
 
738
<mediaobject><imageobject><imagedata fileref="images/Synth_RC.png"
 
739
format="PNG"/></imageobject>
 
740
<textobject><phrase>Synth&lowbar;RC</phrase></textobject>
 
741
</mediaobject>
 
742
 
 
743
<para>
 
744
A damped resonator filter filtering all frequencies around some peak
 
745
value.  There is no useful way of specifying middle frequency (that
 
746
won't be cut), since the input are two strange constants f and b. The
 
747
code is very old, from the first days of the synthesizer, and will
 
748
probably replaced by a new filter which will have a frequency and a
 
749
resonance value as parameters.
 
750
</para>
 
751
 
 
752
<para>
 
753
Try something like b=5, f=5 or b=10, f=10 or b=15, f=15 though.
 
754
</para>
 
755
 
 
756
</sect3>
 
757
 
 
758
<sect3 id="mref-synth-moog-vcf-sect">
 
759
<title>Synth&lowbar;MOOG&lowbar;VCF</title>
 
760
<anchor id="mref-synth-moog-vcf" />
 
761
 
 
762
<mediaobject><imageobject><imagedata fileref="images/Synth_MOOG_VCF.png"
 
763
format="PNG" /></imageobject>
 
764
<textobject><phrase>Synth&lowbar;MOOG&lowbar;VCF</phrase></textobject>
 
765
</mediaobject>
 
766
 
 
767
<para>
 
768
Filters out all frequencies over the cutoff frequency (it's a 24db 4pole
 
769
filter, which filters -24db per octave above the cutoff frequency), but
 
770
offers an additional parameter for tuning the filter resonance, while 0
 
771
means no resonance and 4 means self oscillation.
 
772
</para>
 
773
 
 
774
</sect3>
 
775
 
 
776
</sect2>
 
777
 
 
778
<sect2 id="mcat-synth-midi-sequencing">
 
779
<title>Midi + Sequencing</title>
 
780
 
 
781
<para>
 
782
</para>
 
783
 
 
784
<sect3 id="mref-synth-midi-test-sect">
 
785
<title>Synth&lowbar;MIDI&lowbar;TEST</title>
 
786
<anchor id="mref-synth-midi-test" />
 
787
 
 
788
<mediaobject><imageobject><imagedata fileref="images/Synth_MIDI_TEST.png"
 
789
format="PNG" /></imageobject>
 
790
<textobject><phrase>Synth&lowbar;MIDI&lowbar;TEST</phrase></textobject>
 
791
</mediaobject>
 
792
 
 
793
<para>
 
794
This modules loads an instrument structure from a file, and registers
 
795
itself as midi output with the &arts; &MIDI; manager. Notes sent to this
 
796
output will result in instrument voices being created.
 
797
</para>
 
798
 
 
799
<note>
 
800
<para>
 
801
You can setup something like this more convenient in &artscontrol; than
 
802
manually in &artsbuilder;.
 
803
</para>
 
804
</note>
 
805
 
 
806
</sect3>
 
807
 
 
808
<sect3 id="mref-synth-sequence-sect">
 
809
<title>Synth&lowbar;SEQUENCE</title>
 
810
<anchor id="mref-synth-sequence" />
 
811
 
 
812
<mediaobject><imageobject><imagedata fileref="images/Synth_SEQUENCE.png"
 
813
format="PNG" /></imageobject></mediaobject>
 
814
 
 
815
<para>
 
816
Will play a sequence of notes over and over again. The notes are given
 
817
in tracker notation, and are seperated by semicolons. An example is
 
818
<literal>A-3;C-4;E-4;C-4;</literal>. The speed is given as seconds per
 
819
note, so if you want to get 120 bpm, you will probably specify 0.5
 
820
seconds/note, as 60 seconds/0.5 seconds per note=120 bpm.
 
821
</para>
 
822
 
 
823
<para>
 
824
You can give each note an length relative to the speed by using a colon
 
825
after the note and then then
 
826
length. <literal>A-3:2;C-4:0.5;D-4:0.5;E-4;</literal> demonstrates
 
827
this. As you see, midi composing programs tend to offer more comfort ;)
 
828
</para>
 
829
 
 
830
<para>
 
831
The Synth&lowbar;SEQUENCE gives additional information about the
 
832
position of the note it is playing right now, while 0 means just started
 
833
and 1 means finished. This information you can use with
 
834
Synth&lowbar;PSCALE (see below).
 
835
</para>
 
836
</sect3>
 
837
 
 
838
</sect2>
 
839
 
 
840
<sect2 id="mcat-synth-samples">
 
841
<title>Samples</title>
 
842
 
 
843
<sect3 id="mref-synth-play-wav-sect">
 
844
<title>Synth&lowbar;PLAY&lowbar;WAV</title>
 
845
<anchor id="mref-synth-play-wav" />
 
846
 
 
847
<mediaobject>
 
848
<imageobject><imagedata fileref="images/Synth_PLAY_WAV.png"
 
849
format="PNG"/></imageobject>
 
850
<textobject><phrase>Synth&lowbar;PLAY&lowbar;WAV</phrase></textobject>
 
851
</mediaobject>
 
852
 
 
853
<para>
 
854
This will play a <literal role="extension">wav</literal> file. It will
 
855
only be present if you have libaudiofile on your computer. The wave file
 
856
will start as soon as the module gets created. 
 
857
</para>
 
858
 
 
859
<para>
 
860
It will stop as soon as it's over, then finished will be set to 1. The
 
861
speed parameter can be used to replay the file faster or slower, where
 
862
1.0 is the normal (recorded) speed.
 
863
</para>
 
864
<!-- TODO: KDE2.2: check that this really works together in instruments with
 
865
the done parameter things ;) -->
 
866
</sect3>
 
867
 
 
868
</sect2>
 
869
 
 
870
<sect2 id="mcat-synth-soundio">
 
871
<title>Sound IO</title>
 
872
 
 
873
<sect3 id="mref-synth-play-sect">
 
874
<title>Synth&lowbar;PLAY</title>
 
875
<anchor id="mref-synth-play" />
 
876
 
 
877
<mediaobject>
 
878
<imageobject><imagedata fileref="images/Synth_PLAY.png"
 
879
format="PNG"/></imageobject>
 
880
<textobject><phrase>Synth&lowbar;PLAY</phrase></textobject>
 
881
</mediaobject>
 
882
 
 
883
<important>
 
884
<para>
 
885
You will normally not need this module, unless you are writing
 
886
standalone applications. Inside &artsd;, there normally is already a
 
887
Synth&lowbar;PLAY module, and creating another one will not work.
 
888
</para>
 
889
</important>
 
890
 
 
891
<para>
 
892
The Synth&lowbar;PLAY-module will output your audio signal to the
 
893
soundcard. The left and right channels should contain the
 
894
<emphasis>normalized</emphasis> input for the channels.  If your input
 
895
is not between -1 and 1, you get clipping.
 
896
</para>
 
897
 
 
898
<para>
 
899
As already mentioned, there may only be one Synth&lowbar;PLAY module
 
900
used, as this one directly accesses your soundcard. Use busses if you
 
901
want to mix more than one audio stream together before playing. Use the
 
902
Synth&lowbar;AMAN&lowbar;PLAY module to get something like an output
 
903
inside &artsd;.
 
904
</para>
 
905
 
 
906
<para>
 
907
Note that Synth&lowbar;PLAY also does the timing of the whole
 
908
structure. This means: no Synth&lowbar;PLAY = no source for timing = no
 
909
sound. So you absolutely need (exactly) one Synth&lowbar;PLAY object.
 
910
</para>
 
911
 
 
912
</sect3>
 
913
 
 
914
<sect3 id="mref-synth-record-sect">
 
915
<title>Synth&lowbar;RECORD</title>
 
916
<anchor id="mref-synth-record" />
 
917
 
 
918
<mediaobject><imageobject><imagedata fileref="images/Synth_RECORD.png"
 
919
format="PNG"/></imageobject>
 
920
<textobject><phrase>Synth&lowbar;RECORD</phrase></textobject>
 
921
</mediaobject>
 
922
 
 
923
<important>
 
924
<para>You will normally not need this module, unless you are writing
 
925
standalone applications. Inside artsd, there normally is already a
 
926
Synth&lowbar;RECORD module, and creating another one will not work.
 
927
</para>
 
928
</important>
 
929
 
 
930
<para>
 
931
The Synth&lowbar;RECORD-module will record a signal from the soundcard.
 
932
The left and right channels will contain the input for the channels
 
933
(between -1 and 1).
 
934
</para>
 
935
 
 
936
<para>
 
937
As already mentioned, there may only be one Synth&lowbar;RECORD module
 
938
used, as this one directly accesses your soundcard. Use busses if you
 
939
want to use the recorded audio stream in more than one place. Use the
 
940
Synth&lowbar;AMAN&lowbar;RECORD module to get something like an input
 
941
inside artsd. For this to work, &artsd; must run <emphasis>with full
 
942
duplex enabled </emphasis>.
 
943
</para>
 
944
</sect3>
 
945
 
 
946
<sect3 id="mref-synth-aman-play-sect">
 
947
<title>Synth&lowbar;AMAN&lowbar;PLAY</title>
 
948
<anchor id="mref-synth-aman-play" />
 
949
 
 
950
<mediaobject><imageobject><imagedata fileref="images/Synth_AMAN_PLAY.png"
 
951
format="PNG"/></imageobject>
 
952
<textobject><phrase>Synth&lowbar;AMAN&lowbar;PLAY</phrase></textobject>
 
953
</mediaobject>
 
954
 
 
955
<para>
 
956
The Synth&lowbar;AMAN&lowbar;PLAY-module will output your audio signal.
 
957
It is nice (but not necessary) if you output a normalized signal
 
958
(between -1 and 1).
 
959
</para>
 
960
 
 
961
<para>
 
962
This module will use the audio manager to assign where the signal will
 
963
be played. The audio manager can be controlled through &artscontrol;. To
 
964
make it more intuitive to use, it is good to give the signal you play a
 
965
name. This can be achieved through setting
 
966
<emphasis>title</emphasis>. Another feature of the audio manager is to
 
967
be able to remember where you played a signal the last time. To do so it
 
968
needs to be able to distinguish signals. That is why you should assign
 
969
something unique to <emphasis>autoRestoreID</emphasis>, too.
 
970
</para>
 
971
</sect3>
 
972
 
 
973
<sect3 id="mref-synth-aman-record-sect">
 
974
<title>Synth&lowbar;AMAN&lowbar;RECORD</title>
 
975
<anchor id="mref-synth-aman-record" />
 
976
 
 
977
<mediaobject><imageobject><imagedata
 
978
fileref="images/Synth_AMAN_RECORD.png" format="PNG"/></imageobject>
 
979
<textobject><phrase>Synth&lowbar;AMAN&lowbar;RECORD</phrase></textobject>
 
980
</mediaobject>
 
981
 
 
982
<para>
 
983
The Synth&lowbar;AMAN&lowbar;RECORD-module will record an audio signal
 
984
from an external source (&ie;. line in/microphone) within &artsd;. The
 
985
output will be a normalized signal (between -1 and 1).
 
986
</para>
 
987
 
 
988
<para>
 
989
This module will use the audio manager to assign where the signal will
 
990
be played. The audio manager can be controlled through artscontrol. To
 
991
make it more intuitive to use, it is good to give the signal you record
 
992
a name. This can be achieved through setting
 
993
<emphasis>title</emphasis>. Another feature of the audio manager is to
 
994
be able to remember where you recorded a signal the last time. To do so
 
995
it needs to be able to distinguish signals. That is why you should
 
996
assign something unique to <emphasis>autoRestoreID</emphasis>, too.
 
997
</para>
 
998
</sect3>
 
999
 
 
1000
<sect3 id="mref-synth-capture-sect">
 
1001
<title>Synth&lowbar;CAPTURE</title>
 
1002
<anchor id="mref-synth-capture" />
 
1003
 
 
1004
<mediaobject><imageobject><imagedata fileref="images/Synth_CAPTURE.png"
 
1005
format="PNG" /></imageobject>
 
1006
<textobject><phrase>Synth&lowbar;CAPTURE</phrase></textobject>
 
1007
</mediaobject>
 
1008
 
 
1009
<para>
 
1010
The Synth&lowbar;CAPTURE-module will write an audio signal to a wave
 
1011
file on your hard disc. The file will always be called
 
1012
<filename>/tmp/mcop-<replaceable>usename</replaceable>/capture.wav</filename>
 
1013
</para>
 
1014
</sect3>
 
1015
 
 
1016
</sect2>
 
1017
 
 
1018
<sect2 id="mcat-synth-tests">
 
1019
<title>Tests</title>
 
1020
 
 
1021
<sect3 id="mref-synth-nil-sect">
 
1022
<title>Synth&lowbar;NIL</title>
 
1023
<anchor id="mref-synth-nil" />
 
1024
 
 
1025
<mediaobject><imageobject><imagedata fileref="images/Synth_NIL.png"
 
1026
format="PNG" /></imageobject>
 
1027
<textobject><phrase>Synth&lowbar;NIL</phrase></textobject>
 
1028
</mediaobject>
 
1029
 
 
1030
<para>
 
1031
This just does nothing. It is only useful for test situations.
 
1032
</para>
 
1033
 
 
1034
</sect3>
 
1035
 
 
1036
<sect3 id="mref-synth-debug-sect">
 
1037
<title>Synth&lowbar;DEBUG</title>
 
1038
<anchor id="mref-synth-debug" />
 
1039
 
 
1040
<mediaobject><imageobject><imagedata fileref="images/Synth_DEBUG.png"
 
1041
format="PNG" /></imageobject>
 
1042
<textobject><phrase>Synth&lowbar;DEBUG</phrase></textobject>
 
1043
</mediaobject>
 
1044
 
 
1045
<para>
 
1046
You can use this for debugging. It will print out the value of the
 
1047
signal at invalue in regular intervals (ca. 1 second), combined with the
 
1048
comment you have specified. That way you can find out if some signals
 
1049
stay in certain ranges, or if they are there at all.
 
1050
</para>
 
1051
</sect3>
 
1052
 
 
1053
<sect3 id="mref-synth-midi-debug-sect">
 
1054
<title>Synth&lowbar;MIDI&lowbar;DEBUG</title>
 
1055
<anchor id="mref-synth-midi-debug" />
 
1056
 
 
1057
<mediaobject><imageobject><imagedata fileref="images/Synth_MIDI_DEBUG.png"
 
1058
format="PNG" /></imageobject>
 
1059
<textobject><phrase>Synth&lowbar;MIDI&lowbar;DEBUG</phrase></textobject>
 
1060
</mediaobject>
 
1061
 
 
1062
<para>
 
1063
You can use this to debug how your &MIDI; events are actually arriving
 
1064
in &arts;.
 
1065
</para>
 
1066
 
 
1067
<para>
 
1068
When a MIDI&lowbar;DEBUG is running &artsserver; will print out a lines
 
1069
like:
 
1070
</para>
 
1071
 
 
1072
<screen><computeroutput>201 100753.837585 on 0 42 127</computeroutput></screen>
 
1073
 
 
1074
<screen><computeroutput>202 101323.128355 off 0 42</computeroutput></screen>
 
1075
 
 
1076
<para>
 
1077
While the first line would be telling you that 100753ms (that is 100
 
1078
seconds) after the MIDI&lowbar;DEBUG started, a &MIDI; on event arrived
 
1079
on channel 0. This midi on event had the velocity (volume) of 127, the
 
1080
loudest possible. The next line shows the midi release event. [ TODO:
 
1081
this does not work currently, make it work, and do it via &MIDI; manager
 
1082
].
 
1083
</para>
 
1084
</sect3>
 
1085
 
 
1086
<sect3 id="mref-synth-data-sect">
 
1087
<title>Synth&lowbar;DATA</title>
 
1088
<anchor id="mref-synth-data" />
 
1089
 
 
1090
<mediaobject><imageobject><imagedata fileref="images/Synth_DATA.png"
 
1091
format="PNG" /></imageobject>
 
1092
<textobject><phrase>Synth&lowbar;DATA</phrase></textobject>
 
1093
</mediaobject>
 
1094
 
 
1095
<para>
 
1096
This creates a signal with a constant number. 
 
1097
</para>
 
1098
<!-- TODO: this doesn't really belong in test, does it? -->
 
1099
</sect3>
 
1100
</sect2>
 
1101
 
 
1102
<sect2 id="mcat-synth-osc-mod">
 
1103
<title>Oscillation &amp; Modulation</title>
 
1104
 
 
1105
<sect3 id="mref-synth-frequency-sect">
 
1106
<title>Synth&lowbar;FREQUENCY</title>
 
1107
<anchor id="mref-synth-frequency" />
 
1108
 
 
1109
<mediaobject><imageobject><imagedata fileref="images/Synth_FREQUENCY.png"
 
1110
format="PNG" /></imageobject>
 
1111
<textobject><phrase>Synth&lowbar;FREQUENCY</phrase></textobject>
 
1112
</mediaobject>
 
1113
 
 
1114
<para>
 
1115
All oscillators in &arts; don't require a frequency as input, but a
 
1116
position in the wave. The position should be between 0 and 1, which maps
 
1117
for a standard Synth&lowbar;WAVE&lowbar;SIN object to the range
 
1118
0..2*pi. To generate oscillating values from a frequency, a
 
1119
Synth&lowbar;FREQUENCY modules is used.
 
1120
</para>
 
1121
</sect3>
 
1122
 
 
1123
<sect3 id="mref-synth-fm-source-sect">
 
1124
<title>Synth&lowbar;FM&lowbar;SOURCE</title>
 
1125
<anchor id="mref-synth-fm-source" />
 
1126
 
 
1127
<mediaobject><imageobject><imagedata fileref="images/Synth_FM_SOURCE.png"
 
1128
format="PNG" /></imageobject>
 
1129
<textobject><phrase>Synth&lowbar;FM&lowbar;SOURCE</phrase></textobject>
 
1130
</mediaobject>
 
1131
 
 
1132
<para>
 
1133
This is used for frequency modulation. Put your frequency to the
 
1134
frequency input and put another signal on the modulator input. Then set
 
1135
modlevel to something, say 0.3. The frequency will be modulated with
 
1136
modulator then.  Just try it. Works nice when you put a feedback in
 
1137
there, that means take a combination of the delayed output signal from
 
1138
the Synth&lowbar;FM&lowbar;SOURCE (you need to put it to some oscillator
 
1139
as it only takes the role of Synth&lowbar;FREQUENCY) and some other
 
1140
signal to get good results.
 
1141
</para>
 
1142
 
 
1143
<para>
 
1144
Works nicely in combination with Synth&lowbar;WAVE&lowbar;SIN
 
1145
oscillators.
 
1146
</para>
 
1147
</sect3>
 
1148
 
 
1149
</sect2>
 
1150
 
 
1151
<sect2 id="mcat-synth-waveforms">
 
1152
<title>Wave Forms</title>
 
1153
 
 
1154
<sect3 id="mref-synth-wave-sin-sect">
 
1155
<title>Synth&lowbar;WAVE&lowbar;SIN</title>
 
1156
<anchor id="mref-synth-wave-sin" />
 
1157
 
 
1158
<mediaobject><imageobject><imagedata fileref="images/Synth_WAVE_SIN.png"
 
1159
format="PNG" /></imageobject>
 
1160
<textobject><phrase>Synth&lowbar;WAVE&lowbar;SIN</phrase></textobject>
 
1161
</mediaobject>
 
1162
 
 
1163
<para>
 
1164
Sinus oscillator. Put a pos signal from Synth&lowbar;FREQUENCY or
 
1165
Synth&lowbar;FM&lowbar;SOURCE at the input. And get a sinus wave as
 
1166
output. The pos signal specifies the position in the wave, the range
 
1167
0..1 is mapped to 0..2*pi internally.
 
1168
</para>
 
1169
 
 
1170
</sect3>
 
1171
 
 
1172
<sect3 id="mref-synth-wave-tri-sect">
 
1173
<title>Synth&lowbar;WAVE&lowbar;TRI</title>
 
1174
<anchor id="mref-synth-wave-tri" />
 
1175
 
 
1176
<mediaobject><imageobject><imagedata fileref="images/Synth_WAVE_TRI.png"
 
1177
format="PNG" /></imageobject>
 
1178
<textobject><phrase>Synth&lowbar;WAVE&lowbar;TRI</phrase></textobject>
 
1179
</mediaobject>
 
1180
 
 
1181
<para>
 
1182
Triangle oscillator. Put a pos signal from Synth&lowbar;FREQUENCY or
 
1183
Synth&lowbar;FM&lowbar;SOURCE at the input. And get a triangle wave as
 
1184
output. The pos signal specifies the position in the wave, the range
 
1185
0..1 is mapped to 0..2*pi internally. Be careful. The input signal
 
1186
<emphasis>must</emphasis> be in the range 0..1 for the output signal to
 
1187
produce good results.
 
1188
</para>
 
1189
</sect3>
 
1190
 
 
1191
<sect3 id="mref-synth-noise-sect">
 
1192
<title>Synth&lowbar;NOISE</title>
 
1193
<anchor id="mref-synth-noise" />
 
1194
 
 
1195
<mediaobject><imageobject><imagedata fileref="images/Synth_NOISE.png"
 
1196
format="PNG" /></imageobject>
 
1197
<textobject><phrase>Synth&lowbar;NOISE</phrase></textobject>
 
1198
</mediaobject>
 
1199
 
 
1200
<para>
 
1201
Noise generator. This generates a random signal between -1 and 1.
 
1202
</para>
 
1203
 
 
1204
</sect3>
 
1205
 
 
1206
<sect3 id="mref-synth-wave-square-sect">
 
1207
<title>Synth&lowbar;WAVE&lowbar;SQUARE</title>
 
1208
<anchor id="mref-synth-wave-square" />
 
1209
 
 
1210
<mediaobject><imageobject><imagedata
 
1211
fileref="images/Synth_WAVE_SQUARE.png" format="PNG" /></imageobject>
 
1212
<textobject><phrase>Synth&lowbar;WAVE&lowbar;SQUARE</phrase></textobject>
 
1213
</mediaobject>
 
1214
 
 
1215
<para>
 
1216
Square oscillator. Put a pos signal from Synth&lowbar;FREQUENCY or
 
1217
Synth&lowbar;FM&lowbar;SOURCE at the input. And get a square wave as
 
1218
output. The pos signal specifies the position in the wave, the range
 
1219
0..1 is mapped to 0..2*pi internally. Be careful. The input signal
 
1220
<emphasis>must</emphasis> be in the range 0..1 for the output signal to
 
1221
produce good results.
 
1222
</para>
 
1223
</sect3>
 
1224
 
 
1225
<sect3 id="mref-synth-wave-softsaw-sect">
 
1226
<title>Synth&lowbar;WAVE&lowbar;SOFTSAW</title>
 
1227
<anchor id="mref-synth-wave-softsaw" />
 
1228
 
 
1229
<mediaobject><imageobject><imagedata
 
1230
fileref="images/Synth_WAVE_SOFTSAW.png" format="PNG" /></imageobject>
 
1231
<textobject><phrase>Synth&lowbar;WAVE&lowbar;SOFTSAW</phrase></textobject>
 
1232
</mediaobject>
 
1233
 
 
1234
<para>
 
1235
Softened saw wave, similar in look like the Synth&lowbar;WAVE&lowbar;TRI
 
1236
oscillator.  Put a pos signal from Synth&lowbar;FREQUENCY or
 
1237
Synth&lowbar;FM&lowbar;SOURCE at the input. You'll get a softened saw
 
1238
wave as output. The pos signal specifies the position in the wave, the
 
1239
range 0..1 is mapped to 0..2*pi internally. Be careful. The input signal
 
1240
<emphasis>must</emphasis> be in the range 0..1 for the output signal to
 
1241
produce good results.
 
1242
</para>
 
1243
</sect3>
 
1244
 
 
1245
<sect3 id="mref-synth-wave-pulse-sect">
 
1246
<title>Synth&lowbar;WAVE&lowbar;PULSE</title>
 
1247
<anchor id="mref-synth-wave-pulse" />
 
1248
 
 
1249
<mediaobject><imageobject><imagedata fileref="images/Synth_WAVE_PULSE.png"
 
1250
format="PNG" /></imageobject>
 
1251
<textobject><phrase>Synth&lowbar;WAVE&lowbar;PULSE</phrase></textobject>
 
1252
</mediaobject>
 
1253
 
 
1254
<para>
 
1255
Pulse oscillator - this module is similar in spirit like the rectangular
 
1256
oscillator (Synth_WAVE_RECT), but it provides a configurable up/down
 
1257
ratio, through the <emphasis>dutycycle</emphasis> parameter. Put a pos
 
1258
signal from Synth&lowbar;FREQUENCY or Synth&lowbar;FM&lowbar;SOURCE at
 
1259
the input. Get a pulse wave as output. The pos signal specifies the
 
1260
position in the wave, the range 0..1 is mapped to 0..2*pi internally. Be
 
1261
careful. The input signal <emphasis>must</emphasis> be in the range 0..1
 
1262
for the output signal to produce good results.
 
1263
</para>
 
1264
</sect3>
 
1265
</sect2>
 
1266
</sect1>
 
1267
 
 
1268
<sect1 id="visual-modules-reference">
 
1269
<title>Visual Modules Reference</title>
 
1270
 
 
1271
<para>
 
1272
TODO when visual modules are more "finished".
 
1273
</para>
 
1274
</sect1>
 
1275
 
 
1276
</chapter>