doc/new_dsp.txt : Initial commit.
This commit is contained in:
parent
ca2818935c
commit
daed9ab3a3
124
doc/new_dsp.txt
Normal file
124
doc/new_dsp.txt
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ain audio_in chs:2 gain:[.5 .3]
|
||||||
|
lpf bquad chs:2 type:[lpf hpf] fc:100 Q:3.2
|
||||||
|
aout audio_out chs:2 gain:.4
|
||||||
|
|
||||||
|
|
||||||
|
igain.val -> gain.ain
|
||||||
|
|
||||||
|
ain.out -> in.lpf.out -> in.aout
|
||||||
|
-> in.oscope
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ain.out[0] -> [0].in.lpf.out ->in.aout
|
||||||
|
|
||||||
|
|
||||||
|
Built-in Data Types:
|
||||||
|
--------------------
|
||||||
|
bool
|
||||||
|
int
|
||||||
|
uint
|
||||||
|
float
|
||||||
|
double
|
||||||
|
symbol
|
||||||
|
string
|
||||||
|
|
||||||
|
boolM
|
||||||
|
intM
|
||||||
|
uintM
|
||||||
|
floatM
|
||||||
|
doubleM
|
||||||
|
symbolM
|
||||||
|
stringM
|
||||||
|
|
||||||
|
function
|
||||||
|
|
||||||
|
array : mixed type arrays
|
||||||
|
struct : user definable structures
|
||||||
|
|
||||||
|
|
||||||
|
Support Functions:
|
||||||
|
copy()
|
||||||
|
toString()
|
||||||
|
fromString()
|
||||||
|
Math Op's.
|
||||||
|
String Op's.
|
||||||
|
Custom ops of the form: function( const struct* inputs, struct* outputs ).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Functions:
|
||||||
|
----------
|
||||||
|
List of named inputs and outputs, implemented according to the
|
||||||
|
above data types, along with known functions:
|
||||||
|
|
||||||
|
Constructor() : Allocate object based on resource struct.
|
||||||
|
Destructor() : Release object.
|
||||||
|
Setup() : Determine runtime configuration based on input types.
|
||||||
|
Exec() : Audio rate execution.
|
||||||
|
SetInput() : Control rate updates.
|
||||||
|
GetValue() : Query state values.
|
||||||
|
StoreState() : Store the current state of the object as a preset.
|
||||||
|
RestoreState() : Recall a previously stored preset.
|
||||||
|
|
||||||
|
|
||||||
|
User Interface:
|
||||||
|
---------------
|
||||||
|
The user interface is formed by instantiating user interface
|
||||||
|
elements for function inputs. In this way most user interface
|
||||||
|
elements do not have to be explicitely connected because they
|
||||||
|
are inherently connected. This does not preclude either
|
||||||
|
connecting the same control to other functions or the use
|
||||||
|
of UI-only functions.
|
||||||
|
|
||||||
|
|
||||||
|
Sub-Programs:
|
||||||
|
-------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Generic System Changes:
|
||||||
|
-----------------------
|
||||||
|
1) Error handling:
|
||||||
|
- Use a predefined set of generic error codes with the possiblity of
|
||||||
|
adding custom codes.
|
||||||
|
|
||||||
|
- Use a generic error handler macro which jumps to 'errLabel' on fail.
|
||||||
|
cmErrTry( err, rc, function_returning_error_code() )
|
||||||
|
cmErrTryMsg( err, rc, function_returning_error_code(), "Error msg %i ", value );
|
||||||
|
|
||||||
|
|
||||||
|
- Global functions, (i.e, those functions which do not have a manager) should
|
||||||
|
take optional error object points. These functions include memory mgmt,
|
||||||
|
file mgmt, text mgmt, ...
|
||||||
|
|
||||||
|
2) Develop a transparent, multi-dimensional, matrix class.
|
||||||
|
|
||||||
|
3) cmCtx_t extensions.
|
||||||
|
- The cmCtx_t context should be considered a singleton global object, whose
|
||||||
|
life extends for the entire program. This will eliminate needing to duplicate
|
||||||
|
the context.
|
||||||
|
|
||||||
|
- Possibly add a JSON tree to pass global program cfg. information.
|
||||||
|
|
||||||
|
4) Simplify the low level processing object design.
|
||||||
|
- Eliminate the alternative cmCtx type and use the cmCtx_t class.
|
||||||
|
- Eliminate the distinction between allocation and initialization.
|
||||||
|
|
||||||
|
5) Make use of thread local memory for allocating scratch memory
|
||||||
|
which does not need to be deleted.
|
||||||
|
|
||||||
|
6) Add a cmMemPrintf() function to create dynamcially allocated formatted strings.
|
||||||
|
|
||||||
|
7) Figure out the text encoding thing.
|
||||||
|
|
||||||
|
8) Eliminate the cmXXXIsValid() function - this can be provided
|
||||||
|
by a generic function (or macro).
|
||||||
|
|
||||||
|
9) Make the documentation work from the start.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user