Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add macos text service #32

Merged
merged 2 commits into from
Feb 21, 2024
Merged

Add macos text service #32

merged 2 commits into from
Feb 21, 2024

Conversation

mzgoddard
Copy link
Contributor

Depends on #30 and #31.

Summary

Add an XPC Service, called ATDriverGenericService, to the xcode project. This service handles communication between the AudioUnit and the lib/cli.js nodejs executable.

Changes

  • Add ATDriverGenericService to xcode project
  • Add service build dependency to Extension
  • Add unix socket path to cli.js
  • Create directory for socket and unlink old leftover sockets in cli.js

Description

XPC Services are useful for separating some work into another process. In this case this change uses a service to separate socket communication with a nodejs process. This way the blocking calls to bsd socket apis are done in a process other then the one the audio unit runs its synthesis in.

The extension creates an XPCConnection designating the target service and protocol. With that, the extension calls methods on a proxy with the same interface as the protocol. The methods queue messages to be sent. When the service is created and starts, it receives and processes those message. As implemented this service than produces messages in the format cli.js expects and opens a unix family socket to send the message.

Adding an Service in Xcode

When adding the service Xcode added the service as a build dependency to the container application. For the extension to be able to use the service it has been added as a build dependency to the extension as well.


class ATDriverClientUnix {

class SocketResource {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made this RAII type to automatically handle closing the socket. In the case of how its currently used, when the resource goes out of scope in _sendEvent, it'll de-initialize and close the socket. This way we don't have to be careful of all the edge cases around throw, return, and other scenarios of the socket left hanging open.

@mzgoddard
Copy link
Contributor Author

Some alternatives I considered before the XPCService and BSD socket approach here:

@mzgoddard mzgoddard marked this pull request as draft January 11, 2024 16:53
@mzgoddard mzgoddard force-pushed the add-macos-text-service branch from 9851ade to 84f6f0c Compare January 25, 2024 15:30
@mzgoddard mzgoddard marked this pull request as ready for review January 25, 2024 15:31
@mzgoddard mzgoddard requested a review from jugglinmike January 25, 2024 15:54
Copy link
Contributor

@jugglinmike jugglinmike left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm unable to build the project on my system; here's the error:

Build input file cannot be found: '/Users/mike/projects/bocoup/facebook-aria/aria-at-automation-driver/src/macos/ATDriverGenericMacOS/ATDriverGenericService/ATDriverClientIP.swift'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it?

I'll be happy to debug this with you on a call if that'd help, though it sounds we may just need to add a file from your machine. Let me know!

Separately, it looks like macOS allows the app to write to a directory in ~/Library/Containers. Since this isn't included among the alternatives you mentioned, I'm wondering if it's worth exploring. Would it be viable to place the socket there so that the app could pass messages to the AT Driver server without the need for the daemon?

lib/cli.js Outdated
const yargs = require('yargs/yargs');
const { hideBin } = require('yargs/helpers');

const createCommandServer = require('./create-command-server');
const createVoiceServer = require('./create-voice-server');
const NAMED_PIPE = '\\\\?\\pipe\\my_pipe';
const WINDOWS_NAMED_PIPE = '\\\\?\\pipe\\my_pipe';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This name leaves something to be desired (I'm being blunt because I chose it). Now seems like a good time to switch to a more sensible name--along the lines of the one you've proposed for macOS.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what a better name would be. https://learn.microsoft.com/en-us/windows/win32/ipc/named-pipes I'd have to go look up more about them. It's not a unix socket or local socket. I guess there is some kind of system server for pipes. The name isn't a path, just path-like. Windows doesn't create a file on the file system like a unix/local socket does.

Do you mean the my_pipe part?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WINDOWS_PIPE_NAME would have the same tense/phrasing that MACOS_SOCKET_UNIX_PATH has. Is that what you are thinking?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean that at_driver_generic would be far more descriptive than my_pipe. Now that this patch is blocked on the new one, I'll do this in a follow-up.

lib/cli.js Outdated Show resolved Hide resolved
lib/cli.js Outdated Show resolved Hide resolved
@jugglinmike
Copy link
Contributor

It looks like the references to "ATDriverClientIP.swift" are being removed in gh-33, so maybe we just need to cherry-pick those changes here...

@mzgoddard
Copy link
Contributor Author

It looks like the references to "ATDriverClientIP.swift" are being removed in gh-33, so maybe we just need to cherry-pick those changes here...

I think we can cherry-pick 97ef8e8 for the ...IP.swift deletion and the signing change.

@mzgoddard mzgoddard mentioned this pull request Jan 31, 2024
@mzgoddard
Copy link
Contributor Author

I cherry-picked the change from #33. You should be able to build and debug locally now.

I applied your requested changes to cli.js in its own PR, #36.

@jugglinmike
Copy link
Contributor

I applied your requested changes to cli.js in its own PR, #36.

How come?

I've merged gh-36; could you rebase this?

@jugglinmike
Copy link
Contributor

Since this branch doesn't conflict with main, I was able to merge it locally for review purposes. However, the at-driver server doesn't report any text at all. I also tried validating using the method from gh-33, but that came up empty, too. Shouldn't both of these show the text that I pass into the say command?

Also, did you see my question about ~/Library/Containers?

@mzgoddard
Copy link
Contributor Author

Also, did you see my question about ~/Library/Containers?

Yes, if we had the app sandbox enabled, we'd have to use a socket path in ~/Library/Containers. We don't have sandbox enabled. We don't need to. Its required for publishing through the App Store, but we don't plan to do that.

The XPCService is used to parallelize communicating over a socket with nodejs. The parallelization is the key point I think. The alternatives I mentioned were for resolving the parallelization as well.

I think we want the socket communication to occur somehow on a different thread or process than the speech synthesis request. I don't know what kind of issues would happen if we didn't do that, but I think this is a good goal for making a reliable tool.

The XPCService handles a lot of parallelization issues for us, like race conditions and resource management.

@mzgoddard
Copy link
Contributor Author

I applied your requested changes to cli.js in its own PR, #36.

How come?

I've merged gh-36; could you rebase this?

#36 helps test #35 and #37 together as well. I figured removing the socket path in this PR would make it easier to locally merge with #36 to test without rebasing #32 if we made further changes to #36. Sorry I didn't express that earlier.

I'll rebase.

ATDriverGenericService is an XPC Service that the Audio Unit extension
messages to forward messages to the lib/cli.js server. This step is used
to keep the AudioUnit speedy.

- Add unix socket path to cli.js
- Create directory for socket and unlink old leftover sockets in cli.js
- Add ATDriverGenericService to xcode project
- Add service dependency to Extension
@mzgoddard mzgoddard force-pushed the add-macos-text-service branch from f6cd6f2 to d4cfdb5 Compare February 1, 2024 02:31
@mzgoddard
Copy link
Contributor Author

Since this branch doesn't conflict with main, I was able to merge it locally for review purposes. However, the at-driver server doesn't report any text at all. I also tried validating using the method from gh-33, but that came up empty, too. Shouldn't both of these show the text that I pass into the say command?

@jugglinmike You're probably encountering an issue with the solution using an Application Extension. The extension discovery method doesn't handle duplicates well. The safest way to test it would be with a new system like a virtual machine. Outside that you need to delete any duplicate extensions.

My first step for troubleshooting this kind of thing is to clean the build folder in Xcode, and wait a few minutes before rebuilding. If you have the extension selected in Spoken Content in System Settings you should select another speech synthesizer.

A hacky way you can test if its finding the latest build is to change the name in ATDriverGenericMacOSExtensionAudioUnit.speechVoices.

@jugglinmike
Copy link
Contributor

I'll rebase.

After running with this new version of the branch, the say command exits with an error.

expand to review the error message
$ say hello
2024-02-05 20:45:03.784 say[2052:16831] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000035ae620] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-05 20:45:03.785 say[2052:16831] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000035ae620] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-05 20:45:03.786 say[2052:16831] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000035ae620] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-05 20:45:03.787 say[2052:16831] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000035ae620] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-05 20:45:03.787 say[2052:16831] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000035ae620] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-05 20:45:03.788 say[2052:16831] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000035ae620] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)

You're probably encountering an issue with the solution using an Application Extension. The extension discovery method doesn't handle duplicates well. The safest way to test it would be with a new system like a virtual machine.

If contributing to this project is going to require a virtual environment, we'll definitely need to document that in the contribution guidelines (ideally within the commit which introduces the requirement).

Outside that you need to delete any duplicate extensions.

My research into your recommendation has identified the "Extension" section of macOS's System Preferences. While the audio unit is listed there, the associated UI is so vague (an unlabeled check box) that I can't infer what it actually does:

image

Unchecking a box seems like an unorthodox method to remove something, but I tried it, anyway. That didn't help.

Can you be a little more specific?

A hacky way you can test if its finding the latest build is to change the name in ATDriverGenericMacOSExtensionAudioUnit.speechVoices.

I've interpreted your statement to mean, "modify the file src/macos/ATDriverGenericMacOS/ATDriverGenericMacOSExtension/Common/Audio Unit/ATDriverGenericMacOSExtensionAudioUnit.swift," however, that doesn't seem to be correct. There is no new voice listed after I applied the following change, cleaned the project, and ran the project again:

--- a/src/macos/ATDriverGenericMacOS/ATDriverGenericMacOSExtension/Common/Audio Unit/ATDriverGenericMacOSExtensionAudioUnit.swift       
+++ b/src/macos/ATDriverGenericMacOS/ATDriverGenericMacOSExtension/Common/Audio Unit/ATDriverGenericMacOSExtensionAudioUnit.swift       
@@ -167,7 +167,7 @@ public class ATDriverGenericMacOSExtensionAudioUnit: AVSpeechSynthesisProviderAu
                 logger.log("speechVoices")
             }
             return [
-            AVSpeechSynthesisProviderVoice(name: "ATDriverGenericMacOSExtensionVoice", identifier: "ATDriverGenericMacOSExtension", primaryLanguages: ["en-US"], supportedLanguages: ["en-US"])
+            AVSpeechSynthesisProviderVoice(name: "ATDriverGenericMacOSExtensionVoice2", identifier: "ATDriverGenericMacOSExtension2", primaryLanguages: ["en-US"], supportedLanguages: ["en-US"])
             ]
         }
         set { }

Can you be a little more specific?

@mzgoddard
Copy link
Contributor Author

I'll rebase.

After running with this new version of the branch, the say command exits with an error.
expand to review the error message

Oh. Interesting. Can you dump log show --process ATDriverGeneric?

I'm thinking there are two high level possibiliities here:

  • I introduced a bug and it tries to instantiate but fails.
  • It's trying to instantiate the AudioUnit from a build that was deleted.

The second of those is a wild guess. I'm not sure its even possible.

Either way that log will hopefully give us clues.

You're probably encountering an issue with the solution using an Application Extension. The extension discovery method doesn't handle duplicates well. The safest way to test it would be with a new system like a virtual machine.

If contributing to this project is going to require a virtual environment, we'll definitely need to document that in the contribution guidelines (ideally within the commit which introduces the requirement).

That sounds good to me. I think we have been there from the beginning. Needing software installed or configuration changes at the user level on operating systems for it to be used by third party applications I think fulfills this. We can't have multiple installed copies of the voices.

Outside that you need to delete any duplicate extensions.

My research into your recommendation has identified the "Extension" section of macOS's System Preferences. While the audio unit is listed there, the associated UI is so vague (an unlabeled check box) that I can't infer what it actually does:

image

Unchecking a box seems like an unorthodox method to remove something, but I tried it, anyway. That didn't help.

Can you be a little more specific?

By delete I meant for you to delete the built files from the file system.

The screen you show toggles permission for the application extension by extension interface. The extensions you have installed in that screen both have com.apple.AudioUnit extensions. For example I have an application extension installed for Pixelmator Pro which contains multiple extension interfaces and can be toggled in part.

image

A hacky way you can test if its finding the latest build is to change the name in ATDriverGenericMacOSExtensionAudioUnit.speechVoices.

I've interpreted your statement to mean, "modify the file src/macos/ATDriverGenericMacOS/ATDriverGenericMacOSExtension/Common/Audio Unit/ATDriverGenericMacOSExtensionAudioUnit.swift," however, that doesn't seem to be correct. There is no new voice listed after I applied the following change, cleaned the project, and ran the project again:

--- a/src/macos/ATDriverGenericMacOS/ATDriverGenericMacOSExtension/Common/Audio Unit/ATDriverGenericMacOSExtensionAudioUnit.swift       
+++ b/src/macos/ATDriverGenericMacOS/ATDriverGenericMacOSExtension/Common/Audio Unit/ATDriverGenericMacOSExtensionAudioUnit.swift       
@@ -167,7 +167,7 @@ public class ATDriverGenericMacOSExtensionAudioUnit: AVSpeechSynthesisProviderAu
                 logger.log("speechVoices")
             }
             return [
-            AVSpeechSynthesisProviderVoice(name: "ATDriverGenericMacOSExtensionVoice", identifier: "ATDriverGenericMacOSExtension", primaryLanguages: ["en-US"], supportedLanguages: ["en-US"])
+            AVSpeechSynthesisProviderVoice(name: "ATDriverGenericMacOSExtensionVoice2", identifier: "ATDriverGenericMacOSExtension2", primaryLanguages: ["en-US"], supportedLanguages: ["en-US"])
             ]
         }
         set { }

Can you be a little more specific?

You made the change I meant.

The change should should up in the dropdown for System Settings > Accessibility > Spoken Content > System voice.

image

If there is still an item for the extension but its the old name, I think it could be recognizing a version of the extension is installed, and its using a cached copy of the list of voices that either has not yet updated or when it tried to update an error occured and it is reusing an older cache. I don't know if reuse of an old cache is possible. From my experience the cache gets updated in a manner of minutes after a new copy of the extension is installed.

@jugglinmike
Copy link
Contributor

Oh. Interesting. Can you dump log show --process ATDriverGeneric?

Sure. I reverted my temporary name change, rebuilt, enabled it in the system settings, and typed say hello in a new Terminal session.

log contents
Timestamp                       Thread     Type        Activity             PID    TTL  
2024-02-12 17:57:45.451811-0500 0x1ffdb    Activity    0x21610              5310   0    ATDriverGenericMacOS: (libsystem_secinit.dylib) AppSandbox
2024-02-12 17:57:45.666218-0500 0x1ffdb    Activity    0x21611              5310   0    ATDriverGenericMacOS: (libsystem_info.dylib) Membership API: translate identifier
2024-02-12 17:57:45.667017-0500 0x1ffdb    Activity    0x21612              5310   0    ATDriverGenericMacOS: (libsystem_containermanager.dylib) container_create_or_lookup_for_current_user
2024-02-12 17:57:45.667021-0500 0x1ffdb    Activity    0x21613              5310   0    ATDriverGenericMacOS: (libsystem_containermanager.dylib) container_create_or_lookup_for_platform
2024-02-12 17:57:45.667160-0500 0x1ffdb    Default     0x21613              5310   7    ATDriverGenericMacOS: (libsystem_containermanager.dylib) [com.apple.containermanager:xpc] Requesting container lookup; personaid = -1, type = NOPERSONA, name = <unknown>, origin [pid = 0, personaid = 0], proximate [pid = 0, personaid = 0], class = 2, identifier = <private>, group_identifier = <private>, create = 0, temp = 0, euid = 501, uid = 501
2024-02-12 17:57:45.667170-0500 0x1ffdb    Activity    0x21614              5310   0    ATDriverGenericMacOS: (libsystem_containermanager.dylib) container_query_t
2024-02-12 17:57:45.667191-0500 0x1ffdb    Default     0x21614              5310   7    ATDriverGenericMacOS: (libsystem_containermanager.dylib) [com.apple.containermanager:query] Query; personaid = -1, type = NOPERSONA, name = <unknown>, origin [pid = 0, personaid = 0], proximate [pid = 0, personaid = 0], euid = 501, uid = 501, query = <private>
2024-02-12 17:57:45.669259-0500 0x1ffdb    Default     0x21613              5310   7    ATDriverGenericMacOS: (libsystem_containermanager.dylib) [com.apple.containermanager:unspecified] container_query_get_single_result: success
2024-02-12 17:57:45.669294-0500 0x1ffdb    Default     0x21613              5310   7    ATDriverGenericMacOS: (libsystem_containermanager.dylib) [com.apple.containermanager:sandbox] Consuming sandbox extension; path = [<private>], key = 0
2024-02-12 17:57:45.669295-0500 0x1ffdb    Activity    0x21615              5310   0    ATDriverGenericMacOS: (libsystem_containermanager.dylib) container_copy_object
2024-02-12 17:57:45.669299-0500 0x1ffdb    Default     0x21615              5310   7    ATDriverGenericMacOS: (libsystem_containermanager.dylib) [com.apple.containermanager:sandbox] Consuming sandbox extension; path = [<private>], key = 0
2024-02-12 17:57:45.669303-0500 0x1ffdb    Default     0x21613              5310   7    ATDriverGenericMacOS: (libsystem_containermanager.dylib) [com.apple.containermanager:sandbox] Revoking sandbox extension; key = 0
2024-02-12 17:57:45.669304-0500 0x1ffdb    Default     0x21613              5310   7    ATDriverGenericMacOS: (libsystem_containermanager.dylib) [com.apple.containermanager:unspecified] container_create_or_lookup_for_platform: success
2024-02-12 17:57:45.669306-0500 0x1ffdb    Default     0x21610              5310   7    ATDriverGenericMacOS: (libsystem_containermanager.dylib) [com.apple.containermanager:sandbox] Revoking sandbox extension; key = 0
2024-02-12 17:57:45.676486-0500 0x1ffdb    Activity    0x21616              5310   0    ATDriverGenericMacOS: (libsystem_info.dylib) Retrieve User by ID
2024-02-12 17:57:45.744152-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AVFCapture) [com.apple.coremedia:] <<<< AVAUVoiceIOChatFlavor >>>> vpio_preferenceChangedListener: new value ((null)) for key AUVoiceIOClients/com-bocoup-ATDriverGenericMacOS/AUVoiceIOChatFlavor, translatedBundleID com.bocoup.ATDriverGenericMacOS, bundleIDs {(
    "com.bocoup.ATDriverGenericMacOS"
)}
2024-02-12 17:57:45.745408-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio)             HALSystem.cpp:119    Enabling HAL Voice Isolation support
2024-02-12 17:57:45.746199-0500 0x1ffdb    Activity    0x21617              5310   0    ATDriverGenericMacOS: (TCC) TCCAccessRequest() IPC
2024-02-12 17:57:45.758906-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio)   HALPlugInManagement.cpp:393    HALPlugInManagement::RegisterPlugIns: skipping in-process plug-ins
2024-02-12 17:57:45.759534-0500 0x1ffdb    Error       0x0                  5310   0    ATDriverGenericMacOS: (CoreFoundation) [com.apple.CFBundle:plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x60000130c440> F8BB1C28-BAE8-11D6-9C31-00039315CD46
2024-02-12 17:57:45.770151-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio)      HALC_ProxyObject.cpp:188    HALC_ProxyObject::GetPropertyDataSize ('<private>', '<private>', 0, AI32): got an error from the server, 0x77686F3F
2024-02-12 17:57:45.770757-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio)      HALC_ProxyObject.cpp:469    HALC_ProxyObject::GetPropertyData ('<private>', '<private>', 0, DAI32): got an error from the server, 0x77686F3F
2024-02-12 17:57:45.781922-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:399   AUHAL: (0x7fc303013a40) Selecting device 63 from constructor
2024-02-12 17:57:45.781983-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:572   SelectDevice: -> (0x7fc303013a40)
2024-02-12 17:57:45.782020-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:629   SelectDevice: (0x7fc303013a40) not already running
2024-02-12 17:57:45.782051-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:704   SelectDevice: (0x7fc303013a40) nothing to teardown
2024-02-12 17:57:45.782079-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:708   SelectDevice: (0x7fc303013a40) connecting device 63
2024-02-12 17:57:45.782219-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:3110  IsDeviceUsable: (0x7fc303013a40) Device ID: 63 (Input:No | Output:Yes): true
2024-02-12 17:57:45.782372-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:718   SelectDevice: (0x7fc303013a40) created ioproc 0xa for device 63
2024-02-12 17:57:45.782405-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1454  UpdateStreamFormats: -> (0x7fc303013a40)
2024-02-12 17:57:45.782557-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1518  UpdateStreamFormats: 
  output stream 0 [0x40]:  2 ch,  44100 Hz, Float32, interleaved
2024-02-12 17:57:45.782600-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1529  UpdateStreamFormats: 1 output streams; not all mono
2024-02-12 17:57:45.782634-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1539  UpdateStreamFormats: 
  Output render format:  2 ch,  44100 Hz, Float32, interleaved
2024-02-12 17:57:45.782673-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1529  UpdateStreamFormats: 0 input streams; not all mono
2024-02-12 17:57:45.782711-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1539  UpdateStreamFormats: 
  Input render format:  0 ch,      0 Hz, lpcm (0x00000029) 32-bit little-endian float, deinterleaved
2024-02-12 17:57:45.782895-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1604  UpdateStreamFormats: AUHAL(0x7fc303013a40) Calling PropertyChanged() for kAudioUnitProperty_StreamFormat, Scope:Output, Bus:Output
2024-02-12 17:57:45.782937-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1607  UpdateStreamFormats: AUHAL(0x7fc303013a40) Calling PropertyChanged() for kAudioUnitProperty_StreamFormat, Scope:Input, Bus:Input
2024-02-12 17:57:45.783033-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1617  UpdateStreamFormats: <-
2024-02-12 17:57:45.783547-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AudioToolboxCore) [com.apple.coreaudio:AudioConverter]        ACv2Workarounds.mm:51    com.bocoup.ATDriverGenericMacOS: fix84702776_86723525_86479548_89800354_SinglePacketDesc: false
2024-02-12 17:57:45.784259-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:822   SelectDevice: (0x7fc303013a40) removing 0 device listeners from device 0
2024-02-12 17:57:45.784300-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:831   SelectDevice: (0x7fc303013a40) adding 7 device listeners to device 63
2024-02-12 17:57:45.784634-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:822   SelectDevice: (0x7fc303013a40) removing 0 device delegate listeners from device 0
2024-02-12 17:57:45.784675-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:831   SelectDevice: (0x7fc303013a40) adding 0 device delegate listeners to device 63
2024-02-12 17:57:45.784705-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:844   SelectDevice: <- (0x7fc303013a40)
2024-02-12 17:57:45.784863-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1713  SetStreamUsage: Output stream enables: Stream 0 is DISABLED
2024-02-12 17:57:45.785240-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AudioToolbox) [com.apple.coreaudio:ddagg]        AggregateDevice.mm:853   Creating DefaultDeviceAggregate
2024-02-12 17:57:45.785338-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AudioToolbox) [com.apple.coreaudio:ddagg]        AggregateDevice.mm:880   fetched default output device, ID = 63
2024-02-12 17:57:45.785400-0500 0x1ffdb    Error       0x0                  5310   0    ATDriverGenericMacOS: (AudioToolbox) [com.apple.coreaudio:ddagg]        AggregateDevice.mm:878   couldn't get default input device, ID = 0, err = 0!
2024-02-12 17:57:45.801762-0500 0x20032    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio)      HALC_ProxyObject.cpp:188    HALC_ProxyObject::GetPropertyDataSize ('<private>', '<private>', 0, AI32): got an error from the server, 0x77686F3F
2024-02-12 17:57:45.801859-0500 0x20032    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio)      HALC_ProxyObject.cpp:469    HALC_ProxyObject::GetPropertyData ('<private>', '<private>', 0, DAI32): got an error from the server, 0x77686F3F
2024-02-12 17:57:45.806763-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AudioToolbox) [com.apple.coreaudio:ddagg]        AggregateDevice.mm:635   Built valid aggregate 91
2024-02-12 17:57:45.807756-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1713  SetStreamUsage: Output stream enables: Stream 0 is ENABLED
2024-02-12 17:57:45.810280-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (caulk) [com.apple.audio.caulk:alloc] Registered notify signal com.apple.caulk.alloc.audiodump (0)
2024-02-12 17:57:45.810361-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1713  SetStreamUsage: Output stream enables: Stream 0 is ENABLED
2024-02-12 17:57:45.810646-0500 0x1ffdb    Error       0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) AudioHardware-mac-imp.cpp:660    AudioObjectGetPropertyData: no object with given ID 0
2024-02-12 17:57:45.813704-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1713  SetStreamUsage: Output stream enables: Stream 0 is ENABLED
2024-02-12 17:57:45.819286-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1713  SetStreamUsage: Output stream enables: Stream 0 is ENABLED
2024-02-12 17:57:45.821334-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) [com.apple.coreaudio:AUHAL]                 AUHAL.cpp:1713  SetStreamUsage: Output stream enables: Stream 0 is ENABLED
2024-02-12 17:57:45.821616-0500 0x1ffdb    Error       0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) AudioHardware-mac-imp.cpp:660    AudioObjectGetPropertyData: no object with given ID 0
2024-02-12 17:57:45.821804-0500 0x1ffdb    Error       0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) AudioHardware-mac-imp.cpp:660    AudioObjectGetPropertyData: no object with given ID 0
2024-02-12 17:57:45.822020-0500 0x1ffdb    Error       0x0                  5310   0    ATDriverGenericMacOS: (CoreAudio) AudioHardware-mac-imp.cpp:660    AudioObjectGetPropertyData: no object with given ID 0
2024-02-12 17:57:47.359142-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AudioToolboxCore) [com.apple.coreaudio:audiocomp] AudioComponentPluginMgr.mm:877   First wildcard component search: 0x00000000/0x00000000/0x00000000
2024-02-12 17:57:47.359349-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:311   Creating CAReportingClient { useXPC="Y", endpoint="(null)" }
2024-02-12 17:57:47.359714-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:369   Created reporter { careporter_id=22806276341761 }
2024-02-12 17:57:47.360563-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libMobileGestalt.dylib) No persisted cache on this platform.
2024-02-12 17:57:47.360610-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:419   Adding reporter to client { careporter_id=22806276341761 }
2024-02-12 17:57:47.360641-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:580   Set servicetype { careporter_id=22806276341761, serviceType="apiusage" }
2024-02-12 17:57:47.360661-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:605   Setting new serviceType { careporter_id=22806276341761, servicename="apiusage", servicetype=12 }
2024-02-12 17:57:47.360708-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:473   Starting { careporter_id=22806276341761 }
2024-02-12 17:57:47.360841-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:537   Sending message { message="{
    "au_componentDesc" = "ausp/atdg/BOCU";
    "au_componentFlags" = 14;
    "au_hostBundleIdentifier" = "com.bocoup.ATDriverGenericMacOS";
    "au_implType" = 3;
    "au_instanceCount" = 0;
    "au_instantiationFlagsUsed" = 0;
    "au_name" = "Bocoup LLC: ATDriverGenericMacOSExtension";
}", reporters="(
    22806276341761
)" }
2024-02-12 17:57:47.361089-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:537   Sending message { message="{
    "au_componentDesc" = "ausp/demo/Demo";
    "au_componentFlags" = 14;
    "au_hostBundleIdentifier" = "com.bocoup.ATDriverGenericMacOS";
    "au_implType" = 3;
    "au_instanceCount" = 0;
    "au_instantiationFlagsUsed" = 0;
    "au_name" = "Apple: SpeechSynthesizerExampleExtension";
}", reporters="(
    22806276341761
)" }
2024-02-12 17:57:47.361176-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:504   Stopping { careporter_id=22806276341761 }
2024-02-12 17:57:47.361247-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:537   Sending message { message="{
    "session_duration" = "0.0004720687866210938";
}", reporters="(
    22806276341761
)" }
2024-02-12 17:57:47.361346-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:504   Stopping { careporter_id=22806276341761 }
2024-02-12 17:57:47.361373-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:436   removing reporter from client and server { careporter_id=22806276341761 }
2024-02-12 17:57:47.396933-0500 0x1ffdb    Activity    0x21618              5310   0    ATDriverGenericMacOS: (PlugInKit) discovery
2024-02-12 17:57:47.397004-0500 0x1ffdb    Default     0x21618              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Beginning discovery for flags: 1024, point: (null)
2024-02-12 17:57:47.398976-0500 0x1ffdb    Default     0x21618              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Completed discovery. Final # of matches: 1
2024-02-12 17:57:47.403905-0500 0x1ffdb    Activity    0x21619              5310   0    ATDriverGenericMacOS: (PlugInKit) discovery
2024-02-12 17:57:47.403929-0500 0x1ffdb    Default     0x21619              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Beginning discovery for flags: 1024, point: (null)
2024-02-12 17:57:47.404989-0500 0x1ffdb    Default     0x21619              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Completed discovery. Final # of matches: 1
2024-02-12 17:57:47.406281-0500 0x1ffdb    Activity    0x2161a              5310   0    ATDriverGenericMacOS: (PlugInKit) discovery
2024-02-12 17:57:47.406297-0500 0x1ffdb    Default     0x2161a              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Beginning discovery for flags: 1024, point: (null)
2024-02-12 17:57:47.407308-0500 0x1ffdb    Default     0x2161a              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Completed discovery. Final # of matches: 1
2024-02-12 17:57:47.409406-0500 0x1ffdb    Activity    0x2161b              5310   0    ATDriverGenericMacOS: (PlugInKit) discovery
2024-02-12 17:57:47.409434-0500 0x1ffdb    Default     0x2161b              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Beginning discovery for flags: 1024, point: (null)
2024-02-12 17:57:47.410583-0500 0x1ffdb    Default     0x2161b              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Completed discovery. Final # of matches: 1
2024-02-12 17:57:47.412584-0500 0x1ffdb    Activity    0x2161c              5310   0    ATDriverGenericMacOS: (PlugInKit) discovery
2024-02-12 17:57:47.412611-0500 0x1ffdb    Default     0x2161c              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Beginning discovery for flags: 1024, point: (null)
2024-02-12 17:57:47.413588-0500 0x1ffdb    Default     0x2161c              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Completed discovery. Final # of matches: 1
2024-02-12 17:57:47.415259-0500 0x1ffdb    Activity    0x2161d              5310   0    ATDriverGenericMacOS: (PlugInKit) discovery
2024-02-12 17:57:47.415280-0500 0x1ffdb    Default     0x2161d              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Beginning discovery for flags: 1024, point: (null)
2024-02-12 17:57:47.416497-0500 0x1ffdb    Default     0x2161d              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Completed discovery. Final # of matches: 1
2024-02-12 17:57:47.418158-0500 0x1ffdb    Activity    0x2161e              5310   0    ATDriverGenericMacOS: (PlugInKit) discovery
2024-02-12 17:57:47.418186-0500 0x1ffdb    Default     0x2161e              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Beginning discovery for flags: 1024, point: (null)
2024-02-12 17:57:47.419337-0500 0x1ffdb    Default     0x2161e              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:discovery] [d <private>] <PKHost:0x600000602b80> Completed discovery. Final # of matches: 1
2024-02-12 17:57:47.421953-0500 0x2002c    Activity    0x2161f              5310   0    ATDriverGenericMacOS: (ExtensionFoundation) begin using plugin
2024-02-12 17:57:47.422133-0500 0x20032    Default     0x2161f              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E:m (null)] [<private>(<private>)] Ready plugins sent as euid = 501, uid = 501, personaid = -1, type = NOPERSONA, name = <unknown>
2024-02-12 17:57:47.436309-0500 0x2002c    Default     0x2161f              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E:m (null)] [<private>(<private>)] got pid from ready request: 5320
2024-02-12 17:57:47.436478-0500 0x2002c    Default     0x2161f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) [com.apple.runningboard:connection] Initializing connection
2024-02-12 17:57:47.436569-0500 0x2002c    Default     0x2161f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) [com.apple.runningboard:process] Removing all cached process handles
2024-02-12 17:57:47.436640-0500 0x20032    Default     0x2161f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) [com.apple.runningboard:connection] Sending handshake request attempt #1 to server
2024-02-12 17:57:47.436678-0500 0x20032    Default     0x2161f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) [com.apple.runningboard:connection] Creating connection to com.apple.runningboard
2024-02-12 17:57:47.437235-0500 0x201cc    Activity    0x21730              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances
2024-02-12 17:57:47.437573-0500 0x20032    Default     0x2161f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) [com.apple.runningboard:connection] Handshake succeeded
2024-02-12 17:57:47.437619-0500 0x20032    Default     0x2161f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) [com.apple.runningboard:connection] Identity resolved as app<application.com.bocoup.ATDriverGenericMacOS.16718296.16837066.CEC19848-7B27-493D-89EA-F0723A5467AC(501)>
2024-02-12 17:57:47.439256-0500 0x2002c    Default     0x2161f              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E:m (null)] [<private>(<private>)] acquired startup assertion
2024-02-12 17:57:47.439777-0500 0x2002c    Default     0x2161f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) [com.apple.runningboard:connection] Creating side-channel connection to com.apple.runningboard
2024-02-12 17:57:47.440065-0500 0x1ffdb    Activity    0x21731              5310   0    ATDriverGenericMacOS: (TCC) TCCAccessRequest() IPC
2024-02-12 17:57:47.440432-0500 0x2002c    Default     0x2161f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) [com.apple.runningboard:process] Hit the server for a process handle a29d8de000014c8 that resolved to: [xpcservice<com.bocoup.ATDriverGenericMacOS.ATDriverGenericMacOSExtension([app<application.com.bocoup.ATDriverGenericMacOS.16718296.16837066.CEC19848-7B27-493D-89EA-F0723A5467AC(501)>:5310])(501)>:5320]
2024-02-12 17:57:47.440794-0500 0x2002c    Default     0x2161f              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E:m (null)] [<private>(<private>)] Prepare using sent as euid = 501, uid = 501, personaid = -1, type = NOPERSONA, name = <unknown>
2024-02-12 17:57:47.440873-0500 0x2002c    Default     0x2161f              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E] [<private>(<private>)] Sending prepareUsing to non-managed extension; this should launch it if not already running.
2024-02-12 17:57:47.445116-0500 0x1ffdb    Default     0x0                  5310   7    ATDriverGenericMacOS: (SkyLight) [com.apple.SkyLight:default] server port 0x0000f207, session port 0x0000f207
2024-02-12 17:57:47.457837-0500 0x1ffdb    Default     0x0                  5310   7    ATDriverGenericMacOS: (SkyLight) [com.apple.SkyLight:default] New connection 0x2f92b main
2024-02-12 17:57:47.458754-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (LaunchServices) [com.apple.processmanager:front-35286506] CHECKIN: pid=5310
2024-02-12 17:57:47.463177-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (LaunchServices) [com.apple.processmanager:front-35286506] CHECKEDIN: pid=5310 asn=0x0-0x57057 foreground=1
2024-02-12 17:57:47.464220-0500 0x2002c    Activity    0x21732              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances
2024-02-12 17:57:47.466339-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (HIServices) [com.apple.processmanager:front-35286506] FRONTLOGGING: version 1
2024-02-12 17:57:47.466421-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (HIServices) [com.apple.processmanager:front-35286506] Registered, pid=5310 ASN=0x0,0x57057
2024-02-12 17:57:47.467790-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (HIServices) [com.apple.processmanager:front-35286506] BringForward: pid=5310 asn=0x0-0x57057 bringForward=1 foreground=1 uiElement=0 launchedByLS=1 modifiersCount=1 allDisabled=0
2024-02-12 17:57:47.467874-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (HIServices) [com.apple.processmanager:front-35286506] BringFrontModifier: pid=5310 asn=0x0-0x57057 Modifier 0 hideAfter=0 hideOthers=0 dontMakeFrontmost=1 mouseDown=0/0 seed=0/0
2024-02-12 17:57:47.468813-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:Appearance] Current system appearance, (HLTB: 1), (SLS: 0)
2024-02-12 17:57:47.472498-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (libMobileGestalt.dylib) Failed to copy the SysCfgDict MG key with error: 0
2024-02-12 17:57:47.473560-0500 0x201cc    Default     0x0                  5310   0    ATDriverGenericMacOS: (CoreAnalytics) [com.apple.CoreAnalytics:client] Received configuration update from daemon (initial)
2024-02-12 17:57:47.474107-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:Appearance] Current system appearance, (HLTB: 1), (SLS: 0)
2024-02-12 17:57:47.474878-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:Appearance] Post-registration system appearance: (HLTB: 1)
2024-02-12 17:57:47.486256-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (XCTTargetBootstrap) [com.apple.dt.xctest:Default] Registering for test daemon availability notify post.
2024-02-12 17:57:47.486447-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (XCTTargetBootstrap) [com.apple.dt.xctest:Default] notify_get_state check indicated test daemon not ready.
2024-02-12 17:57:47.486589-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (XCTTargetBootstrap) [com.apple.dt.xctest:Default] notify_get_state check indicated test daemon not ready.
2024-02-12 17:57:47.486726-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (XCTTargetBootstrap) [com.apple.dt.xctest:Default] notify_get_state check indicated test daemon not ready.
2024-02-12 17:57:47.526915-0500 0x1ffdb    Activity    0x21733              5310   0    ATDriverGenericMacOS: (CoreFoundation) Loading Preferences From User CFPrefsD
2024-02-12 17:57:47.528709-0500 0x20032    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:WizardLizard] Received DFR status change 0. status = 0x1
2024-02-12 17:57:47.529358-0500 0x20032    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:WizardLizard] Received DFR status change 1. status = 0x1
2024-02-12 17:57:47.529530-0500 0x1ffdb    Activity    0x21734              5310   0    ATDriverGenericMacOS: (CoreFoundation) Loading Preferences From System CFPrefsD
2024-02-12 17:57:47.531843-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (HIServices) [com.apple.processmanager:front-35286506] SignalReady: pid=5310 asn=0x0-0x57057
2024-02-12 17:57:47.532439-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (LaunchServices) [com.apple.processmanager:front-35286506] SIGNAL: pid=5310 asn=0x0x-0x57057
2024-02-12 17:57:47.543086-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:WizardLizard] Reacting to DFR status change 0. status = 0x1
2024-02-12 17:57:47.543678-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:WizardLizard] Reacting to DFR status change 1. status = 0x1
2024-02-12 17:57:47.553602-0500 0x1ffdb    Activity    0x21735              5310   0    ATDriverGenericMacOS: (CoreFoundation) Loading Preferences From User CFPrefsD
2024-02-12 17:57:47.554009-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:Appearance] NSApp cache appearance:
-NSRequiresAquaSystemAppearance: 0
-appearance: (null)
-effectiveAppearance: <NSCompositeAppearance: 0x600003d10700
 (
    "<NSAquaAppearance: 0x600003d10680>",
    "<NSSystemAppearance: 0x600003d15800>"
)>
2024-02-12 17:57:47.564903-0500 0x20031    Activity    0x21736              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances
2024-02-12 17:57:47.604552-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:Window] order window front conditionally: 130 related: 0
2024-02-12 17:57:47.622534-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AudioToolboxCore) [com.apple.coreaudio:audiocomp] AudioComponentPluginMgr.mm:1087  component registrations changed
2024-02-12 17:57:47.641952-0500 0x20032    Activity    0x21737              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances
2024-02-12 17:57:47.743021-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (HIServices) [com.apple.processmanager:front-35286506] SetFrontProcessWithWindowIDAndCPSOptions: asn=0x0-0x57057 windowID=0 options=0
2024-02-12 17:57:47.749599-0500 0x20032    Activity    0x21738              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances
2024-02-12 17:57:47.751740-0500 0x20032    Activity    0x21739              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances
2024-02-12 17:57:47.768054-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:Window] order window front conditionally: 130 related: 0
2024-02-12 17:57:47.773823-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (AppKit) [com.apple.AppKit:General] Shortcuts Contextual Actions enabled
2024-02-12 17:57:48.016964-0500 0x1ffdb    Activity    0x2173a              5310   0    ATDriverGenericMacOS: (CoreFoundation) Loading Preferences From System CFPrefsD
2024-02-12 17:57:52.383615-0500 0x201cb    Activity    0x217e0              5320   0    ATDriverGenericMacOSExtension: (libsystem_secinit.dylib) AppSandbox
2024-02-12 17:57:52.518228-0500 0x201cb    Activity    0x217e1              5320   0    ATDriverGenericMacOSExtension: (libsystem_info.dylib) Membership API: translate identifier
2024-02-12 17:57:52.519025-0500 0x201cb    Activity    0x217e2              5320   0    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) container_create_or_lookup_for_current_user
2024-02-12 17:57:52.519028-0500 0x201cb    Activity    0x217e3              5320   0    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) container_create_or_lookup_for_platform
2024-02-12 17:57:52.519365-0500 0x201cb    Default     0x217e3              5320   7    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) [com.apple.containermanager:xpc] Requesting container lookup; personaid = 1000, type = DEFAULT, name = 6754731E-4B47-40E0-8EB0-4BEF68AEC4A5, origin [pid = 0, personaid = 0], proximate [pid = 0, personaid = 0], class = 4, identifier = <private>, group_identifier = <private>, create = 0, temp = 0, euid = 501, uid = 501
2024-02-12 17:57:52.519851-0500 0x201cb    Activity    0x217e4              5320   0    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) container_query_t
2024-02-12 17:57:52.519884-0500 0x201cb    Default     0x217e4              5320   7    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) [com.apple.containermanager:query] Query; personaid = 1000, type = DEFAULT, name = 6754731E-4B47-40E0-8EB0-4BEF68AEC4A5, origin [pid = 0, personaid = 0], proximate [pid = 0, personaid = 0], euid = 501, uid = 501, query = <private>
2024-02-12 17:57:52.524859-0500 0x201cb    Default     0x217e3              5320   7    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) [com.apple.containermanager:unspecified] container_query_get_single_result: success
2024-02-12 17:57:52.524943-0500 0x201cb    Default     0x217e3              5320   7    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) [com.apple.containermanager:sandbox] Consuming sandbox extension; path = [<private>], key = 0
2024-02-12 17:57:52.524966-0500 0x201cb    Activity    0x217e5              5320   0    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) container_copy_object
2024-02-12 17:57:52.524975-0500 0x201cb    Default     0x217e5              5320   7    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) [com.apple.containermanager:sandbox] Consuming sandbox extension; path = [<private>], key = 0
2024-02-12 17:57:52.524998-0500 0x201cb    Default     0x217e3              5320   7    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) [com.apple.containermanager:sandbox] Revoking sandbox extension; key = 0
2024-02-12 17:57:52.525017-0500 0x201cb    Default     0x217e3              5320   7    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) [com.apple.containermanager:unspecified] container_create_or_lookup_for_platform: success
2024-02-12 17:57:52.525040-0500 0x201cb    Default     0x217e0              5320   7    ATDriverGenericMacOSExtension: (libsystem_containermanager.dylib) [com.apple.containermanager:sandbox] Revoking sandbox extension; key = 0
2024-02-12 17:57:52.530057-0500 0x201cb    Default     0x0                  5320   0    ATDriverGenericMacOSExtension: (PlugInKit) [com.apple.PlugInKit:lifecycle] Hello, I'm launching as euid = 501, uid = 501, personaid = 1000, type = DEFAULT, name = <private>
2024-02-12 17:57:52.535547-0500 0x201cb    Activity    0x217e6              5320   0    ATDriverGenericMacOSExtension: (libsystem_info.dylib) Retrieve User by ID
2024-02-12 17:57:52.538677-0500 0x201cb    Default     0x0                  5320   0    ATDriverGenericMacOSExtension: (RunningBoardServices) [com.apple.runningboard:connection] Initializing connection
2024-02-12 17:57:52.538838-0500 0x201cb    Default     0x0                  5320   0    ATDriverGenericMacOSExtension: (RunningBoardServices) [com.apple.runningboard:process] Removing all cached process handles
2024-02-12 17:57:52.538961-0500 0x201ff    Default     0x0                  5320   0    ATDriverGenericMacOSExtension: (RunningBoardServices) [com.apple.runningboard:connection] Sending handshake request attempt #1 to server
2024-02-12 17:57:52.539006-0500 0x201ff    Default     0x0                  5320   0    ATDriverGenericMacOSExtension: (RunningBoardServices) [com.apple.runningboard:connection] Creating connection to com.apple.runningboard
2024-02-12 17:57:52.540174-0500 0x201ff    Default     0x0                  5320   0    ATDriverGenericMacOSExtension: (RunningBoardServices) [com.apple.runningboard:connection] Handshake succeeded
2024-02-12 17:57:52.540218-0500 0x201ff    Default     0x0                  5320   0    ATDriverGenericMacOSExtension: (RunningBoardServices) [com.apple.runningboard:connection] Identity resolved as xpcservice<com.bocoup.ATDriverGenericMacOS.ATDriverGenericMacOSExtension([app<application.com.bocoup.ATDriverGenericMacOS.16718296.16837066.CEC19848-7B27-493D-89EA-F0723A5467AC(501)>:5310])(501)>
2024-02-12 17:57:52.541167-0500 0x201cb    Error       0x0                  5320   0    ATDriverGenericMacOSExtension: (PlugInKit) [com.apple.PlugInKit:subsystems] Bootstrapping; external subsystem UIKit_PKSubsystem refused setup
2024-02-12 17:57:52.541253-0500 0x201cb    Default     0x0                  5320   0    ATDriverGenericMacOSExtension: (PlugInKit) [com.apple.PlugInKit:lifecycle] Bootstrapping; Bootstrap complete. Ready for handshake from host.
2024-02-12 17:57:52.542707-0500 0x20200    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E] [(null)((null))] Prepare received as euid = 501, uid = 501, personaid = 1000, type = DEFAULT, name = <private>
2024-02-12 17:57:52.543075-0500 0x20200    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u 6BB3F1CB-C697-425B-B0D6-EA9E63E44027] [<private>(<private>)] Set sole personality.
2024-02-12 17:57:52.544020-0500 0x201cc    Default     0x2161f              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E:m (null)] [<private>(<private>)] Begin using sent as euid = 501, uid = 501, personaid = -1, type = NOPERSONA, name = <unknown>
2024-02-12 17:57:52.544256-0500 0x20200    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u 6BB3F1CB-C697-425B-B0D6-EA9E63E44027] [<private>(<private>)] Begin using received as euid = 501, uid = 501, personaid = 1000, type = DEFAULT, name = <private>
2024-02-12 17:57:52.544606-0500 0x20032    Default     0x2161f              5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E:m (null)] [<private>(<private>)] plugin loaded and ready for host
2024-02-12 17:57:52.545707-0500 0x20032    Default     0x0                  5310   0    ATDriverGenericMacOS: (PlugInKit) [com.apple.PlugInKit:lifecycle] [u D08A6E17-8276-4658-88E6-BD8AA1E8444E:m (null)] [<private>(<private>)] invalidating startup assertion
2024-02-12 17:57:52.579803-0500 0x201ff    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (ExtensionFoundation) [com.apple.extensionkit:NSExtension] +[NSExtensionContext _allowedItemPayloadClasses] not implemented. Setting the allowed payload classes to <private>
2024-02-12 17:57:52.580157-0500 0x201ff    Activity    0x217e7              5320   0    ATDriverGenericMacOSExtension: (ExtensionFoundation) beginning extension request
2024-02-12 17:57:53.970466-0500 0x20031    Default     0x0                  5310   2    ATDriverGenericMacOS: (LaunchServices) [com.apple.launchservices:db] NotifyToken::RegisterDispatch(user.uid.501.com.apple.LaunchServices.database) fired for session key <private>
2024-02-12 17:57:56.294664-0500 0x20201    Default     0x0                  5320   2    ATDriverGenericMacOSExtension: (LaunchServices) [com.apple.launchservices:db] NotifyToken::RegisterDispatch(user.uid.501.com.apple.LaunchServices.database) fired for session key <private>
2024-02-12 17:57:56.324698-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (AudioToolboxCore) [com.apple.coreaudio:audiocomp] AudioComponentPluginMgr.mm:877   First wildcard component search: acdc/lpcm/0x00000000
2024-02-12 17:57:56.324936-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:311   Creating CAReportingClient { useXPC="Y", endpoint="(null)" }
2024-02-12 17:57:56.325246-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:369   Created reporter { careporter_id=22849226014721 }
2024-02-12 17:57:56.326342-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libMobileGestalt.dylib) No persisted cache on this platform.
2024-02-12 17:57:56.326404-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:419   Adding reporter to client { careporter_id=22849226014721 }
2024-02-12 17:57:56.326443-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:580   Set servicetype { careporter_id=22849226014721, serviceType="apiusage" }
2024-02-12 17:57:56.326464-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:605   Setting new serviceType { careporter_id=22849226014721, servicename="apiusage", servicetype=12 }
2024-02-12 17:57:56.326508-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:473   Starting { careporter_id=22849226014721 }
2024-02-12 17:57:56.326727-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:537   Sending message { message="{
    "au_architectures" = "x86_64";
    "au_componentDesc" = "ausp/atdg/BOCU";
    "au_componentFlags" = 6;
    "au_hostBundleIdentifier" = "com.bocoup.ATDriverGenericMacOS.ATDriverGenericMacOSExtension";
    "au_implType" = 1;
    "au_instanceCount" = 0;
    "au_instantiationFlagsUsed" = 0;
    "au_name" = "Bocoup LLC: ATDriverGenericMacOSExtension";
}", reporters="(
    22849226014721
)" }
2024-02-12 17:57:56.326928-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:504   Stopping { careporter_id=22849226014721 }
2024-02-12 17:57:56.327012-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:537   Sending message { message="{
    "session_duration" = "0.0004259347915649414";
}", reporters="(
    22849226014721
)" }
2024-02-12 17:57:56.327131-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:504   Stopping { careporter_id=22849226014721 }
2024-02-12 17:57:56.327167-0500 0x20201    Default     0x2161f              5320   0    ATDriverGenericMacOSExtension: (libAudioStatistics.dylib) [com.apple.coreaudio:carc]      CAReportingClient.mm:436   removing reporter from client and server { careporter_id=22849226014721 }
2024-02-12 17:57:56.335281-0500 0x20031    Error       0x2161f              5310   0    ATDriverGenericMacOS: (CoreAudio) AudioHardware-mac-imp.cpp:660    AudioObjectGetPropertyData: no object with given ID 0
2024-02-12 17:57:56.381802-0500 0x1ffdb    Activity    0x2173b              5310   0    ATDriverGenericMacOS: (CoreFoundation) Loading Preferences From User CFPrefsD
2024-02-12 17:57:56.382157-0500 0x1ffdb    Activity    0x2173c              5310   0    ATDriverGenericMacOS: (CoreFoundation) Loading Preferences From User CFPrefsD
2024-02-12 17:57:56.384893-0500 0x1ffdb    Default     0x0                  5310   0    ATDriverGenericMacOS: (Metal) Metal API Validation Enabled
2024-02-12 17:58:00.459861-0500 0x20032    Activity    0x2173d              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances
2024-02-12 17:58:06.383817-0500 0x2002c    Default     0x0                  5310   2    ATDriverGenericMacOS: (LaunchServices) [com.apple.launchservices:default] LSExceptions shared instance invalidated for timeout.
2024-02-12 17:58:30.412112-0500 0x204a2    Activity    0x2173e              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances
2024-02-12 17:58:30.486981-0500 0x204a2    Activity    0x2173f              5310   0    ATDriverGenericMacOS: (RunningBoardServices) didChangeInheritances

@mzgoddard
Copy link
Contributor Author

@jugglinmike we met on Thursday and figured out that your system did have a second copy of the extension. Deleting it we were able to get this patch working on your system. Is there any other changes we haven't addressed that you want to see before this is merged?

@jugglinmike
Copy link
Contributor

jugglinmike commented Feb 20, 2024

@mzgoddard Although we got this running during our call on Thursday, I'm now seeing the same error in response to say. This time, though, I'm a little more confident that I'm working with the latest code.

I can see just one extension installed:

$ mdfind ATDriverGenericMacOSExtension.appex
2024-02-19 15:46:55.144 mdfind[48021:467859] [UserQueryParser] Loading keywords and predicates for locale "en_US"
2024-02-19 15:46:55.145 mdfind[48021:467859] [UserQueryParser] Loading keywords and predicates for locale "en"
/Users/mike/Library/Developer/Xcode/DerivedData/ATDriverGenericMacOS-gnsaescpelxaewcragdkqcyxvdfw/Build/Products/Debug/ATDriverGenericMacOSExtension.appex

And after I use "Product > Clean Build Folder..." in Xcode, that extension is gone:

$ mdfind ATDriverGenericMacOSExtension.appex
2024-02-19 15:46:55.144 mdfind[48021:467859] [UserQueryParser] Loading keywords and predicates for locale "en_US"
2024-02-19 15:46:55.145 mdfind[48021:467859] [UserQueryParser] Loading keywords and predicates for locale "en"

...and it's likewise removed from the relevant dropdown in the System menu. After using "Product > Run" in Xcode and waiting about 20 seconds, the extension reappears in that dropdown. Selecting it and running say produces the error:

$ say hello
2024-02-19 16:01:17.102 say[48309:475641] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000032e94a0] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-19 16:01:17.104 say[48309:475641] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000032e94a0] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-19 16:01:17.105 say[48309:475641] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000032e94a0] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-19 16:01:17.107 say[48309:475641] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000032e94a0] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-19 16:01:17.107 say[48309:475641] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000032e94a0] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)
2024-02-19 16:01:17.108 say[48309:475641] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x6000032e94a0] Name: ATDriverGenericMacOSExtensionVoice, Identifier: ATDriverGenericMacOSExtension, Supported Languages (
    "en-US"
), Age: 0, Gender: 0, Size: 0, Version: (null)

Any tips on what I should try next?

@mzgoddard
Copy link
Contributor Author

mzgoddard commented Feb 20, 2024

@jugglinmike If I recall correctly we also saw that error when you selected the pre-installed Eddy voice. If you delete our voice with Clean Build Folder and select the Eddy voice, does say produce that Could not retrieve voice error? I haven't seen that error personally, (edit) on my system, so I'm less sure how to debug it but if the Eddy voice experiences the error without our voice installed, the error seems less likely to be related to our voice.

I remember I made a quick search for that error and saw https://forums.developer.apple.com/forums/thread/730789. That thread doesn't seem to have a solution for us and for them was likely more a bug?

I suspect its some kind of process permissions issue. (It kind of makes me think of bluetooth permissions issues for apps that are not wrapped and crash.)

If I recall you ran it in tmux, can you try running it outside of tmux?

@jugglinmike
Copy link
Contributor

@jugglinmike If I recall correctly we also saw that error when you selected the pre-installed Eddy voice. If you delete our voice with Clean Build Folder and select the Eddy voice, does say produce that Could not retrieve voice error? I haven't seen that error personally so I'm less sure how to debug it but if the Eddy voice experiences the error without our voice installed, the error seems less likely to be related to our voice.

Yup, same problem with Eddy.

If I recall you ran it in tmux, can you try running it outside of tmux?

Yes! That was the problem! (I don't know which is more impressive: your perceptiveness or your creativity. I would not have consciously noted the presence of tmux, nor would I guess that it had anything to do with a problem like this. In any case, nice work.)

@jugglinmike jugglinmike merged commit 2aa2372 into main Feb 21, 2024
@jugglinmike jugglinmike deleted the add-macos-text-service branch February 21, 2024 03:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants