[sharing] Buzz (MI Braids,Csnd)
A few weeks ago I started to try recreating in gen~ some algorithms from the source code of Mutable Instruments modules (https://github.com/pichenettes/eurorack). A lot of the time I end up giving up but I managed to recreate the Buzz algorithm from Braids (which is itself taken from the Csound opcode I believe).
Anyway, here it is.
Nice, Thanks!
Thank you very much, don't hesitate to share some other mutable instruments gen~ algorithms
Here are 2 other algorithms I adapted in gen~ codebox : the fold algorithm from Braids and the Analog Diode Ringmod algorithm from Warps. I have mixed feelings about the Diode Ringmod adaptation because even though the code was really straightforward to adapt and I managed to get some nice sounds out of it, I feel it didn't accomplish the goal.
Also it works mostly with sines or triangle waveforms . I know the Diode model comes itself from a recent Dafx paper so i might look into it as well.
hey, this is awesome.
Oh these are cool, thanks.
The dafx paper specifies some amount to upsample to reduce aliasing. I think it was 32x, I haven't looked at it in a long time. You could upsample the phase accum on the phase distortion oscillator to further reduce aliasing I bet.
On a semi-related note, here is a ringmod patch done with gen~ based on that paper. It uses a lookup table for the diode transfer function and you can mess with the diode shape inside the buffer.
thanks for sharing these, really cool.
@ CPTNFANTASY : Thanks for this! I added the X32 upsampling (forgot it was recommended in the paper) to your patch and did some amplitude modulation on the carrier and modulator - really rich sounds!
Here is another adaptation. It comes from a formant oscillator algorithm in Tides, or more precisely from Sheep, its wavetable based oscillator firmware I think. I added some modulation and a Beap sequencer for fun.
- really rich sounds!
part of the 'richness' is caused by the fact, that the buffer holding the transfer function in cptnfantasy's patch is a little too small. Adding "@samps 4096" to the buffer should yield a more truthful result.
Oh yeah you are right, thanks !
All very cool examples! Cheers!