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

Adding a Sustain Pedal

Adding a Sustain Pedal

2013-07-10 by chipaudette

I've always thought that the Polysix would benefit from a sustain pedal. I've noticed that many (all?) of the MIDI retrofit kits offer a sustain pedal as one of the enhanced functions that the kit brings to the Polysix. It's a great idea.

Given that I've been hacking my Polysix, I finally added the sustain pedal functionality to my own Polysix. I sure do like it. If you're interested, you can check out a demo and the "how to" at:

http://synthhacker.blogspot.com/2013/07/polysix-adding-sustain-pedal.html

In an old thread on this topic, I saw that Johannes added a sustain pedal to a Polysix without having to implement a full MIDI upgrade. Unfortunately, in that thread, the documentation for his mod was a dead link. While the text was a decent description, I'd love to see a little more detail. Does that documentation exist anymore?

Has anyone else hacked a sustain pedal into their Polysix?

Chip

Re: [PolySix] Adding a Sustain Pedal

2013-07-10 by Johannes Hausensteiner

Adding a sustain footswitch was the first mod I did when I got my
Polysix (after a few weeks I owned it ...). It simulates key presses
on the "HOLD" button. As a footswitch jack I used the CHORD MEMORY
Footswitch Input jack.
Technically it works very well and is no big intrusion to the Polysix.
The downside is that the HOLD button is implemented like that all notes
are switched off when HOLD mode is left. You need some practice to
accomodate your playing to this.

The details of the sustain footswitch (and other modifications) are
here:
http://launch.groups.yahoo.com/group/PolySix/files/Mods/P6_MODS.ZIP

There is a 2nd possibility to add sustain functionality in the Polsyix:
On KLM-366 there is a not mounted connector (CN-19), which is called
"Release Switch". There is a wire bridge fitted permanently enabling
the EG Release function. You could connect a footswitch there and
disable the EG Release time. I never tried this actually playing the
instrument, but technically it is there. It is not connected to an
external jack though. Probably they realised that it was not a real good
implementation of this functionality.

The best way to do it is like Chip did: in the firmware of the key
assigner. I can tell you that the key assigner CPU program space is
used up to the last byte. So probably they had to skip some
functionality ...

Johannes


On 2013-07-10 04:26, chipaudette wrote:
> I've always thought that the Polysix would benefit from a sustain pedal.
> I've noticed that many (all?) of the MIDI retrofit kits offer a sustain
> pedal as one of the enhanced functions that the kit brings to the Polysix.
> It's a great idea.
>
> Given that I've been hacking my Polysix, I finally added the sustain pedal
> functionality to my own Polysix. I sure do like it. If you're interested,
> you can check out a demo and the "how to" at:
>
> http://synthhacker.blogspot.com/2013/07/polysix-adding-sustain-pedal.html
>
> In an old thread on this topic, I saw that Johannes added a sustain pedal
> to a Polysix without having to implement a full MIDI upgrade.
> Unfortunately, in that thread, the documentation for his mod was a dead
> link. While the text was a decent description, I'd love to see a little
> more detail. Does that documentation exist anymore?
>
> Has anyone else hacked a sustain pedal into their Polysix?
>
> Chip
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

Re: Adding a Sustain Pedal

2013-07-10 by chipaudette

> I can tell you that the key assigner CPU program space is
> used up to the last byte. So probably they had to skip some
> functionality ...
>
> Johannes

This comment really interests me!

My own code (as reported by the Arduino IDE) is coming in around 24 kB. Of course, my code has more functionality (some not yet blogged about), which soaks up some program space. For example I still have some print statements in there, and I've got a bunch of 32-bit accumulators, and I do some floating point operations, which require floating point emulation routines. So, sure, my code is bloated by comparison. But, even at its slimmest, earliest existence, I still think that it was as around 12 kB (again, as reported by the IDE...so is the Arduino boot loader part of that?).

How much ROM space did the Korg programmers have to work with? How can you tell that it's full? Where you able to extract the code and de-compile it in any way? Did you learn anything cool about how they thought about the problem of running this thing?

Chip

Re: [PolySix] Re: Adding a Sustain Pedal

2013-07-10 by Johannes Hausensteiner

Hi,

The 8048 MPU used for the Polysix Programmer has 64Bytes of RAM and
1K of ROM on chip. All code plus some lookup tables are inside this
onchip ROM. All variables, etc. used by the firmware are located inside
the onchip RAM. The external RAM chip is solely used for saving the
patches (each patch has 16 bytes: 14 analog knobs and two bytes packed
switches; 16 bytes x 32 patches = 512bytes RAM capacity; organized as
1024 x 4bits).
The 8048 has a hardware stack, which means that the stack is fixed at
certain RAM addresses and the stack pointer is managed by the HW and
not visible for the SW. The stack pointer is 3bits wide thus setting the
stack size effectively to 16 bytes; each stack entry occupies two
bytes, the 12bit program counter (PC) plus the 4bit program status word
(PSW). Thus the stack is 8 levels (subroutine calls) deep. There is
no PUSH or PULL instruction (the PIC 5x series can only call one
subroutine if remember correctly).
The 8049 used for the Key Assigner has double amount of memory: 128Bytes
RAM and 2K ROM (there used to be an 8050 with 4K of ROM, thus 12bit PC).

The 8048 was quite popular at that time; it was the first single-chip
microcontroller made by Intel. So it happened that it had been used
at the company where I was working during the 1990s. So there were
the development tools plus a number of (UV-erasable) chips available
for me (remember, at this time you would not just go to the internet
and download a compiler etc. for free ...). Btw. there is no C-compiler,
it is all in assembler. Later on I purchased a license of the "Telemark
Cross Assembler" (http://home.comcast.net/~tasm/) which due to its
table-driven design is capable of assembling for a variety of CPUs.

I was not sure whether I was capable of doing this "microprocessor
stuff". So I made a little test project, a MIDI note separator,
utilizing a 8748 (the UV-erasable variant of the mask-programmed 8048).
It turned out that I was fine with programming and so I turned to the
real project I had in mind: modifications to the Polysix firmware with
possible MIDI capabilities. First step was that I had to make a
disassembler and read the firmware. This was quite a project and took
some time. I was through the programmer code and started working on the
key assigner when I came across Ricard Wanderlöf's Polysix page who
had re-engineered the whole Polysix control (programmer plus key
assigner) with added MIDI into a Z80 design.

The 1K program memory of the programmer is rather used up as well. There
are some stray unused bytes here and there so I managed to make a
slightly altered version to support my programmable bend wheel
modification. It was not strictly necessary but added to the usability.

Interestingly they used the same mask for the programmmer in the
Trident MKII (8048-345) and the same key assigner in the Mono/Poly
and Poly-61 (8049-217).


I hope this satisfys everyone's curiosity...

Johannes


On 2013-07-10 13:02, chipaudette wrote:
>
>> I can tell you that the key assigner CPU program space is
>> used up to the last byte. So probably they had to skip some
>> functionality ...
>>
>> Johannes
>
> This comment really interests me!
>
> My own code (as reported by the Arduino IDE) is coming in around 24 kB.
> Of course, my code has more functionality (some not yet blogged about),
> which soaks up some program space. For example I still have some print
> statements in there, and I've got a bunch of 32-bit accumulators, and I
> do some floating point operations, which require floating point emulation
> routines. So, sure, my code is bloated by comparison. But, even at its
> slimmest, earliest existence, I still think that it was as around 12 kB
> (again, as reported by the IDE...so is the Arduino boot loader part of
> that?).
>
> How much ROM space did the Korg programmers have to work with? How can
> you tell that it's full? Where you able to extract the code and
> de-compile it in any way? Did you learn anything cool about how they
> thought about the problem of running this thing?
>
> Chip
>

Re: Adding a Sustain Pedal

2013-07-14 by chipaudette

Thanks so much for the detailed reply. I love this stuff!

It always amazes me what proper embedded programmers can do within the constraints of the hardware. Constrained stack pointer limiting to 16 bytes!?! That kind of stuff would KILL me. Not to mention UV-ROM...not the kind of thing that promotes trial-and-error as one's debugging approach. It's stuff like this that separates the pros from the enthusiasts.

Of course, I could have used a Raspberry Pi instead of an Arduino. Then I could have run a webserver on my Polysix and you could have played it in *my* living room directly from *your* web browser. Of course, then my Polysix would have been taken over by a botnet and become a spam factory. Oi! If I'm not man enough for the 8049, I'll just stick with the Arduino, I guess.

Thanks for the cool talk!

Chip



--- In PolySix@yahoogroups.com, Johannes Hausensteiner <johau@...> wrote:
>
> Hi,
>
> The 8048 MPU used for the Polysix Programmer has 64Bytes of RAM and
> 1K of ROM on chip. All code plus some lookup tables are inside this
> onchip ROM. All variables, etc. used by the firmware are located inside
> the onchip RAM. The external RAM chip is solely used for saving the
> patches (each patch has 16 bytes: 14 analog knobs and two bytes packed
> switches; 16 bytes x 32 patches = 512bytes RAM capacity; organized as
> 1024 x 4bits).
> The 8048 has a hardware stack, which means that the stack is fixed at
> certain RAM addresses and the stack pointer is managed by the HW and
> not visible for the SW. The stack pointer is 3bits wide thus setting the
> stack size effectively to 16 bytes; each stack entry occupies two
> bytes, the 12bit program counter (PC) plus the 4bit program status word
> (PSW). Thus the stack is 8 levels (subroutine calls) deep. There is
> no PUSH or PULL instruction (the PIC 5x series can only call one
> subroutine if remember correctly).
> The 8049 used for the Key Assigner has double amount of memory: 128Bytes
> RAM and 2K ROM (there used to be an 8050 with 4K of ROM, thus 12bit PC).
>
> The 8048 was quite popular at that time; it was the first single-chip
> microcontroller made by Intel. So it happened that it had been used
> at the company where I was working during the 1990s. So there were
> the development tools plus a number of (UV-erasable) chips available
> for me (remember, at this time you would not just go to the internet
> and download a compiler etc. for free ...). Btw. there is no C-compiler,
> it is all in assembler. Later on I purchased a license of the "Telemark
> Cross Assembler" (http://home.comcast.net/~tasm/) which due to its
> table-driven design is capable of assembling for a variety of CPUs.
>
> I was not sure whether I was capable of doing this "microprocessor
> stuff". So I made a little test project, a MIDI note separator,
> utilizing a 8748 (the UV-erasable variant of the mask-programmed 8048).
> It turned out that I was fine with programming and so I turned to the
> real project I had in mind: modifications to the Polysix firmware with
> possible MIDI capabilities. First step was that I had to make a
> disassembler and read the firmware. This was quite a project and took
> some time. I was through the programmer code and started working on the
> key assigner when I came across Ricard Wanderlöf's Polysix page who
> had re-engineered the whole Polysix control (programmer plus key
> assigner) with added MIDI into a Z80 design.
>
> The 1K program memory of the programmer is rather used up as well. There
> are some stray unused bytes here and there so I managed to make a
> slightly altered version to support my programmable bend wheel
> modification. It was not strictly necessary but added to the usability.
>
> Interestingly they used the same mask for the programmmer in the
> Trident MKII (8048-345) and the same key assigner in the Mono/Poly
> and Poly-61 (8049-217).
>
>
> I hope this satisfys everyone's curiosity...
>
> Johannes
>
>
> On 2013-07-10 13:02, chipaudette wrote:
> >
> >> I can tell you that the key assigner CPU program space is
> >> used up to the last byte. So probably they had to skip some
> >> functionality ...
> >>
> >> Johannes
> >
> > This comment really interests me!
> >
> > My own code (as reported by the Arduino IDE) is coming in around 24 kB.
> > Of course, my code has more functionality (some not yet blogged about),
> > which soaks up some program space. For example I still have some print
> > statements in there, and I've got a bunch of 32-bit accumulators, and I
> > do some floating point operations, which require floating point emulation
> > routines. So, sure, my code is bloated by comparison. But, even at its
> > slimmest, earliest existence, I still think that it was as around 12 kB
> > (again, as reported by the IDE...so is the Arduino boot loader part of
> > that?).
> >
> > How much ROM space did the Korg programmers have to work with? How can
> > you tell that it's full? Where you able to extract the code and
> > de-compile it in any way? Did you learn anything cool about how they
> > thought about the problem of running this thing?
> >
> > Chip
> >
>

Re: Adding a Sustain Pedal

2013-07-15 by 7yash

Sounds great. It would be great to her what this mod does on a bass with a sharp attack, stock and with the bypass.

New version of Korg's VST Polysix is out...

2013-07-16 by feline1973

Just thought I'd mention to the list (as I only just noticed myself!)

- a few months ago, Korg brought out a new version of the VSTi Polysix, making it 64 bit compatible for the first time.
Details are on https://www.korguser.net/

I don't use the VSTi Korg all that often, but it any time I play with it, I always recognise the sorts of timbres it makes being very close to my real Polysix.