tillt / KompleteSynthesia

Native Instruments Komplete Kontrol Light Guide support for Synthesia
MIT License
24 stars 1 forks source link

Provide installer #1

Open tillt opened 1 year ago

tillt commented 1 year ago

macOS installer (dmg or pkg)

tillt commented 1 year ago

Seems that the PKG support for scripting is there but not well documented. Apparently Apple stopped supporting that approach with the advent of their AppStore. The widely recommended way of making sure an application has its setup done / is doing it in the application itself. That's how this will possibly pan out then....

tillt commented 1 year ago

Added a basic DMG but that isnt what I really had in mind when saying "installer". We still need something that does the heavy lifting of that MIDI port setup as well as the Synthesia configuration.

theartwork commented 1 year ago

HI! Thanks for awesome work! With an proper installer maybe it could be a better experience, but it works just fine with xcode project - finally can throw away printed numbers for the keys XD

tillt commented 1 year ago

For the Synthesia configuration;

We would need to assert this OutputDevice in ~/Library/Application Support/Synthesia/multiDevice.xml

<?xml version="1.0"?>
<DeviceInfoList version="1" useSoftwareInput="1">
    <OutputDevice version="1" name="IAC Driver LoopBe" enabled="1" userNotes="0" backgroundNotes="0" metronome="0" percussion="0" lightChannel="-2" />
</DeviceInfoList>

Lets see how gatekeeper likes us patching that file.

tillt commented 1 year ago

Added a Synthesia configuration patch mechanism that works but is not perfectly user-friendly. The user has to accept patching the file in question in a file-dialog. But that seems to work fine then for me - see https://github.com/tillt/KompleteSynthesia/tree/till/0.30

tillt commented 9 months ago

I played a bit with the idea of providing a setup-dialog for giving users a neat and unified way for granting privacy related permissions. The inspiration came from looking at Alfred's permissions setup dialog.

Initially I was hoping I could get the current status of those permissions from macOS and then give users a way to add the missing permissions through a simple dialog. Trouble is, that is broken in macOS - one can not get the status of Accessibility permissions and then hope for achieving anything around Input Monitoring. See https://openradar.appspot.com/7381305

Next approach I tested was ignoring current permissions and simply giving users a unified surface for requesting those permissions; Screenshot 2024-01-19 at 16 43 13 If the user now was clicking on Accessibility first, the permission request dialog from macOS would correctly pop up and do its thing. All fine and dandy. When the user then clicks on Input Monitoring, nothing happens - macOS will not show the permission request dialog for that feature. Actually never ever -- even if the app gets restarted in between. macOS appears to mix the idea of Accessibility and Input Monitoring as soon as the former is setup before the latter.

The only way to get all those permissions requested and setup properly is when Input Monitoring gets requested first.

That in turn means such setup dialog would have to be a step-by-step guide -- first only asking for Input Monitoring and when that was setup by the user ask for Accessibility. Overall, the convenience gain is vastly diminished by that macOS bugfest and I decided to drop the entire idea. The flow would be very similar to what we got already, so why bothering with added dialogs.