Re: What could cause error -4 in Logic validation?
Re: What could cause error -4 in Logic validation?
- Subject: Re: What could cause error -4 in Logic validation?
- From: Oliver Larkin <email@hidden>
- Date: Thu, 02 Oct 2014 22:46:13 +0100
I hit this same issue trying to validate the steinberg auwrapper against the 10.9 sdk with xcode5
I’ve fixed it by modifying auwrapper.mm to return null for the kAudioUnitProcessSelect and kAudioUnitProcessMultipleSelect selectors in AUWrapperLookup, instead of pointers to AUMethodProcess and AUMethodProcessMultiple in AUPlugInDispatch.cpp, which end up calling AUBase::ProcessBufferLists() and AUBase::ProcessMultipleBufferLists() which are no-ops and return kAudio_UnimplementedError.
I think to fix it properly, ProcessBufferLists and ProcessMultipleBufferLists need to be implemented in auwrapper
oli
struct AUWrapperLookup {
static AudioComponentMethod Lookup (SInt16 selector)
{
if (selector == kAudioUnitProcessSelect || selector == kAudioUnitProcessMultipleSelect)
return NULL;
AudioComponentMethod method = AUBaseProcessLookup::Lookup(selector);
if (method) return method;
method = AUMusicLookup::Lookup(selector);
if (method) return method;
method = AUBaseProcessMultipleLookup::Lookup(selector);
if (method) return method;
return NULL;
}
};
On 29 Sep 2014, at 18:20, Howard Moon <email@hidden> wrote:
> Since my old software works in Mavericks, I decided to see if I could compile my AudioUnit wrapper under my old 10.7.x partition in Xcode 4.2.x, but continue to compile the VST portion under my 10.8.x partition in Xcode 4.4.x. Whaddyaknow…. it works! I can now validate and run in 10.7, 10.8, and 10.9, including running in Logic Pro X.
>
> Not the easiest way to accomplish my goal, but it works, and that's the important thing!
>
> If someone has a *real* solution to getting my wrapper to work in Mavericks, I'd be happy to hear of it, though!
>
> -Howard
>
> On Sep 29, 2014, at 7:54 AM, Howard Moon <email@hidden> wrote:
>
>> I tried modifying CAAudioUnit.cpp so that it ignores the OS version, but that doesn't change anything. I don't think that file is actually included in my project anywhere. Perhaps auval uses it? I also tried defining that symbol myself, but again no luck
>>
>> What is it about Mavericks that is NOT true in OS X 10.8.5 that thinks that myAudioUnit implements AudioUnitProcess and AudioUnitProcessMultiple? And given that it makes that assumptions, what is it that prevents it from then executing that code?
>>
>> There has got to be SOME way to get an AudioUnit compiled in Xcode 4.4.1 under OS X 10.8.5 using the 10.7 Base SDK to validate correctly in OS X 10.9. But how???
>>
>> (By the way, my OLD code validates fine in Mavericks. It was built using 10.6 as the Base SDK, though, not 10.7.)
>>
>> Thanks,
>> Howard
>>
>> On Sep 26, 2014, at 1:33 PM, Howard Moon <email@hidden> wrote:
>>
>>> The error in OS 10.8.5 goes away when I return my Deployment Target to 10.6. Apparently, using 10.7 as the Deployment Target causes it to no longer include the AUMIDIEffectBase class, which I need for my plug-in to handle MIDI input (i.e., registering as type 'aumf').
>>>
>>> Still no clue as to why __MAC_10_7 is undefined, leading to that validation error in Mavericks (regardless of what I set the Deployment Target to).
>>>
>>> -Howard
>>>
>>> On Sep 26, 2014, at 12:36 PM, Howard Moon <email@hidden> wrote:
>>>
>>>> I tried setting my Deployment Target to 10.7 in all projects and sub-projects, and also set my compiler version to LLVM GCC 4.2 for all configurations (after reading about a similar problem with iPhone projects) , but it didn't help.
>>>>
>>>> I notice also that it fails in OS X 10.8.5, also, but with a different function:
>>>>
>>>> Test MIDI
>>>> ERROR: -4 IN CALL MusicDeviceSendMIDI
>>>>
>>>> Any thoughts, anyone?
>>>>
>>>> Thanks,
>>>> Howard
>>>>
>>>> On Sep 26, 2014, at 10:34 AM, Howard Moon <email@hidden> wrote:
>>>>
>>>>> I'm not sure what in the plist would cause a render failure. It passes everything up until that point, when I get this:
>>>>>
>>>>> RENDER TESTS:
>>>>> Implements: AudioUnitProcess, AudioUnitProcessMultiple
>>>>> 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
>>>>> ERROR: -4 IN CALL AudioUnitRender
>>>>>
>>>>> * * FAIL
>>>>> --------------------------------------------------
>>>>> AU VALIDATION FAILED: CORRECT THE ERRORS ABOVE.
>>>>> --------------------------------------------------
>>>>>
>>>>> From that "implements" line above, it looks like the following code is causing it (from CAAudioUnit.cpp):
>>>>>
>>>>> OSStatus CAAudioUnit::ProcessMultiple (AudioUnitRenderActionFlags & ioActionFlags,
>>>>> const AudioTimeStamp & inTimeStamp,
>>>>> UInt32 inNumberFrames,
>>>>> UInt32 inNumberInputBufferLists,
>>>>> const AudioBufferList ** inInputBufferLists,
>>>>> UInt32 inNumberOutputBufferLists,
>>>>> AudioBufferList ** ioOutputBufferLists)
>>>>> {
>>>>> #if defined(__MAC_10_7) || defined(__IPHONE_4_0)
>>>>> return AudioUnitProcessMultiple (AU(), &ioActionFlags, &inTimeStamp, inNumberFrames,
>>>>> inNumberInputBufferLists, inInputBufferLists, inNumberOutputBufferLists, ioOutputBufferLists);
>>>>> #else
>>>>> return -4/*unimpErr*/;
>>>>> #endif
>>>>> }
>>>>>
>>>>> That implies to me that __MAC_10_7 is not defined. But the wrapper library code, the wrapped vst plug-in, and the wrapper itself all have their Base SDK set to 10.7. So shouldn't that symbol be defined? If not, what the proper way for me to make sure it IS defined?
>>>>>
>>>>> (Could it be related to the Deployment target? I have mine set to 10.6.)
>>>>>
>>>>> Thanks,
>>>>> Howard
>>>>>
>>>>> On Sep 26, 2014, at 9:55 AM, Oli Larkin <email@hidden> wrote:
>>>>>
>>>>>> i've had some issues with the plist file and the extra bits steinberg define for the wrapper... maybe double check those
>>>>>>
>>>>>>
>>>>>> On 26 Sep 2014, at 17:45, Howard Moon wrote:
>>>>>>
>>>>>>> I finally found a listing that says that is "unimpErr", which means an "unimplemented core routine". Perhaps the auwrapper from the VST 3 SDK does not implement something that is required in Mavericks but not i previous OSes? Does anyone know what that might be, or how to find out? There's no other details in the validation listing from Logic.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Howard
>>>>>>>
>>>>>>> On Sep 26, 2014, at 9:30 AM, Howard Moon <email@hidden> wrote:
>>>>>>>
>>>>>>>> Does anyone know what might cause "error -4 in AudioUnitRender" during the render tests when validating a plug-in? I am seeing this error in Logic's AudioUnit validation tests, but ONLY in OS X 10.9.x, NOT in 10.8.x. What does -4 mean? If you enable the AudioUnit anyway, it seems to work fine. It just fails validation for some reason, and only in 10.9. Any ideas?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Howard
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> 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
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>
>>>
>>> _______________________________________________
>>> 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
>
>
> _______________________________________________
> 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