SynthMaker

Sytrus Osc

Archive · 2007 21 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

nippybaynes404 ·

I have decided to share this as it will properly end up in our collab project. This is my first attempt at the osc's from Fruityloops's Sytrus (with the help of SamBeans's wavetable module). 😉

http://www.mediafire.com/?atewp2don0i

There are still a few thing missing at the moment, but most of the controls from it are there. May also need a little fine tuning in some areas. But it works just fine (I think)

If anyone has any problems with it please let me know. Any ideas for it would also be appreciated, as I'd love to add more shaping options to this thing. 😉

Thanks,

Nippy

nippybaynes404 ·

I found a little problem with one of the wave table sizes. It is now fixed.

infuzion ·

sounds cool!

Might want to add a common WinNT font to the "Alternative Font" in the Font primitive... since most of us don't have all the fonts you have on your harddrive 🙂 [old link]

nippybaynes404 ·

Fonts changed 😉 Thanks Infuzion (not all the fonts worked on my computer either). I ripped that fonts mod out of someone elces OSM , cant remember where though.

I have also fixed another problem I found with the skew when the wavetable was any thing other than 1024.

Nippy

exonerate ·

nice one nippy 🙂

i like the extra features you've added, especially the sine shaping 🙂

one thing i noticed, was inside the 'Bit & 255 (int)' module,( in the 0sc1024 module), the wireless link for the selector is not connect to anything. i think the link should be 'osc mode'.

also i think the extra round control is not really needed, it seems to me to do exactly the same as the tention control. and also this will be adding a bit more to CPU which in my opinion is not worth the extra because it doesn't do anything that the tention doesn't already do, although i maybe missing the point?

also looking at it briefly i can see a couple of small optimizations, i'll go through it later and see if i can get the CPU down a bit when moving sliders.

cheers 😉

exonerate ·

oh and nippy,

GET A BOX.NET ACCOUNT!!!!!!!

please 😇

AngularMomentum ·

Yeah, I can't download...I always have my cookies disabled, and sites like these just won't let me download anything without having their cookie...come on please....I am on a diet!! 😉 😈

nippybaynes404 ·

AM, whats your e-mail address? I will send it to you. I have fixed them probs exo found. Im very busy at the moment though but I will change it to boxnet later. The round is the same as tension (when tensions above 1/2), the reason I left it in is because the code is applied after the annalogue mod rather than before. (for example, lower the tension then raise the bend to see my main reason for leaving it in). 😉 Thanks exo, I think it needs alot of optimisation. Codings not really my area, so I will leave it in your hands. 😉 Any more probs, let me know.

nippy

micron ·

hello, try the free mediafire service for file sharing. http://www.mediafire.com

Cheers

Sal

rl ·

Hi Nippy,

if you want to reduce aliasing from your oscillator, within the OSC 1024 module replace all that stuff with a wavetable and a wavetable read primitive. Add a trigger input connected to the wavetable's create slot and within the parent schematic connect everything that could change the waveshape (sliders, selector,..) to the trigger input. It has the drawback that everytime the waveshapes are changed the wavetable has to be recalculated, but results in a much cleaner, bandlimited sound.

nippybaynes404 ·

O.K, thanks all. I have made another version using SM's 256 wavetable and put them both on 1 OSM. I have also changed the link to a more user friendly one. Can any-one tell me if the freq is right in this (SM's wavetable version) because the sine is clicking a little and Im not too sure if it is SM's wavetable or wrong frequency.

Nippy 😉

infuzion ·

Neat OSC man! Fun to play with for sure.

Question: why do you limit the signal to +/-1.01? Why not just 1, or 0.99999?

Small bugs: -Once you get to the stage of release, you'll need to add de-zipperswhere a knob connects to a stream directly, & can cause sudden jumps. -{edit} absolute doesn't really remove the negative sign; it squares the value, which changes the slopes. The fact that all values are positive are a by-product. If you want to remove the sign, use this ASM snipit from Sambean: streamin i;streamout o; int ABSMASK=2147483647; movaps xmm0,i; andps xmm0,ABSMASK; movaps o,xmm0; Or, if you also want to change the slope, might be a good idea to change the labels to "square" 🙂

I'm sure there can be alot of optimizing done, esp switching the sin1 to the ASM pseudo-sine...

nippybaynes404 ·

infuzion wrote: Neat OSC man! Fun to play with for sure.

Question: why do you limit the signal to +/-1.01? Why not just 1, or 0.99999?

Small bugs: -Once you get to the stage of release, you'll need to add de-zipperswhere a knob connects to a stream directly, & can cause sudden jumps. -{edit} absolute doesn't really remove the negative sign; it squares the value, which changes the slopes. The fact that all values are positive are a by-product. If you want to remove the sign, use this ASM snipit from Sambean: streamin i;streamout o; int ABSMASK=2147483647; movaps xmm0,i; andps xmm0,ABSMASK; movaps o,xmm0; Or, if you also want to change the slope, might be a good idea to change the labels to "square" 🙂

I'm sure there can be alot of optimizing done, esp switching the sin1 to the ASM pseudo-sine...

Thanks Infuzion. 😉 I knew about the absolute not being right but I didnt have a clue how to do it and that was the closest I could get it. Do you know what the actual code for the absolute is because I would love to know how it is done. I did try to limit the signal to 1 first but it was doing some silly stuff when the shape was square. By ASM do you mean convert the code to the assembler??? I have changed it on my version, the only reason I left it in was so people could see the actual code and tell me if I was doing anything wrong.

You must be a mind reader.... The round was actually called Square first, but I changed it to round because it doesnt fully square it off. Im useless with names and always seem to get them wrong (if youve seen my old posts then I'm sure you will agree).

Thanks for your help 🙂

Nippy

exonerate ·

ok i've given the osc a good optimizing, although CPU is still high,

http://www.box.net/shared/xlpka0l1l8

i've changed all sin1 for the approximation, and also changed most divides for multiplies, i've also cut down on the amount of redraws for the view.

i'm not seeing that big a difference really, i've used all my usual trick's but it still very high.

cheers 😉

nippybaynes404 ·

exonerate wrote: ok i've given the osc a good optimizing, although CPU is still high

Thanks alot Exonerate, you help is greatly appreciated. 😀

You said you swaped the devides for multiplies. Do devided take longer to calculate???

Tom7777 ·

I tried this, nice work, i dunno how cool it is to copy features from popular synths though but it's cool for learning no doubt, just when you use it in a synth that there might be issues. 🙂

nippybaynes404 ·

Tom7777 wrote: just when you use it in a synth that there might be issues. 🙂

Yes , indeed. I dont think image line (sytrus designers) would be very happy about this 🙁 (sliders in the same order and everything) I just like to try and recreate things, also for learning purpouses, and I like the challenge. I get a bit hard pressed for insperation some times, so think to myself "hey! I will just try and see if I can do what they done".

Although this is not the best technique, I like to do things this way sometimes as I tend to learn alot more if I am actually trying to do something inpaticuler.

Nippy. 😉

TheAudiophileDutchman ·

ok i've given the osc a good optimizing, although CPU is still high

Just for clarity, let's consider CPU usage in two different situations:

1. STATIC, no 'morphing' going on: CPU usage is unsurprisingly in the same order of magnitude compared to one of the standard SM oscillators in the toolbox and, given the to be expected overhead (and functionality) you get by using SM in the first place, there's not much extra to gain here. 🙂

2. DYNAMIC, moving one slider around: the taskmanager's CPU indicator now easily peaks up to 100% (despite optimisations), mainly due to non-hardware accellerated redraws and bandlimited wavetable (re-)calculations. These seem to be the real performance bottlenecks... 😊

exonerate ·

nippy wrote: You said you swaped the devides for multiplies. Do devided take longer to calculate???

yeah! you should avoid divides as much as possible especially in the code component. if you need to divide something by two, you should just multipy by 0.5 instead because multiplies are a lot faster.

if you need to divide by a larger number you can work out the multiply by first dividing 1 by your dividing number. so say you want to divide by a big number like 127, divide 1 by 127 which equals 0.00787402. then just multiply your value with this instead of the divide.

heres a link from the wiki you can check out which show you the amount of CPU cycles each arithmitic function takes.

http://www.cpuid.com/sse.php

choose 'divps' and look at the thoughput and latency, and then choose 'mulps' and see how many less cycles it takes.

cheers 😉

nippybaynes404 ·

Thanks alot exo, I had a look on wiki. 😀

Nippy,

I think you posted the wrong link 😉

Dave ·

For what is the slider "RN"?

I can't find it in the Sytrus help:

* Shape (SH) - Allows to morph the shape to sine, triangle and pulse (via the other modifiers you can also achieve saw and other shapes). * Tension (TN) - Sets the tension (distortion) of the base operator shape. * Skew (SK) - Allows you to "skew" the base operator shape. * Sine Shaper (SN) - Applies a transform which is useful for certain patch types (such as bells). * Pre-Filter (FL) - Applies a smoothing (low-pass) filter to the shape. This can reduce potential aliasing artifacts but makes the sound less bright. * Noise (NS) - Adds a real-time noise to the filter shape. This can be useful with plucked mode (which requires rich spectrum) and drum/percussion samples.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.