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

The Quilcom 7SAW synthesiser

Post any examples or modules that you want to share here

The Quilcom 7SAW synthesiser

Postby Spogg » Sun Jun 04, 2017 2:21 pm

Hi all!

Time for a new synth.

This one explores an oscillator inspired by the Roland JP-8000 Supersaw.

Many thanks must go to Adam Szabo, whose definitive paper gives insight into what Roland achieved. I’ve included his paper in the zip so you can read about the technicalities and how he analysed so cleverly what was going on. Also many thanks, as ever, to Martin Vicanek whose work I make extensive use of.

Key features emulated here are:
-7 aliasing sawtooth oscillators to give a richer HF content
-Tracking HPF to remove aliasing lower than the fundamental
-Polyphonic random phase offset, per note played, for the 6 detunable side oscillators
-Mixing to provide compensated levels

In addition the 7 oscillators are spread equally across the stereo field (can be reduced to mono).

The Synth’s architecture is very simple but a rich and varied range is possible, as per my presets.

There is a demo and user guide at

https://youtu.be/exQE1l0nW-k

Zip includes Adam’s paper, the schematic, the plugin and the factory presets:

https://www.dropbox.com/s/38t9xv9xqpts9 ... 4.zip?dl=0

Any comments would be very welcome!

Cheers

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: The Quilcom 7SAW synthesiser

Postby adamszabo » Sun Jun 04, 2017 4:50 pm

Cool, im glad you found my little paper userful! Sounds pretty cool! I checked your schematic and you are using a way too complicated method for the phase randomisation. You can use assembly to same a LOT of cpu for this task. This is how I did it in my synth ;)

Btw, yes you said my name correct haha. In Hungarian when the S and Z are beside each other you pronounce it like an english S like in 'snake'. When the S is alone you say it like 'Shh'
Attachments
random_phase.jpg
random_phase.jpg (304.93 KiB) Viewed 32309 times
adamszabo
 
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: The Quilcom 7SAW synthesiser

Postby tulamide » Sun Jun 04, 2017 4:57 pm

Since it is based on Adam's work I think it's fair to point to his awesome synth as well: http://www.adamszabo.com/jp6k/
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: The Quilcom 7SAW synthesiser

Postby Spogg » Sun Jun 04, 2017 5:43 pm

adamszabo wrote: I checked your schematic and you are using a way too complicated method for the phase randomisation. You can use assembly to same a LOT of cpu for this task. This is how I did it in my synth ;)


Thanks Adam! Glad I said your name right too.

I tried various schemes for the phase randomisation but I found that whenever a channel opened (note pressed) I got the same random numbers every time. In the end my scheme was based on 6x free-running (mono) white noise modules (thanks Martin!) with different seeds converted to poly and then I always get unique spreads. Could you tell me whether your scheme will always start with a unique value set from those rand functions?

@tulamide thanks for that link and he does deserve the plug. The demos sound fantastic and he deserves to sell loads. Of course his synth is a full emulation whereas mine just explores the Supesaw concept itself, more as a kinda demo/experimental thing.

Don't you just LOVE Flowstone?

Cheers

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: The Quilcom 7SAW synthesiser

Postby adamszabo » Sun Jun 04, 2017 5:55 pm

Thanks Tom, I didnt want to do any self advertising :lol:

Spogg, yes, try it out! You get a different random unique number from each output everytime you press a new key. Connect a white readout primitive to it and you can see it.
adamszabo
 
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: The Quilcom 7SAW synthesiser

Postby Spogg » Mon Jun 05, 2017 8:36 am

Thanks Adam, I will try it in the near future and check the CPU saving.

I must assume that the RAND function is somehow invisibly seeded so that when the channel is opened you don't always get the same result. Fascinating!
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: The Quilcom 7SAW synthesiser

Postby Spogg » Mon Jun 05, 2017 3:39 pm

Well I have to thank you so much Adam :D

The CPU dropped to nearly half with your asm code :o

I've put the new version 1.03 as the Dropbox link on the first post (and on flowstoners) and recommend folk download it again due to the CPU saving.

Adam, I made this work easily in DSP too (slightly higher CPU) but when I checked there is no reference to the rand function in the manual. This annoys me a bit because, had it been available I would have used it. Since there is no info there is no syntax for its use either. Could you possibly explain why we need to create a Float Array for the rand function and not just a regular float?

float rand1[1] = rand(0,1); This works
float rand1 = rand(0,1); This doesn't work.
Also can I put any upper and lower limit in the brackets?

Sorry to be a pain but I want to "get" this, if you don't mind.

Thanks again Adam!

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: The Quilcom 7SAW synthesiser

Postby adamszabo » Tue Jun 06, 2017 11:39 am

Unfortunately, I am not an expert at that code, I just got it like you did from me, but to my understanding, we have to create an array to fill it with the random numbers. You can also call that variable MyRandomArray[1] if you want, it does not have to be rand1[1]. The 1 in the bracket means the size of the memory, I think 1 means 4 bytes or something? Also, yes you can put other limits in your brackets. (-2,2) will do the random number between -2 and 2.

Perhaps Martin on MyCo can expand on what I wrote to clear things up ;)
adamszabo
 
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: The Quilcom 7SAW synthesiser

Postby Spogg » Tue Jun 06, 2017 5:11 pm

I found a duplication error in the parameter naming :oops:

I've corrected 5 presets it affected and put the version 1.04 in the first post. No sounds changed and the preset folder is up to date now.

Cheers

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: The Quilcom 7SAW synthesiser

Postby martinvicanek » Tue Jun 06, 2017 8:08 pm

The rand() function is mentioned on page 242 of the User Guide. Apparently it may be used to initialize an array with random values.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Next

Return to User Examples

Who is online

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