• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Glissando: smoothing touch drags
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Glissando: smoothing touch drags


  • Subject: Re: Glissando: smoothing touch drags
  • From: Richard Dobson <email@hidden>
  • Date: Wed, 15 Feb 2012 10:32:16 +0000

On 15/02/2012 09:09, Hari Karam Singh wrote:
I'm inclined to guess that filtering isn't the right solution. If you
have velocity V, motions below which sound smooth to the listener and
above which sound disjoint then all that filtering is going to do is
effective slow velocities greater than V down to less than V.  If the
motion involves rapid direction changes then filtering will
effectively limit the pitch bend range as well, the faster the
motion.


Perhaps it is clearly to describe it as controlled interpolation (whether as a line or a curve) - adding in the extra steps you would otherwise get from your faster GUI update rate. It will always go from the old value to the hnew value, over time, so as already mentioned there is an aspect of latency to consider. We can't avoid very rapid changes having some sort of quantising or modulating effect, if only for psychoacoustic reasons. The primary job is to create smooth glitch-free changes under "normal" use. We don't generally perform vibrato (AM or FM) by wiggling a slider or knob very fast (well we can try, but it probably won't sound too good) - we create a modulator oscillator to do it for us. So if the design depends on extreme motions, perhaps it needs a rethink.



I would think the problem is purely that the UI and/or audio update
rates are too slow.  Why is your audio callback only running at 20Hz?


Yes, you do need a decent update speed, purely for user comfort and naturalness. But update speed is not the only issue. You are also limited by the number of widget control steps available. To describe it most simply - if a slider control only has a range of 100 pixels, you can't get a full MIDI precision of 128 steps however fast you update the GUI. Some sliders may use 80 steps or fewer. If the slider is meant to control frequency over the full audio range, there is no way it can produce a smoothly continuous traverse without interpolation between the available control positions. You may well need to arrange the result to follow a log law (semitones/octaves rather than frequency; dB rather than raw amplitude) in which case there is significant computation to be done anyway; and running a fast GUI update will likely cost a lot more CPU overhead than passing the plain control stream through a simple filter.

In the end, this is an established an well-tested method, and easy enough to implement - why limit yourself to guessing?

Richard Dobson



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • RE: Glissando: smoothing touch drags
      • From: Hari Karam Singh <email@hidden>
References: 
 >Glissando: smoothing touch drags (From: Jean-François Brouillet <email@hidden>)
 >Re: Glissando: smoothing touch drags (From: Hari Karam Singh <email@hidden>)

  • Prev by Date: RE: Need to access/manipulate mixed output: MultiChannelMixer + AudioConverter, or mix manually?
  • Next by Date: RE: Glissando: smoothing touch drags
  • Previous by thread: Re: Glissando: smoothing touch drags
  • Next by thread: RE: Glissando: smoothing touch drags
  • Index(es):
    • Date
    • Thread