HISE Scripting Framework


  • administrators

    Awesome! Btw, do you still need that {GLOBAL_FOLDER} redirect function - I just remembered this by looking at your repository :)



  • I never actually got around to working with it, I've just being using absolute paths


  • administrators

    Well, this will lead to disastrous errors on a apocalyptic scale as soon as you compile plugins :)



  • Uh oh... tell me more!


  • administrators

    Scripts will be embedded using the relative path from the project folder / or global folder as identification. Think of it like a big JSON object:

    "scripts":
    {
        "{PROJECT_FOLDER}Script1.js": "onInit...",
        "{PROJECT_FOLDER}Script2.js": "include(\"{GLOBAL_FOLDER}somethingElse.js\"); onInit...",
        "{GLOBAL_FOLDER}somethingElse.js": ...
    }
    

    Now using absolute file paths may work, but it's pretty much undefined behaviour and can go wrong on certain OS version or under rare conditions (the other way is well tested on all platforms).

    What I can offer is the same mechanism that exists for sample folder relocation: a file in the "real" GlobalScript folder (the %APPDATA%/HISE/GlobalScriptFolder) called LinkWindows / LinkOSX that contains the path to the actual folder (in your case the repository root folder) and HISE will resolve this during development as well as when compiling.



  • Ah I understand now. Yes that would be a very good solution I think.



  • Took a quick look on GitHub. Very good work Dave, can I suggest that one of your videos covering how to deploy this in the development process would be really useful.



  • Once I've cleaned up the code a little and added more comments I'll do a little video.



  • I've added a bunch of Sublime Text 3 Snippets for HISE to the repo - I'm not sure I'll be adding any more as I'm pretty much doing everything directly in HISE now, if you have some snippets you'd like me to add to the repository just let me know :)



  • "What I can offer is the same mechanism that exists for sample folder relocation: a file in the "real" GlobalScript folder (the %APPDATA%/HISE/GlobalScriptFolder) called LinkWindows / LinkOSX that contains the path to the actual folder (in your case the repository root folder) and HISE will resolve this during development as well as when compiling."
    Has this been implemented?


  • administrators

    Not yet, but I'll try to do it soon. I am currently in vacation until Octobre 2nd, so I'll be offline the next days.



  • Enjoy your break! :)


  • administrators

    Alright, I've added this feature now:

    Tools -> Redirect script folder creates a link file in the original location %APPDATA%/HISE/scripts which points to the selected directory. From then on you can use

    include("{GLOBAL_SCRIPT_FOLDER}MyFileInNewLocation.js");
    

    Exported plugins embed this script into their binary. If you want to change the location again, either delete the link file manually or choose another target directory.



  • The redirect doesn't seem to work on Linux, it creates a LinkWindows file that contains the correct path but it doesn't resolve when I hit compile and gives a file not found warning


  • administrators

    Time for a LinkLinux file ;)

    But I need to check what is the recommended location for storing persistent app data so if you know some best practices on Linux, let me know...



  • Most apps seem to use a hidden folder in the home/username directory as Hise is doing now. Other put it in some obscure sub folder of the usr or etc directories, I think the home/username directory is fine, although it can look a little cluttered it keeps everything in one place.


  • administrators

    I think I fixed it, but am too lazy to boot up my VM, compile HISE and check, so let me know if it's still broken.



  • I think you broked it ;)

    Compiling hi_core.cpp
    In file included from ../../../../../HISE-master/hi_core/hi_core/hi_core.cpp:83:0,
                     from ../../../../../HISE-master/hi_core/hi_core.cpp:34,
                     from ../../JuceLibraryCode/hi_core.cpp:9:
    ../../../../../HISE-master/hi_core/hi_core/PresetHandler.cpp: In static member function ‘static juce::File hise::PresetHandler::getGlobalScriptFolder()’:
    ../../../../../HISE-master/hi_core/hi_core/PresetHandler.cpp:2253:23: error: ‘getLinkFile’ is not a member of ‘hise::PresetHandler’
         const File link = PresetHandler::getLinkFile(globalScriptFolder);
                           ^
    At global scope:
    cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’
    Makefile:166: recipe for target 'build/intermediate/Release/hi_core_bbc2a29e.o' failed
    make: *** [build/intermediate/Release/hi_core_bbc2a29e.o] Error 1
    


  • Just downloaded the fixed version. Works perfectly :) thank you.


  • administrators

    Yeah, I should at least have tested compilation before submitting - it was broken on all OS...


Log in to reply

Looks like your connection to HISE Scripting Framework was lost, please wait while we try to reconnect.