Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Real-time pitch adjustment #2443

Open
svgeesus opened this issue Mar 27, 2018 · 8 comments
Open

Real-time pitch adjustment #2443

svgeesus opened this issue Mar 27, 2018 · 8 comments
Labels
category: new feature Substantive changes that add new functionality. https://www.w3.org/policies/process/#class-4 Needs Discussion The issue needs more discussion before it can be fixed.

Comments

@svgeesus
Copy link
Contributor

Split out from https://github.com/WebAudio/web-audio-api/issues/938 as a separate issue because this is orthogonal to on-the-fly decoding of compressed loop buffers.

@svgeesus
Copy link
Contributor Author

@mdjp mdjp transferred this issue from WebAudio/web-audio-api Sep 16, 2019
@svgeesus
Copy link
Contributor Author

@jas-ableton
Copy link

Yes, this would be very useful to have built into web audio sample playback. Being able to vary the playback speed while maintaining a constant pitch, or vary pitch while maintaining a constant playback speed would allow developers to implement lots of very useful workflows that are found in common DAWs (synchronizing recorded audio to a timeline, for example).

In a DAW like Ableton Live, this concept is referred to as "warping": https://www.ableton.com/en/manual/audio-clips-tempo-and-warping/

@padenot
Copy link
Member

padenot commented Jun 11, 2020

The variety of possible approaches makes this a good candidate to have (a) prototype(s) using AudioWorklet, to investigate the space in terms of algorithm (PSOLA/WSOLA/phase vocoder, a million others), and API.

This would probably be a new node to have maximal flexibility.

@rtoy
Copy link
Member

rtoy commented Jun 11, 2020

I think we also agreed that it should be a processing node and not a source node. You feed it some audio, and it will pitch adjust the input.

@rtoy
Copy link
Member

rtoy commented Oct 20, 2020

TPAC 2020:

@padenot said this has been implemented in an AudioWorklet. Next step is to get the code and see how it works and propose a new node and API for this.

@rtoy
Copy link
Member

rtoy commented Oct 20, 2020

@padenot found the link: https://github.com/olvb/phaze/

@padenot
Copy link
Member

padenot commented May 20, 2021

AudioWG virtual F2F summary:

  • This seems very useful as a basic building block
  • Two things considered:
    • Add preservesPitch defaulting to false to AudioBufferSourceNode -- like its HTMLMediaElement counterpart (but with a default value that is the opposite for compatibility), this changes from resampling to time-stretching
    • Add a new node, PitchShiftNode (placeholder name), that changes the pitch of incoming audio. This might need to delay the incoming audio by a number of samples depending on various parameters (algorithm quality, pitch shifting ratio, etc.)

@mdjp mdjp transferred this issue from WebAudio/web-audio-api-v2 Sep 29, 2021
@hoch hoch removed the priority-2 label Sep 14, 2022
@hoch hoch added category: new feature Substantive changes that add new functionality. https://www.w3.org/policies/process/#class-4 Needs Discussion The issue needs more discussion before it can be fixed. labels Aug 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: new feature Substantive changes that add new functionality. https://www.w3.org/policies/process/#class-4 Needs Discussion The issue needs more discussion before it can be fixed.
Projects
None yet
Development

No branches or pull requests

6 participants