From the original SynthMaker forum (2004–2014), with its members’ names and dates.
MDMA ·
Hi guys,
I have been trying to create something very similar to a kick synth called Bazzism but with other options.
Now, I was able to recreate all the controls except this one:
I cant understand how they did it and what it really does!
In their manual they refeer to this control as "tSweep" and include a graph that leads me to think that its the time that velocity takes to go from 0(min value) to 1(max value) but I have tryed it out (by aplying a volume sweep to a plyphonic signal) and it gives me an unwanted fade in in volume oposite to Bazzism that doesn't.
Now my guess is that the transulation in the manual is incorrect and the control is doing something else or maybe they are applying something else, I dont really know.
This is the manual:
BazzISM2 Manual
To the human ear, a fast sequence of sounds appears to be simultaneous. In this
way BazzISM2 creates a bass kick by a short sinus sweep.
The Parameters:
Main Page
fStart:
The start (highest) frequency
fEnd:
The end (lowest) frequency, will also be played out while the time tEnd.
tSweep:
The duration of the sinus sweep.
tEnd:
The duration of the time after the sweep, where the constant frequency fEnd is
played out.
vSweep:
The frequency change’s velocity while the sweep:
tDecay:
Decay time.
Volume:
Over all volume.
Polyphony:
With activated polyphony, overlapping bass kicks will be played out.
Without activation, the start of a basskick will terminate the previous one.
MidiStop:
Bass kicks will be ended by Midi Off, if MidiStop is activated. Else they will be
played in full length.
And that is literaly it.
You can get the plugin demo here:http://www.ismism.de/BazzISM.htm
Please help and thank you in advance.
cyto ·
From the description, it looks like the control affects the curve of the frequency sweep and has nothing to do with "velocity" (in the midi sense). There was some discussion not too long ago about frequency sweeps for percussion synths here on the forum. I'll see if I can find it.
-cyto
EDIT: here you go: Fast pitch envelopes for kicks, lasers, ...
MDMA ·
cyto wrote: From the description, it looks like the control affects the curve of the frequency sweep and has nothing to do with "velocity" (in the midi sense). There was some discussion not too long ago about frequency sweeps for percussion synths here on the forum. I'll see if I can find it.
-cyto
EDIT: here you go: Fast pitch envelopes for kicks, lasers, ...
I came to build most of it with the help from that topic.
I've used your "pitchEnv1.osm" and got good results but how would you go about affecting that curve?
Maybe is the wideness of the sweep, but how to widen it?
cyto ·
MDMA wrote: but how would you go about affecting that curve?
I've attached an osm of how I would go about it. Maybe this is the type of thing your looking for. Basically, it's a slightly more elegant form of the pitch envelope thingy I did in the other thread. In that one, the "sweep" was tied to the duration of the note. In this one, the sweep is independently adjustable. What's going on inside is the "env" primitive triggers an impulse sample during its attack phase. This impulse sample is then run through a logarithmic slew limiter-type thing that provides for a nice pitch-scaled sweep through the frequency range (start freq - end freq). The "length" knob simply adjusts the severity of the slew limiter. You can just plug the module directly into the "freq" input of your oscillator and you should be good to go (make sure the input calls for normalized freqs). I also included a separate little knob/graph demo so you can see how the changes of the "length" setting affect the curve. Is this the type of thing you had in mind?
-cyto
MDMA ·
cyto wrote:
MDMA wrote: but how would you go about affecting that curve?
I've attached an osm of how I would go about it. Maybe this is the type of thing your looking for. Basically, it's a slightly more elegant form of the pitch envelope thingy I did in the other thread. In that one, the "sweep" was tied to the duration of the note. In this one, the sweep is independently adjustable. What's going on inside is the "env" primitive triggers an impulse sample during its attack phase. This impulse sample is then run through a logarithmic slew limiter-type thing that provides for a nice pitch-scaled sweep through the frequency range (start freq - end freq). The "length" knob simply adjusts the severity of the slew limiter. You can just plug the module directly into the "freq" input of your oscillator and you should be good to go (make sure the input calls for normalized freqs). I also included a separate little knob/graph demo so you can see how the changes of the "length" setting affect the curve. Is this the type of thing you had in mind?
-cyto
Thanks a lot Cyto, very kind of you to make a new version, It's closer to what I was looking for but not quite there yet, only because I want to give the user the option to use pitch follow.
I had a go at it but when pitch follow is on there are inconsistencies and when I move the tune and fine knobs it takes too long to respond, probably due to my lack of knoledge and experience.
This OSM is quite messy(sorry) but here it is:
cyto ·
MDMA wrote: {...}I want to give the user the option to use pitch follow.
I had a go at it but when pitch follow is on there are inconsistencies and when I move the tune and fine knobs it takes too long to respond, probably due to my lack of knoledge and experience.
The different data types in SM (poly,mono,green,etc) generally don't play together nicely. Green data especially doesn't play well with the other data types because it is on a completely different CPU thread. So a good rule of thumb is to try to minimize the conversion between data types as much as possible. In your schematic, you are summing all the poly voices together (in the poly to mono primitive), converting it to green (in the mono to float primitive), doing some math (often with poly) in green, then converting back to poly. After you work in SM awhile, you'll get a feel for how to handle each data type and it will start to make sense (maybe 😉 ).
See if this version suits your needs better. I basically integrated a key follow control into the code, much the same way you would do it with a filter. You can go from 0% where the base frequency stays static no matter what note you hit all the way to 100% where it follows your midi note exactly. This way it is continuously adjustable rather than just on/off. I did change the "start freq" control to a "range" control (because the exact frequency will change depending on the KF setting). If you hit the little "p" at the bottom of the module, you can open up the properties panel to set the max value for the range control. If you look in the code box, you'll also notice I added a line to protect the osc from going over nyquist. Hopefully, this is getting a little closer to what you're looking for. Let me know if you need anything explained.
-cyto
MDMA ·
Man, I have to thank you for this, you've been very explanatory and helpfull but I found that the following happens:
When I increase the value of keyFollow the pitch goes really high for some reson and I cant seem to get a kick out of it.
???
PS: It sounds better to the ear now.
cyto ·
MDMA wrote: When I increase the value of keyFollow the pitch goes really high for some reson and I cant seem to get a kick out of it.
???
A keyFollow of 100% means that the ending pitch equals the actual note you are playing. The sweep will start from that freq plus whatever range you have set. So yeah, If you have the keyFollow set high and are playing notes above the first octave or so, they are definitely not going to sound like kick drums. You could detune the frequency going into the pith envelope by an octave or two (or three) to force the final KeyFollowed sound down into a more appropriate range.
-cyto
MDMA ·
cyto wrote:
MDMA wrote: When I increase the value of keyFollow the pitch goes really high for some reson and I cant seem to get a kick out of it.
???
A keyFollow of 100% means that the ending pitch equals the actual note you are playing. The sweep will start from that freq plus whatever range you have set. So yeah, If you have the keyFollow set high and are playing notes above the first octave or so, they are definitely not going to sound like kick drums. You could detune the frequency going into the pith envelope by an octave or two (or three) to force the final KeyFollowed sound down into a more appropriate range.
-cyto
Thanks for the explanation Cyto, I didn't realise that!
MDMA ·
I still didn't found a way to create this velocity sweep control, lol.
Cyto, you mentioned that the env primitive is creating the sweep and the lenght control only controls how much of the env is sent? Is that it or did I missunderstood it?
Aparantley to create this control we need to affect the sine sweep curve, winch I think thats what you've done with the lenght control, right? That control is changing the the curve and therefore increasses the lenght, right?
Now the purpose of this topic was realy to have 2 separate knobs, where one controled the lenght and the other the curve.
Do you know of a way to make this happen?
Maybe use a different envelope with more conrol?
I've been doing some trial and error with it for ages and can't get there, please help.
cyto ·
I had almost forgotten about this topic. Interestingly enough, my "big" project that I happen to be working on right now is a (performance) drum synth. When I get to a point where it's somewhat presentable, I'll post some examples. It has some crazy things going on in it with the envelopes (multi-attacks, sympathetic envs, scale-able curves, velocity-sensitive responses, etc, etc). but I digress...
If I'm interpreting your problem correctly, I think the issue might have to do with the difference between the "pitch" envelope and the "amp" envelope. My example above just affects the pitch. The way it's set up, as the envelope theoretically never quite reaches the base frequency, therefore "length" is probably a misnomer. Perhaps "steepness" is better. I think what you're looking for in the "second" knob is something to adjust the length of the note. Right? If that's the case, you will need to have a separate "amp" envelope. There is already one in the above example. To turn it into a "proper" drum envelope, adjust the Attack to taste, set the Sustain to 0, and hook up a knob that sends the same value to both the Decay and Release. Is that what you mean?
-cyto
MDMA ·
cyto wrote: I had almost forgotten about this topic. Interestingly enough, my "big" project that I happen to be working on right now is a (performance) drum synth. When I get to a point where it's somewhat presentable, I'll post some examples. It has some crazy things going on in it with the envelopes (multi-attacks, sympathetic envs, scale-able curves, velocity-sensitive responses, etc, etc). but I digress...
If I'm interpreting your problem correctly, I think the issue might have to do with the difference between the "pitch" envelope and the "amp" envelope. My example above just affects the pitch. The way it's set up, as the envelope theoretically never quite reaches the base frequency, therefore "length" is probably a misnomer. Perhaps "steepness" is better. I think what you're looking for in the "second" knob is something to adjust the length of the note. Right? If that's the case, you will need to have a separate "amp" envelope. There is already one in the above example. To turn it into a "proper" drum envelope, adjust the Attack to taste, set the Sustain to 0, and hook up a knob that sends the same value to both the Decay and Release. Is that what you mean?
-cyto
I'm afraid that is not what I meant.
Sorry for not being so explanatory with my questions.
What I meant is that the extra control (velocity sweep), its not really to affect velocity but to affect the sine sweep curve, this control should enable us to bend the sweep curve in time.
Hope you understood and thanks again for the help. 😉
cyto ·
Okay. I think I understand. See if this is closer to what you're trying to do...
It approaches the envelope in a slightly different way than the first couple of examples. Instead of just having a simple exponentially-scaled pitch decay with adjustable time, this one uses a mapping function to produce the pitch curve (props go to martinvicanek for the mapping transfer that this is based on). So, now you'll see a new knob "slope". When it is at 0% the curve is just like it was in the first examples (exponentially-scaled). However, now you can increase it to get a more convex slope (pitch hangs at the starting value longer) or decrease it to get a more concave slope (pitch decays faster and hangs more at the ending value). I was going to put together a little graph to illustrate, but I opted instead to just put an FFT display in the schematic. Because the oscillator is a sine, you can clearly see how the slope is affected. Are we getting closer?
-cyto
MDMA ·
This might just be it, at least is what I was trying to do, although I believe they've used other tricks also when building bazzism because it sounds so round and punchy and I'm having a lot of troubble getting such a kick but as they say: Different plugins different sound, as long as it sounds good and punchy that's cool!
I'm gonna mess arround with it in order to implement it into my plugin and check the results.
Thanks a lot Cyto!
I'm curious about that drum synth you've mentioned, let us know when you post it!
All the best!
MDMA ·
Now I cant implement your example into mine, lol.
What I had b4 is bellow!
Notice that when you move the endPitch(low) knob it doesn't affect the range(hi), and it follows the pitch as I dont want to have the option of not following it.
I want to integrate a slope knob in this example like you did but allready pulled out some of my hair trying to do it, lol.
Hope you can help and I hope not to bother you more!
Thanks in advance.
nix ·
I'll pm u my kick synth to look at.
It was originally built by Nippy Baynes for the SM GrooveBox collab.
The best trick in it is the amp envelope.
it goes like this->
|\|\
All success
cyto ·
MDMA wrote: What I had b4 is bellow!
Notice that when you move the endPitch(low) knob it doesn't affect the range(hi), and it follows the pitch as I dont want to have the option of not following it.
I had a chance to look at your example. I think a solution will be really easy, but I'm having a little trouble understanding what's going on in there. Just to clarify, if the osc is going to follow the pitch of the midi note, do we need to have the "ending pitch" setting? If so, exactly what should it do? Also, in my examples above the "range" setting is in octaves above the target pitch and remains constant (relatively), but your range value seems somehow tethered to the ending pitch. Could you explain? I hope I don't come across snotty, I just want to make sure I'm not going to "undo" anything that's integral to the sound your after.
nix wrote: The best trick in it is the amp envelope.
it goes like this->
|\|\
I concur! I have only recently gotten hip to the multi-attack approach (especially on a filtered noise osc) and am learning that it does wonders to give the sound added dimension. 🙂
-cyto
MDMA ·
cyto wrote: I had a chance to look at your example. I think a solution will be really easy, but I'm having a little trouble understanding what's going on in there. Just to clarify, if the osc is going to follow the pitch of the midi note, do we need to have the "ending pitch" setting? If so, exactly what should it do? Also, in my examples above the "range" setting is in octaves above the target pitch and remains constant (relatively), but your range value seems somehow tethered to the ending pitch. Could you explain? I hope I don't come across snotty, I just want to make sure I'm not going to "undo" anything that's integral to the sound your after.
-cyto
Let me put it this way:
Let's say I'm going to make a kick for my track.
First I find my end pitch(Low knob in my schematic), I open a spectrum analiser, press a note(let's say G/49Hz) and check if my first freq is in fact 49Hz, it is, great.
Now I must find my start pitch(Hi knob in my schematic), Let's say Im happy with G at 1.5Khz, cool got that sorted.
Now I just noticed my kick's tail(or sweep lenght) is too long to fit my bass, so I go into my envelope and shorten it and...
Oops, now my kick's end pitch has moved up and is now in A#!!!
To solve this, on my schematic, all I had to do is reduce the endpitch(low knob on my schematic) amount to get it back in G again and I'm done.
But if we do it like you've mentioned this is what happens:
Ok, let's set the endpitch to hit G/49Hz again, oops, everything moved with it...dawm it now I also have to set the start pitch again.
And if not happy I have to do it all over again.
This is why I want to be able to set them independently without affecting each other, and the "-0.228346" after the end pitch knob is to go lower than the note played, so that if by shortening the kick's lenght I end up in A instead of G, Ican allways pitch it back down again to G.
I hope you got my idea now and sorry for not explaining myself that well.
Have you tried the plugin I've mentioned at the top of the post?
It does exactly that but doesn't follow the pitch!
Hope you can help!
cyto wrote:
nix wrote: The best trick in it is the amp envelope.
it goes like this->
|\|\
I concur! I have only recently gotten hip to the multi-attack approach (especially on a filtered noise osc) and am learning that it does wonders to give the sound added dimension. 🙂
Multi attack aproach? Humm...
Nix have you used that in your drum synth?
In winch module?
nix ·
Check the graphical envelope in the clap-preset 3. It is displayed on the GUI.
The amp envelope in 4kicks also has mutiple attacks,
u can see in my kick in drumroll(preset one) I have done that there too.
cyto ·
MDMA wrote: Let's say I'm going to make a kick for my track.
First I find my end pitch(Low knob in my schematic), I open a spectrum analiser, press a note(let's say G/49Hz) and check if my first freq is in fact 49Hz, it is, great.
Now I must find my start pitch(Hi knob in my schematic), Let's say Im happy with G at 1.5Khz, cool got that sorted.
Now I just noticed my kick's tail(or sweep lenght) is too long to fit my bass, so I go into my envelope and shorten it and...
Oops, now my kick's end pitch has moved up and is now in A#!!!
To solve this, on my schematic, all I had to do is reduce the endpitch(low knob on my schematic) amount to get it back in G again and I'm done.
But if we do it like you've mentioned this is what happens:
Ok, let's set the endpitch to hit G/49Hz again, oops, everything moved with it...dawm it now I also have to set the start pitch again.
And if not happy I have to do it all over again.
Gotcha 😉 I think what we're dealing with here is what I brought up a couple of posts ago, where the amp envelope and the pitch envelope aren't synchronized. I think the reason that the pitch envelope is not reaching its ending target is the amp envelope is cutting off before the pitch envelope gets a chance to make it to the end. If we can synchronize them so that the "length" of the pitch envelope never exceeds the length of the amp envelope, then we don't need to worry about making those adjustments to the pitches. I did download the demo from the OP and though it does sound really good, I don't see any mysterious dsp trickery going on. I think it is definitely possible to recreate it with the things we've come up with so far (although the "drawable" amp envelope may be a topic for a new thread).
I threw together a quick little demo of how you might go about "syncing" the envelopes. I wrote a quick little AHD envelope that should mimic the behavior of an electronic kick drum. It is a lot simpler then the stock SM AHDSRs (no need to waste CPU cycles on features that we don't need). You'll see I take the total length (in samples) from that and feed it to the pitch envelope. The slope is then calculated from there. I also made it so the midi pitch is always the base pitch (ie key follow is always 100%). I included both types of pitch envelopes in there (the scaled exponential and the rational map) as each of them has their own flavor. I personally like the original for kicks, but the mapped one is okay for special effect-type sounds. When I was playing around with the vst from the OP, I noticed that the "range" in the presets is often significantly larger than the 3 octaves we've been working with, so I upped it to 6 octaves (but don't forget, that you can easily change that in the properties panel).
Because the envelopes are linked, there shouldn't be the need to fine-tune the frequencies anymore. Let me know if this is getting closer or if I've completely undone what you were going for.
-cyto
MDMA ·
Thanks a lot Cyto, I believe this is either very close or it is it!
I'm going to modify it to fit my synth and then post it.
MUCH, MUCH APRECIATED!!!
Will post soon...
MDMA ·
This is sounding really wicked man!
I've combined them into one and got some wicked kick sounds out of it, its not the same type of sound as bazzism but an equally unique quality sound!
I can't thank you enought Cyto, thanks to you I will be able to integrate this into my plugin, I'll post it when finished!
Peace and Light!!!
Wrote something here? To have a post removed or your name hidden, write to [email protected].