If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
The better Multi-Osc
21 posts
• Page 1 of 3 • 1, 2, 3
The better Multi-Osc
I recently noticed that people still tend to grab the stock Multi-Osc from the toolbox, when prototyping. But Martin made some awesome replacements that are 10x less cpu demanding while having a more precise output.
Just so that you understand it right: Where you can use one stock oscillator, you can use up to ten of MV's oscillators!
They came in a set of individual modules. The stock Multi-Osc module is a bit more convenient. So I made the very same module with Martin's oscillators. To easier see the difference in the toolbox, I also refined the graphics to have a more modern look.
Please, add it to your toolbox and use it instead, whenever you want to grab the stock module
Just so that you understand it right: Where you can use one stock oscillator, you can use up to ten of MV's oscillators!
They came in a set of individual modules. The stock Multi-Osc module is a bit more convenient. So I made the very same module with Martin's oscillators. To easier see the difference in the toolbox, I also refined the graphics to have a more modern look.
Please, add it to your toolbox and use it instead, whenever you want to grab the stock module
- Attachments
-
- multi_osc.fsm
- New version! Updated to reflect the changes made by Martin.
- (20.95 KiB) Downloaded 1347 times
-
- multi_osc.fsm
- Former version. Deprecated.
- (27.71 KiB) Downloaded 1242 times
Last edited by tulamide on Mon Jul 13, 2015 5:01 pm, edited 2 times in total.
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: The better Multi-Osc
Cool. Why not toss in the other oscillators for good measure?
I notice you set TextRenderingHint to '7'. To my knowledge, only values 0-5 are valid. Is that intentional? I think 5 (cleartype) reads much better.
I notice you set TextRenderingHint to '7'. To my knowledge, only values 0-5 are valid. Is that intentional? I think 5 (cleartype) reads much better.
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: The better Multi-Osc
Martin also made noise generators with superior value distribution. Frequency may be used as a seed.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: The better Multi-Osc
KG_is_back wrote:Martin also made noise generators with superior value distribution. Frequency may be used as a seed.
Of course! How could I forget about the noise osc? I even have it categorized in my toolbox!
It's implemented now!
Perfect Human Interface wrote:Cool. Why not toss in the other oscillators for good measure?
I notice you set TextRenderingHint to '7'. To my knowledge, only values 0-5 are valid. Is that intentional? I think 5 (cleartype) reads much better.
Thanks! Corrected TextRenderingHint. It was indeed meant to be 5. But I know where it comes from. For the color mixer I was using the little arrow for the spectrum and gradient displays, passed by id - which is 7
There's only one additional non-noise osc: Parabola. It's implemented now.
For download, see first post.
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: The better Multi-Osc
Hi,
I really like these oscillators !!!
I am in the process of adding non-BW-limited outputs to the assembly code versions...
My setup is using them in quadrature, but I have noticed something when using these oscillators, the phase seems to drift...
For example if I set the phase of 2 oscillators to 0.00 and 0.25, initially everything is fine, but after a minute or so the phase drifts. It matters to me only because I want to use these oscillators for drawing a circle or other complex shapes, and if the phase drifts the "Spiro-graph" (for lack of a better term) also drifts and the image is not symmetric anymore. I have been using Flowstone (and Synthmaker) for the past few years drawing shapes and patterns in laser (think o-scope).
Here are some images of the issue and the FSM file. I am using 3.0.5 Amber.
Here is the FSM file as well...
Possibly a numeric precision issue when calculating the phase and or frequency(?)
Thanks for any insight into this or hopefully a fix,
Aron
I really like these oscillators !!!
I am in the process of adding non-BW-limited outputs to the assembly code versions...
My setup is using them in quadrature, but I have noticed something when using these oscillators, the phase seems to drift...
For example if I set the phase of 2 oscillators to 0.00 and 0.25, initially everything is fine, but after a minute or so the phase drifts. It matters to me only because I want to use these oscillators for drawing a circle or other complex shapes, and if the phase drifts the "Spiro-graph" (for lack of a better term) also drifts and the image is not symmetric anymore. I have been using Flowstone (and Synthmaker) for the past few years drawing shapes and patterns in laser (think o-scope).
Here are some images of the issue and the FSM file. I am using 3.0.5 Amber.
Here is the FSM file as well...
Possibly a numeric precision issue when calculating the phase and or frequency(?)
Thanks for any insight into this or hopefully a fix,
Aron
-
aronb - Posts: 154
- Joined: Sun Apr 17, 2011 3:08 am
- Location: Florida, USA
Re: The better Multi-Osc
Yes, I see where's the problem:
Note, this is the code version of what's happening under the hood in assembly.
Notice, when "ramp" is of several orders smaller than phase it looses precision when "ramp=ramp+phase" and later "ramp= ramp - phase". This is often use in denormal protectors, to round very small values to zero (basically rounds the value to certain number of decimal digits), but in this case it does harm, because when ramp is very small (and increments in very small steps = LFO) it gets rounded by different amounts depending on size of "phase".
FIX:
This will add the differential of phase to the ramp ( = when phase changes, the ramp changes by that change). Martin if you're reading this, please update your osc schematics.
Note, this is the code version of what's happening under the hood in assembly.
- Code: Select all
//calculate ramp:
ramp=ramp+ phase + freq*0.5 ;
ramp2= ramp % 1; //this is for float numbers - the remainder may (and is) a fractional - not integer.
ramp=ramp2-phase;
out=sin1(ramp2);
Notice, when "ramp" is of several orders smaller than phase it looses precision when "ramp=ramp+phase" and later "ramp= ramp - phase". This is often use in denormal protectors, to round very small values to zero (basically rounds the value to certain number of decimal digits), but in this case it does harm, because when ramp is very small (and increments in very small steps = LFO) it gets rounded by different amounts depending on size of "phase".
FIX:
- Code: Select all
//calculate ramp:
ramp=ramp+ (phase-Pphase) + freq*0.5 ;
ramp= ramp % 1; //this is for float numbers - the remainder may (and is) a fractional - not integer.
out=sin1(ramp);
Pphase=phase;
This will add the differential of phase to the ramp ( = when phase changes, the ramp changes by that change). Martin if you're reading this, please update your osc schematics.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: The better Multi-Osc
KG_is_back wrote:Martin if you're reading this, please update your osc schematics.
No need to. Martin once published "MVsLFOs.fsm", with 5 waveforms, plus 4 random lfos. He even made it into a "multi-lfo" module. I just don't remember the source link.
EDIT: here's the link, http://www.dsprobotics.com/support/viewtopic.php?f=3&t=2871&p=15664
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: The better Multi-Osc
Are these Band Width Limited ?
The previous oscillators had an option to use a non band width limited output, all you have to do is add the connector.
Thanks,
Aron
The previous oscillators had an option to use a non band width limited output, all you have to do is add the connector.
Thanks,
Aron
-
aronb - Posts: 154
- Joined: Sun Apr 17, 2011 3:08 am
- Location: Florida, USA
Re: The better Multi-Osc
Thank you tulamide for integrating my stuff.
Correct, there is a phase drift due to floating point arithmetics. I have a fix using fixed ponit arithmetics but it will take a while to update all schematics. In the meantime, use the dedicated quadrature oscillator in my schematic at download/file.php?id=3797 where the relative phase does not drift away from 90 degrees.aronb wrote:My setup is using them in quadrature, but I have noticed something when using these oscillators, the phase seems to drift...
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: The better Multi-Osc
Martin,
Thank you for doing this, your work is incredible ! The assembly language make using many oscillators way better than the stock oscillators !
A quadrature oscillators (sine/cosine, tri/qtri, square/qsquare, ramp/qramp) AND multiple oscillators (same) with phase controllability are key to my image synthesizer.
I appreciate your efforts and will start posting back some of my work as soon as I get something worthy of this forums level of expertise !!!
Aron
Thank you for doing this, your work is incredible ! The assembly language make using many oscillators way better than the stock oscillators !
A quadrature oscillators (sine/cosine, tri/qtri, square/qsquare, ramp/qramp) AND multiple oscillators (same) with phase controllability are key to my image synthesizer.
I appreciate your efforts and will start posting back some of my work as soon as I get something worthy of this forums level of expertise !!!
Aron
-
aronb - Posts: 154
- Joined: Sun Apr 17, 2011 3:08 am
- Location: Florida, USA
21 posts
• Page 1 of 3 • 1, 2, 3
Who is online
Users browsing this forum: Majestic-12 [Bot] and 55 guests