emmef.org |
---|
DenoizeMet dit programma kan op analoog-achtige wijze ruis uit opnames worden verwijderd. Het verschil is natuurlijk dat je de ruisonderdrukking in heel veel frequentiebanden kunt uitvoeren en gebruik kunt maken van faseloze en niet-causale (in dit geval Linkwitz-Riley-) filters. Hierdoor wordt een "mooie" onderdrukking verkregen die niet de artifacten van veel op FFT gebaseerde methodes vertonen. Ten koste van ietwat meer CPU en geheugen maar ach. Het is vervat in een Java programma (helaas met een native library voor het lezen van de audiobestanden), zie de synopsis onderaan. Zodra ik het inlezen van audiobestanden op orde heb, zal ik de source-code vrijgeven. Denoize samplesDe gebruikte opnamen zijn afkomstig van cassette bandjes. Zonder analoge ruisonderdrukking, want de artifacten die daar uitkomen zijn erg moeilijk te verhelpen. Zo heeft Dolby B een "glijdend" high-pass filter, maar de precieze frequencties, en de niveaus's die worden gehanteerd, evenals de attck en release times, staan niet in het patent. Helaas geldt ook hetzelfde voor dbx, want het zou natuurlijk fantastisch zijn om eerst de ruis weg te halen en dan pas een dbx toe te passen, zodat je geen pompen en zuchten heb, maar wel alle dynamiek. Enfin. We leven niet in het paradijs. De tapes zijn niet altijd goed behandeld geweest.Soms is er domweg een stuk weg omdat iemand per ongeluk toch de record knop heeft ingedrukt op die plek. Sommige nummers zijn (kennelijk) iets te hard opgenomen, waardoor veelvervorming in de lage frequenties optreedt en modulatie in de hogere. Ook zitten er wat drop-outs in af en toe en als het bandje vaak gespoeld is op een track kan er wel eens wat wow en.of flutter inzitten. En dan natuurlijk de bekende voor- en na-echo. Enfin: er zijn beperkingen aan het medium cassette. Toch valt de uiteindelijke kwaliteit over het geheel erg mee. Na het verwijderen van ruis blijkt er vaak ongelooflijk veel detail in zo'n oude opname te zitten die normaal door de ruis overstemd wordt. Zo heb ik dus wat oude opnamen kunnen redden die niet meer op CD, LP of internet te krijgen zijn. Toch nog wat goeds gedaan! De artiestenKazumi Watanabe is een Japanse Jazz gitarist. Teruo Nakamura is een bassist die met een aantal bekende Amerikaanse muzikanten een aantal aardige nummers heeft opgenomen. De Slickaphonics is een geval apart. De zanger is een trombonist met een zeer vreemde stem. De teksten zijn humoristisch. De opname van George Benson is van de radio (Boeren hofstede Jazz avond, Tros radio ergens in de jaren 70, opgenomen door de cassette speler in zo'n Philips combinatie. Het bandje heeft alles meegemaakt wat het niet mee had willen maken. Het nummer van Al Jarreau stond ooit op een cassette van de LP "Jarreau", maar is vreemd genoeg nooit meer op latere releases (inclusief CD) verschenen. Ik had alleen nog een kopie van een kopie, die ook nog eens via een verkeerde dolby is afgespeeld. En ik weet niet eens of de titel correct is. Emmef, dat ben ik. Met een vrolijk intermezzo (mooie dub-dub-tape echo en bijbehorende ruis) over de wereld die vergaat. Het programmaDe synopsis staat onderaan de pagina :-) Voor het lezen van audiobesanden gebruik ik nu nog een native library. Binnekort ga ik IFF bestanden ondersteunen in Java. De bestanden
USAGE: NoiseRemover inputFile outputDirectory [-n -M Maximum S/N ratio [-m Minimum S/N ratio] [-rw RMS measurement window size] [-nw Noise measurement window size] [-sw Dropout measurement window size] [-ss Skip seconds from start] [-se Skip seconds from end] [-tm Noise measurement times...] [-ta Noise reduction attack time(s)...] [-tr Noise reduction release time(s)...] [-i Irregular noise measurement modus] ] [-E -t Expansion threshold [-r Expansion factor]] [-S -f Subtracttion factor (dB) [-r Subtract ratio]] [-c Frequency... [-o Integer] [-d direction] [-p Predefined set of crossovers]] SYNOPSIS: Options and description inputFile (File) (required) Existing readable file An existing audio input file. outputDirectory (File) (required) Existing writable directory An existing Output directory, to which outp files will be written. -n|--noise-measurement Describes how noise is measured -M|--max-snratio-db (required) Maximum S/N ratio (Integer) DEFAULTS [75] RESTRICTED[40, 120] Maximum S/N ratio The S/N ratio in dB, relative to the maximum measured RMS value. Signal levels below this level are not taken into account for measuring noise levels. See also --skip-rms-window. -m|--min-snratio-db Minimum S/N ratio (Integer) DEFAULTS [30] RESTRICTED[20, 80] Minimum S/N ratio The S/N ratio in dB, relative to the maximum measured RMS value -rw|--rms-window RMS measurement window size (Double) DEFAULTS [0.05] RESTRICTED[0.01, 0.1] Window size for maximum RMS measurement The window size (in seconds) -nw|--noise-rms-window Noise measurement window size (Double) DEFAULTS [0.3] RESTRICTED[0.05, 5.0] Window size for noise measurement The window size in seconds. The noise level is determined by seeking a window of this size, with the minimum RMS value. -sw|--skip-rms-window Dropout measurement window size (Double) DEFAULTS [0.2] RESTRICTED[0.01, 1.0] The RMS window size to determine dropouts Window size (in seconds). If an area of this size drops below the maximum RMS/ratio, it is considered a dropout and will not be taken into account for noise measuring. -ss|--skip-from-start Skip seconds from start (Double) DEFAULTS [0.1] RESTRICTED[0.0, 60.0] Skip seconds from start for noise measurement. Seconds to wait before starting noise measurement -se|--skip-from-end Skip seconds from end (Double) DEFAULTS [0.1] RESTRICTED[0.0, 60.0] Skip seconds from end for noise measurement. Seconds from the end of the song, to stop noise measurement -tm|--times-noise-measurement Noise measurement times (Double)... DEFAULTS [0.025, 0.075] RESTRICTED[0.001, 0.2] Noise measurement time(s) These are the windows in seconds that are used to detect the sound level when reducing noise. The largest value is used for the lowest frequency, while the smallest is used for the highest frequency. If only one value is defined, this will be the time used for all frequency bands. -ta|--times-attack Noise reduction attack time(s) (Double)... DEFAULTS [0.0015, 0.01] RESTRICTED[5.0E-4, 0.1] Noise reduction attack time(s) This is the attack time in seconds of the amplifier. The amplifier follows the level as detected in the --times-noise-measurement with an attack (rising level) and release (sinking level) to ensure smooth transition. The largest value is used for the lowest frequency, while the smallest is used for the highest frequency. If only one value is defined, this will be the time used for all frequency bands. -tr|--times-release Noise reduction release time(s) (Double)... DEFAULTS [0.075, 0.2] RESTRICTED[0.002, 0.4] Noise reduction release time(s) This is the release time in seconds of the amplifier. The amplifier follows the level as detected in the --times-noise-measurement with an attack (rising level) and release (sinking level) to ensure smooth transition. The largest value is used for the lowest frequency, while the smallest is used for the highest frequency. If only one value is defined, this will be the time used for all frequency bands. -i|--irregular-noise Irregular noise measurement modus (Integer) DEFAULTS [3] RESTRICTED[0, 4] Irregular noise level measurement. The noise level is measured with a relatively large RMS window, to ensure an accurate measurement. However, Some battered media have a very irregular noise level, which would cause wispering just above the measured noise level. To prevent this, parts where we measure the determined noise level, with the large window, will be analyzed further with a maximum measurement over a smaller window. Modus: 0 means no extra measurement 1 take the window size of the RMS measurement (--noise-rms-window) 2 take the window size of the noise measurement (--times-noise-measurement) 3 take whichever of (1) and (2) is smaller 4 take arithmic average of (1) and (2) -E|--expansion-noise-reduction Parameters for noise reduction, based on expansion -t|--threshold (required) Expansion threshold (Integer) DEFAULTS [6] RESTRICTED[0, 24] Expansion threshold Below this level in dB, expansion kicks in with the --expand-ratio. Above this level, there is no change in dynamics whatsoever -r|--expand-ratio Expansion factor (Double) DEFAULTS [2.0] RESTRICTED[1.25, 4.0] Expansion factor An expansion factor of 1.0 means no expansion at al (linear). The output level for signal below the threshold, is calculated as follows: db_out = db_in(below threshold) * --expand-ratio. -S|--subtractive-noise-reduction Parameters for noise reduction, based on subtraction -f|--subtraction-factor (required) Subtracttion factor (dB) (Double) DEFAULTS [0.0] RESTRICTED[-20.0, 20.0] Subtraction factor (dB) The ouput level is the input level minus the noise level times the subtraction factor. Below the noise level times the subtraction factor, there is no output at all. -r|--subtract-ratio Subtract ratio (Double) DEFAULTS [0.25] RESTRICTED[0.0, 0.9] Subtract ratio The subtraction factor can grow, based on the ratio between the signal level and the signal level. In this way, a smoother transition between reduction and no reduction is done, but sound me be a little numbed. -c|--crossovers Crossover properties Frequency (Double)... (required) RESTRICTED[20.0, 16000.0] Crossover frequency/frequencies in Hz. The number of frequency bands is always 1 more than the nuber of crossovers. -o|--filter-order Integer DEFAULTS [4] RESTRICTED[1, 4] Filter order Filter order. The filter will be applied twice to create zero-phase resonse, so the actual order is twice as high -d|--direction direction (String) DEFAULTS [down] Direction of crossover filtering The direction indictaes in which direction the crossovers will be evaluated. Down means that the highest crossover will be filtered first. -p|--preset Predefined set of crossovers (String) DEFAULTS [dnl] Crossover preset frequency sets There are a few prestes for crossover frquencies: dnl the original dynamic noise limiter by Philips, had one cut off at 4500 Hz tertz from about 70 to 11000 Hz, all in tertz |
Date Created: Wo May 26 2010 20:34 |