HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. Goodflow
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 9
    • Posts 49
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: The big bug tier list

      This bug's been present for a while, but will likely become more noticeable as the new pitch_shift node is implemented.

      Link Preview Image
      DLL Compilation Errors With Nodes Using Time_Stretcher · Issue #733 · christophhart/HISE

      Steps to Reproduce: Add a stretch_player or pitch_shift node to a scriptnode network. Attempt to compile The usual process yields the error: Undefined symbols for architecture (your_target_architecture) Compiling in Xcode provides a litt...

      favicon

      GitHub (github.com)

      posted in Bug Reports
      GoodflowG
      Goodflow
    • RE: Default Value Bug affecting ARM Macs

      Did some more digging and found that

      1. The bug isn't present in Rosetta builds

      2. There are a few mentions of floating point values on ARM builds in JUCE's GitHub issues, including this one with a related forum post. Possibly related?

      posted in Bug Reports
      GoodflowG
      Goodflow
    • RE: Default Value Bug affecting ARM Macs

      @ustk Good catch, I hadn't checked scriptnode values. Strangely, I was only able to replicate it on a fresh network once I set a bipolar min/max and <1 step size.

      The bug affects preset values, too, unfortunately.

      posted in Bug Reports
      GoodflowG
      Goodflow
    • Default Value Bug affecting ARM Macs

      Occurring on M4 running Sequoia 15.2, Xcode 16.2, current develop build (happens on older builds, too).

      HiseSnippet 850.3ocsU0sSTDCEtEnnr9STiO.S7JzXL6BqKPTCHKftQA23fF8JRYZG1lsS6jocPVMdiwmGeE7Yw2.uv60S6LvrqrB5l3bwjb94qmud9qcyzQbiQmgv01cPJGguLIbfx1qcOpPg5rABeUx1TikmETnZ8AoTigyPX7zOwo.O2LH+22Wccpjph3UpPnWqEQ7mKRD1JscW6YBobKJiuqHYHuatVmHspsVpyA9LMoNJkF0md.eGpysoHnmRM8P36Ppe+Vb9RKFyXzEWj0pUqUVdklqzfFWuIc+FsVo4BMWZgkWJFgmcSlvpyBsTK2fvyrtlMHrm9cph.7ZgQruj6DZfBgHWndKsj4thNsn18DRV2iSTFDbJcqRaSWj1tIYaASbh9pz207FBpPLbBDO0nza5QnWi+D8FCkvCQoYJnz0IgQYhTakEGetDoiBplwTnNMLUJ7Eg+AosFbPYuWBsOeqLP3D.y2pd86F.+t8CpUCJUFavgzrfmoz62H3QAGC7.tssNIUq.g4uk25sbHhyUQVgVEnU6ns7Wnl+109Ps4p8wZA+to33wZyEgLsTxyFqYW6T1YAbdUdx97r6BzVlyOwQHkMZcX1+t5PTwEdHG0pNJg8Eo7R4ytQBUlwb0uRFBtZ8UuqVV8BkBFOCIfC4BDetD4Ie0XyQOD8pNaPsziOF3DgnjxyrB2kAuA+PXHrnoXNxFbSeqN06aYQBgux4FzipBnXsAUBucMicfK0Lq2QThfwj7tZivk5GdU.rDIMT7dOy+vM+xS916+7pIir.4ql73XwQ9Q8XgLwXAxzIA1.fv2f7JCOfwio4RafoO.TJT84rc0d+emfYgcCD7mfSpGWbPOqS5g9ENmZ1.lJ0rbI0N5npagVoAG4Gd9vMDnfK0fgW38OL+V+Lme+ao30IcE1ndimiSMFNB8D+O3X4VuqP1LNlGYqH3Ljsdyjth6bB+K04Vg5fsoPWAziP1IOIDdoHhCQWo3RiqdOkappPttS1kAB4JlW3mvWowFNYbowFGaDkPixz6EULK51qdQuFfSJ+aPyAOFBxAmZHD4Z7E6EEM5QcJfKLo.WbRA1bRAd+IEXqIE3RSJvkOeftWgebtUmTL1fPa2cS+RSLdSEE5.8cqneAC18cCB
      
      1. double click the slider to reset the value to default. While the UI value reads 0, the actual component value is off, like a floating point value is getting lost in translation.

      bipolar knob value.gif

      It doesn't occur at a stepsize of 1, only .01 and .001.

      Not seeing this problem on an Intel machine running the same HISE version. Is anyone else encountering this on Apple Silicon, or did I just forget to set something in the native ARM build?

      posted in Bug Reports
      GoodflowG
      Goodflow
    • ScriptModulationMatrix: Multiple Targets For One Component?

      I've been digging around the ModulationMatrixTutorial snippet, and am curious about a particular use case.

      Let's say we have a dual-synth setup, with a filter on each synth. A single UI slider should control the frequency of both filters, and (ideally) the slider's right-click menu should assign a modulator to both filters. We can't use a control callback for the slider, as it won't work with addModulatorTarget.

      What if we duplicate the addModulatorTarget, changing the Target but keeping the same component and ID (so it shows up as a single entity in the matrix view)?

      matrix.addModulatorTarget({
      	"Target": "OSC 1 Filter",
      	"Chain": matrix.Frequency,
      	"ID": "OSC 1 Frequency",
      	"Component": "Knob5",
      	"Slots": [2, 2, 1]
      });
      
      matrix.addModulatorTarget({
      	"Target": "OSC 2 Filter",
      	"Chain": matrix.Frequency,
      	"ID": "OSC 1 Frequency",
      	"Component": "Knob5",
      	"Slots": [2, 2, 1]
      });
      

      Chaos ensues. The slider affects Filter 2 only. Modulation activates for Filter 1 only. getModValue is lost in the slider's LAF. The mod matrix shows 2 instances of the same ID. The right-click menu doesn't reflect the currently active modulators.

      Jan-12-2025 20-17-58.gif

      I'm exploring workarounds in Broadcasters or Macros, but so far am unable to produce a solution that retains the UE of the ModMatrix system + allows (sample-accurate) modulation of multiple targets from a single component. Am I missing something obvious here?

      posted in General Questions
      GoodflowG
      Goodflow
    • RE: EQ Display bug - Draggable Filter Panel....

      Changing HISE/hi_core/hi_modules/effects/fx/CurveEq.h, line 318:

      sendOtherChangeMessage(dispatch::library::ProcessorChangeEvent::Preset);
      

      to

      sendOtherChangeMessage(dispatch::library::ProcessorChangeEvent::Custom);
      

      Seems to resolve the issue. Not sure if it's a typo or if there's a missing definition for the Preset event, but I haven't found any new problems since making the change.

      posted in Bug Reports
      GoodflowG
      Goodflow
    • RE: Can someone explain front-end macros to me?

      @Lindon said in Can someone explain front-end macros to me?:

      @Goodflow yeah that works - but of course it limits us to "just" the 8 Macro slots....

      The hise_num_macros preprocessor definition solves that.

      There’s been improvement but it still gets crashy in large projects. A home brewed alternative is way out of my depth though so all I can do is hope it gets more love.

      @d-healey said in Can someone explain front-end macros to me?:

      I think this is a very specific and narrow use of the macro system - I wasn't even aware of macro modulators, I'm not sure what I'd use them for.

      I'm more interested in something similar to Kontakt's automation system, where the user can assign a macro/automation slot to a control and then control it through parameter automation in their DAW - linking it to their own LFO/Envelopes/Modulators/etc. if they wish. Does the macro system support that?

      I think you can put constant modulators in the Macro Slots, assign those constant values to be controlled by corresponding user knobs (visible or not), named “Macro 1,2,3,etc”, and make those user knobs ispluginparameter=true. Then your external modulator can control the values feeding the constant modulators.

      posted in General Questions
      GoodflowG
      Goodflow
    • RE: Can someone explain front-end macros to me?

      @Lindon said in Can someone explain front-end macros to me?:

      can I LAF the frontendMacroPanel these days?

      Yep, drawTableHeaderBackground / drawTableCell / drawTableHeaderColumn / drawTableRowBackground

      Can I LAF the little green numbers that get displayed on attached knobs?

      drawNumberTag

      If I create a Macro Modulation Source in a sub container then its modulators never get referenced when assigned, unless there's a way to do this

      I think the issue in your snippet is that the 2nd LFO was added to Macro Slot #1, which is already populated with LFO 1 in the first Source container. Try slot #4 on the sub-container:

      HiseSnippet 2153.3oc6a07aajaEeFIyr1JdSxhlhrsmDB5Am1.COxZkiwhBONRVNBwNV0RNYS2V3POCkDgmgb5LTNQcaAJP6gda+SnGZOzS8VO2z1qM.AnG5k8PJZKPaOsW1yojCmQhik+PwQ9CkJAXCwG+5Ge78d7w2SrpO0BEDP80zyTuiGRSeZPsNDVqhsfXhVkRZ52.3Bs7oAqSsa6.YXRy6Sn6Dnc2Ndvf.jsltd5UEMVepIzB+7kKcWnCjXg5QRS6gTrEZMrKl0iZUy6icbJCsQ0wtJsNuYEKJoH0g1lCrzf4z7fV6Bahd.TzrT.s6ACZoo+sAy8QEPnElugsMb94sKTnvh2Yw7KZ.aLWd3NFEVLet7Kj6NKzPS+RqXiYT+ZLHCEnoOwco1cp0h9ThbBdHN.uiCRTvPqFelkjKScrEKQAUshsvN1Ui4XAZ7AsZO9WZI+65f0w13tz6wGuVXEY60CUFndpjvKcB3YnBu4Tf2A.IcEHMgDRe.nlkO1i0qFAdtLnBgg7a.46SpPQ1VsTSqCJR4sfvl0EtKprOuP2dLSg4l61Y4+6VeblLqPZhInYCPrvFgH1qGJwLymdysBP9YWq7FF271Yu4Jj8PNTOj36aBI1TWw2p0dGQKxcye3s93FsIVLLkjkRd.kg1fLysx7YYlJyOMS18WUiFGXcBH6ScbP9GX0B4L+ipiyPZ6tCx+1Y2C5zF0sgbdYxMHvguAoJ+XI4fJMjRpPvrM7PjCSpRKhsy2LSGgJ92XgakWIZqrlC1F4qg46XuGPnOZnEB3HcnW86+FO2Taf6btDc9Ie9e5eszf244SzYy+3+9kKosUkRPFTHMFsV3qOOjOCKXc5kP6wsEHkMmBTBErKi5w4vEotdThXkqeYVjxjbRK6PCs7TGyYwho9p.URFZOS0TSmdEdr4Sw1rVcI7jmY1Bga1pmQnm6aFgwX82DBwUgDji1NMiMFM0khmELC41i5qe8q+YIolSkLC8LV+MVSYEO4wtAqrF6X1aMZ9DSWUqu4Mcg8Z5u7uZZiZ.a6vdnxtDuW+JdurscPUoAXgJPuZ9bSUbMwwJ6bH3RC+FMNyeXiyq7L052lF2Zp77njlXEGDEePEeMoZWSX6hvWqcTOnZnY2cPg3G.phYVsNXLl5.vHWI5z.iQmV89fUZz.Yw5AvI.k+jSmilTm9IkS+M.gJY83F03ZH7yiD.4aJqKauJyJq03Hb83kCpqGdCrqG5oOJOGLNgdNL8okmCSLXaOGM7N6T3NSg6Qp7kdfT9F538jqHdlx5lJRaz3LzlZBeYulDb..2WwHYO92x1EpC.vJ6i9QsQDKEhWyTXBnRhS+dDbOTCpuajCJc69Znl7IRkRcD+3M90krTIVykRYsB8LQ0vx0MWiR8Vg.4Kca01WsELP3NK28YUAOwvVmtNLf6wcQGp0tpUVoIg5ijtHqRuX6.F0MdADdSoZLjWnyX5eJnP9Y4eZ7cD+ewh7+M+FCmxuImQYbz64oFPAxuV31e28YgfvEbqORD2UHbD.wwJ84NuT5upDbuGX46Up1lQ1vC+d13KSlTuecJg50hRvVppEahX93lMQ9pH9.WFKyXPqcK11euDdPTBYA6zGUYiU8cPRYMDGZpM7d7ci9FttD9veqYMtdaB+Xd7y2D4f3FFTG8UrDdJgNgr8iQuCLfxDuOPtHyFZd6hs76UhwpbG4hMXmFDJVLJvWuJHRfcjfwdEPjtzn.qM1j67mWlbujDbSBjQnK5jKYg2Hus1J.UGFN+JFhCGlPxReR3NnLzLg8lxhyOhHJ7QiH3rvHBNWXDAm247BmaRaKhr55PtWSOi6YvCZ6Ji7BGiDBxQD9a8ThqaHKOmnb3cVPD6vBul+IpRCQY8nJMhq7.hETeIdZ5v7OvKg7MFFYaZXExmSZxh.W3RVz33p9tVbUuZBcoU8os8Bm8qKIfBvhDxER+LVmRF4ixqmHbEPeeLxuBwFoD7+u7Ozc+suZ1hfC3WwKDJK6RaSXIb4PVaIDqMIAzipnlmOBlH3KBzWCwgpc3PFjPF9TIvuSN1JvaoGpSEiwZXWOGTbf.hLCTRlsqtTG9QGPMld8cK8uk4Z7Crf9mdWTWe.2t9P0Kpmcz03c5+uw38wEc.gUs8G0vTWL1A4G3DZa8bDduMoTL23TJNNkhiSo3HSJEGJJLmAYAYTIzgmK3L+Yv99acZkychRq7jC6zJqoMNsxiSq76XoUdbfsGGX62kCr8Mj7hKCDVNCi+VHa3qChsjlcUDA42e9zN0u.xFVLNDp6CIAdz.jQhSHPt35TBJHA080ibGXOxk7G4f39pF8SJQqDrhxbVgg5gmwDyoRrJjjXv3kSLRqiS7i.WdjnL1daDXwYLB9bhSHa6Dfdj3mGtx39JEx4TIeOnu89OS9z4dbWZbDBGGpoy0cQtpzE6.FdC.WkNW1vsxrmO6kmEmkLdNF74H7QJtsk7UKElnkPJ78OR3iF7xftuEsjOUJq+6WsjK2H51VVwClttU7yHydaOnOe.XhzCLs34pn9t4TpCnmVbDbLgskyZ7aaIwKzQSS8E5v0ebnOUT7238cy7290uboV3lguXoW7WDe9mKErK5opMme2MOQ4O65+tU+6+3ewRXxdHelTpWDDVJwoi367EQXEbzs.X9ElkTuv8uSw6tZS9crd3JkgyskQ014cr1sxph+lc4RU+D726QeeisJy+9d76fookjIlAzMuJ6k34D87sM2GObe8r6umniqemLdepCk2mav38Rd8Wzk2+m+pY9Ah2A2EIde7KkLo7K8e73gCOT+P4gFZG8KLKhGFWaLOLt5Xd3K9I+mE94tu3bjGlBrO4Og7vQJ2dQoGB27VtMi5JOni6ta0UjweQuave3Vf9evuDSYK
      
      posted in General Questions
      GoodflowG
      Goodflow
    • RE: Can someone explain front-end macros to me?

      The way I understand it, the macro knobs aren't for direct use as knobs so much as vessels for modulation from a Macro Modulator Source container . You can populate each "source" with any modulator, then the end-user can assign any controls you allow (enableMidiLearn property) to any of those modulation sources.

      You could add an LFO, envelope, and random modulator to a Macro Modulator Source container, and set up the macros as Engine.setFrontendMacros(["LFO", "Envelope", "Random"]) (the macro names are just being established for the end user here) Include a FrontendMacroPanel tile, and the user can right-click controls to assign modulators, edit ranges in the tile, etc just like CC.

      HiseSnippet 1438.3oc4Y0raaaDDdokWGakDmDz.zhdRvmbPMBrrScSQNDlHKkHD6XAKmzFDT3tlbj3BStKK4JaqFTfdnG5s9ZzS8YHm549Hj9Fzy8h6tbIEWF+SjBbbka4ABtyr+7MyNyryNrUD2Ahi4QHqY1peHfrtBtcelvqlGgxPMWEYMKdcRr.hpnI8v9gj3XvEYYU5QJBVyLIJ44ut+CI9DlCjSBgdNm5.qQCnhbpsreB02uAwE1hFXz66X2zgypw848j3oDdQTHwYWRW3oDU2l.irlptKUviZKHBHV1mGxc621iuOS2+mSio63CpFUQskSjlLplG02sUlrFiPV3V4RdIsjeS75TW5.54ZfqmvnR9HL0AVSbZPp5H.IKCHMoFR2.21IhFJx4nvykwMYxMjNDop1DJ59hr9abMtrCLwsCH6BMhjMFLf4WYwEWnh70stW4x0YcoL31wfHoS.ycchSDOd9WN2ZM1XtEpLWc1dfOODTeuIg4xCl6at085zi4HnbVEN6obArAa9aU9Ukmo7OTtxaypSmikmBfQbeeH5XYqrKhNsANOqWvNPzBU1i32CFzQohq3twTC2tgiVeYzQNqIiJ1HDRa2f66pzxpuO5dGJUgK2EKkhP4Whj8vYS2Ca6ScgHDUNIWB+DFempnDvmZ++lMge+9ngdvKUXv5mgdvKeLC9YMWkHHJyvTYQJegPjfpTiVqB6I8i0FkyfWEh2UvCkZ6Z7fPNSI4VWVj5EoWzF9bhfx5tEUptUK80vljphNvb46m23E16ScEdRWTKOKDxCnc8DpVKXMPOm4vVvrsEgA9nc5lE.Yloxlcp.Bxod3gG9iEotjIYAbf3ncFYHoS9N2XMjs914xl82ZOJyyRmz7fniz7r7IMOuIzFczfNxvcb2d9DQwXfpf8oLjthEB7nhtvhoh9lGFLBAFW7TCLNrP7F3VTgi2wiwINFLJM1+PfwziStJtdmNfiHGfSha70uumcL7K+z5k+iwINE4Zi1RKZ4AFJf7oZdUxYVQys5ob79eLrGuGNzGuaU5r5ryq7uvw4mMVsWzcrJ8+FGqSSEMSpGU0ywsuBILdcM3vXYhao1UxupL.pCAvZDAeWOf4XPbZakaby7n.1+h8WQ1C5viBRSFXvvWC5JWHSJaAxinj2lvwzxnc.mK7RxBvL3vMsWiyCqyHRQ20bRZ4QhUoQJSRsvzHm1s35alTym6rqIylcY7HPmZpI8Z8hE7fLAH4FEsEPXRhOVuDuxcts7oymod+k0juVdiyl1nytKILwPZP9QIa+C1mUFBito4jCmo46H23QBwCLBu.f3Lm9kNGv46L.v0z.8R3G73UauYZb6juqjcIthw.Vmy3gdbFsf64lfHh1sKDYh9iUjdfPHucdsdQ6UHifUAGR+iPU2YybAzTVCjPyriOVJwGY5FP3S9U61Re3B4k7hWuI3CxfDlydcGUlOv6Yb2Qn1Aml8wUwZgrRRntwaa4YyvpdGY7FrWAmXVbQPudMbpA6EBE6r3TeoKBp1rvuKOND9cJMPmFqqRV5IZ5FiTVXOKF1hjfEifxISSBYctJpRgdVENaTU22YL7FJYX6yGiw1JiwX6KFiw1cOOw1l7dpJTtNQlEzAxS5eZu.ckQj3hw.+XUgHmPcUBc6EUsStOBvbSZbn7IkYUUaqTlUyXdtrFAJU21N5BBqhUMcBEobyR9WJ56IZVEX6e9tqXGPcoa63jMMVVNY0o2c6PRjbnBUlgWVUaQy+BgAOMZFPXa85kUXz.ZgKjEPNvbezmuuIWOZWOS1w6B6Wns7tap1u5l+1i9yu+mtOUlmajPamDADWNyuu5aTQYuLNKg32pL3ud6yFEvDmnBXowBEvfCo9vH9kNQwe4wBwWd34Q98Gukf+elQnpz4C5I3A551gPq2ptNEBqA0ZQpf9Gnn62aC
      
      posted in General Questions
      GoodflowG
      Goodflow
    • RE: Slot FX Broken?

      Sorry to dig this one up. The Effect Slot issue was resolved quietly months ago, and I incorrectly assumed the fix carried over to HardcodedMasterFX.

      hardcodedfx.gif

      HiseSnippet 2420.3oc4Y0sbaabEFT1HMDwo0YlzK5cq4EYHiooIonjrrqmJJRPKNg+MjT1ViphmU.KIVIP.V.PKooQuQ8gnOR8Mn8b1Ef.fhR9mIIWTCMiD1cOmc+N+tGbz.OWCluuqmRFswWMmoj4ApitxIvpgEk6nztoRl+hpE0yzv0jYRlbIw21MvmDv7CT1+p4TeeloRlL26UH4YxdeEwy+4usO0l5XvhmRQ40tbCVG9LdP7rC16m311snlrw7YInt1dsMbcZ3Z6t.f18TKqLmZbNcJqGEIaCUkCn9VJY9Q0xasMisylSLMoato41au8tOa2Z6VgNobM5oU1d2ZUqsS0msyDkLektIOv0aT.EPuRl6uuq4UirbuvQd.ul6yO0lgCpnLBNY4zsbsMQQDmUogE21bPjNyWA1kAwZv6I0feuZWtIe47wZxGJVfDyQREXlMRCu6kBdURBuxIf2ZfTlDP59RH8cpiL73yChWAwy2n11If4MgB1ojPQRqxFa7P0Ft.ENAklQOm0xCFrji7aWtbQxVkKW3EZZO8oY6UuqNoeKx3CzIsdKYbeR6dizGNljWu6fwGQdIomKrPgrOYcOZf01Of7dpGx7KIGqkSe17fqxUTKWiEdumo+OvWGwmM2lMj8dl2owiQeObTSlMUvgvIi4ImapG3cI1GKWuE93aCrn9rVuUrCzfEdTPuKH9JG5LtgflQVz4HMZmHkO.Vi5ze7HxP8V5C060PO6sIAiDgHnPHBkJMkEfS05s4yoOYByHPPQkbEJdmDT8CQvleHBp8gHXKjfPAbP8d5cP6Vy1iFzo9QQVxF86bX2d2zrkEdHhekx3Mf5vrAgOxyAN3Ftyl65.CxmKb8bnSCdnidS8A3gz5vdMF2teu04cnwcr4NLxjENFAbWGh+Ez444lWVoHA9c0BZ+Ssr1tFTaH+TE3nE5+iQB.Qa4JUStRUbEsr.8kD6FrbAwLg.rjGaN3UEjGl85kN.RUzf5s6MlLr+gia2KkSfVDy9rfAH2CcWD.HOeDxyOUf0okl.I8paamOvh6iZn74NcpLYWtBHNlhaQKWTiYxlPWXGjqHoRMbITKSAQIh0Nn3su6BGS+7kkx.RBllFnhd7lmPdpTtKYyblFXsjjIWJbRQMApJb8H48IbGIwEzxBHMjNfLwYAQhdfYT5.gpFIAbSffIWhTz1LdZHVhAKvMK4u3T+.OtyTvpUh6Xxtr+j74dWtBjGSDFwPnsj0SCyFI2WteT1I4lGRj6omQdI7Nhyr4lbYtmuVTVLbYDNqkDDyRhBIA+ibhHb.SF8JL+0gf.Tfkluv2JOfDDXWGoYo1ysPaT4RaIz1nittNFaM9f5iEAVMGV+UuRuYXNk18Zp+VRaL4B71PX9N0GMVxHjHcLodm2T+nQj2ztSGx9GQdc6Qs2uit7zL.ie.0yKxXFZKOCAvKHmQ9qoM+jyd7iAqaV9DjlGE5IYRCnkf.CbkrQ6nT5NS5UkdxzL8BDpQROOFCmKwv42.CmKv.Z43.IQa8wmKbFIgnCzuGyOozRmge4WHgSIcsdII7RBAniU56faBy1mkb5JkJGZ1DAWxnsDAfvEFyRFBlMDDoDTTcwKD4yIiiGhwdLygfmD0YpMK+wUKRpBd1hPvejvKBQgUOg7DRshx4f2NoHYSwojBMx+3W5BdfUcD2wyXA3qnzwpPDildzKpaym5vLGytLHReIc0KRNtbwUvfbL7mbFf2uG3WK1pqkRanF6SPzRqadbhw.zldzuqBdJrH8PRoB9nv5sqftV65BqbOP29GNRmzndmN6WuwOs5MWIuLnq6BeVCps8oPQrw2F.kw3DHtQ.CarRjT+.FepkLCahj4VqKSN5iJ1nRVtPYQje3GHORN1i4CWbfdqwxpjlWR5RgZBlX655Ex7UvdiGSgU1zvMAyD0oe8lIuqF1X7Vp2leksuHQxJFQglmU2RCatw4xvY4DnAHJavpTIBsSa69.nOapsIbuStGB6MrKwDbTHaBZLr.e8vqZtNMxmg1wCmi5XteS1D3tcyUxDhqciTFOoRn3kDDtymKtf6tEFQ0Io1vhjarKBJWUI8jJuX8hTji7HVfrJsKCV.UHMi4rH6cW2EFuFQedHeM8pD0dglaYUuYy8DxJ+.UTmMmqyScmLQ7pGaF3p.g01hgqmd7MtiOyKHZpDWugGGVsRHLjdOHDj2OguJE23Z57w77ycmuXdWPVaiDCkUIY5LWtS9b+cGQxerhuzBK7gKRkVBEVjdY8eQyspBg.FgUTfPT84CY8LrjRTnfX.eeBYMZkmmZsD5Fbgrm5wnm+hkjDptEKIMQIJqZYkvmrlRltQEWYuaxAoZI8OJ5PjLtBlRX2E35lUcBOfCqMi5kes6f7F+muBn9PL.eH2GEKfE9.n9KxazIhzcXoZ0aL9v5cvLePc+8i9rHrvMfgvxyWcyAMRn1I1Q71+5Bsk9GtN8bCX8cxK7LztVir5RSlr10P+ROWaal2ZWF6th2cwXdmEyNEyc+dp8B1RBUxb+zskP81aKQxtlXH+5uDD55z1gGzeNy415khR3mLBucX6lPhLrWFgyAzMG704HDxzj8dtAS1YirpMY9mG3NWPa32Ypj4AAhU+1n9dfZcEtIRenMP4xkca5eau2UwsdZ7dWvMCrhm3m2yRbcbL8d6g4.h5N0CTqUc2Z6t8NU2cKEvy18hnq5Av9mTguyiDOQ5zOJY9Wp2HJWSF3pEGqncSZRG+qIbx0B6ThVx1jnE2iDMQCRzB6NhVXqQzj8EQKroHZK6HhVT6PzB6EhRbMxRo9Ykqt41aWsrRzWuJmdmmUcypU2sbB5qFsRkcKW9YkUTtYOpdnZWWyE13ImrkYHvCW.bXS0mJrWTN97fqR13we05i1GKD+N0AX960iwMVCFA25eKvXX2G+VUYhmX.devk+2nVMpdSczeV8fksKtK0GbzfrkBb7GUS18qTHpGK3BWuyEM1My89nQWk6V4Ha+xTn.KONDsq1awrQfunACzMNPJ.LcVlMvDOxwkwwn8YDywTL3+BOgKVAGmIbwJQKp7Yq.p9ktBXyuzU.09RWAr0+mn.983LlQM7bemgrXML06WKlAjaGw+Qr+fZmV8IUTDkuEWox61aF2j+NCizazJrU8yisM+7Xq1mJappuVuymJSekZu9i0WgK34t45qUGVuWy9c+TOsuQsa+lj2bf9M.5ZNR7+BX8EAtyjkKnnzcftnd2LYzcnfesHdP4+UVDtQA
      
      posted in Bug Reports
      GoodflowG
      Goodflow
    • RE: applyMask behaves differently at different UI scales

      @aaronventure I may be poking around the wrong part of the source code, then. The scaling op for that is in ScriptedDrawingActions.cpp, can't make sense of it though.

      After a few tweaks to the snippet there's some progress:

      • "bool drawOnParent" should be false in the beginLayer call

      • the Path.addWhateverShape call should be done before beginLayer, then use fillPath inside the Layer before applyMask

      This new snippet works on 50% scale and above on OSX , 75% and above on Windows.

      HiseSnippet 1244.3ocsV0raaaDDdorYRjbZaBPe.H7IY.AUJY2jzZzFYqebMp9CVNtE0vHcE4Josd4tDjKsqhgA5gdtuQ8deM5aPeCZmkKoDorcpc.BunclYmY9lQyO6v.gCILTDfLJd7beBx3olilykyZNCS4nCagLdjojDJQ6O2GGFRbQFFqcfRlQw0Qwe+yq2GyvbGxRVHzIBpCoK0iJWxcXiumxXcvtjiodYt8NMNzQvaJXhH.GqYZi7wNmimR5iUWqfI.h1tToHXjDCfAYr99B24ilItjqu+IzP5XFQQTCMBLjlcGAyUgXEWTyYTl6vz3MDAVY3xneMcz+4l8ntzE7WlEdVr.qkZjMeXTHO7VKG7pkEd1Yf2s.IiLPZcMjdt4Hm.puboDEd1v7PtjDLACo8rPQeWTg+nfYSAbCtrpG9bRm.fXgFkegscEq511asaIHyGJsX3IVeiUa9TJmT0If.wwALwXLSautBw46wc6PHrxfNvsqFPlRCA60Ih6HoBd4McCvWdjPhClOhQcIAaVwZRpvoUrDi+ksrtpTohWfCrv0A2cJvpJFb1o0O6K1oxBpsyQAxpmSV8y1ErRohSqNAJm1iwJqKcBAL4Bnqn1E90.WjlCzgzPrblB+E8qUE65djHhC0GGQbjX9TFoLtdEqZ1ZSLs5XHB4cwyIAkmfYgDE+oUCIRs6V30oADBWKTAnXm3WKNfiwrVD12mMuGN77XYJOkZTkTB2U6oTmeS2b4LpLACpL8B2nL0NJyb8V6llusD79BIY.u7VktBL30krVUzjI2pLUBKPvXJnbKhUMtAuOEKyi7FSBpXcAlEQVbQnZNeKh4c2hjsC1Q++WlKJ3GxoxA9D9c0WiR9SW0NkfJ3px3loOMoYRWghntp4aGqluEi2rSvPu4vVXIN0JfAAm3SBjTE9MZQt.lvoaQKZ1hDdtT3CCqZJ77Ebk6Md7+mO+0k9i1X9RhusAzY4Oh9tT.03ue2u+5KotxYPly3u.NyHzoyjJpeBEGxK75FxjIYZu1gIvRJe5wTH6p78mYlkUsLfnwOmAD+FtQRXqiwmY1LJTJ7FQjJcCQimlNw9ol6T+kup1WYa+JaDTj5kcT9R55ZFwI0B+og4Ukrr1rU.8BXTwWq6FpDyJNyli0fHoejLGq8ilLgDnxQ4XOB64yHGAEY4XqGls+vd4urDZO8fnomvcEy3fYjNXGnhE3KChzri2psmGL2P1KhIo9L5JfuIifCTqJZ17VvUWgCV0urR7NN5lH3MgDUQ9AcuKb0EF+BxNEXaYYWsdkzCeY5osSOrS5gEhdQ5gWt3PhrZUsSOTeAqjC0qZC+dVoqQI0hoENQMRqGSKg62.cyUYvRTgaDCKyuYU8bhDAPtI25L0JKdHUNO6yMVcc652u0su+WCbeg6yMGRkNytc7V3VvKL.4iMdSd7xmX1F5IbjKA65lc9wONuTAAKOUyA5gkATXDhY+HuQPStCA7NmSXpY7FETilzz1JZU1XDrqKl3eguDg0TzFIBqkJD4gcBDu0QOCW87nmDyAvDO9kgO1ramAV0t4raOnA7sNN4MzJpU+CSss+vTamGpZllmzt6CUoGY1evwsenZ8Dyi1qeqA8dn5sgYuAsr9guq88AnpYh6EAKPzMMHTugsiWEXXzligZt35Sz+AH5Kxc.
      
      posted in Bug Reports
      GoodflowG
      Goodflow
    • RE: applyMask behaves differently at different UI scales

      This issue is still present on the latest develop build. I'm getting inconsistent results when testing across platforms.

      OSX - scaling bug in plugin preview, but compiled plugin has no issues

      WIN - scaling bug in plugin preview and compiled plugin

      Added a UI zoom tile to the prior snippet for convenience:

      HiseSnippet 1196.3ocsVstaaaCElxILq1ccqEXO.B4WJ.FdVtYa.aXnIwWxBpcrQbZ1.BB5nkns4BEofDUxbCBv9wvds1yxdC1aP2ghRwRINaMAq5GRjma76bz4BGEI8nwwxHjU0iWDRQVeJd7BgZd64Dl.cPGj0yvwdDNSLKjnli1aQHINl5irrVaesHVUWGk972uZOBmH7nKIgPmHYdz9r.lZI0Q67ZFm2i3SOlETP5s24.OonsjKS.3rFtIJj3cNYF8PhVrJXj0Fc8YJYzXEQQiQVqumzew34xKEF4OgEylvo5MtnwfgLj6I49ZDqohZOmw8Gk61wHvJiVFDVyDD9B7.lO6F5KCFOOkg8RMJFOrpTFdqUBdtEgWyBvaEPxp.jV2.oWfG6EwBUK4nwySwGHTznoDHrWDJFYQU9yJ31RPBgpQ.4bZuHXyMZ370MaV2Fds02UCh7wJaNYp82a2ULiInM7hnferOWNgvM1quTd9tB+dTJ2AzAjtQDcFKFrWuDgmhIENa5GQt7HohDsXLm4Si1rt8zblypaKm7KaYeUsZUm0HlpL+scLehAq4C1EXMExPNh5ob.waP.fnIWq5EjH6PW.h4NkAiifLSGiDyZLAPjnOYAMxQEkP0jCcaP78ORlHf7.sYIhYbpyo4F+zlmU+l0tEV25rur0xcuD1cVca2lFLRBC4KFPhO2IzM0uRkptc1opEgJ7MHIGb20kubNSQMFTG4RcEs8djfaa8Ies9k4OZb5+fBQLHP7ZgbhylGSiUaVuYcs2j+CxVJNTpnCENaU6J.wWWy91rlNck7zlORx4ZecEr0U5Q+aJ5HRBlPipaeAgCgubAgz+x0T36ulpXIumwaKHnTbffoFFRE2Wi.TVHRW+kgJPTUZ02mkU8YRoQLnHaCrNBhRwawVdn2bPGhhjaEvfvgDRiTLM9s5Pu.ZIZpoqh6PiOWICgtaskAgRg93sv+Wm4uBxXoOpE4KfRvvwr2kCjc9q286uBUvjUUY80LlrGWRTPK8iYPnSa3OGWjjq9Dx7neityha17yzcx7IiC7bb6jXkLXLUo0MFMYVd+6pa.x+dsRP9cPIpnxTaUjbZnqxeXgupls8lchXW.cP9V6oDdLsdJoz3WIRCSTgIpRj1KY5TZjNhTh7XRPHmdDjJUhroG2diFTVXETWE.t0.o+sLCLPj1i3A4k.cc8dJ4zgc6F.sYTCR3JVHmcKv2lSIQ5IHsauBb0W5QzUE2xemjbWD7lXpNUd+92Gt5CckAdmBjssa13qpms3axV41nY9hV2PJaQqFMgumU6ZXV8clCAS.k9Ibhp7XQ8cAxX.dPoYQ54MhXlZQw6J7+1rxOTH9B7Hlxa9pwXkUfQn.9iAFytgwyvcgLTO0R.tNt2O8w45DHXxmt7b.QEwz8NNLIXLT34QgSWHnbceUqJ5Nfl8MyaqLFFfkt48vSFSW8dqLlt4LQADuH4a8L8M02g4IoT.LIRu91mf62ans6c6WF.kCu0yqrgtkZsdbp8xGmZa+PUCiOoa+GpRafOb3wcenZ8D7Q6dXmgCdn58T7fgcr+wen6GBP0cn1MA5qaJTPnAi5l1X1xpqf.4bo4mn+APXBroF
      

      I keep coming back to this commented-out line 191 in PostGraphicsRenderer.cpp:

      if (scale)
      	{
      		other = path;
      		Rectangle<float> area(0.0f, 0.0f, bd.width, bd.height);
      		PathFactory::scalePath(other, area);
      		pathToUse = &other;
      	}
      	else if (scaleFactor != 1.0f)
      	{
      		other = path;
      		//other.applyTransform(AffineTransform::scale(scaleFactor));
      		pathToUse = &other;
      	}
      

      @Christoph-Hart should there be something in this spot to handle the non-1.0f scaling for applyMask? I've tried uncommenting the line, adding variations on the two lines from "if(scale)" to the "else if" section, and removing both conditionals/leaving the contents of "if(scale)", but no luck so far.

      posted in Bug Reports
      GoodflowG
      Goodflow
    • RE: MIDI Files Load in HISE, but not in a Compiled Plugin

      @clevername27 Sorry I missed that bit, sounds like it could be a missing file pool issue in that case. Have you tried Export > Export Pooled Files To Binary Resource before compiling?

      posted in Scripting
      GoodflowG
      Goodflow
    • RE: MIDI Files Load in HISE, but not in a Compiled Plugin

      @clevername27 said in Where are MIDI Files Stored in Compiled Plugins?:

      midiPlayer.setFile("{PROJECT_FOLDER}" + [MIDI File Name] + ".mid", true, true);

      Have you checked the result of this against the respective file/value from midiPlayer.getMidiFileList()? I went through something similar recently and it was from a misplaced text.replace on the [MIDI File Name] variable.

      posted in Scripting
      GoodflowG
      Goodflow
    • RE: Noise Injection Distortion in HISE

      @FatMitchell Yeah scriptnode can be daunting. I wish there was a single, comprehensive resource I could point to; the best I've found has been a combination of the docs and searching the forum internally + via google with the site:forum.hise.audio operator. The snippet browser's been great for learning structure.

      We can actually replicate this in HISE's module browser faster than scriptnode, so let's start there.

      Roar's waveform makes it look like some kind of modulated wavetable distortion. But running a sine wave through sounds like what Ableton describes: the signal + some white noise driven into a basic saturator. Notice the way the curve goes from smooth to almost a square shape?
      noiseinjection.gif

      That's the same waveshaping you get from ShapeFX's saturation mode. You can see the curve change in the SNEX version:
      snexshaper.gif

      In this snippet, I've got a container with two noise generators panned in either direction (waveform generator should work too) and an instrument. The container has a ShapeFX on saturation mode, and the noise generators have filters linked to macro knobs. The single UI slider controls the distortion amount + the noise volume. The limiter at the end is just to wrangle the volume.

      HiseSnippet 1978.3oc6a8zababEen1k0UTNFwtFAo.EEDB4vpBWGsQ1NtHHPzRqVKgHYuVqx+PQgyHtyt6DycFVxgxdcfA7gdn8RABPQuTTf9In.sW5w5BzO.snWCPa9BT3a8XyaFRtbH0p0RJRNYsoNHfYdyaleu+Nu4IwVAbWRXHO.YL6NC8IHiyZ1dHSze09XJCsQCjwELuEmFRraPCE7.AkyPqLzGGFR5fLLpbS45LlsJR8ySWdErGl4RxlBg9.N0krIc.UjMaKm2i540D2grCcf1puhyFtb1pbOdDfoJlKh7wt2C2ibKrbYyXhL9Nq0gBHos.KHgHipqv6Lrce98Ywq+Cngzc8HxA0QsgMJd5lbuNRDKmEsZepWmVoxdHBYX1JSSTIVSbQysncnilOSi7pJB1YbnqOLlIO7pjCd00g2hZvaLPxPCRUigz4Ma6FP8EYTj3YNyMXBRPWLn10gR7ZQybtJlqxgUvDWd.9djlAvfQbT6ZKt3krgesv6XYAp9Pg8d3.618w9jleTc620V4Ob4dDwZc6RbE0lWQyFHNeddT9IR+gPfKqep09XbSRWgsbAyuvk1O0so85mR15mA6rEk4QYD6tQLWoemMm8dL9t0kBS.2qlKefOmAh0kfi2Khrf0mYMq0a9lgDgsnOwd.9A1c10tKOPMLQjr6AmfceR.wxi6h8jKqQ.cOB.5qsHbrG3FDGGvCcAOWLXhCU6xrYaS7BdW60X8.bKkMozzD6BKtIOnAwktKwKr1O9sthTykpiuLbd2PHBn6FIH0FMqj2DI6GkhQIaR3TiYCBQlBGDcV9sgEyeFTROc.HYnp1nsWsWKrv67HKqGAGRpCCv3pop4Zyqvv7KHOoDivpXOucgHzZ4sM.N0rZ2hKH2lUK197HK6hj51crzR1KORvXIKSbDLIFqwhFrKIHm2ArPHZJeHp4AGhpmAwMVknsPNaCFUbaeB6fxqfRzixv4DTAKUnBlOWRvbaOZGR.hBwrmwTogQJ.mjT7+7vK9eWF89az.KvoaCrivo3SfzwRAvnAYOHEabNhYMaPBumf6qVahoCj4m4g9fQYgeL1Y3nANepCZ+Yhfbf7NQpv.8DiROqDBEunPlwgEREC0usnX1xpGtrkSNY9gEtm2rEU31e73clwfWP8eZi2j6ddEy3rhYfspYyOZhWzbhCku6ATPvYU2l.iHA0OIJEv+PWJfQkSiq9Oyo0U+OWclKi89FL163Wj2LZm+4SSfmTBPRwciJ2JGDVMJXu3BhWghCkUVoqqjyopmRex0gIZAafdH1l76mape4+xArIZQgutys2iDDhG3C0h0S2+QKb2Yok1zYaRmn7Q62HRv6UHofJ3eClejPe13afzXcK5CxkJQI4ModPUqg4bJpbnsD0mnk.sMOR.R3VXnBJ3rMuUzf1PlGWB3GvXPgSvbFyHuROd7hxwRHzlv5nF7+geRHVWN1HgX8Th5NaWH1XaY1XHCOf5FlXsSGVL0pfrFCCRRGcoWN8N8CHg8Am7hDfZAgByxawDjsIdDbnlt9icjUIDnf0XNhLhi8fxHusLLV+zxHUDIug1QNF7nbQH6GLINOjwgjZOIgVtyx4Ke3uIkohGzSBzPwVv6hh70ErDt1OgoVOtyE6wAITfqtU2oqb4dM0X6ODCu.5lD3RcYh5C7h8GO768ON4uX+1tB332I.yB84g4131jAzcfZXyE0+9gvqXI+7BtbRuQbvXI8zkaBB4X4oMVDEntB5FC3QLwjr0UOb15mQAGUKK33Dr0Hylhw1T3NJHK4dDO3oQI8tpAoKNxSjNad+5s3LteeNi5paz2l.wi85QBzw9XEnh40tny9xl8FP1LFAGj+R0ijtn9QtMQi0d85lwv0VFLZ+hQghUd47QZOmu3H4gfmItQvIuALtWWp5NORWU7z+5o4a.KSIO0kR9sJSI+hTJ4Whd6dk86xeAyVbugwNvwuVUAhYM2r0DyUp9QVdZDg4lp4d7Rewm6bGcydwmlemHrWll9S3e9+9usB0m6gCNTVgiuGd0CoqxqYNRnll7ukVloG798MSL51Rk8zCtOm4c91EXeVAwqeLBhc9e+t0lTP7OnPPLBc8+bYPbYPbYP7W6+rUphOuYJPmybz+9AGX.7u8Wc8mzf3gyEv8gzNh958mbLs+ZCnX1.QKo8qX3Zkm2gqSad9xWD.p7oI.qbIld.7qZ1B+sAGhmG8s3a9di7JI8FI9u+1Qq4HKW1bjxlin0bjkJaNRYyQdAu4HVxliLwjkmHcGAg9S+cmxGVU9vpxGVcZzcDKY2QN5QwG01i7Gt9uurGmkQwkQwmzsG4rlYe+Ek8Gor+Hk8Gor+HureFCvtA765F+c6HSwXolAreL0WiXU3kK49VcfWkrky.ZG5cccS2EiYbS+Nl5bWeb.vorlIi4je6MY+gg0nDCkQSb23CatrxLPCzKp5JNCvOP+efaO980o1GxqqSN7dDE8e3u9ubU7b+ykCED0+fqe1E+i27Ke3uXYpJWcrye.A2gy7FJe6JZBxg1a3lBDjhVw0KZEQW8HZEW+EDq35SsVwYM2RN1dohlRDpfo7.X7JGWFu5wkwqcbY7sOtLd8iKi+jiJiVILVewmMmxNFK+TQFDe4KBsUq0TesiFFi9F.Lpf9J.K3zuWB
      

      Since this technique relies on adding frequencies to the signal (via noise) before driving all of it into a saturator, the range and amplitude of those frequencies makes all the difference. Mess with the filters, and try tweaking the max values in the slider callback to see how much the shape of the sound changes.

      Faust can handle it, but I'm not aware of any demo or resource covering this kind of routing. It has noise generators, envelope followers and oscillators, but you'd need to script the signal chain and roll your own saturator (or just use a SNEX shaper after the Faust node). I'm still green when it comes to Faust and the topology, but I'd recommend checking out Faust projects on GitHub to see how similar effects are structured.

      posted in General Questions
      GoodflowG
      Goodflow
    • RE: Noise Injection Distortion in HISE

      @FatMitchell What's your path looking like so far? I got pretty close in Live with a white noise layer (eq'd/ bandpassed to taste) + a soft/hard clipper, with the noise volume & clipper shape mapped to one knob.

      You can do it in scriptnode with a noise osc layer + soft/hard clipper (the saturation snippet from the new browser should work for this).

      Ableton's manual mentions

      Noise Injection applies stereo noise followed by smooth distortion to the input signal.

      I think a container.multi with a noise osc for each channel, followed by the saturation should reproduce the stereo effect. If you stick with a noise sample just make sure to add a short delay to one of them.

      Re: Erosion, based on Ableton's description it sounds like a whole different beast, but probably doable in scriptnode.

      The Erosion effect degrades the input signal by modulating a short delay with filtered noise or a sine wave. This adds noisy artifacts or aliasing/downsampling-like distortions that sound very ”digital.”

      Idk how dependent this technique is on the delay algorithm, but scriptnode and faust have plenty of options, and they can all be modulated by an oscillator set to sine or noise.

      The Frequency control determines the color, or quality, of the distortion. If the Mode control is set to Noise, this works in conjunction with the Width control, which defines the noise bandwidth. Lower values lead to more selective distortion frequencies, while higher values affect the entire input signal. Width has no effect in Sine Mode.

      Add a bandpass filter and when the sine osc is active, disable the user's width/resonance control and set a static value.

      Noise and Sine use a single modulation generator. However, Wide Noise has independent noise generators for the left and right channels, which creates a subtle stereo enhancement.

      So two noise oscillators in a container.multi = Wide Noise mode.

      posted in General Questions
      GoodflowG
      Goodflow
    • RE: Slot FX Broken?

      @d-healey said in Slot FX Broken?:

      Appears to be related to the new dispatch system, I tried disabling the new system and reenabling the old one (by changing the flags) but then HISE won't compile - so that needs fixing too (or removing).

      Thanks, I hadn't found that flag yet. The bugs started with the Nov 10 commits (not sure which one, compiling gets spotty there), which makes sense given the dispatcher changes. The effect slot crash points to

      .../hi_tools/hi_dispatch/02_events/Source.h:118
      

      Unfortunately the swap bug didn't trigger any crashes or meaningful changes in debug

      posted in Bug Reports
      GoodflowG
      Goodflow
    • Slot FX Broken?

      The issues seem to have been on the develop branch since November/December.

      1. Loading an effect slot and setting an effect from the module browser popup = instant crash. This doesn't happen with hardcoded slots.

      effectslot.gif

      1. The "swap" function breaks parameter values of swapped effects, instead of restoring them. This snippet can be used to recreate the issue, but it also affects hardcoded fx.

      Just want to confirm it's not a rogue file or something on my end before submitting an issue on GitHub

      posted in Bug Reports
      GoodflowG
      Goodflow