Documentation for "StirMark for Audio" v0.3

author: Andreas Lang

If you have an older version as described in this documentation, please download the newest release!

Since Version 0.3 the library libsndfile version 1.x.x is required!

Table Of Contents:




This table shows you all evaluation processes and a short description.

top

Evaluation Name Description
AddBrummAdds buzz or sinus tone to the sound.
AddDynNoiseHere are added a dynamic white noise part to the samples.
AddFFTNoiseAdds white noise to the samples in the FFT room.
AddNoiseAdds white noise to the samples. The unity is in sample values. The value "0" adds nothing and "32768" the absolute distorted maximum.
AddSinusAdds a sinus signal to the sound file. With it, you can insert a disturb signal in the frequency band where the watermark is located.
AmplifyChanges the loudness of the audio file. For example the value "100" does not change the amplify and a value "50" means a half loudness.
BassBoostIncreses the bass of the sound file. It is like the BassBoost function on some amplifiers.
CompressorThis works like a compressor. You can increase or decrease the loudness of quietly passages. The unit of the threshold is decibel (dB).if the value is less than "1", the compressor is an expander and will increase the loudness.
CopySampleIs like FlippSample but this evaluation process copies the samples between the samples.
CutSamplesRemoves samples from the audio file. If the value of "Remove" is "10000" then there are removed every "10000" samples "RemoveNumber" samples periodical.
EchoAdds an echo to the sound file.
ExchangeSwaps two sequent samples for all samples
ExtraStereoIncreases the stereo part of the file. If the file does not have a stereo part (expl. mono), then it does not have an effect
FFT_HLPassQuickIs like the RC-High- and RC-LowPass, but now in FFT room.
FFT_InvertInverts all samples (real and imaginary part) in the FFT room.
FFT_RealReverseReverses only the real part from the FFT.
FFT_Stat1Statistical evaluation in FFT room
FFT_TestI will do some tests it....
FlippSampleSwaps samples inside the sound file periodically. It swaps every "Period" "FlippCount" samples with samples which have a distance of "FlippDist".
Important: Period > FlipDist > FlipCount!
InvertInverts all samples in the audiofile.
LSBZeroSets all least significant bit's (LSB) to "0" (zero).
NormalizeNormalize the amplify to the maximum value.
NothingThis process does nothing with the audio file. The watermark should be retrieved. If not, the watermarking algorithm can be a snake oil!
PitchScale Makes a pitch scale
RC-HighPass Simulates a high pass filter build with a resistance (R) and a capacitor (C).
RC-LowPass Simulates a low pass filter like RC-HighPass.
ResamplingChanges the sample rate of the sound file.
SmoothThis smooth the samples. The setting sample value depends on the samples before and after the modify point.
Smooth2Is like Smooth, but the neighbor samples are voted a little bit different.
Stat1Statistical 1 ..... :-)
Stat2Statistical 2 ..... :-)
VoiceRemoveIs the opposite to ExtraStereo. This removes the mono part of the file (mostly where the voice is). If the file do not have a stereo part (expl. only mono) then everything will be removed.
ZeroCrossThis is like a limiter. If the sample value is less the given value (threshold), all samples are set to zero.
ZeroLengthIf a sample value is exactly "0" (zero) then it inserts more samples with the value "0" (zero).
ZeroRemoveThis removes all samples where the value is "0" (zero).





This table shows you the signal after special evaluation processes.

top

The evaluation processes are used with very high parameters to hear what is changed. If you use normal parameters, then you should not hear a difference between the original and modified/evaluated file.
Evaluation namechanges
original
invert
exchange
normalize
resampling
zerocross
zerolegth
zerocremove
addbrumm




This command line parameters are possible:

top

usage: stirmarkaudio -i <inputfile> -w <outputfile> [option(s) [...]]

   parameter    Description
-h, -H, -?help screen
-ldescribtion of all evaluation processes
-vbe verbose
-qquite (don't print other messages)
-i <filename>set the name of the input file
-w <filename>write the evaluated files to the output file
-aruns with all possible evaluations and with all default values
-rruns the evaluation processes recursive in parameter order to get a pipe.

This are the parameters to run speacial evaluation processes:

parameterrequired argument(s)type of parameter
-AddBrumm<AddBrumm> <AddBrummFreq>AddBrumm: the strength of the modification in samplevalues [0-32768]
AddBrummFreq: the buzz frequency [Hz]
-AddDynNoise<Dynnoise>the strength of the evaluation [0-100]
-AddFFTNoise<FFTSIZE> <FFTNoise>FFTSIZE: FFT window size
FFTNoise: strength [0-999999] :-)
-AddNoise<Noisep>strength [0-10000]
-AddSinus<AddSinusFreq> <AddSinusAmp>AddSinusFreq: sinus frequency [Hz]
AddSinusAmp: strength [0-32768]
-Amplify<Amplify>value of new amplify. [0-99999] :-) 50 means half loudness and 200 double
-BassBoost<Frequency> <DB>Frequency: threshold for the BassBoost in Hz
DB: is the incresaing factor in DB
-Compressor<ThresholdDB> <CompressValue>Threshold: threshold for compressor [dB]
CompressValue: value of compression or expansion
-CopySample<Period> <FlippDist> <FlippCount> Period > FlipDist > FlipCount [0-9999] :-)
-CutSamples<Remove> <RemoveNumber>Remove > RemoveNumber [0-99999] :-)
-Echo<Period>simple echo distance [0-100]
-Exchange  
-ExtraStereo<ExtraStereo>strength [10-100]
-FFT_HLPassQuick<FFTSIZE> <HighPassFreq> <LowPassFreq>FFTSIZE: FFT window size
HighPassFreq: high pass frenquency [Hz]
LowPassFreq: low pass frequency [Hz]
-FFT_Invert<FFTSIZE>size of FFT window
-FFT_RealReverse<FFTSIZE>size of FFT window
-FFT_Stat1  
-FFT_Test<FFTSIZE>size of FFT window
-FlippSample<Period> <FlippCount> <FlippDist> Period > FlipDist > FlipCount [0-9999] :-)
-Invert  
-LSBZero  
-Normalize  
-Nothing  
-PitchScale<FFTSize> <ScaleFactor> <Windowing>FFTSize: FFT window size
ScaleFactor: Scaling Factor (1.0) nothing, 1.001 makes higher
Windowing: Window for Scaling (e.g. 32)
-RC-HighPass<HighPassFreq>high pass frequency [Hz]
-RC-LowPass<LowPassFreq>low pass frequency [Hz]
-Resampling<SampleRate>new sample rate
-Smooth  
-Smooth2  
-Stat1  
-Stat2  
-VoiceRemove  
-ZeroCross<ZeroCross>threshold to set the samples to o (zero) [0-32768]
-ZeroLength<ZeroLength>number of 0 (zeros) which are insert [0-99999] :-)
-ZeroRemove  


Here are some examples :

top

./stirmarkaudio
Does not realy run the program. Missing are the input-, outputfile and the parameters for the evaluation.

./stirmarkaudio -i /sounds/music.wav -w /sounds/results/erg.wav -a
Runs all evaluation processes by using default settings. The input file, which is under attack is here called "music.wav" and the modified output files are saved in the folder /sounds/results and each file begins with erg (e.g. erg_noise.wav).

./stirmarkaudio -i /sounds/music.wav -w /sounds/results/erg.au -Amplify 50 -Invert -LSBZero
Use the input file "input.wav" and writes 3 output files (erg_amplify_1.wav, erg_invert_1.wav, erg_lsbzero_1.wav). One file has a changed amplify an other is inverted and the third has set all LSB to zero.

./stirmarkaudio -r -i /sounds/music.wav -w /sounds/results/erg.wav -Amplify 50 -Invert -LSBZero
Use the input file "input.wav" and writes 1 output file (erg_Amplify_Invert_LSZzero.wav). The output file is modified with 3 differnet types. Firstly the amplify is changed, secondly it is inverted and then are sets all LSB to zero.

I will be glad if you found a bug and you send me an email. When you have a question you can contact me too.

printer friendly version of the documentation

Andreas Lang
Last modified: Sun Aug 24 18:21:01 CEST 2003