Age | Commit message (Collapse) | Author |
|
|
|
|
|
Previously, output was always considered as non-const, even if is was
zero and without any controller-influence, because output had always
pfactor-influence. Now, a pfactor-influenced output which is constant
zero is considered as still constant, because pfactor*0 is always 0.
|
|
|
|
|
|
The following has been changed
- Note::set_param now sets orig-values and does an apply_pfactor()
- Note::reattack now also reattacks the filter's envelope
- oscval[i]=0 has been removed as it's unneccessary in Note::get_sample()
- in Note::get_sample: fm- and out-sums are calculated in 2SCALE now
and scaled down (via >>SCALE) afterwards (instead of while every
single add-operation)
- the filter-envelope is now inited with the shorter constructor
- todo-list updated
|
|
|
|
There are still issues:
- filtertest.prog.so: output_note-message which is not true
- huge size of the .so (48K are too much!)
|
|
The note-compiler now also generates code for set_param, and
a function has been added which returns a pointer to a newly
created object (important for loading from a shared object).
There's also a destroyer function.
TODO:
- write a CLI for the note-compiler
- let the note-compiler issue the build-commands on his own
- make the synth load instruments from shared objects
|
|
The note-compiler can read a program-definition and emits a cpp-file
which implements that definition. This implementation is optimized.
HOWEVER, the compiler still does not emit a set_param() function. this
will lead to a linker error because the function is not implemented
(but defined). After adding an empty implementation by hand the emitted
compiles well, and also seems to work when used in the synth.
TODO:
- implement set_param()
- compiler must emit a loader-function (which returns a new Note)
- use that loader function in the synth
|
|
|
|
|