Mozzi  alpha 0.01.1t
sound synthesis library for Arduino
 All Classes Functions Typedefs
Todo List
Class ADSR< CONTROL_UPDATE_RATE >
Test whether using the template parameter makes any difference to speed, and rationalise which units which do and don't need them. Template objects are messy when you try to use pointers to them, you have to include the whole template shebang in the pointer handling.
Member ADSR< CONTROL_UPDATE_RATE >::noteOff ()
fix release for rate rather than steps (time), so it releases at the same rate whatever the current level.
Member AUDIO_PWM_RESOLUTION
Can both timer one pwm pins be used together to increase the dynamic range? See toneAC http://code.google.com/p/arduino-tone-ac/
Member AUDIO_RATE
Possible option for output to R/2R DAC circuit, like http://blog.makezine.com/2008/05/29/makeit-protodac-shield-fo/ This would limit dynamic range to 8 bit, but would remove the 16384Hz pwm carrier frequency noise which can be a problem in some applications, requiring filtering to remove (see the Mozzi wiki for filter schematics).
Member audioHook ()
try pre-decrement positions and swap gap calc around
Member EventDelay< UPDATE_RATE >::start ()
have a parameter to set whether it's single or repeating, so start doesn't have to be called for repeats. Pro: simpler user programming. Con: would require an if..then every time ready() is called.
Class LowPass1stOrder< T, LENGTH >
Find out if there is a way to calculate and predict the output range for a particular input range and filter length, whether it can be used precisely or requires experimenting to find useful values in each application. Specialise templates for unsigned types.
Class Oscil< NUM_TABLE_CELLS, UPDATE_RATE >
Use conditional compilation to optimise setFreq() variations for different table sizes.
Member Oscil< NUM_TABLE_CELLS, UPDATE_RATE >::setPhase (unsigned int phase)
Test commenting out ATOMIC_BLOCK in setPhase(), setFreq(), etc.
Member Oscil< NUM_TABLE_CELLS, UPDATE_RATE >::setPhaseFractional (unsigned long phase)
Test commenting out ATOMIC_BLOCK in setPhase(), setFreq(), etc.
Member Q16n16_pow2 (Q8n8 exponent)
Q16n16_pow2() accuracy needs more attention.
Member Sample< NUM_TABLE_CELLS, UPDATE_RATE >::next ()
in next(), incrementPhase() happens in a different position than for Oscil - check if it can be standardised
Class Smooth< T >
Check if 8 bit templates can work efficiently with a higher res smoothness - as is they don't have enough resolution to work well at audio rate. See if Line might be more useful in most cases.
Class StateVariable< FILTER_TYPE >
Try adding code to constrain the internal variables to enable resonant saturating effects.
Member xorshift96 ()
check timing of xorshift96(), rand() and other PRNG candidates.