Post

Replies

Boosts

Views

Activity

AUv3 -- deinit / dealloc never called
Hi, I am designing an AUv3 plugin for Logic / Garageband. I heavily relied upon the AUv3Filter demo supplied by Apple due to lack of documentation on building AUv3 plugins. However, I noticed a problem both in my plugin and Apple's AUv3Filter demo plugin. When I add a deinit function to Apple's AUv3FilterDemo.swift class, it never gets called. Not when the plugin is removed from a Logic project, not when Logic exits, never. My plugin, unsurprisingly, has the same problem (dealloc / Objective-C). It's pretty serious however, because my plugin is a wrapper for a C++ class that has a lot of stuff going on and needs to be deconstructed when it finishes running. I spent a few hours with Apple's demo trying to track down any strong references that might persist after the plugin exits, but nothing I did seemed to make any difference. Anybody else have this issue?
3
1
1.7k
Jun ’20
Core MIDI in background service
Hi, I have a background service running as a launch daemon. I need it to connect to a MIDI device. However, MIDIClientCreate() fails with error 268435459. Searching online, I found this corresponds to a kernel error -- MACH_SEND_INVALID_DEST. When I run the same binary through terminal, it works perfectly. Is there something I need to add to the launch daemon's plist to enable access to CoreMIDI? The CoreMIDI documentation says that function calls are using IPC to communicate with the CoreMIDI service, which makes sense given the error MACH_SEND_INVALID_DEST. But what I don't understand is why the IPC is apparently failing. Thanks.
1
0
751
Mar ’21
AUv3 Resize Window
Hi, I have a couple of preset sizes that the user can choose from in my UI, and am trying to tell the host (Logic/Garageband) when to resize. I read elsewhere that you can simply resize the plugin's NSView and the host will respond accordingly, but that doesn't seem to be the case -- Logic doesn't seem to care what size my plugin's view is, and I end up either with a lot of empty space or the plugin going outside the bounds of the window when trying to resize to a specific size. I can get resizing working another way by overriding NSView::setFrame, and letting the user drag the window border, but I don't get to set a specific resolution this way (because the plugin is just reacting to what Logic tells it). I can see from other plugins that at least old-style audiounits were capable of automatically resizing the containing window based on user input... Wondering if I am missing a step here. Thanks, Jon
0
0
690
Aug ’20
(Logic/Garageband) AUv3 Rendering At Startup
Hi, I am developing an AUv3 plugin for Logic/Garageband. It is an aumu type plugin -- MIDI input, audio output. My plugin has an on-screen keyboard for previewing sounds. However, the internal render block isn't being called until A) Logic detects MIDI input, or B) the user starts playback / recording. The result is that my plugin's on-screen keyboard does not produce any sound until one of those two conditions are met. Then it works fine for the rest of the time that Logic project is open. Any suggestions for forcing Logic to start rendering sooner?
1
1
525
Jun ’20