ΣSigmaStudio Ask AI Русский Log in

ADAU1701- pitch modification

SigmaDSP & SigmaStudio JackieTan Nov 28, 2012 00:00 13 replies Original on forum ↗
Thread Summary

Thread Summary

The user inquired about the relationship between 'max shift' and 'delay reserved' in the pitch modification algorithm and experienced volume instability. The 'Delay Reserved' parameter defines the buffer size, affecting audio quality and memory usage, while 'Max Shift' sets the frequency change range. Volume instability is a known side effect of the current algorithm, with no available workaround. The user considered using an external ARM processor with large SRAM for pitch modification, connecting via I2S to the ADAU1701, but decided against it due to the complexity and non-mandatory nature of the feature.
AI Generated Content
Subscribe
JackieTan Question
Nov 28, 2012 00:00

Hi,

I tried the algorithm on pitch modification. 2 questions:

First, I can not understand the relation between 'max shift' and 'delay reserved'.

Second, I set delay to 900, while the max shift is 5. I can heard obviously that volume does not keep stable, like 'sea wave' . Can it be more stable?

Thanks in advance!

Jackie

ADIApproved Reply
Dec 13, 2012 00:00

Hi Jackie,

The pitch shift algorithm uses a circular delay buffer to create the effect. The "Delay Reserved" parameter defines how big the buffer is. A higher number will give you better audio quality, but the tradeoff is that more data memory is used. The "Max Shift" parameter defines the range of the change in frequency. A larger value gives the frequency shift a wider range, but the user has less fine control over the amount of shift.

This algorithm is not very advanced, so there are some side effects like the instable signal level that oscillates over time. This is something that can hopefully be addressed when this algorithm is modified or updated in the future. At the present time, there is no workaround for that particular side effect.

ADIApproved Reply
Dec 14, 2012 00:00

Hi Jackie:

Can you tell us more about your application that requires the pitch to be more stable. There are ways to do so but we haven't had the time and/or need to do so.

Thank you

Miguel

KJBob Reply
Dec 15, 2012 00:00

Hi Miguel,

A popular use for pitch shift is to adjust the key of a karaoke track to fit a singer's range. Both consumer and "pro" karaoke machines offer such a Key Changer. The ones I've heard add a slight yet annoying vibrato to the music. To me, this makes them mainly suitable for practice.

The needed shift is: New pitch = Old pitch x 2^(N/12)

where N is an integer that may run from minus 12 (drop an octave) to plus 5 (raise a fifth).

Out of curiosity I tried SigmaStudio's pitch shift with pop music on a ADAU1701. In line with Brett's comment, the present algorithm is not quite up for this task.

As we know, SigmaStudio and the ADAU1701 in particular were originally designed merely for audio post-processing. The additional applications developed since have really been quite amazing. The -1701 could easily add EQ to a karaoke machine, but for now cannot perform two vital functions -- key shift, and reverb. The ADAU144x has enough delay for ADI's reverb block, but needs an external codec for analog in/out.

Best regards,

Bob

JackieTan Reply
Dec 16, 2012 00:00

Thanks all.

Yes, I need a pitch(key) shift algorithm same as Bob said.

I am not familiar with audio DSP. But I do with ARM. I can setup a data flow like below:

Audio in - 1701 - I2S - external ARM processor with large SRAM - pitch modification - I2S - 1701 - DAC out

If it works, I have to find algorithm which I can make it in C language. Does it make sense? Any good suggestion? Thanks in advance.

BR/Jackie

KJBob Reply
Dec 17, 2012 00:00

Hi Jackie,

First, I feel the need to apologize for my earlier post where I had assumed that the -1701 could do a passable echo effect "like that found on karaoke machines." When I actually tried that out it was so embarrassing that I had to go back and edit my post(s). So, sorry for this misleading info. Since this I've learned to test all my suggestions on the hardware before offering them on this forum.

I have no experience with ARM (other than knowing that the whole world runs on these things; and they can process MP3 audio & similar tasks that SigmaDSP's streaming architecture can't yet touch). I also have no experience with getting digital audio into and out from a -1701. However, looking at the -1701's data sheet, its I2C port appears to be for control, not audio data. Instead, you would connect your audio streams to the -1701's multipurpose pins that have been programmed as serial (audio) data I/O -- see the data sheet, pages 45-47. Since the -1701 has no on-board ASRCs, your ARM processor will need to sync its serial data to the -1701's master clock. In this way you'll be using the -1701 as a "codec with ambition" -- and can additionally perform EQ.

Bob

JackieTan Reply
Dec 17, 2012 00:00

Hi Bob,

I ought to calculate the delay time - how much delay I can get by 1K RAM when fs is 48K, before I started my project. I must thank you for your kindly online help.

Regarding the pitch modification, I will not add this function in my project. It's nice to have, but it is not mandatory.

Thanks,

Jackie

ADIApproved Reply
Dec 17, 2012 00:00

Hi Bob,

That's correct. The ADAU1701's I2C port is for control, not data. For audio streaming, the proper method is to use the serial data (I2S) port. Typically, micocontrollers have GPIO pins that can be programmed to operate with I2S interfaces. There are open source examples available on community coding sites.

audiolab1 Reply
Jan 10, 2013 00:00

In which version of SigmaStudio is this algorithm available?

ADIApproved Reply
Jan 10, 2013 00:00

It was added in SigmaStudio 3.7.4 BETA.

For future reference, there is a change log here that details additions and updates in each new version of SigmaStudio: https://wiki.analog.com/resources/tools-software/sigmastudio/readme

Prodigy Reply
May 18, 2018 00:00

Hi, Bob! Hey, guys! I found this video to create a Pitch Shifting effect. That sounds pretty good! Is it possible to create a similar effect in Sigmastudio? Thank you! Sincerely, Alex. Delicious Max/MSP Tutorial 7: Pitch shifting - YouTube

KJBob Reply
May 18, 2018 00:00

Hi Alex,

Interesting video! The pitch-shifting patch demonstrated there operates within the Max MSP software running on a PC -- see the entry at Max (software) - Wikipedia

Since this program creates the effect itself rather than programming a chip, it can use all the PC's resources including a much more powerful processor and virtually infinite memory (by embedded programming standards). Thus the effect cannot be duplicated in a ADAU1701.

Best regards,

Bob

Prodigy Reply
May 20, 2018 00:00

For my new project, I need a Pitch Shifter. What can I do to get this effect?

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin