This file is indexed.

/usr/share/doc/gtk-wave-cleaner/gtk-wave-cleaner.html is in gwc 0.22.01-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.2-2 i686) [Netscape]">
</head>
<body>
<font size=+3>Using Gtk Wave Cleaner to record and clean up your old vinyl music</font>
<br>
<hr WIDTH="100%">

<h2> An <i>important</i>  note on GWC editing </h2>
GWC commits all changes to the original
file instantly, and saves the deltas needed for undo to get back to the original,
so on exit all your changes are already saved.  When you exit (or open a new file) GWC will
notify you that changes have been made, and give you the chance to undo them all.

<h1>Creating your wavfiles</h1>
<ul>
<li>
<em>CLEAN YOUR RECORD AS WELL AS POSSIBLE!!</em>&nbsp; The safest method is to
use distilled water, and spray it on with a perfectly clean spray bottle.&nbsp;
Let it sit for a few minutes and then wipe it off with clean, soft, pure
cotton cloth. Don't do this on the turntable itself, lay the record on
a soft cloth on top of a firm flat surface.&nbsp; Any lint that
gets on the record from the cloth will come off easily with your regular
record duster that you will apply while the record is on the turntable
and spinning.&nbsp; There are plenty of places on the internet that have
suggestions for how to clean LPs.&nbsp; The other thing to try is to play
the LP once before you copy it to disk, the action of the needle in the
groove may be able to dislodge more remaining particles.</li>
</ul>

<ul>

<li>
Make sure you stop any programs or processes which use a lot of cpu or memory, 
or intensive disk access !!
<br>Otherwise your recording software may fail to record some parts of the audio,
without telling you there has been a problem !!
</li>
</ul>

<ul>

<li>
Record your track(s).  I now use a tool like brec for OSS and arec for ALSA, and
record a number of tracks (i.e. one entire side of an LP) at once.  
Because GWC can handle extremely large audio
files, it is more convenient to work with one single file.
With cdrdao you can even burn CDs using only one audio file for all the tracks.

Be sure to get some "silent" audio
at the start of each recording, this information is used by GWC to assess the
background noise level for noise elimination.</li>
</ul>

<ul>
<li>
If you try to open a wav file created by software such as a recent ffmpeg, GWC will produce an error like this: "Failed to open /root/whistle.wav, 'Error : Cannot open file in read/write mode due to string data in header.'".  Libsndfile does not support RDWR mode for these files - one workaround is to open and save the file in mhwaveedit. Or if you are creating the files using ffmpeg try adding "-flags bitexact" into your command line (although this will reduce ffmpeg's performance), or writing to a different libsndfile supported format such as au or aiff.
</li>
</ul>

<h1>Selecting audio</h1>
<ul>
<li>To select sections of audio for GWC to operate on you click and drag in the displayed audio waveform. </li>
<p><li>Start dragging anywhere between the centers of the left and right channels to select both channels, or start dragging
above or below this region to select just one channel.</li>
<li>If you do not make a selection GWC will operate on all the audio in the current view, but note that <b>if you have clicked in the top or bottom quarter of the waveform it will only operate on the left or right channel</b>.</li>
<p><li>Use <b>edit markers</b> to help you navigate and select sections of audio.  There are 200 markers available.  
You set them by using the "B" and "E" keys, and clear them using the "Markers>Clear markers" menu item.
"B" toggles the first marker at the <em>start</em> of the currently selected region.  "E" toggles the second
marker at the <em>end</em> of the currently selected region. </li>
<p><li>When you select a region within 10 pixels of either an <b>edit marker</b> or a <b>song marker</b>, it will "snap" to
that marker.  This allows you to zoom in to a portion of the audio data, set a marker, zoom and pan to another
portion, set another marker, and then zoom back out and select the region between the markers -- giving you
a fine level of control on the precision of the selected region.</li>
<p><li> You may also press the 'm' key, to automatically select the region between edit markers.  A button and icon are
in the works...</li>
</ul>
</ul>

<h1>Unselecting audio</h1>
<ul>
<li>To clear the selection click in the displayed audio waveform without dragging.  Any subsequent cleaning operations will be applied to all the audio in the current view, but note that <b>if you click anywhere between the centers of the left and right channels any subsequent cleaning operations will be applied to both channels; if you click above or below this area they will be applied to only the left or right channel.</b> 
</ul>
</ul>

<h1>Steps to restore audio quality</h1>
<ul>
<li><h2>Denoise<h2></li>

<ul>
<li>
Select a sample region which is entirely free of music.</li>
<p><li> If you have a "clean" LP, (i.e. almost no crackle in the "silent" region)
you may use the declicker in the silent region to remove a few clicks,
but make sure the result doesn't sound goofy.</li>

<p><li> Press the sample noise button (the one with the eyedropper). </li>

<p><li>If you do not have a good noise sample and cannot splice one in from another 
recording you can use <b>Generate pink noise</b> to overwrite a selected region 
with pink and or white noise, which is a good approximation for hiss.  You can 
then use this for your noise sample.</li>

<p><li>
Now select and 
test denoising on a couple of different areas on the audio file, just to
be sure it works.&nbsp; Take the defaults of:</li>

<ul>FFT Size=4096
<br>reduction=0.5
<br>smoothness=11
<br>number of samples=16
<br>gamma=0.95
<br>Windowing Function=Hanning-overlap-add
<br>Noise Suppresion Method=Lorber & Hoeldrich
</ul>


<p><li>
Try denoising a few seconds at the start of the track (include some of the pre-track
noise section to see how well the denoise algorithm works on pure noise). Play the
denoised region, see if you like it.  <em>Now do an Edit->Undo (Ctrl-Z)</em>
<br><br> Repeat the above process at the end of the track and somewhere in the middle.
This gives you a good idea of how the noise sample at the start of the track will
work as an estimate of the actual noise at the middle and end of the track.
<br><br>If you find the result sounds "metallic" or "burbly", back off on the reduction
amount, remember to use Edit->Undo (Ctrl-Z).  You can also try varying the gamma
factor.  I have found if it gets too close to 1.0, it can distort the final
sound a little.  Anything between 0.5 and 0.99 is probably worth trying.
<p>
</li>
<li> When you are satisfied you have the settings you want, go for the gold and
select the entire track and denoise the whole thing.  In most cases the defaults
given above will work quite well, so don't think this is hard, it's really easy!
At this point you may skip saving the undo data, which for most songs is tens of megabytes and will take
some time to save.
</li>
</ul>
</ul>

<p>
<ul>
<li><h2>Declicking</h2></li>
<ul>

<p>
<li>There are 3 levels of declicking:</li>
<ol>
<li>  Declick-strong - searches for and repairs the loudest clicks. </li>
<p><li>  Declick-weak - searches for and repairs weaker clicks. </li>
<p><li>  Declick-manual - If both of the above methods failed to repair a click, you
      can zoom in on the click by listening, highlighting, zooming in on the selection
      as described above.  Then, making sure you have only the damaged portion of the
      audio data selected (in most cases this will be less than 100 samples), push this
      button, and it repairs the highlighted selection (or current view) -- don't use on
      more than about 200 samples! </li>
</ol>

<p><li>In general you should start with Declick-strong, followed by Declick-weak, and use Declick-manual as a last resort.</li>

<p><li>
The highest quality declicking is done "manually".&nbsp; I have had cases where
automatic declicking has a "false positive", and inadvertently degrades the signal in a few
places.&nbsp; I do manual declicking by either going to spectrogram view (View>Spectral View),
and looking for spikes which show up as bright lines, or just listening and highlighting an area around
where I hear the click.  There is no better click detector than your ears!
I have found for a window which is 600 pixels wide, about 22050 samples (about 1/2
second at the 44100 Hz sample rate, which is CD quality...)
displayed in the spectrogram view works quite well.</li>

<p><li>
There is an optional FFT click detector implemented now.  The settings are the dB above
average that the click amplitude must be in order to be marked and or fixed.
Humans generally can detect a 3 dB change, so that's the default level for weak
click detection.  While the FFT click detector appears to work better than the old click detector, it is
only based on some limited observations of mine, and it is MUCH SLOWER.</li>

<p><li>
<b><i>&lt;HINT> - use the spacebar
to start and stop playback!!! <br>left hand on
spacebar, right hand on mouse - very efficient. <br>You can get a good
idea where the click is by watching where the cursor is when you hear
the click&lt;/HINT></li>
<p><li>
<em> If you hit the "s" key during playback, GWC will stop
the playback and highlight the last 1/2 second of audio played</em>
</i></b></li>

</ul>

</ul>
</ul>
</li>
<p>
<ul>
<li>
<h2>Decrackling</h2></li>
<ul>
<p><li>Recordings from very dirty or damaged vinyl may have 
thousands of small "clicks" per second, which sounds like bacon frying. 
First try to remove this with the decrackling algorithm.  Use the default 
settings in preferences. </li>

<p><li>
Decrackling will also attenuate the high frequencies somewhat.  </li>

<p><li>
If decrackling fails, I have sometimes had success by repeatedly 
applying the "remove strong clicks" filter over an area until the reported
repairs is zero.</li>
</ul>
</ul>

<ul>
<li>
<h2>Estimating</h2> Sometimes, there are large sections in the audio (200 to 8000
samples) that are just bad.  It may sound like a "thunk" or a dropout.
The estimation repair looks at the frequencies to the left and right of the
selection (or current view), and blends those frequencies across the repair
area.  The result will be better than what was there to begin with,
as of version 0.20-08 this works quite well, but remember, UNDO is your friend!
</li>
</ul>

<ul>
<li><h2>Finishing up</h2>

<ul>
<p><li>
You may want to look at the reverb and DSP filters if the audio needs
a little bit of "presence". Reverb uses the <a href="http://tap-plugins.sourceforge.net/reverbed.html">TAP Reverb</a> 
software to apply reverberation. For this application, I recommend your wet levels be very small, 
try -30 Db for wet, -1 Db for Dry, and 1500 ms with the "Ambience (Thick) - HD" Reverb setting. 
TODO: explain DSP Frequency Filters
</li>
</ul>

<ul>
<p><li>
Eliminate blank portions at start and end of track -- highlight the area
at the start of the track and use the scissors icon to indicate you want
that deleted, do the same for the end of the track.&nbsp; You can't eliminate
sections in the middle of the track.&nbsp; Umm, I haven't tested what would
happen if you tried, it could be bad.  Always back up your data :-)</li>
</ul>

<ul>
<p><li>
You can use the functions in the File menu to split your wav file into 
separate tracks, export a selection as wav, ogg or mp3, or create a TOC file
to use with cdrdao (Do an internet search for more info on that great program).</li>
</ul>

<ul>
<p><li>
For TOC files and splitting you must insert song markers to identify the songs -
"Markers>Detect songs" can usually do this automatically.</li>
</ul>

<ul>
<p><li>
Exit. -- GWC will ask if you really want to save your changes.
</li>
</ul>

<ul>
<p><li>
I wrote a little utility -- wavlist, which will list the *.wav files and
append the time in minutes:sec to the list so you can use it with something
like gcover to create jewel case covers.</li>
</ul>
</ul>


<hr>
<h1>Changing keyboard shortcuts:</h1>
<ul>
<p>Most keyboard shortcuts (i.e. not the hard-coded ones listed below) can be changed if this is enabled in your gtk configuration - refer to the included gtkrc-example.txt for this and other useful options.
<p>The shortcut keys are saved to ~/.config/gtk-wave-cleaner/accels
</ul>

<hr>
<h1>Keyboard shortcuts for hidden features:</h1>
<ul>
<li>spacebar - start and stop playback</li>
<li>'a' - Create or append "cdrdao.toc", with the currently selected (or viewed) audio segment</li>
<li>'u' - increase the scale on audio display</li>
<li>'d' - decrease the scale on audio display</li>
<li>'r' - reset the scale on audio display to 1.0</li>
<li>'s' - stop playback, and automatically highlight last 1/2 second of audio played</li>
<li>TODO: there are more hidden away in gwc.c, but we should give them all menu entries so the shortcuts are user configurable</li>
</ul>

<hr>
<h1>Settings</h1>
    <ul><li><b>Declick</b>
	<ul>
	<li><b>Weak Declick Sensitivity</b> -
	    Set this to something greater than 1 (1.5 is the largest you should try) to detect
	    even weaker clicks (but you will get more "false positives"), set it lower to detect a little bit stronger clicks.
	</li><li><b>Strong Declick Sensitivity</b> - 
	    This takes the value 0.75 by default.  Lower values will only detect stronger
	    clicks, higher values will detect weaker clicks.
	<li><b>FFT Weak Declick Sensitivity</b> -
	    Set this to something greater than 2 to detect
	    even weaker clicks (but you will get more "false positives"), set it higher to detect a little bit stronger clicks.
	</li><li><b>FFT Strong Declick Sensitivity</b> - 
	    This takes the value 5 by default.  Lower values will only detect stronger clicks, higher values will detect weaker clicks.
	</li><li><b>Use FFT click detector</b> - 
	    Check this box to use FFT click detection.  It appears to generate fewer false positives and fewer false negatives,
	    based on <em>limited</em> testing.
	</li>
	</li><li><b>Iterate in repair clicks until all repaired</b> - 
	    The click detection algorithm compares each candidate click against the overall sound profile in the general region
	    of the candidate click.  If the click "looks" a lot like the other sound energy (for example a cymbal crash contains
	    a lot of the same frequencies as a click), then the candidate is ignored.  But, sometimes a stronger click may mask
	    out a weaker click because of this comparison process.  So, this option causes the click detector to run on a region
	    of the audio after any click is repaired, to re-check for more possible clicks in the absence of those clicks that were
	    repaired. <em>The iterate function does not yet work for FFT click detection/removal</em>
	</li>
	</ul></b>
    </li><li><b>Decrackle</b> - 
	<ul><li><b>Decrackle level</b> - 
	</li><li><b>Decrackling window</b> - 
	</li><li><b>Decrackling average window</b> - 
	</li></ul></b>
    </li><li><b>Denoise</b>
	<ul><li><b>FFT_SIZE</b> - 
	    You have to think about this standing on your head.  (Took me a while at least). 
	    Since the samples are say, 1/44100 of a second apart, the highest frequency detectable by the FFT
	    will <em>always</em> be 1/22050 of a second, regardless of the fft window size.  A larger and larger
	    fft window size allows you to detect lower and lower frequencies, and to get more of an "averaging"
	    effect of the higher frequencies which are present in the fft window.
	</li><li><b>Reduction</b> - 
	    The amount of noise you want removed from the audio, as a proportion.  If you use 1.0, then all noise is removed, but
	    unfortunately you get nasty artifacts in the resulting audio, it may get burbly or metallic sounding.  In general,
	    you should set this value as <em>low</em> as possible (0.3 for Blackman window, 0.5 for others), and test a few spots
	    in the audio file (remembering to "undo" each test!!!).
	</li><li><b>Smoothness</b> - 
	    For the Blackman window, it determines how the windowing function "steps along" the audio file.  In general, this
	    should be set between 5 and 11, usually just leave this at 11
	</li><li><b># noise samples</b> - 
	    The denoise algorithm sub-samples the audio data you marked for "sampling".  Because noise varies from one millisecond
	    to the next, GWC will take many sub-samples and take the "average" noise signature from those sub-samples.  You should
	    usually just leave this at 16.  Don't worry if the (number of noise samples)*FFT_SIZE is greater than the sample area,
	    GWC will just overlap the sub-samples.
	</li><li><b>gamma</b> - 
	    The Ephraim-Malah and Lorber-Hoeldrich noise reduction algorithms attempt to reduce the metallic sounding artifact
	    in denoising by holding the noise removal process very constant from one window frame to the next.  Gamma is
	    the parameter that controls this, if you set it to 0, you essentially get Weiner noise reduction on every frame,
	    set it close to 1, and you get some weird sounding stuff.  Setting it in the range of 0.5 to 0.95 usually is pretty good.
	    Play around with this and the reduction amount if you have that metallic sound after denoising.
	</li><li><b>Windowing Function</b>
	    NEED SOME PICTURES HERE <br>
	    <ul><li><b>Blackman</b> - Try this second
	    </li><li><b>Hybrid Blackman-Full Pass</b> - Fastest, may work well for relatively "clean" audio files with only a little hiss.
	    </li><li><b>Hanning-overlap-add</b> - Usually, this is the one you want.
	    </li></ul></b>
	</li><li><b>Noise Suppression Method</b>
	    <ul><li><b>Weiner</b> - A little better than Power Spectral Subtraction.
	    </li><li><b>Power Spectral Subtraction</b> - Crudest.
	    </li><li><b>Ephram-Malah 1984</b> - Pretty darn good.
	    </li><li><b>Lorber & Hoeldrich</b> - Large improvement over Ephram-Malah.
	    </li></ul></b>
	</li></ul></b>
    </li><li><b>MP3 settings</b>
	<ul><li><b>A bunch 'o settings here</b> - 
	</li></ul></b>
    </li><li><b>OGG settings</b>
	<ul><li><b>A bunch 'o settings here</b> - 
	</li></ul></b>
    </li><li><b>Miscellaneous</b>
	<ul><li><b>Seconds of audio preselected when "s" key is struck</b> - 
	</li><li><b>Seconds of audio preselected when "F7" key is struck</b> - 
	</li><li><b>Normalize values for declick, denoise?</b> - 
	    The normalize option asks libsndfile to normalize the audio data on the interval -1.0 to 1.0,
	    it appears to make no difference, and is really only there for testing.
	    Set to 1 for normalization, 0 for non-normalized data. 
	</li><li><b>Silence estimate in seconds for marking songs</b> - 
	</li><li><b>Log frequency in spectrogram</b> - 
	</li></ul></b>
    </li></ul></b>
</li></ul>
</body>
</html>