image-et-son / p600fw

GliGli based Prophet 600 firmware upgrade
10 stars 4 forks source link

(A-H-DSR) New parameter to "hold" attack for about 5 or 10 mS before starting decay #65

Open matrix12x opened 2 years ago

matrix12x commented 2 years ago

I think we should add a new parameter to add a "click" to the envelopes by holding attack for 5-10mS. (Edit: just checked my Moog and it is about 4 mS)

Quoted from #64

In addition, a very important aspect of the CEM3310 - Prophet-5 envelopes is that little "attack hold time on max level" after the actual attack time has reached max level. This is part of what makes the Prophet-5rev3 have that thump/click/acoustic response. The same happens on a Minimoog, the max level at attack is being held even longer and that makes for that unique punch and impact in Minimoog sounds. So, a new "Attack Hold Time" parameter with control from 0 to a few miliseconds would bring great benefit to the envelope sound.

Edit: What I´m talking about from listening could also just be some kind of "decay hold" due to an overshoot and limiting of the control voltage at the decay stage. Whatever it is it makes for that bump/punch and is one significant reason why digital envelopes almost never reach the impact of fast analogue envelopes.

Edit2: For example - to achieve a similar attack on the P600 I need to reduce Amp Env Sustain to about 50-70 % and set Amp Env Decay to about 1.2. On a Prophet-5 - Repro-5 this little bump is built into the Amp envelope, even for simple "only amp sustain up" sounds. Adding the filter env then adds even more thump/click. With perfect digital envelopes this effect is not there unless it´s being taken into account in envelope designing/coding.

Originally posted by @el-folie in https://github.com/image-et-son/p600fw/issues/64#issuecomment-1007381491

matrix12x commented 2 years ago

Very interesting. I am always impressed by your testing.

re: the Six-Track, its still the old Z80, so it has the slower refresh rate. It would not be an apples to apples comparison.

I agree there is always some amount of smearing the second you add a cap. (as is seen in the simulations above)

Regarding to the original proposal of adding a software "hold" for a few ms after attack. I think this would give us a little punch.

Of note, I'm not sure that tweaking the sustain level is a good test, because it's an abrupt level change, and that would inherently have to cause steps. The larger cap would smear that and smooth it out, for the exact reason the large cap kills the attack. Also, the sustain normally does not change like that in a sound, the ADSR has no way of rapidly changing the sustain. Oh wait, this makes me wonder though, how the random waveform modulating the VCA (which is kind of what you are doing) would sound?

I wish we could better quantify the digital noise, then I would have a better plan of attack. For example, is it aliasing noise? is it quantization noise? and what frequency is it?

I am assuming the digital noise is related to the refresh rate of the ADSR CV.

The original Z80 had an update of about 200Hz (5mS) (according to the service manuals) on the envelopes (for both the P600 and for the Six-Track (edit 7mS for the SixTrack). The cutoff the Six-Track lag circuit had was about 159Hz.

I would have figured that since GliGli pushed up the frequency of the refresh rate of the envelope CV (from 200Hz to 2KHz), that we could up the frequency of the lag filter by an order of magnitude. Thus, just making a change to 10nF, in theory should not yield noise.

matrix12x commented 2 years ago

Interesting to note what they used on the prophet 2000 (one of the last synths they made from that time period): VCA looks like a 24K and a 0.1uF cap with a 330ohm and a diode in parallel with the 24K.

More interesting is the circuit on the VCF CV input.

image

el-folie commented 2 years ago

As my P600 is now prepared with sockets for the lag caps on voice 1 I could do any kind of audio example of noise you might need for research on noise frequency and stepping. If you just need random audio files in which the noise becomes most apparent I can also do those, with and without caps in place.

Re. Prophet 2000: VCA fast switching speed CV = (390Ohm/100n) = 0.039µs (which presumably is like no cap at all) fc = 4.08kHz (noise will propbably ocurr)

VCA normal CV speed = 2.4ms (which is quite fast already) fc = 66.31 Hz (which probably damps any noise)

The VCF lag circuit looks quite a bit more sophisticated. I would interpret it like this: 20K/2.2u is the standard low pass filter, but extremely slow at 52ms (fc = 3Hz, no noise). This is made faster by the 1K in parallel to 2.2u, because it presents a path to ground and changes the frequency cutoff of the filter (I know this from tube amps where a cathode resistor in parallel to a cap forms a filter to influence the tube´s response). The 1K also forms a voltage divider with the 20K. And then there´s also the -5v via the 33.2K at the junction of the general low pass filter. For me it´s very hard to say what might happen there in real-time... ;-) Do you have any clue?

el-folie commented 2 years ago

Regarding to the original proposal of adding a software "hold" for a few ms after attack. I think this would give us a little punch.

Yeah, we got a bit distracted with lag caps and things... ;-) Of course the Attack Hold parameter is a different thing completely and would definitely add that Moogy punch, which comes after the envelopes clicking anyway.

image-et-son commented 2 years ago

Hi, now I see what you meant when you said you got "a little distracted". I completely missed that discussion until I just now saw that there 54 posts on the ticket. What's the bottom line?

I caught some posts on VCA not closing completely. As I changed the deadband value slightly to match my instrument nicely (it really fades out into nothing on my P600 now) I'd be interested if other instrument need another value.