placing preset list/output meter. samplemap and compressor?'s



  • ok first off i love hise it has me very excited and i have been through the tutorial and got a good grasp of things overall. i have a minute amount of java experience but enough to be able to tell what is going on a tad. so here are the things i need to figure out.

    1. first off the only elements of the toolbar i want are the preset area and the output meter as of now. this led me to wonder how can i edit and place the elements in the toolbar to where i desire on my gui. and that matter any of the toolbar elements. i have the default JSON toolbar thing in my code but see nothing about x, y placement or anything but height, ive tried to add fields in that like postion etc but it just breaks the whole interface. so yes how do i place the toolbar elements on their own where i do desire as well as edit them possibly size color etc if possible

    2. secondly i have noticed in my browsing that for each preset the monolith samplemap has to be recalled, for some reason it is not saved. i am making a sample based instrument and i plan on using the cool file compression built into hise (low file size option) so how do i go about making sure that the monolith sample map is loaded per patch when a preset is saved.

    3. i noticed there isnt any compressor or dynamics preset in the available fx. i really do need this in what im making. there alot of open source dynamics on musicdsp.org how can i use scriptfx to add fx like that my project?



  • Well, if I have understood about your 2), you need to save the samplemap with the preset?
    It took me a long time of bad tests to get this working thing:

    On Init:

    const var NAMEOFSAMPLER = Synth.getSampler("Sampler"); // create a sampler variable
    const var cmbSampleMap = Content.addComboBox("CmbSampleMap", x,y);  //add a dummy combobox
    const var samplemaps = NAMEOFSAMPLER.getSampleMapList(); // create a variable containing automaticaly the samplemaps adresses
    cmbSampleMap.set("items", samplemaps.join("\n"));  // let this variable assigned as the combobox items
    

    On Control:

    case cmbSampleMap: //when you select something in the samplemaps items
    NAMEOFSAMPLER.loadSampleMap(cmbSampleMap.getItemText()); //set samplemap adress as the combobox selected item
    break;
    

    In other terms, you add your sample maps in the combobox items, when you save the preset the combobox selected value is saved too.
    But the samplemap address is definied by the selected combobox value.
    So save the item = save samplemap address = save samples with a preset.

    If you don't want to allow the user change the samples, then just add the property "visible"=false to your combobox after having saved the preset 🙂

    And for your 1, the only thing I know is something like this:

    var toolbarData = {
      "height": 0,
      "overlaying": false,
      "bgColour": 267386880,
      "cpuTempoVoicesShown": false,
      "presetShown": false,
      "tooltipBarShown": false,
      "keyboard": false,
      "knobsShown": false,
      "knobFilmStrip": "",
      "knobNumFilmStrips": 0,
      "outputMeterShown": false
    };
    Content.setToolbarProperties(toolbarData);
    

    This makes the toolabar off, but I don't really know if you can modify the places of the elements 🙂

    But after you can re-add knobs and assign them the same functions as the toolbar, that's possible too and this allows you set them were you want with your own art.



  • alright well how would i link say a combobox to the preset list?



  • Well just insert exactly the same code that I wrote 😛

    HiseSnippet 1325.3oc4X0sSabDEdVLaawDPIUbQubjUuvnRcryespnp.1.QnhAKLB0KhT53YGaOkcmwZlYAbp56TeD5iTdCZOytq8NK3PrSSapZ2KvdO+MemyYN+X5njTlVKUHuUOa7HFx6d9cGKLCaMjvEnC2C4steah1vT3TRMGOhn0r.jmWoWXI3sxxnjm277ljPhfxxIgPmK4T1Q7HtImZmc9AdX3Aj.1Y7HGoexNGRkhVxPYLfmR90QiHzKHCXGSrhsjO5RN6JMxqt+ieTM0EM585cqYeR+axSqrO+pSR9neBKDMVoXBy4f5HOeu+.d772OfajptFhgA1zuoLXb2gxqDoG84bMuWHy9RCTW.SojOT.gh9DJyQzCjgA1.h86nVC4gAclDV0HvxcxCxkRCxa32lGvmROOXe+DF3bMbC2dKUDxKW.xMdaP9c.OOG3sbJ7dfeWphOxjywhsU8m57EfUprnkVujeKIHgvTKhbA6.E7xTMp9r502B+z502b60JCYYsAeIQgi.GuKIZTHb+56wI27pMfYxHUsR1Wpr413G9PLUw.OGSv5LU.SvIfK6ZRZTuTsZSFA1bBjHAAsjQ8jMkWWsRKGYprEtQ8sZ..CCmAHFX+f3nnwXpU9dxqcsd5IGQFoAa6f9bTCl7Ht1T8FPdBTAqJLfdbw.LI1HiHFNkDNFaFxbsNIPAgdlFNbGvVSyLUqvMrHMf6bwq8yRtnZkWJprYpefCYFvjbc9ACIL9.AC7OcxgMw8vIlasx8iETCWJvRwwRC6DQ0MK+KkWo7udKN86OKV1HsRFZyayfqsTWcGpUUDG0io1BvaXLKQNJQyJjN+NvwtZHSfGKiwZVHiZvZYDC7SHZxE2LFl4XtooPIIXp8pVHzBYvCAENicMj7RxdPvN2bYYjaE8RwADVsm1Zk6AI7K1FbQnfqX45pyW4JM8BqifRwgBt4jQrr2yKns7RyUS3VGMMG4RJO23RMImLCwxIc69EnrBJamiLwAQMI8MteVeiIEZHdfc9ga0FJI85Ng.c69OPWPYPbHwTr0ncbSFC3pSgdP19LBM2L1cbzBzur9L6W1XV9+bB2G32ganCmMdWZF3EBn+ci2roOq4ue+9vc1bvtr+A+366nl2OnrQJT9b+tFnfIBpeypPSvyJ9Sd6Cv5F+zbutQGEKo+.+0Nh866zLFBWphT+scRNpcijwhBmUFvOkMBZ7CY+Bv6zSegRFO5lZ8lmmbW4LErtCDIbYbhvtogw0HsTRstO3NI1R6xpSrZfMV4bhrKYJcQZGGGAodgfEZ26wyCHkWeZWy5l6F8oyWmKP8NDvpNR1jOvwzVJEKhcDcpaclcZky5UyXmkO4ivJUe3aQ7WuiVo4Ctuis9VYBF6xsop8EWBkA.kz1X6w5ShCMSo5Bx1RgbzPofSKdmyn3CFvTtPel9ytFCbkOmxF6bJLMEF6mS5K24HtfQTEKkVnPQi4OTbWoquvOEtXaaD7+MFDU5+8ChtqP25YigvvoqL+KOOeO+j4AX6ftOVP8TYrAFf0l.M.tFFi.SZ5BSWoL24MKYmgk9dc66V.0kIBpO4mlmwrwzgS.yFSXhnSLE3aYeeOhg.XhIrSNR1uJDF6E5dkVCyvsPBltgltRO311HGPqK4RVZGlT77VGT2lS6HgfITGYa53u8+LNcDgpjuhltus00+rDJ.BDI+uQVwus8cbiI6WaSVQvbuWQo1ppuFRWyViGsvZ73EVimrvZ7zEVimsvZ7MKrFe6cngcIicy987POVD5OM+LMkG
    


  • And if you want a preset navigator, it's not a combobox you have to use 😄



  • yeahhh. about those hise code snippets...there is no documentation anywhere about how to utilize them haha. so i dont know what to do with what you sent 😉 thanks though!



  • XD
    Just do 'File' -> 5th item 'Replace with clipboard content' and here you go 😄



  • that worked perfect and i made the combo box invisible. what was this way to bring the elements and data used in the toolbar to be able to be linked to gui elements. i dont not see anything related to it when trying to connect modules to parameters.



  • Well for examples: (All these lines are after case XXX: in oncontrol 😉 )

    Sampler.setAttribute(Sampler.Gain, value);
    

    = control volume

    Sampler.setAttribute(Sampler.Balance, value);
    

    =control pan

    VelocityModulator.setAttribute(VelocityModulator.DecibelMode, value);
    

    =velocity

    mainSampler.setAttribute(6, value ? 2 : 40);
    mainSampler.setAttribute(2, value ? 1 : 40);
    

    = mono/poly on button


  • administrators

    how can i edit and place the elements in the toolbar to where i desire on my gui.

    The toolbar is deprecated because of exactly this reason. From now on, you can build your interface completely yourself and use some readymade components (e.g.. on screen keyboard, preset browser, settings dialog) either as popup or directly on your interface.

    secondly i have noticed in my browsing that for each preset the monolith samplemap has to be recalled, for some reason it is not saved.

    Not sure what you mean exactly (and I admit the culprit is the rather confusing nomenclature of HISE), but if you want to load different sample sets when switching between user presets (the things in the preset browser), you'll need to have a control that switches the sample sets and make sure that the user preset is restoring this control (in this case, it'll get loaded automatically).

    how can i use scriptfx to add fx like that my project?

    Effects can be included into HISE by using the C++ DSP API to wrap around your effect algorithm, compile your effect as .dll and load it into HISE. This is the documentation:

    http://hise.audio/dsp_api/



  • so what is the process/code for me to place the preset aspect of the toolbar on my gui



  • im still stuck on this. i cant imagine everyone if anyone at all is using the standard layout and placement of the preset area as is...obviously people are doing this easily i just havent actually gotten an answer on how to do it. i am more of a sound designer, im creating a rompler essentially. i have figured out every part of it aside from the preset aspect. traditional displat current preset, next and prev load save


  • administrators

    This code snippet should help you out:

    Content.makeFrontInterface(600, 500);
    
    inline function createPresetButton(name, x, y, up)
    {
    	local widget = Content.addPanel(name, x, y);
        
        Content.setPropertiesFromJSON(name, {
          "width": 20,
          "height": 20,
          "saveInPreset": false,
          "allowCallbacks": "Clicks & Hover"
        });
        
        widget.data.up = up;
        
        widget.setPaintRoutine(function(g)
        {
        	g.setColour(this.data.hover ? 0xFFFFFFFF : 0x88FFFFFF);
        	g.fillTriangle([0, 0, this.getWidth(), this.getHeight()], this.data.up ? Math.PI/2 : 1.5 * Math.PI);
        });
        
        widget.setMouseCallback(function(event)
        {
        	this.data.hover = event.hover;
        	
        	if(event.clicked)
        	{
        		if(this.data.up)
        			Engine.loadNextUserPreset(true);
        		else
        			Engine.loadPreviousUserPreset(true);		
        	}
        	
        	this.repaint();
        });
        return widget;
    };
    
    inline function createPresetDisplay(name, x, y)
    {
    	local widget = Content.addPanel(name, x, y);
        
        Content.setPropertiesFromJSON(name, {
          "width": 143,
          "height": 25,
          "allowCallbacks": "Clicks & Hover"
        });
        
        
        widget.setPaintRoutine(function(g)
        {
        	g.fillAll(this.data.hover ? 0xFF333333 : 0xFF222222);
        	g.setColour(0x44FFFFFF);
        	g.drawRect([0, 0, this.getWidth(), this.getHeight()], 1);
        	g.setFont("Oxygen Bold", 15.0);
        	g.setColour(Colours.white);
        	
        	g.drawAlignedText(Engine.getCurrentUserPresetName(), [0, 0, this.getWidth(), this.getHeight()], "centred");
        });
        
        widget.setTimerCallback(function()
        {
        	this.repaint();
        });
        
        widget.startTimer(300);
        
        widget.setPopupData({"Type": "PresetBrowser"}, [ widget.getWidth()/2, widget.getHeight(), 600, 400]);
        
        widget.setMouseCallback(function(event)
        {
        	this.data.hover = event.hover;
        	this.repaint();
        });
        return widget;
    };
    
    const var presetDecButton = createPresetButton("presetDecButton", 52, 7, false);
    const var presetIncButton = createPresetButton("presetIncButton", 222, 7, true);
    
    const var presetDisplayPanel = createPresetDisplay("presetDisplayPanel", 76, 4);
    

    You can of course customise the appearance as much as you want by hacking around in the paint routines of the widgets.

    You obviously need the latest HISE version for this (it won't work with HISE 1.0.0).



  • awesome. but i checked the version i just downloaded off the site last week and its still 1.0.0. where are other versions? i click check for updates and it says its up to date soo....but thanks man i just gotta find the latest version 😕



  • i have 1.0.0 build 649


  • administrators

    If you're downloading HISE from the download page, you don't have the latest version, you need to build it yourself from GitHub. The version number will still be 1.0.0, because I don't find the time right now to wrap things up and do a proper 1.1.0 build (which will be the next version number).



  • aaannnnddd how do you do that lol. i have vs2015 installed and the latest hise downloaded from your github


  • administrators

    The instructions how to build HISE can be found at the GitHub readme or (even better) the first video here:

    http://hise.audio/manual/VideoTutorials.php



  • alright i compiled my own new version from the github



  • how would put a browse button that launches the preset browser i liked from before



1
Online

315
Users

919
Topics

6.0k
Posts

Looks like your connection to Forum was lost, please wait while we try to reconnect.