Giter VIP home page Giter VIP logo

cxxauv3lab's Introduction

CxxAUv3Lab

This repo is inspired by WWDC23. Using C++ with Swift to eliminate Objective-C code in Audio Unit Extension projects. I started with the Audio Unit Extension App template (instrument plug-in type) in Xcode 15 and slowly was able to fully remove Objective-C code. Obviously, this is not production-grade code. It has some obvious issues, but it's a proof of concept that we can reduce some boilerplate code to get DSP and UI to talk to each other.

I think it’s real-time safe, but maybe someone else can look at it and correct me. Hopefully, I can ask some questions about this at WWDC labs this week.

Check out the Mixing Swift and C++ document. It's well written. Also, the WWDC session Mix Swift with C++ goes with it.

I did add MacCatalyst support but I think there's some bug in Xcode 15 where it auto-generates code for Asset management and fails to compile. It's best to use it on an iOS device, inside AUM or another host.

If you have any feedback or questions let me know.

Core Audio Lab Feedback

During the Core Audio lab, Apple engineers had a quick look at the code (commit 0b9a715) and their main concern was around the contents of internalRenderBlock method. From the brief look, they said it looks correct and the best way to test its real-time safety is to use auval with the -real-time-safety flag. I'm on macOS 13.4 and Xcode 15.0 beta (15A5160n) and having issues getting it to create a release build, the compiler is crashing. I'll investigate it when I have more time.

cxxauv3lab's People

Contributors

jcavar avatar nikolozi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.