Saturday, August 31, 2013

Polysix - Flatten the Treble Response

Previously, I modified my Korg Polysix to remove the post-effects VCF.  To my ears, this mod nicely opened up the sound of the synth.  Others, though, thought that it now sounded too "raspy", which might be a way of saying that it now had too much treble.  That's a fair criticism.  In this post, I discussed how the Polysix has a built-in treble boosting circuit to partially compensate for its previous lack of treble.  Since my modifications to the post-effects VCF  restored some of the synth's treble deficiencies, the treble boost circuit might now be over-compensating.  Today, I discuss how I modified this circuit (in particular, around R168) to try to flatten its treble response.  As usual, let's first jump to the end of the story...here are some audio demos illustrating the effect of the mod to flatten the response.



Korg's built-in treble boost is on the KLM-368 Effects PCB.  An excerpt of this part of the schematic is shown below.  Looking at the schmatic, one can see the main part of the audio signal passes through R168, where it is attenuated as a voltage divider with the 1K resistor to ground.  In parallel with this main path, the elements circled in blue provide a second path for the higher frequencies, which means that the treble passes through with less attenuation than the lower frequencies.  By being attenuated less, the result is that the treble frequencies appear to be boosted relative to the lower frequencies.  In my most recent frequency response measurements of my Polysix, I saw that the boost starts around 2 kHz and peaks around 12 kHz.  At the peak, the boost is about 4-5 dB.  For a vintage synth, 12 kHz is very high pitched...it is basically just the "sizzle".  When boosting the sizzle by 4-5 dB, some ears might indeed find the new sound to be a bit obnoxious.


So, I looked at ways to flatten the treble response to reduce any obnoxiousness.  The most obvious modification would be to simply remove the elements circled in blue.  Unfortunately, that does not work well because some treble boost is needed to compensate for treble loss elsewhere in the system.  So, if we want to flatten the response, we need to adjust -- but not eliminate-- the treble boost of this circuit.

After some trial and error, I settled on the approach of adding a resistor in parallel with R168 (the 22K resistor).  The idea here is that, by adding a resistor in parallel with R168, I'm lowering the overall attneuation of the direct path while leaving the treble path unaffected.  Therefore, the relative boost of the treble via blue elements is lower when compared to the now-lessened attenuation of the direct path.  If the relative boost is lower, the overall frequency response will be more flat.  In the end, the best value for me was to add a 33K resistor in parallel with R168.

Implementing the modification is pretty straight-forward...just add a 33K resistor across the existing 22K R168 resistor.  Unfortunately, because of my modification to remove the post-Effects VCF, I already have a jumper wire flying into one leg of R168.  You can see what I did in the picture below.  The blue resistor is the newly-added 33K.  Below it, and slightly behind it, the tan resistor is R168.  You can see that I curved the leg of the blue resistor in a funny way so that it stuck out before looping back and connecting to the leg of R168.  Because of the perspective, you cannot see it loop back to connect to R168.  I then connected the yellow wire (my jumper wire going around the post-Effects VCF) to the looping leg of the blue wire.  Done.  Note that the green capacitor has not been touched in this modification.  The angle of my photograph may look like it is connected to my modification, but it is not...it is just unfortunately aligned in the background.

Adding the blue resistor (33K) in parallel with the R168 (the tan resistor underneath and behind the blue resistor).  The yellow wire is the audio input coming from my modification where I removed the Post-Effects VCF.  The green capacitor is not involved with this modification.
After doing this modification, I re-measured the frequency response of the synth (using the Maximum Length Sequence technique discussed here).  A comparison of the original and modified response is shown in the graph below.  As you can see, adding the 33K resistor did indeed boost the response through the low and mid frequencies.  The relative weighting of the high treble to the rest of the tone is now more balanced.

A side-effect of this mod is that the signal level is overall about 3-4 dB hotter going into the IC20.  For the loudest sounds, this might cause it to saturate a bit...for it to add a little compression or distortion.  I'll be keeping my ear tuned for that possibility.  Since Moog, with their Sub Phatty, has been extoling the virtues of adding a little OTA distortion, maybe any slight overdrive added here would be a good thing.  I'm not convinced either way, but I will keep my ear open for it.

So how does it sound?  Well, the sound samples at the top provide a comparison.  These are recordings straight from the synth to my M-Audio Microtrack.  Because the modified version was 3-4 dB louder, and since we humans are very sensitive to (and partial to) louder sounds, I cut the volume of the samples from the modified synth by 3.2 dB to equalize their RMS power.  So, even though I did not equalize their volumes on an A-weighted scale, hopefully I'm close enough that it is a fair comparison.

Do you think that the treble-flattening modification sounds better?  Or does it sound too dull?  I'm curious to hear your thoughts!

Follow-Up: I had this mod in my synth for a couple weeks.  I decided that I preferred the super-sizzly sound that I had before, so I removed the 33K resistor.

Monday, August 26, 2013

Polysix Deeper Bass - Properly Jumpering C61

Following this post and this one, I've decided that I like the sound of my Korg Polysix when bypassing C61.  So, I've decided to remove the clip leads that were shown in the pictures in those previous posts and replace them with a proper jumper wire.  So, I cut one to length and soldered it in.

The Red Wire Jumpers Around C61 by Connecting the Left Leg of Q15 with the Right Leg of R115.

Again, the Red Wire Jumps from the Left Leg of Q15 to the Right Leg of R115.
Now, I agree that the proper thing to do would have been to remove C61 and to solder a jumper wire into the holes of C61, but I didn't want to do that.  I just soldered in the red jumper wire shown above.  I don't perceive any additional added noise by using this flying lead, so I think that it's probably OK.  Plus, if I choose to un-do this mod, removing the red wire is easier than finding and installing a replacement for C61.

Smell the solder!

Sunday, August 25, 2013

Polysix - Frequency Response with Deeper Bass

In my previous post, I modified my Korg Polysix to strengthen the deepest bass frequencies.  The key is to bypass (or remove) C61 on the KLM-368 Effects PCB.  In my previous post, I attempted to show the frequency response due to this modification, but the graph was pretty poor.  Today, I have taken new measurements and made a much better graph.  Now we can clearly see the effect of bypassing C61.


Lower Cutoff Frequency:  This graph clearly shows that the low-frequency cutoff for the synth drops substantially by bypassing C61.  As measured at the -3dB point, removing C61 drops the cutoff from about 62 Hz down to about 20 Hz.  This means that removing C61 extends the deepest bass frequencies.  Whether or not this is a good idea is up to you.  For me, after living with it for a few more days since my original post, I like it.  I think that I will keep it.

Let's talk about some details of the measurement technique...

Measurement Approach:  By treating the Polysix as a "black box" system, I evaluated the frequency response by measuring the transfer function of the "black box".  I did this using a standard technique -- I injected a known broadband signal into the system and I recorded the output signal that was generated by the system.  Comparing the output to the input yields the transfer function.  By looking at the transfer function in the frequency domain, you get the frequency response of the system.  In this case, of course, the "system" is my Polysix.

Injecting the Test Signal:  All of the circuits that interest me at the moment are on the KLM-368 Effects PCB.  To measure its frequency response, I need to inject my signal before the audio pathway gets to KLM-368.  I chose to inject my signal at the end of Voice 1 on KLM-366, just before it is mixed with the other voices and sent off to KLM-368.  As seen in the picture below, I injected my signal at R133.  To allow my signal to mix properly into the synth's audio path at this point, I used a 10K resistor in series between my computer (which is playing the signal) and the green clip lead shown in the picture.  For the "output" of KLM-368, I simply recorded the main output of the synth because there is very little circuitry after KLM-368.

Injecting my Signal on the Lower Leg of R133 (the Green Clip).  Not shown is the 10K Resistor Between my Signal Source and the Green Clip.
Processing with Matlab:  To produce the frequency response graph shown at the top, I processed the audio recording of the input signal and of the output signal using Matlab, which is unfortunately not cheap nor readily accessible.  It is a very good programming environment for doing this kind of signal processing, but there are other choices.  The Matlab functions that I needed are the FFT function (which converts time-domain signals into frequency-domain signals) and Matlab's plotting functions.  As an alternative to Matlab, I believe that this analysis could be easily done in Octave (which is free) because it has a perfectly fine FFT function, as well as, perfectly fine plotting functions.

Compute the Transfer Function:  Whatever computational tool you use, the core of the calculation is to take the FFT of the output audio and divide it by the FFT of the input audio.  This division operation in the frequency domain yields the output/input transfer function of the system being measured (in my case, KLM-368).  Take the magnitude of the transfer function, plot as "dB", and you've got the amplitude response as a function of frequency.  This is what I show in my graph.

Chosing the Input Signal:  For anyone who has made these kinds of measurements before, you know that there are several different choices for "broadband" input signals that one can use.   Ideally, the input signal is flat in the frequency domain, so that any deviation from a flat output is most easily assessed.  The typical choice is to use either a linear frequency sweep or some random white noise.  Personally, I like to use noise.

Maximum Length Sequence:  In the category of "random white noise", I chose to try something new...instead of traditional Gaussian white noise, today I tried using a Maximum Length Sequence.  Unlike traditional white noise, which is only truly flat in the frequency domain after lots and lots of averaging, an MLS sequence is designed to be perfectly flat within whatever fixed period of time that you'd like.  As a result, you get much smoother results in a much shorter recording.

Smooth MLS Results:  I generated a sample of MLS using the "MLS.m" routine downloaded from the Matlab File Exchange. I generated the sequence and saved it out as WAV file, just like I would do for any other noise sample.  After running it through the synth and processing the results, I get the very nice graph seen at the top of this post.  This is the first time that I've used MLS and, given the smoothness of the graph (copied again below, but with different annotations), I like how the results turned out.



One More Look at the Graph:  OK, sorry for the digression about transfer functions and maximum length sequences.  Let's get back to the results at hand.  However I got there, this new graph shows the frequency response of the synth much better than my old one.  It shows that the effect of bypassing C61 is substantial, but only at the deepest frequencies.  As a secondary result, I also see that the KLM-368 PCB (with or without C61) produces a sizable boost seen in the treble frequencies.  I believe that this is the effect of Korg's built-in treble boost that was discussed in this older post.  I'm going to address this "feature" in another post later.

Update: I decided to properly bypass C61 using a jumper wire instead of my clip leads. See here.

Tuesday, August 20, 2013

Polysix Deeper Bass - Bypass C61

Ever since this post back in February, I've been interested in optimizing the frequency response Korg Polysix.  In that post, I discussed how both the highest treble frequencies and the lowest bass frequencies diverged from a pure sawtooth wave.  Later posts (especially this one) discussed how I modified the treble response to get what I wanted.  By contrast, the bass response seemed to diverge from the ideal only by a little bit, so I didn't put much thought into it.  As part of his post on Yahoo Groups, though, Tony from Oakley Sound remarked that C61 on KLM-368 appeared unnecessary and couple probably be removed.  Being an AC coupling cap, C61 naturally acts as a high-pass filter, which could possibly affect the bass response.  So, if I want more bass, maybe I should remove it.  Here, I discuss how I bypassed that cap.  To get straight to the good stuff, below are audio comparisons of the "before" and "after" (you'll want good speakers or headphones...we're talking about changes mainly to the deepest bass frequencies!):



The modification that I performed is located entirely on the KLM-368 PCB ("Effects").  An excerpt of the schematic is shown below.  C61 is a 1 uF electroltyic capacitor that the uneffected must audio pass through.  If you want to remove this cap, you could simply de-solder it and put a jumper in its place.  If you merely want to try the mod without removing any components, you could instead use clip leads to jumper from one leg of C61 to the other leg.  Unfortunately, my C61 was soldered too tightly to the PCB, so I chose to jumper between the easily-accessible points on R115 and Q15.

On KLM-368, Bypass C61 by Using a Jumper Wire from R115 to Q15
A photograph of my modified circuit is below.  The green wire is my added jumper.  Also in the frame, but unrelated to this modification, is the yellow wire and the empty IC socket.  Those changes were performed as part of a different mod to remove the post-effects VCF, which improves the apparent attack of the synth and which alters the high frequency response of the synth.  More info on that mod can be found here.  Today's mod, though, is just about the addition of the green wire.

The Green Jumper Connects the Right Side of R116 to the Left Leg of Q15
To assess the impact of today's modification, I recorded the audio at the synth's main output.  I recorded it with my trusty M-Audio Microtrack, which I used for all my previous assessments of the frequency response of my Polysix and Mono/Poly.  For this test, I set the Polysix for a simple sawtooth waveform, using the lowest octave.  I set the VCF to about "5" with no resonance.  Below is a visual comparison of the raw waveforms output by the Polysix when playing the lowest "C" on the keyboard.  The top plot is the unmodified Polysix, which has its C61 in place.  The bottom plot is the modified Polysix, which has C61 bypassed using my green jumper wire.

Recorded Output of the Lowest "C" with a Sawtooth Waveform (VCF at "5")
In this plot, you can see that the unmodified Polysix decays back to zero (which is the red horizontal line) more quickly than with the modified Polysix.  Remember, the synth is trying to do a pure sawtooth wave, so any "decay back to zero" is an indication of some amount of low frequency attenuation in the synth.  The fact that the modified Polysix decays back to zero less quickly means that it has better low frequency performance.

If we're discussing frequency response, we really should be looking at the signals in the frequency domain.  So, below, I do a frequency analysis of two 5 second audio samples of the output of the synth.  The blue trace is the unmodified Polysix, which has the C61 in place.  The red trace is the modified Polysix where C61 has been bypassed.  Again, this if for the lowest "C" on the keyboard, which has a fundamental frequency of about 32.8 Hz.  That is a *very* low frequency.  Comparing the two traces, we see that bypassing C61 seems to increase the synth's response at this frequency by about 6 dB.  That's a pretty big change!

Comparing the Frequency Content of the Lowest "C" Using a Sawtooth Waveform (VCF at "5")
In the real-world, 32.8 Hz is too low for our loudspeakers or headphones to reproduce accurately (especially for hobbyists like me).  So I'm not sure that I'm able to hear the impact on these deepest bass frequencies with my equipment.  But, you'll see that the next couple of harmonics (66 Hz, 99 Hz) are also slightly stronger after the modification.  My system can easily reproduce these frequencies.  So, when I'm playing my synth (or when I'm playing the Soundcloud demos at the top of this post), I do hear a difference between the unmodified and modified conditions, I'm just not sure its the change at 32.8 Hz that I'm detecting.  That is some seriously deep bass..

Given that I do hear some difference in tone (whether at 66 Hz or at 32.8 Hz), which version do I prefer?  Certainly, for raw visceral excitement, I like the added thickness and rumble of the full bass experience resulting from bypassing C61.  But, the Polysix isn't intended to be a deep-bass rumble machine -- it isn't supposed to be a Minimoog, or even a Mono/Poly.  Instead, it's a polysynth meant for chords and pads and strings and such.  So, when used for these purposes, perhaps my modified Polysix now as too much bass.  I think that it might sound too thick, too bloated.

It's interesting (to me) to note that the Polysix's main competition back in the day -- the Roland Juno 6/60 -- includes a high-pass filter as part of its architecture.  One use for the HP filter is to cut the low-end rumble to purposely make the sound more skinny.  For chord stabs, a skinnier sound can often sit better in the mix, especially when you've got other instruments providing a deep and punchy bass line (such as for dance music).  Perhaps this ability to control the low end bloat to sit better in the mix is why the Juno's continue to be more popular than the Polysix.

But that's a digression...

Back on the topic of the increased deep bass on my Polysix, I'm still deciding whether or not I like the modification.  I'm going to have to live with it for a while to see.  Thoughts?

Update: Better frequency response graph here along with more discussion of how it's done.
Update: I decided to properly bypass C61 using a jumper wire instead of my clip leads. See here.

Friday, August 16, 2013

Polysix - Disabling the Built-In Detuning

As many of you know, I replaced the Key Assigner in my Korg Polysix with an Arduino and a DAC chip. The flexibility of this setup allows me to do all sorts of arbitrary pitch manipulations such as pitch bending, aftertouch-driven vibrato, and pitch detuning. My implementation of detuning was discussed in this post and I really enjoy having that capability.  One incomplete aspect of my detuning modification is that I did not properly address the interaction of my detuning with the fixed amount of detuning that is already added by the Polysix when it is set to Unison mode.  This fixed amount of detuning confounds my ability to properly add just the right amount of own amount of detuning.  So, as described below, I've decided to simply disable the Polysix's built-in detuning.


The schematic above is an excerpt from the KLM-366 PCB.   It shows the elements that create the fixed amount of detuning when the Polysix is in Unison mode.  When in Unison mode, the Polysix enables this circuit  by applying a LOW voltage to Pin 6.  This allows IC30 to do its job -- which is to take the "detune" voltages created on the right side of the chip (along with R116) and multiplex them onto the "X" pin.  The multiplexed output then goes off to get added with the main Pitch CV signal so that the combined Pitch CV signal creates the pitch that you desire plus the small amount of detuning generated by this circuit.  When the Polysix is in any mode other than Unison, the Polysix applies a HIGH voltage to Pin 6, which disables this chip and prevents the detune voltages from being output.

To disable this built-in detuning feature, I am going to apply 5V to Pin 6 so that the chip is always disabled.

To implement this modification, I need an easy source of 5V and I need an easy place to inject it into Pin 6.  Looking at the full schematic, and looking at the real-life PCB, I see that I can grab 5V off R121 and I can inject the 5V via R118.  The trick is to grab the correct side of R121 and of R118.  After a little probing using my multimeter in "continuity test" mode, I found the side of R121 that was connected to 5V (the left side) and I found the side of R118 that was connected to Pin 6 of IC30 (the right side).  As shown below, I soldered a short jumper wire and gave it a try.

I added the short red wire in the middle to jumper R121 to R118
The result is that the detuning has been successfully disabled.  Now, when I switch to Unison mode, it sounds just like if you load up the Chord Memory function with 6 of the same notes.  If your Polysix is in really good tune, you get a single tone with a very slow phasing sound.  Then, when I activate my own detuning, the 6 voices spread apart by a controlled amount, which is what I want.

It's a nice and easy modification that achieves my goals.  I do think that detuning is an important part of the Unison sound, so I do not recommend this modification if you have no other way of creating the detune effect.

In fact, if you're relying upon the built-in detuning, my taste would have preferred more detuning.  If you, too, like a good amount of detuning, you can easily increase the built-in amount of detuning by changing R116.  A larger resistor will result in more detuning -- a smaller resistor will result in less.  Try a couple values and you'll find what you like!

Thanks for reading...



Tuesday, August 13, 2013

Polysix - Permanently Removing the Post-Effects VCF

After living for a while with my non-destructive version of bypassing the post-effects VCF, I've decided that I really like it and that it is probably something that I want to keep.  Because the clip lead that I had been using is not a robust long-term solution, I decided that I would make this modification more permanent.  So, I replaced the clip leads and soldered in a single wire in its place.  It's pretty straight-forward...

I soldered a jumper wire from J28 to R168, thereby bypassing the now-empty socket for IC15.
The sound is the same as before, but the synth will now be more robust as I travel with it.  If I ever want to un-do this mod, I simply un-solder the single wire and put the LM13600 back into the empty IC socket.  Easy!

Sunday, August 11, 2013

Polysix - Modifying the MG Delay Circuit

As I've been discussing in the last few posts, the MG Delay circuit on my Korg Polysix doesn't work quite right -- even with an MG Delay of zero, it still suppresses my MG signal at the start of each new note.  In my most recent post, I found that my MG Delay control voltage (CV) from the Polysix DAC is still a tiny bit too high, even when set to zero.  Since I can't do much about the DAC, I chose instead to modify the keypress signal that is compared to the MG Delay. The result is that my MG Delay now works as I think that it should -- when set to zero, the MG signal is applied smoothly across all notes, with no MG transients at the start of the notes.  Below is an audio demo with the MG Delay modified (top) compared to how it sounded on my Polysix prior to modification (bottom).  In addition to the MG Delay being set to zero in both cases, all of the other settings are the same, too.



Find the MG Delay Circuit:  A schematic of the relevant part of the Polysix circuitry is shown below.  The MG Delay functionality is effected by IC14, which compares the MG Delay CV produced by the DAC sample-and-hold (arriving at Pin 2 of IC14) to a voltage signal that pulses which each new keypress (arriving at Pin 3 of IC 14).  Whenever Pin 3 goes lower than Pin 2, the MG is suppressed.  I'd like modify the circuit so that, when the MG Delay is set to zero, the voltage at Pin 3 does not drop below whatever voltage is being delivered by the DAC to Pin 2.


Swap R98 to Control the Voltage Drop at Pin 3:  The voltage at Pin 3 drops with each new keypress because a keypress causes Q5 to conduct, which allows the charge stored in C33 to drain out via R98. Because Q5 only conducts for a short amount of time, we can limit how low C33 gets by constricting the flow of charge out of C33.  The easiest way to do that is to simply swap R98 from its default 4.7K value to a higher value.  At first, I tried 20K, but decided that 10K was better.

Removing R98.
New R98.  I first tried 20K.  I settled on 10K.
Viewing the Impact of R98:  To visually confirming that I correctly affected the voltage at Pin 3, I used my oscilloscope to view the voltage at Pin 3 (as altered by my modification of R98) and the voltage at Pin 2 (the MG Delay CV).  As shown in the picture below, changing R98 now keeps the voltage at Pin 3 from dropping below the MG Delay CV that is being applied to Pin 2.  As a result, the output of IC14 now stays high, which means that the MG signal is not suppressed by the start of the note.  Success!


Ensuring I Did Not Over-Correct:  It would be very easy to use too large a value for R98.  How do you know that you have an OK value?  If the resistor were too large, then the MG Delay functionality would be defeated for values other than zero.  I'm not trying to completely defeat the MG Delay, I just wanted zero to be zero.  So, to make sure that my MG Delay still worked well, I turned the MG Delay knob a little bit until the DAC put out a higher MG Delay CV.  It turns out that there is a pretty big dead zone on my MG Delay knob (that is unrelated at all to changes to R98)...I had to turn my knob all the way up to "1" in order to see the DAC output tick up one notch.  Once I saw it tick up, I retested the voltage at Pin 3 to ensure that it dropped low enough to trigger the MG suppression.  With my initial change to an R98 of 20K, Pin 3 did not drop low enough.  By swapping R98 to 10K, I got the result shown in the picture below.  As you can see, Pin 3 does indeed drop briefly below Pin 2, as desired.  Success!


So, with this modification, I have achieved my goal of making the MG Delay work as I want.  When turned to zero, the MG Delay is defeated.  When turned slightly above zero, the MG Delay works as before.  I'm pleased.