Wednesday, February 27, 2013

Mystery Circuit -- Polysix Post-Effects VCF Explored

After this post, I got a response on the Polysix Yahoo Groups from The Old Crow saying:

The circuit is a dBx-style noise shaper: the more amplitude the dry signal provides, the wider the response of the filter. This squelches MN3005 noise at low levels and allows more high frequency content at higher levels. The 2SA798 is a standard V/I converter that is "locked on" (filter wide open) if the "OFF" signal voltage appears. The timbre change is of course due to the VCF changing vs. amplitude

This reply was similarly timed to my own discovery, through the example circuits in the datasheet of the LM13600, that the circuit in the polysix is wired as a VCF not as a VCA.  The datasheet also gives an equation for the cutoff frequency as a function of the circuit element values (resistors and capacitor) and as a function of the control current ("I_ABC") provided to the LM13600.

The LM13600 at the Center is the Mysterious Post-Effects VCF in the Korg Polysix.  A simple modification (the brown clip leads) can dramatically alter the high-frequency response of the Polysix.
Armed with this knowledge from The Old Crow about what the circuit was intending to do, and armed with this knowledge about how the core of the circuit (the LM13600) was supposed to respond, I dove into the synth and did some measurements.  Specifically, I measured the voltage across R118, which is the last resistor before the control current reaches the two halves of the LM13600.

Measuring the Control Current to the LM13600 VCF (click to enlarge)
The table below shows the voltage that I measured across R118 with no key pressed, with C1 pressed, with C3 pressed, or with C6 pressed.  I measured the voltage across R118 with the Polysix Effects "Off" and with the Effects (Chorus) "On".  I then computed the current to each half of the LM13600 as the voltage across R118 divided by its resistance (10K) divided by 2, since there are two halves of the LM13600 and both halves are being driving through this one resistor.  As you can see, the currents are small -- the values are measured in microamps.  Using the equation in the LM13600 datasheet, I'm able to calculate what the cutoff frequency should be (-3dB point for one VCF stage).  These values are shown at the end of the table. For two filters in series, such as in the polysix, these frequency values will correspond to the -6dB point, instead of the -3dB point.


The important result to see in this result is that, even with the effects "off", the filter's cutoff frequency for the low notes is surprisingly low (4-5 kHz).  Wow.  A second result is that, on my synth at least, having the effects "off" does seem to open the filter somewhat, but certainly not all the way.  Hmm.

It is possible that these calculations are wrong.  It would be good to confirm these values by measuring the cutoff frequency directly.  I did this by, first, measuring the frequency content of a sawtooth wave at TP4 on KLM-368.  This point on the circuit is pretty much the signal that is input to the first stage of this LM13600 when no effects are active.  Second, I measured the sawtooth wave at the input to R168 on KLM-368, which is the output of the second stage of the LM13600.  By comparing the output to the input, we can see the frequency response of the LM13600 for whatever control signal the LM13600 is receiving.  An example graph comparing the frequency response (relative to an ideal sawtooth) is shown in the figure below when pressing the C1 note.

Measured Frequency Content at TP4 (before LM13600 VCF) and R168 (after LM13600 VCF) .  The Effects Are Off.
In this graph, the difference between the two traces equals 6 dB at a frequency of about 5290 Hz.  This is a bit higher than the 4087 Hz value shown in the previous table, but this experimental value still supports my conclusion -- the cutoff of the VCF is surprisingly low!  It's a fine value for cutting high frequency hiss, but it's a bad value if you like a lot of sizzle in your sawtooth wave.

The rest of my measured cutoff values are shown in the table below.  As you can see, they continue to support my conclusion that this VCF stage is definitely controlling how much high frequency energy is coming out of this synth.  If you like a really buzzy, sizzling sawtooth, you might want to consider modifying this portion of the synth (though at the expense of additional hissing noise).


As an example of a modification to improve the high-frequency response, I took a single clip-lead and connected +15V from R125 to the base of Q14.  This is shown in the picture at the top of this post.  By applying 15V to Q14, it causes the transistor to pass a lot of current, which then induces more control current to flow into the LM13600, which causes the filter to open all the way.  When I measured the frequency response (graph below), I see that the frequency response is the same coming out of the filter as going in...the cutoff frequency is somewhere above 20 kHz.  This happened no matter what note I pressed.

Applying +15V to Q14 Forces the LM13600 Filter Wide Open.  The output signal (R168) has no high-frequency roll-off relative to the input signal (TP4).
So, low note or high, this mod yields the the same response.  By forcing the base of Q14 to be 15V, I've forced the filter to be open all of the time.  No longer does it dynamically respond to the note being played.  No longer does it cut the high frequency noise.  But, man, does it have a lot of high frequency sizzle.  Is it a good sound?  Well, I like it...at least for low and middle notes.  On the high notes, it gets a little harsh.  Clearly, a little more playing around with this circuit is in order!

Update:  The bypassing / removal of this post-effects VCF is explored in much more detail (including an audio demo) is this follow-up post.

Monday, February 25, 2013

Mystery Circuit - Polysix Post-Effects VCA


Continuing my journey to understand the frequency response of my Korg Polysix, Johannes made a comment at the end of this post that that I should examine the effect of the "compressor/expander" circuit on the KLM-368 board .  He suggested that it would likely have a large effect on frequency response.  This circuit is definitely interesting and, through previous probings (the subject of a future post), I had indeed discovered that it has a pretty strong effect on the sound of the synth.  Here, I'm trying to figure out how this circuit works.  I'm looking forward to your help!

Post-Effects Voltage Controlled Amplifier (Click to Enlarge) of Korg Polysix
Above is an excerpt of the schematic for the "compressor/expander" circuit that I think that Johannes was referring to.  It is clearly some sort of voltage controlled amplifier (VCA) that is controlled in some way by the overall level of the audio that's being input.  What is it really doing?  How does it work?  Well, I'm not really sure, but I've labeled a few of the constituent blocks along with my guess at their function.  A brief discussion of each of these blocks is below:

(1) Amplify with High Frequency Emphasis:  Amplifies the input audio, with emphasis to the high frequencies.  Because of the connection to the -15V rail, though, the output looks like it would be slammed to +15V, regardless of the input.  I don't think that the input audio would ever be strong enough to pull the output of this off the +15V rail.  What is it doing? <Edit this part is wrong...see the comments below...the amplifier is not railing.  The schematic is wrong...the 4.7K resistor is actually 4.7M, which makes a big difference.>

(2)  Half-Wave Rectify with Low-Pass Filter:  If it weren't for the fact that the signal coming from the preceding block is railed at +15V, I would say that this block was an envelope follower, being composed of something that looks kinda like a half-wave  rectifier followed by a low-pass filter.  Because the input signal is railed at +15V, I don't know what this circuit is doing.

(3) Current Drive:  The output of the rectifier is controlling a BJT transistor.  Since the transistor is not configured like a typical voltage amplifier, I'm guessing that the transistor is controlling current flow.  I guess that it is setting up a current drive that will eventually control the VCA.

(4) Switch for the Current Control:  This block is a bit of mystery to me.  It appears to control the current flowing to the VCA.  Is it some sort of log or anti-log converter?  I don't know.  Is it merely acting as a switch to allow one behavior when effects are on versus when effects are off?  (Note that the input labeled "OFF" is at +15V when the Polysix effects are off and it is at -15V when any of the Polysix effects are on.)  What is it doing?

(5) Voltage Controlled Amplifier:   This appears to be a fairly standard (?) VCA circuit using a LM13600 transconductance amplifier.  The VCA is controlling the amplitude of the input audio (either the audio output by the effects section or the output of the dry un-effected signal).  There are a few 13600-based VCA circuits in the Polysix.  What I'm a little surprised about is the fact that this circuit uses both halves of the 13600.  Why both?  In earlier parts of the synth, it looked like one-half of the 13600 was sufficient.  What is this trying to do that it requires both halves?  <EDIT: This part is wrong.  It is not a VCA, but a VCF.  See the comments below and see this follow-up post>

If it weren't for the saturation against the +15V rail in the first element of this schematic, I would have said that this was a circuit that sensed the amplitude of the input audio and amplified itself in proportion to its amplitude.  Maybe even with the +15V saturation it is magically serving this function (though I don't understand how).  It appears to make the overall output louder when the input is louder.  Why?

Looking at it the other way, the circuit might make the overall output quieter when the input is quieter.  That sounds like a noise gate.  Is that what this is doing?

I'd love your thoughts...maybe I'm totally missing the point of this circuit...

Thursday, February 21, 2013

High Frequencies -- Signals Inside Mono/Poly

Continuing down the road of this post, I'm trying to put a little more sizzle into Mono/Poly.  I perceive that its highest frequencies aren't as present as they should be.  In previous posts, I showed how my Mono/Poly output started to gently roll-off starting around 4 kHz compared to an ideal sawtooth wave.  In this post, I open up the synth and start measuring the signal at various points in the synth's circuits.  I'm trying to isolate where the roll-off of the highest frequencies occur.

My Tools for the Job

To measure the signals at internal points in the circuit, I've chosen to use my trusty M-Audio handheld recorder.  It should be noted that the signals inside the synth can be very strong or very weak compared to the regular main output of the synth.  Therefore, one has to be careful to adjust the gain on the recorder so that it can properly handle the signal level at the given location in the synth.

The next issue is how to get the synth's internal signals out to the recorder.  Well, as you can see in the picture, I had a black coaxial cable with a BNC connector on one end and two clip leads on the other.  I then bought a BNC-to-Phono plug (1/4") so that I could plug this cable into my M-Audio recorder.  To record signals from within the synth, I just touch the point of interest with the clip leads (one to ground, the other to the point of interest).  Done.  If you don't have this kind of cable, you could take a guitar cable (1/4" on one end), cut it in the middle to expose the two internal conductors, and strip and tin the tips of the conductors.  Bingo!  Instant test cable.

Moving forward, I needed to decide where I was going to start measuring.  I already showed that the overall output was missing the highest frequencies.  So, I looked at the schematic (below) and chose to record the signal prior to the VCF at R1 (left side of the schematic) and I chose to record the signal after the VCA at R41 (ride side of the schematic).

I chose to record the signal prior to the VCF (left) and after the VCA (right).

I setup the synth to play one voice, sawtooth, with the filter wide open and no resonsnce.  I recorded a C1 (low) note at the R1 location.  Then I recorded a C1 (low) note at R141.  What did I see?  Well, I saw that I saturated my recorded because the signal was too strong, even with the M-Audio gain turned down to its lowest.  So, I turned down level of one oscillator using the knob on the front of the synth.  Then, I repeated my measurements.

What did I see this time?  In the time-domain (ie, like an oscilloscope would show), I got the tracings below. Notice that the blue trace (pre-VCF) shows those nice over-shoots at the vertical transition in the sawtooth. That means it'll have lots of sizzle.  The green race (post-VCA) lacks those overshoots.

Here is the Sawtooth Signal Inside the Mono/Poly from Before the VCF (blue) and from after the VCA (green)
When I measured the amplitude of all the harmonics, I got the frequency-domain plot below.  It clearly shows the roll-off of the highest frequencies in the post-VCA trace (green).  Notice that the signal before the VCF (blue) is totally flat.  It is as good a sawtooth wave as one could hope for.  Wow.  So, it appears that my sawtooth is loosing its edge somewhere in the VCF or in the VCA.

Comparison of the frequency content of the recorded signals to an ideal sawtooth.

What's the next step?  Well, there's a lot of circuitry between the two points that I measured.  Unfortunately, the signal levels are really low (20 mVpp) right after the filter (ie, the midpoint between the two points that I measured in this post), so it's really hard for my tools to measure the signal at this point.  My previous post discussed how I think that I've got the filter pushed open as much as it can be opened.  This suggests that the loss might be occurring in the VCA.  I guess that it's time to start probing the VCA.
Update: Here's my "Sizzle" Mod, where I solve my high-frequency problem!

Wednesday, February 20, 2013

High Frequencies - Mono/Poly Filter Adjustments

Following from my previous post, where I re-calibrated the filters on my Korg Polysix, I wondered if re-calibrating the filter on my Korg Mono/Poly would add some of the high-frequency sizzle that I feel is missing.  So, I dived in, trying to follow the instructions in the Service Manual and started the adjustments.

Adjusting VR18 - the Trim Control for the Filer Cutoff

I found that I had a hard time following the instructions.  For example, they recommend tuning the response of the filter cutoff knob by setting the filter to self-oscillate and then tuning the resulting pitch to a particular frequency using VR18.  The target frequency value is somewhat low...140 usec, or about 7.1 kHz.  That implies that the filter will only open up to around 7.1 kHz, which is lower than I want.  Based on my experience with the Polysix, I think that I want up to 10 kHz or higher.

Filter Section of the Mono/Poly Schematic.  The arrows point to pots that I tweaked.  The biggest effect comes with the "VR18" adjustment at the top.  The lower two mainly affect the behavior of the resonance and have little to do with the high-frequencies produced by the synth.

So, I instead adjusted VR18 so that the filter would open up as much as possible  I turned VR18 until the filter opened up, but stopped turning as soon I perceived no more increase in the synth's high frequencies (via headphones).  It turns out that on the SSM2044, opening the filter requires more negative voltage to be applied to Pin 3.  Changing VR18 adjusts how much voltage gets applied to Pin 3 and, therefore, affects how widely the filter opens and closes.

After my adjustments, I'm reading around -95mV with the VCF cutoff knob turned all the way up and about +95 mV with the knob turned all the way down.  When I use the bend wheel (which the Mono/Poly can map to VCF cutoff), I can drive the Pin 3 voltage to -101 mV, but there is no difference in sound (on my synth) between -95 mV and -101 mV.  It turns out that -90 mV is also the value suggested by the SSM2044 datasheet.    So, I guess that I've got it all the way open.

Measuring the voltage at Pin 3 of the SSM 2044 filter IC.  Here, the VCF cutoff knob is turned to be all the way open.

As I mentioned, when first adjusting VR18, I did notice a small increase in the high-frequency response of the synth, but it was nothing too dramatic.  Quantitatively, how much improvement did I get?  Well, the graph below is what I measured using the technique that I described in an earlier post  This graph does show a slight extension in the high-frequencies produced at the synth's output due to my filter tweaks.  I still have a way to go, though, before I make this graph flat, which would be the frequency content of an ideal sawtooth.

Frequency Response of Korg Mono/Poly After Adjusting the Filter Calibration

Let's get specific...previously, at 10 kHz, I was 8.1 dB down from the ideal sawtooth.  After these filter tweaks, I'm now down by only 5.6 dB.  So, through my filter adjustments, I boosted the response at 10 kHz by 1.5 dB.  As I said, this is a slight improvement that can be heard, but it is subtle.

My Polysix, which is quite sizzly, is actually a little above the zero line on these graphs, which might be *too* high.  So, I think that it is reasonable to see if I can get to the Mono/Poly up to the zero line.  This graph suggests that I've got another 5-6 dB to go.  The pursuit continues.

Next Step: Investigating internal signals around the Mono/Poly VCF and VCA.

High Frequencies -- Polysix Adjustments

Continuing from my last post, I've been exploring the high frequency performance of my Korg Polysix and Korg Mono/Poly.  I'm trying to add more sizzle to the Mono/Poly and I'm trying to reduce a bit of upper-treble harshness in the Polysix.  My latest attempt at improving the Polysix was to follow the re-calibration procedure from the service manual, particularly regarding the re-calibration of the filters.  Sadly, it didn't affect the high frequency performance of he synth.  It did, however, bring my resonance and filter frequency control into better consistency between the voices.  As a result, I had fun discovering the unique vibe that comes with actually trying to play the self-oscillating SSM2044 filters...



But, back to the beginning.  After my last post, I received an interesting comment by "terjewinther" from the Polysix Yahoo Group.  He suggested that the calibration can have a strong effect on the sound of the synth.  So, I opened her up again, brought out the multi-meter and oscilloscope, and started in on the calibration procedure as listed in the Service Manual.  I made it through the filter tuning including offset, filter frequency, resonance, and EG intensity.  What I found was that my DAC was a bit off and my EG intensity was way off.  My filter cutoff and resonance were pretty close, but there was some variation from voice to voice.  So, I'd say that the biggest impact of the calibration was to make the 6 voices more consistent with each other, especially at higher resonance settings.

After completing this portion of the calibration (I stopped just before the calibration of the Keyboard Tracking), I closed the lid, plugged in the audio recorder, and took some new measurements of the trusty sawtooth wave.  Did I smooth out the high end harshness??? Did I get rid of that weird bump that I was seeing around 7 kHz???  

Well, the graph below has the answer....and the answer is "no".  There appears to be no change in the frequency response.  I doubt, therefore, that the calibration got rid of the harshness.  (Sure, when I play with the synth over the next few days, my ears will tell me things that this graph can't...but you can't really trust your own initial impression because we humans are so easily prey to confirmation bias...hence, objective measures are best for immediate trouble-shooting and feedback).

Frequency Response After Following the Tune-Up Procedure in the Service Manual
So, calibration did not appear to affect the high frequencies.  I would not, though, consider my effort to be wasted on the calibration.  For example, the EG Intensity range on the filter is so much more usable now.  And, as I mentioned, the 6 voices are much more consistent at high resonance...and this has actually been a bit of an inspiration.  For the first time ever, I found myself actually trying to play the self-oscillating filters in a musical way.  The video at the top of this post shows some of my results.  Sure, the pitches from the self-oscillating filters are not perfectly in tune (that's really really hard to do), but their out-of-tuneness is what engaged me.  Their tone (a fairly pure sine wave) is also strangely engaging to me.  It's a whole type of sound that I didn't know was inside the Polysix.  Now I know.  Thank you calibration!

Sunday, February 17, 2013

High Frequencies - Polysix vs Mono/Poly

As you know, I have both a Korg Mono/Poly and a Korg Polysix.  I've had the Mono/Poly for longer and my visceral response to its sound is what motivated my purchase of the Polysix.  Being from the same vintage, and having many of the same components (like the SSM filter chip), made me assume that they would sound as similar as two analog synths could.  Well, once I'm got the Polysix home, I found that it didn't sound the same as the Mono/Poly.  In some ways the Polysix was better and in some ways the Mono/Poly was better.
Recording Tones from my Korg Polysix (Left) for Comparison to my Korg Mono/Poly (Right)
Specifically, I felt that the Mono/Poly had better bass and that the Mono/Poly had a much more engaging (less harsh, more smooth) lead sound in the upper octaves.  The Polysix, on the other hand, had a bit more sizzle and, on chords, the upper mids / low treble felt more liquid and present.  Being a bit geeky, I immediately wondered if I could measure and quantify the difference.  If I could quantify it, then maybe I could understand it, which means that maybe I could control and command it at will.  And, therein, lies the power of synth hacking.

OK, let's do some recordings, analyze them, and see what we can find...

For recordings, I simply plugged the output of the Polysix into my trusty portable audio recorder (M-Audio Microtrak II, shown in pictures above).  I recorded raw WAV files at 44.1 kHz at 16 bits.  I recorded 4 seconds of C1, then four seconds of C2, and so on up through all the octaves.  The synth was configured to play one voice, it was set to sawtooth, and the filter was wide open with no resonance.  I repeated the same process for the Mono/Poly (again, just one voice).  I brought all the files into Matlab for some plotting and analysis.  Below is plot comparing the raw time-domain audio of a sawtooth waveform at the lowest note, C1.

Polysix and Mono/Poly when playing a sawtooth waveform down at C1.
Clearly, there is a difference in the shape of these two waveforms.  To those used to looking at oscilloscope traces, this plot will be familiar.  You'll note that neither plot is as much like a sawtooth as one might like -- in both cases, the "ramp" portion of the sawtooth is not as straight as one might expect.  This is due to some roll-off in the bass frequencies in the output.  The Polysix waveform (blue) is more rounded than the Mono/Poly (green), so it appears to have a little less bass.  As for high frequencies, note that the Polysix (blue) has a very sharp downward spike at each vertical transition in the sawtooth.  It actually appears to overshoot.  This kind of sharp, narrow spike requires very high frequency response, which suggests that the Polysix does indeed have more "sizzle" than the Mono/Poly.

Now that we've seen some interesting features, let's try to quantify them.  I've chosen to take the FFT of each recording in order to assess the frequency content of each note.  After a bit of normalization to equalize the volume of each recording, I would get plots like the one below.  Note that frequency is now on the horizontal axis instead of time.

Spectrum recorded from the Polysix and the Mono/Poly when playing the lowest C ("C1").
The first thing to notice is that the spectrum of the note is composed of a large number of "spikes" in the frequency domain.  This is what one should expect for a sawtooth wave.  If I had used a sine wave instead of a sawtooth, I would have just gotten one spike...the one at the fundamental pitch.  What differentiates a sine wave from a sawtooth wave from a square wave is the number of harmonics and their relative magnitude.  Therefore, this plot is very normal.

Looking now at the Polysix spectrum (blue) compared to the Mono/Poly spectrum green), we see that they are largely similar until we get to the highest frequencies.  Above ~3 kHz, we see that the Polysix has stronger high frequencies than the Mono/Poly.  This could be part of the difference in "sizzle" that I'm hearing.  Let's dig in a little deeper.

The plot above is confusing because it shows the signal energy at important frequencies (the fundamental and all the harmonics) and at unimportant frequencies (everything between the harmonics).  Let's extract just the energy at the fundamental and at each harmonic and plot just those values.  The resulting plot (below) is much simpler and easier to see what's going on.  For reference, I even include a line that shows the spectrum for the ideal sawtooth waveform.  You'll see that both the Polysix (blue) and Mono/Poly (green) have pretty good sawtooths.  Only above ~3 kHz do they begin to diverge in any significant way.

Spectrum Assessed at Just the Fundamental and Harmonic Frequencies.
Let's further simplify this plot by taking the difference of each spectrum relative to the ideal sawtooth spectrum.  The result is shown below.  Now we're getting somewhere.  

Spectrum Compared to the Spectrum of an Ideal Sawtooth Waveform
First, look at the left-most side of the graph. Here are the low frequencies. The fundamental at C1 is abut 33 Hz. That's where this graph starts. Note that it shows that the Polysix (blue) is a little below the Mono/Poly (green). At this very low frequency, the Polysix is showing 1.6 dB less bass than the Mono/Poly. That's not much of a difference. So, maybe my subjective assessment that the Mono/Poly has more bass than the Polysix is supported by this data, or maybe not.  Lots of other factors can affect the psychoacoustics of bass perception besides just the literal amount of bass in the air.  So, I'm going to refrain on making any conclusions about bass.

Looking at the right-most side of the graph, we see huge differences in the treble response.  Unlike the assessment of bass, this difference in treble is very clear.  Comparing the Polysix (blue) to the Mono/Poly (green) we see a 3 dB difference by 4 kHz.  That's definitely audible.  By the time you get out to 10 kHz, we've got a 10 dB difference.  That's a big difference in "sizzle".  This definitely confirms what I was hearing.  This doesn't tell us *why* they're different, but it's an objective measure that we can now use to probe within each synth to find where the difference occurs.  That's an exercise for later.

Another behavior that catches my eye in the figure above is that the Polysix diverges from the ideal sawtooth by first going *up* before going down.  It's as if there is a treble knob within the synth and that it is turned up a bit in the 3 kHz to 10 kHz region.  The peak response is at 6.8 kHz and is 2.2 dB above the ideal sawtooth.  What's the cause of this apparent enhancement of the treble?  Well, I'm not sure, but to my eye, it appears that the resonance of the VCF on the Polysix might be a bit active, even though I turned it down to "zero".  I'll have to open her up and check it out at a later time.  

The more important question is whether this boost in treble is the cause of the "upper mids / low treble feel more liquid and present" perception that I mentioned earlier.  Maybe.  If I'm able to tune the boost out of the system (through adjustments to the resonance or whatever), we'll see if the "liquid and present" feel goes away.  Given that I like the "liquid and present" feel, I might choose to keep it the way that it is.

A downside of this enhanced upper-mids is reflected in my original comment that I preferred the sound of the Mono/Poly for lead work in the upper octaves.  I felt that it was more engaging and less harsh.  Excessive upper-mids could be the source of "harshness".  When I examine the data for a high note (C6) many of the conclusions drawn from the graphs above still hold for C6...

For example, below, the time domain plot shows that the Polysix still has its over-shooting downward spike suggested lots of high-treble.

Time-Domain Plot of Raw Waveform of High Note, C6
The FFT output comparing the two C6 notes shows that the Polysix definitely has more more treble.

Frequency-Domain Plot of High Note, C6
And, comparison of the amplitude of the fundamental and harmonics to the ideal sawtooth waveform (below) shows the same high-frequency roll-off in the Mono/Poly and the same slight high-frequency boost in the Polysix.
Comparison of Harmonic Content of High Notes (C6) to Ideal Sawtooth
So, while "harshness" is also a complicated psychoacoustic phenomenon, these plots confirm that there is a substantial difference in the amount of treble above 3 kHz between the Polysix and the Monopoly.  This is true for both low notes (the C1 analyzed first) and for high notes (the C6 analyzed second).  In my opinion, this extra treble is at least one of the factors of the apparent harshness (for lead work) of the Polysix compared to the Mono/Poly.

Edit: Follow-up on the Polysix is here.
Edit: Follow-up on the Mono/Poly is here.
Edit: Modification of the Polysix to restore the deep bass is here.

Friday, February 8, 2013

Polysix - Basic Key Assigner Timing

As discussed previously, I'm trying to replace the "Key Assigner" in my Korg Polysix as the first step in replacing the synth's keybed so that I can have aftertouch and velocity.  The heart of the Key Assigner is a microprocessor that scans the keybed and that drives pitch and gating of the synth's six voices.  My plan is to pop out the existing microprocessor chip and to replace it with an Arduino that I wire into the empty socket that had been holding the microprocessor.  My Arduino will have to generate all of the same signals that are currently generated by the microprocessor, and it will have to generate these signals at the right time and in the right order.  Since the Polysix schematic doesn't tell me much about the timing of these signals, I'll have to figure it out for myself.

Probing the Timing of the Key Assigner Circuitry Using my Trusty O-Scope.
The primary tool for figuring out timing of circuits is an oscilloscope.  Or, I could use a Logic Analyzer, which would be better for many of the signals...but I don't have one of those.  I do have access to an oscilloscope ("O-scope"), though, so I'll use that.

After a quick period of probing around, I found that the Key Assigner has a fundamental timing loop during which is cycles through all six voices.  Looking at the schematic, one good place to see this timing loop is at the output of the Pitch CV generator (ie, Pin 1 of IC 9, which is at the top right of the schematic page below).

Polysix Schematic for the Key Assigner portion of KLM-366

If you put the O-scope probe at this location, you'll see a repeating figure such as the graph below (only one period is shown).  The details of the repeating figure depend upon what notes you're playing on the Polysix.  The first graph shows the result of playing all "C0" (the lowest note on the keyboard).  The second graph shows the result of telling each voice to play a different octave ("C0" through "C5").  By comparing the two graphs, you can definitely see the timing of the six voices.

One Period of the Key Assigner Timing Loop.  Output of IC9.  All six voices playing "C0".
Output of IC9 with Each Voice Playing a Different Octave of "C".
Looking at this graphs, I see that overall timing loop is 6204 microseconds ("usec") long.  This means that the basic pitch and the on/off gate of each voice only get updated every 6.2 milliseconds, which is an update rate of only 161 Hz. Frankly, I was surprised at how slow this is.  But, since the synth sounds OK, I guess that it works fine.  Luckily, the pitch modulations and the VCF and VCA envelopes are not at all dependent upon this loop (they have their own generators which, for the case of the VCF and VCA, are fast).

Additional examination of these graphs (and a little more probing of the synth) allows one to understand the timing cycle well enough to break it into discrete time periods.  Clearly, there are six periods associated with the pitch of the six voices.  I call these periods "V1" through "V6".  These periods are each 676 usec in duration.

After V6, there are appears to be another voice-like period, which I call "Vx7", since it is so much like a voice, but doesn't actually sound.  Interestingly, through additional experiements, I found that its voltage is always the same - it is always set to be C7, the highest note on the Polysix.  Vx7 is 712 usec long.  Why is it a different length than V1-V6?  I don't know.

Similarly, after Vx7, there appears to be another voice-like period, which I call "Vx8".  Its voltage level always appears to be identical to V1.  I don't know why.  I'm thinking that Vx7 and Vx8 are both used by the Polysix's pitch correction circuitry to help it stay in tune.   The duration of Vx8 is only 624 usec (though the end of Vx8 is actually a bit hard to define and measure).

After Vx8 is the final period of the Key Assigner's timing cycle.  I call it the "Inter-voice" (or "IV") period.  During this period, the synth sets the gate signals, it drives some LEDs, it scans the keybed and some switches, and probably a few other things as well.  We'll dig into that in a future post.

To finish this post, I'd like to show some of the other logic signals that are associated with the timing of the voices.  The graph below shows these signals with the same voice boundaries that were derived from the previous graphs.

Logic Signals in the Key Assigner that Appear to be Associated with the Voice Periods

The INH, A, B, C logic lines are the clock and address lines that the synth uses to keep track of the multiplexed analog pitch signal.  As can be seen in the graph, the INH line goes high at every transition between voices.  When high, this signal must inhibit any downstream components from acting upon the pitch signal -- the pitch signal which is about to go through a transition.  The INH pulses are about 78 usec in duration.  The pulse between Vx7 and Vx8 is a little longer -- about 98 usec.  The INH then goes high for the entire IV period, clearly telling the synth to ignore any changes on the multiplexed pitch CV line during the IV period.

During the voice periods, when the INH line goes high, we see that the A, B, and C, address lines toggle their state to indicate that the Key Assigner is switching voices.  These three lines act like a binary counter with A being the low bit (toggles with each voice), B being the middle bit (toggles every two voices) and, and C being the high bit (toggles every four voices).  Pretty logical.  The logical timing even continues during Vx7 and Vx8 as if they were real voices.  Once it gets to the IV period, though, the timing of these lines does get a little funky.  More investigation will be needed later.

Finally, this graph shows a mystery signal that the schematic names "MC".  I might have thought that this was "Master Clock", but it only seems to change state during Vx7, so it doesn't seem very clock like.  I'm not sure what it does.  I tried to find where in the multi-page schematic the Polysix uses the MC line, but I couldn't find it.  Does anyone have any ideas?

Edit: Here's the Next Step...Replacing the Key Assigner with an Arduino

Polysix Plan -- Replacing the Key Assigner

As introduced earlier, I'm replacing the keybed in my Korg Polysix with a keybed that has velocity and aftertouch sensitivity.  My first step is to figure out how to wire the new keybed into the keyboard so that the keys work.  Forget aftertouch and velocity for the moment, I need to start with getting the new keybed to simply trigger notes on the Polysix.  How do I do that?

Connector to the Keybed in the Korg Polysix
The simplest approach would be to wire the keybed into the existing keybed connector on the KLM-366 PCB.  A picture of this connector is shown above.  From the Polysix group on Yahoo Groups, one can get the wiring schematic for the existing keybed so that, in theory, I could connect the correct pins on my new keybed to the correct pins on the Polysix header.  Sounds pretty easy, right?  Well, the downside of this approach is that it precludes the addition of velocity sensitivity to the Polysix.

The Polysix, of course, has no velocity sensitivity.  It has no circuitry to effect any velocity-driven changes to the VCF or VCA.  I'll have to add that circuitry.  That'll be a challenge.  It'll be a challenge even more than aftertouch because the velocity sensitivity is a per-note effect (if I hit one note hard, only that one note's sound should be affected).  Therefore, I'll need to know which of the Polysix's six voices are assigned to each key press.  If I just plug into the existing keybed connector, there is no way for me to know which voice the Polysix's "Key Assigner" has chosen to associate with each of my key presses.  It will be impossible to implement velocity sensitivity if I connect to the existing keybed connector.  Therefore, I think that I need to take a different approach...one that gets me deeper access.

The "Key Assigner" region of KLM-366...my target!  The big chip is the microprocessor that I will replace.
After deeply studying of the Polysix schematic, the only way that I can see to get access to the voice allocation is to actually do the voice allocation myself.  This means replacing the "Key Assigner" portion of the KLM-366 PCB.  The "Key Assigner" consists of a microprocessor and a bunch of other digital control elements.  The microprocessor performs a number of functions...most relevant to this conversation is that it scans the keybed to see which keys are being pressed, it decides which of the Polysix's six voices it should be assigned to, and it generates the digital signals necessary to create the correct pitches for all of the voices. If I replace this circuitry with my own (say, by using an Arduino in place of the existing microprocessor), I can assign the voices myself, which means that I'll know which voice goes with each key press, which means that I can apply any velocity-sensitive modulations to the correct note (via additional circuitry that I've yet to build).

Is it a good plan?  Sure.  Is it a feasible plan?  That's still unknown.  Helping me believe that this it is feasible is that there are a number of "MIDI Retrofit" kits available for the Polysix.  Several of them appear to replace the Key Assigner with a new microprocessor that has been programmed to receive MIDI commands as well as to scan the keybed.  If they can figure out how to replace the Key Assigner, I can too!

Edit: Here's the next step...Key Assigner Timing

My Big Polysix Modification Adventure

Well, I'm finally starting in.  I'm doing it.  My Polysix better look out.  It begins.

New Fatar Keybed with Aftertouch is on the Left.  Stock Polysix Keybed is on the Right.

A while back, I added aftertouch to my Mono/Poly.  It was a real hack-job, both mechanically and electrically.  It was ugly, but it worked.  It worked well enough that it made the synth feel so much more expressive and exciting.  I want this functionality in my Polysix.  I want it bad.

The aftertouch in the Mono/Poly worked, but it wasn't perfect.  The main problem is that the response from key to key is uneven.  If I'm going to do aftertouch again, I want it better.  To make it better, I figure that I should not just kludge aftertouch onto the exist keybed (like I did for the Mono/Poly).  I'm thinking that I should maybe find a keybed with aftertouch built-in.  And, if I'm buying a new keybed, I want one that feels nice...maybe a little less klick-y and plastic-y than the stock Polysix kebed.

After a bunch of searching, the only people that I could find that would sell me a nice Fatar aftertouch-enabled keybed were some very helpful British guys over at keyparts.co.uk.  They're the only ones!  Not even Doepfer (or his US reps) could get me what I wanted.  Weird.  So, I went with the British guys...and they were super helpful, so I was glad to give them my business.  The specific keybed is linked below.  You'll note that the keybed, it also has velocity sensitivity.  So, maybe the old Polysix will get both aftertouch and velocity!

http://www.keyparts.co.uk/shop?page=shop.product_details&flypage=flypage.tpl&product_id=20&category_id=8

With them being in the UK and me being in the USA, shipping could have been horrible.  But, the guys at Keyparts when to extra lengths to get the smallest box possible (total volume dominates the cost of something this light weight), which saved a ton of money is shipping.  Thanks guys!

Well, I received the keybed and it looks and feels great.  The picture at the top of this post shows the new Fatar keyed on the left and the stock Polysix keybed on the right.  The thin gray strip protruding from the end of the Fatar keybed is the aftertouch sensor.

So, now the adventure begins.  I've got to figure out how to wire the new keybed into the Polysix and I've got to figure out how to inject the aftertouch signal.  The aftertouch portion should be pretty easy (again, I'll just mimic the bench and mod wheels).  The hard part is wiring in the keybed.  There are several ways that it could be done...some simple but limited, some complex but powerful.  I think that I'm going to go for powerful.  That's for future entries.  Wish me luck...'cause here we go!

Edit: Here's my next step on the Keybed...Cutting the Keybed Feet.
Edit: Here's my next step on the Electronics...Replacing the Key Assigner.

Tuesday, February 5, 2013

TR-707 Driving the Arpeggiator on my Polysix

Recently, I purchased an old Roland TR-707 drum machine.  In addition to the drums sounds (and the classic Roland x0x step programming interface), I was excited at the possibility of using the 707's trigger output to control my analog synths.  Specifically, I was hoping to use the trigger out to drive the synth's "gate in" to create interesting rhythms.  At the very least, I was hoping to drive the arpeggiator and keep it in sync with some drums.  For an example, check out the video below.  Electro party!


But that's getting ahead of myself.  When I got the TR-707 home and out of the box, I first wired it up to the "Gate In" on my Korg Mono/Poly.  I was hoping that it would trigger the notes on my Mono/Poly so that I could create some sweet syncopated robo-rhythms.  Sadly, it only kinda worked.  The problem was that note coming out the Mono/Poly was just a tiny little "blip".  Very unsatisfying.  Boo!  Why?


Trusty Roland TR-707
To trouble-shoot, I plugged the 707's "Trigger Out" into my oscilloscope and got the picture below.  I found that the trigger is a +5V pulse (which is fine) and that is only 20 milliseconds long (whoa, short!).  But of course!  The trigger is not intended to be a "gate on" signal (which would need to stay on for the entire duration of the intended tone) but it is merely a pulse that is supposed to mark the start of a discrete event...like of a drum sound.  When I tried to use this 20 msec pulse as a "Gate On" signal to my Mono/Poly, the resulting note would only be 20 msec long.  That's not much of a note.  Now it makes sense.

Trigger Pulse from TR-707
So, if it is just a clock pulse, then I thought that it would be perfect for stepping the Mono/Poly's arpeggiator.  It's easy to try because of those awesome patch points on the back of the Mono/Poly...just unplug from "Gate In" and plug into "Arp Trig In".  Unfortunately, it didn't work at all.  I'm not sure why.  Maybe the pulse is too short?  I don't know.  I'll investigate more in the future.

Failing with the Mono/Poly, I tried to drive the arpeggiator of my Korg Polysix.  For some reason this worked marvelously.  As a demo, see the video at the top of this post.  Or, for a somewhat different vibe from the synth, check out the video below.  The video below doesn't have a complicated patch on the synth, nor is it a complicated arpeggiation, but it is in sync with the drums and will stay that way.  Groovy.  Thank you 707 trigger out!