Discussion about the Korg PolySix synthesizer group photo

Yahoo Groups archive

Discussion about the Korg PolySix synthesizer

Archive for polysix.

Index last updated: 2026-03-30 01:17 UTC

Thread

Replacing the Key assigner MCU

Replacing the Key assigner MCU

2015-12-19 by Bob Grieb

The Korg MCU is a masked part, so there would be no way to change it even if we
figure out how. One would need to reprogram an EPROM-based 8049 chip. (not cheap,
assuming you could find one)
Using a PIC would be a whole lot cheaper, although an external latch is needed
as the PIC is only a 28-pin chip so it doesn't have enough pins by itself. An SMT
PIC could be used but that would put assembly out of reach for many people.

Another alternative would be the Teensy that GliGli used on the P600 project.
It's WAY overkill for this, but might just plug in, like it does for the Z80, if a few wires
are added.

I suspect figuring out an implementation that would be easy for people to do themselves
would be more difficult than finding the extra delay in the arpeggiator when it switches
direction.

Bob

--------------------------------------------
On Fri, 12/18/15, James Matthew Smith jmsmatthewsmith@gmail.com [PolySix] <PolySix@yahoogroups.com> wrote:

Subject: Re: [PolySix] New file uploaded to PolySix
To: "PolySix@yahoogroups.com" <PolySix@yahoogroups.com>
Date: Friday, December 18, 2015, 6:47 PM

Thanks Bob, this is really cool
to see opened up, and even cooler is the fact that it exists
and possibly can be modified to smooth that small timing
hiccup.It's way over my head in terms of code
though. It'd take me years to attempt to modify
it. If it ends up you are somehow interested in
looking into this, please let us/me know.

On Fri, Dec 18, 2015 at
4:17 PM, Dave Garfield daveogarf@yahoo.com
[PolySix] <PolySix@yahoogroups.com>
wrote:















 









Thank you,
Bob!Dave

On Friday, December
18, 2015 12:04 PM, "PolySix@yahoogroups.com"
<PolySix@yahoogroups.com>
wrote:



 











Hello,



This email message is a notification to let you know that

a file has been uploaded to the Files area of the PolySix

group.



File : /klm8049.asm

Uploaded by : bobgrieb <bobgrieb@yahoo.com>

Description : Commented 8049 source code for PolySix Key
Assigner MCU. Comments are mine and may be incorrect.



You can access this file at the URL:

https://groups.yahoo.com/neo/groups/PolySix/files/klm8049.asm



To learn more about file sharing for your group, please
visit:

https://help.yahoo.com/kb/index?page=content&y=PROD_GRPS&locale=en_US&id=SLN15398



Regards,



bobgrieb <bobgrieb@yahoo.com>













































#yiv4631428354 #yiv4631428354 --
#yiv4631428354ygrp-mkp {
border:1px solid #d8d8d8;font-family:Arial;margin:10px
0;padding:0 10px;}

#yiv4631428354 #yiv4631428354ygrp-mkp hr {
border:1px solid #d8d8d8;}

#yiv4631428354 #yiv4631428354ygrp-mkp #yiv4631428354hd {
color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}

#yiv4631428354 #yiv4631428354ygrp-mkp #yiv4631428354ads {
margin-bottom:10px;}

#yiv4631428354 #yiv4631428354ygrp-mkp .yiv4631428354ad {
padding:0 0;}

#yiv4631428354 #yiv4631428354ygrp-mkp .yiv4631428354ad p {
margin:0;}

#yiv4631428354 #yiv4631428354ygrp-mkp .yiv4631428354ad a {
color:#0000ff;text-decoration:none;}
#yiv4631428354 #yiv4631428354ygrp-sponsor
#yiv4631428354ygrp-lc {
font-family:Arial;}

#yiv4631428354 #yiv4631428354ygrp-sponsor
#yiv4631428354ygrp-lc #yiv4631428354hd {
margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}

#yiv4631428354 #yiv4631428354ygrp-sponsor
#yiv4631428354ygrp-lc .yiv4631428354ad {
margin-bottom:10px;padding:0 0;}

#yiv4631428354 #yiv4631428354actions {
font-family:Verdana;font-size:11px;padding:10px 0;}

#yiv4631428354 #yiv4631428354activity {
background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}

#yiv4631428354 #yiv4631428354activity span {
font-weight:700;}

#yiv4631428354 #yiv4631428354activity span:first-child {
text-transform:uppercase;}

#yiv4631428354 #yiv4631428354activity span a {
color:#5085b6;text-decoration:none;}

#yiv4631428354 #yiv4631428354activity span span {
color:#ff7900;}

#yiv4631428354 #yiv4631428354activity span
.yiv4631428354underline {
text-decoration:underline;}

#yiv4631428354 .yiv4631428354attach {
clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}

#yiv4631428354 .yiv4631428354attach div a {
text-decoration:none;}

#yiv4631428354 .yiv4631428354attach img {
border:none;padding-right:5px;}

#yiv4631428354 .yiv4631428354attach label {
display:block;margin-bottom:5px;}

#yiv4631428354 .yiv4631428354attach label a {
text-decoration:none;}

#yiv4631428354 blockquote {
margin:0 0 0 4px;}

#yiv4631428354 .yiv4631428354bold {
font-family:Arial;font-size:13px;font-weight:700;}

#yiv4631428354 .yiv4631428354bold a {
text-decoration:none;}

#yiv4631428354 dd.yiv4631428354last p a {
font-family:Verdana;font-weight:700;}

#yiv4631428354 dd.yiv4631428354last p span {
margin-right:10px;font-family:Verdana;font-weight:700;}

#yiv4631428354 dd.yiv4631428354last p
span.yiv4631428354yshortcuts {
margin-right:0;}

#yiv4631428354 div.yiv4631428354attach-table div div a {
text-decoration:none;}

#yiv4631428354 div.yiv4631428354attach-table {
width:400px;}

#yiv4631428354 div.yiv4631428354file-title a, #yiv4631428354
div.yiv4631428354file-title a:active, #yiv4631428354
div.yiv4631428354file-title a:hover, #yiv4631428354
div.yiv4631428354file-title a:visited {
text-decoration:none;}

#yiv4631428354 div.yiv4631428354photo-title a,
#yiv4631428354 div.yiv4631428354photo-title a:active,
#yiv4631428354 div.yiv4631428354photo-title a:hover,
#yiv4631428354 div.yiv4631428354photo-title a:visited {
text-decoration:none;}

#yiv4631428354 div#yiv4631428354ygrp-mlmsg
#yiv4631428354ygrp-msg p a span.yiv4631428354yshortcuts {
font-family:Verdana;font-size:10px;font-weight:normal;}

#yiv4631428354 .yiv4631428354green {
color:#628c2a;}

#yiv4631428354 .yiv4631428354MsoNormal {
margin:0 0 0 0;}

#yiv4631428354 o {
font-size:0;}

#yiv4631428354 #yiv4631428354photos div {
float:left;width:72px;}

#yiv4631428354 #yiv4631428354photos div div {
border:1px solid
#666666;height:62px;overflow:hidden;width:62px;}

#yiv4631428354 #yiv4631428354photos div label {
color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}

#yiv4631428354 #yiv4631428354reco-category {
font-size:77%;}

#yiv4631428354 #yiv4631428354reco-desc {
font-size:77%;}

#yiv4631428354 .yiv4631428354replbq {
margin:4px;}

#yiv4631428354 #yiv4631428354ygrp-actbar div a:first-child {
margin-right:2px;padding-right:5px;}

#yiv4631428354 #yiv4631428354ygrp-mlmsg {
font-size:13px;font-family:Arial, helvetica, clean,
sans-serif;}

#yiv4631428354 #yiv4631428354ygrp-mlmsg table {
font-size:inherit;font:100%;}

#yiv4631428354 #yiv4631428354ygrp-mlmsg select,
#yiv4631428354 input, #yiv4631428354 textarea {
font:99% Arial, Helvetica, clean, sans-serif;}

#yiv4631428354 #yiv4631428354ygrp-mlmsg pre, #yiv4631428354
code {
font:115% monospace;}

#yiv4631428354 #yiv4631428354ygrp-mlmsg * {
line-height:1.22em;}

#yiv4631428354 #yiv4631428354ygrp-mlmsg #yiv4631428354logo {
padding-bottom:10px;}


#yiv4631428354 #yiv4631428354ygrp-msg p a {
font-family:Verdana;}

#yiv4631428354 #yiv4631428354ygrp-msg
p#yiv4631428354attach-count span {
color:#1E66AE;font-weight:700;}

#yiv4631428354 #yiv4631428354ygrp-reco
#yiv4631428354reco-head {
color:#ff7900;font-weight:700;}

#yiv4631428354 #yiv4631428354ygrp-reco {
margin-bottom:20px;padding:0px;}

#yiv4631428354 #yiv4631428354ygrp-sponsor #yiv4631428354ov
li a {
font-size:130%;text-decoration:none;}

#yiv4631428354 #yiv4631428354ygrp-sponsor #yiv4631428354ov
li {
font-size:77%;list-style-type:square;padding:6px 0;}

#yiv4631428354 #yiv4631428354ygrp-sponsor #yiv4631428354ov
ul {
margin:0;padding:0 0 0 8px;}

#yiv4631428354 #yiv4631428354ygrp-text {
font-family:Georgia;}

#yiv4631428354 #yiv4631428354ygrp-text p {
margin:0 0 1em 0;}

#yiv4631428354 #yiv4631428354ygrp-text tt {
font-size:120%;}

#yiv4631428354 #yiv4631428354ygrp-vital ul li:last-child {
border-right:none !important;
}
#yiv4631428354

Re: Replacing the Key assigner MCU

2015-12-19 by grantbt@jps.net

Bob,

You seem like the Z80 master. Regarding your comment about the P600 upgrade. I think rather than have a few wires added to a teensy board, that someone should just make a drop in replacement board for the Z80 (could be otherwise the same or nearly so to the teensy). I don't know if it would be better for developers to write code from scratch for that CPU (is it an ARM or PIC?), or if Z80 emulation is possible?

There are so many synths, especially from the US, that used Z80 The 8051 has nice upgraded versions with so much more speed, memory etc.

GB

Re: [PolySix] Re: Replacing the Key assigner MCU

2015-12-19 by Bob Grieb

Not a master of anything. Just a guy who was around back when this was the technology to use.

I agree that it would be nice to have a drop-in replacement instead of having to add wires. But
the Teensy is useful for other things as well, so it's actually lucky that it works so well in a Z80 socket.
I don't think that was intended by the designers. Actually, the power pins are placed nicely for emulating
a 6809 (Matrix 6/1000). The Teensy uses an Atmel AVR CPU. Not ARM or PIC, but any of those three
would be much more powerful than a Z80. A lot of the power comes from having the code and RAM inside,
since instructions can be wider than 8 bits, and accessed a lot faster as well, and a lower power.

Emulating a Z80 and running with the existing external code EPROM doesn't seem to accomplish much,
it seems to me. You would be slowed by the access to external memory chips. Emulation is a lot more
complicated than simply writing equivalent code. And writing code in C would be easier than coding in assembly
as the original programmers were required to. The newer CPUs mentioned above all have more powerful instruction
sets than the Z80, so running in "native" mode with internal Flash and RAM would be a lot faster than emulating
the Z80 and running from slow 1980's external memory. But using external battery-backed RAM for patches
still makes sense, I think, although patches could also be stored in Flash or in EEPROM possibly, although most
of the SOC chips I am familiar with don't have enough EEPROM for that.

BTW, the old code for some of those 80's synths does lots of extra work to compress and decompress
patches and to get them to fit into the available RAM. And some other tricks were played to get things to go
fast enough. Someone programming using a modern CPU would not want to do some of the things they did,
as it can make the code a lot harder to follow and understand. With enough speed, you can code things in a
logical, straightforward manner, (in C) and it will still be fast enough.

One idea I had was to write translation code that would map instructions from, say, a Z80 or 8049 to something
more powerful like a PIC or AVR chip. The mapped code could execute at maybe 10 MHz in a PIC or 16 in an AVR,
and might be fewer instructions besides, so it would run a whole lot faster. For reference, the Z80 in a P5 runs at
2.5 MHz, and in the Six trak at 4 MHz, but every instruction takes at least 4 clocks. A PIC or AVR can do many
of its instructions in just one clock cycle, so there is a big speed up. The 8048/49 is even slower than the Z80,
which explains why they needed two of them in the Poly Six. So I guess it depends on the goal.
Some synths seem to need a speed-up, maybe others just need a bug fix or two.

Sorry if this was boring...


--------------------------------------------
On Fri, 12/18/15, grantbt@jps.net [PolySix] <PolySix@yahoogroups.com> wrote:

Subject: [PolySix] Re: Replacing the Key assigner MCU
To: PolySix@yahoogroups.com
Date: Friday, December 18, 2015, 10:08 PM

Bob,

You seem
like the Z80 master. Regarding your comment about the P600
upgrade. I think rather than have a few wires added to a
teensy board, that someone should just make a drop in
replacement board for the Z80 (could be otherwise the same
or nearly so to the teensy). I don't know if it would be
better for developers to write code from scratch for that
CPU (is it an ARM or PIC?), or if Z80 emulation is
possible?

There are so many
synths, especially from the US, that used Z80 The 8051 has
nice upgraded versions with so much more speed, memory etc.


GB









#yiv4817411968 #yiv4817411968 --
#yiv4817411968ygrp-mkp {
border:1px solid #d8d8d8;font-family:Arial;margin:10px
0;padding:0 10px;}

#yiv4817411968 #yiv4817411968ygrp-mkp hr {
border:1px solid #d8d8d8;}

#yiv4817411968 #yiv4817411968ygrp-mkp #yiv4817411968hd {
color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}

#yiv4817411968 #yiv4817411968ygrp-mkp #yiv4817411968ads {
margin-bottom:10px;}

#yiv4817411968 #yiv4817411968ygrp-mkp .yiv4817411968ad {
padding:0 0;}

#yiv4817411968 #yiv4817411968ygrp-mkp .yiv4817411968ad p {
margin:0;}

#yiv4817411968 #yiv4817411968ygrp-mkp .yiv4817411968ad a {
color:#0000ff;text-decoration:none;}
#yiv4817411968 #yiv4817411968ygrp-sponsor
#yiv4817411968ygrp-lc {
font-family:Arial;}

#yiv4817411968 #yiv4817411968ygrp-sponsor
#yiv4817411968ygrp-lc #yiv4817411968hd {
margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}

#yiv4817411968 #yiv4817411968ygrp-sponsor
#yiv4817411968ygrp-lc .yiv4817411968ad {
margin-bottom:10px;padding:0 0;}

#yiv4817411968 #yiv4817411968actions {
font-family:Verdana;font-size:11px;padding:10px 0;}

#yiv4817411968 #yiv4817411968activity {
background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}

#yiv4817411968 #yiv4817411968activity span {
font-weight:700;}

#yiv4817411968 #yiv4817411968activity span:first-child {
text-transform:uppercase;}

#yiv4817411968 #yiv4817411968activity span a {
color:#5085b6;text-decoration:none;}

#yiv4817411968 #yiv4817411968activity span span {
color:#ff7900;}

#yiv4817411968 #yiv4817411968activity span
.yiv4817411968underline {
text-decoration:underline;}

#yiv4817411968 .yiv4817411968attach {
clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}

#yiv4817411968 .yiv4817411968attach div a {
text-decoration:none;}

#yiv4817411968 .yiv4817411968attach img {
border:none;padding-right:5px;}

#yiv4817411968 .yiv4817411968attach label {
display:block;margin-bottom:5px;}

#yiv4817411968 .yiv4817411968attach label a {
text-decoration:none;}

#yiv4817411968 blockquote {
margin:0 0 0 4px;}

#yiv4817411968 .yiv4817411968bold {
font-family:Arial;font-size:13px;font-weight:700;}

#yiv4817411968 .yiv4817411968bold a {
text-decoration:none;}

#yiv4817411968 dd.yiv4817411968last p a {
font-family:Verdana;font-weight:700;}

#yiv4817411968 dd.yiv4817411968last p span {
margin-right:10px;font-family:Verdana;font-weight:700;}

#yiv4817411968 dd.yiv4817411968last p
span.yiv4817411968yshortcuts {
margin-right:0;}

#yiv4817411968 div.yiv4817411968attach-table div div a {
text-decoration:none;}

#yiv4817411968 div.yiv4817411968attach-table {
width:400px;}

#yiv4817411968 div.yiv4817411968file-title a, #yiv4817411968
div.yiv4817411968file-title a:active, #yiv4817411968
div.yiv4817411968file-title a:hover, #yiv4817411968
div.yiv4817411968file-title a:visited {
text-decoration:none;}

#yiv4817411968 div.yiv4817411968photo-title a,
#yiv4817411968 div.yiv4817411968photo-title a:active,
#yiv4817411968 div.yiv4817411968photo-title a:hover,
#yiv4817411968 div.yiv4817411968photo-title a:visited {
text-decoration:none;}

#yiv4817411968 div#yiv4817411968ygrp-mlmsg
#yiv4817411968ygrp-msg p a span.yiv4817411968yshortcuts {
font-family:Verdana;font-size:10px;font-weight:normal;}

#yiv4817411968 .yiv4817411968green {
color:#628c2a;}

#yiv4817411968 .yiv4817411968MsoNormal {
margin:0 0 0 0;}

#yiv4817411968 o {
font-size:0;}

#yiv4817411968 #yiv4817411968photos div {
float:left;width:72px;}

#yiv4817411968 #yiv4817411968photos div div {
border:1px solid
#666666;height:62px;overflow:hidden;width:62px;}

#yiv4817411968 #yiv4817411968photos div label {
color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}

#yiv4817411968 #yiv4817411968reco-category {
font-size:77%;}

#yiv4817411968 #yiv4817411968reco-desc {
font-size:77%;}

#yiv4817411968 .yiv4817411968replbq {
margin:4px;}

#yiv4817411968 #yiv4817411968ygrp-actbar div a:first-child {
margin-right:2px;padding-right:5px;}

#yiv4817411968 #yiv4817411968ygrp-mlmsg {
font-size:13px;font-family:Arial, helvetica, clean,
sans-serif;}

#yiv4817411968 #yiv4817411968ygrp-mlmsg table {
font-size:inherit;font:100%;}

#yiv4817411968 #yiv4817411968ygrp-mlmsg select,
#yiv4817411968 input, #yiv4817411968 textarea {
font:99% Arial, Helvetica, clean, sans-serif;}

#yiv4817411968 #yiv4817411968ygrp-mlmsg pre, #yiv4817411968
code {
font:115% monospace;}

#yiv4817411968 #yiv4817411968ygrp-mlmsg * {
line-height:1.22em;}

#yiv4817411968 #yiv4817411968ygrp-mlmsg #yiv4817411968logo {
padding-bottom:10px;}


#yiv4817411968 #yiv4817411968ygrp-msg p a {
font-family:Verdana;}

#yiv4817411968 #yiv4817411968ygrp-msg
p#yiv4817411968attach-count span {
color:#1E66AE;font-weight:700;}

#yiv4817411968 #yiv4817411968ygrp-reco
#yiv4817411968reco-head {
color:#ff7900;font-weight:700;}

#yiv4817411968 #yiv4817411968ygrp-reco {
margin-bottom:20px;padding:0px;}

#yiv4817411968 #yiv4817411968ygrp-sponsor #yiv4817411968ov
li a {
font-size:130%;text-decoration:none;}

#yiv4817411968 #yiv4817411968ygrp-sponsor #yiv4817411968ov
li {
font-size:77%;list-style-type:square;padding:6px 0;}

#yiv4817411968 #yiv4817411968ygrp-sponsor #yiv4817411968ov
ul {
margin:0;padding:0 0 0 8px;}

#yiv4817411968 #yiv4817411968ygrp-text {
font-family:Georgia;}

#yiv4817411968 #yiv4817411968ygrp-text p {
margin:0 0 1em 0;}

#yiv4817411968 #yiv4817411968ygrp-text tt {
font-size:120%;}

#yiv4817411968 #yiv4817411968ygrp-vital ul li:last-child {
border-right:none !important;
}
#yiv4817411968

Re: [PolySix] Replacing the Key assigner MCU

2015-12-21 by chipaudette@yahoo.com

The tubbutec MIDI retrofit looks like a great product with outstanding functionality (I *love* that he offers graphic overlays, too).  But, it's not open source.  You can't modify the software.  Therefore, it's not extendable.  If I am inspired by some crazy idea, I cannot easily build upon it's great features to make something new.

For a lot of folks who want plug-and-play, this looks like a fantastic solution.  But for the hacker/DIY crowd, there's still an opening for an open-source project.

Chip