/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> The safest method is to
use distilled water, and spray it on with a perfectly clean spray bottle.
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. 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. There are plenty of places on the internet that have
suggestions for how to clean LPs. 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. 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". I have had cases where
automatic declicking has a "false positive", and inadvertently degrades the signal in a few
places. 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><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</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. You can't eliminate
sections in the middle of the track. 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>
|