void AudioBufferSourceNode::startGrain(double when, double grainOffset)
{
    // Duration of 0 has special value, meaning calculate based on the entire buffer's duration.
    startGrain(when, grainOffset, 0);
}
void AudioBufferSourceNode::noteGrainOn(double when, double grainOffset, double grainDuration)
{
    startGrain(when, grainOffset, grainDuration);
}
void AudioBufferSourceNode::noteGrainOn(double when, double grainOffset, double grainDuration, ExceptionCode& ec)
{
    startGrain(when, grainOffset, grainDuration, ec);
}