[linux-audio-dev] Mx4 updated

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-dev] Mx4 updated
From: Jens M Andreasen (jens.andreasen_AT_chello.se)
Date: Thu Feb 26 2004 - 12:06:17 EET


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;
}
 


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Feb 26 2004 - 12:05:39 EET