Skip to content
William R edited this page Oct 17, 2017 · 3 revisions

Java Wave Cleaner

This is a software similar to gwc (Gtk Wave Cleaner) maintained by AlisterH. There are some differences in the philosophy and not based on the same language.

Here the main points:

  • This software is JAVA (not C/C++) due to portability facilities. Once a JRE (Java Runtime Environment) is installed, you can start the attached JAR file by double-clicking on it. This should work everywhere. Then I expect good results both on Mac and PC.
  • The software has no coupling between the display and the processing but still in sync based on message communication. This ensure the display is refresh as soon as possible with the respect of the CPU of the machine (I try to keep the refresh below 20 milliseonds).
  • The software can display the original data or the final data (wave or frequency).
  • The software is real-time (I assume the CPU can handle the cleaning process at the speed of reading the audio). In case, the CPU is not enough powerful, I'll try to add "buffering".
  • The original file must be a STEREO file (with 2 channels) in a WAV or AIFF file with at least a sample of 48k.
  • The original file is NEVER overwritten (this is the "source").
  • TODO The final file (or the final ones in case of multiple tracks) is saved when the user is satisfied about the work done on the source. The final file could be saved in MP3 if it is possible (depends of Java's libraries).
  • TODO We create one project for one "source". The project contains a reference to the original file (the "source") and all the parameters used for creating the "mastered" file (the file cleaned).
  • TODO You can applay several filters. Each of them are run in cascade (first removing the hum, then decrakling, and so one).

Some of these capabilities are in the TODO list:

  • TODO The "source" must be divided in tracks (at least one track). A track is a unique song (or a movement in a symphony). This is to remove the "start" and "end"
  • TODO A record facility will be given. The record ensures the creation of the "source". Currently, the recording must be done by Audacity.
  • TODO The original file (the "source") is expected to be correctly sampled. But to help on Shellac records (78 rpm), it will be possible to record at 33rpm and to do oversampling to obtain the correct speed (from 76 to 82 rpm, see history of 78 rpm recordings).
  • TODO A selector will be available to inform the software if the speed of the record (33 rpm, 45 prm or ~78 rpm), the size of the disc (17cm, 25cm or 30cm), the style of the record (classic, rock, electronic) and if it is monaural or stereo. This information will help to improve the filters.

Recording (TODO)

The recording is made by clicking the "RECORD" button. The recording must starts when the stylus is "up" and should run for about one minute. This will give the "white noise" of the turntable (the "WHITE_NOISE" part). After this part, the stylus is landing to the vinyle then is skating on the disc for some time (usually less than one second) before the stylus finds the groove.

When the stylus is in the groove, we have the White Noise and the vinyle noise together. Then afterone or two seconds, the song starts. Depending of the start, the "start" of the track could be not found automatically, and the user will adjust it.

At the end of the recording, the user has to give the number of tracks of the disc and give a label to them. There is no way to indicate the A side and the B side of a disc. We consider the sides like independant recordings.

NOTE: due to the constant circular speed, the noise reduction could have to be adapted to reflect the move in frequency of the sound noise. I expect (to be proven first!) the noise has lower frequencies at the end due to limited speed. Usually, the engineers try to record quiet song at this part of the disc.

Filtering (TODO)

The filtering is the fact of putting filters together. Each filter has a dedicated task (usually, we have decrackling, declicking and noise reduction).

Each filter gives the resulting of its filtering to the next filter. Each filter has a "visual component" to fix the values to use. This is important for giving the user a direct feedback of any change on the filter.

TODO: due to some big differences between 2 tracks of the same disc, it could be interesting to have diffrent filters based on the track itself.

Controller (TODO)

The controller is a very special filter, because it doesn't have effect during the final recording. This is a selector to check the resulting filters. basically, the capabilities of the controller are:

  • TODO Adjust the volume (usually add sound) to be at the correct volume for the user (very basic).
  • TODO Select the "final" or the "source" listening (swapping to one to the other gives a good idea of the changes made).
  • TODO Having the final sound (mixed monaural) in the left side and the "source" sound (mixed as monaural) on the right.
  • TODO Having the difference between the final and the source (to check we do not remove music but only noise).
Clone this wiki locally