Re: fixed buffer sizes?
Re: fixed buffer sizes?
- Subject: Re: fixed buffer sizes?
- From: William Stewart <email@hidden>
- Date: Tue, 16 Feb 2010 18:03:47 -0800
On Feb 16, 2010, at 8:40 AM, Paul Davis wrote:
We (ardour/mixbus development team) have been grappling with an issue
with a family of plugins that for now I'm going to leave
unnamed. Using google, its clear that several other AU hosts,
including Reaper, Fruity Loops and Digital Performer have all had
issues with these plugins over the years. At one point, even Logic had
some issues with them as well.
Distilling what we've observed down to its essence, our question is
this: should a host be able to call AudioUnitRender() with any number
of frames as long it is below the last-set maximum-frames-per-slice
value?
yes
Or is there some unstated model that has allowed some plugin
developers to have an expectation that the host will use the same
frame cnt for every render call for every plugin, until the next
time maximum-frames-per-slice is set?
no, though I am sure that some have assumed this
It is very clear that other host developers have grappled with these
issues (just read various Reaper release notes and search for "fixed
size buffers"; or look on various DP or FL forums from a couple of
years ago), we are wondering if:
1) the expected behaviour of the host is to always run the entire
"graph"
(not necessarily an AUGraph) with a fixed buffer size (in between
any resets, naturally) ?
no
2) if not, is there any interest in extending auval to detect
some specific cases that we've found where plugins break (badly)
when the buffer size (ie. the frame count passed to AudioUnitRender)
this is actually already a test in auval:
RENDER TESTS:
Input Format: AudioStreamBasicDescription: 2 ch, 44100 Hz,
'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
Output Format: AudioStreamBasicDescription: 2 ch, 44100 Hz,
'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
Render Test at 512 frames
Slicing Render Test at 64 frames
PASS
is varied (but remains below the maximum-frames-per-slice property)?
The behaviour we've seen will never be revealed by testing single
plugin, even with multiple instances of the plugin. This makes the
use of auval to detect the problem rather difficult ...
well, so I'm not sure what else to do
_______________________________________________
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
_______________________________________________
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