Looper / Recorder FX Plugin
-
Hey, I am playing with the idea of creating a free and open source glitch plugin with hise. Basically record a specific amount of bars and randomly play back sections of that recorded audio.
I see that there is the scriptnode recorder but the documentation is very thin on this node. Can someone help me get started. Is this idea possible at all with hise? How can I further use the recorded material in the recorder. Any tips here are much appreciated!
Thanks in advance
-
Yes the recorder might deserve a bit more love. Its basic functionality works but I never used it in a real project so I'm sure there's some issues along the way.
How it currently works is:
- Assign it an external audio slot. This is important so that other nodes can use the recorded material. You can then add another node (eg. a file player or granulator) and use the same slot there.
- Choose a recording length (in milliseconds)
- Set the first parameter to On. This will record the predetermined length and write it into the buffer.
- Once the recording is done, it will be used by whatever node you've connected it to.
-
@Christoph-Hart just for a sanity check here.
If i want to create a looper for a 8bar beat I would create 8 recorders and record them into a file player, slicing the incoming audio at every bar. Then I am able to further process the audio clips. loop, reverse them etc.
Can I also 'slice' the buffer into 8 pieces and only have one recorder then assigning each slice to a different player?
-
@oskarsh no you would need to use one recorder and then probably a SNEX node which does the custom playback / slicing. I'm currently working on a demo project in the
hise_tutorial
repo that you can use as starting point. -
Slight tangent but how are things looking for getting some kind of time stretching? Would be very useful with a looper.
-
@Christoph-Hart Thanks will check out the demo once its ready!
-
@oskarsh Alright, I've pushed a project to the tutorial repo. Make sure to use the latest develop branch build, I had to fix a few SNEX things (the new backend still needs some polishing) and the recorder node is also better now.
https://github.com/christophhart/hise_tutorial/tree/master/RecorderDemo
-
@Christoph-Hart said in Looper / Recorder FX Plugin:
@oskarsh Alright, I've pushed a project to the tutorial repo. Make sure to use the latest develop branch build, I had to fix a few SNEX things (the new backend still needs some polishing) and the recorder node is also better now.
https://github.com/christophhart/hise_tutorial/tree/master/RecorderDemo
Hi Chris, this demo make my HISE crash (I tried like 4-5 times), but other demo in the github is loading fine, can you check? Thanks
-
this demo make my HISE crash
Have you compiled the latest develop branch?
Slight tangent but how are things looking for getting some kind of time stretching? Would be very useful with a looper.
Actually I've found a super-awesome time stretching library which is MIT licensed:
https://github.com/Signalsmith-Audio/signalsmith-stretch
I've played around with it a bit and to my surprise the sound quality is on par with the Complex Pro algorithm from Ableton (which uses Elastique). The performance isn't quite there but the library isn't optimized very well (I think the author preferred simplicity and "educationalibility" over performance).
There are a few low hanging fruits (eg. replacing the custom FFT implementation with the fastest FFT implementations on each OS (IPP / vDSP / FFTW) and some other stuff, but I think this is the best fit so far.
-
@Christoph-Hart Oh yeah that sounds good, I've just been watching the ADC presentation, guy seems to know what he's talking about :)
Do you see this being added as an effect or would it be a parameter of the sampler/group/samples? Or both?
-
@d-healey I'm currently testing it with a simple buffer player node but I can see it being used at multiple places.
-
hey @Christoph-Hart this is cool! how do we compile it? im getting these errors
-
-
@d-healey thank you. when tying to complete this im getting an error during the compile dsp networks step "error C2386: 'snex_node_t'
: a symbol with this name already exists in the current scope". any idea what it means? -
-
@Adam_G I'm not a c++ wizard so this error doesn't mean anything to me out of the blue. If you could share a snippet or a screenshot (even in private if you want) I might be able to spot what's wrong
-
Yeah, that's on me - the code generator chokes when trying to compile a SNEX node that has a comment attached. Either wait for the fix (incoming), or remove the comment from the SNEX node in the network.
-
@Christoph-Hart thank you i shall wait for your update @Matt_SF thanks ill definitely take you up on that next time. its just the recorder demo atm though
-
@Christoph-Hart @Adam_G haha I don't know if I could have found this one