[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 561: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 617: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
[phpBB Debug] PHP Warning: in file [ROOT]/feed.php on line 181: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
[phpBB Debug] PHP Warning: in file [ROOT]/feed.php on line 182: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
Forum Discussions about the Moselle Software Synthesizer 2016-07-04T07:48:51 http://moselle-synth.com/forum/feed.php?f=20&t=8 2016-07-04T07:48:51 2016-07-04T07:48:51 http://moselle-synth.com/forum/viewtopic.php?t=8&p=14#p14 <![CDATA[Current Project]]>
I've stepped back and figured out exactly what functions I need as a whole and came up with a family of 36 in total.

Select() -- equal-width stairsteps
LinFade() -- linear interpolation
ExpFade() -- exponential interpolation
PowFade() -- equal power fade (for uncorrelated audio signals, especially)
Curve() -- a curved mapping, convex or concave, based on the "bias" function used in computer animation
SCurve() -- an S-shaped curved mapping, convex or concave, based on the "gain" function used in computer animation.

These six each come in a "normal" version, where inputs below the minimum are just treated as minimum, and inputs above the maximum are just treated as the maximum. They also come in a "Loop" version, where values higher than the maximum are just wrapped around to the minimum and vice versa. As an example, LinFade( -1.5, Osc1, Osc2) would still give you Osc1. LinFadeLoop( -1.5, Osc1, Osc2) would loop around to give you a midpoint.

Then the above twelve functions (the six listed plus their loop versions) all come in three versions. 1) the "normal" version which assumes the input is between 0 and 1 (or for loops, at least assume 0 is the first item and 1 has looped you all the way around to the first item again). 2) the "N" version that assumes your input is between 0 and the number of items on the list minus one. 3) an "X" version that lets you specify the X values. Examples: LinFade( X, Osc1, Osc2, Osc3 ) would give you Osc 1, 2, 3, for values 0 .5 and 1. LinFadeN() would give them to you for values 0, 1, and 2. Then LinFadeX( x, 0, Osc1, .9, Osc2, 1, Osc3 ) would give you Osc 1, 2, 3 for inputs 0, .9, and 1.

In the future I can see adding "best fit" polynomial curves, splines, and so on, but I need to do some other stuff.

Statistics: Posted by forum — Mon Jul 04, 2016 7:48 am


]]>