### GLSL Hello World Setup Source: https://github.com/christophhart/hise_documentation/blob/master/tutorials/ui/readme.md Demonstrates the base setup for a GLSL 'Hello World' example within Hise. It utilizes a Panel and the Starter GLSL Template. Note that GLSL relies on OpenGL, which has limited support on macOS. ```HiseScript HiseSnippet 1781.3oc2X8zbSbCEe2jHJwoIPRyzxgdXGldvAxXrIIPmggI9ewgTbRbyFn.8.ixtZsUyZokc05DSGl1i8q.25m.9Xzycl9Inm5za7Mn8Isqs2MwIXbgYn3C198jd+zSO89mD4XAgYSreZ.i54QDZZ5S1vmaQBB39Z5SueWOhl9mhL6xDspzBSYZaUUSeNz13.Aw2HhU4td3f.hslt9jaJYnO8TZpOud8xXWLyhLfkl1C4TKRcZapX.2FEuO00sF1lrOschYuZwsr3rJbWdHnOShxq4gsND2jrCVNsIPZ5WXCapf6aJvBRfl9Tk41cMawOhEM+GRCnG3RjDEzLAfhXWi6ZK0XIWsJsnt1822AfU.kvJLYjUXQz1TaZe9CrFWVMfw.IRZOzmHs5MYJ0qPR0KeB0aHpjdBUZpHUZdjokO0SLXDo9LCZKFb33fAydRUIZtZS7a5nJbXFLQt13CI07Ah9Rjcs74W1.9Zo6jICX5CDFcv9FdF20nmPXa6FXFwM6UU+T3pKa.hbBABZkPBKeBr6MaAGu9Yu5l0MqeCJiJx0zMv8pR47xEPDM.CpXOdnfxHYcBYVBJmks4RY9wLS2LG1yysaLDAsV1PzhFjqIQTmagcKyCY1AYyuD.1K5CnzUxuB108.vmY.hJ.Uh6S7jqY1DRIv9QxksvZRVY5IlAmsCWP1MV9LuHiwIGxwYniIsB9bWW.ygMbzpcNBlkE19.h+xfc0MjzehfWPZWKzY6Zkzy2J5PIwD4rsfSic8HryJdPK9jD92C1pJVfk9iw7f44Q7EToJnWkzABti7NmFUkDbnf6olaaONShf9EDpQmsmuqzGRiBdnWDE4OocLrWzkQ+c68mVDZyVCRWT7mJdD0VzJICsSGd.Alb6PWrHczpLEU7.fcNUHhLLfEPEcSlB6cVH7nphyiZPEVsFtNNwPzQ3z38gNFm3aVzFNNDKw.EbJTsG89IKWxketnkeFjIjPPUARs3eth136vcHFaRXDeowqv4TD52G0hPdibQncsDvxuuOlE3wCRArIoMcevUOHIyGD.oYIOaO4oYR9U3X+gNzqWuFrIGpLlXQnuxsnTaHsmHkavjmWwvBiYwvo9vtXXe2zR9djlMoR+g31TRvIsGxIMTSNZFpyKyn9mEmuFlZTJt4hSwUNTHffXYNt4PQZQLKUF8jGfZi.Fyh1i.U2dqgvzkBEOUPbIzNgsMEDuXdm.j7EGEPf.S.AktLdZwkU.XdH8LTiWu9nXN.T39h6S5F7ewh.aFOBw99L9AmDfu7zViKGC.TV6.dY9wJHV.YRdVHARzzm8nugRnJyhhRurGl0jLd6loQlsBcbbIimG1LnMXXv8eeJ471BSEAvBoV+FPuVJPVD0KUXhANAZKWzV1Lg92it0p4FqOUdSSPaz02GRb4VPg0yVeycB8sV4R4x8n6UMWNmlM5Q2PR2wQRWQRWe.cYI88TyWQWRRWUR2PQWsboQVeW.UmvZJZMhZa0vqSKcT4G+s0pluw8ebia+CUNrTymvdPsp6uyAOtwJOYS2Rf1H9Fo18Xo17bIsyl.cNLP63o1cR5U7h2MZiVnw7HnBACZtyj3BcRvGkP8gBzWf1MT3EJdGA27nsargorm+X.OU7xHF6eIIPavrOCXNmDpIB6t.5dPg3gDx9geqsoJHOcOczj11ykrAqCDXAbj53BvkBbvgthdbSWWdaNi60hynVIM.6QD9zlMI9I08gtgJIDx.g9bVr3dfKBNYKZeUw5PqUXevNQFSaQg25apOzyqqfhTWCY6lF++8JIS9Q8URRcbNSz5+IfWrKtqZkuXz+S4GOghk7XsNwIQG5WoX+A1K0MZAG0ZP6GxGpHgDFuZy+b8d7SJvOu3q9q0qyOpArfxKIzGme4OJdO5o3pUs31ziiI+0W9x+d88Iv8wg6TYkxq5cVSwQuhSyswPbq717xtMgKOAcFEkeT9ZE5SHaFIhNeuK5aRX1Jh+A9DOXAIsd7fE5M3GMqQarkO+oVQkGj9aWTwArsL0abNMZaIsQgSWXnMbUqmZYkFpSI3MGWAWYbEb0wUv0FWAu03J3sGWA+52rfxaBWJTvaGkwTSC5QP83Y55Q8WqRToQZe.wFt+cT+.pLNNTYX1DxehVUnzdpWMs2q3oMwL5nNbpsQaHSn5UDMfO23FF6v8aicoOmXa3QOl3ZXw491TlLz1HqiOusQdCA3VsjRhNDqaZD1w3tFN93lUjy8FT3tcb2Poxm63t2ISOnUkq5f86BgF8A2k62CnUjj.R4yslw0keeMfQPVpTtqG1Av53qKmV17KeykWU9ls8PNp4NoZEX4SHLE+HEBvGfTsZkb8ZgMtlboVMKrTKWHm70meQFsA1RF43Zf0SlL5ewGq39F ``` -------------------------------- ### HISE Expansion Installation Callback Example (JavaScript) Source: https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-api/expansionhandler/setinstallcallback.md This JavaScript code demonstrates how to set up and use an installation callback for HISE expansions. The callback handles different installation statuses, rebuilds user presets upon successful installation, and prompts the user to delete the source archive file. ```javascript const var t = FileSystem.getFolder(FileSystem.Desktop).getChildFile("test.hr1"); const var e = Engine.createExpansionHandler(); function installCallback(obj) { if(obj.Status == 2 && isDefined(obj.Expansion)) { // make sure the user presets are updated obj.Expansion.rebuildUserPresets(); // ask the user if he wants to delete the archive file... Engine.showYesNoWindow("Installation sucessful", "Do you want to delete the archive file", function(ok) { if(ok) t.deleteFileOrDirectory(); }); } }; e.setInstallCallback(installCallback); e.installExpansionFromPackage(t, FileSystem.Expansions); ``` -------------------------------- ### Set Hise Install Callback Source: https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-api/expansionhandler/installexpansionfrompackage.md Allows setting custom functions to be executed at the start and end of the installation routine. This provides more control over the installation process. ```javascript ExpansionHandler.setInstallCallback(startCallback, endCallback); ``` -------------------------------- ### Generate Windows Installer Script with HISE CLI Source: https://github.com/christophhart/hise_documentation/blob/master/glossary/command-line-tool.md Demonstrates how to use the HISE Command Line Tool to create a Windows installer script using Inno Setup. It involves setting the project folder and then invoking the installer creation command. ```bash %hise_path% set_project_folder "PROJECT_PATH" %hise_path% create-win-installer -noaax ``` -------------------------------- ### Set Install Callback Source: https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-api/expansionhandler/installexpansionfrompackage.md Sets a callback function to be executed at the start and/or end of the installation routine for more specific tasks. ```APIDOC ## ExpansionHandler.setInstallCallback ### Description Allows you to register a callback function that will be invoked at specific points during the installation process (start and/or end). ### Method Implicitly called by the system or through other script functions. ### Endpoint N/A (Internal function) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```javascript ExpansionHandler.setInstallCallback({ onStart: function() { console.log("Installation started!"); }, onEnd: function(success) { console.log("Installation finished. Success: " + success); } }); ``` ### Response #### Success Response (200) Indicates the callback has been successfully registered. #### Response Example (No direct response object, relies on the callback execution for feedback) ``` -------------------------------- ### Install HXI File with Credentials using ExpansionHandler Source: https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-api/expansionhandler/encodewithcredentials.md Embeds credentials into a .hxi file and saves it as info.hxp. This example shows how to create an ExpansionHandler, install a selected .hxi file, and uses FileSystem.browse for user selection. ```javascript // Create a wrapper object around the expansion handler const var expHandler = Engine.createExpansionHandler(); function installExp(hxiFile) { expHandler.encodeWithCredentials(hxiFile); }; FileSystem.browse(FileSystem.Documents, false, // read "*.hxi", // hxi installExp); // callback ``` -------------------------------- ### Install Samples Source: https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-api/expansionhandler/installexpansionfrompackage.md Installs samples from an .hr1 file, optionally encrypting and copying the expansion file. It also refreshes the sample list and supports custom installation directories. ```APIDOC ## ExpansionHandler.installSamples ### Description Installs samples from an .hr1 file, handling file copying, encryption, and list refreshing. It allows specifying the destination for the samples. ### Method Implicitly called by the system or through other script functions. ### Endpoint N/A (Internal function) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```javascript // Example usage within a script: const expansionFile = FileSystem.getFolder("/path/to/your/expansion.hr1"); const destinationFolder = FileSystem.Samples; // Or FileSystem.Expansions, or a custom folder object ExpansionHandler.installSamples(expansionFile, destinationFolder); ``` ### Response #### Success Response (200) Indicates successful initiation of the installation process. Actual file operations are asynchronous. #### Response Example (No direct response object, relies on callbacks for status) ``` -------------------------------- ### MainProcessor Initialization Example Source: https://github.com/christophhart/hise_documentation/blob/master/cpp_api/raw/classhise_1_1raw_1_1_main_processor.md Example C++ code demonstrating how to initialize a `MainProcessor` subclass using `addAndSetup()`. ```APIDOC ## MainProcessor Initialization Example ### Description This code snippet shows the recommended way to initialize a `MainProcessor` subclass. It involves creating a derived class that inherits from `hise::FrontendProcessor::RawDataBase` and `hise::raw::MainProcessor::ConnectedObject`, and then calling `raw::MainProcessor::addAndSetup()` within the constructor. ### Code Example ```cpp class MyData : public hise::FrontendProcessor::RawDataBase, hise::raw::MainProcessor::ConnectedObject { public: MyData(MainController* mc) : RawDataBase(mc) { // This should be the first thing you do, everything else // will probably need the main processor. raw::MainProcessor::addAndSetup(this, new MyDataProcessor(getMainController())); // Do more initialisation here... }; }; ``` ``` -------------------------------- ### BasicSynth Example Code Snippet Source: https://github.com/christophhart/hise_documentation/blob/master/tutorials/all/readme.md This snippet represents the 'hello world' BasicSynth from the tutorial repository. It's a foundational example for understanding HISE's capabilities in creating synthesizers. ```HiseSnippet HiseSnippet 10082.3oc680EabbjdfMkTKINRThRh1dSt8RpvaiOJsxi3Lb3e1vgi3ehbMo3HNTxVqWuRMmoFNsUOcOt6dH4HeBm.x4Cavc.1HODf7Rh.RB12VDfC3PNjGByg.jbG7CYSdHatmjQ.bdXOfnGt6o6AeeUU8OU+2L8LbFNCkEg9gc0U+0e+We0WU8Wg22DqVDW7AFpxUqhMEDF3j4z0JfMLzzEFXvspWEKLv4EyWW0r7BkkjUEVcQRCyKYHWf1pv70qJYXfKJLv.m7VjdLvfmRf9yKladIEI0BX2lDDtmlbA7ZxUjMcaMW12SVQYYoh3sjqv06LYWsfl5BZJZ0.r4jhiKTUpvij1AeaIR2Ngnv.mdohxlZ54MkLwFBCHNuVw54KqsmJq+2S1PdaEL4hTB4A.wZdYMkhDLlz5F6h02UFumaaiKHrPYYkhNbBCfubZN9xIY7kQDWWtnrS6t7mgo2.49D77nANgWT9jdP4T7n73bnbHnz.bnzoXnzkDyWPWtpo6cH3y4DWU0DqWRBDE7nBquBm3MGT7FW6ZnUVM+RHpjEQEsItVhqgP2TEg2WpRUELppt1GiKXhLKKYhL.T1.9ULplAHRPZkX.f7LkzzQRnsofxf.pjIt1MRj3F2.kGaReFYaDBYH+XbhEzfqUMSVQ5Q3k0gKbP3wRMd5LWGM8Tyb02gBgsJKa.OdAkZEwFHoh.yTVSURAYPoFijn6qUCUPREIUfvCHutJnsqiJnHW3Qxp6fHPQSkhFipotppr4nP+UT1FTtPFXEfDA7mzCspDxhzwEzJhQLAWRTBqW+XitPMCSsJKX8vFI+XiQYn4uA5ca4eP4H7wUjTKp.nIkXuEicYfQ53RXcLXLYPnEFVRHFIDXhXpqo.7DJl5v4PKhMj2QEqS.DbSB1iVmPGe3xY9nqizk2or4aQ4JH3chJTVSCdQitfNFzLsXmtuWpP058poNJ8Q.UInm.XKC8IYBTB.WLLQ6JoyzfHDz70LMAd46hrkw6fMWPqRUMU3hwF0W+HrOWfjSGHcyl.A9N48wAkMBOxnYnfmt4EDK+AwfF36DU9GBan4LfvdwM4UFJ2RGrKw5Micw5U37qFiubcxRYGkqlIyLCLDHpZDiOcco5TcFYPeThpqZVVWq1NkopoUgG2HI2Km1.7V+PGFx0sXBW2KkccO34Gw4UnTMUpxo0qDybOQwjqiJKS8W.HH6MA5uLGAJ047ksi7tXUZOn+yVZDOyH.1RbVBlzZ9ZY3Q8G.VrX22eYhMLlfdFi4Blql3SSfPTuiiUkvlnHxUosQ9oZRfHGazcYC.L504w.v6PUfY+DWhkhi6Aiah1FSI.fmafJhKIUSwLAOF3vPoRqqAdH.zGffsacBsTQCDCR1XODKfpQzNTRRP4sfa8HUssobRjgBvd0geWGiJJqCNI.1JvfTgeCWzlikWqFz2cvpDwCLHFh.HYUC3YsTJzgQ1gWGYnlpXcSYrw0ovm.WCy5J.rHWVBX2l0TIPl55gBnUj1Ej1HEMsGgd6qxFxA9wQpnodaMS7FpiQDDCB7Rj+aUpTn2aAlfVAqG5sIAsn2nGbL0ZU1ln3tqjRMrsZ.HIXRRmwd9XXzD5UFNlHLUIhwiCX2S1jYBAFEUIdi2k0UpTAcMKQiFgwfJPGex4MvjOxDodEvXFXeVxX1vfV97s.zMRLnA7tJT1B8YJpepi5ZAIXzBetueaTDJdnsgQUdz638g48a58IY2IhGyq+ZeuRNWCQ737iW38g83lw6S+DPxBQY0nnMSEUzlEX9Q45HicuAXkwtNXvcBVNegv7xXoEAc0jFj2ErBxKO0lSPFhk6hh2UU1PSUypMphlafzCmUvOPF1BHfm8s0lWaeJXth36C1Pf+oJ.SlEGjePIDDTgfOWPbQp8YHnyyuye1evbwAFWVjLchaZZBJtgSVnXgKCSgyJP38gCkeXrfxknPYQbAo5gBlk+owBLWgBl7fYI4+Bg67Mey0NH9.ZSPJA5zghQa9GGSByR0AcyJf6YyT9.yyJFKvbdFgEBEkdhqDKJ5bhuGNLd6y98+8+uEKElKRQg0VdivXG+C+QGDKfLBEH2CqnUP1LLzI6W83+pXAoWSbYYEXrrFJrGKlBaFnhV86u4yxFOaJFfh1ZXzrwiKwfSCrNyomsU3RMRSd+e2VBTKPbsWpTnf59+4wBTugCVAVFjTXDBvPe1u7mOW6XgMoWkfGOxWGKv75V3TCzMe5u7N+hXhRLXEtwB5G84+cwEL53OoFDTbnXy6l3udt3MvyHAG3wueHgWDSTJeEMH3GHHfvUvuVL8JlqLnNpul1dgBlu3wwzdiAlUf4ZGJb9x+jXNrACN4qhwgY3lchI9mlqUnq0k2OLI1H+r+knACKjIqw2Yfwpo1RRcEwE0gXWY1Dg62+ebt3M.OEPQPRuah+4XQRCwfxgghdcQnS6poTiDm9h5g6oVvJ3tVAVuONLFzCK80yyM7woYv50rf0MqUTVy1pxx+HOHsuS.rqnjojv.uo3mlayM9AKsvVOX4MVawk17Ix5OvfN0gGni2Equcx8j1UPWRcGLDOrtIDN7.jGm1xRpEYWeBg3v6uBOlEtDHdbsgDUz1aoOIbF+O42Jdfnhbw1.DbjSBwktygQO5BhkA+EGNx3hhzjrCtLBItiu7KaPX7bDhCPNLTykg4BnHUeSR5FOLwbbIFbVCWp0AiW6bBXNLTzqw.wxfu3sCO7Gv20WEWeWDPEtuqXq1eYwMolj4keL9v.mWyBNKJUoZ3Cf1BCzv.U3ttN3W6y.vb2UWj3qQXfArlsaNmr9.ssHdW4BX15ZLHvlLdjoVUgANqStHgIcvd8CYupGRpXEqYiLOHX1QmjuIg84YC04uXO4hlkca3KxVFSzRcZ4E+6xtslNf7DFKuVBq0MkJJWyfGffsRE60q57hYROy3omcxLSNkfIdeS6abNwomXlTyN8jimg6ARydhomMSlwSkYZgs2gGPylY1olFfkv.mhi9SDE8eNQmbuDax+oetexe3mjspjN7l3Y47bVdxkjoCdpLgXpold5oSmZRuDIoedHhyEEQjPbCiBrK2mO9MWZ3oql0KMj8Q9ogrkCRC7bGeBfTyjJyLSjIc5wEBWxySxmSblToAYblz9EvomZlLS.BdPdIx8huRrSfCGAOOGAm8G4ifEx4mfgVJIqTwvDdCqVgPhC7qFXr72SUa6jUU2QPsVk7jdZv+7Fl3p9o6JRbnz2MaEuKzqollhoLXc9q6LWG5B8ZMim2F8o26lqc2kdhPU6bbsJ0sEQNfIq.nN5VfJUUAmL.uJcVAV.iBKFnDBHM4TSHoA+dD2L4zpB.afyHNOLYo8DLJHofWVhlOKGr94yIajSo1Nxp4reorrwU0airEa9Bh7DDwapCBboVLiZbLxk4Ul+A9ksOLfrMaVpbPbfS4yYy4DSAZso.6so8pROnXpTolIyLo3bn3yzDj8eWw7xp3DaoKCQuofSjWZuD4+jZ.qNQBppM4gbBYziPjapa2xNw9dEimi1ikgdjpgRuVSbrQ9EPNXDu3Xj3lUx844zG01XLl5YsvHAGCneEGCH1cbMcpnUDSlWvsABVRArYJlCqW.HYx62nVoRx6SXX+lBP7qjTZqYPWYbdE9Vx5ywkjEJ1iL7bXQBQOv+ZRaaMlwE3aIEuHdLNQrv66ebicBHhe6r3hxlRNaEiRPHJ1XzF6WeGrJso7jEkBl7k37ZJEYs3wy43VR5+0d7eXufDnXva4o6KDK5NMOcecd59MaNc+a0Yn6YrnaQhgZCoOW+RmSbhwSM6LyNyLS6Y7zAO827MeyumUPrMOtgKKdyJUWRcWPCrJ1e7COSqQwOf1yO+HW8db7CuQrheHjEKYe9MRkKM+7c7QyOcc+z7yJEv812Mf6M1aIJGb2OHWKDwhG+Qrz2ir6gk+tSKR2SX7ge7S96CMBEaWfhhHXHsHbBl8yy5wI2YEY7rNgmpyKdy0ygrfmPrDaAVaJWp7o28UBsHDZmVjvw5DhrDTQFEZwSfEbY.4LyJ7JIVDRryHRYYcBQ14nhLF3hWXegslq6yOkwisRMRZQJHShAvy7wt+AdlslffO4HcEU4jiEmOxXFSefG43fhVrwNgjbHpjzFfwy9Krk81kTO3SdkEXDVfCJZwz5bRNa.FOqvf6y.N4F+Xcia18m+08aZNN.duybx92PIWa4k0H7Hh3JhDabApD1Q.GdDGwQuwipQbk6V6Av64MCvKlMpIosK+NNmWXNTrlswD7NS2jSP9Bc+BxOnaOKqgD4DNwhCGIwGuoZkIpvrCLUKPstqOUKPMMVDc6Nkq3oPLIGOAo0aUHtfsauNfFwaDuM+DmBwD7oUZydPpaoiz6KXf12s1fDlE8a7wW331sES+YtgsD2fPB2k1XGDkKMegC0AFxyhHiURntnmjPMUTZDAx9PHZDcXygVPT0FT5z7T5G1aoTQxtIrkIzQh0tSLJp7HwB+vX9RD9VrE9zyS1g+pfQW8VvF9PkG5vMmgHa6doQloOzFJ0yvm7vx8Zk50VdiNnRs+cLaTTZethcB1Dpr3MeaSydDGpG4RtwS9G5lc1UI347SmNa99akfKHZSGAiP4aGJBIb3.sietYiRv2C7ywQIcmPUxjIxvz26HmZaoLBzFz5jQkokd.sZk59tDkxGpc1B8VJ0Nk2cGRcR9038YOp2RptYEtKQr7x0g060DqcdOaUh8BwiXmNpTJ8vsOxSoTBwkt88VZsMxsTWMuRQtT91eROQsZ9i8e3X1p4+5st9.+DPDRwq72eoODtrpcUIFoE+t53Bd4i43QGzqVDnv4FdhXcXec4khE0ylnZ400K3W3H2.bae7Vjd7Y00ufs3K3BrekV4qJkKhysdkr6HYurLjsn ``` -------------------------------- ### Create and Load Audiofile - JavaScript Source: https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-api/audiofile/Readme.md Demonstrates how to load example assets, create an Audiofile slot using Engine.createAndRegisterAudioFile, and load a specific audio file into it. Requires the HISE environment and example assets to be loaded. ```javascript // Load the example assets FileSystem.loadExampleAssets(); // Grab whatever asset is first const var firstAsset = Engine.loadAudioFilesIntoPool()[0]; Console.print(firstAsset); // {PROJECT_FOLDER}breakbeat_44k.wav // Create a audio file slot const var audioFile = Engine.createAndRegisterAudioFile(0); // load the first asset audioFile.loadFile(firstAsset); // paste in all other code examples now... ``` -------------------------------- ### HISE Broadcaster Starting Point Source: https://github.com/christophhart/hise_documentation/blob/master/tutorials/ui/readme.md A foundational snippet for developing broadcasters in HISE. This code provides a basic structure to begin building broadcasting functionalities within the HISE environment. ```HISE HiseSnippet 962.3ocsVs0aZbDEdVvaaY6EkHke.i3o0RVDvI8hRTZc4hSQMXiJtVspJJZX1AXjmclU6LqqQQ9uaeN+CRNmcWfkXRaDpgWPmaemON2FFmZ3Bq0jR7ZbwxDAw6q7mrT6VzaASpIC6S79F+QLqSjRKT0cYByZEQDOu5OGU303.R9m27ScYJllK1nhPtzH4hWHiktMZGexuJUpSYQhKjwU79wmLjaz8LJSFvm59sIIL9Ur4hyXna07Ide1fHoyjNwwbBKw6ftlnkSVX9acg+WJsxoJAJzgLA.pP8oFUDxXTKo2BoJZ7pe2VBfx3MUg5EUgG3ORFIWqeS03d4FnahnZ8vq11zq9VzqSU50tB81Ak7pPoCJnz88mvSkItMVP97k9C0PyYFCJ6UoRgujZ+SM+dFvCsqUL6Jwoofv5HBOtc6incZ29vmFDDH0JoVPmko4NoQSwVQ7TSWyMcPHRMpPtINwnAvNhdMSkINL30AM.iViRzJIUpcgE5eZvs.jqx7bgq2pHCatF0lG1xhVxwtGSolBs6v6lVjcvfg0QmxoOiNPOG3YKdp.pxcSMrHd9.Z3qkQOgV.Ocp4FZrIyJfXZdDkkN29D5eUg+hqgud4s.1S4sXNGiu3ByZVNBCc.5hsJgOBfWI4WYomqUKQwlH4PDhhdgDXgF3Qy7nopRYzsQBGiFwbLPXUAN78YyNplqcAqgWhk1vCwhKl0G9P5eZxnbFzpRDZpagfVz1qTTFwRnRM8WFNY.0Yn.JTF8ZoMionHBohjTgER.qnmOKGlJ.XoPoWKxYbqJyFmYbhy0g4bN31.56aZ1rcZqrkpfxztLiGDR+2BLTmEOUjVc9CcD1R1d0y+Cu5U8x.uXBshiF8PszcNTP+P2KHki03ZZIq.Wc4Ko2qbIc0HCQFg6nqmfH4zt5MSxuOrOLWrBL.WHWIhTmD+Y30WbMb.s3BPC+9B6UNSRtukCFvMwOxTeylz1+jkaD9wShYfMeu5ffzIhg7949cBNN3Qvs56bGBt.ZhxTL21mEw2BJM.MrstEg2azVoaY0e2+ucq7ikh22erzwWraNVaGbDZIeJ3X4KLes+fYyf0pMD7.+S+iOMOmP9MSlSpmOh4RkXq9rr3IvirbAjcX4VgKLd0vQ6B41nLVAlHzQ4BuE9TZrCJ6UZryJijXFO07JdwBA9F1WjqA3jN+46Fv+i.jo2YGfPhgmTeEmuMT2Ivi22.ez9F3i22.+18MvuaeC7622.+g+6.w+wyOm4LwEqMDxnwCxuY44MPyfIv7oUx6.vvbzqL ``` -------------------------------- ### Hise Wavetable Synthesizer Example Source: https://github.com/christophhart/hise_documentation/blob/master/tutorials/modules/readme.md A basic Hise snippet demonstrating the usage of the wavetable synthesizer. It includes loading an example wavetable from assets and visualizing it using a floating tile, providing a clear example for implementing wavetable synthesis within Hise. ```Hise HiseSnippet 1180.3oc4XssaaaCFlJNLX1KYqcKCnWJXrKRvBJraR6NcQcii8lwhSLhyR1vFPAizusHhDoJEURLJJvdz5dC1awtcuAcjRxRTstooFocoX5BAy+CTe7+L8.A2Ahh3BjU0CmDBHqkwCmvjds8HTFp2NHqOA2mDIAgcJosmDRhh.WjkUkePSvp5hnjm+4gaS7ILGnfDBcDm5.6RCnxBpCZ8STe+tDW3PZfgza0pmCm0l6yiU3oBtAJj3bJYLrGQK1BXj0RcboRtXnjHgHj0haycmLzieNKU9inQzS7A8hlngpMJkbWtuqFwZpn1dTe2ASO2QHjEdPgUnRpUXUbepKMmdg03VILrKzvzdXsPY3UoD7ZZBuFFvaFPxx.RKlBoaiG5HngxBNZ77w3dLkyYDQY1MgRprHq+D2lqDfIua.4TnqPsHWg01rQiMrad+Fq+80FEybjTNyly1iKg8YqsdsmVqZsmUy9kYMZzL4o+NBtuOHlIasqVbYJtFKN3DPrg8YD+XHWP04urQE+5Mpl9bmzisgfbVOFUteHvdcQBnLak5W+bucHRh1SjQSIWHHjTMDr1ANSEVm5Wph2AhNUxCSjMHjyz6f0xxr.oTOQWeNQRYiOjpfJU4h9TrIolnKLyZlXtHC.SCLOlbFHIpS7wjD+nuO5jwSSZptT850egVKpDBJn9B0SYp2Ki7JZxR3BYIg+CM0DKf0uheZMa6541odt0+N654nvNobADQi.Qy5anEsGyEtPITijUpjOe94GyEmFoRmAEcElifZOCcN0U5keRetnkGPG6UTn34mzB8p4ApLPtarOQVNsTWKJigJrpTtfNfmEQkSLqUcskqdUg3swCnRGuYiwElAFUAeuKvXVEtUvcFMBbjE.bQb2e4cS4LyO+xSMQ4QPIAPIH3N3YGVcIMc9qqZSmvqbSme7IJeDXFqrKWol61D1oIg1lrNTC1DpGoKaYx5.Xj.h75SC6SBK4VqbYcwZNmcwV5FWWrO.RdK0ns5TLNjFD5CcXmA9ph9IX7yTU4GQh8kSoVNnrOmwC83Lpioi9.PJniGCBSrOyCzijR0nNETVs0AfOPhLBn9xV6RY.Q7xAmuE1hlu0CcLS+0cvov0VmIY+gaQ2J+uon6kYhVAmTCyNsz1+Qod2JEfX7tc2Oqlf5W14vs4aFXcEvShAlSNw0+8+9g5588XltWcGlQbQP1vaE03gwpOToR6fZXNUanRozCC3boWxTalcQVs0tbdXGl1R5ZtIC7TIwpQli.YosQssGxSuXUaetYpOB0aLiKfzwvKMHXbjjGL8.jbgngRHLcLseC+fstq5YzWoe+ssUu1b+qm0nquRLKbECJ+7D2eteVGHbCr5RJJyC7tghxuvLA2daZH2mHdehyC3w564zmn5FpFdBuWbvP0zVNfBiLF3quTm0B5.7z0MzqSxR.laxB80WxX1Tu1JiYyoLeu7MBHNB9icRutpNZ9iRnnN2rj+fhp39501MQmUdVPDJPMt0icbJuUuhh2adUby4UwslWEu+7p3ClWE+54Uwu4MqndZ3GEqJtlNi.B0ePmzxpV40zspf9W.OWhIK. ``` -------------------------------- ### Install Expansion Samples with Hise Source: https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-api/expansionhandler/installexpansionfrompackage.md Installs samples for an expansion by copying them to a specified location. It can handle encryption if user credentials are provided and refreshes the sample list. This operation is asynchronous and can be monitored using ScriptPanel.setLoadingCallback. ```javascript ExpansionHandler.installSamples(fileObject, FileSystem.Expansions); ExpansionHandler.installSamples(fileObject, FileSystem.Samples); ExpansionHandler.installSamples(fileObject, customFolderObject); ``` -------------------------------- ### Filename Token Parser Configuration Example Source: https://github.com/christophhart/hise_documentation/blob/master/working-with-hise/hise-interface/sampler-workspace/sample-map-editor.md This example demonstrates how to configure the Filename Token Parser to extract information from sample filenames and map it to specific SampleMap properties. It shows the tokenized filename parts and their assigned properties and data types. ```text | Token | Property | Data Type | | ------- | ----------- | ----------- | | `Cello` | Ignore | Ignored | | `stacc` | Ignore | Ignored | | `RR1` | RRGroup | Custom | | `D#2` | Single Key | Note name | | `p` | Velocity Spread | Custom | ``` -------------------------------- ### Server API - GET Request Source: https://github.com/christophhart/hise_documentation/blob/master/exampledump.md Demonstrates how to make a GET request to a server endpoint with query parameters and handle the response. ```APIDOC ## Server.callWithGET ### Description Makes a GET request to a specified server URL with optional query parameters and a callback function to handle the response. ### Method `Server.callWithGET(endpoint, parameters, callback)` ### Parameters * **endpoint** (string) - The API endpoint to call. * **parameters** (object) - A JSON object containing the GET parameters. * **callback** (function) - A function that accepts `status` and `response` as arguments. ### Request Example ```javascript Server.setBaseURL("https://forum.hise.audio"); const var p = { "term": "HISE", "in": "titlespost" }; Server.callWithGET("api/search", p, function(status, response) { if(status == Server.StatusOK) { Console.print("There are " + response.matchCount + " results"); } }); ``` ### Response #### Success Response (200 OK) The `response` object contains the data returned from the server, typically in JSON format. #### Response Example ```json { "matchCount": 5 } ``` ``` -------------------------------- ### Modify Sampler Release Start Options (HiseScript) Source: https://github.com/christophhart/hise_documentation/blob/master/exampledump.md This snippet shows how to retrieve the current release start options from the sampler, modify a specific property (FadeGamma), and then apply the updated options back to the sampler. ```HiseScript const var obj = Sampler.getReleaseStartOptions(); obj.FadeGamma = 0.5; Sampler.setReleaseStartOptions(obj); ``` -------------------------------- ### Start HISE Profiling Session with JSON Options Source: https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-api/threads/startprofiling.md Starts a HISE profiling session using a JSON object for configuration and saves the output to a specified file. The JSON object defines filters and recording length. The output is handled by a callback function. ```javascript // Grab your current settings from the profiling options popup // Just click Export as JSON as paste it in your script. */ const var PROFILE_OPTIONS = { "threadFilter": [ "UI Thread" ], "eventFilter": [ "Lock", "Script", "Scriptnode", "Callback", "Broadcaster", "Paint", "DSP", "Trace", "Server", "Background Task", "Undefined", "Threads" ], "recordingLength": "300 ms", "recordingTrigger": 0 }; // Pick whatever file you like const var PROFILE_TARGET = FileSystem.getFolder(FileSystem.Desktop).getChildFile("profile.dat"); // dumps the profile to the desktop Threads.startProfiling(PROFILE_OPTIONS, x => PROFILE_TARGET.writeString(x)); ``` -------------------------------- ### Get Start Offset (C++) Source: https://github.com/christophhart/hise_documentation/blob/master/cpp_api/hise/classhise_1_1_hise_event.md Retrieves the start offset value previously set for a MIDI event. ```cpp uint16 getStartOffset() const noexcept ``` -------------------------------- ### Invalid C++ Identifier Examples Source: https://github.com/christophhart/hise_documentation/blob/master/glossary/rnbo.md Examples of invalid C++ identifiers that do not follow C++ naming conventions, such as starting with a digit, containing whitespace, or being a reserved keyword. ```cpp 2ndVariable my variable for ``` -------------------------------- ### Initialize MainProcessor with addAndSetup Source: https://github.com/christophhart/hise_documentation/blob/master/cpp_api/raw/classhise_1_1raw_1_1_main_processor.md Demonstrates the recommended way to initialize the MainProcessor by creating a subclassed instance and passing it to the addAndSetup() helper function. This function handles the entire initialization process. ```cpp class MyData : public hise::FrontendProcessor::RawDataBase, hise::raw::MainProcessor::ConnectedObject { public: MyData(MainController* mc) : RawDataBase(mc) { // This should be the first thing you do, everything else // will probably need the main processor. raw::MainProcessor::addAndSetup(this, new MyDataProcessor(getMainController())); // Do more initialisation here... }; }; ```