From the original SynthMaker forum (2004–2014), with its members’ names and dates.
GaryG ·
Anyone ever made one of these?
I've played around a bit but think my logics muddled; I thought it would be some kind of comparator watching for the input to go above a threshold then triggering an envelope that would fade the audio in. Maybe using the envelope follower to 'smooth' the input for comparison purposes.
cheers.
trogluddite ·
Nothing wrong with your logic at all - you have the principle exactly right.
As it happens, I'm working on a 'Guitar Synth' type project at the moment - like a really badly tracking monophonic GR-500.
Two things I found with the envelope triggering... 1) it's better to trigger by measuring the rate that the volume rises rather than just a threshold. 2) The stock envelopes can be a bit of a pain to use for mono FX.
(and 3, you have to play your guitar very very very precisely, not easy for an old punk rocker 😉 )
I've pulled out the relevant parts of my schematic for you to have a look at - feel free to use/adapt them as you see fit. I'll post up the complete synth later when I have it working a bit more reliably.
GaryG ·
Thanks. I'll try it out later on, pretty sure my problems are down to not triggering envelopes correctly, is that a custom coded envelope?.
trogluddite ·
GaryG wrote: is that a custom coded envelope?.
Yes, I decided to roll my own - I couldn't get my head around making the stock envelopes trigger properly, it's also much lighter on CPU than the usual ones. I figured that having such a basic envelope was no problem because I also have envelope followers on the guitar input for modulating things with.
Something very imprtant I did forget was to tell you the correct input parameter ranges, this is very important because sticking normal 0-1 knobs into the envelope times will cause a nasty lockup on the envelope output...
Trigger and Gate - normal stream boolean on/off. the envelope triggers on the rising edge of the trigger input.
Attack - the input value is the rate of change per sample, not a time value (saves CPU greedy divides in the code) - so it will generally be a very small number, but must be greater than zero. The easiest way to get a correct value is to divide the current sample rate by the time that you want (in seconds)
Decay and Release - just like Attack, they are rates not times - but just to be awkward you need to make them non-zero negative numbers because they are downward slopes. If you put a positive number in either of these inputs you get a runaway feedback loop that will sound very nasty.
Sustain - Regular 0 to 1 value.
Should have told you all that before - hope if haven't fried your eardrums/tweeters in the meantime 😕
Here's a version with all the parameter maths in place - the ADR inputs are all times in seconds on green floats...
GaryG ·
trogluddite wrote: Something very imprtant I did forget was to tell you the correct input parameter ranges, this is very important because sticking normal 0-1 knobs into the envelope times will cause a nasty lockup on the envelope output...
Yep, noticed that. 😀
Cheers, will experiment and get back to you...
.g
Wrote something here? To have a post removed or your name hidden, write to [email protected].