Happy to report this has been merged in to develop
branch!
Posts
-
RE: Any interest in a SemiTones control for Waveform Generator?
-
RE: Export Setup Wizard can't find xcpretty
@Christoph-Hart Just came back to look at this and finally solved it!
HISE uses the system Ruby version to look for xcpretty.
If you're using a Ruby version manager like rvm, Rbenv, ASDF or chruby you'll need to switch to the system Ruby to install xcpretty.
I use chruby so I did:
$ chruby system // or however your version manager switches to system Ruby // Confirm I'm using the system Ruby $ ruby -v ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin23] $ which ruby /usr/bin/ruby // Install xcpretty for the system Ruby $ sudo gem install xcpretty Password: ******** Fetching rouge-2.0.7.gem Fetching xcpretty-0.3.0.gem Successfully installed rouge-2.0.7 Successfully installed xcpretty-0.3.0 2 gems installed // Run the same command that HISE runs to make sure it's there $ gem list xcpretty *** LOCAL GEMS *** xcpretty (0.3.0)
-
Any interest in a SemiTones control for Waveform Generator?
It would be cool to have a SemiTones control in the Waveform Generator, like the Sine Wave Generator already has. It would allow for easy interval creation and control.
I checked the source code and it seems doable - unless I'm missing something, which I almost certainly am.
@Christoph-Hart would you accept a pull request for this if I could get it working?
Something like this:
-
RE: Preset browser in one line height?
@Morphoice For the effort you'd need to style the built in preset browser you may as well build it yourself.
I'm in a similar situation and just starting to build my own.
Would be good if there was a snippet for a simple preset browser. Shows a single list view of the available presets, No user save functionality. Just loading existing presets.
If I make anything that I'm remotely proud of I'll add it.
-
RE: Apple has finally included 16GB of RAM in the base model! :)
@bendurso For that price it's tempting to get the new M4 Mac mini just for compiling HISE and running Parallels for Windows exports.
-
RE: Loss of Image Definition?
@d-healey @Dan-Korneff @Oli-Ullmann Sorry, I was thinking about Maize Sampler
-
RE: Loss of Image Definition?
When you export at double size make sure the image name ends with @2x so HISE can recognize the format.Like this: "background @2x.png"EDIT: I don't think this is actually a thing in HISE. I was thinking about another app.
-
RE: Arp and its Octave setting
This looks like a fairly easy fix but a decision needs to be made about how to deal with notes above 127.
@Lindon @Oli-Ullmann What would you expect to happen if the arp tried to play a note above 127?
Would the note simply be ignored?
Would it be transposed down until it's within range?
Or something else? -
RE: Best resource for learning HISE?
@andrewz94 I also recommend David's YouTube channel, Patreon (with extra videos) and Music Hackspace course.
I'm in a similar position. Just beginning HISE and found the various resources to be quite scattered.
Read the docs, for sure, but they're out of date in places so if something doesn't work, or is confusing, just ask here and someone will point in the right direction.
If you don't know any code at all then watching David's videos (especially the Hackspace course) will get you going in the right direction.
It's possible to build quite accomplished plugins with zero, or very little code, You can connect UI elements (knobs, sliders, buttons) directly to modules (sound generators, effects, modulators like LFOs, etc) with drag and drop.
There's good variety in the built-in effects but if you need something more complex you'll need to look into Scriptnode, which although it sounds like scripting (code) it's actually another fairly beginner-friendly visual editor with drag and drop. It only turns in to code when you start to dig deeper.
I managed to build the plugin instrument I was aiming for by reading the docs, using the API reference (third tab in the left column of HISE), watching David's videos and asking questions here in the forum.
Good luck and keep us posted with what you're making!
-
RE: Anyone here use Gumroad or Lemon Squeezy?
@aaronventure The base Lemon Squeezy fee is much lower than Gumroad flat 10% (plus processing fees) but yeah, they do like to add on other fees for certain cases.
I'll have to look carefully at the numbers. I'm US_based at the moment and at least 50% of my sales come from the UK. However, we're planning a move to the UK soon so that might change the balance.
Just FYI, Lemon Squeezy allows up to a total of 5GB of files (single or multiple combined) per product. Which is more than enough for me but I know for some sample libraries this might be tight.
@orange As @aaronventure says, services like Gumroad and Lemon Squeezy take so much of the headache out of selling products and I'm more than happy to pay for that.
-
RE: How are external script files saved?
@Christoph-Hart said in How are external script files saved?:
@dannytaurus wait so youβre saying that recompile all scripts do not save the external files? Because that would be an easy fix and you wouldnβt have to retrain your muscle memory.
From my testing here on
db780f4f
it does not.Video here: https://wmd.d.pr/v/2bfsSz
I edit the external script, then Recompile All Scripts from the Tools menu. The UI flashes and the external script panel flashes, like it's compiling/saving. Then I save HIP with CMD+S and save XML with SHIFT+CMD+S.
Then when I quit and relaunch then reload the XML, the edits to the external file are gone.
If it is indeed a bug and you want me to open a GitHub issue let me know.
-
How are external script files saved?
I moved a bunch of code out of my
onInit
script today to external scripts likeFonts.js
,Laf.js
,PresetBrowser.js
, etc. and including them withinclude("Fonts.js");
inonInit
.After more work I realized that no updates to those external scripts were being saved. I was editing the scripts in the HISE code editor by selecting them from the dropdown at the top of the editor.
When I quit and relaunch HISE the external scripts are back in the state in which I created them - whether I load either the .hip or .xml.
In case it matters - I created the external scripts by selecting the code and using the 'Move selection to external file' context menu item.
While I work I regularly save by CMD+S (confirm twice) then SHIFT+CMD+S (confirm twice) - I still don't really understand the difference but I thought that would cover all bases.
Is this a bug or is there some other save I have to perform when editing external scripts?
-
RE: CSS Discussion
@Fortune Put both sets of box-shadow values on the same line with a space after the comma.
Works for me when I do that.
Looks like there might be something funky with the copy/paste code from neumorphism.io
-
Automation parameter grouping
Is it possible to group automation parameters together so they appear as a hierarchy in the DAW?
At the moment all automation params appear as a single list. My synth might have dozens of params, which will make the list a bit of a pain to use.
I naively tried putting the controls inside a panel and giving the panel a pluginParameterName (since a panel does have that parameter) but it didn't work.
Example: instead of the amp attack and amp release controls appearing as
Amp Attack Amp Release
I was hoping they would appear as
Amp > Attack Release
where Amp is the panel pluginParameterName and Attack and Release are the respective control pluginParameterNames.
@Christoph-Hart Could that be a way to implement it?
I realize that might technically mean duplicated automation param names but if they're prefixed by the panel name that would make them unique.
Bonus question (on the topic of automation) - what is the automationID parameter for?
-
RE: validate 3rd party licence key in HISE plugin?
@Straticah Unless you're already comfortable with the AWS ecosystem it might be overkill for something this simple.
You could check out Trigger.dev or other lightweight serverless function apps.
Or you could roll your own license validation using an automation platform like Make (https://make.com) very easily.
All you really need is a way to make a POST request with the license key, which will return an "active/inactive" response. You should also compare the email associated with the license with the email supplied by the user.
EDIT: looks like you might even be able to do all this within HISE using the
Server.callWithPOST()
function.
https://docs.hise.dev/scripting/scripting-api/server/index.html#callwithpost -
RE: parameterId mixup with Waveform Generator
@Morphoice Looks great! Congratulations!
I also would love to modulate the pulse width but I think I might be a bit out of my depth there. I'll certainly take a look and see if I can implement it though
-
RE: If scrolled away from the bottom, the console should not automatically move as new stuff gets printed
@aaronventure An autoscroll toggle would be cool for the console.
-
RE: Any interest in a SemiTones control for Waveform Generator?
@Christoph-Hart I created a pull request for this
Works great for me but you'll know if there are any performance implications or bugs in my code.
-
RE: Sliderpack CSS
I had a similar issue when styling a knob with CSS.
Not all the elements of the control are targetable with CSS selectors.
These replies might be relevant:
https://forum.hise.audio/post/87527
https://forum.hise.audio/post/87536
https://forum.hise.audio/post/87541Sounds like CSS will take us some of the way to simple customization but not all the way.
Coming from a web dev background I can imagine CSS being used extensively in the HISE UI system but it doesn't sound like that's the plan.
-
RE: String.split() bug??
@aaronventure Looks like an issue with multiple spaces. Not sure if it's a bug or a 'trimming' feature?
This works, of course (1 space):
const leString = "ABC 12345 67"; Console.print(leString.split(" ")[0]); // prints "ABC" correctly Console.print(leString.split(" ")[1]); // prints "12345" correctly
but weirdly so does this:
const leString = "ABC 12345 67"; Console.print(leString.split(" ")[0]); // prints "ABC" correctly Console.print(leString.split(" ")[1]); // prints "12345" correctly
So it looks like the spaces in the split function are collapsed to one space, which means they won't find the double space the string.