Support

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

Prototype - Free running poly oscillators

Post any examples or modules that you want to share here

Re: Prototype - Free running poly oscillators

Postby Exo » Sun Jun 15, 2014 11:46 am

adamszabo wrote:Ok I managed to make it work. Hmm, I think you guys are not doing it the correct way, or at least the way it works in every other synth. When I have two oscillators slightly detuned, their phase offset should follow their relative frequency speed. But in the examples posted, it seems random, so one might as well just use a random number generator which is much simpler. I have posted an example of what I think it should be like. Each oscillator should have its own accumulator that is the same speed as the ramp itself, and when one stops playing a key and starts again, the phase should continue where it left off.

Unfortunately since I had to use mono even though its poly it sounds best only with mono voices :(


Thanks for the feedback. The aim is to get this working exactly like any other synth. I think the problem is in the implementation I have chosen, the phase is stored per note as opposed to per voice. I thought this would simulate the effect effectively. But I think other synths don't do it this way.

Of course free running oscillators in the mono section or with only one voice is easy for obvious reasons. The problem with poly is we don't have proper access to the voices and so requires some serious hacking ;).
Free running oscillators is the holy grail for me, no point in progressing with my synth without so gonna put everything into making this work right. :)
Flowstone Guru. Blog and download site for Flowstone.
Best VST Plugins. Initial Audio.
Exo
 
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK

Re: Prototype - Free running poly oscillators

Postby Exo » Sun Jun 15, 2014 11:47 am

KG_is_back wrote:Yes, that is the thing I have proposed. Current version saves the pases per pitch - so the phase will be recalled only when you press the same key - other keys have their own phase storages.

I have proposed a way that'll use memory queue to store phases. It would be a circular buffer. Every time you release the key, the phase is stored in the queue and queue end is increased by 1. Every time you press a key, the phase is recalled from queue start and start point is increased by 1. If start and end point are identical (which means queue is empty) zero phase is recalled instead.


Yes this sounds like a workable solution
Flowstone Guru. Blog and download site for Flowstone.
Best VST Plugins. Initial Audio.
Exo
 
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK

Re: Prototype - Free running poly oscillators

Postby adamszabo » Sun Jun 15, 2014 12:35 pm

Im glad others want free running oscs as well :) I am working very hard on a synth too, and this is a big deal for me, so lets band together and hack this thing :D
adamszabo
 
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Prototype - Free running poly oscillators

Postby KG_is_back » Sun Jun 15, 2014 1:03 pm

Here this one should work. However it is just a prototype so don't expect 100%performance and stability.
A BIG NOTE:
The mem->pointer converter is not 100%stable, because analyzer is quite buggy. Whn you open the schematic, connect a float to the pointer output. If it shows random number it should be working. If it outputs zero, then go inside the module, delete the analyzer primitive and replace it with new one (and don´t forget to connect it the same way it was). Reconnecting the analyzer will not help... you have to delete it and put in new one. After you do that the output of the module should be nonzero random float number.
Attachments
Free running poly osc 2.osm
(12.16 KiB) Downloaded 1404 times
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Prototype - Free running poly oscillators

Postby adamszabo » Sun Jun 15, 2014 4:27 pm

Cool, it almost works. The best way to test it is to have two saws and only slightly detune them so we can actually hear the phase difference. when you open the Schematic, it works great, but if you start detuning them and pressing some keys, the phase will get messed up after a while and it will be wrong for some reason.
Attachments
Free running poly osc 2.fsm
(146.65 KiB) Downloaded 1368 times
adamszabo
 
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Prototype - Free running poly oscillators

Postby KG_is_back » Sun Jun 15, 2014 8:01 pm

Double check whether both mem to pointer modules work correctly when desync happens. When they don't both phase writing and recalling will be bypassed.
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Prototype - Free running poly oscillators

Postby adamszabo » Tue Jun 17, 2014 4:55 am

KG_is_back wrote:Double check whether both mem to pointer modules work correctly when desync happens. When they don't both phase writing and recalling will be bypassed.


Im still having a hard time understanding your mem read/write hack, so I am not sure what to check for when this desync happens exactly.
adamszabo
 
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Prototype - Free running poly oscillators

Postby KG_is_back » Tue Jun 17, 2014 8:58 am

the pointer module should output nonzero value.
Attachments
memtop.png
memtop.png (57.99 KiB) Viewed 32337 times
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Prototype - Free running poly oscillators

Postby Exo » Tue Jun 17, 2014 10:38 am

KG_is_back wrote:Here this one should work. However it is just a prototype so don't expect 100%performance and stability.
A BIG NOTE:
The mem->pointer converter is not 100%stable, because analyzer is quite buggy. Whn you open the schematic, connect a float to the pointer output. If it shows random number it should be working. If it outputs zero, then go inside the module, delete the analyzer primitive and replace it with new one (and don´t forget to connect it the same way it was). Reconnecting the analyzer will not help... you have to delete it and put in new one. After you do that the output of the module should be nonzero random float number.


Nice work :).

I am currently developing a totally different way of doing this now which I think will work better going forwards. The analyser is a clever hack but as you say it is buggy.

Basically each oscillator has its own constantly running mono ramp which is set at a very low constant frequency. The frequency of the ramp is adjusted from a detuner(which is also detuning the osc). Each voice is using this same ramp but each note played samples the phase at different points so the phase for each note will be different but related.

Although not technically 'correct' I think this method is creating the sound one would expect from true free running oscillators.

I am going to do a few more tests and post this up tomorrow.
Flowstone Guru. Blog and download site for Flowstone.
Best VST Plugins. Initial Audio.
Exo
 
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK

Re: Prototype - Free running poly oscillators

Postby Exo » Wed Jun 18, 2014 6:30 am

Ok here is my latest prototype...

Free running poly osc new Prototype.fsm
(24.33 KiB) Downloaded 1387 times


It is very similar to the example that you posted adamszabo, but with some tweaks.

This method I think recreates how the phase on a DCO(Digitally controlled Oscillator) works. Basically each osc has it's own phase which comes from a 'master clock' this phase is the same for all voices. DCOs use a master clock to keep all the voices in tune which also means they have the same phase so to recreate a DCO we don't need to worry about setting the phase per voice just per osc. This sounds good to me and I reckon will be how many soft synths do it.

Each 'master clock' has a slightly offset phase from each other which enables that phasey sound and I change the frequency of the clock when detuning to offset/change the phase further. Let me know if this sounds OK to you.
Flowstone Guru. Blog and download site for Flowstone.
Best VST Plugins. Initial Audio.
Exo
 
Posts: 426
Joined: Wed Aug 04, 2010 8:58 pm
Location: UK

PreviousNext

Return to User Examples

Who is online

Users browsing this forum: Google [Bot] and 41 guests