Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
frame: brings up to 33% speed boost!
bugfix: ksr now uses dest_freq instead of (current) freq
|
|
cast-optimisation
programs gets a better operator=
commented out segfaulting cleanup()
|
|
the in-synth-CLI still partially uses the non-synced communication. TODO!
|
|
|
|
|
|
for sawtooth, the ratio rising:falling phase is adjustable
for pulse, the ratio high:low is adjustable
|
|
|
|
|
|
|
|
|
|
However, internally, factor still behaves as usual.
Only all functions which can set/change .factor do the calculation
from semitones to the real factor.
|
|
|
|
List of waveforms:
0=sin
1=abssin
2=half_sin
3=pulse-sin
4=square
5=sawtooth
6=pyramid
7=white noise
|
|
|
|
plus some tiny bugfixes:
- in Envelope (get_sustain now returns orig_sustain)
- parser now uses isnum instead of isfloat where appropriate
|
|
Now the number is first parsed (via atoi) and THEN checked if in 0..127
|
|
Changed a "if (has_release) hold=false" into if (!has_release)
|
|
|
|
Many commands are now available, like changing program, controllers,
panicking, killing single programs, setting pedals, setting voice limit
etc...
Also, added Channel::set_portamento_time_sec(float sec)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The CLI can now prepare loading a note without actually loading it
|
|
The interface understands "quit" and "exit", and accepts but ignores
"reload" and "load". It catches CTRL+C.
|
|
str_before ("foo:bar:baz",':',"doesntmatter") returns "foo"
str_after ("foo:bar:baz",':',"doesntmatter") returns "bar:baz"
str_after and str_before ("foobar",':',"default") returns "default"
Also, extract_var and extract_val now use the newly created functions
|
|
Controller 67 aka soft-pedal now can reduce the note's volume by half
TODO:
- let the user set the percentage for the volume, either per
controller (per channel) or per CLI (global)
|
|
The synthesizer is now able to load and use compiled, optimized shared
objects of programs. There's also a note-compiler which creates the code
for such objects.
TODO:
- let the note-compiler automatically compile OR rename it to
code-emitter
|
|
|
|
Also, changed .gitignore to ignore gmon.out
|
|
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
|
|
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.
|
|
|
|
|
|
Makefile used CFLAGS instead of CXXFLAGS, which has been fixed.
|
|
|
|
|