Re: What sort of timer should I use for my sequencer?
Re: What sort of timer should I use for my sequencer?
- Subject: Re: What sort of timer should I use for my sequencer?
- From: Brian Willoughby <email@hidden>
- Date: Sat, 15 Jan 2011 14:06:31 -0800
Greg is right, Morgan. However, I would add my comment that you're
probably working too hard by calculating the time for each and every
sample. Instead, I would imagine that your sequencer deals with
events that start at a particular time and end at a particular time.
You would then work in reverse, by calculating the starting sample
offset based upon the starting time, and the ending sample number
based on the end time. Then, just iterate your processing on the
samples in that range. There should be no need to keep track of the
time for every individual sample, unless you're executing a
conditional on every sample - and that would certainly be a waste of
CPU.
In other words, process in terms of sample ranges (buffers), not
individual samples. Then sequence in terms of event times, with
start and end times converted to sample offsets. If an offset lies
outside of the current sample buffer, then just process to/from the
edge of the buffer, or skip the processing entirely if nothing
happens in a given buffer.
Brian Willoughby
Sound Consulting
On Jan 15, 2011, at 12:42, Gregory Wieber wrote:
This has been covered extensively in past discussions here. (Search
for coreaudio mailing list entries on 'metronome', 'sequencer',
etc.) Counting samples is the most accurate way to go.
On Sat, Jan 15, 2011 at 12:39 PM, Morgan Packard
<email@hidden> wrote:
I've been calculating time by simply counting samples (each time I
calculate a sample, I tick my time count forward) and dividing by
sample rate. I suspect this isn't the best way. It seems to me
that it would be better to have a sequencer running in in a
separate thread from my audio generation code. NSTimer would be my
first choice, but is not accurate enough for music. How can I set
up a timer which is accurate enough for music?
_______________________________________________
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