File: index.tex

package info (click to toggle)
libaudiomask 1.0-3
  • links: PTS
  • area: main
  • in suites: bullseye, buster, sid, stretch
  • size: 17,668 kB
  • ctags: 636
  • sloc: cpp: 787; perl: 108; makefile: 67
file content (49 lines) | stat: -rw-r--r-- 2,482 bytes parent folder | download | duplicates (2)
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
\begin{DoxyAuthor}{Authors}
Dr Matt R. Flax $<$flatmax@$>$
\end{DoxyAuthor}
 
\begin{DoxyImage}
\includegraphics{masking.example}
\caption{Example Threshold}
\end{DoxyImage}
 \hypertarget{index_docs}{}\section{Academic}\label{index_docs}
This code also implements the roex auditory filters.

Please read the article located on the debian file system \href{file:///usr/shar/doc/libaudiomask-1.0/Flax.2000.Improved.Auditory.Masking.Models.pdf}{\tt file:///usr/shar/doc/libaudiomask-\/1.0/Flax.2000.Improved.Auditory.Masking.Models.pdf}

It may also be found on the web \href{http://www.assta.org/sst/SST-00/cache/SST-00-Chapter9-p2.pdf}{\tt http://www.assta.org/sst/SST-\/00/cache/SST-\/00-\/Chapter9-\/p2.pdf} \hypertarget{index_intro}{}\section{Introduction}\label{index_intro}
This example shows how to use Dr M.R. Flax's (2000) hybrid simultaneous audio masking class to find the masking threshold of a time domain signal.

The compilation of this file is demonstrated in Makefile. Run this file : ./AudioMaskerExample View the results of this file using www.octave.org by running the script view.m
\begin{DoxyItemize}
\item simply type view once octave has started and you are in the suitable directory.
\end{DoxyItemize}

The input audio should be stored in the file INPUTFILENAME in text format -\/ each sample seperated by a white space.

========================= HOWTO =============================== 
\begin{DoxyCode}
     // First find the masking threshold
     AudioMasker masker(sampleFreq, count); // Create the audio masker class usin
      g fs=sampleFreq and count filters
     masker.excite(input, sampleCount); // find the mask for the array of input d
      ata which has sampleCount time samples.
 
     // Now do something with the masking threshold ...
 
     // The frequency domain mask is now located here
     for (int j=0; j<count;j++)
         masker.mask[j]; // This is the mask at each of the count frequencies of 
      interest
 
     // A more sophisticated example - find the threshold for each Fourier bin
     double fact=(double)sampleFreq/((double)sampleCount-1.0); // convert from an
       index to the equivalent * Fourier bin frequency
     for (int j=0; j<halfSampleCount;j++){
         cout<<"finding for freq "<<j*fact<<'\t'; // The frequency we are inspect
      ing
         double threshold=masker.findThreshold(j*fact); // The masking threshold
         20*log10(threshold); // The threshold in decibels (dB)
     }
\end{DoxyCode}