Post Go back to editing

Karaoke key change using ADI pitch transposer alogrithm

Hi,

I would like to implement the key change function for a karaoke machine using ADAU1451.

I tried the ADI pitch transposer algorithm for the key change function.

First, I don't know how to set the parameters  'Delay Reserved', 'Frequency Shift Slider', and 'Max Shift' to achieve +/-4 semitones pitch change. The information in the wiki Analog Devices doesn't show clearly how to set those parameters.

https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/adialgorithms/pitchmodification/pitchtransposer

Second, I set 'delay reserved' to 1000, while the 'max shift' is 100. I can heard obviously that the volume does not keep stable, like vibrato effect . Can it be more stable?

Thanks in advance!

Jim.

Parents
  •      Hello Jim,

         Sorry I didn't notice your follow-up questions until now.  I had attempted to find a more general formula for the lookup.  Its relation with the delay reserved appeared somehow nonlinear so I gave up on defining it exactly (given that the algorithm doesn't perform very well anyway).  Generally the more samples reserved the better the sound, but above 2000 we run into diminishing returns.

         If you have access to a ADAU1701 board, you could go ahead and evaluate this version of base10's pitch transposer.  I don't know if they have one for the ADAU1452 -- they (or another developer) might need to build it from scratch.  Someone at ADI could recommend such a third-party developer, should you desire to go that route.  

         BTW, I also had attempted several schematics using multiple ADI pitch shifters to somehow average out or cancel out the vibrato, but ran into phase issues, producing instead a tremelo effect.  This moment I just thought of yet another possible idea -- If I get to try this and it helps, I'll share it.

    Edit    6/18/17  --  OK,  I tested my latest idea and it didn't help.  Since it's been said that the pitch shifter has trouble handling multiple frequencies at once, I tried splitting the music into frequency bands, each with their own transposer.  As with my other methods, it traded tremelo for vibrato.

     

         Best regards,

         Bob

Reply
  •      Hello Jim,

         Sorry I didn't notice your follow-up questions until now.  I had attempted to find a more general formula for the lookup.  Its relation with the delay reserved appeared somehow nonlinear so I gave up on defining it exactly (given that the algorithm doesn't perform very well anyway).  Generally the more samples reserved the better the sound, but above 2000 we run into diminishing returns.

         If you have access to a ADAU1701 board, you could go ahead and evaluate this version of base10's pitch transposer.  I don't know if they have one for the ADAU1452 -- they (or another developer) might need to build it from scratch.  Someone at ADI could recommend such a third-party developer, should you desire to go that route.  

         BTW, I also had attempted several schematics using multiple ADI pitch shifters to somehow average out or cancel out the vibrato, but ran into phase issues, producing instead a tremelo effect.  This moment I just thought of yet another possible idea -- If I get to try this and it helps, I'll share it.

    Edit    6/18/17  --  OK,  I tested my latest idea and it didn't help.  Since it's been said that the pitch shifter has trouble handling multiple frequencies at once, I tried splitting the music into frequency bands, each with their own transposer.  As with my other methods, it traded tremelo for vibrato.

     

         Best regards,

         Bob

Children
No Data