Granular Engine
-
Is this node in the scriptnode_codegen_rewrite build? I am not finding it in the current scriptnode version of Hise...
-
@crd Yep it's in the codegen rewrite.
-
What I am noticing though when using the granulator module is that CPU is hovering around 20%... But maybe I am doing something wrong here. I’d love to have a look inside this thing...
-
Yeah it‘s not optimized yet so if you bump up the grain density it burns unnecessary CPU cycles...
-
I just compiled codegen to experiment with this. It sounds interest but this type of fx would be way more useful to me applied to a sampler's sample map rather than embedded audio. I am having some success manipulating the midi into a sampler but just need to script some sort of voice stealing method to keep the number of voices down. As long as I don't play a 5 note chord everything works great.
-
I'm currently working on multisample support for this (and the other file-based nodes) so you can drop sample maps and SFZ files in there.
I think Christoph is working on this actually... This looks quite promising to me honestly... I mean the whole SNEX workbench thing is quite awesome I find... Not that I am on top of things yet, no, but there are tons of things you could do with it...
I was actually also trying to look into a more controlled way to handle voice count in my engine... still working on it.
-
@UrsBollhalder
whoops... sorry I missed that. yeah, that sounds amazing! The option of being able to work with all the DSP stuff is definitely exciting.
-
Anyone know where I can find the code for the Granulator to paste into a SNEX node? :)
-
@Christoph-Hart said in Granular Engine:
This is a bit counterintuitive, but the granular node is not polyphonic so you need to use it in the monophonic slot.
Granular synthesis normally handles multiple notes by distributing the (fixed amount of) grains across all pressed notes. So if you press one, key, 100 grains will play the single note. If you press another key, 50 grains will play the first note and 50 grains will play the second note (in a random order of course).
However this means that you do not require a polyphonic system which contain a state for each voice.
So:
- put in in the FX slot
- put it into a
container.midichain
node (this will make it process the midi data which is disabled by default for effects) - use the
Position
parameter to scan the waveform.
When I do as you instructed, the granulator works just fine. As soon as I try the same thing in the scriptnode synthesizer, I get clicks and pops. Is there anything additional I need to do to make it work there?
-
@UrsBollhalder
Where exactly are you putting the granular fx when you get it to work? I am getting crazy noise wherever I put it using a script FX or script node synthesizer using a sample map as a source.
(Unrelated, I have been getting good results with a script to limit the voices before a timer based granular script...)
-
Have you Guys Exported Your Project With Granulator Node?
Here Ableton Says That It Not Compatible
-
@crd I just did what Christoph said in his post... so in the midichain container basically... That does the trick. Also for sample maps...
-
@Natan said in Granular Engine:
Have you Guys Exported Your Project With Granulator Node?
Here Ableton Says That It Not Compatible
No. Not yet... I am playing around with it but I am mainly using my own Midi Script Processor that I wrote for the granular stuff... which works like a charm I have to say. And also I just don't feel at home yet with the whole scriptnode thing. But working on it! So Ableton complains specifically about the granulator node??
-
@UrsBollhalder
Sorry I should have been more clear, where are you placing the dsp script in the tree structure?
When I put it in as a ScriptFX, I am getting silence. It also seems to be sending a bunch of DC noise to the left out...
As a scriptnode synthesizer, it works but I am getting mostly just glitch. (Not granular glitch :) -
@crd said in Granular Engine:
@UrsBollhalder
Sorry I was more clear, where are you placing the dsp script in the tree structure?
When I put it in as a ScriptFX, I am getting silence. It also seems to be sending a bunch of DC noise to the left out...
As a scriptnode synthesizer, it works but I am getting mostly just glitch. (Not granular glitch :)Right now I have it in a container -- FX -- Script FX1... so no sampler, no nothing, just the Script FX!
-
@UrsBollhalder
Thank you.
Importing a single note works well. Using a sample map results in nothing but glitchy noise. Something similar to the granular engine in Omnisphere using sample maps in Hise would be incredible.
-
@crd said in Granular Engine:
@UrsBollhalder
Thank you.
Importing a single note works well. Using a sample map results in nothing but glitchy noise. Something similar to the granular engine in Omnisphere using sample maps in Hise would be incredible.
I remember having the same issue sometime ago… I am not sure what’s changed. Are you on the latest commit?
-
@UrsBollhalder
I am working in the latest develop build. I'll keep experimenting with it... Using a single sample is working well. Definitely more CPU efficient than using a timer. Although I am getting more musical results with the timer approach.
-
@crd how does the timer approach work? Would like to start experimenting with this kind of stuff soon
-
@DanH
This is the thread I followed :
https://forum.hise.audio/topic/3271/experimental-stuff?_=1625147982222The original snippet Lindon posted is working well in the latest develop branch.