summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-01-09Improved note-compiler: optimizing output now works properlyFlorian Jung
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.
2011-01-09envelope_update_frames can now be set via CLI and config fileFlorian Jung
2011-01-08Envelope::get_level() gets called rarely nowFlorian Jung
Also, changed .gitignore to ignore gmon.out
2011-01-08Added some of the bugfixes to the note_compiler and removed use_pfactorFlorian Jung
2011-01-08Minor fixes and improvementsFlorian Jung
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
2011-01-08Changed always_reattack (controller 3) to legato-pedalFlorian Jung
When in monomode, not pressing the legato pedal will cause the note always being reattacked, while pressing it will cause it to be only reattacked if it's envelopes are done (i.e., past release phase) When in polymode, the legato pedal is ignored, notes will always be reattacked, because not doing so would cause interference between the two generated sounds.
2011-01-08Added support for hold- and sostenuto pedalsFlorian Jung
2011-01-07Improved note-compiler and added TODO-entriesFlorian Jung
2011-01-06Added a rudimentary CLI to the note compiler + bugfixFlorian Jung
2011-01-06The synthesizer can now load the compiled notesFlorian Jung
There are still issues: - filtertest.prog.so: output_note-message which is not true - huge size of the .so (48K are too much!)
2011-01-05Finished note-compiler, seems to work. TODO: CLIFlorian Jung
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
2011-01-05Note-compiler is _mostly_ complete; plus some tiny bugfixesFlorian Jung
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
2011-01-01Replace class Parser with function parse()Florian Jung
2011-01-01Update and move todo-listFlorian Jung
2010-12-31Add initial code for the note-compilerFlorian Jung
The note-compiler now has a Parser class which knows about possible parameter changes (by controller, velocity or simply user definition). Furthermore, several files were adapted (by stripping unneeded code, adding the bool foo_const variables etc.). Small fix in util.c which causes extract_var("foo") to return "foo" instead of "". Fixes in both Makefiles.
2010-12-30Improved Makefile and .gitignoreFlorian Jung
2010-12-30Use NoteSkel wherever possibleFlorian Jung
Notes are still created from the built-in Note class, but theoretically, other classes could be used, too.
2010-12-30Note inherits from NoteSkel -- worksFlorian Jung
2010-12-30Note inherits from NoteSkel -- DOES NOT WORK!Florian Jung
The program compiles well, but as soon as a note is created, it exits, because a pure virtual method is called in NoteSkel's ctor (which is called before Note's ctor) which tries to call a function which is implemented in Note, but not in NoteSkel
2010-12-29Define an interface and a skeleton for class NoteFlorian Jung
2010-12-29Initial commitFlorian Jung