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
--
================================iOS app Thicket available on iTunes store.
================================
Do not post admin requests to the list. They will be ignored.