Log in

View Full Version : How to change a voice's pitch, programmatically, in real time?


Piotr Mancini
July 13th 20, 05:01 AM
I just learned how to convert an audioclip from a 33.3 rpm vinyl record to 78 rpm, here:

https://community.adobe.com/t5/audition/converting-33-recording-to-78-how/td-p/9448709?page=1

What I need is similar but probably harder. I am developing a web application based on a segment from a 2013 TV program.

https://www.youtube.com/watch?v=8MF04X2aLBw

The clone of that segment is an interactive application, under construction, seen below. Notice how the user has two degrees of freedom: the vector's magnitude and its angle.

http://www.dealey-plaza.org/this-government-as-promised/SBT-MBT-Tools/Haags-Measurement-Tool/

I already have the code (JavaScript, WebGL and Three.js) that will receive those two variables as the user drags the mouse around. The effects will be:

- Vector Magnitude changes: the voice volume increases/decreases. This is most likely the easy part.

- Vector Angle changes: as it is modified the pitch (listen to the two extremes attached) will vary.

What I need is the back-end part (library, etc).

The question is actually more general than simple signal intensity and frequency. I need to "modulate" a signal based on user's activity. Any recommendations are welcome.

TIA,

-Ramon F. Herrera
JFK Numbers

Piotr Mancini
July 13th 20, 09:01 PM
On Sunday, July 12, 2020 at 11:01:48 PM UTC-5, Piotr Mancini wrote:
> I just learned how to convert an audioclip from a 33.3 rpm vinyl record to 78 rpm, here:
>
> https://community.adobe.com/t5/audition/converting-33-recording-to-78-how/td-p/9448709?page=1
>
> What I need is similar but probably harder. I am developing a web application based on a segment from a 2013 TV program.
>
> https://www.youtube.com/watch?v=8MF04X2aLBw
>
> The clone of that segment is an interactive application, under construction, seen below. Notice how the user has two degrees of freedom: the vector's magnitude and its angle.
>
> http://www.dealey-plaza.org/this-government-as-promised/SBT-MBT-Tools/Haags-Measurement-Tool/
>
> I already have the code (JavaScript, WebGL and Three.js) that will receive those two variables as the user drags the mouse around. The effects will be:
>
> - Vector Magnitude changes: the voice volume increases/decreases. This is most likely the easy part.
>
> - Vector Angle changes: as it is modified the pitch (listen to the two extremes attached) will vary.
>
> What I need is the back-end part (library, etc).
>
> The question is actually more general than simple signal intensity and frequency. I need to "modulate" a signal based on user's activity. Any recommendations are welcome.
>
> TIA,
>
> -Ramon F. Herrera
> JFK Numbers

Wow! This used to be one of the few Usenet newsgroups that had survived the onslaught of the sons/daughters of bitches. In fact, the production and interchanges were remarkable.

The *******s killed it!

Is there ANY Usenet Newsgroup that is actually functional?

-Ramon
JFK Numbers

John Williamson
July 13th 20, 09:37 PM
On 13/07/2020 21:01, Piotr Mancini wrote:

> Is there ANY Usenet Newsgroup that is actually functional?
>
I follow a few which seem to be functional, including this one. I don't,
though, post complex questions which require complex answers, then post
a complaint about the speed or lack of response the same day.

Usenet is not a free consultancy service, though, people are generally
helpful if they can be.


--
Tciao for Now!

John.

Piotr Mancini
July 13th 20, 10:32 PM
On Monday, July 13, 2020 at 3:37:56 PM UTC-5, John Williamson wrote:
>
> Usenet is not a free consultancy service, though, people are generally
> helpful if they can be.
>
>

Actually, it is that and a lot more.

-Ramon
Usenet and Internet Pioneer and Co-Founder while at MIT.

Piotr Mancini
July 14th 20, 04:50 AM
On Sunday, July 12, 2020 at 10:58:29 PM UTC-5, JFK Numbers wrote:
> I just learned how to convert an audioclip from a 33.3 rpm vinyl record to 78 rpm, here:
>
> https://community.adobe.com/t5/audition/converting-33-recording-to-78-how/td-p/9448709?page=1
>
> What I need is similar but probably harder. I am developing a web application based on a segment from a 2013 TV program. Only the first seconds are relevant:
>
> https://www.youtube.com/watch?v=8MF04X2aLBw
>
> The clone of that segment is an interactive application, under construction, seen below. Notice how the user has two degrees of freedom: the vector's magnitude and its angle.
>
> http://www.dealey-plaza.org/this-government-as-promised/SBT-MBT-Tools/Haags-Measurement-Tool/
>
> I already have the code that will receive those two variables as the user drags the mouse around. The effects will be:
>
> - Vector Magnitude changes: the voice volume increases/decreases. This is most likely the easy part.
>
> - Vector Angle changes: as it is modified the pitch will vary.
>
> What I need is the back-end part (library, etc).
>
> The question is actually more general than simple signal intensity and frequency. I need to "modulate" a signal based on user's activity. Any recommendations are welcome.
>
>
> TIA,
>
> -Ramon F. Herrera
> JFK Numbers

This needs further explanation. I will try to be as succinct as possible.

If you prefer technical issues only and don't care about history, politics and controversy please STOP reading now. Move on.

If you haven't please watch this videoclip and pay close attention. That is the most advanced study ever done of the shooting, it was paid with the unlimited expense credit card of the Koch brothers.

https://www.youtube.com/watch?v=8MF04X2aLBw

There have been 12 "scientific" studies of the Kennedy murder. All have produced pre-ordained results, some are LN ("It was Lee, alone, 3 shots") the rest are CT. What they have in common is that they are all fraudulent. Every single one of them. See them here:

https://archive.org/details/@the_12_fraudulent_studies?sort=titleSorter

This is also important. Below is the front end to the audio-distortion application, just click on "Continue".

http://www.dealey-plaza.org/this-government-as-promised/SBT-MBT-Tools/The-12-Fraudulent-Studies/

One of my fundamental beliefs is this, as I told a book author:

- Chances of a lawyer admitting to a counterpart: "You were right all these years, it was a conspiracy"?
Hades will proverbially freeze over before that happens.

- Chances of a physician telling a dissenting colleague: "You were right on the autopsy X-rays, the fatal shot did not come from behind"
Similar to the odds above.

- Chances of an engineer, physicist, 3D designer, etc.?

Now we are talking. And I mean that in the literal sense: They ARE talking. Our colleagues are. Notice these 2 images:

http://www.jfknumbers.org/~ramon/jfk/Two-Mikes-One-is-a-Liar.png
http://www.jfknumbers.org/~ramon/jfk/My-Dear-Colleague-and-Mentor-Mike-McCormick.jpg

That is enough intro. Later, I will be asking (make that: begging) for help on the audio aspects of "The Subject That Never Dies".

The official version is a dead man walking, BTW. It is up to us, numerically trained people (who have been away from the case, always controlled by liars, err, I mean: lawyers) to solve forever that tragic event. We cannot allow the Fake News, haters of academia, science, logic, MAHA hat wearing types to destroy history.

-Ramon
JFK Numbers
ramon at jfknumbers dot org

Scott Dorsey
July 14th 20, 02:48 PM
Piotr Mancini > wrote:
>
>The question is actually more general than simple signal intensity and frequency. I need to "modulate" a signal based on user's activity. Any recommendations are welcome.

The easy way to do the job is just to break it up into subframes, and play the
subframes repeatedly at different rates or to drop them out. Play them at
twice normal speed and double each one, and you have a reasonable octave shift
with no time change.

But to be honest I am not sure a time change would be a problem for you.

The other solution is to fft it, shift it, and then ifft it. This is much
more computationally expensive although you can store your samples in
frequency-domain form so that all you have to do in realtime is the shift
and ifft.
--scott
--
"C'est un Nagra. C'est suisse, et tres, tres precis."

Piotr Mancini
July 14th 20, 03:38 PM
On Tuesday, July 14, 2020 at 8:48:32 AM UTC-5, Scott Dorsey wrote:
> Ramon F Herrera > wrote:
> >
> >The question is actually more general than simple signal intensity and frequency. I need to "modulate" a signal based on user's activity. Any recommendations are welcome.
>
> The easy way to do the job is just to break it up into subframes, and play the
> subframes repeatedly at different rates or to drop them out. Play them at
> twice normal speed and double each one, and you have a reasonable octave shift
> with no time change.
>
> But to be honest I am not sure a time change would be a problem for you.
>
> The other solution is to fft it, shift it, and then ifft it. This is much
> more computationally expensive although you can store your samples in
> frequency-domain form so that all you have to do in realtime is the shift
> and ifft.
> --scott
> --
> "C'est un Nagra. C'est suisse, et tres, tres precis."

Merci, Scott.

It seems that my real problem now is to find a library (OSS, due to my very shallow pockets) to implement your suggestions and run the application in my project's web server:

http://www.dealey-plaza.org/this-government-as-promised/SBT-MBT-Tools/Haags-Measurement-Tool/

My prime candidate is 'Q'

https://github.com/cycfi/Q

Opinions? Alternatives?

Thanks!!

-Ramon
JFK Numbers

geoff
July 14th 20, 10:49 PM
On 15/07/2020 1:48 am, Scott Dorsey wrote:
> Piotr Mancini > wrote:
>>
>> The question is actually more general than simple signal intensity and frequency. I need to "modulate" a signal based on user's activity. Any recommendations are welcome.
>
> The easy way to do the job is just to break it up into subframes, and play the
> subframes repeatedly at different rates or to drop them out. Play them at
> twice normal speed and double each one, and you have a reasonable octave shift
> with no time change.
>
> But to be honest I am not sure a time change would be a problem for you.
>
> The other solution is to fft it, shift it, and then ifft it. This is much
> more computationally expensive although you can store your samples in
> frequency-domain form so that all you have to do in realtime is the shift
> and ifft.
> --scott
>

If he means by "in real time" actually in real time like a live stream
that is trickier.

But if he wants to pitch shift a recording without changing the
time/length of the sample it is relatively trivial and practically any
DAW will do that. Vegas Pro has an option to use a third-party(?)
technique named 'Elastique' which may be more sophisticated that the
common-or-garden methods.

geoff