• Sampler Loop Function - Alternate Direction Mode

    7
    3 Votes
    7 Posts
    359 Views
    ulrikU

    @d-healey Haha, yes you're right of course, you can even hear it in it's name... :)

  • How to Customize Audio Waveform CTI with LAF

    8
    0 Votes
    8 Posts
    933 Views
    DabDabD

    @DanH Superb... Thanks buddy.. That's what I was looking for.

  • Exporting interface as png?

    3
    0 Votes
    3 Posts
    324 Views
    lalalandsynthL

    @Christoph-Hart Sweet , thanks !

  • [Feature Request] GUI Scaling with window handle?

    15
    2 Votes
    15 Posts
    3k Views
    T

    @orange yup, that was it, thank you!

  • Better Table editor

    4
    0 Votes
    4 Posts
    607 Views
    lalalandsynthL

    @Christoph-Hart understood, thought i would put the suggestions out there.
    Isnt the c++ code in an external tile disabled when the ui is not visible , seem to recollect we had that problem. Or do you have in mind that its just a ui object that then runs the underlying default table?

  • Link tables between scripts

    17
    0 Votes
    17 Posts
    2k Views
    d.healeyD

    @Christoph-Hart Any way to do this yet without resorting to global variables?

  • Load from Purge

    9
    2 Votes
    9 Posts
    875 Views
    Christoph HartC

    Alright, I've added the feature using the first option as this is most convenient for the standard use case.

    I've also thought a bit about the option of purging only a subset of the samples and I added a function Sampler.purgeSelection() which you can give an array of sounds and it will purge only those (while unpurging all other sounds).

    // I'm pretty sure nobody knows that funky function... var list = Sampler.createSelectionWithFilter(function() { // it will be called with every sound as `this` object and you just // need to return true if you want it to be included in the list... return this.get(Sampler.HiKey) > 72; }); Console.print(list.length); // now you can purge every sample that is mapped above note number 72 Sampler.purgeSampleSelection(list);

    I'm curious how it will hold up in a real world use case, but the only problem I can see so far is that changing the purge state of the sampler will overwrite the "custom" purge selection so you need to make sure you call this method and restore the sampler in the correct order as the information which selection must be purged is handled on the scripting layer alone.

    It might be one of the things that I'll regret adding like the Ghost panels, so take this feature request with a disclaimer that I might remove it if it becomes too annoying :)

  • Time Stretching

    36
    0 Votes
    36 Posts
    7k Views
    B

    @d-healey Excited to see where this goes. I've done some experiments abusing the timer, here's an poor man's old school timestretch:

    HiseSnippet 2440.3oc2ZssaabbFdWKttgzwEMoBEs2MUn0cYprDojkRRUULsN4HDqCQT0tWXffQ6NjbhWtCwtC0gDHffhh9Zzq6M4YnnW0K5KQAJ5UEn4Mn8+elYOQtThV0IF09Bat+Gl4a9Ouy5CiDdr3XQjkc0iuX.yx9scZeQnr2l8n7Pqc2xx9tNRdeVrLhI85YswECnwwLeKa6YdLJhc0JVp+7MObCZ.MzikQxx5oBtG6I79bYF0Ca8I7ffcn9rigENi9CZsqmHbSQfXH.mYbZXMf58BZW19TTra4XYe6s84RQTaIUxhsrqrgv+h18DmEpk+o7X9IAL7glVsgERSdGQfOhXjp0l83A9GlbrisrrcNLyHLi1HLqydbedJ8LiwOPwfjoQd6g8sJBuYJ.ul4gWibvqDHYmCRNZH8NNs8h3CjYbP7bGmcCkrnNTvrmGJ6Ore6.tOK5PvDBPww9VfEVuBV1+EmMEfZgxE5SeAamH3gzkwc0FMlm.+U80pUqyvPOIWDRDg6KjrCBcqW6KqUs1k0HixpSmR4gaTjHHfEUJaLBH5pTzMbX+SXQySNkFLjkJH36KZqclrsNenfm9bmSPQ3tgb4ACXgSJ.wxXrfe8a1cKpjhNHCMPtArHIGgf8VrSgncs6ppyVr3WHECf38LeYEMSHJR3OLfJKFZg4SFFfMnf+DcOgwb4E4y2FMdqxzEuc0oCSKbeGmC4PAgxw6sJAufU6aa7Zxduqy1c5v7jYfshyN+1qLUsxzE9L8P4Gl.kGMzmKdh.CSTPYVMEBRhbX.8BVTyIUUkr7e5eLsUUsl5ppP8cOvswxGJo7kGGAEK3gcyy.g41gTvV3mGAGIDRLsOkVqOsUaZ+AALvhFIgkufzrSYQwEWgc3AlB6+Bms+UOGLceN3xhe9wa7wOeCFUR1fJkArmCtGobgynmZ0GsKN1nx8omi+rxezxJ..nZOS3EnPreBe6YtQEJx6oO.P+ob1YYzJsnckWC8QZN88QpbU8QtqywSnIuomws9muaZSiXl7YbeYO2UVF6Rji7Gy3c6IcWQ07XwEeLSRnpnczoPFnh1qAgiwRnddDIM2vjGPVmnF9XgtLohmNjJEptyMdtyb5sBKhShUhSDc5.XIlzQDQDfuKfNX.DVaXGWKhk7aUfySoAvF2XsRnuDvXDI+kiPXwkzG0Hv0Rh4eAi31GRD4wL3b5GWWspcQtsQlqSVogRg1ZaMg1WLLTRbg5CdfUDF2QqhwW7n9RPmlKzvbJgtzPmPxIWPNqGGTWJH7PuHFMlU73SfEj.KQDuaWvniKIOQ60y.z6ksOY1QHcEfztaoMUpm10uAhi0xSoolhhTDTPHDJH.jV0XJy8nIVP1KAjQPjMwsixBfT0QIcfZBDZnOo63B2IRzGnAEF3P3Ci5WOm+RIw5jsC6xCYXziNv4HfracCB6SCGpN6xngLEjvhXJTZBIiLE0.YRhoo99eRn3D24hPFyMOAlMBCtSDEC5cmSxNWB7lKcAmaLQ5CEbQQdB.PZz37giz.ze.x.N6w2Bn3Gv5AkvfdNv3Cd.dL4gAvxmeJpDYSllxSzefHDNY4GnJmuSQbsZWBKVhI.rlalnUhcnNt2l0bSZPvIPiC2w1MDR4hzyhvIu.roj6kBTi82DJVl42rFn0YYiKvHcQOPhbixWa9ZrPiliwQY+VRayGQGeen3i.FiAvXlionPF+59hn9z.vA5eX5wbLT3y5PGFfUMFlyQWhayn0U503cb0gzquNFQWuVUfXUPkXQ.agAQP1tqV50.5EJmX7xUurVUV.T3H2R0gBDLqkGMvCGtiYrpXpDpy0VGo53UQGM0LdGQzdXcx155jtIKZcrf5ji+RcvkGAVzvoaMrYxwHM.ymAi66isD.qsJx2ssnOS1CIcF75PcqOlSYbigwInz+ifxbFqVAK8dTna1.wYtP.172W8D8jXkN2OIsq9hMAt0IuW9hYKl6ghdJ098qml86+4sqjMP0IB3eIZY2SWREZyR8+7gwRz7AMjFfCSZxo2KopatT5MFJkhPL0C4gYeqB4zMwbAs3Eyo0zlq7LEMyqKQ4mZdpp5.UMsUfJZGSOROviHftWAxexgjliwDhHK.v5iNqP4EBSypvhekUNLU.v9r7GZJHVPqhlvrcbtxEb71SkIjpH5RqLAt5BoMl.TFo1mZUJweVPyqzslelpjBZE2WudzvtLeUYqWm0rx7VSHForCsNT4X83aD7J3hFOPAGh1Lgm5lTx.MNRnT8pfQGbB9lUnUHunHRT+HEG44tINTJKpLeTIhkTKj3N5X0vb0lxT4lhTOiO91.3vBOiK6oT3.0bqtMmWURFJHrz6O+HCaqakM5n6iMg9z63VarVliugY0dG678QjFj6cuQA.TbdkFMdC+fu5JqjdDK6ko9+6C9kS3lO2CdOTXxtE3cCEQrswSnqZ5KPKyHzIh.XA0be08WpdKjpuLyYMEUrJY7sbSBVnscxXn.nTUfeI1BchcgRG7X0+dzvvPnkuacLOWcfvjgjdm5lmo8be0EM7JObnZw5h3xnuW5TiRc8L.4xGtI1iDe9aNFjKqMoOCvHqfXf4l9GqQqoZgAfPuHbYhUqCPNmQBj5xWCeXga+p5CKbM2cb5GYvthAgfnR0U188MWYmdtYKNrHukiNrxRg97WXq0jzV+8fTZ+8bTuF+nJ+oslFkq5XJSUP8uZ1u9eOU68cbRChJr.+4+1+5YstQefEzfYl0xx145MY5qN11x5B7G0f8FGSFEPOqN5KRWupWqQ77jKd9hzamtvEGjYeOnkditiS5EEouT6p210bq3pK1t5sO17XxsBMhCNEc0lBujBe+toAeeyCiG1oC+bLF8ma0W8IB9QNkcyFV4mlO+BnONU9xY+5G+2+he+C0GmzuPwzYXyGgn.+ev95AekuxXbeamrW1Iw59SJZc+qlGK+P7gs9t6K18p4KDWMAis4Xk0sCOkE.YMJL9tPZh5TlPcoBnbOQnXPOQH2q32qwT9NO1K8.8HoDd0gLJy15HV.dYzYj9YszuT4nexouU+JGk5u9wNZ3RvlCj2L9Rqy7FzWZ8k.JGIFh21zdTHPEqQf++cPLDJOAHILDlRK4+xClmajT9nMKzW8v+A9igYS7YaCylIL+NYO5S8hDelmtsIFK+VJJv4NT8sQqB8jfmIMS5U53zXgFXQP9m44gl662zxpbcV5Fnyx2.cdvMPmUtA5r5MPm2+FnyGbk5fe21GMTJ5qSEABGtsZlEa6zuSt8LV+WzjHKyB

    Works alright (for samples shorter than 65500-whatever samples ofc) and I managed to build some other variations for detecting and adjusting according to BPM, beatslicing etc. Pretty fun for lofi and breakbeats but not really for Hans Zimmer stuff lol.

  • 0 Votes
    32 Posts
    5k Views
    gorangroovesG

    @Dan-Korneff Are you referring to the regular GM hats open/close/foot or the variable hats?
    My plugins utilize both for compatibility.

    The design I came up with for the variable hats is unique to my plugins, and they work with e-drums. The basic principle is that there are 2 notes: one for the hat tip and the other for the edge. You use CC4 to control the openness.

    The way I accomplished that is by having parallel samplers: 6 for the tip and 6 for the edge. Each goes like: tightly closed/ closed/ 25% open/ 50% open/ 75% open/ 100% open. So, by operating CC4, you move between those samplers and mute notes in others that are not within a specified range.

    This system is not 100% compatible with e-drums out of the box. They still need to set all of their tip to one note and all of their edge to another. I made the system that is the most practical, in my opinion, and can work with either e-drums or keyboard controllers, as well as being able to edit things easily with a mouse.

    I'll gladly share the scripts with you if this is the system you want to implement.

  • get/set sample gain and pitch tables

    1
    0 Votes
    1 Posts
    269 Views
    No one has replied
  • ScriptPanel.isTimerRunning()

    1
    0 Votes
    1 Posts
    108 Views
    No one has replied
  • Saturation modulation

    5
    0 Votes
    5 Posts
    346 Views
    d.healeyD

    Looks like the poly shape effect will do what I need.

  • Macro Control for ScriptNode

    14
    0 Votes
    14 Posts
    574 Views
    d.healeyD

    @toxonic

    But won't I need to use an inline function for realtime?

    No, and also your UI script should be deferred (non-realtime) anyway. I think all callback functions (except control callbacks) are non-inline.

    Yeah a loop inside the function is fine. You might want to reverse the order of controls in your array, it seems strange that element 3 is knob 1, but it won't affect the functionality.

  • Can we get a Compile option on windows

    7
    1 Votes
    7 Posts
    312 Views
    LindonL

    @d-healey @Christoph-Hart -- ignore me then - back on yer heads...

  • drawAlertWindow customization

    1
    0 Votes
    1 Posts
    94 Views
    No one has replied
  • Amend the "Something went wrong during extraction" message

    3
    0 Votes
    3 Posts
    178 Views
    LindonL

    @d-healey said in Amend the "Something went wrong during extraction" message:

    @Lindon I always do a check before extracting to make sure the user has permission.

    if (!dir.hasWriteAccess()) return MessageHandler.showMessage("Unwritable Directory", "You do not have write permission for the selected directory. Please choose a different one.", 1);

    MessageHandler is a custom namespace I'm using.

    yeah nice - but here the application is using the default extraction system. Not my nice (I will check before you do it) installer.....

  • Scriptnode Zoom level - Component list Colorcoding

    3
    0 Votes
    3 Posts
    176 Views
    lalalandsynthL

    @d-healey ok, :)
    Removed from feature request .

  • Scriptnode Temposync/Unsynced speed.

    3
    1 Votes
    3 Posts
    210 Views
    lalalandsynthL

    @Matt_SF Oh ! cool. That was stupid of me :)

  • 3 Votes
    24 Posts
    3k Views
    d.healeyD

    Am I being silly or is the favourite button state obj.buttonState inverted? Aha! It triggers on mouse up not mouse down :)

  • Element groups for saving in presets

    2
    0 Votes
    2 Posts
    517 Views
    Christoph HartC

    I don't think it's a good idea. A preset is a single state that needs to be recalled on various occasions and adding another abstraction layer on top of that will lead to issues and regression problems pretty soon and the possible use cases are way too broad to be covered with a "hardcoded solution".

    You can achieve this kind of customized loading / saving with the pre / post user preset callback where you could remove eg. all mixer gain values if the user chooses to do so.

16

Online

2.0k

Users

12.8k

Topics

110.9k

Posts