[linux-audio-dev] Mx4 updated

Jens M Andreasen jens.andreasen at chello.se
Thu Feb 26 10:06:17 UTC 2004


Hi!

The four way phase/amplitude cross mudulating multichannel realtime
polysynthesizer for intel mmx located at http://hem.passagen.se/ja_linux
is now updated ... (phew!)

Changes:

New 2inOne oscillator (see below)
Finer frequency resolution  
Smooth, squared envelope decay
Enhanged touch response
Gtk2


The new version will load old patches but they will be tuned down by two
octaves and have reduced cross-modulation values.

Use "mx4 -s" to split the oscillators across seperate windows 


cheers // Jens M Andreasen

PS: Screenshot and text on site is not updated ...



Q: What is a "2inOne oscillator"?
A: A 2inOne oscillator is an oscillator that calculates two related
frequencies for the price of one.

Originally intended as a sine table replacement, where two slightly 
"bumpy" versions of the same oscillator (shifted 60 degrees apart) are
averaged to approximate one smooth and round wawe. By simple integer
multiplication of one of the components, you get the second oscillator
(tuned to a harmonic of the other component) "for free" :-)



int sxin(short w) // One half of a pseudo sin()
{ 
  register short a,b;
  
  a = w;
  
  b = a;
  b += (SHRT_MIN);
  a =  (a * b)>>16; // mmx: pmulhw_r2r(mm1, mm0);  
  
  b >>= 15; /* b equals -1 when 'i' is positive else 0 */
  b ^= a;   
  
  /* Alternating positive/negative halfwawes are in 'b'
   * Always negative halfwawes are left in 'a'
   *
   * If you'd rather keep the squarewawe that was in 'b'
   * then  do ..
   
   a ^= b;
   
   * .. and return a instead.
   *
   */
  return b;
}
 







More information about the Linux-audio-dev mailing list