-
Notifications
You must be signed in to change notification settings - Fork 7
/
geometer.html
395 lines (314 loc) · 12.1 KB
/
geometer.html
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
<!doctype html>
<head>
<title>Destroy FX: Geometer</title>
<link rel="Stylesheet" type="text/css" href="dfx-docs.css" />
<meta name="AppleTitle" content="Geometer Help" />
</head>
<body style="background-color: #175310">
<table class="mainbox">
<tr><td>
<h1 class="title">Geometer</h1>
<p class="declaration">
From the Destroy FX Labs!
<br />
<a href="http:https://destroyfx.org">http:https://destroyfx.org</a>
</p>
<p class="label">
-- Geometer: Introduction --
</p>
<p class="intro">
Geometer is a visually-oriented waveform geometry plugin. It
lets you redraw your sound in many different ways.
</p>
<p class="intro">
Geometer has a built in help system, where mousing over the
various options will bring up explanatory text at the bottom
of the plugin. I recommend using that instead of this help
text, but it would be a good idea to read the "basic operation"
section that follows before jumping in.
</p>
<br />
<p class="label">-- Geometer: Basic Operation --</p>
<p class="desc">
The basic operation of Geometer is as follows:
</p>
<p class="desc">
Step 1. Generate some 'landmarks' or 'points' on the waveform.
This is just a list of (x,y) coordinates. The parameter called
"how to generate landmarks" and the slider below it control how
this happens; the various methods will be described later.
</p>
<p class="desc">
Step 2. Do up to three operations on these lists of landmarks.
These are controlled by the three buttons next to "how to mess
them up" and the three sliders below them.
</p>
<p class="desc">
Step 3. Recreate the waveform using the points. This can also
be accomplished in many ways, controlled by the "how to
recreate the waveform" button and the slider above it.
</p>
<p class="desc">
The other main thing to know about Geometer is that it processes
sound using windows. Basically this means that overlapping
segments of the input are processed and then the ends are
mixed together (cross-faded) to avoid discontinuities at the
edges that can cause clicks. You can adjust the size of this
window and the way that windows are cross-faded by using the
"window size" and "window shape" buttons. The size of the window
is measured in samples.
</p>
<p class="desc">
At the top of the plugin there's a box that shows what's
happening to your sound. The dark green line is the input
sound. The purple dots are the landmarks, and the light yellow
line is the output waveform. This display uses the input sound
as a source, but also operates when the plugin is stopped.
</p>
<p class="desc">
The sliders are labelled with a very short description of what
they do for the current effect. If it says "????" then the slider
does nothing.
</p>
<p class="desc">
Geometer comes with a load of presets meant to show you how
it can be used. Of course, some of these will sound bad if used
on the wrong kind of input signal, so if it's not interesting,
try it on a different sound.
</p>
<p class="desc">
Most of all, experiment!
</p>
<br />
<p class="label">-- Geometer: Generating Landmarks --</p>
<p class="desc">
Here are the different ways to generate landmarks:
</p>
<p class="desc">
ext 'n cross: This detects zero-crossings (when the waveform
crosses the x-axis) and extremities (highest and lowest points
between zero crossings) and places points at those. Sometimes
you want to avoid making points on low-volume noise; adjusting
the slider changes what range of values is considered "zero".
Ext 'n Cross is a good all-around point generator.
</p>
<p class="desc">
at freq: This generates points on the waveform at the given
frequency. The frequency display is unrelated to normal measures
(i.e. hertz) and is dependent on the window size, so you'll just
have to use your eyes and ears. Because the x values of points
generated by 'at freq' don't depend on the input waveform at all,
some regeneration styles (especially 'sing') are crummy when
fed with 'at freq' points.
</p>
<p class="desc">
random: This places points randomly on the waveform. The slider
controls how many points are placed. Using 'random' to generate
points will almost always result in noisy output. This is
partially because different random points will be chosen when
the waveform is processed in separate overlapping windows.
</p>
<p class="desc">
span: Generates a point, and then generates the next point
a distance away that's determined by the height of that point.
The slider affects how much the height influences the distance.
Span is especially good with waveforms that have highly dynamic
characteristics, like drums.
</p>
<p class="desc">
dy/dx: Generates a point whenever the derivative (difference
between the last and previous samples) is bigger than the amount
indicated. The center of the slider is 0, where practically
every point meets the criteria. dy/dx is also excellent for
dynamic waveforms like drums and guitar strumming.
</p>
<p class="desc">
level: Generates a point whenever the waveform crosses a level
(specified by the slider) both above and below the origin.
</p>
<br />
<p class="label">-- Geometer: Point Operations --</p>
<p class="desc">
none: If the op shows as an empty green square, then the
points are left alone.
</p>
<p class="desc">
x2: Doubles the number of points by placing a point between
each adjacent pair. The height of the new points is
determined unscientifically by its neighbors and the slider.
Sometimes there's no room for points, and those are simply
left out.
</p>
<p class="desc">
1/2, 1/4: These thin the number of points by a factor of 1/2
and 1/4. The slider doesn't do anything.
</p>
<p class="desc">
longpass: If the point isn't a certain minimum distance from
the previous point, it's dropped. The distance is controlled
by the slider. Longpass is extremely useful for making sure
that there are no really short intervals (which typically
become high frequency noise), especially when used with
the waveform recreation option 'sing'.
</p>
<p class="desc">
shortpass: If the point is more than a maximum distance from
the previous point, its height is set to zero. Not quite as
useful as longpass, but who knows?
</p>
<p class="desc">
slow: This spreads out the points by the factor set by the
slider. Some points fall off the end of the window and are
discarded. Depending on the window size and size of intervals,
this effect can result in a pitch change or a sort of
stuttering effect
(<a href="http:https://destroyfx.org/docs/bufferoverride.html">dfx
Buffer Override</a>).
</p>
<p class="desc">
fast: This compresses the points along the x-axis, repeating
from the beginning when it runs out. The amount of compression
and repetition is controlled by the slider. Like slow, this
can either change the pitch of the sound or make it stutter.
</p>
<br />
<p class="label">-- Geometer: Recreating the Waveform --</p>
<p class="desc">
An "interval" is the space between adjacent pairs of landmarks.
When the space is referred to as an interval, it usually doesn't
matter what the height values of the endpoints are.
</p>
<p class="desc">
polygon: Draws straight lines between the points. Since the
points become corners, this introduces some high frequencies,
however, in general this is like a lowpass filter. The slider
controls the slope of the lines; throw it all the way to the
right to get a square wave.
</p>
<p class="desc">
wrongygon: Like polygon, but the lines are drawn the wrong way.
This has huge discontinuities and is much harsher than polygon,
but can be 'dimmed' with the slider in the same way.
</p>
<p class="desc">
smoothie: Uses smooth curves to interpolate between points.
This results in a nice smooth lowpass. Turning the slider
changes the exponent of the curve, which changes its shape
dramatically.
</p>
<p class="desc">
reversi: Reverses the contents (from the original wave) of each
interval. This can create bizarre phasing artifacts with some
window sizes. Try it with a low frequency of points on a large
window with singing for input, for instance. (The preset
'atonal singing' is a good example of this. Run it on some
vocals and play with the frequency parameter...)
The slider doesn't do anything.
</p>
<p class="desc">
pulse: Each point gets a little pulse, and the rest of the wave
is empty. The slider controls the width of the pulses, and
overlapping pulses do funny stuff. Generally a digitally harsh
lo-fi sound.
</p>
<p class="desc">
friends: Stretches the original wave in each interval to
overlap and mix with the next interval (its 'friend'). This
can give the impression of lowered pitch (if the points are
spaced evenly) or do all sorts of other weird stuff. Try
with large but unevenly spaced points for a
<a href="http:https://destroyfx.org/docs/scrubby.html">dfx Scrubby</a>
sort of effect.
</p>
<p class="desc">
sing: This replaces each interval with one period of a sine
wave. I suggest feeding it with something like 'span' or
'dy/dx' on dynamic input like drums. Also, 'longpass' can be
used to reduce the noisiness of the output. Watch out, this
setting is loud! If you move the slider to the left, then the
sine wave is used for amplitude modulation instead, resulting
in a totally different sound. (For this one, feeding with
'at freq' might not be so silly...)
</p>
<p class="desc">
shuffle: This swaps around intervals randomly. The slider
controls how far intervals can travel. Sounds best with
large intervals and window sizes.
</p>
<br />
<p class="label">-- Geometer : Parameter Adjustment Tricks --</p>
<p class="desc">
You can make fine adjustments by holding the shift key while adjusting
a parameter with your mouse. You can also reset a parameter to its
default value by holding the command ⌘ key (control on
Windows) when clicking on it. And you can flip through button values
in reverse order by option-clicking (alt-clicking on Windows).
</p>
<br />
<p class="label">-- Geometer : Trouble --</p>
<p class="desc">
When using really large window sizes (like 2<sup>12</sup> or bigger),
Geometer's processing might occur less frequently than the rate at
which the host processes audio buffers. This can cause an uneven
processing load (spikes) that might max out your CPU. Use a smaller
window size if you have this problem.
</p>
<br />
<p class="label">-- Geometer : Info --</p>
<p class="desc">
Geometer was mostly made by Tom 7, though Sophia did most of the
painful GUI, MIDI learn, and chunk code. She also offered valuable
suggestions and debugging help. (Thanks Sophia!)
</p>
<p class="desc">
'span' was suggested by Bram of <a href="http:https://smartelectronix.com">Smartelectronix</a>.
<br />
'friends' was invented when Jason Reed misunderstood what I meant by windowing.
<br />
'some other effect' will be invented by you! Suggest away!
</p>
<br />
<p class="desc">
You can use this plugin for free in your songs or live
performances without paying us anything. You can even share
it with your friends (though we prefer that you send them
directly to our home page, link below!) or change the
source code to make it do things differently. However, we
ask that you do the following:
</p>
<p class="desc">
<ul>
<li> Let us know if you use the plugin in a song (use the message board below)
<li>Consider making a donation at:
<a href="http:https://destroyfx.org/donate.html">http:https://destroyfx.org/donate.html</a>
</ul>
</p>
<br />
<p class="desc">
If you have comments or suggestions for additions to be made
to Geometer, why not leave them on our message board?
</p>
<p class="desc">
<a href="http:https://msg.spacebar.org/f/a/s/msg/disp/10">
http:https://msg.spacebar.org/f/a/s/msg/disp/10
</a>
</p>
<br />
<br />
<p class="footer">
Geometer is Copyright © 2002-2021 Tom Murphy 7 and Sophia Poirier
<br />
Super Destroy FX: <a href="http:https://destroyfx.org">http:https://destroyfx.org</a>
<br />
<br />
This software comes with absolutely no warranty, express or implied.
<br />
Use at your own risk. See the file <a href="COPYING.html">COPYING</a> for full license terms.
</p>
<p class="footer_fineprint">
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the file <a href="fdl.html">fdl.html</a>.
</p>
</td></tr>
</table>
</body>
</html>