• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

decoder_plugins/H16-Nov-2016-16,42213,443

doxy_pages/H16-Nov-2016-270210

m4/H16-Nov-2016-10,8139,705

themes/H16-Nov-2016-933848

tools/H16-Nov-2016-548398

AUTHORSH A D15-Aug-201233 21

COPYINGH A D03-May-201417.6 KiB340281

ChangeLogH A D05-Jul-201219 21

DoxyfileH A D16-Nov-20164.6 KiB168167

INSTALLH A D16-Nov-201615.2 KiB366284

Makefile.amH A D16-Nov-20162.2 KiB9693

Makefile.inH A D16-Nov-201639.4 KiB1,1701,063

NEWSH A D16-Nov-201634 KiB735708

READMEH A D16-Nov-201614.1 KiB341251

README_equalizerH A D05-Jul-20126.7 KiB185142

REVISIONH A D16-Nov-20164 11

THANKSH A D16-Nov-20167.4 KiB265201

TODOH A D16-Nov-20167.8 KiB184159

aclocal.m4H A D16-Nov-201684.3 KiB2,3122,166

alsa.cH A D16-Nov-201618.8 KiB771616

alsa.hH A D05-Jul-2012150 1510

audio.cH A D16-Nov-201627.5 KiB1,251962

audio.hH A D16-Nov-20167.7 KiB271111

audio_conversion.cH A D16-Nov-201618.6 KiB801630

audio_conversion.hH A D10-Mar-2016909 4835

common.cH A D16-Nov-20166.4 KiB301222

common.hH A D16-Nov-20163 KiB131101

compat.cH A D16-Nov-20161.6 KiB9161

compat.hH A D16-Nov-2016890 3926

config.example.inH A D16-Nov-201627.1 KiB691610

config.guessH A D16-Nov-201643.9 KiB1,5021,291

config.h.inH A D16-Nov-201622.8 KiB823572

config.rpathH A D05-Jul-201218 KiB673569

config.subH A D16-Nov-201633.6 KiB1,7061,558

configureH A D03-May-2022964.4 KiB32,79724,783

configure.inH A D16-Nov-201617.4 KiB628544

decoder.cH A D16-Nov-201617.6 KiB777568

decoder.hH A D16-Nov-201610.3 KiB34670

depcompH A D16-Nov-201618.2 KiB631407

equalizer.cH A D16-Nov-201623.1 KiB1,163847

equalizer.hH A D05-Aug-2016435 2318

fifo_buf.cH A D16-Nov-20163.3 KiB164112

fifo_buf.hH A D16-Nov-2016843 3528

files.cH A D16-Nov-201615.9 KiB738537

files.hH A D16-Nov-20161.3 KiB4538

getopt.cH A D16-Nov-201620.4 KiB732415

getopt1.cH A D16-Nov-20164 KiB177116

gnugetopt.hH A D16-Nov-20164.3 KiB13048

install-shH A D16-Nov-201613.3 KiB521344

interface.cH A D16-Nov-201696.1 KiB4,3693,372

interface.hH A D16-Nov-20161.8 KiB6754

interface_elements.cH A D16-Nov-2016104.2 KiB4,5163,463

interface_elements.hH A D16-Nov-20164.6 KiB154139

io.cH A D16-Nov-201617.3 KiB839623

io.hH A D16-Nov-20163.9 KiB137109

io_curl.cH A D16-Nov-201614.7 KiB634482

io_curl.hH A D05-Aug-2016436 2317

jack.cH A D16-Nov-20168.9 KiB366261

jack.hH A D05-Jul-2012154 1510

keymap.exampleH A D16-Nov-20165.6 KiB189176

keys.cH A D16-Nov-201621.7 KiB1,2911,141

keys.hH A D16-Nov-20162.7 KiB140129

lists.cH A D16-Nov-20167.9 KiB368239

lists.hH A D16-Nov-20161.7 KiB5436

log.cH A D16-Nov-20164.5 KiB223170

log.hH A D16-Nov-2016842 4838

ltmain.shH A D16-Nov-2016237.6 KiB8,4076,472

lyrics.cH A D16-Nov-20165.4 KiB245179

lyrics.hH A D08-Sep-2014599 2418

main.cH A D16-Nov-201621.8 KiB872750

md5.cH A D13-Jul-201415.1 KiB468295

md5.hH A D05-Jul-20124.2 KiB12957

menu.cH A D16-Nov-201619.6 KiB917704

menu.hH A D16-Nov-20164.5 KiB152120

missingH A D16-Nov-201611.2 KiB377281

mocp.1H A D16-Nov-20168.8 KiB300297

null_out.cH A D16-Nov-20161.9 KiB10371

null_out.hH A D03-May-2014158 1510

options.cH A D16-Nov-201636.2 KiB1,3711,067

options.hH A D16-Nov-20161.4 KiB4942

oss.cH A D16-Nov-20169.6 KiB451355

oss.hH A D05-Jul-2012167 1711

out_buf.cH A D16-Nov-20169.3 KiB430300

out_buf.hH A D16-Nov-20161.6 KiB6142

player.cH A D16-Nov-201624.3 KiB1,006796

player.hH A D16-Nov-2016496 2822

playlist.cH A D16-Nov-201620.2 KiB944675

playlist.hH A D16-Nov-20163.9 KiB120106

playlist_file.cH A D16-Nov-201610.4 KiB480358

playlist_file.hH A D10-Mar-2016361 1914

protocol.cH A D16-Nov-201615.5 KiB734543

protocol.hH A D16-Nov-20167.1 KiB181146

rbtree.cH A D16-Nov-20167 KiB386300

rbtree.hH A D16-Nov-20161.1 KiB5137

rcc.cH A D15-Sep-20161.5 KiB7852

rcc.hH A D05-Aug-2016174 1712

server.cH A D16-Nov-201638.2 KiB1,8431,415

server.hH A D16-Nov-2016736 3427

sndio_out.cH A D16-Nov-20163.8 KiB183126

sndio_out.hH A D05-Jul-2012173 1711

softmixer.cH A D16-Nov-201612.7 KiB668517

softmixer.hH A D05-Aug-2016910 4429

tags_cache.cH A D16-Nov-201627.7 KiB1,235927

tags_cache.hH A D16-Nov-20161.8 KiB6645

themes.cH A D16-Nov-201615.8 KiB566453

themes.hH A D05-Aug-20161.1 KiB5953

utf8.cH A D16-Nov-20168 KiB413315

utf8.hH A D16-Nov-20161.1 KiB5039

README

1                                 MOC
2                      m u s i c  o n  c o n s o l e
3
4                          http://moc.daper.net/
5
6
7--------------------------------------------------------------------------------
8What Is It?
9--------------------------------------------------------------------------------
10
11MOC (music on console) is a console audio player for LINUX/UNIX designed to be
12powerful and easy to use.
13
14You just need to select a file from some directory using the menu similar to
15Midnight Commander, and MOC will start playing all files in this directory
16beginning from the chosen file.  There is no need to create playlists as in
17other players.
18
19If you want to combine some files from one or more directories in one playlist,
20you can do this.  The playlist will be remembered between runs or you can save
21it as an m3u file to load it whenever you want.
22
23Need the console where MOC is running for more important things?  Need to close
24the X terminal emulator?  You don't have to stop playing - just press q and the
25interface will be detached leaving the server running.  You can attach it later,
26or you can attach one interface in the console, and another in the X terminal
27emulator, no need to switch just to play another file.
28
29MOC plays smoothly, regardless of system or I/O load because it uses the output
30buffer in a separate thread.  The transition between files is gapless, because
31the next file to be played is precached while the current file is playing.
32
33Supported file formats are: MP3, Ogg Vorbis, FLAC, Musepack (mpc), Speex, Opus,
34WAVE, those supported by FFmpeg/LibAV (e.g., WMA, RealAudio, AAC, MP4), AIFF,
35AU, SVX, Sphere Nist WAV, IRCAM SF, Creative VOC, SID, wavpack, MIDI and
36modplug.
37
38Other features:
39
40  - Simple mixer
41  - Color themes
42  - Menu searching (playlist or directory) like M-s in Midnight Commander
43  - The way MOC creates titles from tags is configurable
44  - Optional character set conversion for file tags using iconv()
45  - OSS, ALSA, SNDIO and JACK output
46  - User defined keys
47  - Cache for files' tags
48
49--------------------------------------------------------------------------------
50Documentation and The MOC Forum
51--------------------------------------------------------------------------------
52
53This file is only a brief description of MOC, for more information is
54available on the home page (http://moc.daper.net/documentation).
55
56You can also find a discussion forum on the MOC home page.
57
58--------------------------------------------------------------------------------
59What Software Is Required To Build It?
60--------------------------------------------------------------------------------
61
62To build MOC from the distribution tarball you will need:
63
64  - UNIX system with POSIX threads (e.g., Linux or FreeBSD)
65  - ncurses (probably already installed in your system)
66  - C and C++ compilers (MOC is written in C, but libtool and some
67    decoder plugins require a C++ compiler)
68  - Berkeley DB (libdb) version 4 (unless configured with --disable-cache)
69
70If you are building from the SVN repository you will also need:
71
72  - Subversion (to checkout the source directory tree)
73  - Autoconf version 2.60 and the associated Automake and Libtool
74
75You should choose which of the following audio formats you wish to play and
76provide the libraries needed to support them:
77
78  - AAC - libfaad2 version 2.7 (http://www.audiocoding.com/), and
79          libid3tag (http://www.underbit.com/products/mad/)
80  - FLAC - libFLAC version 1.1 (http://flac.sourceforge.net/)
81  - MIDI - libtimidity version 0.1 (http://timidity.sourceforge.net/)
82  - modplug - libmodplug version 0.7 (http://modplug-xmms.sourceforge.net/)
83  - MP3 - libmad with libid3tag (ftp://ftp.mars.org/pub/mpeg/)
84  - Musepack (mpc) - libmpc (http://www.musepack.net/), and
85                   - taglib version 1.3.1
86                     (http://developer.kde.org/~wheeler/taglib.html)
87  - Ogg Vorbis - libvorbis, libogg and libvorbisfile (all version 1.0)
88                 (http://www.xiph.org/ogg/), or
89               - libvorbisidec and libogg (both version 1.0)
90                 (http://svn.xiph.org/trunk/Tremor)
91  - SID - libsidplay2 version 2.1.1 and libsidutils version 1.0.4
92          (http://sidplay2.sourceforge.net/)
93  - Speex - libspeex version 1.0 (http://www.speex.org/), and
94          - libogg version 1.0 (http://www.xiph.org/ogg/)
95  - WMA, RealAudio (.ra), MP4 - FFmpeg version 0.5 (http://www.ffmpeg.org/), or
96                              - LibAV version 0.6.3 (http://www.libav.org/)
97  - WAVE, AU, AIFF, SVX, SPH, IRC, VOC - libsndfile version 1.0
98                                         (http://www.mega-nerd.com/libsndfile/)
99  - wavpack - libwavpack version 4.31 (http://www.wavpack.com/)
100
101For interfacing to the sound sub-system, you will need libraries for one or
102more of the following:
103
104  - ALSA - alsa-lib version 0.9 (http://www.alsa-project.org/)
105  - OSS - the OSS libraries (http://www.opensound.com/)
106  - BSD's SNDIO - SNDIO libraries
107  - JACK low-latency audio server - JACK version 0.4
108                                    (http://jackit.sourceforge.net/)
109
110For network streams:
111
112  - libcurl version 7.12.2 (http://curl.haxx.se/)
113
114For resampling (playing files with sample rate not supported by your
115hardware):
116
117  - libresamplerate version 0.1.2 (http://www.mega-nerd.com/SRC/)
118
119For librcc (fixes encoding in broken mp3 tags):
120
121  - http://rusxmms.sourceforge.net/
122
123Note that for Debian-based distributions, you will also require any '-dev'
124suffixed versions of the packages above if building from source.
125
126The versions given above are minimum versions and later versions should also
127work.  However, MOC may not yet have caught up with the very latest changes
128to library interfaces and these may cause problems if they break backwards
129compatibility.
130
131--------------------------------------------------------------------------------
132On Which Systems Is MOC Running?
133--------------------------------------------------------------------------------
134
135MOC is developed and tested on GNU/Linux.  Sometimes test runs are made on
136other operating systems, and it is known to compile and probably work on:
137
138  - FreeBSD
139  - NetBSD
140  - OpenBSD
141  - OpenWRT
142
143There is no intention to support MOC on MS-Windows (so please don't ask).
144
145--------------------------------------------------------------------------------
146How Do I Build and Install It?
147--------------------------------------------------------------------------------
148
149Generic installation instruction is included in the INSTALL file.
150
151In short, if you are building from an SVN checkout of MOC (but not if you
152are building from a downloaded tarball) then you will first need to run:
153
154	autoreconf -if
155
156and then proceed as shown below for a tarball.  (If you are using the
157tarball but have applied additional patches then you may also need to run
158autoreconf.)
159
160To build MOC from a downloaded tarball just type:
161
162	./configure
163	make
164
165And as root:
166
167	make install
168
169Under FreeBSD and NetBSD (and possibly other systems) it is necessary to
170run the configure script this way:
171
172	./configure LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include
173
174Note that MOC and some of its supporting packages make use of GNU extensions
175to the C89 and C99 language standards.  Therefore, do not set the '-std'
176option in CFLAGS to a non-GNU value; if you do, configure will fail
177unexpectedly.
178
179In addition to the standard configure options documented in the INSTALL
180file, there are some MOC-specific options:
181
182	--enable-cache=[yes|no]
183
184	  Specifying 'no' will disable the tags cache support.  If your
185	  intent is to remove the Berkeley DB dependancy (rather than
186	  simply removing the on-disk cache) then you should also either
187	  build MOC without RCC support or use a librcc built with BDB
188	  disabled.
189
190	--enable-debug=[yes|no|gdb]
191
192	  Using 'gdb' will cause MOC to be built with options tailored to
193	  use with GDB.  (Note that after release 2.5 this option will be
194	  split into separate debugging and logging options.)
195
196	--with-oss=[yes|no|DIR]
197
198	  Where DIR is the location of the OSS include directory (and
199	  defaults to '/usr/lib/oss').
200
201	--with-vorbis=[yes|no|tremor]
202
203	  Using 'tremor' will cause MOC to build against the integer-only
204	  implementation of the Vorbis library (libvorbisidec).
205
206You can install MOC into its own source directory tree and run it from there
207so you do not have to install it permanently on your system.  If you're just
208wanting to try it out or test some patches, then this is something you may
209wish to do:
210
211	./configure --prefix="$PWD" --without-timidity
212	make
213	make install
214	bin/mocp -M .moc
215
216--------------------------------------------------------------------------------
217How Do I Use It?
218--------------------------------------------------------------------------------
219
220Run program with the 'mocp' command.  The usage is simple; if you need help,
221press 'h' and/or read mocp manpage.  There is no complicated command line or
222cryptic commands.  Using MOC is as easy as using basic functions of Midnight
223Commander.
224
225You can use a configuration file placed in ~/.moc/config, but it's not required.
226See config.example provided with MOC.
227
228--------------------------------------------------------------------------------
229Using Themes
230--------------------------------------------------------------------------------
231
232Yes, there are themes, because people wanted them. :)
233
234Themes can change all colors and only colors.  An example theme file with a
235exhaustive description is included (themes/example_theme) and is the
236default MOC appearance.
237
238Theme files should be placed in ~/.moc/themes/ or $(datadir)/moc/themes/
239(e.g., /usr/local/share/moc/themes) directory, and can be selected with
240the Theme configuration options or the -T command line option (see the
241manpage and the example configuration file).
242
243Feel free to share the themes you have created.
244
245--------------------------------------------------------------------------------
246Defining Keys
247--------------------------------------------------------------------------------
248
249You can redefine standard keys.  See the instructions in the keymap.example
250file.
251
252--------------------------------------------------------------------------------
253How Do I Report A Problem?
254--------------------------------------------------------------------------------
255
256Not every release is extensively tested on every system, so the particular
257configuration of software, libraries, versions and hardware on your system
258might expose a problem.
259
260If you find any problems then you should search the MOC Forum for a solution;
261your problem may not be unique.  If you do find an existing topic which
262matches your problem but does not offer a solution, or the solution offered
263does not work for you and the topic appears still active, then please add your
264experience to it; it may be that additional information you can provide will
265contain the clue needed to resolve the problem.
266
267If you don't find an answer there and you installed MOC from your Linux
268distribution's repository then you should report it via your distribution's
269usual reporting channels in the first instance.  If the problem is ultimately
270identified as actually being in MOC itself, it should then be reported to the
271MOC Maintainer (preferably by the distribution's MOC package maintainer).
272
273If you built MOC from source yourself or you get no resolution from your
274distribution then start a new topic on the MOC Forum for your problem or
275contact the MOC Maintainer.
276
277Before reporting a problem, you should first read this Forum post:
278
279   Linkname: How to Report Bugs Effectively
280        URL: http://moc.daper.net/node/1035
281
282and the essay it references:
283
284   Linkname: How to Report Bugs Effectively
285        URL: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
286
287There are two things you must do if at all possible:
288
2891. Make sure you are using the current stable MOC release or, even better,
290   can reproduce it on the latest development release or SVN HEAD, and
2912. Make sure you include the version and revision information (which you
292   can obtain by running 'mocp --version').
293
294If you do not do those two things (and don't offer a good explanation as to
295why you didn't) your problem report is likely to be ignored until such time
296as you do.
297
298--------------------------------------------------------------------------------
299Hacking
300--------------------------------------------------------------------------------
301
302Want to modify MOC?  You're welcome to do so, and patch contributions are
303also welcome.
304
305MOC is written in C, so you must at least know this language to make simple
306changes.  It is multi-threaded program, but there are places where you don't
307need to worry about that (the interface is only a single thread process).  It
308uses autoconf, automake and libtool chain to generate configuration/compilation
309stuff, so you must know how to use it, for example, if you need to link to an
310additional library.
311
312The documentation for some parts of the internal API for creating decoder
313plugins (file format support) and sound output drivers can be generated using
314Doxygen (http://www.doxygen.org/).  Just run the doxygen command from the MOC
315source directory.
316
317Before you change anything it is a good idea to check for the latest development
318version (check out from the Subversion repository is the best).  Your changes
319might conflict with changes already made to the source or your feature might be
320already implemented.  See also the TODO file as it is updated regularly and
321contains quite detailed information on future plans.
322
323If you need help, just contact MOC's Maintainer via e-mail.  And if you are
324planning anything non-trivial it's a good idea to discuss your intentions
325with the MOC Maintainer once you've clarified your ideas but before spending
326too much time implementing them; it will be more productive if your work fits
327with MOC's future direction.
328
329--------------------------------------------------------------------------------
330Who Wrote It?  Where Can I Send Bug Reports, Questions or Comments?
331--------------------------------------------------------------------------------
332
333	* Original author is Damian Pietras
334	* Current maintainer is John Fitzgerald
335	* For comments and questions see the official forum:
336	              http://moc.daper.net/forum
337	* Need to report a bug?  You can reach the maintainer(s) at:
338	                 <mocmaint@daper.net>
339
340--------------------------------------------------------------------------------
341

README_equalizer

1Preamble
2---
3This document is meant to give you an overview on the idea of having a
4parametric equalizer for sound enhancement and how you can create your
5own presets.  Also the interaction with the equalizer in MOC is described.
6
7I would like to improve this document to make it more usable; so if you
8have any comments and/or ideas feel free to contact me.
9
10- Hendrik Iben (hiben<at>tzi(dot)de)
11
12
13Content
14---
150. Document History
161. Motivation
172. Usage
183. Preset Format
194. Creating Presets
205. TODO
216. References
22
23
240. Document History
25---
2607.09.2008 - Initial version
2715.03.2011 - Reformatted
28
29
301. Nuts and Bolts / Motivation for Implementing the Equalizer
31---
32The equalizer is an implementation of a biquadratic peaking equalizer
33filter looked up from the Audio EQ Cookbook[1].
34
35It happens to be a parametric equalizer and this means that, different
36from other equalizer implementations, the number of bands* is not fixed.
37When I started the idea of implementing the equalizer I looked around
38in the source of other audio playback software and found that a lot of
39them are recycling the code used by the famous XMMS[2] audio player.
40I also would have liked to recycle the code but I decided against it
41for two reasons:
42
43The first reason is that there is almost no documentation on the algorithm
44used.  Maybe the signal processing folks have fun finding out what makes
45this thing work but I was totally lost.  So I decided that I wanted to
46*know* what I am doing if I do it.
47
48As for the second reason, the code used by XMMS is totally optimized for
49integer arithmetic.  There is no problem with this in general but I had
50the goal of implementing something that was as accurate as I could and
51I wanted to use floating point arithmetic.
52
53So I am no signals processing guy, but I have -- I think -- a solid
54understanding of the matter.  I sat down and started to read about
55equalizing, audio processing and signal theory in general.  After some
56time I found a mathematical description and a C implementation of
57biquadratic filters in the Audio Cookbook.  I made an implementation of
58the XMMS equalizer and the biquadratic filter using Octave[3] to compare
59the outcome of both filters.  I was a bit surprised how different filters
60can be but in the end succeeded (?) in finding a quite good biquadratic
61filter set that would produce results not unlike the XMMS equalizer.
62
63Although I did not use the XMMS-code I think that people will be more
64happy to accept this equalizer if they can use their presets with it.
65There is some conversion needed, but it's a straightforward process.
66I converted all presets provided by XMMS into presets for this mixer.
67They should be available at [4].
68
69* A band is a chosen center frequency where a filter has most impact.
70  If you look at WinAmp / XMMS / Beep Media Player you will find that
71  they settled on a common set of 10 bands.
72
73
742. Using the Equalizer
75---
76The default keys for the equalizer are:
77
78'e' - Refresh equalizer
79'E' - Toggle equalizer (on/off)
80'k' - Select next preset
81'K' - Select previous preset
82
83Each of these actions results in a message displayed in the message area.
84This message will be overridden by the next action.
85
86
873. Preset Format
88---
89Presets for the equalizer are to be placed in a directory called 'eqsets'
90in MOC's home directory (e.g., $HOME/.moc/eqsets).  There is no convention
91for the filename, but it will serve as the name in the selection process.
92
93File format in pseudo EBNF:
94
95  EQSET
96  ((<CF> <BW> <AMP>)|(0 <PREAMP>))*
97
98  CF:     Center frequency (sane values are from ~20 to ~20000).
99  BW:     Bandwith in Octaves.  This defines how fast the bands
100          influence vanishes over the frequencies.
101  AMP:    Amplification factor (in dB) to apply to the band.
102  PREAMP: Specifies an amplification factor applied before equalizing.
103
104So a valid equalizer set would be:
105
106  # this is a comment
107  EQSET
108  # amplify audio by 1.4dB
109  0 1.4
110  # damp frequencies at 100Hz by -4dB, filter bandwidth 1.5 octaves
111  100   1.5 -4
112  # amplify frequencies at 4000Hz by 2dB, filter bandwidth 1.5 octaves
113  4000  1.5 2
114
115There is no order to stick to when specifying frequencies.
116
117
1184. Creating Your Own Presets
119---
120For a start you should have a look at the converted presets[4].  The
121bandwidths used in the conversion have been extracted by taking a look
122at the filters signal response (implementation and analysis in Octave).
123I tried to do this as accurately as possible but I don't know if I made
124a mistake.  They sound correct though... :-)
125
126You might note that there is never a positive amplification factor in
127the presets although there are in the original preset.  The reason for
128this is that I used the maximum amplification in the preset as zero
129amplification and adjusted the other values accordingly.
130
131In general, when creating a preset get used to the following idea: Do not
132amplify the frequencies you want but damp those that are of no interest.
133This has the same effect but avoids clipping and this equalizer type seems
134to be very prone to clipping.  Also be very careful with pre-amplifying
135the audio for the same reason.
136
137With that said, the next confusing thing is the bandwidth definition.
138Every band needs a defined bandwidth in octaves where the bandwidth
139defines where the filter's effect has been reduced by 3dB*.  This means
140that if you define a band at 1000Hz with a bandwidth of 1.5 octaves and
141an amplification of -10dB, at 353.6Hz** and at 2828.4Hz the amplification
142will be reduced to -7dB.
143
144If unsure, stay in between 1.0 and 2.0.  Just keep in mind that if two
145bands overlap you might get an undesired amplification.
146
147When designing presets, just save the preset and select it in MOC.  After
148each change press the refresh key (default 'e').  This will re-create the
149equalizer reflecting your changes.
150
151If your preset is not found, have a look at the output of MOC's server
152thread.  Parsing errors are emitted there.
153
154*  3dB is commonly used for bandwidth.  -3dB equals about 70.7% of
155   original amplification.
156** 353.6 =~ 1000*(2^-1.5), 2828.4 =~ 1000*(2^1.5)
157
158
1595. TODO
160---
161- The equalizer is currently not optimized in any way.
162
163- It converts all sound data into floating point values to perform the
164  equalization and converts them back afterwards.  A better approach
165  would be either to provide integer algorithms for equalization or to
166  leave the audio data in floating point format.
167
168- There is no sorting for the presets; their order is defined by reading
169  the directory content.
170
171- Maybe it would be nice to add a name to the preset different from the
172  filename.
173
174
1756. References
176---
177[1] Cookbook formulae for audio EQ biquad filter coefficients
178    http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
179[2] X Multimedia System
180    http://www.xmms.org/
181[3] GNU Octave
182    http://www.gnu.org/software/octave/
183[4] Converted WinAmp / XMMS Equalizer sets
184    http://www.informatik.uni-bremen.de/~hiben/moc/eqsets.tar.gz
185