Just proposing an idea here to see if it makes sense before actually begining work on it.
The idea: a native SwiftUI alternative to faust2caqt and faust2jaqt on macOS — something like faust2casw (CoreAudio + SwiftUI) and faust2jasw (JACK + SwiftUI).
The problem Qt solves is real, but it's also a heavy dependency for macOS users who just want to run a Faust DSP. Getting Qt installed and on the right PATH is more friction than it should be. SwiftUI ships with the OS, so that problem would go away entirely + the advantage of having faust generated apps perfectly integrated in the macOS ui.
My first toughts on it are that the rough approach would be:
- An Objective-C++ bridge implementing the
UI interface, connecting the generated DSP to a SwiftUI view
- SwiftUI views built dynamically from
buildUserInterface() (sliders, buttons, bargraphs, groups)
- Thread-safe updates from the audio thread via
DispatchQueue.main
- New scripts consistent with the existing
faust2appls conventions
- macOS 13+ only — not trying to replace Qt for cross-platform targets, this would be only complimetary for people like me wanting to better integrate faust apps in their macOS system.
Before going any further: does this seem like a useful direction? Do you see any clear showstopper ? Would a clean PR (after a maybe long work) along these lines be welcome? And has anything similar been tried before?
Best regards,
Eric
Just proposing an idea here to see if it makes sense before actually begining work on it.
The idea: a native SwiftUI alternative to
faust2caqtandfaust2jaqton macOS — something likefaust2casw(CoreAudio + SwiftUI) andfaust2jasw(JACK + SwiftUI).The problem Qt solves is real, but it's also a heavy dependency for macOS users who just want to run a Faust DSP. Getting Qt installed and on the right PATH is more friction than it should be. SwiftUI ships with the OS, so that problem would go away entirely + the advantage of having faust generated apps perfectly integrated in the macOS ui.
My first toughts on it are that the rough approach would be:
UIinterface, connecting the generated DSP to a SwiftUI viewbuildUserInterface()(sliders, buttons, bargraphs, groups)DispatchQueue.mainfaust2applsconventionsBefore going any further: does this seem like a useful direction? Do you see any clear showstopper ? Would a clean PR (after a maybe long work) along these lines be welcome? And has anything similar been tried before?
Best regards,
Eric