SynthMaker

Yet again...

Archive · 2010 34 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

tor ·

I will have to ask you fellows to give me your opinions. Please check this out if you have the time and interest.

My first attemt on a compressor built from ground up. The attack (1-50) and release (40-4000) time in ms is the time it takes to change the gain 12db. It behaves according to this standard: http://en.wikipedia.org/wiki/Dynamic_range_compression

It have some saturation and the ability to mix between feed-forward/ feeed-backward. Otherwise it is quite plain.

The GUI it is NOT finished. Edit: new file down at this site 🙂 Hope you like it ... but if you have something to put your finger on (besides the GUI) or if you just like it I'd like to hear about it.

😉

Dell ·

Hi Tor.

One thing you need to keep in mind is the market you are aiming for. Those who make music prefer a lot of artefacts whereas on the mastering side such additives are not needed.

There is really no right or wrong way to make a compressor. You can post your compressor on KVR for the majority of users are musicians and feel compressors are the most important tools for their music.

On the Mastering side, compressors that do not sound like they are working but actually are a more favoured. A slight additive is nice however not over bearing like what musicians are aiming for. Personally, I cannot hear the difference between "Dirty" "More Dirty" and "Real Dirty." Possibly, it may be the settings I am using for I do not make my own music.

I must say, as a person that own valves, the two valves you created are the best ones I’ve ever seen on a VST plug-in. They react just like valves that used Mercury. If you can allow them to offer a slow rise in intensity upon turning them on, I will count how many seconds it takes for my KT 63’s take to be fully stabilised. 😉

Cheers!

tor ·

Cool thanks... would be fun if they actually behaves like real stuff... even if it is just for the look 😉

I guess I have to read more about tube "simulation" and do better before I release this thing. It is a huge difference in sound of the dirty modes. But yes it depends on the program material and signal level. Theese can for sure be better and more ovbious not so program dependent. I'll see what I can manage to put together.

But I did not get your impression of the actual compressor. Personally I think it is quite transparent and smooth sounding even on short timings. And it does exactly what you tell it it do 🙂

My plan was to have the attack down to a minimum of 0.1ms. But I got some strange behavoiur below 1ms that I have to investigate.

Thanks again 🙂

Would be glad to have some more opinions about the quality of this thing.

Dell ·

I only like compressors that offer very low artefacts so, I doubt I can give you a good review. Personally, I prefer the "Clean" option. You may want to try KVR if you want to hear detailed review on your compressor.

Achieving 0.1 ms is not a problem. The noise you are getting can be remedied. I am more than certain it is your ratio having a starting point of 1:1

I compared the release time to two URS Plug-ins I own and, it appears the release time is shorter than four and longer than two. Possibly three?

tor ·

Nah.. it was not noise that was the problem going under 1ms. I got a strange delay before anything happened at all. Artifact free compression was the first goal. I think I managed to archieve that in clean mode as you say. The dirty modes is just a bonus for those who like such. I have now updated "more dirty" and "real dirty" so they actually is more like they claim 😉 program independent.

I compared the release time to two URS Plug-ins I own and, it appears the release time is shorter than four and longer than two. Possibly three?

What exactly do you mean? how can release be both shorter and longer? Two, three and four what? Ms? I dont get you point. As mentioned the time values in ms is the time the compressor attenuate or increase the signal 12dB if the threshold and rate is set to such range. IE: Feed -0dB white noise, thresh set to -5dB and rate 1:4, compressor will attenuate 4dB in 2ms if att time is set to 6ms, if thresh is set to -25dB and rate 1:20 will attenuate to prox -24dB in 12ms using same time setting. Same principles with release. 😉

Here is a updated version with real dirt 😈 Edit: See below in thread

tor ·

BTW: I would really like to see an example of code or a osm that manage attack precisely under 1ms without lookahead.

tor ·

Darn!

I made it.. now attack is down to 12dB attenuation in 0.1ms or 4.41 samples 😀

And it seems to be the limit without lookahead.... but I'm happy as can be. 😈

MegaHurtz ·

I cannot load your files to check em out, "no rar" 😕 But heres an eg that can..

Free Running Oscillators Because ;-)

aliasant ·

I had no problems with any of the 2 .rars

Your comp sounds ok when using huge release times. Maybe aim your next session at controlling the relase and make it faster?

I have worked on my own compressors on n off for years. LAst week I started converting my main engine into a 4 band version and so far it sounds amazing but I have much to finish before I can upload anything. Been working on a band splitter control window for a couple of days. Heres a pic of what that looks like at the moment.

The coloured areas are the gain reductions/band Each band as a solo and Mute button and you can set the freq split by dragging horizontal fader and input gain using the vertical faders. What I need to figure out is what filters to use for this. Thats todays mission if I can find the time.

Making compressors is in my opinion quite hard. Specially for a math retarded person like myself. Chasing distortion and faster smoother envelopes is an obsession 🙂 Watch out!

MegaHurtz ·

I personally welcome some new comps, Think SM`s platform is up to the task 🙂 Especially the ones that give you a nice slap around the face when excited. and 😊 No winrar on my new laptop.. Win7 running very much better tho..

aliasant ·

MegaHurtz wrote: I personally welcome some new comps, Think SM`s platform is up to the task 🙂 Especially the ones that give you a nice slap around the face when excited. and 😊 No winrar on my new laptop.. Win7 running very much better tho..

SMs platform is perfect for these kind of effects for sure. Download and install 7zip instead of winrar if yo want a free and well working app to handle both .zip and .rar files + more.

MegaHurtz ·

Thanks! 🙂

tor ·

Thank for the review aliasant. I actually thougt 50ms was a pretty standard min value for release. But I have read about compressors with release down to 0.1ms aswell (In Goldwave editor i think) but I think that qualifies as a peak limiter. The UAD 4K Buss Compressor has attack 0.1-30 milliseconds and release 0.1-1.2 seconds. More opinions on this subject is wery velcome 🙂

I have no problem to get the release shorter. I have designed the envelope control so I just put the min-max values in ms directly into the knobs regardless of sampling rate. But as you pinpoint.. Short release in addition to short attack is giving audible noise/artifact when the compressor is pushed. I made and attempt here with 1:2 ratio, attack 0.1ms and release 1ms. I used Tower of Power's 'Soul with an capital S'. A track with full peaks up to 0dBfs and fast transients. at -8-10dB threshold the noise become quite audible. But I do not actually think I'm going to release a compressor with this fast release. Unless I implement a limiting stage in adition to the main compressor. Maybe a thought 😉

Maybe I should try to change the release curve so it more s-formed...

trogluddite ·

tor wrote: I made and attempt here with 1:2 ratio, attack 0.1ms and release 1ms.

I would expect distortion from any compressor having attack & release both set so fast. At such short times, the envelope follower is likely to be tracking individual cycles of the waveform (especially for low frequencies) - giving a kind of 'waveshaping' effect rather than altering the average volume.

tor ·

Yes if threshold is set low enough to follow several cycles in series. Used with caution it can be a good way to treat peaks. But for regular compression i think 50ms release is a ok min value.

aliasant ·

tor wrote: Yes if threshold is set low enough to follow several cycles in series. Used with caution it can be a good way to treat peaks. But for regular compression i think 50ms release is a ok min value.

It depends on the material your compressing. Solo instruments like vocals can use a lot faster releases without sounding bad. More complex material might not work as well but sounds great with longer releases. Its not just the ms but also the shape of the envelopes. I used to run a sinus signal at a low freq thru the comp while trying to adjust the envelope. If the sinus come out ok at the other end that ment it was ok. At least at that freq. Important to try to change the music you use while testing. Vocals, Brass, Drums, Loops, Full mixes, Classical... or just go with a particular material type and focus the compressor for that only.

tor ·

I see your point and do partially agree. But at response times below 1ms it is practically impossible to smooth the curve very much without actually loose the response time. Then we are back to slowing the response right? I think if you get artifacts in a proper compressor you have too short release in relation to your threshold and rate. As simple as that.

Edit: " A compressor should attenuate a group of peaks in series that is over threshold not individual peaks. 50ms=20hz. If the sum of attack and release is shorter you start a repetive deformation of your original waveform in the audible frequency range. "

I have made an example here. The upper lane is the original waveform (white noise), the lower lane is the envelope as followed with 0.1ms attack, 1ms release. As you can see there is not possible to smooth more without loosing response time. And if this was a pure waveform (sine, saw, square) we end up with a strange result.

The dots are individual samples:

Dell ·

Hello Tor.

I was refering to the maximum settings on the release time which appeared to be 4 seconds.

Nevertheless,

You will need to think outside the box if you are planning to make a compressor that doesn't follow the standard settings that other designs offer. Synthmaker can offer micro, nano and even picoseconds. However, you will need to throw away all "the rules" of compressor design and start from scratch.

Trying to estimate the time per frequency will backfire for the compressor may not be asked to compress one note but multiple notes. Once you take into consideration how many times the notes will be used based on the duration of the track, the calculations will not come into play.

Music is based on expression and, varies considerably.

Here's a modified Antress FET Compressor that is now offers microseconds. This should show you anything is possible with synthmaker once you start thinking outside the box. 🙂

http://www.youtube.com/watch?v=HdunQEDJ0qg

Cheers!

MichaelBenjamin ·

how can you get a micro (1/1 000 000 of a second) at a sampling rate of 44100 with smallest interval 2/44100 seconds? even with 8x oversampling you still have ~200000 steps per second and still need to downsample so not much if any resolution at all is left from a sudden 1-0 jump. so how do you do this with nano and pico?

tor ·

Hey Dell you say prox 3 seconds release time... what was your threshold, rate and thereby attenuation?

My compressor is made from scratch. It is not a modified anything. The maths of attack and release is pretty straight forward and do not require out of box thinking. But in a discrete system there are limitations in time dynamic precision. You say picosecond..... thats 0.000 000 000 001 second. The time from one sample to another @ 44100 is 0.000 022 (or 22.67573..... microseconds and 5.2.... microseconds @ 192000) and without lookahead the shortest reponse time possible. Notting will happen until the next sample is calculated. It is common for developers/manufators to state how many dB the attack and release time represent. For my compressor it is 12dB. This is a constant I have set. I could increase the reponse prox 4.5 times my 0.1ms reponse time atm... and ofcouse increase the dB range/time also increasing the speed. If the envelope range is from 1-0 and I subtract 1 at first sample over thresh it is an infinite attenuation. Matematically a momentary respone if you do not consider that it will be executed on the next sample... 0.022ms after detection.

Please.... yet again I would like to se som code, an osm or math examples that demostrate what you say.

tor ·

I have to admit 12dB/ms is not 100% accurate because I have some degree of smooting on the envelope loosing a little time in the start and end of respose. And also there are rounding errors 😉

tor ·

aliasant:

here comes a couple of more examples more clear than the previous. a 22050hz sine or saw.. depending what you would like to call it :P and a 200hz sine. compressor settings are: thresh -12 ratio 20:1 att 0.1ms rel 1ms. This works fine on the 22khz example but really not on the 200hz example... it gets really messed up as you can see. no matter how i would try to smooth the envelope at such timing..

aliasant ·

I dont think Release times under 10ms is anything to pursue and 1 ms would sound like crap for sure but 50ms as a minimum is way to much but again it depends on the material and also on the rest of the algo. You can use R times under a ms if you use higer Attack times instead and for some types of material tha can create a nice sound.

About using fractions of a sample... /pico seconds... that sounds weird in a 44.1k world and Im not sure, even if that is a possibility, it would make anything sound better. A compressor sounds like a compressor because we can hear the peaks and changes in the dynamics. Using extremely short times would change the compressor into something else. At least musically.

What is it that we need from the envelope in a compressor? Well. Id say a fairly fast attack but a smoother release. Attacks under a ms isnt really necessary unless yor building a limiter. I prefer to let a little attack thru because it sounds nice. The peaks that the attack misses can be treated later with a limiter or softclip. Sometimes I do want a more limiter kind of attack so I have an option to engage a 1 or 2 ms lookahead. The release is trickier. Right now Im using a combination of PDR and Rhold + some other tricks but wat I have been avoiding is oversampling. I might try ha later on my new 4band build.

Tor. I gave you a copy of my old compressor a while back but you never told me what you thought about it?

tor ·

Sorry aliasant.. but I never recieved the compressor from you. You told me you were preparing a beta for me. Then I did not heard from you again. I just checked our correspondance. I remember now that I was wondering whether or not I would hear from you about it. Feel free to send it to me now 🙂 You have my mail adr in a PM 😉

aliasant ·

tor wrote: Sorry aliasant.. but I never recieved the compressor from you. You told me you were preparing a beta for me. Then I did not heard from you again. I just checked our correspondance. I remember now that I was wondering whether or not I would hear from you about it. Feel free to send it to me now 🙂 You have my mail adr in a PM 😉

Oh. I thought you were just being rude 🙂

Dell ·

MichaelBenjamin wrote: how can you get a micro (1/1 000 000 of a second) at a sampling rate of 44100 with smallest interval 2/44100 seconds? even with 8x oversampling you still have ~200000 steps per second and still need to downsample so not much if any resolution at all is left from a sudden 1-0 jump. so how do you do this with nano and pico?

None of my designs are based on 44100. I only work with large sample rates and tend to up-sample no less than 18.

Once I began moving towards equalisers that offer tuning frequencies from 40,000 kHz and up, I stopped focusing on 44.1 kHz sample rates.

aliasant ·

Dell wrote: MichaelBenjamin wrote: how can you get a micro (1/1 000 000 of a second) at a sampling rate of 44100 with smallest interval 2/44100 seconds? even with 8x oversampling you still have ~200000 steps per second and still need to downsample so not much if any resolution at all is left from a sudden 1-0 jump. so how do you do this with nano and pico?

None of my designs are based on 44100. I only work with large sample rates and tend to up-sample no less than 18.

Once I began moving towards equalisers that offer tuning frequencies from 40,000 kHz and up, I stopped focusing on 44.1 kHz sample rates.

Well. Even in a 192kHz system this feels strange. Maybe your not working on something for the masses?

aliasant ·

tor wrote: Sorry aliasant.. but I never recieved the compressor from you. You told me you were preparing a beta for me. Then I did not heard from you again. I just checked our correspondance. I remember now that I was wondering whether or not I would hear from you about it. Feel free to send it to me now 🙂 You have my mail adr in a PM 😉

I only have that gmail adress to you and IM not sure that one works well for sending rar files. Dont you have a "real" mail ? Mail me.

Dell ·

tor wrote: Hey Dell you say prox 3 seconds release time... what was your threshold, rate and thereby attenuation?

My compressor is made from scratch. It is not a modified anything. The maths of attack and release is pretty straight forward and do not require out of box thinking. But in a discrete system there are limitations in time dynamic precision. You say picosecond..... thats 0.000 000 000 001 second. The time from one sample to another @ 44100 is 0.000 022 (or 22.67573..... microseconds and 5.2.... microseconds @ 192000) and without lookahead the shortest reponse time possible. Notting will happen until the next sample is calculated. It is common for developers/manufators to state how many dB the attack and release time represent. For my compressor it is 12dB. This is a constant I have set. I could increase the reponse prox 4.5 times my 0.1ms reponse time atm... and ofcouse increase the dB range/time also increasing the speed. If the envelope range is from 1-0 and I subtract 1 at first sample over thresh it is an infinite attenuation. Matematically a momentary respone if you do not consider that it will be executed on the next sample... 0.022ms after detection.

Please.... yet again I would like to se som code, an osm or math examples that demostrate what you say.

I matched the settings of your compressor to two URS compressors and configured the release time to 4 seconds. All is needed is a dance track with a long ambiance break to determine the release time or count four bars. This will determine if it is four seconds or less.

Comparing your release time to URS release time brings forth a faster recovery in favour of your compressor. This is why I asked if it is indeed 4 seconds. It is shorter than the URS Strip Pro that offers 4 seconds and longer than the URS 1975 that offers 2 seconds. The only thing I can conclude is URS offering an internal hold circuitry if yours is truly four seconds.

I cannot offer an osm since my compressors are available to the public. My plug-ins offer sample rates that are no lower than 793800. Under these conditions, the DAW will automatically down sample the plug-in based on the output of the Audio File. Since I don't use 44.1 kHz for mastering there is no need for me to build plug-ins based on 44.1-sample rate platform. In the hardware world such a method is classed as overly designed.

When you are using very fast attack and release times, you must have a very low ratio or you will encounter a lot of noise. Other things you need to take into consideration is delay, filtering the high frequencies and, the arrangement of the modules. If you have the attack/release before the threshold, you have a greater chance of getting a slower response than having the attack/release after the threshold.

Synthmaker's modules react like hardware equipment. The arrangement plays a factor on the sound so you need to literally experiment and listen using some means of music material. You cannot use white/pink noise if you are trying to determine the attack time for it is too slow. What you want is pulse signals.

You must think outside the box to achieve what you are looking for especially when it is not standard procedure. I am not referring to building your own modules either. Let your imagination run wild.

As I mentioned to you before, I don't follow the digital method, I follow the same method as if I were designing analogue hardware equipment.

Cheers!

Dell ·

aliasant wrote: Dell wrote: MichaelBenjamin wrote: how can you get a micro (1/1 000 000 of a second) at a sampling rate of 44100 with smallest interval 2/44100 seconds? even with 8x oversampling you still have ~200000 steps per second and still need to downsample so not much if any resolution at all is left from a sudden 1-0 jump. so how do you do this with nano and pico?

None of my designs are based on 44100. I only work with large sample rates and tend to up-sample no less than 18.

Once I began moving towards equalisers that offer tuning frequencies from 40,000 kHz and up, I stopped focusing on 44.1 kHz sample rates.

Well. Even in a 192kHz system this feels strange. Maybe your not working on something for the masses?

I focus on Jazz & Classical music so, I would imagine the masses would not find such music to their taste.

I'll whip up something quick using the house compressor on 44.1 kHz. 🙂

aliasant ·

Dell wrote: None of my designs are based on 44100. I only work with large sample rates and tend to up-sample no less than 18.

Once I began moving towards equalisers that offer tuning frequencies from 40,000 kHz and up, I stopped focusing on 44.1 kHz sample rates........

I focus on Jazz & Classical music so, I would imagine the masses would not find such music to their taste.

I'll whip up something quick using the house compressor on 44.1 kHz. 🙂

VERY INTERESTING !! 🙂 🙂 Would love to test a VST version if you can provide.

Dell ·

Here is Synthmaker’s stock Compressor configured to microseconds using the default 44.1 kHz sample rate. Since we all have Synthmaker, there is no need for an osm. What you will need to do is go into the master attack and release modules and configure the settings to whatever you desire. The default settings are 0.01 and are located in the coefficient calculator modules.

Bear in mind, under fast attack settings, the release must be fast or the attack will not be long enough to match the release.

The Attack, Release and, Ratio all work together as a team so you will need to have a low ratio as well or the ratio will create noise based on the rapid attack an release settings.

Loopeytunes meters are operating on 25 ticks. One hundred ticks are just too fast to speculate what is occurring. Building an L.E.D. array may be better suited if you must know the exact dB reduction taking place once the compressor is active.

The example offered is not modified for low CPU use and/or denormals. This should not be a problem for the main concern is how quickly the attack, release, & ratio responds to the music material.

Cheers!

tor ·

Sorry I have not answerd to you post earlier Dell. I am in the process of learning DSP myself and shall not claim to know it all. But you can not bend the laws of physics. Just putting in small values in the discreete domain does not ensure that what you want will actually happen. Enough of this discussion I think.

As mentioned in a post in the Examples category I recently discovered some errors in my envelope follower. It was over complicated and responded to hard and sort of in steps when attack was set very low and the incomming amplitude had a slow rise of magnitude. This is now fixed. I have also added a semi fixed soft knee to the compressor. It will increase in range with the threshold. Now I think I am on the right track and the compressor sounds nice in almost any settings, not meaning you cant destry the sound. But it is quite smooth and clean and it still keeps its reaction time and accuracy. Would be nice with some more oppinions on this.

Tor

Dell ·

tor wrote: Sorry I have not answerd to you post earlier Dell. I am in the process of learning DSP myself and shall not claim to know it all. But you can not bend the laws of physics. Just putting in small values in the discreete domain does not ensure that what you want will actually happen. Enough of this discussion I think.

Tor

In the Analogue world the saying goes "You can bend it but, cannot break the laws of physics." 😉

Rest assure there are plenty of professional audio amplifiers designed today doing just that. As I mentioned in my previous post, my designs follow an Analogue method. If you are not familiar with Analogue Audio, you will not understand my design procedures.

Cheers!

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.