- From: Raymond Toy <rtoy@google.com>
- Date: Thu, 20 May 2021 11:48:18 -0700
- To: "public-audio@w3.org Group" <public-audio@w3.org>, public-audio-comgp@w3.org
- Message-ID: <CAE3TgXG2a1y=X2uBb7gSx1jguVxe9DqKK1q3=0U2Feaf-ArReQ@mail.gmail.com>
May 20Attendees Philippe Milot, Jack Schaedler, Raymond Toy, Ruth John, Hongchan, Paul Adenot, Christoph Guttandin, Michel Buffa, Matthew Paradis Minutes - 16:00-16:10 UTC (9:00-9:10 am PDT): Set up calls - 16:10-18:00 UTC (9:10-11:00 am PDT): Priority-2 <https://github.com/WebAudio/web-audio-api-v2/issues?q=is%3Aopen+is%3Aissue+label%3Apriority-2> and others <https://github.com/WebAudio/web-audio-api-v2/issues?q=is%3Aissue+is%3Aopen+-label%3Apriority-1+-label%3Apriority-2> - Issue 14: Real-time pitch adjustment <https://github.com/WebAudio/web-audio-api-v2/issues/14> - Raymond: Any try out the phaze demo? - Jack: I haven’t but tried a different one. - Paul: It’s alright, but not super high quality. - Jack: This makes sense to have it builtin because you have access to fast algorithms. - Paul: Media element has this builtin so browsers have it already. Media element has a preserve pitch attribute. Seems to be geared towards voice. - Hongchan: Soundtrap uses Autotune (licensed) - Paul: That’s cool. - Jack: We have 3-4 different algorithms. People really like these, even if it’s not the most spiffy method. It would be nice to have some open source version. - Paul: Looked at phaze. Pretty basic JS. Takes 40% cpu on my mac. - Hongchan: SIMD would help? - Paul: Of course. - Paul: Pitch adjustment has been requested several times over the years to stretch ABSN. - Hongchan: Is processing node the right approach? - Paul: Yeah, you add it to the graph and it’s pitch-shifted.. - Jack: I think this is higher priority than, say, hard-sync. - Paul: Let’s say it’s a node with an input that outputs a time-stretched output. - Hongchan: It’s pretty complicated this way. It’s weird to have a separate time-stretch and preserve pitch node. - Paul: Could add an attribute for this in ABSN. - Jack: That would be a good start. - Hongchan: But that doesn’t work with streaming. - Paul: Does it need samples in the future? - Raymond: Would you just have a delay, like the compressor does today? - Paul: Summary: Add attribute (preservePitch defaulting to false) to ABSN and add pitch-shifting node (as long as it doesn’t change duration)? - Jack: - Here are the docs for the Elastique pitch/time shifter: https://licensing.zplane.de/uploads/SDK/ELASTIQUE-PRO/V3/manual/elastique_pro_v3_sdk_documentation.pdf - • int CElastiqueProV3If::GetFramesNeeded () - Returns the required number of input samples for the upcoming processing block. - This function has to be called before each processing step to assure correct input - buffer sizes. - 4.1.4.9 virtual int CElastiqueProV3If::GetMaxFramesNeeded ( ) [pure - virtual] - returns the maximum number of frames needed based on the minimum combined factor - passed on CreateInstance - Jack: Some interesting points here re: buffering and latency if this were to be a pure audio/effect node - Jack: Memory resident update to ABSN would also be super duper useful. - [Paul updates issue] - Issue 41: Informing AudioWorklet if output is not connected? <https://github.com/WebAudio/web-audio-api-v2/issues/41> - Raymond: No comments since TPAC, so ok with just closing this. - Paul: Not high priority. - Hongchan, Jack: Agree - Raymond: Just lower priority. - Paul: Done. - Issue 16: Worker support for BaseAudioContext <https://github.com/WebAudio/web-audio-api-v2/issues/16> - Raymond: I see that we now do [Exposed=Window] - Paul: MediaStreams is discussing transferable streams, so we can have this in an AudioContext. Most problems are gone. - Hongchan: What’s the utility? - Paul: A breakout box, and transferable media streams makes it work. - Hongchan: We should link to that in the issue. - Paul: I’ll find it and link it. - Jack: I'm still reading through #16. #16 is a very good issue to address. - Jack: I just want to signal boost :D - Paul: We’re going to do it most likely. - Jack: Excellent. - Raymond: I think Hongchan did an experiment. - Hongchan: Yeah, I did. It didn’t work because we refer to document and such all over. I stopped there. - Issue 19: Customizable windowing function for Analyser node <https://github.com/WebAudio/web-audio-api-v2/issues/19> - Raymond: So, 4 window types, but not clear if you can change it. - Raymond: I prefer setting it in the constructor and not being changeable. Create a new node if you want a new window. - Ruth: Can't think of a use case where you would want to change either. - Raymond: Makes it really simple to describe and spec. - Paul: Any expectations on continuity if you change the window? - Paul: What happens if we change fftsize? - Raymond: Huh. Don’t know - Paul: Ah, everything is reset if the size changes. - Raymond: Conclusion is to do as proposed and allow changing the window, which resets all state. - Issue 20: ConvolverNode is limited to two channels <https://github.com/WebAudio/web-audio-api-v2/issues/20> - Paul: Do we just say we want it? - Raymond: Complicated because of the 4-channel matrixing operation. We need to specify how it works. - Paul: Interesting that Yotam uses 12 channels. - Raymond: Hongchan’s omnitone does something similar - Hongchan: 1st order ambisonics uses 8 channels which is split to 4 stereo convolvers. - Raymond: I think we should do it, but need to figure out how to specify this. - Hongchan: We could add an option to specify this. - Raymond: Works for me; just need to find the right name. - [Raymond to update the issue] - Issue 21: loadHRTFDatabase for SpatialPanner <https://github.com/WebAudio/web-audio-api-v2/issues/21> - Raymond: Haven’t we discussed this already? - Hongchan: This is about allowing custom databases. - Raymond: Looks like it’s up to Matt. :-) Want to make it work for the BBC at least. - Matthew: I’ll look into it. - Raymond: Ok. We’ll wait for new info. - Issue 25: Configurable sample rate conversion quality <https://github.com/WebAudio/web-audio-api-v2/issues/25> - Paul: I stand by what I said last. But nothing more to contribute. - Raymond: What about WaveShaper? - Paul: What’s the benefit there? - Raymond: Already specced to linear interp for the curve. - Paul: Oversampling with linear doesn’t seem good. - Raymond: Yeah. Linear interp for 4x oversampling isn’t good. Maybe it's better to have more points. - Paul: We do sinc resample for ABSN. Quite difficult to get right. - Raymond: CHrome does linear. Pretty awful if rate is far from 1. - RAymond: I think it makes sense and we should do it, so all comments from TPAC are still true. - Paul. Yeah. - [Raymond to update issue] - Issue 11: Storing AudioBuffers in native sample bit depth <https://github.com/WebAudio/web-audio-api-v2/issues/11> - Paul: WebCodecs supports many bit depths. - Raymond: Do we really want 4-bit DPCM. Complicates things a lot. - Paul: Makes sense not to have DPCM. - Paul: We then have new Audiobuffer(webcodec audio). Transfers the data to the AudioBuffer. The WebCodec buffer is detached so it has 0 length. - Hongchan: Is this proposed? - Paul: It’s basically agreed on by WebCodec, but spec may not be updated yet. It’s useful. - Hongchan: Is this priority-2? - Paul: We get a lot of requests - Hongchan: So priority-1? - Paul: I’m ok with that. - Raymond: Same, but think we want to make it more explicit so I can create an Audiobuffer with the desired depth. - [Discussion on what this means and how to do it] - [Raymond to update the issue]
Received on Thursday, 20 May 2021 18:48:48 UTC