Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - matrix12x

Pages: 1 ... 9 10 [11] 12 13
151
Hi,
I had added a formant waveform and compiled my own copy of the os. It was super easy, and everyone on this forum was extremely helpful.

see this post:
http://ixox.fr/forum/index.php?topic=63412.0

152
preenfm2 and preenfm3 / Re: My Hacks...
« on: January 07, 2015, 01:21:03 AM »
funkyfli awesome idea for using the envelopes as oscillators! I like the idea of doing a wave folder FX.

153
preenfm2 and preenfm3 / Re: Formant Filter
« on: November 06, 2014, 04:37:13 AM »
So what I am thinking of trying, when I get a free min or two, is taking the BPF you already implemented, making a formant filter comprised of 5 copies ran in parallel, setting their Q (bw=f/Q) and freq according to an array of values from those tables. Using the encoder to set he formant/vowel.

Would this be processor intensive?


154
preenfm2 and preenfm3 / Re: Formant Filter
« on: November 02, 2014, 09:09:01 PM »
In the Csound manual I found a table:
http://csound.github.io/docs/manual/MiscFormants.html

It lists frequencies, band widths and gain/loss for each band. Although it looks like 5 BPFs are used there.


155
preenfm2 and preenfm3 / Re: Formant Filter
« on: November 02, 2014, 07:49:56 PM »
Sound on Sound has an article on this in the analog realm. http://www.soundonsound.com/sos/mar01/articles/synthsec.asp

and provides a table with the center frequencies for different formants for a man:

VOWEL SOUND AS IN... F1 F2 F3
"ee" leap 270 2300 3000
"oo" loop 300 870 2250
"i" lip 400 2000 2550
"e" let 530 1850 2500
"u" lug 640 1200 2400
"a" lap 660 1700 2400

Then they go on to discuss amplitude and the width or Q of the band pass filters. They state that the bandwidth for the filters for a man's formants are around 100Hz wide and a woman's are slightly wider.

I have seen something like this with the Freq of one or more of these BPFs ever so slightly modulated by a LFO.

156
preenfm2 and preenfm3 / Re: Formant Filter
« on: November 01, 2014, 06:50:33 PM »
I am wondering if a better approach would be 3 parallel band pass filters?
or is that too cpu intensive?

157
preenfm2 and preenfm3 / Re: Formant Filter
« on: November 01, 2014, 12:56:49 AM »
Hi Xavier,

According to one of the comments on musicdsp.org, I changed the first coefficient to 3.11044e-06 from 8.11044e-06. Although I think you are correct about it being rounded to zero.

I also put the coefficients in the case, as well as the:    
static double memory[10]={0,0,0,0,0,0,0,0,0,0};

Also, I did this exactly as was in the original:
      memory[9]= memory[8];
      memory[8]= memory[7];
      memory[7]= memory[6];
      memory[6]= memory[5];
      memory[5]= memory[4];
      memory[4]= memory[3];
      memory[3]= memory[2];
      memory[2]= memory[1];   
      memory[1]= memory[0];
      memory[0]=(double) localV;
then a:
                localv0L = localV;

I am not sure it is the correct sound I get, but I definitely get sound.

158
preenfm2 and preenfm3 / Re: Formant Filter
« on: October 27, 2014, 04:05:14 AM »
So I tried it and......
The coefficient for the A vowel is kind of harsh. Which can be cool.

It is ridiculously CPU intensive. When the Formant filter is selected, the encoders don't scan quite right, completely missing steps, for example the third parameter to control gain.

And if I implement one of the encoders to change the formant it crashes.

I am going to look for a less CPU intensive approach. I wonder how one would optimize the music dap version?

159
preenfm2 and preenfm3 / Formant Filter
« on: October 25, 2014, 03:03:42 PM »

I was wondering if anyone has tried implementing a formant filter yet, something akin to the one on musicdsp.org
http://www.musicdsp.org/showArchiveComment.php?ArchiveID=110


I was going to hack my way through this later this month and was wondering if there is anything I should keep an eye out for?

160
I also thought making a shield for it would be a good idea. too bad there was no way to enclose/encase the rear of the OLED.

161
preenfm2 and preenfm3 / Re: More Effects
« on: August 11, 2014, 03:56:47 AM »
The new effects are cool. I like your bit crusher much better.

162
preenfm2 and preenfm3 / Re: More Effects
« on: August 10, 2014, 05:01:06 PM »
Hi Xavier,
Exactly.

would it be possible to shift the bits by doing a x >> y? where x shifted y bits to right

163
preenfm2 and preenfm3 / Re: More Effects
« on: August 10, 2014, 05:00:28 AM »
I updated my code slightly to simplify it.
the bits part does not work still. Frequency has some holes in it for some reason. at 0.5 it has zero effect, and at some small values we get silence.

       float *sp = this->sampleBlock;
       float localv0L = v0L;
       float localv0R = v0R;

   float phasor=0;
       float bits = floor( (params.effect.param1 * 16));   // bits encoder
   if (bits = 0){
      bits = 1;
   }

       float Frq = params.effect.param2 * PREENFM_FREQUENCY / 2; // frequency encoder
       float SR = PREENFM_FREQUENCY;
   float NormFreq = Frq / SR;
   float step;
   step = 1 / pow(2,bits);

       for (int k=0 ; k<BLOCK_SIZE ; k++) {

// left side
          localv0L = (*sp) + localv0L;

      phasor = phasor + NormFreq;
             if (phasor >= 1.0){
         phasor = phasor - 1.0;   
              localv0L = step * floor(localv0L / step + 0.5 ); //quantize
                localv0L = localv0L * fxParam3;  // gain encoder
      }

      (*sp) = ((*sp) + localv0L) * mixerGain;

          if (unlikely(*sp > ratioTimbres)) {
             *sp = ratioTimbres;
          }
          if (unlikely(*sp < -ratioTimbres)) {
             *sp = -ratioTimbres;
          }

          sp++;

164
preenfm2 and preenfm3 / Re: More Effects
« on: August 07, 2014, 01:16:39 AM »
Please note, I did not get the "bits" knob working yet, only the "frequency" knob. Please excuse the randomness of my coding, I was trying to implement different versions of the bit crunchers that were on the music DSP site. Based on my variable names, you can find the version of the code that I plucked bits and pieces from. When I clean it up i will add proper attribution to the comments in the code.

Basically I did this sloppy mess, with the proper adjustments to the other files to add the menu items:

In the file named Timber.cpp

   case FILTER_BIT:
    {

       float *sp = this->sampleBlock;
       float localv0L = v0L;
       float localv1L = v1L;
       float localv0R = v0R;

   float phasor=0;
       float BitsTwo = params.effect.param1;
   int bits=BitsTwo;
        float step;
       float Frq = params.effect.param2 * PREENFM_FREQUENCY;
       float SR = PREENFM_FREQUENCY;
   float NormFreq = Frq / SR;

       for (int k=0 ; k<BLOCK_SIZE ; k++) {
      if (unlikely(fxParam1 = 0)) {
          fxParam1 = 0.01;
       }

      step = 1 / (pow(2.0, bits));
// left side

          localv0L = (*sp) + localv0L;

      phasor = phasor + NormFreq;
             if (phasor >= 1.0){
         phasor = phasor - 1.0;   
              localv0L = step * floor(localv0L / step + 0.5 ); //quantize
                localv0L = localv0L * fxParam3;
      }

      (*sp) = ((*sp) + localv0L) * mixerGain;


          if (unlikely(*sp > ratioTimbres)) {
             *sp = ratioTimbres;
          }
          if (unlikely(*sp < -ratioTimbres)) {
             *sp = -ratioTimbres;
          }


          sp++;    



165
preenfm2 and preenfm3 / Re: More Effects
« on: August 06, 2014, 11:46:13 PM »
Hi Xavier,
I did not post it yet because it was not quite done yet and sounded a little crazy, but still interesting.

I can post it if you would like.

Pages: 1 ... 9 10 [11] 12 13