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

Synth with LFO Crossfading

Post any examples or modules that you want to share here

Re: Synth with LFO Crossfading

Postby Spogg » Fri Sep 27, 2019 4:43 pm

Just to explain things a bit better, and for fun, here’s a quick and dirty synth running purely in blue.

The envelope is modified so it runs directly off the green Env control signal, which follows the sequence I spoke about.

The tricky part now is to provide triggering and Env control from the highest note played, and that’s where I must defer to those of greater Ruby knowledge and skills than I.

Good luck!

Cheers

Spogg
Attachments
All in blue v0.001 .fsm
Made in 3.06 and ready for all those hit records.
(426.05 KiB) Downloaded 842 times
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Synth with LFO Crossfading

Postby tulamide » Fri Sep 27, 2019 7:39 pm

Spogg wrote:Here’s what I’m thinking…

When a MIDI event arrives Ruby evaluates it:
If it’s a note ON it’s compared with the existing note playing (if any).
If the new note is higher OR there’s no other note playing, Ruby calls a method to generate the required signals.
The same is done for a note OFF MIDI message. If it’s lower than the current note playing, it’s ignored. If it equals the current note a method is called to provide the signals for ending the note.

The Ruby code would generate 2 green signals:

1) The pitch of the note to be heard: a float 0-127.

2) The env control signal: Gives a very short value of 1 to start the envelope (in white poly it’s just 1 sample), then switches to and holds at a value of 3 until the note is released, whereupon it goes to 4 and stays there. The sequence is repeated for every new note to retrigger the envelope. Since this ADSR will be running in blue there is no need to close the channel after the envelope completes. This is because there is only 1 channel and it’s always running, so no Env prim is needed.

The Ruby output will be in green but it’s easy to convert to blue in DSP for the pitch to frequency and env control.

It's probably much more involved than I said, but it's maybe a starting point to think from.

Naturally I’ll help wherever I can, but not with the Ruby side. :lol:

Cheers

Spogg

The Ruby part was already laid out completely in my head, but I still don't understand the need for envelope stage generation. If I were able to program DSP code, I'd do it this way (remember it's about the mono OSCs):
1) On valid note on, Ruby sends a signal (a 1, or a boolean, whatever can be converted easily to DSP)
2) When this signal switches to true, a envvar is set to 1
3) On next sample set var to 3
4) wait for valid note off (sent by Ruby via 0 or false)
5) When this signal switches to false, set var to whatever the release phase is.
6) When release phase done, set var to 0

Point 6 of course needs to be cut short, when a note on arrives before the phase is done.In DSP code all of this is sample precise.
About the timing: Ruby is sync'd to sample rate, when working in a vst, or audio set to ASIO, when working in an exe. This has to do with the buffers that are used behind the scenes to allow sample precise DSP editing, so the only loss of preciseness comes from green, and as I understand green is needed.
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Synth with LFO Crossfading

Postby k brown » Fri Sep 27, 2019 8:39 pm

Not surprisingly this all quite over my head, but I'm glad you guys seem to find this an interesting challenge.

It would be so cool to have a synth that is simultaneously a two-osc monosynth and a single-osc poly (with the option of being a three-osc poly). With high-note priority one could hold a left-hand chord while playing a mono lead with right hand (the lead notes would be added to the chord, but still would be very musically useful); with pitch-bend and portamento only affecting the mono notes (which is how, I believe, the DS-2 functioned). Wow. Is there even a commercial soft synth that can do this?

Hope you guys are able to work this out, if even partially.
Website for the plugins : http://kbrownsynthplugins.weebly.com/
k brown
 
Posts: 1198
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: Synth with LFO Crossfading

Postby Spogg » Sat Sep 28, 2019 8:49 am

@ tulamide
Did you take a look at my All in blue synth yet?

Your Env control sequence is almost correct. The “resting state” should be 4 not zero. There is no need in blue to ever drop to zero. In fact if you drop to 0 you could halt a long release and get a stuck note sounding.

Note ON: 1 briefly (20mS is fine) then
Note sustaining: 3
Note OFF (key released) 4
No more notes yet: Resting at 4 until next Note ON.

If a note is stabbed on/off the Env control signal can go directly from 1 to 4. In this case the ADSR may not complete its Attack stage but will go to the Release stage from whatever value it’s at when the note is released.

The important thing is the Env control signal must go to 1 to (re)start the ADSR.

I was pleased to find that Martin’s envelope code handled the green signals directly, so no extra conversion was required.
You could maybe use my synth schematic to test your Ruby.

@Kevin
You would need a keyboard split point to do what you suggest. Otherwise the polyphonic “left hand” section would also play the lead notes from the right hand melody. Also, the highest note of the left hand chord would play the mono section if no right hand was playing. Of course, you may have realised this and would find it desirable.

I can’t think of a scheme to switch oscillators between mono and poly though. When I needed to select between poly and mono LFOs I had to duplicate them, so I had a mono one and a poly one and used a selector to choose.

Interesting stuff!

Cheers

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

Re: Synth with LFO Crossfading

Postby k brown » Sat Sep 28, 2019 9:39 am

Not having a DS-2 here to test, I was just trying to figure out how it's polyphonic saw oscillator would 'play' with the mono oscs 1 and 2. I think tula said he read the DS-2 was high note priority, so isn't what I described the way notes would sound on the thing? As a reminder, the DS-2 was a two osc monosynth with a third 'Poly' oscillator that was a 44-note polyphonic divide-down saw. So with a high-note priority keyboard what would happen if you held a chord with the left hand and played a lead line with the right? It didn't have keyboard split capability.
Website for the plugins : http://kbrownsynthplugins.weebly.com/
k brown
 
Posts: 1198
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: Synth with LFO Crossfading

Postby tulamide » Sat Sep 28, 2019 10:51 am

k brown wrote:Not having a DS-2 here to test, I was just trying to figure out how it's polyphonic saw oscillator would 'play' with the mono oscs 1 and 2. I think tula said he read the DS-2 was high note priority, so isn't what I described the way notes would sound on the thing? As a reminder, the DS-2 was a two osc monosynth with a third 'Poly' oscillator that was a 44-note polyphonic divide-down saw. So with a high-note priority keyboard what would happen if you held a chord with the left hand and played a lead line with the right? It didn't have keyboard split capability.

Yes, the poly section would play the chord from the left hand plus the melody from the right hand, and the mono section would play the melody. With gilde settings, you can even have stable chords plus moving melody notes. Unfortunately no video I found shows both sections in action, only either-or.

But on this German website there's sound examples, where you can hear what I described above. Scroll way down to the section "Klangbeispiele" (= sound examples), then click on 4. „Mellow“ for 16 seconds of an example.
https://www.amazona.de/blue-box-crumar-ds-2-analogsynthesizer/
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Synth with LFO Crossfading

Postby wlangfor@uoguelph.ca » Sat Sep 28, 2019 8:45 pm

I love the look, you've outdone yourself
My youtube channel: DSPplug
My Websites: www.dspplug.com KVRaudio flowstone products
User avatar
wlangfor@uoguelph.ca
 
Posts: 912
Joined: Tue Apr 03, 2018 5:50 pm
Location: North Bay, Ontario, Canada

Re: Synth with LFO Crossfading

Postby k brown » Sun Sep 29, 2019 6:34 am

I appreciate the kind words, but the design is that of Crumar, not my own. ;)
I just tried to copy it as best I could.
Last edited by k brown on Sun Sep 29, 2019 10:11 am, edited 1 time in total.
Website for the plugins : http://kbrownsynthplugins.weebly.com/
k brown
 
Posts: 1198
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: Synth with LFO Crossfading

Postby tulamide » Sun Sep 29, 2019 8:21 am

Spogg wrote:@ tulamide
Did you take a look at my All in blue synth yet?

Your Env control sequence is almost correct. The “resting state” should be 4 not zero. There is no need in blue to ever drop to zero. In fact if you drop to 0 you could halt a long release and get a stuck note sounding.

Note ON: 1 briefly (20mS is fine) then
Note sustaining: 3
Note OFF (key released) 4
No more notes yet: Resting at 4 until next Note ON.

If a note is stabbed on/off the Env control signal can go directly from 1 to 4. In this case the ADSR may not complete its Attack stage but will go to the Release stage from whatever value it’s at when the note is released.

The important thing is the Env control signal must go to 1 to (re)start the ADSR.

I was pleased to find that Martin’s envelope code handled the green signals directly, so no extra conversion was required.
You could maybe use my synth schematic to test your Ruby.

@Kevin
You would need a keyboard split point to do what you suggest. Otherwise the polyphonic “left hand” section would also play the lead notes from the right hand melody. Also, the highest note of the left hand chord would play the mono section if no right hand was playing. Of course, you may have realised this and would find it desirable.

I can’t think of a scheme to switch oscillators between mono and poly though. When I needed to select between poly and mono LFOs I had to duplicate them, so I had a mono one and a poly one and used a selector to choose.

Interesting stuff!

Cheers

Spogg

Yes, I had a look at it. The Midi Mono prim and the Ruby Monostable (I hear this quite often, even in Minecraft, when they do Redstone aka "electronics", but I have no clue what it means. It's just a true false switch, isn't it?) combined is what I have in mind to do in Ruby. I just still don't get, why the env generator is in green and not in dsp? That would be way tighter regarding timing.
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Synth with LFO Crossfading

Postby Spogg » Sun Sep 29, 2019 8:32 am

@tulamide
I listened to “Mellow” a few times and it confused my poor old brain as to exactly what was happening. :?
One thing I would say is that it sounded really nice and interesting, so I think it’s worth making a good simulation in FS.

If you can crack the mono high-note priority in Ruby I’m certain that Kevin could easily integrate it, and then we can all have a play.

I’ll help if needed, but I’ll be away for about 10 days from Tuesday.

Cheers

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

PreviousNext

Return to User Examples

Who is online

Users browsing this forum: No registered users and 20 guests

cron