• LAF for the filter display (floating tile)

    9
    2 Votes
    9 Posts
    492 Views
    griffinboyG

    @orange yes

  • Oversampling for polyphonic scriptFX

    4
    0 Votes
    4 Posts
    332 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
    217 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
    70 Views
    LindonL

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

  • ScriptNode Templates Feedback

    1
    1 Votes
    1 Posts
    43 Views
    No one has replied
  • Round Robin + Group XFade

    21
    1 Votes
    21 Posts
    1k 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
    690 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.

  • ScriptNode math nodes

    1
    5 Votes
    1 Posts
    64 Views
    No one has replied
  • Tap

    3
    0 Votes
    3 Posts
    86 Views
    Robert PuzaR

    @d-healey Yes. and thanks for the responses.
    and I say that it should be available to everyone without the need to create. ,(script) in future

    I meant it as an improvement suggestion.

  • Add This to HISE's API?

    3
  • Decimal Precision in the Delay Module

    3
    0 Votes
    3 Posts
    88 Views
    clevername27C

    @ustk Indeed and thank you, good sir.

  • 2 Votes
    5 Posts
    98 Views
    ustkU

    @aaronventure It's even stranger here, when cabled, right click doesn't even show the Value property at all

    Screenshot 2024-11-15 at 14.43.28.png

  • 3 Votes
    30 Posts
    2k Views
    HISEnbergH

    @HISEnberg Hmm and I suppose a follow up to this is if mixing and LAFs is possible here (HISE's traditional LAF and CSS)?

  • [Feature request] Lossy monoliths

    15
    0 Votes
    15 Posts
    433 Views
    d.healeyD

    Ahhhh I decided to have another go at it. I think I've solved it but unsure if the code is a little messy. I was thinking along the correct lines before, just I was not following the logic. The problem was that the start position was being applied multiple times to the end position (once for each mic position) whereas it should only be applied once. Here is the modified function.

    void apply(const Identifier& id) { auto value = propertyData.getProperty(id); if (id == SampleIds::SampleStart) addDelta(-int(value), { SampleIds::SampleEnd, SampleIds::LoopStart, SampleIds::LoopEnd }); for (auto f : sampleFiles) { apply(id, f); } propertyData.removeProperty(id, nullptr); }

    The addDelta part was previously in void apply(const Identifier& id, File& fileToUse).

    Hoping that improving my C++ foo will make me more useful to the community :) or at least more useful to myself.

  • 2 Votes
    6 Posts
    163 Views
    ustkU

    @Christoph-Hart Oopsie yep you're right, same behaviour as @aaronventure :smiling_face_with_halo:
    I often understand the contrary of the opposite of the wrongness I am not thinking about...

  • Add alignment for ScriptPanel popup menu

    1
    0 Votes
    1 Posts
    49 Views
    No one has replied
  • JSON.parse or parseJSON

    7
    2 Votes
    7 Posts
    598 Views
  • Add File object from absolute path string

    11
    0 Votes
    11 Posts
    470 Views
    Oli UllmannO

    @ustk
    Is that still the way you do it or have you found a nicer solution in the meantime? I'm facing the same problem... :-)

  • AHDSR - Release Curve

    6
    0 Votes
    6 Posts
    503 Views
    MorphoiceM

    @Christoph-Hart I'd really love to see you try another go at this... maybe with collective help of the community? the release is a bit of a bummer, also a start and end offset value would open so much more possibilities with the envelope... how about we tackle it all together? it's a crucial core element of every synth's design!

33

Online

1.6k

Users

11.3k

Topics

98.2k

Posts