[SOLVED] Large "Ignore" button overlaid on VST instance

  • EDIT
    cat /dev/tldr -- The issue I was experiencing with the LinkOSX file and still being prompted with the sample question was due to a new-line at the end of that file. Older forms of bash and sh don't support echo -n, so I switched to printf %s in the post-install script. The second issue was just plain old user error while switching up the number of spaces in things.

    I had the plugin running fine earlier today but then decided to try getting it into a .pkg file along with its samples. Now I can't seem to get it to make any noise (Reason) or make noise/respond to MIDI input (Ableton, Studio One). In Ableton and Studio One, the plugin has a big "Ignore" button overlaid when first dropping the instrument into a track.

    My viewport is small as the interface is stupidly simple, so maybe there is extra information that is hiding outside the viewable area (this size issue is also a problem for the sample loading window when run without creating the LinkOSX file, unfortunately).

    I've included the .hr1 file, the .ch1 file, and (out of desperation) all of the .wav files into $HOME/Library/Application Support/NotBotLabs/SadByDesign/Samples and the LinkOSX file contains that directory name. (EDIT: Fully expanded, of course, I'm using $HOME here as short-hand).

    It might be related to some changes I made to the plugin (changing functions to inline functions and vars to regs) but the code still seems to work just fine within the HISE application.

    Any thoughts? Thanks in advance!

  • Okay, so this appears to be a simple issue with an appended newline in the LinkOSX file!

    Switching from echo to printf in my post-install package script seems to have done the trick 😄

  • Unfortunately that doesn't seem to be the issue, as I've just re-installed with a slightly different plug-in name. I've corrected for the changes in the post-install script and verified that the Samples folder exists already and the LinkOSX file is pointing there without a newline character at the end.

    Still I receive a dialog for selecting or installing samples. I've just verified that this occurs even when there is a .hr1 (.hrX) file with the expected version number in the samples directory specified in LinkOSX.

  • I probably should have mentioned already that I'm using release 2.0.0, as that was the latest packaged version.

  • The .hr1 is not the samples, it is a delivery container for the samples (like a .zip file). I've written a guide here to installing a HISE sample library - https://librewave.com/knowledge-base/sample-library-installation-guide/?v=79cba1185463#Installing_the_samples

  • @d-healey Right, which is why I worried about it as a very last resort...

    I am reluctant to ask a user for a samples folder after they have already trusted me with a .pkg installer. The whole idea is that they don't need to do anything extra. I'm only lost because the LinkOSX file is pointing to a folder containing the .ch1 file and the documentation implies that this resolves the need for manual setup on the user's end.

    It's also worth noting that the user is only going to see a tiny portion of the sample selection setup from your much appreciated documentation unless I change the size of my plugin to sizes that aren't justified by the current controls. This size restriction is part of why I want to avoid any user interaction in the first place.

  • @botnotbot this size issue is one I raised a fair while ago - in order for the end-user to see the button that lets them decide on their sample location you will need a UI at least 500 px tall, until @Christoph-Hart changes the way HISE works.

    Further - the plugin doesnt know where you've placed the .hr1 file, and in fact the .hr1 file isnt (I think) much use to the plug-in it needs the extracted ch1 files

    You could add something to your installer that asks the user where they want the ch1 files to be placed, but once you've put them there(Say some massive external SSD) then you are going to have to tell the plug-in where that is and install the ch1 files there.

    The plug-in looks in a different location for Mac and Windows but in either case it end up looking inside a symbolic link where the real location has been recorded. So to get this end-to-end package installer to work you would need your package to get the location the user wants to use for their samples, write the ch1 files there, create a symbolic link file with this all new location recorded in it and write that to the correct location in the Mac folder structure. I only use whiteBox packager and I'm pretty certain it wont do all of that(could be wrong).

    So in the end its a multi step process.

    Use the package installer to:

    1. install the plugin(s) to their correct locations
    2. put the hr1 file in a well known location (I put mine in /Applications/ChannelRobot/instrumentName)

    Then have a plug-in of the correct size to allow the user to see the button on first-start-up - and let the user select the location for the samples.

    Nice thing about this is you only need ship the h1 file as the plug-in will extract the ch1 files at this stage, and set up the symbolic link in a place it knows about

  • Hmm, this is embarrassing. It seems to be working now that I re-built the package this morning. It seems that I had an intermediate build in the package that had a slightly different company (no spaces) than where the post-install script was putting the samples folder. Now that I've re-compiled and re-packaged, the LinkOSX file does seem to avoid the need for a sample pop-up menu.

    @d-healey Thanks for your quick response last night, by the way!

  • @Lindon I'm actually shipping the .ch1 file in the package at the moment to avoid any user interaction requirement. It's hardcoded to the Application Support directory for the plugin at the moment but I will look into making it depend on a user selection.

    I'm using the Packages freeware to build the macOS installer which provides me the ability to install the samples folder to /tmp and then create the expected Application Support structure with a post-install shell script (this script also creates the LinkOSX file). Packages does support creating interactive package installation, so that's how I would proceed to make the samples directory user configurable (assuming the user's choice becomes available to the shell script via an environment variable).

    For now the current hard-coded setup should be fine as the installation size is only around 75 MB.

  • I've got a preliminary Install Plugin up and running for setting a custom installation path for the sample directory. It's embedded within a .pkg built with Packages and I have a rough idea for resolving the one current caveat, which is that installation proceeds first through the /tmp directory. The other major caveat is that this is a Mac OS-only solution.

    I'll post the code and .bundle soon. Eventually: a recipe proposal.