comparison trunk/doc/dox-mainpage.dox @ 281:41ea31faf90c

- Renamed DeleteTarget and DeleteAllTargets to RemoveTarget and RemoveAllTargets in Module class - Added a load of documentation
author tomwalters
date Fri, 19 Feb 2010 08:51:51 +0000
parents e14c70d1b171
children
comparison
equal deleted inserted replaced
280:e55d0c225a57 281:41ea31faf90c
1 /*! 1 /*!
2 \mainpage AIM-C developer documentation 2 \mainpage AIM-C developer documentation
3 3
4 \section intro_sec Introduction
4 AIM-C is a real-time version of the the auditory image model (AIM) 5 AIM-C is a real-time version of the the auditory image model (AIM)
5 developed at the <a href="http://www.pdn.cam.ac.uk/groups/cnbh/"> 6 developed at the <a href="http://www.pdn.cam.ac.uk/groups/cnbh/">
6 Centre for the Neural Basis of Hearing</a>. 7 Centre for the Neural Basis of Hearing</a>.
7 8
9 The main development site for AIM-C is at http://aimc.acousticscale.org/. The
10 code is available at http://code.google.com/p/aimc/.
11
12 \section design_sec Design
8 AIM-C uses a block-based processing scheme. A mono input signal is 13 AIM-C uses a block-based processing scheme. A mono input signal is
9 split into short segments, which are sequentially 'pushed' through the 14 split into short segments, which are sequentially 'pushed' through the
10 processing pipeline. The pipeline consists of a number of modules in a 15 processing pipeline. The pipeline consists of a number of modules in a
11 tree structure. 16 tree structure.
12 17
13 The basic unit of data in AIM-C is the signal bank, and the basic 18 The basic unit of data in AIM-C is the signal bank, and the basic
14 processing unit is the module. A signal bank represents a short 19 processing unit is the module. A signal bank represents a short
15 segment, or 'frame', of an audio signal with multiple 20 segment, or 'frame', of an audio signal with multiple
16 channels. Modules generally take a frame (represented as a signal 21 channels. Modules generally take a frame (represented as a signal
17 bank) as input, and generate zero, one, or more signal bank frames as 22 bank) as input, and generate zero, one, or more signal bank frames as
18 output. Each module is linked to a set of 'target' modules, to which 23 output. Each module maintains a list of 'target' modules, to which
19 they 'push' the frames which they generate. Each of these modules 24 it 'pushes' the frames that it generates. Each module
20 performs processing on the output of the previous module, and in turn, 25 performs processing on the output of the previous module, and in turn,
21 push the output that they produce to their targets. 26 push the output that they produce to their targets.
22 27
23 This feed-forward, tree-like system allows modules to retain the internal 28 This feed-forward, tree-like system allows modules to generate as many output
24 state required for processing 29 frames as necessary for each input frame. It also allows for easy 'rewiring'
30 of chains of modules. For example, a 'viewer' module could be temporarily
31 added as a target of another module while the user was interested in seeing
32 that module's output.
25 33
34 Since each module is an instance of a class, it can retain the necessary state
35 variables within the class between calls.
26 36
27 37 \section style_sec Coding style
28
29 You can browse the classes using the browser at the left, or
30 select a page from the contents below.
31
32
33
34
35
36 Coding style
37 38
38 For the most part, AIM-C now follows the <a 39 For the most part, AIM-C now follows the <a
39 href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml"> 40 href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">
40 Google C++ style guide</a>. The original (2006-2009) AIM-C codebase 41 Google C++ style guide</a>. The original (2006-2009) AIM-C codebase
41 used a different style, and so you may find some files which still 42 used a different style, and so you may find some files which still
42 follow the older conventions. New code should adhere to the Google style 43 follow the older conventions. New code should adhere to the Google style
43 guide. 44 guide.
44 45
45 46
46
47
48
49 */ 47 */