PresetBrowser
Christoph Hart
@Christoph Hart
Best posts made by Christoph Hart
-
4.0.0 is here
Alright everybody,
it was time to finally bump the version and upload new installers. Enjoy
-
New Feature: SuspendOnSilence
Hi everybody,
I'm currently profiling a project I'm working on and noticed a rather significant optimization possibility: when there is no signal input, some FX can be suspended until a signal is detected and save some CPU. This might highly improve the idle performance of your plugin, which is important for big DAW sessions.
This is not a new idea (some DAWs implement this already) and in certain parts of the HISE codebase this is already implemented, but now I refactored it to a general system and also allow DSP networks to set the flag.
HiseSnippet 1427.3oc2X0raabCDlqrobkSbRSQP+AnG1C8fCfqgTRZZAxAKaYqTgFYK3UwMsWLn2kxhP6RtkKkrUK58donmys9Zza8Qn25w9J32f1gbWIsqzZAaE2DzJCXHNbH42Ly2LbnZIEtznHgDYUp8vPJx51XmgbU2ZcILNpwtHq6faRhTTocrncFFRhhndHKqkdlVfUokQlOWr0NDeB2kNQDBcjf4ReNKfolHsU0uh46Wm3QayBRo8iq1vUvqI7E8A7rDtLJj31ibJcehVsBXjUw87XJgzQQTzHPmcDdCc5JNiGq+QrH1I9T8fJHGXihEip0k460ZjsFgPV3VSr7khs76iax7XikOwC7tlIrmrhz9.qByCRUtFPxJEjVNFR2C63JYgpIynwysvM3P.oCAb0ogRrtHqeGWS.JvUaFP5QqKgAiWv5Oob4Mrg+8fm1oO2UwDbaAeeghd.e8Gr5OrZoU+wUsmdpNcxcN8wHE99TYtSqitx4sv048CNgJ2vd.wuOcrhf4m0mV7p4Scis5TJJ3M3L0Agzjw0E9dZek96yFAPItM3aunwtDEQGTRjA5ERkJlFNV6RG.r53PTI7tzndJQHvqmI9ALGgWeehJKcRm2jLA3OxDC0AJdDSMLcd00fiUdtbrqJDuGtES41MeLVHGLBdp+MvXRl4Z385zg5pl.vkw0e4hlFV9ZmFtZRZHbl5C+1ICsq+xJ4l.9S3Ij8PIMjHosEs7ICWOhDD5SODv3F1m3Kb64v9d5rYHgwPXGsFq61kv4T+nEIQp3MTwIzgh9JF+zlDkjcNT9b+9ANPYZWZsDzAxrJnyghGWVOVyKbnbOyf+F9jLYE8XqjIqLZxToe6SUmIj8LgijuirVI12GYbxG247Jns88EmUSDDxRXoPLvHqkveXXWAm4pEEqwHjtcfnObHIv8KIQsILeMs1oeDTnv6.tCnr4ZLqBGQkQlMdEb4Mg+.Z99BOXph0ItficXKhpqNeQW6AHmT4ltiIoYvZZdhdKFcMWrWBfXf1z0WxoiOsHR3NOnlstbSAqkRU9IlgpGA4eEhOmFQGom0k3iNRy.zKBoOkXOnAwXspqg6vN+QO7XC2CkwF9fT1PZkt5.+0ClERAy6iiBDBUWp2wgi7DYQ6GaPKP82LGMuwfbQcwQ5HvtF94f2gHsODxhQnIUGaSjmRUQIWWvotwjQiE0vSuMJBuKZbPUKaEb7thREp0vYrQXsRSFO4jmTlsI47ojcwVNJZntNRZ8b5QOK1gkVSsMM5fmYq2tuRD.0IL03Qo.Rwo.xu9pW8aaMCPp9KUmBHF8tbfbWriIzAkUL8ANEf9lpyCCWCmwEyACkv6wIPEPOzLaDJEe7tXw.H.YJdW4ImmkJ9QoRbxp1apTmzY3IbsLH7VXHt1cSyDWCLUHMlxxSslOO8hYoGnpUuQ3oWr0kvSmFiWNfKFu86JYCnna9jrwK8a8d5ecvO+maktpvkWjH2Zd4WxXGgnW.wb+3qcmp2Idxagc.Br4oel6tdeyX6ulLfZ+LJPs0MHVYNu96Otpu9K7J+5uCbUvw2VR3QghnrddZ.qsfqswIBeQD7XG52cntlbZ40DDYtScwV0AiL203PT8klh6i5WHUqtKksqpkuZcUksq+T5mSSnK+V34o2LOc3s3qaxz5doQXzgoKGuGe.0GRLLX78fLgNj99pQRyRraJ3hQcONIpeHEZ88zSoYKTkmAssRQfFmFK49UOj5SIoYveR03VILsWrX9hq+ulPtwqODGCWac1n8+ceU5R+u9UouQd+0ahyHf3JEGmz6tlm9NFIfcyM+HekvM0isqfFDeMJV+vKT.Tg6XWWsK9SgBl4ulGt.q4QKvZd7BrlOaAVySVf074KvZ9h4tF8kKIsboS4.As1yzxgk0ndmAlN5eLgWzyA
This is a simple overdrive going into a 16x oversample node. With the new
SuspendOnSilence
flag enabled, the CPU usage goes down to literally 0% if there is no signal present. You can try to disable the flag to check the effect (it's in the DspNetwork properties, next to theAllowCompilation
andHasTail
properties. The flag will be passed to the node compilation, so the HardcodedFX will inherit the behaviour of the network.Be aware that this flag should not be used if your algorithm produces any sound from silence (eg. a test tone generator or a background noise player), because it will obviously mute the output when the input is silent.
You can also see the suspend state in the Module Tree, if a FX is suspended, it will show a S over the peak meters like this:
I've tested it rather thorougly and tried to cater in all use cases (polyphonic FX will also be suspended if the voice is not producing any sound), but please let me know if you find any issues.
There's also a preprocessor macro in the
hi_dsp
module (HISE_SUSPENSION_TAIL_MS
) which defines the time that the processing stays active after the first silence detection (the silence detection is pretty sensitive, so it looks for a -90dB threshhold), if you prefer a different default value, let me know.In my project it yields a ~40% CPU improvement in idle mode and ~10% CPU improvement when in usage (because some channels of the plugin are not always busy). I also improved the performance of reading the peak values of routing matrixes, so this might also be a contributing factor though...
-
Faust is here...
Hi everybody,
I'm very thrilled to announce that the Faust integration is merged into the develop branch and ready to test.
The implementation of the Faust integration was a Google Summer of Code project that I was mentoring together with Stéphane Letz, @sletz from the GRAME Research Lab. The project was carried out by @etXzat which I would like to introduce with a warm welcome and I'm sure he's happy to answer some questions about the process or anything Faust related as he knows much more about the actual language than I do.
The Faust language allows you to write DSP algorithms using a very concise language. It's been around for quite some time and has a lively community of developers and a vast library of existing DSP algorithms that I know all of you are dying to play around with.
The current state of the Faust integration allows the full production cycle of using Faust within a HISE project:
- add the
core.faust
node - write / import Faust code using the LLVM Jit compiler. Parameters will be parsed automatically and show up as node parameters that can be connected / modulated like any other parameter
- export faust code as C++ nodes (a DSP network with a faust node will create a C++ class from the faust node and use the C++ class instead when you export the network to the DLL)
- reload them as HardcodedFX modules or nodes in scriptnode
@etXzat has written a extensive blog post about the integration process as well as the build instructions and a quick getting started guide:
https://resonant-bytes.de/blog/gsoc-final-submission/
By default Faust is disabled in HISE because it requires a few non-trivial configuration steps and let's be honest, HISE isn't the most easiest software to get started with so there's no need to make it even harder...
So if you want to dive into Faust development in HISE, make sure to read the build instructions on the blog post and let us know if there are any roadblocks (we've been testing it on all three platforms the last week but I wouldn't be too surprised if we missed some build issues).
Also we would like to start the discussion on what steps should be next as there are quite a few features that we couldn't realize within the projects timeframe but hopefully will be added over the next months:
- support for MIDI and polyphony (at the moment it's only possible to use Faust for audio effects)
- enhanced IDE features (editing within HISE, SVG path diagram preview, etc).
- support for complex data communication (tables / slider packs / audio files in Faust)
I've also added a new category in the HISE forum for anything faust related, so that this topic will not explode with all kinds of different questions.
- add the
-
Who is back? The master branch is back.
After what might be the single most offensive violation of the
git flow
branching model in the history of software development, I finally found the motivation to merge the develop branch back into the master branch, which had a pre-pandemic state.Also from now on, I vow to respect the traditions of software development:
- keep the master branch stable and build at all times so it can be a valid entry point for HISE newbies.
- use the develop branch for testing new features / daily development work.
- whenever I merge the develop branch into the master branch, I'll run a CI test that ensures that it builds HISE and exports a test project on macOS / windows so that @ulrik can stop being my human build bot for macOS and notify my that I broke macOS again... I will also try to bump the version numbers with each merge to master.
I'll expect the frequency of master releases to be a few weeks to months so the general advice that David healey gave in all videos since 2019 to use the develop branch for actual development stays valid.
Oh and I've thrown in VS2022 support so you don't need to crawl the web for an ancient version of 2017 anymore...
-
New feature: Code templates
What's the best way to return to coding after a vacation break? Yes, adding a fun feature that is easy on the brain cells. So here I present to you:
Code snippet templates
These extend the autocomplete items with templates of commonly used code snippets. Check out how it creates a CSS definition for a button LAF within seconds:
These are the features:
- use the stock templates that come with HISE or add your own templates in a JSON file for the ultimate customization
- use the preselect range feature to create multiple selections after inserting the template
Docs:
https://docs.hise.audio/glossary/code_snippets.html
Have fun! Also I'm happy to accept snippets to be added to the default list, so post them if you find them useful!
-
Updated Build instructions
So time went on and I simplified the build process for Faust a bit so I thought I'll post the build instructions (or the link to the instructions) here and update the post once it changes:
Windows
No Projucer modifications necessary!
- Download and install Faust to the default path (
C:\Program Files\Faust
). The latest version is available here: https://github.com/grame-cncm/faust/releases - Open
projects/standalone/HISE Standalone.jucer
and click on Save and Open in IDE - Change the build configuration in Visual Studio to either Debug with Faust or Release with Faust. This can be done with a drop down menu in the toolbar (which initially says Debug).
- Compile this configuration. HISE will have a text label in the top bar indicating that Faust is enabled.
macOS
See here: https://github.com/christophhart/HISE/tree/develop/tools/faust
Linux
See here:
https://resonant-bytes.de/blog/gsoc-final-submission/Then you just need to add the directory of the Faust installation to your HISE settings under
FaustPath
so that it can find the Faust libraries and you're good to go.I'll lock this topic and pin it to the top now.
- Download and install Faust to the default path (
-
RE: Ability to move sampler / synth / container modules around
Alright guys, here we go:
https://github.com/christophhart/HISE/commit/888851ed2353eec4684cd94ea0d5db5d2dae84ff
I tried to cover a few common edge cases, but I'm sure there's lots to discover when doing monkey testing, so let me know if you find glitches...
-
Tip of the day: Connection learn mode
Hi everybody,
not sure if that feature made it to anybody's radar, but there is a quick connection mode that let's you connect parameters to your script controls with a single click and I've seen a lot of videos / screencasts which are missing out on that simple function so I'm trying to raise awareness for this awesome helper tool...
I've updated the UX to make it a bit more approachable, so now you just need to right click a component - either in the interface editor or in the script component list and choose Enable Connection Learn. Then you need to click on any parameter (either on the module editor interface or a macro parameter in a scriptnode network and it will automatically assign the UI element to control this parameter. It does this by setting all relevant properties (
processorId
/parameterId
as well as the parameter range) so this will heavily speed up the process if you have to connect multiple elements.
Latest posts made by Christoph Hart
-
RE: Return the old Content.setKeyPressCallback functionality (that we had for a few days)
@d-healey Ah ok, I need to check it on macOS then, but I think that's because the label gives the keyboard focus away to the OS for native text input on macOS (I think that's because it shares some code with iOS where the onscreen keyboard needs to appear).
But that proves my point. Messing with the keyboard focus of a text input is not the best solution, and I would recommend switching over to the
updateWithEachKey
property (I'm using this in Triaz to update the search results for the sample browser while typing). -
RE: Angled Sliders Issue
New version:
HiseSnippet 2100.3ocyX07aabbEeorVmPVmzHf7GvTB33k1Tz7KIqR2.SqupErkCQnhqARLbFt6PtC3xcH1YnHYZLZt0S4Ru19OgAZtmi8bOzSE8Of1K8dOj9dyrj6tRTwQBMEQPThyLu2a98dyu2a9nSjvkIkhHqbENY9XlUtaX2cdnxeOeJOz5n8sx8t1GSkJVDwz0tyGSkRlmUtbW6WicjK+5V5e92OXWZ.Mzkkzkk0yDbW1S3i3pjd6z9w7ffCodrS3iRIcy1G4JB2SDHl.34Z1UsFScGRGvdJEEaMaqGQk9V4ts88ZzaGOOup6P85W0amso8tWUO29M2tI0i1+W5sk61UaxZVyJ20OviqDQcUTESZka8cEdy65KlFZlfmwk7dALrQMqtvLa59PQfG5hXuV64yC75rHPIs.qzIIrcMSX68sOl6wW1eR368zCPRzHc.L2ZYg20x.uZogW0TvaEPJWJHstARaX20MhOVkLBhmel8QgvpYeJrNkFJFYsV6eTvdOAHQnpxH5P1gQPikZ3rc0pkIveJc+BEf0JohbJMhDP6S9PxB0biXf27DgKM3IBwvGF5cHiE3fpb26R1qaWReQDQ4yHS4g+hBfxUjLXNB3grtp4Art9LlxoXgJRMljAbOVTgeag78.5vfHwjPuMcgfQTKb1c1bydCLjFXJxOhFMfG1hTa6wyHUGOC5REQCkvbNpEIRfQZmMqskGa.JdOQDX7Mind7IxVjspdScmy1T5S8DSaglfTG9zD9DMnG0AB.w+VoNXgWUHKNa4KN0f1kHYqEHYUdf9eaNhOygGRjvLTlL0mqXjZUuY4y5ekV3MbEW.llFD.vnljvnR1l7vU.mV8XfqyP.4ZVfZQt0s.6Lk6o7aQFQm4TqZ0S8KSfELW762jb63I9TZvDVI8zlf7Vl3P8s1p7hO.H1IcvugNtuxXKfvhYYOCCE8j.+4SWPfFvT6IFMVDBMbJ9XX3ZEKUt.47+bwZT+RqQiKsFMKV5Efm.gWmgDX0S6HkJjeHxmOG+G34Y86NzPVPsTINYmAyv5Xk4qnUcJBK4ho6A+EWPjEKSJ9PfDjzQV46.kgTerXhBxsb5OIzE4MNCJgzgBuBkMszGKlHYKLUh3rSA.oUAxeQRxj.HIRmAGBYUz.9Wv7Hyt6bxXggYJKjG8vYOEFFbPsApLibWPGtD8SmhZ5GhVsjyyH47LR5y3C7UZQMBaX1OR2MnSy5Wr3mCvEghSAEIIPkzaNQNoGjUANa3.sPlIfXrj1HS4JehGCKsIQodNQIHTWWHePsrbFMbP.K1e.bY7oMINN0pTE9uNZTBxsRi+kvrO2yK.rgNEyLenMGQU9RBLK7fzPqGymdJSRB3CYj4hIjoT.HNnDaS3RBTivSLpT530QgdrY.rNFrXEX7ALGyWwIzYNfqsKoqq0.oE4ARoTDvpLNhirwS9jSLgzB4Q9NGLTUx8IbxuxP6qDvBGn7gdtycfoE3JmwBfFeXFj7AeP7pstfodNyqM0mxeARFS1JnijMwSn2iz4MZGxCHEM0fKRZQJpAMTTLOuugGWwMf6ND3qe4WFqmWDcPLjWJjzm2WsOrOLLfdj7KRRkvtyGK7nAmvlAaZMdhxAGVKS9hioQfPKyhKBHHNOtLAVjgzKfkPXiFq.VmJBoRH6YPfnGM.1K.pXxCwyBXL2Lv.UKieMOpNr7BFXYRFPVXjHFvs4mxPBIt7eFDXrybvNaStCwIcfKKQDZVsRyFH+774RIPf2WS2DvA5hgCvzLreH2.odZmqLAFeJbJOzkMXvjv257k.Jmx8fbr9zIApkNoNBEIFkl7qfHOA1i1X2XL1hTuYYSO33PaCYJkG+BbZeFtklCtrl+UkIKpwkQLGwPbmWbqujkVfZHFpaG2Q9UXe4B6CqBR1gABpxIdOz6qU5U540z.+DwTShBwl3HvuPX.LRZukqWrblxtEDM6IDvtGPrkBo9JETvnGzPhK8TiVivZ3IU2TvY3jfMRJWYlDTTclOjIX1mtTgueWJUcCSc8aSf5ZMv89ghFvWKYR0z6prHtRDgOUnXeTnS7VNEHmcn98W4XX9VjHHfEsxgwaND88onS3jQ8XQKWHiEDNcb1ibaewG4N8MBhO6TJAEgGExUezXV3EcOAq3ZF3MFhQEHpRe372M9v4c0wZKNbF72xVeTGKMfwaE8mt9el29O9Wef0OXkqmnL8quwe6u74+qKgxMRTFU8quw+7RnbyDk+l86730+l+9Cr9ji1mpn3kShCDPvYLKRww3dt8YmBWMzbUk716yjCUhwv5wxRWvcUdiwpYKu8X6m0ddRim2VhaefWm8QhH9W.yOMvBqciks2ULCuxyhiUCpc8e2q286PMMUSRtS5AsgyhOJQtFMZzG6Oo25X2arwF+GrarzShveG7i1JWBep9E4Se0mcY8oW6+SDepwE5Se9k1m182+SCep4E4SeauKqOs6e30++wmdKiO8NKdX.7jIZW5ssMmRIkO8sY7om2VuYcB1dY6yf1u52zN6USrx8ysyb0DKqy+FEumMbVJ7z4YexD7gkhG.Jpm4cJv2h.u+67zO7z+ydGkenPbC6Nbkq+pw3Zq.iPUveLvX7qO8N1GzuOyUk.v0sO74+37TSVlqSN.NOPDG3K1Ocxnt.oykAydHvhvMUysFx7LsqhswHPWVnmtAxMiGrF1NW7f0VLn0Hpaj3ktlcev225s08.XJT+Vf4sOFaSRsa4h37HtG+kttYM04Tr9UUwFWUEadUUbqqphaeUU7dWUE24MqH9ZnObhRLxj1XYcbmCzGSHWtCBo.CTyVs9ufDhd3C
- shift text box input
- hover state with transition animation of colour & margin. That this is working is some advanced stuff because I had to artificially override the pseudo states for the sliders to indicate the hover (as the mouse doesn't hover over the slider anymore because the panel overlays them).
Do we have documentation?
Sure, but I have been cooking on this bad boy for months without telling anyone. Same reason as always: I needed some time to work out the kinks but now I think it's ready for people to PLAY around with it (I would still be a bit cautious about using it in real projects as there might be some breaking changes occuring over the next months).
- https://docs.hise.dev/glossary/css.html
- https://docs.hise.dev/scripting/scripting-api/scriptlookandfeel/index.html#setstylesheet
- https://docs.hise.dev/ui-components/plugin-components/knob.html (scroll down for a list of class ID's & other selectors)
Is it possible to assign dynamic classes to components?
Yup:
https://docs.hise.dev/scripting/scripting-api/scriptbutton/index.html#setstylesheetclass
-
RE: Angled Sliders Issue
oh that's a fun little excercise. Also a good opportunity to show off the
CSS
renderer in HISE that nobody talks about...
HiseSnippet 1742.3ocyX07aaTDEe2ztsMFZUiDm3zfkJccU9X8GIMXDpo4KZTaZivkRQnppw6Nq2QY8LV6LNwFnBNfDG5MNvUt.+Azi7wA9W.INvQNwEtvQj3.7dyXm0NIzVGIPcUryNy79326Mu2adi2ISFxTJYliag61uCyw8k8ZzWnSVKgxENasti6E71lpzrLhcpU62gpTrHGW2S813DtSeZGyyebsUooTQHKeJGm6I4graway04ytyJ2jmltIMhcWd6Qnt1JaEJEqISkcA7bJu.mNzvcosX2lhjMkmyMnpDG2q3c0pMWNJJJXYZTbPzxKQad0fnv3ZKUiFQieinECWJnFqVYG2yrQDWKyZnoZlBD5pxn9MRj6KrJ3dbEuYJCGT1oAnY6zNqkvSi1YnyQ433d5cxcUmx5pdEus4Q7ClO2kcQyBjbNF0o4N0SCRkm.H4NBjNsERy30HLi2QmuBhmWxaKArCFSg8lQghkVmoZbVu0j.EB87so6x1LCFb.G9KEDLKA9pzaVn.r+nzj8nYjTZL4sHCYKLiAVysjgzzaIk6dcQzlLVpOxxBKPVqQCRrLinSXj84hWq.v77JFniTtf0P2Ok0Hgwz9EKLuxfIUJOhkU3iJLcSHDnUlrqHZtPvYjUG0t+by0rkMPATwzsoYs3h5jxK1oGInSOXJcFUn.c1tNIShdZ+4JuXDqERdSYFH74xnQ7tp5jECtjYxdyoRnQx8qihfTA9TC9j0pI0Gb.C9a9JfDdTgwwY85MYftXHdCsdj5jKeYPp6yizI0Iso87KGDrWxrDvCEhueIxUFXI6QS6xJUxfrCL15VEWYwEmc3GP4KOp0V0XnGmw.3qPghiuesqP1TA6XevvsrVL8Zx1cjBXfewaBKWtXoYKPN5y+NGUlXNpNwbTqXoG.VB3e82kvEVCoTgo2EifNRDGDYMtcuCUvRKORn53ZvtrwWYeEkpeQZZpb+0fuwcDUwYIEWKkCuMK4Fx8fZguNY8LZKXan0gXcGnFf9cjc0PfsebWQnlKE9sJggFPlv6vZC7CIBTMAi8IZIIABgLoFcPoTnvzslOFpOd8zT+fdUpDGGDXR9dz3ZZaYWEaHDyUEaOvtLpiGaGLeHBcVD4i+XhchH.6fGDnAwDFQ1MERQLfP.4LzT9GBz2ag9jNREGkqBnEcm8tMrN3MsBpGYAfItBcp9EMA6n+vRZ+wHs+Xjlv3sRzVZGPtMU5FlE.tpU4owvQfcQn.TZQRNfIM6STcaB0A.+hnkgHqJHVYYkx9bcBIhg0uTHY2G2QnggPNn9fZVTQqT1PqBvl0xli36Wd9.3+FmRIHgdTaXDnFyihRAwXxrspDEaapNQQ.EwSGEdMYIz8XJH9XWFourKYeJfEejhkHbEAprEIaWZL21VhHVO.YaChbdffVLe6qnF86CPaoRlBXUGAVPPzn5kajg+9rKmlRZJkPBDWSn.NzZ.8MgAJoMz0fdL9K2cqgCNTfLxceVkfjZPADPYqUgH2jD+Aif8Gfgz2CqD5OhMXi1tBAbyUw5efA.uZJU9Ha9vv3dhTbaolcGguI1GJARN7RwwG6ZXcgLYZJK6XWFaQI6ownuna6lrrYI153CIDNRd7y4Oyy247CN+XDBkhsDb8c5vFLdSYZDd9M99Q6JvYPcNrkkAHDHUa5N3BC5Nngwu6vAgbVOSkeGC3wVwd74exubwG+SWy44l4J4LCp+W+sF+1Dvb0bl+g+7ae7W88+7Dvbsbl+lat828ye8ueMm2cq0oZJ1cz.GA3b5vxzbbOvcc1dP+n1dkl1aclZWsriiq2AmH.MK8L8U8.FbeevV6iu.5xQgsvf8NeCYF+CA8RScTvN3cY8zqJ6g8ZMreEPum4Sdxp+M1vqsPTdCvarBWyZmSW0pUiw4ymsBN8LyLyegSqAomS7eCOFoLA1RkCYKYSts7jjWPrkpGxV9rSfsr5m+hgsT6P1xWN41xpewS9+wVNq0VN+vadfMnXLky4YaVAskAZ+Gu2J8yGb+ULcLjisGtxgP6m9dqLdmXNtup2+VmXvEKOx8gfahIivtDF+5Y3EWGr.TKer6Dg26Q.mo0ezK1NA2YK3odmsmWHNi2NbcXxwiwoNFLBE79u.iCto6481HNlEpyA3o8179mzq09LTus64VPa.YbLM31ca2.h+BYf1EP.kByHlBCBsiCvwnGnASDYFfgoCVrLN1cvhkGtnSaZXl7gg1CZv6ReNyL.lDleqgo81FGSJO1Yalm1vU6eXX33h5HLV4jxX0SJi0NoLt3IkwkNoLd0SJiK+rYD+kWtdWsrsMswwY6c1vzQfq6FBJDAZhVc9GvkYvcA
- Use a single panel, calculate the index of the slider you want to move from the mouse position, then call
setValue()
- No trigonometry was required, just calculate the y position to determine which slider you want by subtracting the slider height multiplied by the normalised x position. Yes, that's basically trigonometry, but yadda yadda...
- Use a single panel, calculate the index of the slider you want to move from the mouse position, then call
-
RE: Export Setup Wizard Problem
@Christoph-Hart Actually can you check where the msbuild path is?
Try this:
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\
that's where the exporter is looking for.
-
RE: Export Setup Wizard Problem
@fazzitog ah ok no that's fine, it's just complaining that you haven't passed a project file.
Can you export a project? Maybe it's a false positive in the export wizard.
-
RE: Export Setup Wizard Problem
@fazzitog For some reason the VS setup does not set the msbuild location to the environment variable PATH. I haven't tracked down why this is the case for some systems as usually this should be done during installation.
Open a cmd window, then type in msbuild. If you get an error message, then you need to search the directory where MSbuild is located and add that to the PATH environment variable. Once you can call msbuild from the command line, you should be able to export.
-
RE: New user here. Any SNEX tutorials?
@Morphoice Check the snippet browser. Help -> Browse example snippets. Use the
SNEX
tag, there are 3-4 examples that show how to use the API.Once you understand the basic API, you should be able to use generic DSP tutorials as the language is pretty similar to C++. But yes, I admit that the amount of examples and docs for SNEX are sparse compared to the rest of the stuff.
-
RE: Current status of Faust in HISE
@Mighty23 use the latest Faust and HISE versions. If you still have problems, then we can talk, but there are too many combinations of different versions that are impossible to track down.
-
RE: Simple ML neural network
@Dan-Korneff yeah I tried to write the wavenet layer today for RTNeural, by porting it over from the NAM codebase, but I don't know either framework (or anything about writing inference engines lol), so it wasn't very fruitful.
Let me know if you get somewhere then we'll try to load it into the HISE neural engine.
-
RE: Loving The New Welcome Screen!
@aaronventure Yeah, the preprocessors shown there are just the ones that I thought of yet, but we can add other preprocessors.
Maybe I'll wait a bit and we can assemble a few more preprocessors then I'll add them in one go.