@David-Healey Is this in the dll compiler? because this would explain a bug I've seen a lot recently where if compile a dll in HISE it fails on apple silicon, I have to run the Xcode project and force it to use Release profile for it to work.
Posts
-
RE: 32bit macOS flagposted in General Questions
-
RE: JUCE 8 Build Errorsposted in Bug Reports
@ustk They're much better handled in JUCE 8 in my experience, I've built two shader based elements that work well in JUCE 8 when compiled as panels into a HISE build, I have had a lot of issues with GPU rendering though currently doing the work on CPU until I work that out. Annoyingly these depend on JUCE 8 functionality so neither works now I've had to downgrade to JUCE 6. Fingers crossed this is sorted soon!
-
RE: Bizarre project compilation issueposted in General Questions
@David-Healey I've fixed it - just incase anyone ever sees similar weirdness in future -
Open Terminal and:
xcode-select -pThat should return similar to:
/Applications/Xcode.app/Contents/DeveloperIf not, sort it with this:
sudo xcode-select --switch /Applications/Xcode.app sudo xcodebuild -runFirstLaunchThen reset dev tools:
sudo xcode-select --reset sudo xcodebuild -license acceptDelete derived data and module cache:
rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Developer/Xcode/ModuleCache.noindexDouble check clang if you've got clang errors:
clang --version xcrun clang --versionIf either of those hang, reinstall clang.
Reinstall commandlinetools:
sudo rm -rf /Library/Developer/CommandLineTools xcode-select --installDelete Xcode caches (bit severe but I think this is what sorted mine out):
rm -rf ~/Library/Caches/com.apple.dt.Xcode rm -rf ~/Library/Preferences/com.apple.dt.Xcode.plistThen reboot, open HISE and try your compile again - mine went straight through, no errors!
-
RE: Bizarre project compilation issueposted in General Questions
@Lurch Have now cleared the Xcode project, opened projucer and set the target arch to ARM64/ARM64e - export is still 32bit according to cubase?
-
RE: Bizarre project compilation issueposted in General Questions
@David-Healey Should have included this, sorry - hangs forever here:
Last login: Fri May 15 12:34:08 on ttys000 /Volumes/NVMR\ Dev/Projects/VOLUMES/Binaries/batchCompileOSX ; exit; (base) lozpetts@192 ~ % /Volumes/NVMR\ Dev/Projects/VOLUMES/Binaries/batchCompileOSX ; exit; Re-saving file: /Volumes/NVMR Dev/Projects/VOLUMES/Binaries/AutogeneratedProject.jucer Finished saving: Visual Studio 2022 Finished saving: Xcode (macOS) Finished saving: macOS Makefile Finished saving: Xcode (iOS) Finished saving: Linux Makefile Compiling Instrument plugin Volumes Beta ... ----- xcbeautify ----- Version: 2.28.0 ---------------------- ⚠️ Building targets in manual order is deprecated - check "Parallelize build for command-line builds" in the project editor, or set DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING in any of the targets in the current build to suppress this warning note: Target dependency graph (3 targets) -
Bizarre project compilation issueposted in General Questions
Hey all - seeing really weird behavior trying to compile a plugin
On the latest git (last night) but saw this issue on previous builds too. I go Export>Compile project and run the exporter, get this far:> Perform sanity checks > Create C++ autogenerated files > Create binary data files > Exporting the pooled resources Export audio files Writing {PROJECT_FOLDER}DAY.wav ... 0 kB Writing {PROJECT_FOLDER}Hall.wav ... 7185 kB Writing {PROJECT_FOLDER}MediumPlate.wav ... 7570 kB Writing {PROJECT_FOLDER}Sword Jogger Verb.wav ... 8732 kB Export image files Writing {PROJECT_FOLDER}BG.png ... 0 kB Writing /Users/lozpetts/Downloads/Slider test 1.png ... 595 kB Writing {PROJECT_FOLDER}FGTransFeathers.png ... 610 kB Writing {PROJECT_FOLDER}KNOBDEAD.png ... 1422 kB Writing {PROJECT_FOLDER}VOLUMESPENCILKNOBV1.png ... 1436 kB Writing {PROJECT_FOLDER}knob sprite.png ... 5086 kB Writing {PROJECT_FOLDER}VolumesBGPlain.png ... 5177 kB Writing {PROJECT_FOLDER}NVMR Small.png ... 5832 kB Writing {PROJECT_FOLDER}Nevermore Book Spine.png ... 5896 kB Writing {PROJECT_FOLDER}AboutButtonTransStrip.png ... 6103 kB Export samplemap files Export MIDI files DONE > Create embedded data files > Launch system compiler... Re-saving file: /Volumes/NVMR Dev/Projects/VOLUMES/Binaries/AutogeneratedProject.jucer Finished saving: Visual Studio 2022 Finished saving: Xcode (macOS) Finished saving: macOS Makefile Finished saving: Xcode (iOS) Finished saving: Linux Makefile Compiling Instrument plugin Volumes Beta ...And then it hangs forever, regardless of AU, VST etc being selected, regardless of project. Obviously that doesn't tell me much so I opened the Xcode project and compiled it there, it compiled straight away no issues - except the exported file is 32bit? Despite being on Apple Silicon and the flags all saying ARM64e, Support 32bit macOS flag in HISE is unticked. This means I can't test it, which obviously makes the whole thing a bit pointless.
This has happened on multiple builds of HISE, multiple commits, all my projects -HISE 4.9.0 80bc4934
JUCE v6.1.3 (because JUCE 8 is currently not building in HISE)
Xcode Version 26.5 (17F42)
Apple clang version 21.0.0 (clang-2100.1.1.101)
Target: arm64-apple-darwin25.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/binIs there a way of getting verbose logs out of the HISE exporter so I can see or at least post what's happening?
-
RE: JUCE 8 Build Errorsposted in Bug Reports
@David-Healey I had this working on an older commit but realized on export that the exporter wasn't picking up any Xcode, xcpretty etc etc so I updated to the latest commit, where the exporter now works fine (ish, I have to start the compile in HISE, cancel it and then build from the auto generated xproj) - but now JUCE 8 is broken :(
I have two custom shaders that rely on JUCE 8 to work so I can't really progress on those two projects until this is sorted. -
RE: JUCE 8 Build Errorsposted in Bug Reports
Also getting this issue - I have graphical elements dependent on JUCE 8, is there any movement on this yet?
I'm on latest commit etc -
Trying to give back in my own small way - KnobForge!posted in General Questions
Howdy Hise Homies!
I use a Mac primarily and find using knobman online to be pretty unreliable in Safari, I got sick of running Knobman in parallels because it was really slow for my (niche) use case.
I saw Christoph professing how good Claude had gotten so I decided to give it a little go and ended up making KnobForge, a Knobman alternative with some extra bits added in that I use all the time but that take me ages - they now take me minutes!https://www.nevermoreaudio.co.uk/knobforge
What is KnobForge -
Basically it does what knobman does - you can layer shapes, lighting and shadow effects etc to create your own knob designs, render them into a sprite sheet of up to 360 steps at 500x500 each, and then preview that knob in the canvas area before you download it.
KnobForge can also do what I in my head have always called 'Arc Knobs' where the body of the knob is invisible and turning the knob up and down reveals and hides an arc/circle around the body - hope that makes any sense. Sweep mode will show what I mean!What ELSE is KnobForge -
I'm developing a brand for my plugin releases that is very much "Poe-esk" - it's all a bit hopefully-not-cheesy-gothic, ink on parchment and so on. I wanted to convert some stock footage ink blotting videos into sprite sheets that I could then control via timers etc in HISE for UI purposes.
SO - back to KnobForge - it can:
Read a short video
Strip it down frame by frame
Strip the background from those frames in 3 different ways with controllable tolerances
Build those frames into a sprite sheet of up to 500x500 per image (Browser limitation)
Preview that sprite sheet as a knob in canvas (heavily scaled, you'll need to download it to see the full resolution sheet)You can also do the above with images - got a pedal in your house with a cool knob? Take a top down photo, pop it into knobforge, strip the background and generate a sprite sheet!
Known issues;
With really large sheets - like 360 Frame 500x500 sheets, you sometimes have to click generate twice - the first time looks like it's worked, but it's not quite there. Click generate, go back to the design tab, click 'use as source' again and then regenerate the sheet - this should then work. This is due to the way it has to encode and decode the image, it's not the end of the world just something worth knowing.Other stuff:
I've compiled this into a Mac app using HISE WebView and it works great, I don't think I'm allowed to publish it here due to the HISE license agreement but I'm honestly not sure so if Christoph sees this maybe he can shed some light, I don't want to tag him as he's busy enough already without my nonsense :)Hopefully this helps someone out, this community is packed with absolute legends and I just want to give back in some way!
I take no credit for this, all I did was lob prompts at Claude for 3 days,https://www.nevermoreaudio.co.uk/knobforge
EXAMPLE SPRITES (you can use these however you like, go nuts):
https://www.dropbox.com/scl/fo/6qawfu5nymxqgfbp9rz4x/ALt0mXkKsj178W6ZRCArbpU?rlkey=d3zhx3rvolqd12nwscm7cci8x&st=rma1k8rs&dl=0 -
Possible to add envelope to data in audio buffer/file player script node?posted in ScriptNode
Hi!
I've been out for a bit so I'm getting back into things by working on a real-time granulator in Scriptnode. To my complete surprise I've actually managed to make some progress, I have grains, pitch control etc working. The issue I'm encountering is that the Recorder node is recording incoming audio, the file player is playing them back, but because there's no envelope control there's lots of clicks and pops happening at the start of each cycle/grain.
Is there a way of adding any processing to the external audio slot/audio buffer to counteract this?HiseSnippet 3967.3oc6csrbbabEECIAoHshjsiSEuHUJVkyBYWxj3QitAJufCeJwXQJVbnYbxFFnY5gDkv.LA.CeXWthWjENqR15UIeBda1oOgTU9BxWPzhrW41MvLSOyzjD.hT1nhkpxB8Kz29z29dO2t6AlddBMnEs0QwAdc6RSTTpM8dQgMowwgQJ0V3fK5RUpcW0FWDjbx5m35Enr8FJ0tm5NtwIznESyZsK55FGSaoTq1zOhkQs4mQg+mWtxZt9tAMoCyRQ4vPulzm30wKYXt6U+S8782xsE8.uNB0FUe6lgAqG5G1CjmoU0T55174tGS20kUsoTUdra7IJ09HUaqVFHKLtsSyVn1ZHZaMMMbKaBE2hhIZ1sMa5Rb.gb1Ma4kDF0HwMgFCuz0BacQiSBOKHsCNzK16Y9TVBckFPOmlsx5m342Z.3DCPkp.TMcJT8dp630xaP9Cgr2lWvhCagHnUapqRjzKfHUSPjlIUjdG0FMi75lLrDl77VpaG.yfscg4FQQIstJ0dg55gPEBRVpi6yoaEAIFzfGf0zd3hv+4C+j18BZl3EFrXXvtgIzmF7fObgubg4W3qVXwwKpcaokw5lnPeeZjzhYpCQWUCePPuNOiF8vEO00uGcPEgg+nX5r4CSalNpEpXXv1AdIOsKMK8Vg9sXXE64ImATxfM3oOa6MbSbYSJY4A0qKMJwiIN01fdJrLHcJZd0MnwOOIrKrPXh4OPyIrUOe2jQUmXKzxJ.viQlCYSTAwdIWHtPr.5XZWoNVdEw2QcOujlmHWFmRhLBH0sgLlsx7mntY61zlICEvYT25yK6xPs7uLTMs+WHaYHzmrN+tYIWbqOWeDgX2dcVsWKuvs77YxfZsofgS+Ukei5vU.cinccinGDtmu6EOH1sSWe59ff+vEeleXym2v6KnStroapbsFqFOn4ItAAT+3xr5Z1aHKVJ6G1KwK33cbSh7NGFuv3uAXruIc8LoqOFjkViklorz.7bwS7J3OYEpyRWKqP89EJrlbWZxYgQOmOGk8rRs6jthZ2C2Y+GE4FjpHqrpue3YqG1oqWl5KL4vyauP+K5dRXfWSVVo0nuztZmvdPGkIxC08Wq+TReoGbacfqmOaoPidwfwkVOMnA7d39JqM8gznXdeNmp1RvegkF6F1BJZ1sbaBR2E64lbBaMFydEnPSiVpofwgwFJinewcbNQUXu89tYSkPXf0gAZLmrbVA8sckpdyRAKdmJUYd63CYk1z0W4PllBabwemoHMWzmiU0ETaEcwQmQS.CoW1HItqOvMfoMsmaDHtfaGlEyoDkw4m8zu83WwjyIGby2uOFaLzWd5CkCkmtLY3ZP1I6Gg1dcv2XcMGJteew7nNdmSiFs+ead+Cq.W571.qHYygi2d4vinbz20EXpazIzoFaB89rkgBfe1bZpVsxXUdVl0eZ+5bG0m.flaDrF7Ll8+CbiNllv6DwLxbKFP4FbhGMYFNscq9X7wrIfAxCK+Y4N.GsSx+6jAZW96TXfyz06mBHMsiWP1vbnSqcbOer7d4JMRncSWsOrdMdN8rzoXwZx.v4TSeAGPOO4fP9yfbeJ.w7NU8y.J5sAPsEHYGmx5sQum8nnvdc4IlPj1f11smexD4uZujvNfAatJfxDqJ4HxHZguEnEFQW53qR+mWXAz8lZf1FW2aTzd5qFs+suXRzFP1QQ6+929s+iUl.sewwe2Oqdp5JeVVNXyXh0z6YT+aVnVXTsPtzgp+WpmqQ0u+mtw+ZkT97M5DFlbB3J8RFZypxCsJWiKTc4iKT8qYnbSLAcW08owzjqZMwM1zjRY7qIpwpLhuDlckx5KYPaKnujYSiHODvlTRf1mOZ2+9Bc+H0ZRoXrWysIofoEj94TSXg4MpXe+Ad.SKbRoseytFwblqzU27pq6CuWv9elLBM4p8vMKDXCrJSfc2PebWlCmHJXHk4FeDGNyox4OykW.wOOKdQ0CbelO21XCeOnQ641jwXUQHt.EE3eyz.2vCHL4dwZ8f3ahlvh5TE11iT+WubkK2+0cTWEFwmdi4.6kqHe45KWQovNiq+2xmgzAClER2XDHdmWe6nPmO4H4eNmR8+X8sSeehdhyrgLPUYhUCfm3AEJyBxfBKx51wz8pIpjIjBVFsMLKdd+W3lPXgs.G57lAq0+xs28fM2e2UexWoLbdIspCmSTq8he4rWg94cuczO6uL6MJ+poFYFtvCxBq29NfWS1zOXZ5IzfiAclWK02u98lQY++Z8bQu4xzkumZaPy4HlwIZzXw68to5yBUPp6nQdAuwUqS29fhoOOSws2pTuX5y2SkskOOC7JvcKcqqVqb66BgQJO4MrCDICET8brP7Zhl69p6CDw2Jh9G5QCZdwkNlFVi7Ll95uT9ZQH+h6TbRMt5+6u3OcESOoR69LxN2HyQ+2W8p+ykNGcIgNMdv32RZh2UMkYEeWau8WZMRP3C1VhBED9fV8iAg+iAg++mAgeoFIl61YG6ti5FQW7anIiNjlzMT91Oxw2H2whQL6keoqWUVKL74cb4mpwq8gN9KRK7cAJyQT2NflbC9tAjdpwKnlkR+l3P+6l6C8euHpenaqQmfdQ8zPdGM2uqNuq5ePLC6qLIeeZWpaBm3zfBuS882mq2Ndqd4J7yv7fHfqEaQsPAOMf13jvDww35Qgwwrcqm+thEKZudQGyvpg4rOksSKil2t85HdpWL1leVLkE7hWy9GP1vZy6EM9dEvWuwSqOVZiwRaNVZzXosFKMdrzjgoqoN5Y.NW9NCvcb6tmKLDEp4ZdYZYPYo4L5oaKT0AXLWNDt1FRNE1YusteFyjuCF9Zto.+v+n9G4brmuuL1viMUsI3GvGLsvkw2UMyPX+bG09vNgAg8OwTwU.fF8wGSG05prAzpIIvBvg47d02m5SciEVB+qpmdrSitvtPXQwuZMRmude0TwcQlQsEecl2diplckWWioy0003FWdK+U23MJzcuLuhKB8dTxOvmmuqJ2N9hL2teeIpuItyG8ubKrUtYOmtoNSSCXtN3QA4CNg8EUoiAFELQhcH.oGCRGlKI0gt1c6zgsyPp5Kowwyet5p8NtWbB6tTzJyrTbicTFiQQZC1wq4dg.FyoCBnymnzv8TZpMqoUMTp8QocJnyy1DAlhtIR4IgeJ8hrmerW+msf7OjI8L.+wd7GgdwfzuqyttZd9YWVx+r5x.ahn3k8C+htzjj3k2.lGY7phW9v0a7jOVeIikL938We40OILpE2hMMd4emWxIrVwGfKtmmaP3CAMcpWvYtWr3ZKuaXidvqhFD5AZRK+qeLuJGwy9n08CioGs5Gnczo9FGEEouzYtmprQut9.c9jzq5RneOl3Mi5GiURWHsYPKFGaaCKSMSEl2CePHdZ61PDIYjHxxKaqN4UlX5Xj8B1m+tmWEgz0X2dFkIfUDdHrBOO.VQjpDrpWbXcdUccCSMBYBbc.FNN3xaBFookaz0xdH5BOO.csbpRnqQoTZsPDMqI.W.CcrLIRPWVSvZXTtAWh1PvknMDbI5UIv0rLfqERyfXKAbMr0b.XTB3BMASxucAaigfK77.v01rJAtnx.tXDhX6HAbMMszrLrk.tXDQGamav0QvWlifuLmJkuLqx.tHcSMjoLv0wgfcjo4BMgUP9.W.szF3RKMQF7xRTobpgKC9pqiMrjYY..LcSolc00sI142rqo.iASAFClEFb+lu2.200KkgASMMhgLrE3moSjo6BMoHXKRfu.Rfu.xoBgsFkhLlggstTEWKcrlCVSFaLnM1EfMFVfv.Vfv.VuBgtlkiLlMxVWB3hMsAytRii.qA.e9IiIvWfHvWfXVgv1RQWvjfIB9sFhsDCjiigLrEZhsYA3hIPWvVftfsUEBaKEaAKL.gxzaIXCLwRl2LKrkAp.TwD7l4H3MyoJ4MqTLELwZlVxn4ZqCZsZR0awZnbisL9V1hLwrEYhUkbnQJEQLKaCSjL30BTPQxhhP2xgfJ.QLAxBlBjELqPX6FkhHFA.JGYAQXSzMzkRxkf0YwEm6MtQfpfk.UAqJDUgMJ0913XZBDwjfsNHBRSpdKqI142jKVfp.Vfp.tBQUXixQCifLPStgiK.1CQZfFsrHHrIXqBXTfHvUfHvUfTg3JrQo3ggbLPVRAWcCavfqLGZHGKrd9sJXKPVvVfrfcEhrvFkaaar0rQ5RAWBDBl78sw1zzn.LwDbm4H3NyoJ4NqbLwLIVlVx.WCCrIXxPFULSGGbAnhoqIPESWSfJldUxkVInhMGDHF1xTJ7BTfksmXPSLIEP0EIvV.IvV.Ugf1M0KmGMMCGhbrk.jwjtyBDCTAhPyRftfk.cAqJDcgMK2QnoizvRsKXZw7bIiKFvcCHSjetXBzEvBzEvUH5BaVJtXDSrggTMWjIFgIRChfYUn.6Il.cAh.cAREhtvlkhKlklosbhtf1oti7MtAX.W.MWaA5B1BzErqPzE1zpjG9K6jrjAt3ajS+ks+LhzEzDoKnUk7oUJ5XF1XaIGyCfuX8K6.fMbzr0KvYTpaHRGyPjNVUxsV41YLHFXIa7HCeADyDIitKPmvgj+.0PBbFPBbFPUnauvVeP41aLafPlbsWK1oNHiQFwFiJv4QXIPZvRfzfkUUBcKEkLhggtgTcWBvIS9IRjdNP4mRl.qAr.qALoJgtk6ZM4.QSXKCcsAxADoVFrbLYGxVt4jIPafHPaf3TkP2RtAY1V1RsLXiA1vXjzMHyAhhK+6giPfvNBAB6nWkP2xwJS2QbCbEPWGv1fozaGhkgltSQXkIxZPSj0fVkxwV4nkAwTH23fC1wTdzvFZn7eAQXjuPhzxPhzxpT91J01jYaogjtaCN.taJAemK8RhjeVYB7FPB7FPUHr8QkiUlMveUxoAy.WGaDDr7q+M42Rf2fk.uAKRUBcKGqLDCEkftFPTY5Do1dIVbWd4lUl.uAr.uArSUBcK2oVhPlHY6etgtE6rIktGuHhcQts4B7FrE3MXqWkPWTI47hLjY10v.BF1T230myqiPzvNBQC6XVkP2RdcyMHNRQW9c40z3l39lKRZPSjzfVkxwV4tu4XGMGCo.Lx.JQ58bh.b4J.sWcwKzut3E5mWRkAfKEqLrklstT70xwP18hl0Dv21kAuuI9Mm1wsYT3QYe1JY+xSuCOGXtHH6CS8NrzKpqb53eSR530x6nlMG8UMQCMJaCMKaCQksgVksg3x1PRYan802P1GGhrulPreZ7JJ6r2lo+bhqs4feNwSqPy97wk985m8ScdPNAzyG74mqM+KO2Tr+oujv+RltzI8+++Do+Bj+eidG7V. -
RE: Changed my machine - old HISE projects extremely slow?posted in General Questions
@David-Healey that's sorted it mate thank you! I set Projucer to Release with Faust but opening in Xcode, it was still trying to build the debug build. Changed to Release with Faust in Xcode and it's up and running (though did get a security error from the Faust dylib when I tried launching first time)
-
RE: Changed my machine - old HISE projects extremely slow?posted in General Questions
@David-Healey Let me try and rebuild as release and see what we get....
-
RE: Changed my machine - old HISE projects extremely slow?posted in General Questions
@dannytaurus Can you chuck me a link for the git submodule? I'm 90% sure I did pull from this already but I'll do it again to be safe!
@David-Healey yeah it's a debug build
-
Changed my machine - old HISE projects extremely slow?posted in General Questions
Hey all, it's been a while!
I've moved this week from an Intel Mac to an apple silicon one, I've compiled the newest version of HISE from the develop branch, dropped JUCE 6 into the JUCE path etc etc - all good.Creating new projects, everything works as expected.
Opening all my projects from my old machine is extremely slow. Compiling scripts at project launch takes minutes, audio never initialises and doesn't work at all.
Trying to compile the interface script takes over 5 minutes for some projects where it should be almost instant.
Have I done something wrong here? It seems to be something to do with the old project folders/files - as the new ones are behaving normally? -
RE: XY Panel controlling Knobs, Panel does not create DAW automation but Knobs do?posted in Scripting
@d-healey hello! Yeah I tried implementing the custom automation handler in the snippet further up this thread but I get a load of errors (also further up). Do you know why the XY knobs don’t produce automation when controlled by the panel but they do when controlled directly? Seems like that might be the simplest thing to fix and would give the automation parameters I need too.
-
RE: XY Panel controlling Knobs, Panel does not create DAW automation but Knobs do?posted in Scripting
@Lurch gentle bump - still stuck on this one.
-
RE: XY Panel controlling Knobs, Panel does not create DAW automation but Knobs do?posted in Scripting
@Lindon My thoughts exactly, I'm not sure why using the panel to move the knobs doesn't generate automation when directly manipulating the knobs does - I thought calling changed(); was functionally the same thing.
-
RE: XY Panel controlling Knobs, Panel does not create DAW automation but Knobs do?posted in Scripting
@Lindon the XY knobs are declared as plugin parameters and produce automation when automation is enabled/recording in a DAW, this is great.
Using the XY panel to manipulate the knobs does not produce automation in the same scenario, despite it manipulating the knobs as seen in the snippet. -
RE: Neural Amp Modeler (NAM) in HISEposted in General Questions
@aaronventure it's been a long week
: -
RE: XY Panel controlling Knobs, Panel does not create DAW automation but Knobs do?posted in Scripting
@Chazrox On the XY Knobs? It's doing that already annoyingly
// Mouse callback for XYStickPanel. XYStickPanel.setMouseCallback(function(event) { // During dragging... if (event.drag) { // Map the new panel position back to knob values. var knobX = mapValue(this.get("x"), 0, XYPadPnl.getWidth() - this.getWidth(), -5, 5); //Left, right var knobY = mapValue(this.get("y"), 0, XYPadPnl.getHeight() - this.getHeight(), 1, -1); //Top, bottom // Update the knob values. knobs[0].setValue(knobX); knobs[1].setValue(knobY); Knob1.changed(); Knob2.changed(); }