Is there a complete (app+extension) AUv3 project?

I tried to follow that but it doesn’t install the Auv3 (Mac), the Standalone-app (Mac) is working fine and if I look in the folder of the App, the appex is in there. But if I open Ableton or Logic it dosen’t show the Plugin (I know Ableton can’t run AUv3s but they are listed under AUs anyways, the just can’t be opened). Do AUv3s have to be signed or anything like that?

Or is it a problem if I do both v2 and v3?

If it’s not showing up at all, perhaps it failed to register. Try running killall -9 AudioComponentRegistrar in a Terminal, and then reopen the standalone. Then, run auval -al from the Terminal, and check the output to see whether your AUv3 is mentioned (it should have your plugin’s name, and an “unknown location”). If the plugin doesn’t show up, then there’s probably an issue with the app/appex bundles.

If the plugin shows up in the auval output, then make a note of the plugin’s identifier codes (three four-letter groups). Then, pass these to auval -v <identifier codes> and check that validation succeeds. If validation fails, your plugin will be disabled for your safety and you’ll need to fix the validation issues before it can be used.

If validation is successful, then the plugin should be usable in DAWs like Logic and the AudioPluginHost.

It’s not in the list. But XCode gives me an issue

Nomonyx Devolop - AUv3 AppExtension isn’t code signed but requires entitlements. It is not possible to add entitlements to a binary without signing it.

So for me it looks like it only works if it is signed? Or are there any requirements for the GUI (as far as I know at least AUv3 for iOS have those, right?).

Sry if these are stupid questions, just stumbled upon that post and thought wouldn’t be a bad idea to add AUv3 support, too.^^

For testing, you should be able to set the Signing Certificate to “Sign to run locally” in the “Signing & Capabilities” settings page for the AUv3 and Standalone targets. For distribution, you’ll need to use a suitable certificate. You could try enabling signing and check whether that allows your AUv3 to be found.

Also, make sure you’re using Terminal.app when running auval. For some reason, other terminals sometimes have difficulties detecting non-apple plugins.

Thanks a lot. That worked.

Hi Reuk,

Thanks for your valuable comments in this thread and the other threads. I have been following those and could resolve many problems on my own.

But here I am stuck, I require your help in getting my AUv3 plugin registered in the macOS system.

My AUv3 plugin does not get registered if the number of input or output channels are more than 2. However same implementation work for AUv2.

I have tried N number of things, but nothing worked, could you please suggest how should I go about it?

Including Projucer settings,
image

AUv3 Validation logs:

> auval -a | grep Amplifier

 aufx Auv2 MyCo  -  MyCompany: Amplifier
 aufx Auv3 MyCo  -  MyCompany: Amplifier    Cannot open component: 4099


>auval -v aufx Auv3 MyCo

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

--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'Auv3' - 'MyCo'
--------------------------------------------------
Manufacturer String: MyCompany
AudioUnit Name: Amplifier
Component Version: 1.1.4 (0x10104)

* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
FATAL ERROR: OpenAComponent: result: 4099,0x1003

AUv2 validation logs

auval -v aufx Auv3 MyCo

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

--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'Auv3' - 'MyCo'
--------------------------------------------------
Manufacturer String: MyCompany
AudioUnit Name: Amplifier
Component Version: 1.1.4 (0x10104)

* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
FATAL ERROR: OpenAComponent: result: 4099,0x1003
[hyd-lab07-mac:/Users/sporwal/Documents]73 % auval -v aufx Auv2 MyCo

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

--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'Auv2' - 'MyCo'
--------------------------------------------------
Manufacturer String: MyCompany
AudioUnit Name: Amplifier
Component Version: 1.1.4 (0x10104)

* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
Time to open AudioUnit:         10.244 ms
WARM:
Time to open AudioUnit:         0.313  ms
This AudioUnit is a version 2 implementation.
FIRST TIME:
Time for initialization:        0.005 ms

* * PASS
--------------------------------------------------
VERIFYING DEFAULT SCOPE FORMATS:
Input Scope Bus Configuration:
 Default Bus Count:1
    Bus Name: Input
    Default Format: AudioStreamBasicDescription:  3 ch,  44100 Hz, Float32, deinterleaved

Output Scope Bus Configuration:
 Default Bus Count:1
    Bus Name: Output
    Default Format: AudioStreamBasicDescription:  3 ch,  44100 Hz, Float32, deinterleaved

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

* * PASS
--------------------------------------------------
VERIFYING RECOMMENDED PROPERTIES:
  VERIFYING PROPERTY: Latency
    PASS
  VERIFYING PROPERTY: Tail Time
    PASS
  VERIFYING PROPERTY: Bypass Effect
    PASS

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

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

VERIFYING CUSTOM UI
Cocoa Views Available: 1
  JUCE_AUCocoaViewClass_a89a1aa0f683d438
    PASS

HAS FACTORY PRESETS
    ID:   0    Name: Untitled

VERIFYING CLASS INFO
    PASS

TESTING HOST CALLBACKS
    PASS

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

# # # 1 Global Scope Parameters:
Parameter ID:2211743
Name: Gain
Parameter Type: Generic
Values: Minimum = 0.000, Default = 0.500, Maximum = 1.000
Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable 
  -parameter PASS

Testing that parameters retain value across reset and initialization
  PASS

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

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

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   3-3
                                                                                                                  X     

* * PASS
--------------------------------------------------
RENDER TESTS:

Input Format: AudioStreamBasicDescription:  3 ch,  44100 Hz, Float32, deinterleaved
Output Format: AudioStreamBasicDescription:  3 ch,  44100 Hz, Float32, 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:  3 ch,  44100 Hz, Float32, deinterleaved
  PASS

Bad Max Frames - Render should fail
  PASS

Checking parameter setting
Using AudioUnitSetParameter
Using AudioUnitScheduleParameter
  PASS

Checking ramped parameter scheduling
  PASS

Test MIDI
  PASS

* * PASS
--------------------------------------------------
AU VALIDATION SUCCEEDED.
--------------------------------------------------

You should define the outputs and input’s in the code if you have a special channel configuration and remove the one in Projucer. You can also see this in the following tutorial:

https://docs.juce.com/master/tutorial_plugin_examples.html

I don’t know any DAW that supports 3 input and 3 output channels. You need to tell the host what kind of channels they are. For normal plugins, you may decide between stereo and mono channels. You can configure this in the method isBusesLayoutSupported.

This looks like a bug in the AUv3 wrapper. I have a potential fix on the way.

2 Likes

If the fix is simple could you post it here?

1 Like