Mercurial > hg > aimc
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 */ |