• The definitive feature request & bug fix roadmap

    Pinned Locked
    222
    11 Votes
    222 Posts
    25k Views
    Christoph HartC

    Alright, I'm gonna close that now. @ustk can you make a dedicated thread for these scriptnode issues (with an example snippet that demonstrates the latest problems).

  • Request: ScriptNode Direct Access

    1
    1 Votes
    1 Posts
    25 Views
    No one has replied
  • AHDSR Envelope - Release Curve shape

    4
    3 Votes
    4 Posts
    93 Views
    clevername27C

    @d-healey OMG I was just looking at that…that would be dope.

  • [feature request] Working with lots of groups

    15
    2 Votes
    15 Posts
    342 Views
    d.healeyD

    @aaronventure said in [feature request] Working with lots of groups:

    It's the only part of the whole dev experience that is below Kontakt's /UI.

    Yeah I'd agree on this, although Kontakt's group management is pretty bad too, but it does have the group table in the monitor window which is basically what I'd like to see in HISE.

  • Code editor request: Allow backspace key while shift is held

    2
  • C++ node parameter skew

    8
    0 Votes
    8 Posts
    56 Views
    A

    @griffinboy you should use the unscaler node. So, your script controls the network parameter, which goes into an unscaler node, which goes wherever. It then sets its target to the raw value, ignoring range and skew of the target.

  • Write to the general library folder

    16
    1 Votes
    16 Posts
    95 Views
    Oli UllmannO

    @clevername27
    Good to know.@d-healey has no problems either. Maybe I shouldn't worry so much and just write to the User VST3 folder... Thanks for your feedback! :-)

  • Hat Tip to Dominik Mayer

    18
    0 Votes
    18 Posts
    165 Views
    orangeO

    @Dominik-Mayer To be honest, I don't like that the titles of unread posts are underlined, because it clutters the look unnecessarily.

  • ScriptNode: Counter Node

    8
    1 Votes
    8 Posts
    83 Views
  • [feature request] support webp image format

    3
    0 Votes
    3 Posts
    183 Views
    Dan KorneffD

    @Christoph-Hart Any chance we can get this on your radar? Webp is the preferred image format for websites these days. It would be very helpful to be able to render them in HISE. I believe support was added in JUCE7?

  • New feature: Release Start

    28
    7 Votes
    28 Posts
    1k Views
    gorangroovesG

    @Simon oh, sweet! Thank you for that. Then, the feature is truly wonderful 😃

  • LAF for the filter display (floating tile)

    9
    2 Votes
    9 Posts
    361 Views
    griffinboyG

    @orange yes

  • Oversampling for polyphonic scriptFX

    4
    0 Votes
    4 Posts
    221 Views
    ustkU

    @griffinboy said in Oversampling for polyphonic scriptFX:

    although other antialiasing / cramp reduction methods are definitely more efficient and probably better in the long run.

    Agree, although it seems hard to understand to me, and implement...

  • Suggestions / Discussion About Increasing HISE's Generalisability

    7
    2 Votes
    7 Posts
    160 Views
    clevername27C

    @Christoph-Hart Thank you for wading through my message, and taking the time to thoughtfully respond. It means a lot to me as a (one of many) developer(s). (Thank you, @d-healey, as well.)

    stuff that changes internal behaviour (eg. CACHING). When I implement this I will not be thoroughly testing it in all possible use cases because there are too many. And then I'll deactivate it again like 99% of all users which marks it for instant deprecation / regression.

    I see your point — isn't that accounted for by making it a preprocessor flag, tho?

    On the other hand having a queue not work by default is an instantly recognizable problem which you can address while actually writing the function (BTW the broadcaster system is automatically switching to a queue based messaging if it's necessary so when you eg. attach a broadcaster to a single parameter of a single module, it won't queue because it assumes to just use the current value, but as soon as you're attaching it to one or more sources it assumes that it needs to update all changes so the queue is enabled automatically).

    I hear you saying some of these things are instantly recognisable (if I understand you correctly), but I'm not sure that's always the case—if something doesn't seem logical as causing a problem, we may not look there for a solution, regardless of obvious the problems was (once you know).

    …lead to clogging and a sluggish UI performance…

    Understood, but as a developer, I'd prefer sluggish first (and working), then optimising.

    I have to look again but I vaguely remember that you can already recall the default user preset (if you're using that feature). If it's not there then it's definitely a valuable addition.

    Default preset, yes (though no Callback flag); Default Values, no. I may be missing something, but I'm confused why Default Values seem linked to Presets—what is the benefit of them as a shared feature, verses the flexibility gained by keeping them separate? Like maybe…

    Default Value: The value assigned to a component upon creation (in the compiled plugin), and the double-click value. Default Preset: Values for starting with a specific configuration.

    Also a bit hesitant about deactivating this (and therefore clearing out the globals with each compilation). Might lead to subtle glitches that nobody will encounter because it's not active.

    Absolutely—but would it be problematic as a preprocessor flag? I'm thinking new developers here, who might not expect global persistence.

    I remember you experienced this somehow but I actually don't see a reason why it wouldn't be ordered - sure some things are executed on different threads, but they should all end up in the console queue in a chronologic fashion.

    (Understood - I only included it after seeing another user's post about the same issue.)

    Script files should be saved though but I think I've added this a few weeks ago (somebody was complaining about external files not being saved with compilation and the fix for this should also implement the save script on save.

    (Thank you — I am one of the guilty.)

    However this is a thing that I could add as a function (just like setEnableQueue() with the default being on so you can deactivate it.

    Be still my heart…

    Yeah, I'd rather spend an evening with a glass of red wine and the default preset system to ensure that it behaves sanely than to branch between different opaque execution options.

    👍

    Can you elaborate on this? I would assume that all callbacks are executed.

    I meant that the preprocessor flag I'm suggesting would change this behaviour, so no Callbacks were selected. (Currently, all my component callbacks are wrapped in "if-than"s to ensure they don't fire on startup, because their correct functionality depends on various states.)

    I'm not sure if you've checked out the default user preset system yet but it covers a few of the things addressed with these suggestions. The defaultValue property is still useful if you want to change the double click position of a slider (which is almost always zero) from the initial state when you load the plugin (and I'm excluding Protools here because they made the decision to fuck up this distinction on their end).

    What I could add is another sanity check that checks if the default value deviates from the value in the default preset and prints a warning (or even autocorrects it).

    Indeed—I love (almost) everything about the Default Preset system, particularly that there are Callbacks for before and *after. I remember your note about Pro Tools in the docs…hurray for Avid.

    My plugin has over 50 GUI widgets, all of which have different states depending on the other widgets and such…for my case at least, the Default Preset system is the GOAT except for the automatic Callbacks on registration (because none of them are ready to do anything).

    Thanks again for your replies and thoughts. 🚀

  • Envelope Modulation in Hardcoded FX....

    4
    0 Votes
    4 Posts
    38 Views
    LindonL

    @Lindon good grief yes! - ok, where did I put that t-shirt????

  • ScriptNode Templates Feedback

    1
    1 Votes
    1 Posts
    32 Views
    No one has replied
  • Close Welcome Screen with ESC

    2
    2 Votes
    2 Posts
    44 Views
    ustkU

    @aaronventure +1
    and load last with enter

  • Round Robin + Group XFade

    21
    1 Votes
    21 Posts
    976 Views
    d.healeyD

    @Simon It's an interface issue I think. Click this XFade on button and you'll see a table for every group. However setting them all individually seems like a nightmare so I would add a script to your project with however many tables you need, let's say you have 3 dynamics, so 3 tables. And through the magic of scripting use those to set the xfade tables for all the RRs.

    Ignore that, looks like Christoph already foresaw this issue - https://docs.hise.dev/scripting/scripting-api/sampler/index.html#setmultigroupindex

    f4e78959-e4b1-4e92-95f2-25650a2b7738-image.png

  • Sampler Playback - ping-pong

    13
    2 Votes
    13 Posts
    616 Views
    modularsamplesM

    @Mighty23 said in Sampler Playback - ping-pong:

    @Lindon said in Sampler Playback - ping-pong:

    ooh cool, I will investigate... thanks.

    Sorry for the necro-bump, did you manage to accomplish anything? Any suggestions? Did you manage to use 'core.ramp' in scriptnode for ping-pong sampler playback?

    The SignalIn mode of flle_player is really cool . Great for things like drum replacement, single cycle waveforms (this is the best, play around with math nodes between your oscillator and sampler for sync and PWM like effects) , even waveshaping., But perhaps not something you'd want to use for "normal" sample playback. As Lindon say, baked in loops don't work and it can sound pretty grainy. Here's a snippet:

    HiseSnippet 1880.3oc4Y0zaaTDFd1jLNeUJskpJ3lO.RsnRv1w4KgP4SmhglDSbHhaQS1cb7nr6Lt6tNIlpJgDG4WP4D23u.bqm3HBwEj5IjPhqj+Av6rytdm0dcriUSaQrQJxy6LyNOyy79979N1UbElTOOgKxXp8Z0fhLtFtZKte80qSXbT4MPFWGuEwym5lUYZsVMHddTKjgwnOPZvXxwPAOmu7ZDaB2jFaBg1WvLoOj4v7isVYkOiYauIwhtGyQazEWorofutvVzDvyn3bnFDyiIGQ2lHG1HXzmP7piLdeLY1YspM+7KtjkYw4xuTMxBVlGN6RyQsJTbV5RTKqEl05vZ0PFYJYw7EtU8I9TOjwXqIrZUst3TtZA1m4wNzlJajGUEVYk4ME1VxsnzJZ85LaqJQDkGBYfqDSaipnsai2hYwZaOl9tQPGYimgNAZLRR3MZB3kuWvKEHYnAowTP5l3pltrF9w8Hwyz3xb3zrFANmzghZrHimgWW.Cf6OiC4X5ltPi1S3tymK28yB+6deTslbSelfmUv2V3S2ge26M0imZxodxTY6rqZ0RsO4x3Jrsoto1sz0v8hl3c4McNj5d+rmPraRaOPX6mjSyLXbpoZWqMPAuLm4uSCZX6K1o.ERavm9hxaP7IxCkPav3ZPc8YR3XrA8DHjPcDMIdCp2w9hFPPQWmefmivpoMwOo6jLnKrCfORbFJOn3dL+V5AkWBerbWnO1fBwahqv7MqmNFGIELBL0UAFCiLeCboZ0nl9w.bL7le4vFFN3K+zQKuJxJPUMX4emPKbgEMafYpGyi5l+BzV+0AUasw.qstcSmp1LKpaEPjE1zXiogwAVWsoESrIylFXbDvXj1v8wWl3vKT5smwgIcu0FeJhdYdEnC+hIF4UXXbhTESFgwpLmF1zR7Sn1fVU.FuEHNUizz1OxZRGzsDbQi5BNyT2mbWpuK6nint5XO0Mzp99fiWrkauxtTaJwSyo8cW4gLNk3B7DcH4hKeZyTOudarBtYkQUY+uq76n+uQ98hnnIvkNy2kj+0vSuPnU3kIz1UzzmwOZKBD5dFn4KyL.oILo.r3bpc67.gsyIaKAQUJ2Jnw+.OgclW11Hry7QcpUcz1T+SEtGGD8E9Yjw3x893fJzQk4nUssEmVQX2JRdIX6Pc8jNyvnxMC7mZTqKbZvBcyAhR0LB2q5HZBKYH3g6NrGgYKqAoZSOnpNqc3UgAGjTU5DtcfJSlMIl.q1pBARWCASx5BgCGp6LlsOjh.Z7YTPB0faoD0m7sEktUwV.3bjTf7hLFiJ6WwApkU9duFtF6rEO3PaAHLl.G2QCGZiQ2IQs7IdE8CCZ0kpjBks.mrQTfor29xdMI1n8k41kTGJB2iog6IwbwANP50jf9sz.cz.5FwwS9pDtilflEdlPURxHOTWG2tzYz5Nsi3DyuefV5RZSOK5FAav7ZXSZsVSPTTkAJgEncYtE8LoJ4G.07Tg3BKoOMrbmnVvm2hwC2kXY.AZKxYsaWDZW0m1nJ6qBZmGZK23YvAYRCGWa8+UByym38gzVrIhWrL3BIWsIACvShU71vaHeN0S9hKkKe94g7vGSOUQ1pATnvRKkq3byWnvrEWbgEmK71oa5ReTSHnrUmvrXGvbbbg.nrZSegCHAF3Roi5w6MEEWfQLniSGp7Qj.I6tRoktHLTmDljf02ewpznA8LKeOOyd.r4PIFWZKu9Bg62BoDwpTWVsU6M228T34d+wx8yaXfd6YBJvsSl67kSG5ZA1Hs.0L3FTRGJgSqBQC5nawjvYzmfxwRrfwUJsGw8HpuW3M24TSUdkfLCksjImcXbGxYwrgz53X0tAcYC0GILTWkhrDbKJKKpUvziRapG+qyLiiMgZk6P85ZXHNn9Lpd5lahlSeHmQRPNIDfLRO5JNtn6HryWNsHrziUTaL0KnOgbw16IE09vJAGcifbRv0VmIr2t4o1S7xjO5R3EgwDKqd3B0S89IdMgt0UaGAc06OLoTsg4zzYX7HtJQE4rzPUmBbomHnST88O8o+zxCZ1otP0yl7q+skUxkx9dw.oWPDE.IX7uzO6.a8DRSggqVPbk2lZvgklthJ7MgnxTJgWo8zpWTMi9J61Kk1LCV1bkoDwmI1Nw61+9G94u84k+kk6Yd22.tDgM8.YtJZG4XtkJ8qd+oskS9Ftj0Hq8EPp2BxaqWabx7kuG9wU1cmOsz56cvl67vMJs6SdnPzv6C2h5SVi46s3LDVMjFSZjzaBab873NzeGaPODJziZ2tNtBP.GRLONs5tOuuUZ8pnfwtJvehfB7Ce4uIdWgvOkZzezGO0u+MO+jtpQuXwK0lJISdGY+4VR8rvByWbwBysXAsKJzc44+4m+i+0.TjYhhFR1XHtj4ZBwwNjfuSig6G+4kw2.iCwzUbPX0OxM2DAVfvOd38v2R1NadzIcJ+Iuc9AllIeUcMwBC6DmcXmXwgchyMrSb9gchKLrSbw9OQ4OrQnturRSPVqRIkpnQIN4P6vqF+uDMBX4C

    Couple of the things to point out:

    Adjusting the gain going into the file player will affect the pitch The min/max node allows us to set start (min) and end (max) points for the loop, but again this will effect the pitch. If you're clever there might be a way to correct this by adjusting the gain, or oscillator pitch in conjunction with min/max Drop in a tempo sync and covert ms to freq to can clock playback rate to DAW bpm Set your oscillator to a saw for forward playback, invert min/max for reverse.

    Also, we can track pitch to midi if we loose the start/end controls and drop in another oscillator. So here the first oscillator is controlling the "scrub" position, while the second tracks the pitch (more or less, it's a bit more convoluted than that).

    HiseSnippet 1958.3oc4Ys7aaTDFeVmLNuZg1RUE8lO.nVTIX637RHTd5TLjGl3PDRbHLY2wwix5cb2ccRLUUpR8BR7WP3Bbi+EfabhafPhCH0SHgDWoW3L7M6rq2YsW+jlVdrQJxyiuc9M+9daWzlqScb31HsI2qQMJR6R3RMrbqrVEByBUXcj1Kf2h33RsSImZ0F0HNNTCjl1H2ULg1Dih7ddxRqRLIV5zvoPn84Lc5lrpL2vYKt76wLM2fXP2iUUY24VtfN2ZMtIuNfmQvoQ0H5GSNhtMQrsDXz6PbpfzdcLYlYLJO2bKrngdtYyrXYx7F5GNyhyRMxlaF5hTCi4mw3vxkQZIyavb41kbItTGj1nqxMZTpB+TK4ArOygcnIULHCpDbxxo2faZHthhYQqUgYZTLfnbPHMbwPZaDIscc7VLCVy4Couq3sPpPITIPsDQg2HQfWlNAuXfjlBjFUBoqhKoayp4Fth.OSgKXAZyxDPOoBE4dQZeKdMNrAK2oqRNltgMLno.2ZtzouSJ3e29sJW2R2kwsRws1l6R2w5V2dx6O4DS9fIS05RkKG6ZhiwlaZRsicYgogc2D7VV0qdH09NoNgXVm1biv0OJmlr+3Tc4sVYibqBVL2cpQ8G2ciBjOsAe5CJrNwkHTJ9yA6qF01kIfi15zS.WBoJZB75Tmic40.mh1zefkC2ntIwMp4jvoyeAfOhnCEJJKGlaCUmxAvFKcWsw5WHdUbQlqdk3wXhXvHvTWDXz2y7x37kKS0cCA3n3M9vg0Mr+O9oBNdomkWTUui+l9yXwMno7ll5vbn1Y5Rr0ereisVquistc8pkLYFT6hPPV3Ri0lB1GL6J0MX7MXlTuIS.SFDa3N3AwOrqgd6neXTyak8GSPujOGhC+zwG44nabjTESDfwRrp0Lo4sNgZBwp7v30ffSkI0McClMpA5VbKdsJbKltpM4tTWa1QGQsUwdrWnUbcACuvYt9x6RMoDGEi1WY4MYVThMvSzgjKF7zlwpudYrDtoDdUo92a32Q9eS32tQQiiyelqMIy+.0d9PK6yRnsKutKy5nsHfq6YPLeQlAHMgNEfkkE0rYd.+woEiEfnD0xvaveBO9KlQLVyewLAKpTcz1T2S41G6484+Yj1Xh69XPTniJXgVwzjeZQtYifvKdWGpsivXF1U5og+j6ZMd0ZLeybfnjCCv8JU40gizG7PuC6QXlhZPJU2AppyXGqRvl8RpJLB21KJSxMH5.q1nHARWCNSh5BAkC0dZ8lJo.fFpi7Rn50kRvZh2VP5VIaAfqpfBDMxnMhXcIGHOVw68R3xryV3fCM4PfwH33FJ3PYOpFIxiOxqnWXPotTYnPwHvHKgDLEb1WrpNwDsuH2tf5PA3dTEbOA1hePUH8ZTP+RJfNXCsi3PguHgahHzL2QGpRR34gZScaSmVY43TwQjuWfVXRZROKnif0YN0LIMVsNDTTlAJxLv3BVFzyDQIeCnlmhDa3Hco9k6DLB97VLK+aIV3Pf1hbVyw4fwkbo0Jw9DuwYfwhKdRrWlT+80L9+x944i79PJG13gGVRb1nm1DvDvSjS75vaHSZ4SlbKlNSl4f7vGSOUR1xMjM6hKlN2rykM6L4VX9El0u6zMro2qN3T1PElebBzCWqEXNFNqGTVotKuJDBzyjRE0i0YJJr.iPPGlNTZiH.RpcEgVZivPsRXBBV89EFkF0u5rLcTmcW3xghru3Nd0CB2qCRFDqXEQ0VMube94vys+kk5k0Pe81S5Ufa+wbHUGajhiZRbMJokHgSIcQ8Vn8fI9RzCmxQibfgUJsGw9Hpqiem6VTcYdEuXGELDvkXXDREhoFCKuJnA0OOguetL+XdnEJCCpgm3A4LUc9iNPgiFGqCUMCMOFgktDFbIpLs2RwPSMEpGDUhHDUjfQZw6oEpoa2a6IKEm2V79MRKT4KnGFQgyqxKigA5F5LtioykK2N2DH3fjMJ1zL.IKpXHCpGUTDq5QJ4ypLhIEF1s.zIklPBK937y7D3+tlOWVIGel9uHg.9Ip3CjozEbfjHUQzmL+UhIMInM5Hy2e0YnP7cGR4VtMH8o+TqP5KO+7uocHs7ip98K0kBKR8EmeyOJdb8viWFM3TU5AjpFj5Lhuph+FdOcWGpV2Q3ZWvPp6NzsTwROcniuF1mlXJ95b5LM0gpUcZM4kL0v.m4HPvKxDGpcrJqHp24MBadRJQOSbzobEI6uRakSoR1IhnQBUX+9W8ce1iK7CKg5XtpNpktLzqsI8.QvXZKMRdMYNB00iiLh9FFvVIU9d5UGAk2p1BYzDBuJ99E2cm2M+Z6cvF6r45428Aax40bdysntjUYtNyOMgUFovwZQcSvZ+wqMZKoxGseUOY6PKNu.tHP.GRzONtzFOomMj77nup15Cdbu9f8e4uHdWN2MlLN26sm7meziOosVYykaftTQYxaHVO8hxm4metbKjc1ExpzOc6YW902+q+sk5cuXc1MXXBfrJmebUh2W82v8aj9r3KprJQ2left721Rb4F2aFv8yx+qqZKw3TYPmzZ1DwWh0A55QeUsIX1gUvYFVAyMrBN6vJ3bCqfyOrBtPuET76+4mQPzVODVqXdYTQs7VjCM8yI+WfFDwnE
  • 0 Votes
    38 Posts
    2k Views
    Christoph HartC

    Without the setting enabled I still have some issues.

    Then enable it. As I said, entering text should not be implemented manually and the callback should only be used for shortcuts / triggering actions.

12

Online

1.9k

Users

10.6k

Topics

92.9k

Posts