@David-Healey Roger that 
Posts
-
RE: Wavetable creationposted in General Questions
@DanSound Not sure. Haven't tried compiling it yet. I think it's due to the calculations done after loading the file, so will probably be the same.
I'd like to test the caching more, to see if it can speed up the process.
-
onControl vs custom callbacks?posted in General Questions
What are the advantages of using the onControl callback vs using custom callbacks?
Is onControl legacy at this point?
https://docs.hise.dev/hise-modules/midi-processors/list/scriptprocessor.html#the-oncontrol-callback
-
RE: Best practice for stepped frequency parameters in SVF EQposted in General Questions
@the-red_1 You could use an array of the values and a stepped knob in the UI.
const EQ = Synth.getEffect("Script FX1"); const knb = Content.getComponent("knbEQFreq"); const freqSteps = [3000, 5000, 7000, 9000, 11000, 14000, 16000]; inline function onKnbEQFreqControl(component, value) { local index = Math.range(value, 0, freqSteps.length - 1); EQ.setAttribute(EQ.Frequency, freqSteps[index]); } knb.setControlCallback(onKnbEQFreqControl);HiseSnippet 1593.3ocuX0saaaCElxIJMwqqnEaWrKERuwcHyvN+1fhg3jX6Nitj5TmFTfhhLZI5XBKQpIQkD2gc01E8t8XrWi9.zALf9Dr2ftmfsCIksjhcccMRqBfs4OGdNeme93QoY.2lDFxCPF4OtuOAYbSyV8Yht62ESYnFUQF2x7.bnfDXomZu993vPhCxvXtGJmvXo4Qpm2sydXWLyljLEBcBmZS9QpGUjLayJOh55VG6PNl5kZ2qWogMmsO2kGA1yblkP9X6d3yHGhkaKmI5GvgcQFeq48sa6r41N3sZu4ls2prsy1cJUdaLgzdsMt+ZjMr2ztbmMwkPFKTygJ3AsDXAIDNz83N8a0keASqfSngz1tD4fxnVfl0Si1uK00o4.mSHBYLeyDW0bZW0Wad.0gNb9DW1sUKXkHQZmlQtIYRk+HLIiTlz7ZS5NlsrCn9hjUj1yWX1fAQvNXH1j1Tz6Ekaubl6ygcvDE8v8H0CfACknvpkJshE7w8dP97P7ITXcNNvp1QVeukJUo3YDQsNcH1hBKqOQq5Oq7xv1S1cOVaX6CTBHv9bOeNCFTXYXsZGUOf7yKmUCcfoZIH9gfjOesRRqXC0mao9ba0mkKq+Zc8WaBe8B3TnLWJiX0IhYKnblEm8nAZQZDAb2B1CrfU.s4FQtW9eIuE73xswtVTlC4RPwGfA.FfYmQJn10JVfZFZYEcIryDcs9NqxRaWJdsiJFRD6JDAz1QBRAXrTqQDlc+TR9bkBdAH0ulGb.RYhMr8wttsg79BiZy26Ao.zgbA4wrBRydI3Prt5Rc5L10hOJWRvXWVVQFLIAKvh7ZSBR4zTaDx.ylVuvzkVaqSIRsQNqAiJdrOIdbctqiLcU96QKBPw4TxxgXKD1pPULbq3hgVtTGR.h5HqDFlsgT.HMWE5oMphE3AGEbpfl7IABpDPFUImCbY55rkLqRB6I39p8FmHgLtwTo3KSTZ0J8SOvCmZsuoBP652h9R3DMMKWrDxi533RZxCoxXRxNWrBZTp.fDh6D4hEYYljb1wKHOizzAxRdFb18Syo+QPWUZhzUSqIdGylTgc2wai4FiMBwqOE1XLI+WZp41RLv4Mq+rYkQuzGMid93bIPmRkeSyDJ1wwka7JyjhV+.hONfbLuoKtegPrmuK4IfMthUafkqmL0ZzJcesIrmbGEr6hYLha3rPHrv0z8bnmviDT1Y.Ub.EpOLOLxqEzhfMY+XqClyHmjKPOtjbrLunEg4nF7evS7hkkiMhWr7fESnQPGRDWvC5oBGw+FYrn12Gpbxm14xxnccc4WHK8owYoPLPMWStae+tbF0VNkdGCrzc83QRdBs4ljhu2fvw.KGZz4XL0Ulw2JJD3BcdLqEbNptqLl6DRPnRm2vrTQ3OnB3PtCrzMpisAed+lv0VxRII8Jj2RBJZOL+MCLRmBoayJyxxScPCYZKC.jmhqCZGSFMahC.wfdEjTj4LlKEkoNeVNBpVyoUcivSjqBWwhNQy+BtBoVz9aEHVPt0EMCOuyo.aYFDcayNTWoxJFu5n1+PAmrsm0RkKAEGWNf+utVKI+TB.4M1CRXpA47Nv8RJAFjDkxW.nX3H.2GPYmj85l0qb.9xry8p2Vo0PF+D1sV8HWncBwyV4279qcz80Mr0BzwjKEGyUGHjKeN.LohSuilPmz5vVT6GFvi7UCxZBU9iJUIcvQthQlug9PUd5ciDbOrdPNTJfl+J.sxZq81ctBPe8adycmNfht6+92JfNm4QuW.9THrzARwclJ.B2nMV.ByOIb.Oq95QBXnUmRbHOdINVPc866AJxdJrosItSGPf9EFKPj2hMQf.DOi.j2syTAje5qp913LuVdbtnKPKesDXp7Ou72GWfQM+LfmaOl.CfwIDXNPR8bMki8IOzLInrjYMFFtX04yYEilrOEg2Uomt9I.g.VV18ZWBplgcS04Hz8TUZn1aLdrlAZWA49+YkOLqp5cEXDUSQgnLCiuUtgSpKkF5iZ3j8bP6w487vpFOloWD4yRaRdX6.9o15N+jvcQ0L.CMSc46RlGHGaUdz2tBd4E5o11YOpQDb0YUv0lUAWeVEbiYUvMmUA2ZVE79eXAk+GqhuVWl5BLQMqoatwX.eBbwO5+wkAyGk -
RE: Wavetable creationposted in General Questions
@DanSound @Lindon Here's how to switch between audio file wavetables:
Engine.loadAudioFilesIntoPool(); const wt = Synth.getAudioSampleProcessor("Wavetable Synthesiser1"); inline function loadWavetable(component, value) { wt.setFile("{PROJECT_FOLDER}" + component.get("text") + ".wav"); } for (b in Content.getAllComponents("Button")) b.setControlCallback(loadWavetable);Four audio files in Audio Files folder:
wavetable1.wav,wavetable2.wav, etc
Four buttons in the UI, with button text as the filename:wavetable1,wavetable2, etcVideo demo here: https://share.cleanshot.com/LvnqfWlM
Notice it takes 1-2 seconds to load and process each audio file.
There's a cache method but it didn't speed up the load time for me on these simple wavetables. Mainly because, I think, the caching only skips the resynthesis step, which I don't think these simple wavetables need.
EDIT: here's a ZIP of the full project - https://wmd.d.pr/f/iIi4gG
-
RE: How do I remove or mask out sections of a path?posted in General Questions
@Orvillain You can set up the hierarchy in your script I guess. Then at least you have it all in one place.
-
RE: How do I remove or mask out sections of a path?posted in General Questions
@Orvillain I put the floating tile inside a panel then resize and offset the plotter.
Panel = 180x50
Plotter = 182x48 at x,y -1,1Making the plotter wider by 2px and shifting left by 1px cuts off the lines down to zero on each side.
Making the plotter 2px shorter than the panel and sitting it 1px down on the y stops the curve cutting off at the top and bottom.
-
RE: Wavetable creationposted in General Questions
@DanSound Ah, OK. My project only uses one wavetable so I'm not switching.
From the docs it looks like you can load but it'll probably need scripting.
https://docs.hise.dev/hise-modules/sound-generators/list/wavetablesynth.html
Data formats
The wavetable synthesiser can be fed with two different data types:
- An audio file
- The custom wavetable format .hwt (.HiseWaveTable)
Using audio files
With the recent rehaul of the Wavetable Synthesiser at HISE 4.1.0 the wavetable synthesiser is now also a AudioSampleProcessor , which means that it has an audio file slot that you can use to load any arbitrary wavefile into the wavetable synthesiser. This heavily streamlines the process of creating wavetables as well as provides the user the ability of loading own wavetables. You can even create wavetables programatically and send it directly to the synthesiser to be played back.
-
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey Weird! Could still be a difference between Ventura and Sequoia?
Well, I'm not going to try to fix a bug I can't replicate.
But you can probably do a similar fix to the combo box. Add a preapreAlertWindow override and set newWindow to not be opaque.
Would still like to know why I see different to you.
-
RE: Wavetable creationposted in General Questions
@DanSound They don't appear in the dropdown in the Wavetable Synth.
Put a WAV file in the Audio Files folder, then drag it from that folder onto the Wavetable Synth, in the preview area.
-
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey My preprocessors might be out of date. I don't think I added any until the Rectangle one today.
-
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey I'm building Debug in Xcode with the ⌘+R (Run) command so it builds and runs in Xcode.
-
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey It's my fork but my
developbranch is identical to Christoph's.dan ~/code/HISE@develop: 🔥 git diff develop hise/develop dan ~/code/HISE@develop: 🔥I keep all my own customisations on a separate branch:
dan ~/code/HISE@develop: 🔥 git diff meatbeats hise/develop --name-only .github/workflows/build_installer.yml .github/workflows/build_mac.yml .github/workflows/ci_mac.yml .gitignore MEATBEATS.md hi_backend/backend/BackendApplicationCommands.cpp hi_backend/backend/BackendApplicationCommands.h hi_core/hi_components/audio_components/EqComponent.cpp hi_core/hi_components/floating_layout/FrontendPanelTypes.cpp hi_core/hi_components/floating_layout/FrontendPanelTypes.h hi_core/hi_components/keyboard/CustomKeyboard.cpp hi_core/hi_components/keyboard/CustomKeyboard.h hi_core/hi_core/Popup.cpp hi_core/hi_core/Popup.h hi_core/hi_modules/synthesisers/synths/SineSynth.cpp hi_core/hi_modules/synthesisers/synths/SineSynth.h hi_core/hi_modules/synthesisers/synths/WaveSynth.cpp hi_core/hi_modules/synthesisers/synths/WaveSynth.h hi_scripting/scripting/api/ScriptingGraphics.cpp hi_tools/mcl_editor/code_editor/FullEditor.cpp hi_tools/mcl_editor/code_editor/FullEditor.hpp hi_tools/mcl_editor/code_editor/TextEditor.cpp hi_tools/mcl_editor/code_editor/TextEditor.hpp tools/auto_build/build_mac.sh dan ~/code/HISE@develop: 🔥 -
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey OK, I recompiled with Rectangle support and I'm on latest commit on the develop branch, but I still don't see the black corners.


-
RE: I released my first public plugin guysposted in General Questions
@NISHI_MUSIC Congratulations! What does it do?

-
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey said in Look & Feel - ComboBox Background.:
@dannytaurus Probably because it's global laf. Once you get an error with it you have to restart HISE, reload the snippet, don't click compile until you've changed that bit of code :)
Aha! Now I see it! OK... on to fixing the bug

-
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey said in Look & Feel - ComboBox Background.:
@dannytaurus
drawAlertWindowapplies to message boxes and lots of other little popups.Oh, cool. Good to know. Well I'm still not seeing the LAF unfortunately.
-
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey said in Look & Feel - ComboBox Background.:
@dannytaurus Ah you haven't got the rectangle class enabled I'm guessing, so
a.reducedwon't work. Just change it toaI get the same thing after changing
a.reduced(10)toa
-
RE: Look & Feel - ComboBox Background.posted in General Questions
@David-Healey I'm confused.

Your code creates LAF for
drawAlertWindowbut the button callback callsEngine.showMessageBox()which I thought was a different thing.