The original key encoder is a strange bit of logic. Originally designed
for the 4-voice CS-50, but with options to assign from 4 to 8 keys, some
of the logic for 4 voices still applies. The key rollover logic triggers
voice 8 if voice 4, 5, 6, or 7 is in use. So, the pressing a key 4 (or 5
or 6 or 7) times and holding it while pressing another key is the only way
to sound voice #8. At least it is the only voice number that needs this
keying method.
I think the key assigner chip is kit-bashed from one of Yamaha's organ
key encoders, which typically (in 1975) encoded up to 7 keys per manual.
Adding that 8th note involved a bit of 'bodge-work' to the existing 7-key
design.
The actual reading of keys is also interesting; they used a ternary
(base-3) encoding system, which is hard to do in a modern 5-volt-only
microcontroller. (I don't even try to do the ternary encoding in my
microcontroller code for the KAS replacement project. Much easier to do a
"normal" binary key-scanner and frob the results into Yamaha-like keycodes
and time slots.
Hope this helps,
Crow
/∗∗/
On Mon, 16 Aug 2004, Quazimodo wrote:
> Hi Scott,
>
> I tried emailing you directly from you site but they kept bouncing
> back... glad to have bumped into you here. I have a question for you.
> It's about the selection of which voice is playing (great site by the
> way) when tuning. You say on your site that the voices play in order
> after switching on. But to get voice 8 you have to hit a key 4 times and
> hold it, and the next voice played is voice 8. This is slightly
> confusing - are you saying that after powering on you can hit single
> notes and it will increment from 1 to 7? But you need to do the "4 hit -
> hold and then one hit" for voice 8 ONLY????
>
> I hope that I've explained my confusion un-confusingly...?
>
> Cheers for now.
> TOM