This has been on my mind a long time - Pd really should provide a way to query the audio devices to whatever accuracy the underling system is capable of giving it.
I believe portaudio already does this - Pd can just piggyback on that and/or follow the portaudio model for whatever specialized I/O APIs it talks to. cheers Miller On Wed, Oct 19, 2016 at 01:42:25PM +0200, Simon Iten wrote: > > > On 19 Oct 2016, at 10:20, Roman Haefeli <reduz...@gmail.com> wrote: > > > > [replying to pd-list] > > > > Hi Simon > > > > On Wed, 2016-10-12 at 09:30 +0200, Simon Iten wrote: > >> it would very much surprise me, if pd could do that in a generic way > >> on all platforms. even daws or live struggle to do this *right* on > >> different systems. > > > > I'm not sure it's totally impossible. With jack, the latency is > > dependent on jackd's settings and I don't whether Pd has a change to > > know those. With ALSA, everything you need to know to calculate the > > latency Pd already knows. > but there is also an ADC and DAC latency, is jack or alsa aware of those as > well? i believe typical adc/dac conversion can take up to 1.5ms… > > > > >> why don't you patch a little tester app that sends some generated > >> sounds, preferably with very clear attack, out and record this back > >> in. that way you can measure the (roundtrip) latency of the whole > >> system. > > > > Of course, that is a way. "Knowing" the latency instead of "measuring" > > it would be so nice, though. > of course knowing is better than measuring :) > > i think it is easy enough to measure roundtrip latency, it is harder to > measure just “output” latency. > > > > > >> with a click track and a good musician that plays with it (that you > >> record) you should be able to align generated sounds and live > >> recorded material. this is how we do it in the studio if necessary :) > >> but it is far from an automated process... > > > > To make things at least a bit more feasible, I make the measured or > > calculated latency a configuration parameter, so that when you fire Pd > > up the next time with the same setup, the patch remembers the latency. > that sounds reasonable. > > > > Roman > > > > > >> Am Sonntag, 9. Oktober 2016 schrieb Roman Haefeli : > >>> Hi all, > >>> > >>> I'm currently investigating audio latency compensation in Pd. The > >>> goal > >>> is for recorded audio to align well with generated sounds timing- > >>> wise. > >>> I'm wondering now what methods people already have employed in > >>> order to > >>> achieve that goal. > >>> > >>> So far, I was able to find the formulas to calculate the correct > >>> latency when using ALSA and JACK audio back-ends as long as the > >>> paramaters 'Delay(msec)' and 'Block size' for ALSA, respectively > >>> 'Frames/period' and 'Periods/buffer' for JACK are known. Currently, > >>> this approach works, but requires me to tell the latency > >>> compensation > >>> calculator what driver I'm using and what the current settings are. > >>> Also, it yet only works on Linux, but not with any other drivers > >>> like > >>> CoreAudio, ASIO, etc. > >>> > >>> How can I achieve correct latency compensation reliably on any > >>> platform? Is there some more generic way? > >>> > >>> I'm also looking at IEM's mediasettings library, hoping it would > >>> deliver the required information to calculate latency. The > >>> README.txt > >>> says 'get/set Audio and MIDI settings within Pd', but I wasn't able > >>> to > >>> find a way to _get_ current settings other than 'advance 100', > >>> which > >>> probably refers to 'Delay(msec)' set to '100'. But still, if it > >>> would > >>> give all Pd audio settings, how would it know about current jackd > >>> settings? > >>> > >>> Roman > > _______________________________________________ > > Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list > > UNSUBSCRIBE and account-management -> > > https://lists.puredata.info/listinfo/pd-list > > <https://lists.puredata.info/listinfo/pd-list> > _______________________________________________ > Pd-list@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list