SirSickSik Contributions


#60

hahahaaha!!!!! I ahvent tested all your oscillators yet, but are they non-aliasing? I remember testing a multiwave osc that you made and it had some aliasing problems. What about the other ones? Or maybe you could make a simple 3 waveform(or more) saw/square/sine oscillator that doesnt alias, pretty please??:)!!!!!

I cant wait to test your stuff! In the meantime, i found some tiny issues:
I couldnt find your new delay module. Even if i re-synced the libs.

And when i tested pitchshifter2 i get this (yes i renamed the pitchshifter):

Users/TRJ/Documents/axoloti/build/xpatch.cpp:220:49: error: 'class rootc::instancearray' has no member named 'writepos'
uint32_t delay1 = parent->instancearray_i.writepos - (_USAT(conv1,27)>>(27-parent->instancearrayi.LENGTHPOW)) - BUFSIZE + buffer_index;
^
/Users/TRJ/Documents/axoloti/build/xpatch.cpp:220:107: error: 'class rootc::instancearray' has no member named 'LENGTHPOW'
uint32_t delay1 = parent->instancearray_i.writepos - (_USAT(conv1,27)>>(27-parent->instancearrayi.LENGTHPOW)) - BUFSIZE + buffer_index;
^
/Users/TRJ/Documents/axoloti/build/xpatch.cpp:221:39: error: 'class rootc::instancearray' has no member named 'array'
pitch1= parent->instancearray_i.array[delay1 & parent->instancearray_i.LENGTHMASK]< ^
/Users/TRJ/Documents/axoloti/build/xpatch.cpp:221:78: error: 'class rootc::instancearray' has no member named 'LENGTHMASK'
pitch1= parent->instancearray_i.array[delay1 & parent->instancearray_i.LENGTHMASK]< ^
/Users/TRJ/Documents/axoloti/build/xpatch.cpp:223:49: error: 'class rootc::instancearray' has no member named 'writepos'
uint32_t delay2 = parent->instancearray_i.writepos - (_USAT(conv2,27)>>(27-parent->instancearrayi.LENGTHPOW)) - BUFSIZE + buffer_index;
^
/Users/TRJ/Documents/axoloti/build/xpatch.cpp:223:107: error: 'class rootc::instancearray' has no member named 'LENGTHPOW'
uint32_t delay2 = parent->instancearray_i.writepos - (_USAT(conv2,27)>>(27-parent->instancearrayi.LENGTHPOW)) - BUFSIZE + buffer_index;
^
/Users/TRJ/Documents/axoloti/build/xpatch.cpp:224:39: error: 'class rootc::instancearray' has no member named 'array'
pitch2= parent->instancearray_i.array[delay2 & parent->instancearray_i.LENGTHMASK]< ^
/Users/TRJ/Documents/axoloti/build/xpatch.cpp:224:78: error: 'class rootc::instancearray' has no member named 'LENGTHMASK'
pitch2= parent->instancearray_i.array[delay2 & parent->instancearray_i.LENGTHMASK]< ^
make: *** [/Users/TRJ/Documents/axoloti/build/xpatch.bin] Error 1
shell task failed, exit value: 2

Edit:
Just saw that maybe I have to Use Phi delay-write-pow-out to connect to one of the inlets. Will test tomorrow.

THANK YOU!!!!


#61

Maybe you can do cool allpass filter with modulateable delay? :innocent:


#62

Hi!

I can't see the /delay folder.
Also I wanted to try your demo patch but two objects can't be found. I replaced /pattern/RngCount by /patt/1RngCount but I can't find something to replace Oscillator/multifo.


#63

the multishape oscillator just has multi algorithms for different tonal characteristics. Some of the modes are actually meant to glitch and distord (especially the "glitch" osc and the random-mode, which just glitches all over the place), to be able to make straight out digital sounds. It could be seen as an extra oscillator next to your basic patch, to spice things up in all sorts of ways.

About the pitchshifter2 module:
I think you forgot to add the "delay write pow out" module of Phi (in his delay folder). Then add the name of this module's instance in the reference box and connect the "pow" output to the samplelength input of the pitchshifter2 module.


#64

Coolness! the one i was referring to was the "ShapingOsc". I experienced some aliasing with that. But i'll try out the multishape one:)


#65

delay folder should be there..
about the demo patch, it seems I accidentally saved the multishape LFO into my home library under "sss" instead of the community.. just uploaded it into the LFO folder
And I just see the same counts for the RngCount modules, though I've made new improved versions of those, so you better use those (plus they have a dedicated control module, so you only need 1 knob and 1 selector to control it! Somewhere coming week I'll make another upgrade to the controller so it also features preset save/load from tables, which I just did with another module :slight_smile: )


#66

ah ok, I'll get into that one as that one should work without alliasing indeed..
I think I made some mistakes with shifting bits.. but I'm starting to get used with that..
I just did a simple 12-step fir filter which can be used for anti alliasing


#67

Sorry for being so stupid.... But i got the pitchshifter running without giving me error messages. But i get no sound.
Its probably me:)

If i bypass the pitchshifter2 i get sound.


#68

you should send the audio to the phi delay module.
I accidently left the audio input on the pitchshifter, while I removed the delay-writing section, just removed it


#69

Aha! Working now:)
Thanks


#70

pitchshift2 is very nice!!! but i have to put a smooth before windowratio......


#71

NEW MODULE
PitchshifterAA
An anti-alliasing filter for the pitchshifter which filters the output depending on the pitch controls. It can be found in the fx map, next to the pitchshifter.


#72

NEW modulule:
folder: DIST:
oscillator based samplerate reducer. Each time the internal oscillator goes over zero, copies input to output. If rate itself is 0, then it copies the input to the output all time time( thru). Non-bandpass limited.


#73

ps. I had a couple of question coming to me about anti-alliasing/bandwidth-limiting oscillator modules.

As I'm using phase-distortion a lot myself, I especially want to keep the oscillators non-alliased, as a phase that smoothly goes back to zero, only adds umwanted harmonics instead of reducing them.. As I see it, anti-alliasing can always be done somewhere in the patch with an external module, if it's actually needed.
I'm pretty sure I'll come up with some modules to smooth out glitches and then you can choose yourself what kind of anti-alliasing you're gonna use.


#74

I have a feeling antialiasing isn't something that can easily be applied as a post-process, unless you want to render everything at a higher sample, rate, apply a steep low-pass filter, then reduce the sample rate again.

If you're specifically interested in phase distortion, as implemented by Casio, I did find an article about applying BLEP techniques to that, which might be of interest. I can't remember exactly where I found it now, but it should turn up with a bit of Googling.

a|x


#75

hm ok, I'll try to get into it a bit more then.. never really thought about anti-aliasing in synthedit as I didn't build my own objects anyway overthere.. just made tons of sequencers, synths and effects with the existing modules..
But as I've always done.. I'll just try to come up with my own ideas to fix this. Maybe I re-invent the wheel.. but I also get to know why it is invented the way it is..


#76

I know what you mean. I've just spend a chunk of time graphing MIDI note frequencies against integer 8000Hz cycle divisions (4000Hz/2000Hz/1000Hz etc.). I'm hoping to be able to tune my speech synth thingie (which renders audio samples at 8kHz) to semitones, over a couple of octaves or so. I can see the errors increasing as frequency goes up, but I don't have the Axoloti hardware to hand at the moment, so I can't tell how badly out-of-tune the thing actually sounds.

a|x


#77

I agree. Interesting strategies to reduce aliasing without going through full oversampling are BLEP, DPW (differentiated parabolic wave), and (E)PTR. some overview: http://users.spa.aalto.fi/vpv/DAFX13-keynote-slides.pdf
and some more details http://www.dafx.ca/proceedings/papers/p_169.pdf
http://www.idmt.fraunhofer.de/content/dam/idmt/en/documents/Personal%20Websites/Franck/publications/dafx2012_hoiws_talk.pdf


#78

NEW MODULES:

fx->phaser_HQ:
I've been trying to work out some anti-aliasing/interpolation for the delay modules which came out to be very nice for a HQ phaser effect, though the speed of the modulation is limited as I use a counter to go through the delay-buffer while using the phase itself to interpolate between buffer-steps. So be careful about going too fast, as this will glitch, but believe me... slow... you can go!

fx->grainshifter
On request of toneburst.
Not oversampled, nor interpolated until I find a way to better interpolate between samples at high rate (method used for module above, won't work here). What it does is that it restarts the recording buffer everytime the recorded carrier input crosses zero. Then it uses the modulator input (connect a phazor oscillator) to play this buffer like the normal delay-read modules. This results in some kind of granular pitchshifter where the pitch is corresponding to the pitch of the modulator while the waveform comes from the carrier input.


#79

SIIIIIIICK! cant wait to try out the phaser module!
Any chance you could make a glide/portamento per chance? The ones we have go from 10-100 instead of 0-100. (glide time).
And then both expo and lin glide curve switch!
If possible: HURRAY!
If not: Totally understandable
:slight_smile: