• setPosition() doesn't accept arrays?

    2
    0 Votes
    2 Posts
    134 Views
    David HealeyD

    @toxonic Why can't you do .setPosition(array[0], array[1], array[2], array[3]);?

  • Hardcoded FX get properties of attribute

    9
    0 Votes
    9 Posts
    513 Views
    ?

    I have an object that stores the parameter properties for some slot effects like below:

    const fxSlotParamList = { "Saturator" : [ { "text": "Saturation", "min": 0.0, "max": 1.0, "stepSize": 0.01, "middlePosition": 0.5, "defaultValue": 0.22 }, { "text": "Wet", "min": 0.0, "max": 1.0, "stepSize": 0.01, "middlePosition": 0.5, "defaultValue": 0.9 }, { "text": "Post Gain", "min": -24.0, "max": 0.0, "stepSize": 0.01, "middlePosition": -10.0, "defaultValue": -1.0 } ], "SimpleReverb" : [ { "text": "Room", "min": 0.0, "max": 1.0, "stepSize": 0.01, "middlePosition": 0.5, "defaultValue": 0.0 }, { "text": "Damping", "min": 0.0, "max": 1.0, "stepSize": 0.01, "middlePosition": 0.5, "defaultValue": 1.0 }, { "text": "Wet", "min": 0.0, "max": 1.0, "stepSize": 0.01, "middlePosition": 0.5, "defaultValue": 1.0 } ], };

    I have an idx value that captures the index of the dedicated slot in the array and when we combine these for setting the knob properties from JSON, let's say WetAmount parameter of the Saturator:

    Content.setPropertiesFromJSON("arrayed_FXSlot_Slider" + [idx], fxSlotParamList.Saturator[1]);

    Slider properties aren't updated, am I doing a syntax error, couldn't figure it out.

  • Assign array of components to local LAF

    4
  • A single function for multiple components

    9
    0 Votes
    9 Posts
    415 Views
    toxonicT

    @Lindon Yeah, that works fine! Thank you much! :-)

  • MIDI Learn table headers vanish with LAF

    2
    0 Votes
    2 Posts
    520 Views
    David HealeyD

    Think I just found the answer:

    7584f455-fcdd-491b-9f60-d261e4d49f77-image.png

  • How to programatically remove filter bands?

    2
    0 Votes
    2 Posts
    141 Views
    orangeO

    @d-healey I think it is not possible to delete them with scripting, but you can enable/disable:

    HiseSnippet 938.3ocuVs0aaaCElxNrnVaqW.1O.h7jyVZfUS5kgfg45aCFaIwaNMnnuzRSQGSDJRWIprZLDf81961e.En8PJYaIOmf.i0pGL.OW+Ne7bNlCh0LdRhNF4U6zYS4HuuEOblxLo8DpPg52A4cO7QzDCOljIp0rozjDdHxyq5uZE3UaKj66C+RKpjpX7khPnyzBF+2EQByRoCZ9aBorGMjepHpf0GzrOSqZqk5T.OUwMPSorKnmyOlZMqBF4cmtgBiNdngZ3IHusZoCmMbh9uTY1elHQLRxsGBPCg.kItmVFZQrUJp8DgLbv75NAAQYvRVnZFK783iDghExWxFOvofrzih7gWkxvqZI3ETDdMJ.u0.IuBPZqLH8P7PVrXpYoFKd9FbeEb4LlBzdQnjYKpxqqfaqAKTl8hnWv6ECGV3Q88azXWB7yNG56CTehgbIMlLfFCDtIV7tt+Q.4mItFh8Nma5NdLmYpucIC1trycDITnF6IjPRrdOO8f+s0QS0J3P8sKalKFBkTn3jwoJlQnUDsprQ1.Eqk0YyixtPBko7c7+a+ZRMiJIBUH+8PNKAv8ZQUgmLdbB2P9AR.4GWQcWkMIgGRH907qUVG3yKLvgQoFdcWz2kD7nrzdneMxhO+qfJ31Up1flWKsoR4HnGu90TqVZo.ebr1vOQU2Uv9W4SVU03wqUWdvj730p1NDFeSNVWkFMhGWjtsFBclka2wWe6dwoQVFKUvPspuRXNYJWccynnbp0NZjiJvTiav3d4CFsRMFsBIBsSokoSjC4E2KgdY+NTCcd7fPCoaJO1HrUhWG9kvdqrAuZ3N7jKL5oNayuVgh+1m82uHy+yYMms3Py21D8emygML5vTI0TdsicWatB3xozrtcdVkHLyJtK9+scQ2VH9P7.ggMY8XrxZvHv8eIvX9F7uCmssZI.2B26UeEVWe+4cMsSiuj28ctbeebo8JkfwwoQYMJ1QHuJP0XWX0nHQYEDjK3ss+2iaZE73x+0qJb+UEbvRAOv4xSlK30WsiSvSmKH8iibBd1pw34qJ3mJFzd8NMe8oiPqdqIzfa997O0oFg57in.gASOXfiFBuJfwgqSkhKWPU4maXOagzPti5vdeB9xUFXO6kqLXtxuJ4Hhxh0ugkswx1obWmDntUt2zTCdbEblrXCEF2XuFnH3MFugwr8rOBVGtded7F3y9afOGrA97jMvmmtA97rMvmmei9Xed2KRM5nrcXffAcc+SgmWgNczmAjsxKzF
  • Broadcaster error

    14
    0 Votes
    14 Posts
    775 Views
    Christoph HartC

    Alright, the docs are online, but let me know if something is unclear.

  • Sample loop play in Sampler

    4
    0 Votes
    4 Posts
    253 Views
    David HealeyD

    @plugintutor
    You don't need to add any code for looping to work.

  • MidiChannel is always 1 in NoteOn when logging midi players output

    6
    0 Votes
    6 Posts
    440 Views
    ulrikU

    @Christoph-Hart
    Related to this issue of not being able to grab notes by their midi channel in the NoteOn Cb, I tried a different approach using no arp or midi players at all. Instead I've built 4 arpeggiators manually and now to my question:

    I use the TransportHandler and made the "NoteOn callback inside the GridChange function set to 18, 1/96 (1/64T)

    const TH = Engine.createTransportHandler(); TH.setEnableGrid(true, 18); TH.setSyncMode(TH.PreferExternal); if (MPsActivate[0].getValue()) { local nv = NVLookUpNum[MPsSpeed[0].getValue()-1]; if (gridcount % (nv*96) == 0) { slider1 == NumSliders.getValue()-1 ? slider1 = 0 : slider1++; //for (sp in S) local nn = MPSPs[0][0].getSliderValueAt(slider1); local v = MPSPs[0][1].getSliderValueAt(slider1); local l = MPSPs[0][2].getSliderValueAt(slider1); local len = Engine.getSamplesForQuarterBeats(nv*l*4); for (n in PKs) { local ev = Synth.addNoteOn(1, Math.range(nn + n, 0, 126), v, 0); Synth.noteOffDelayedByEventId(ev, len); } } }

    I have not tested this carefully yet.

    Is there a drawback using this approach?
    It feels like it will not be as accurate as using the built in NoteOn cb

  • Display preset name and folder in label

    Unsolved
    10
    0 Votes
    10 Posts
    1k Views
    David HealeyD

    If you fancy playing with C++ this is the function and I don't think it would be difficult at all to modify.

    String ScriptingApi::Engine::getCurrentUserPresetName() { return getProcessor()->getMainController()->getUserPresetHandler().getCurrentlyLoadedFile().getFileNameWithoutExtension(); }

    What I think might be better is to add a function to the user preset handler that returns the current preset as a file object.

  • Get data from Woocommerce via server api

    109
    0 Votes
    109 Posts
    24k Views
    David HealeyD

    @Dan-Korneff That's what I did too. Once you've made a basic plugin and got a feel for it get back to me and I'll help you get up and running

  • Broadcaster + SliderPack

    6
    0 Votes
    6 Posts
    331 Views
    ulrikU

    @Christoph-Hart Ok, I understand, thank you!

  • Changing film strips dynamically

    2
    2 Votes
    2 Posts
    436 Views
    lalalandsynthL

    @d-healey not possible as far as i can tell.

  • set midifile name on midi drag?

    1
    1 Votes
    1 Posts
    123 Views
    No one has replied
  • Execution time out on array.clear

    1
    0 Votes
    1 Posts
    155 Views
    No one has replied
  • Broadcaster

    12
    0 Votes
    12 Posts
    1k Views
    David HealeyD

    If I attach a listener to a child panel, and later that child panel is removed, does HISE automatically remove the listener too or is it left hanging around somewhere?

    If I have to do the cleanup manually could we get a removeAllListeners function?

  • Paint: Hise Edition

    7
    4 Votes
    7 Posts
    852 Views
    David HealeyD

    @KimiA

    alt text

  • script cc and pitch bend

    7
    0 Votes
    7 Posts
    345 Views
    ulrikU

    @ulrik never mind, I set the pitch bend value with the same function

    setControllerValue()
  • Need some help with MidiFX plugin

    1
    0 Votes
    1 Posts
    115 Views
    No one has replied
  • EQ curve from object.

    23
    0 Votes
    23 Posts
    1k Views
    Christoph HartC

    @iamlamprey said in EQ curve from object.:

    Could this be a use-case for Faust when it's ready?

    No, not really, Faust is not really suited for spectral processing, it shines in circuit simulation and physical modeling.

    Actually I also think that using 30+ bands of peak EQs is not the 100% right way to simulate AET as this amount of filters will smear the phase and is not super efficient (especially if it's per voice). The proper solution would be writing a FFT filter that applies interpolated gain reduction for each FFT bin based on the analysis of the loudest and softest sample:

    Create a samplemap with two layers (ff and pp) For each note / sample, do an FFT, and compare the gain factor for each bin (should be <1.0 so it only works subtractive) Write that gain factor array into a data file. You can just use audio files to store that, then you can load the data as SFZ into the realtime processor. Ditch the pp layer. Write a FFT processor that applies the gain factor on each bin (the FFT size of the analysis and of the realtime processor must be the same, so you need to find a compromise between latency and frequency resolution).

    Everything from 1-4 can be done inside HISE, but for 5. you need to write (or commission) a custom C++ module, but I would say that's rather beginner level spectral processing. Then you need to tweak the parameters to match your use case (FFT window, FFT size, smoothing between bins, etc).

30

Online

2.2k

Users

13.3k

Topics

116.1k

Posts