# Pluginval: AU plugins returning "No types" but play fine in Logic

**URL:** <https://forum.juce.com/t/pluginval-au-plugins-returning-no-types-but-play-fine-in-logic/36687>\
**Category:** Audio Plugins\
**Created:** [December 16, 2019, 1:38pm UTC](https://forum.juce.com/t/pluginval-au-plugins-returning-no-types-but-play-fine-in-logic/36687 "2019-12-16T13:38:03Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [December 16, 2019, 1:38pm UTC](https://forum.juce.com/t/pluginval-au-plugins-returning-no-types-but-play-fine-in-logic/36687/1 "2019-12-16T13:38:03Z")

</div>

I am tasked unifying a couple of plugins for different platforms. The AU plugins I got fail validation in pluginval:

```auto
pluginval v0.2.3 - JUCE v5.4.3
Started validating: /Library/Audio/Plug-Ins/Components/RevoiceProLink.component
Random seed: 0x59dfcb8
Validation started: 16 Dec 2019 1:22:04pm

Strictness level: 5
-----------------------------------------------------------------
Starting test: pluginval / Scan for known types: /Library/Audio/Plug-Ins/Components/RevoiceProLink.component...
Num types found: 0
!!! Test 1 failed: No types found
FAILED!! 1 test failed, out of a total of 1

Finished validating: /Library/Audio/Plug-Ins/Components/RevoiceProLink.component
*** FAILED: 1 TESTS

```

But they succeed in Logic:

```auto
validating Audio Unit Revoice Pro Link by Synchro Arts:

    AU Validation Tool
    Version: 1.6.1a1 
    Copyright 2003-2013, Apple Inc. All Rights Reserved.
    Specify -h (-help) for command options

--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'RvRP' - 'SyAt'
--------------------------------------------------
Manufacturer String: Synchro Arts
AudioUnit Name: Revoice Pro Link
Component Version: 4.1.6 (0x40106)

* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
RevoiceProLink Create - Instances: 1
Time to open AudioUnit: 5.169 ms
WARM:
RevoiceProLink Create - Instances: 2
Time to open AudioUnit: 0.076 ms
FIRST TIME:
Time for initialization: 0.006 ms
RevoiceProLink Delete - Instances: 1

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

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

* * PASS
--------------------------------------------------
VERIFYING REQUIRED PROPERTIES:

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

  VERIFYING PROPERTY: Bypass Effect
    PASS

* * PASS
--------------------------------------------------
VERIFYING OPTIONAL PROPERTIES:

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

VERIFYING CUSTOM UI
Cocoa Views Available: 1
  RevoiceProLink_CocoaViewFactory
    PASS

VERIFYING CLASS INFO
    PASS

TESTING HOST CALLBACKS
    PASS

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

# # # 1 Global Scope Parameters:

* * PASS
--------------------------------------------------
FORMAT TESTS:

Reported Channel Capabilities (implicit):
      [-1, -1]

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 X X X X X 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
CallHostTransportState Error correction: 1 Current 0.000000 Last:0.000000 Correct: 0.000000 SampleTime: 0.000000
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

1 Channel Test:
Render Test at 512 frames
  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

Test MIDI
  PASS

* * PASS
--------------------------------------------------
RevoiceProLink Delete - Instances: 0
AU VALIDATION SUCCEEDED.
--------------------------------------------------

validation result: successfully validated

updating properties of AU Revoice Pro Link by Synchro Arts…done.

```

However, the commandline auval seems to fail as well:

```auto
➜ ~ auval -v aufx SyAT RvRP

    AU Validation Tool
    Version: 1.6.1a1
    Copyright 2003-2013, Apple Inc. All Rights Reserved.
    Specify -h (-help) for command options

--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'SyAT' - 'RvRP'
--------------------------------------------------
ERROR: Cannot get Component's Name strings
ERROR: Error from retrieving Component Version: -50

* * FAIL
--------------------------------------------------
TESTING OPEN TIMES:
FATAL ERROR: didn't find the component

```

Although auval seems to be gone anyway, since `auval -a` only finds apple components on my system now… (This is Mojave)

Are there different mechanisms to load AU plugins?  
Is this an issue with backwards compatibility?

What is the advice to keep my plugins valid for pluginval?

---

<div class="post-metadata">

**Author:** ![dave96](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/dave96/32/8487_2.png) [@dave96](https://forum.juce.com/u/dave96)\
**Post date:** [December 16, 2019, 10:07pm UTC](https://forum.juce.com/t/pluginval-au-plugins-returning-no-types-but-play-fine-in-logic/36687/2 "2019-12-16T22:07:00Z")

</div>

I think you need to restart the component manager when you add new plugins:  
`killall -9 AudioComponentRegistrar`

Does it find it after running that from the Terminal?

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [December 16, 2019, 10:13pm UTC](https://forum.juce.com/t/pluginval-au-plugins-returning-no-types-but-play-fine-in-logic/36687/3 "2019-12-16T22:13:37Z")

</div>

Unfortunately it is not a matter of restarting, I have that plugin installed for a few weeks already (and obviously restarted several times in the meantime).

The major difference I can see is, the new method looks only into the Info.plist inside the bundle. The plugin has no `.r` and `.exp` files (and seems not to need them).  
To me it seems there are two methods to query the components, and the older one seems no longer to be used.

Even if I were to add a .r and .exp file (you have to dig deep to find any information about what to put in), I didn’t manage to get XCode to actually use them.

---

<div class="post-metadata">

**Author:** ![grhn](https://avatars.discourse-cdn.com/v4/letter/g/f08c70/32.png) [@grhn](https://forum.juce.com/u/grhn)\
**Post date:** [December 31, 2019, 2:23pm UTC](https://forum.juce.com/t/pluginval-au-plugins-returning-no-types-but-play-fine-in-logic/36687/4 "2019-12-31T14:23:22Z")

</div>

At least on Mojave, auval seems to find plugins as expected when run in Terminal, but finds only system plugins when run in Iterm2 or over SSH.

This also seems to be the case when trying to check an AU with pluginval from the command line.

---

<div class="post-metadata">

**Author:** ![yfede](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/yfede/32/506_2.png) [@yfede](https://forum.juce.com/u/yfede)\
**Post date:** [January 7, 2020, 10:30am UTC](https://forum.juce.com/t/pluginval-au-plugins-returning-no-types-but-play-fine-in-logic/36687/5 "2020-01-07T10:30:10Z")

</div>

> [@grhn](#):
>
> At least on Mojave, auval seems to find plugins as expected when run in Terminal, but finds only system plugins when run in Iterm2 or over SSH.

To solve that, have a look at this: [macos - Some Audio Unit code (incl. auval) does not work in iTerm - Stack Overflow](https://stackoverflow.com/questions/56993800/some-audio-unit-code-incl-auval-does-not-work-in-iterm)
