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

Ugly noises when changing the time parameter of delay effects #14

Closed
alemangui opened this issue Jul 31, 2016 · 6 comments
Closed

Ugly noises when changing the time parameter of delay effects #14

alemangui opened this issue Jul 31, 2016 · 6 comments
Assignees

Comments

@alemangui
Copy link
Owner

When changing the time parameter of delay effects we get an unusual noise. The change in parameters should be smooth enough to avoid unwanted side effects.

@JohnPaulHarold
Copy link
Contributor

@alemangui is this specifically when futzing around with the time param in the Dub Delay effect you noticed this? I think the original developer of this effect (or at least, where I ported it from) mentions this at the end of the blog post, http://blog.chrislowis.co.uk/2014/07/23/dub-delay-web-audio-api.html He calls it 'dezippering.' I... quite like it, but I can see why it might be seen as unwanted.

@alemangui
Copy link
Owner Author

I noticed it in the regular vanilla delay first. I'm still unsure as to whether or not it needs to be removed, but I will probably make a branch with a smooth ramp-to-value of the audio params to see if there's a difference.

@alemangui alemangui self-assigned this Aug 1, 2016
@alemangui
Copy link
Owner Author

I've been taking a look at this and still struggling to remove the clicks.

Dezippering is basically a technique by which the parameters are changed smoothly to avoid clicks or unwanted sounds. It used to be baked into the web audio API until about a year ago - when the working group decided to remove it. The discussion is long (WebAudio/web-audio-api#76).

Some of the arguments for maintaining the dezippering effect automatically in the browser had to do with the clicks when setting the delay time. At the time when Chris Lowis wrote the Dub Delay article, the dezippering effect was still shipped within Chrome, which is why he describes it. Nonetheless, today dezippering is no longer automatically and you can hear the clicks when moving the sliders in his blog post.

I will see how setting the delay time can be achieved smoothly.

@JohnPaulHarold
Copy link
Contributor

Hmm, yes, reading that post and also looking Chris Lowis' example early on in the chain, I think I had a different idea of what was meant by dezippering :-( Clicks are bad, but the quirky sonar type 'pings' are cool (I thought), but that's a different thing.

From reading that ticket, it seems the advised approach it to tween your way from start to the target value. I assume you've tried this already?

@ https://github.com/alemangui/pizzicato/blob/master/src/Effects/Delay.js#L79
this.delayNode.delayTime.value.setTargetAtTime(time, Pz.context.currentTime, 0.1)

my apologies upfront, I can't checkout the code right now to see if the above even works.

@alemangui
Copy link
Owner Author

I was wrong. The current noises are an effect of dezippering indeed. While it was removed from the Web Audio spec, it hasn't been removed from the browsers (at least not Chrome and Firefox). You can see more info here: http://stackoverflow.com/questions/38814005/in-web-audio-whats-the-difference-between-using-valuex-and-setvalueattimex

In any case, I don't think it's worth doing modifications just now - especially given that this effect is likely to go away with the removal of dezippering in upcoming browser versions.

@diegodorado
Copy link

Should this already be resolved? I still hear the clicks when I change an effect parameter.

Chrome Version 72.0.3626.119 (Official Build) (64-bit)
Linux inspirion 4.15.0-45-generic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants