Posts

Post not yet marked as solved
1 Replies
A -50 error sometimes indicates that you are asking for an unsupported audio format. Try changing the requested audio unit format to use float samples, or a sample rate of 48000, or 2 channels, or some combintion of those to see what works. You can always resample data to or from another rate, and or change the number of channels or sample type somewhere within a mixer or your app's own code. e.g. Accelerate's vDSP framework includes some vector type conversion routines.
Post not yet marked as solved
5 Replies
The Audio Unit and its callbacks run in a completely separate real-time thread from any other thread in you app. So any commands given to an Audio Unit should be assumed to be executed asynchronously. And possibly not until many tens of milliseconds after a command is issued.To be safe, in my apps, I never free any related resources until several seconds after an audio unit is told to stop. And I never stop an audio unit if I plan to immediately (re)start that same unit. I just leave the audio units running, passing silence (zeros) in all the callbacks.
Post marked as solved
4 Replies
Of course not, But I assume unsafe executables would be covered by the institution's code-of-conduct (similar to weight room, machine shop, chem lab, bio-hazzard lab, etc. rules). In any case, many schools periodically wipe all their lab and library computers.
Post not yet marked as solved
2 Replies
In what thread are you requesting timer callbacks? What do you mean by "clock drift"?In general, in the main UI runloop thread, timer callback resolution is usually no better than roughly the display frame rate, 60 Hz, or every 16.667 mS. For better 60 Hz timing, try the CADisplayLink API. For higher timer resolution, you might want to use a gcd timer instead of an NSTimer, dispatch your timer callbacks to a dedicated thread or operation queue, perhaps request each next callback for a slightly shorter time interval than the desired interval, followed by a polling spin-wait until the media time increments to the needed time value for your trigger.
Post marked as solved
4 Replies
So I stuffed the binary executable of my macOS command-line utility into a dmg file, and tried to notarize it.The first errors I got from notarization-info were: "message": "The binary is not signed with a valid Developer ID certificate.", "message": "The signature does not include a secure timestamp.",So I ran codesign on the binary using my Developer ID, and rebuilt the dmg file.Then I got this error: "message": "The executable does not have the hardened runtime enabled.",Is there a hardened runtime option for clang compiles? Where? Or is there a way to notarize an executable binary without a hardened runtime? How?
Post not yet marked as solved
2 Replies
My apps just use a circular buffer for audio samples, and just wait the buffer receives enough 512 (or whatever) size sample blocks from RemoteIO to fill the circular buffer with a total of 20 mS or more (or whatever amount is needed) of audio samples. Then the app can process or send the amount required by consuming from the circular buffer in another thread (so as not to block the real-time audio process).
Post not yet marked as solved
30 Replies
I got the 9000F error when trying a cmd option shift R Mojave downgrade from Catalina beta as well.. To get rid of the error, I connected the MacBook Pro with T2 to a wired Ethernet connection via a USB dongle. That allowed me to use Disk Utility and enter enough passwords to erase the SSD during a command R recovery mode reboot. That then allowed me to recover factory Mojave after another cmd option shift R recovery mode reboot.The key, after hours of trying, was to use a wired network connection (to Apple servers) instead of WiFi.