• LFO Phase

    1
    0 Votes
    1 Posts
    89 Views
    No one has replied
  • Message.delayEvent()

    4
    0 Votes
    4 Posts
    285 Views
    ulrikU

    @Tod-Slaughter maybe, I'll try it, thanks!

  • Filter/display sampleMap names by _prefix

    24
    0 Votes
    24 Posts
    2k Views
    ten7kurT

    Hi all!
    I need help!! I can't manage to get the categories working. theres something I'm not doing right..Could someone please have a look over this code and see where its going wrong?

    problem 1.
    The sampleMaps List is not taking effect of the categorisation.
    It should for "BD_Ludwig_Jazz1.xml" take "BD_" and put it inside its own "drm_category" and "Ludwig" in its own "drm_sampleName" and display only sampleMap:"Jazz1" but its not working...
    What am I missing?
    @ustk ? @Christoph-Hart ?

    problem 2. The categories them selves (CAT1, CAT2) are not displaying correct.
    I can only ever see 1 items in the CAT1, CAT2 viewports.
    Why could this be?

    Pardon my Javascript skills,
    Thanks!

    // =================== [ Samplemap List ] ================== // const var SamplemapList = Content.getComponent("SamplemapList"); const var SamplemapList_CAT1 = Content.getComponent("SamplemapList_CAT1"); const var SamplemapList_CAT2 = Content.getComponent("SamplemapList_CAT2"); // Allow the viewport to list the items SamplemapList.set("useList", true); SamplemapList_CAT1.set("useList", true); SamplemapList_CAT2.set("useList", true); const var Sampler = Synth.getSampler("Sampler"); const var sampleMapList = Sampler.getSampleMapList(); // Populate the formatted list in a new array const var formattedSamplemaps = []; // Remove string from sampleMap name const var charsToRemove = ["BD_", "HH_", "SD_"]; for (i = 0; i < sampleMapList.length; i++) { var newName = sampleMapList[i]; for (j = 0; j < charsToRemove.length; j++) { newName = newName.replace(charsToRemove[j], ""); } formattedSamplemaps.push(newName); } // put under category const var names = ["BD_Ludwig", "BD_Xyz1", "SD_TamaSLP", "SD_Ludwig"]; for (i = 0; i < sampleMapList.length; i++) { var newCatSplit = sampleMapList[i]; for (j = 0; j < names.length; j++) { // this will hold the samplenames sorted by category var obj = {}; for(n in names) { // This splits the string into a list using the given separator var sp = n.split("_"); var drm_category = sp[0]; var drm_sampleName = sp[1]; // We can check if the category is already used if(isDefined(obj[drm_category])) obj[drm_category].push(drm_sampleName); // append to the existing list else obj[drm_category] = [drm_sampleName]; // create a new list at the key newCatSplit = newCatSplit.replace(names[j], ""); } formattedSamplemaps.push(newCatSplit); } //sampleMapList[i].set("visible", false); } // Update the viewport SamplemapList.set("items", formattedSamplemaps.join("\n")); // Load sampleMap inline function onSamplemapListControl(component, value) { Sampler.loadSampleMap(sampleMapList[value]); }; Content.getComponent("SamplemapList").setControlCallback(onSamplemapListControl); // =================== [ /Samplemap List ] ================== // // ============== [ Samplemap List Categories ] ================== // // Drum Type; BD, SD, HH, etc inline function onSamplemapList_CAT1Control(component, value) { SamplemapList_CAT1.set("items", [drm_category].join("\n")); SamplemapList_CAT2.set("items", [drm_sampleName].join("\n")); }; Content.getComponent("SamplemapList_CAT1").setControlCallback(onSamplemapList_CAT1Control); // Drum sub-Type; // BD: Ludwig, Xyz1, // SD: TamaSLP, Xyz, // HH: Xyz123, etc; inline function onSamplemapList_CAT2Control(component, value) { //.set("visible", false); //SamplemapList_CAT2.set("items", sp.join("\n")); //SamplemapList.set("items", sp.join("\n")); }; Content.getComponent("SamplemapList_CAT2").setControlCallback(onSamplemapList_CAT2Control); // ============== [ /Samplemap List Categories ] ================== HiseSnippet 3469.3oc6arsbaabEPxvIj0L2ZdnuzY1poyTpIJRjTVJI1Moz5hCcpjsFQEmLiphlkDKIgMHVTbQRzY7L4SoeB8o9b9R52P+CZO6MfEf2fjsbcaDch.2ama6YO2VvCBncIggz.CyRGMxmXXdGq1i7hFr8.rimwi1wvrrUm.54gjfML1ZjONLjXaXZt3WyF2rzsL3e9W+osvtXutjztLLdJ0oKYOmgNQo8dPy+riq6Cw1jibFpM6617QcodaScow.srnUMCeb2mi6SdLlMsErLLu8t1NQzf1Q3HRng4s1hZOp8.54dh4+TmPmNtDVi5FsA.I59gTWaFEy50X6ANt1Gn34PCCSqCRk.KJj.er09N1NI8mJI9.9.nzUnKOLWXVjWccxqVwIOSMx6VBx6CsZ2MvwOJcDFs8qrdjWDInGF1BzIKwbMV3eVwZaJLCunUGheN4gAPijUTcyZ0VAsQsZKe+JkqTds0Pe43ePGiZiG56RFh8Q64DFgNYBSCs1ZUJC6jvvmgCRWAeAeIRQC8IQaSG5S8fFUWJyrVhQDSABmt8CNpdw.CepyCVMJNrZrThv4AttzyQQCHnybHm6SChPQTjKiCYc5DQFFVobFHrZHA.ZbHgygqfhBhIL3MNIW3Y1XZyj8u77b.vn7y0L1T1khICxIkB48texdlbVoqTNT0DAxAT+XWPsmy98nACwQQDagDwwCgQdjyQ3f.7Hc7jLwDVKDv1wmHYA.tGRFROifBiBb75i5EPGlRbHOvvfN35N.GDdDUtF.PKs0NmBhkkZ0h+nMzR.a.wnpNvTpcejC5OlkgW0k30OZ.Lxm7IKWoLB97ihGLj.LByfDr1LK5XGFjYSR7WNFdl.COCvPFZKACOKACZXg8IEKxusZ.w2kcPMCfN9Ym.7Ee2SsxWlf+7h1U8iCGTUBO0RdoNQyE49wQnXOaPgoKrg1mFjYKiIyCUx18hsO2oOSzBM99QuntTJeDdHt8dGHaIm0IoD4UXCnTlcfswQs8cchtr6Bbpe9RePJDMvIDcN3nBM.rOyUqEXRH..itL86NizDRpUynQZGFV+wWx01TC.TSUO1wANLzPcNzKIgiXjPHiMCE3WbHvwCL0fEGshCY8vFruyYDOTHwGGfAePYAF+LsOSYZUN7ptzoRaY4mkcvvSUbDS35ebMs8sLSSHNTmE7Ot9IiAQfI9NBHg7.0eR2mib5wo0DD.7G1MffsGAbBwN6hc5U0IbGROGOhcUPddrNscxx4DerOiMIgFeVhc46yHKruOwylYzlQPjK.gISRxDpYgKwMjT.LwNQjEOmvwSWf6.qhB6e7sLrvEwyIizUT0+jsmrZ6ZsRrHv0llfk.si2yyhfBl4LjTZs0xe7R3x4LQnLvA7dXP.oYLoTIMSIequsxmfxO4D8Jx8Wx.1DHwmQc7ptzewaokWN0svdTrc5I+Jkc7bA0DTuXutQNTOD0KCVXN3CntU6p7tuBnE6B9JqTVdrS4gyE.bhKtpYYd9RNY46CbH6bcgBjgweRruM10sCDQa0ISbLtapgcsVQi6J8eiAqwidaag1qCXOaF.D.zNAwCQrXOuOZqcVA0F9+VsVAQh5BRu4H64gzL6MfRSKFHkdQtS0YUIJMs3hxrZsClYVew2LkgSVfcTcVVSokKECi67oBIIuus14dHg+wUPLGnqnra1FFP5FkORx.sZcO9LarNqKXK39yU8mKSl0V.bNelmqWas4IiC8ysqLgkMmUbI1FZT3sgFy5z0DNXMmiDPfKox3GSiHOwq5xk+wxkJ+xxn7C0q2DGSRQrvumzvrjhCl0Bq5EOrCIPs8olHjcX1zOsld5m5YG2UHx0lH06QdNQOAbPNsjRMj6SrrmkTEL0HdxoUjImtGtCw0vARA81V1jvtFbx0vrmkz+BXIALjzpkt6puR66asyWoexXhyJLwOw8f4KOIwFPPhyltdGNcUWQX6pHLdFly+CO4w7eFGuejDuD6mJcAxQ96akQWUQDokNon.5isF21yqUn0XBP6aezN3HLr8ufV0IJO0xGs0gO46Zu6gqqUWBlpmn.R2wp9p0jeLRpgzcrpk1qdYjpXs4cSGIaojpX0PaUyqbRaECp0OkDDBGu.EYqM2nFSe95p.QLRvz70dAd3ESRVhm+wut3k3gaO7qIQhLcDYVSGRNe.IffpRbff1BPDvRisMjnyYNXvQeW2XaBBxoZWu9fCGdzReS6m73Jk4IE.pDPHpIwTAIEtz8De8XYOsi6rzJpQYQ5EjzjSrKIZbhpy1iAgin9oPfFEQGlz7Pmg4WeqViQAQAXm9ChRV0t18IpkgDdgzy2Uc5X50bJYF4Jhhp+FyckhBKs1Ziu10m6ZWOsnTeWfCKUCHkUH4Bg2gPY1hdiW6ktod5RJ4BKAUaVBprsRYBVoySlMUB9ZSRRkQVV.bnnzW77t4UBxIfgtjX+gUwbMhFQiQCvmQXIfwhBfM4gHddshrbqTNQrlMrAMxIelAiGETBLleB..k0CBlZPlDTSFhSzQCvQhkwRb8Ej.JpCFNChpFCX94h7b.Lzg1gdwuikfZIWZWrKRKg5TxWlNAK.Vf5BotjU8ANmEtC3JNcMKg9jjF7vc4okAY5qUpQjPBBcB6u1Zx6RIpXYkhr82imV.0hi.yUYexQfkWjqL1L8MmFWwMGTUlVzP1gYHsXXa.RPlY7JibOqHOUmB3pmxvQ0kOIUllhClb5ODx0pElFYcxsuAY9S5FkfB1DAbnjmmnsqJf4NTz4fdC4LvZJidOG6AjKrAWkY7jouy82h.GtqvJBR.xOf.RVd1UKOtxA.OlYZvnsWez4fUZkBB72k3emQREcarw71FajaabF4WdyUDbyUDbyUDbyUDbyUDbyUDbyUDbyUDbyUD7KjqH3la.nP2.vMko++tkoWnnALPkIWp9oLtd45mxTjkre1.HWY60mrg4hypD6lEoT18nP.YpJ0tfURIZMMaSiCXUT8CRJCqp5siW3wOvZepMKJ8r0zjUnV4.rZkls3irBL5E5DMJWobmPsNKJF+PqCbfTwmBJqmEk0JLJkEush0t85AIwmhuaY8vue9UpUGT+1iTUQOBbeODBLP5dfCuRVpVuFJ386Y0XiMuZU79f.B2akyKHrab3yq+EMzvbLHEBTic2Zewl4v+CFB5TiS.RV6PhOD2BrEwo80SG+vC+5.ZruZ0Y3V915QAfU.Phkarm3QZOfFkSRrc.MLrGvubfFlazChC5yDtY57PVwVBGq6GGOD1w87fv0DZQeaHgcWYNc2GCgMeQtoywWsiv7qLCNPwaWOW6F4Zudt12MW6Mx0dybs+rz1IgXvTn9HqjlntT+QnMmjMCyaesdSEu4sWj4tQJoPYaGlnXWuy.kanGg7AxB.G6Fo5sdNjtO0i5Of54zcLkEXuuee3nZVpYZT4Chh.sWVmanCDWBNjebrtFr2C71iCTGQtDr5rjt+FKAIfXF.Pu8XUt1aAVkmE0+dxiPH3LePz0uz5NV7SzHls5WArcHMlk1oxDkEXES3PW2VVCCYqZx6CDRbsFS.9o0UiTWdu+vH0kiXzUAB.yxuKhYXQhGyNjzaqKXO0M2dZH37fQOrHMtNIwg3tAzS6JB.hQnuKuGXld7qwsj09r1njq71hQkFCASam1saFnL1ZZbEVy5Wg0b2qvZ13JrlMuBq4ytBq4ym4ZXdUdPbDcnvDAzwA6JiDc2TspZIA3BZ69jfHG1qrh4Njyf.ODmpJA1zCedD0m+RlHyx.T.lyqYxEounB0aNJsw5MO2wNZPRG0dYyAD1kGkNkurYD4hn2XuhJXWm9dC4L0ssbI8hXxj4ympWaEMFsoNiZjiQ88GiQWUxnuddkWlMeT9R8ZvjxTM+qZL0O0RRwkrNfe8XgFYYx+V+7L4Oga56F22w6.b.n9FQBdrTKVAAdJtFK3cKK4lRK541iJq2ngp02fewKpq2PMxorFqWlu8yPvS5EF2IWyFkS9CO5sxasS3oPq5hX4ZTd+snWTFjWv+IeHlmhTvA1n5Ya0Q07H9EfVOayFkk0WmSqn53bs6TVxry3Qio+THMl9iFS9gTVMwGxaGPSFN2uN1RZTtHeGVVQdp1oJXiranW11sZcJWGXFOkpGE7aBx5R0L4ZXT5ayuioMPmB0yDFRoLWjdl5PMJTO5Ck+vxD5Z7uL1j5LotF6KFx6hE7pYZJdy7xay+x7l9cg96kWFClYMPZ7CSv.YNRQXPD7i2dmWMxpgFY8y+PyYPV+bmBSVuqzL8qi7PMWTKF7zeAqWK+BNecjdk4BSfdYu9kWyzaQyM6Z5G+5qVE2tx+Bk8K7uP4LEXSMsetodo0T892alonZo3ZB0SSM361LWwzRYkbURKcfjxnkxiiUCszgTEPKsmzpmk1WlRmINTNVwyRm8aUUN6Cs1J0wCK7kwdO4emh8dxCv6.LHAzl4VN8SvknGc04DoNmxz9YpabsU3t2.GCudM3tXwHWiqoJEZtndcB0OSjTjvTZehLjp7fpd93lI0FT00uuodcAuRxh5EWV7JVJw+myQ4h+h2Q4UpHnuMtOOkJn9FkTKPsMsLWf4iMo5lV7n5k02zx7eCeRKvov4orDmhAKRYXMWPVD1TU5KYEXekoxapD6+OVIVyEM9O..GUX2C
  • Possible to sync 2 viewports?

    17
    0 Votes
    17 Posts
    655 Views
    ulrikU

    Some more fixes, warning when trying to use value that already is in use, and a "set default values" button.

    guerriniartikulations.gif

  • Working with Sprite Sheets / Note On

    2
    0 Votes
    2 Posts
    263 Views
    d.healeyD

    There is no wait statement in HISE. Instead you should use the timer callback.

  • Combobox to PresetBrowser

    10
    0 Votes
    10 Posts
    1k Views
    d.healeyD

    @BigBlackMuzik said in Combobox to PresetBrowser:

    ''Property does not exist''

    As always the information is there :) You are setting a property that doesn't exit.

    cmSampleMap.set("item", samplemaps.join("\n"));

    The property is items not item.

  • Convolution - IR save in preset... how?

    8
    0 Votes
    8 Posts
    459 Views
    Christoph HartC

    I would also go with the hidden slider one.

  • Send Note message to individual component?

    7
    0 Votes
    7 Posts
    618 Views
    amounraA

    That does the trick, thanks so much!

    a

  • Alternative for ".shift()" for arrays?

    6
    0 Votes
    6 Posts
    311 Views
    LindonL

    @Alex-Paradis then you probably also saw this one:

    Link Preview Image W3Schools.com

    Well organized and easy to understand Web building tutorials with lots of examples of how to use HTML, CSS, JavaScript, SQL, Python, PHP, Bootstrap, Java, XML and more.

    favicon

    (www.w3schools.com)

  • Script control of Arpeggiator "Note Numbers"

    5
    0 Votes
    5 Posts
    560 Views
    amounraA

    Thanks, that's exactly what I was looking for.....don't know how I missed it!

    a

  • Set tooltip manually

    12
    0 Votes
    12 Posts
    725 Views
    ustkU

    ...And because Hovering is not the same thing as "moving the mouse inside the panel" which is allowed only at top callback level.
    following the chart, Hovering means only "entering and leaving" which I guess is just a boolean, where the event.x/y is the value obviously

  • Possibility to do Multi-Dimensional Arrays?

    6
    0 Votes
    6 Posts
    421 Views
    Alex ParadisA

    @dustbro

    I tried your Snippet and I wasn't typing well the arrays.

    All good and working!

  • Convolution - script start and length of audio file?

    2
    0 Votes
    2 Posts
    197 Views
    Dan KorneffD

    Nevermind 🎃

    @Christoph-Hart said in How can I create an interface for Start-/EndLoop of Audio Loop Player?:

    Looper.asSampler() is like Car.asShip() :)

    There are two ways:

    Create a AudioWaveform, connect it to the looper module and drag the sample edges to set the range. Create a AudioSampleProcessor reference to a looper using Synth.getAudioSampleProcessor("LooperID") and use its method setSampleRange(startSample, endSample).

    Check this example (you need to load an audio file in the looper to see how it works):

    HiseSnippet 1212.3oc4V0zaaTDFdV6rkZCthJJRbbUDGbPoQ1k1Rj.DNwIAYQRZT1PnmZ0jcGaOJyNypYGmVSUk3X+Cv+KNvYtf5Qj3Bmg2Ylc8tKdyGNT.IXOsyLue7LOy6WGHEAjjDgD4z3nowDjy635OkqF2eLlxQC1B4bK28vIJhzyt0lSiwIIjPjiS8uTugSikPlue8K1Dyv7.R9VHzwBZ.YWZDUkuabuuhxX6fCIGQiJH886MHPv6KXhI.dp61AEiCNEOhrOVKVMWji61gTkP5qvJRBxYoMEgS8GKdF2J+wzD5ILhdQWjOXH616HXgZDq+G0eLkEdP18NAAF8fbVntkEti6dzP5r8yYi20bfWtFE4CmZWD75dMgmSA3sjEd210OPRiU4mnw1a6NfCOTCwvSPQXYkEU6mp41W.RvUqEgOkriDVLSi1OrSmU8dPmNq7osZ1pI7Pjn7NCK81UHhgW+O2yDWr1HhZiIgTgONJlQlAf1KakaYs51eWKgnrRcHlOhzFL+5qeu4cv17Pv5YHCreeQTrfCKZuLblwh4RCbqTctxaNEz3IOQ6CJmQ4DugS3AJpf6I3f8zJJEr1AYZsJXW1DxJsZ9hVMaTM1M1U6qi0h1dkLc.n8Ry04Bfu1VoNsOlwNAhoaWDIV9XdrZ740BsFIVUSrEf7kg0TpqZzVDKZCU.l6KTjGwauRyWzrQyWN2ICGV0QolhQjUcptrf7BTqMeRzIDYFUjJGjcTN86FWszu.KcTPPAe.mpdTLIccdBZ2JRPQo7IjpVOEffuUlD02OMQ0jx7M3yHCExHDMTWHozdcQl6RwRmR8aog3gRTNy1AdU0qe0icPCor7ZinY9tt022J029LZHQZb5a4Zs2b95pnrqq10kT86d0u0C80C1Bqv5BUoDAPNPPohpeCb1hbFzAvV1pg6VjjSUhXCSkF4AnZg4pmqYfOB.vT8O2U2SI6AY.H+Mcs4EnmQCUi0h7i.+MlPGM1vkSs23Y.3FWJgYb3mk4veF9AZIF6S+VhlW5tVGTD944rxq6gl+9ctTpw3sbRM9uTkwKzm86ecuR9BdAluAAzlRDNggUk6coaXmd.jPUpIgtQ.OgplVrg9BzPqSkMzpLe4JB2a6d.UELtZ7VqB7Bgf+ci2zwCZ4t8vgj.UNXWxcmGecmE35Ak2KCJlbiz.dMTlE8e9ip8Cu4GUClNH.dpHECeLueGIgVHT9nhtRCvs4X39GVb6CEBktoQ9dGzy1WyjEBlujzjyHxjxVXmhUDMYM1JmlLFaQSF36RUUYFvDlszo90ZHtxoVEjuhI5V5egANeyme9WubR8qFbujYhajgQepNTYa9YDFD+mVCYKxP7DlZ1tEA4dBtHdrfSCJGWojzQiHxhPux6yFJEDamuyc5cHgQvIEBf+vd6Bi0gk+4TiEfJ5d0ohK545Cbsv0SmI68eit.0++YWfCESTPE08vPfptt19Sh7gBwAD.IbNgknqkUSOiiccmrZa9DdnYwuCeoG1Uu1I8vtYG9OhOhvARwSCridpikuoYG3dyM0va3tmds2rgi0bSDTN7oAAZx9tcQnp03dKrFe7Bqw8WXMdvBqwCWXM9jEVi0u.Mz8d1XhRDYS8Pn+.vKqk91
  • if - else in for loop help

    12
    0 Votes
    12 Posts
    473 Views
    Dan KorneffD

    @ustk @d-healey Thanks guys! Both of these solutions will work.

  • Toggle thru Array help

    3
    0 Votes
    3 Posts
    180 Views
    Dan KorneffD

    @d-healey Brilliant!

  • Slideramount < Can't Set it to 8 ?

    2
    0 Votes
    2 Posts
    116 Views
    NatanN

    Found The solution
    There is A hidden Numsteps , So i set that to 8 With a knob And no need for extra coding :)

  • DLL to OSX?

    10
    0 Votes
    10 Posts
    1k Views
    hisefiloH

    @d-healey apps are .app on Mac

  • What's the purpose of the linkedTo property?

    3
    1 Votes
    3 Posts
    297 Views
    d.healeyD

    @Christoph-Hart Ah that makes sense, seems rather niche though :)

  • Like a drumpad

    18
    0 Votes
    18 Posts
    3k Views
    lixiaolongL

    @Dalart Thank you so much! You are amazing!😃 :thumbs_up: :thumbs_up:

  • Polyphonic variables

    9
    0 Votes
    9 Posts
    570 Views
    d.healeyD

    Here's my breath controller script - https://raw.githubusercontent.com/davidhealey/HISE-Scripting-Framework/master/modules/breathControl.js

    Rather than using a specific CC it has a Level knob that you can control from your main interface whichever way you like. This also avoids the issue of putting loops inside the MIDI callbacks.

    Unfortunately I haven't been able to make it work with the hardcoded legato script or my own legato script.

19

Online

1.8k

Users

12.0k

Topics

104.7k

Posts