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
Re: Synth with LFO Crossfading
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
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
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Synth with LFO Crossfading
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.
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
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.
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
@ 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
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
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Synth with LFO Crossfading
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
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
I love the look, you've outdone yourself
-
wlangfor@uoguelph.ca - Posts: 912
- Joined: Tue Apr 03, 2018 5:50 pm
- Location: North Bay, Ontario, Canada
Re: Synth with LFO Crossfading
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.
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
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
@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
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
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Who is online
Users browsing this forum: No registered users and 38 guests