Apple's 'auval' can't see my Symbiosis-ported AU plugins.

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Hi,

I've had a report that the AU version of my plugin 'Gater' fails AU validation in Logic Pro in OS X 10.6.8. Is this the same validation that is performed by Apple's 'auval' tool? I ask because I've been unable to get auval to even register the existence of any of my AU plugins, or any other third-party AU plugins. If I type:

auval -a

I get a list of Apple plugins and nothing alse. My AU plugins run fine, as far as I can tell, in Garage Band, Reaper, Studio One 2 and AU Lab - two of which are made by Apple! I've used Symbiosis's method 2 to port the VSTs over, i.e. copying the VST to the pre-built component package.

Steven Cook.
http://www.spcplugins.com

Post

I've come across this issue before myself. No, Logic's AU validation is not the same as auval. I'm not exactly sure of the details, but Logic is even more picky about validation than auval.

I tested the plug-in out, and it does indeed fail validation. Here's the report from Logic:

Code: Select all

PUBLISHED PARAMETER INFO:

# # # 17 Global Scope Parameters:
ERROR: -10879 IN CALL Parameter Value's String
ERROR: -10879 IN CALL Parameter Value's String
ERROR: -10879 IN CALL Parameter Value's String

* * FAIL
--------------------------------------------------
AU VALIDATION FAILED: CORRECT THE ERRORS ABOVE.
--------------------------------------------------


validation result: failed validation
Hope that helps.

Post

Thank you. At least it gives me some idea of where to look. I wish I could get auval to work, though.

Steven Cook.
http://www.spcplugins.com

Post

Since your AUs seem to work in GarageBand, AULab, etc., do they pass validation using "auval -v" after you build the component (in Xcode I assume)?

I'm not quite clear on what you mean by auval not working.

Post

Weird, because auval -a lists Gater just fine at my end (on Mac OS X 10.6.8 ).

BTW, it reports the same failures as Logic:

Code: Select all

  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
         AU Validation Tool
         Version: 1.6.1a1 
          Copyright 2003-2007, Apple, Inc. All Rights Reserved.

         Specify -h (-help) for command options
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

--------------------------------------------------
VALIDATING AUDIO UNIT: 'aumf' - 'SPCg' - 'SPCP'
--------------------------------------------------
Manufacturer String: SPC Plugins
AudioUnit name: Gater
Component Version: 1.3.0 (0x10300)

* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
Time to open AudioUnit:         17.670 ms
WARM:
Time to open AudioUnit:         2.919  ms
FIRST TIME:
Time for initialization:        0.004 ms

* * PASS
--------------------------------------------------
VERIFYING DEFAULT SCOPE FORMATS:
Input Scope Bus Configuration:
 Default Bus Count:1
    Bus Name: input 1
    Default Format: AudioStreamBasicDescription:  2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved

Output Scope Bus Configuration:
 Default Bus Count:1
    Bus Name: output 1
    Default Format: AudioStreamBasicDescription:  2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved

* * PASS
--------------------------------------------------
VERIFYING REQUIRED PROPERTIES:
  VERIFYING PROPERTY: Sample Rate
    PASS
  VERIFYING PROPERTY: Stream Format
    PASS
  VERIFYING PROPERTY: Maximum Frames Per Slice
    PASS
  VERIFYING PROPERTY: Last Render Error
    PASS

* * PASS
--------------------------------------------------
VERIFYING RECOMMENDED PROPERTIES:
  VERIFYING PROPERTY: Latency
    PASS
  VERIFYING PROPERTY: Tail Time
WARNING: Recommended Property is not supported

  VERIFYING PROPERTY: Bypass Effect
WARNING: Recommended Property is not supported


* * PASS
--------------------------------------------------
VERIFYING OPTIONAL PROPERTIES:
  VERIFYING PROPERTY Supported Number of Channels
    PASS
  VERIFYING PROPERTY Host Callbacks
    PASS
  VERIFYING PROPERTY Instrument Count
    PASS

* * PASS
--------------------------------------------------
VERIFYING SPECIAL PROPERTIES:

VERIFYING CUSTOM UI
Carbon View Components Available: 1
  auvw SPCg SPCP  -  SPC Plugins: Gater AUView
    PASS

Cocoa Views Available: 0

HAS FACTORY PRESETS
    ID:   0    Name: Program 01
    ID:   1    Name: Program 02
    ID:   2    Name: Program 03
    ID:   3    Name: Program 04
    ID:   4    Name: Program 05
    ID:   5    Name: Program 06
    ID:   6    Name: Program 07
    ID:   7    Name: Program 08
    ID:   8    Name: Program 09
    ID:   9    Name: Program 10
    ID:  10    Name: Program 11
    ID:  11    Name: Program 12
    ID:  12    Name: Program 13
    ID:  13    Name: Program 14
    ID:  14    Name: Program 15
    ID:  15    Name: Program 16

VERIFYING CLASS INFO
    PASS

TESTING HOST CALLBACKS
    PASS

* * PASS
--------------------------------------------------
PUBLISHED PARAMETER INFO:

# # # 17 Global Scope Parameters:
Parameter ID:0
Name: Gate 1
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:1
Name: Gate 2
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:2
Name: Gate 3
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:3
Name: Gate 4
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:4
Name: Gate 5
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:5
Name: Gate 6
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:6
Name: Gate 7
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:7
Name: Gate 8
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:8
Name: Gate 9
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:9
Name: Gate 10
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:10
Name: Gate 11
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:11
Name: Gate 12
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:12
Name: Gate 13
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:13
Name: Gate 14
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:14
Name: Gate 15
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:15
Name: Gate 16
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Parameter ID:16
Name: Mode
Parameter Type: Generic
Values: Minimum = ERROR: -10879 IN CALL Parameter Value's String
, Default = ERROR: -10879 IN CALL Parameter Value's String
, Maximum = ERROR: -10879 IN CALL Parameter Value's String

Flags: Values Have Strings, Readable, Writable 
  -parameter FAIL

Testing that parameters retain value across reset and initialization
  PASS

* * FAIL
--------------------------------------------------
FORMAT TESTS:

Reported Channel Capabilities (explicit):
      [2, 2]  

Input/Output Channel Handling:
1-1   1-2   1-4   1-5   1-6   1-7   1-8   2-2   2-4   2-5   2-6   2-7   2-8   4-4   4-5   5-5   6-6   7-7   8-8
                                          X                                                                       

* * PASS
--------------------------------------------------
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

Render Test at 64 frames, sample rate: 22050 Hz
Render Test at 137 frames, sample rate: 96000 Hz
Render Test at 4096 frames, sample rate: 48000 Hz
Render Test at 4096 frames, sample rate: 192000 Hz
Render Test at 4096 frames, sample rate: 11025 Hz
Render Test at 512 frames, sample rate: 44100 Hz
  PASS

Checking connection semantics:
Connection format:
AudioStreamBasicDescription:  2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
  PASS

Bad Max Frames - Render should fail
  PASS

Checking parameter setting
Using AudioUnitSetParameter
Using AudioUnitScheduleParameter
  PASS

* * PASS
--------------------------------------------------
AU VALIDATION FAILED: CORRECT THE ERRORS ABOVE.
--------------------------------------------------

Post

If I enter: auval -a, I get only Apple AUs listed,

If I enter: auval -v aufx SPCg SPCP, I get:

ERROR: Cannot get Component's Name strings
ERROR: Cannot get Component's Info strings
ERROR: Error from retrieving Component Version for resource: -3000
FATAL ERROR: didn't find the component

If you're thinking that I don't know how to use Terminal, you're right (-;, i'm basically a newbie on OS X. BTW, I'm also using 10.6.8.

With regards to the actual problem reported with my plugin, I think I've tracked it down - another one of those "doh" moments )-;

Steven Cook,
http://www.spcplugins.com

Post

According to the auval output above, your plug-in's class is "aumf", not "aufx", which is why auval can't find it when you type in auval -v aufx ...

Also (I'm sure you know this, but just in case) make sure that your component is located either in the /MacintoshHD/Library/Audio/Plug-Ins/Components or /Users/<username>/Library/Audio/Plug-Ins/Components folder. You can have Xcode automatically copy the built component to the appropriate folder in Build Phases.

Post

LemonLime wrote:According to the auval output above, your plug-in's class is "aumf", not "aufx", which is why auval can't find it when you type in auval -v aufx ...
I don't think this is the problem as I tried both "aufx" and "aumf" - I've changed it to "aufx" now because I've removed MIDI reception from Gater and changed the appropriate field in .r to "kAudioUnitType_Effect", but it didn't work previously with "aumf".
LemonLime wrote:Also (I'm sure you know this, but just in case) make sure that your component is located either in the /MacintoshHD/Library/Audio/Plug-Ins/Components or /Users/<username>/Library/Audio/Plug-Ins/Components folder. You can have Xcode automatically copy the built component to the appropriate folder in Build Phases.
Yes, I've tried it (and my previous AUs) in both these locations but it doesn't make any difference. None of them show up and neither do any third-party AUs. I've just tried [as I type] installing a third-party AU, restarting just-to-make-sure, running Terminal, typing "auval -a" and the only thing I get is a list of Apple AUs. I'm sure I'm somehow using auval wrong...

Steven Cook,
http://www.spcplugins.com

Post

I'm going to try bumping this because I've made no progress with this problem: I run Terminal, enter auval -a and get a list of Apple AUs - no third-party AUs appear, including my own. What am I doing wrong?

Post

The names are case sensitive BTW, it's caught me out a couple of times.
Also your resource version number has to match everywhere in your plug-in. So maybe 'kVersion' has two different values in the resource file and elsewhere?

Post

How are using Symbiosis? What method are you using?

Post

Thank you quikquak and yeahtuna: After doing some more experiments this morning it seems that the problem is (somehow) to do with my Mac because if I try the same command line calls on a different Mac my plug-ins appear on the list along with the Apple ones and validate without any errors. My auval appears to be faulty...

Steven Cook,
http://www.spcplugins.com

Post

Is it a 32 vs 64 bit issue?

Post

32 vs 64 bit? I've no idea. My Mac and the other Mac I tried are both 64 bit, my plug-ins are 32/64 bit. I think auval defaults to 32 bit mode but I'm not sure how that affects things - I used the same "auval -a" command on both Macs followed by the same "auval -v aumf SCgp SPCP" command on both Macs. Mine doesn't work!

Post

Maybe you're system is looking at a cached version. Have you trashed you're AU cache?

Post Reply

Return to “DSP and Plugin Development”